레이블이 System Security인 게시물을 표시합니다. 모든 게시물 표시
레이블이 System Security인 게시물을 표시합니다. 모든 게시물 표시

2017. 6. 1.

[트러블슈팅] X-Powered-By 헤더 제거 및 서버 이름 변경 방법

일반적으로 response header에 X-Powered-By:servlet/2.5 jsp/2.1 와 같이 정보가 노출되는 경우가 있다.


JBOSS 와 웹로직 각각 다음의 블로그에서 활용하면 된다.

  • http://opennaru.tistory.com/76 // JBOSS 의 경우
  • http://nf.still.pe.kr/2013/05/blog-post.html // 웹로직의 경우

Continue reading

2017. 5. 30.

/bin/false 와 sbin/nologin 의 차이

/bin/false
allows a login, but no shell, no ssh tunnels and no home directory.
-> 시스템의 로그인은 불가능, FTP 서버 프로그램같은 프로그램도 불가능하다.
쉘이나 ssh과 같은 터널링(원격접속) 그리고 홈디렉토리를 사용할 수 없다.

/sbin/nologin
disallows logins completely and returns a polite account unavailable message.
-> 사용자 계정의 쉘부분에 /bin/nologin 으로 설정을 하면
로긴 불가하고, 메시지들은 반환된다 ssh는 사용불가능하며 ftp의 경우 사용이 가능합니다.

참고

  • http://faq.hostway.co.kr/Linux_ETC/1624



Continue reading

2017. 4. 6.

[시스템] 비밀번호 크래킹 도구

1. Cain & Abel
윈도우용 탑 패스워드 크래킹 도구
- http://www.oxid.it

2. 존 더 리퍼
- www.openwall.com (John the Ripper 1.8.0-jumbo-1 (Windows binaries, ZIP, 34 MB) and its signature)
- 해쉬 암호화 관련 문서 (https://s3.amazonaws.com/files.douglas.stebila.ca/files/teaching/cryptoworks21/Networks-Practical-Passwords.pdf)
- 사용 예, http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats

- john *.pwd // 여러개의 패스워드 파일 점검


3. Aircrack
WEB / WPA 크랙 도구
- www.aircrack-ng.org

4. THC 히드라
네트워크 인증 크래커
- https://www.thc.org/thc-hydra/

5. rainbowcrack
암호 해시 크래커의 새로운 혁신
- http://project-rainbowcrack.com/

6. OphCrack
Windows 암호 크래킹을 위한 도구
LM 및 NTML 해시 등을 적용 가능
- http://ophcrack.sourceforge.net/

7. Brutus
- 윈도우용 (2000년 이후에 업데이트 되지 않음)
- HTTP, FTP, IMAP, NNTP, SMB
- http://www.hoobie.net/brutus/

8. L0phtrack
- 윈도우 암호 복구를 위한 도구
- 윈도우 XP, NT, 2000, 2003, 2008 가능
- www.l0phtcrack.com/

9. Pwdump
- Windows 용 비밀번호 복구 도구
- 백신 프로그램이 구동 중일때 정확히 작동하지 않을 수 있음
- Fgdump 라는 새로운 버전이 생김
- 2000, xp 가능

10. 메두사
- AFP, HTTP, CVS, IMAP, FTP, SSH, SQL, POP3, 텔넷 및 VNC
- http://www.darknet.org.uk/


** DES - Traditional DES 
$ cat hashes.txt
username:SDbsugeBiC58A
$ john hashes.txt
$ john --format=des hashes.txt

참고

  • http://kr.wondershare.com/password/password-cracker-tools.html
  • 존 더 리퍼의 다양한 해쉬알고리즘 적용 사례 - http://pentestmonkey.net/cheat-sheet/john-the-ripper-hash-formats

Continue reading

[시스템] FTP 명령여 정리

open(주소 또는 도메인) → ftp 서버에 연결
close : 해당ftp 접속종료
bye : ftp 프로그램 종료
ls : list, 목록보기
cd(디렉토리명) → 디렉토리 바꾸기
ascii : 텍스트 파일 전송모드 (자료를 내려받거나 올리기 이전에 작동시켜야 한다)
bin : 이진파일 전송 모드 (자료를 내려받거나 올리기 이전에 작동시켜야 한다)
get 파일명 : 하나의 파일 내려받기
mget 파일명 : 여러 개의 파일 내려받기, wildcard 문자 사용가능
put 파일명 : 하나의 파일 올리기
mput 파일명 : 여러 개의 파일 올리기, wildcard 문자 사용가능
pwd : 현재 경로보기
hash : 파일전송과정 보여주기(버터단위 ‘#” 표시 되며 자료올리거나 받기전에 명
령어를 줘야 한다)
? : 도움말
rstatus : remote 시스템의 상황 표시
status : 현재 연결된 ftp 세션 가지 모드에 대한 설정을 보여준다
dir : remote 시스템의 디렉토리 내용을 디스플레이

Continue reading

2017. 4. 5.

[시스템] 'r' command 보안 취약점

1. 'r' Command 개요
r'command 를 통한 원격접속은 *NET Backup 이나 다른 용도로 사용되기도 하지만, 인증 없이 원격접속을 가능하게 한다는 점에서 보안상 매우 취약하다.

2. 'r' Command 서비스 활성화 여부 확인

OS 마다 확인 방법이 약간 상이하다. 본 포스트에서는 HP-UX와 AIX 위주로 기술한다. 상세한 내용은 "주요정보통신기반시설_기술적_취약점_분석_평가_방법_상세가이드"의 U-28, U-38 항목을 참고하면 된다.

방법 1) /etc/inetd.conf 파일에서 r 계열 서비스 활성화 여부를 확인한다. 해당 서비스 라인이 # 처리 되어 있으면 비활성화된 것이다.
방법 2) netstat -an 명령어 사용
- netstat -an | grep "*.513 // rlogin
- netstat -an | grep "*.514 // rsh
- netstat -an | grep "*.512 // rexec

만약 서비스는 구동중이나, /etc/hosts.equiv 또는 각 홈 디렉터리 밑에 있는 .rhosts 파일에 아무런 설정이 없다면 불필요한 서비스 구동이라고 판단 할 수 있다.

3. 해당 서비스를 통한 원격 접속 방법

1) rlogin 사용 예
rlogin [option] host
ex) rlogin 203.xxx.xxx.xxx
rlogin -l tmax 203.xxx.xxx.xxx // 203.xxx.xxx.xxx 라는 계정에 접속을 시도할 때 tmax 라는 계정으로 접속을 시도한다.

2) rsh 사용 예
rsh 203.247.xxx.xxx sh -i // 프롬프트가 바뀌면서 실제 해당 호스트에 접속한 상태와 같게 된다.
rsh 203.247.xxx.xxx ls -l / // 접속하지 않아도 원격지 서버의 /디렉토리의 내용 확인이 가능하다.
rsh 203.247.xxx.xxx cat /etc/passwd > passwd.txt // 원격지 서버의 /etc/passwd 의 내용을 내 디렉토리의 passwd.txt 파일로 저장이 가능하다

** 참고로 rsh 서비스를 통한 행위는 1) who 명령이나 w명령으로 확인이 불가능하고 2) last 같은 로그기록으로도 확인이 불가능하다. 오직 3) 접속의 확인은 netstat 명령으로만 가능하다

** 참고 ** 
현재의 리눅스는 root 계정자로 rlogin인이 불가능하다. 또한, 일반 계정으로 .rhosts 를 만들고 파일의 내용을 + + 라고 작성하여도 패스워드를 입력하도록 되어 있다. 이 부분은 점검이 필요하다.

3. 대응 방안

원칙적으로 해당 서비스를 중단하거나, 사용이 불가피한 경우에는 다음과 같은 조치를 수행한다.

- /etc/hosts.equiv 파일 및 .rhosts 파일 사용자를 root 또는 해당 계정으로 설정하고 권한을 600으로 설정
- 또한 해당 파일 설정에 '+' 설정(모든 호스트 허용)이 포함되지 않도록 함



** /etc/hosts.equiv 과 $HOME/.rhosts 의 차이 **
/etc/hosts.equiv 은 서버 설정파일이고, $HOME/.rhosts는 개별 사용자의 설정 파일이다. 즉 /etc/hosts.equiv 파일은 TRUSTED 시스템들을 등록하고 'r' command를 이용하여 인증없이 접근하는 것을 가능하게 하는 설정 파일이며, .rhosts 파일은 /etc/hosts.equiv 파일과 거의 동일한 기능을 수행하지만 .rhosts 파일은 사용자 별로 'r'command 를 통해 접속 가능하도록 설정할 수 있다.


# 취약점 점검 시나리오
1) rlogin, rsh, rexec 서비스 실행여부를 확인하고 실행되고 있다면, 접속 시도를 해본다.
2) .rhosts 는 root, tmax 등 과 같이 여러 홈디렉토리에 설치 될 수 있다. 그러므로 -l 옵션으로 계정을 미리 지정할 수 있다. 로그인 계정을 지정하지 않으면 root 계정으로 접근한다.
(현재 -l 로 계정을 지정할 수 있는 옵션이 지원되지 않는다고 한다.)


참고 사이트
  • http://se.uzoogom.com/125


Continue reading

[암호] 해쉬함수별 출력값(해쉬값) 길이

해쉬함수별 출력값(해쉬값) 길이 비교

1. md5의 출력값 길이는 128비트
md5 hash값(저장 : 16진수로 32바이트)
ex) 8380482228e75045a7d14e063bde014b

2. sha-1의 출력값 길이는 160비트
sha-1 hash값(저장 : 16진수로 40바이트)
ex) 764C46AE8BC50C4823E50F18DA45B9A21E8DD10B

3. sha-256의 출력값 길이는 256비트
sha-256 hash값(저장 : 16진수로 64바이트)
ex) be178c0543eb17f5f3043021c9e5fcf30285e557a4fc309cce97ff9ca6182912

출처
  • http://egloos.zum.com/doodoodoo/v/1770980

Continue reading

2017. 2. 12.

[UNIX 서버] 1.3 - 계정 잠금 임계값 설정

가이드와 상이한 점 : 가이드에서는 HP-UX 경우, /tcb/files/auth/system/default 파일에서 u_maxtries#5 로 설정하라고 되어 있다.

그러나,
실제 경로는 /usr/newconfig/tcb/files/auth/system/default 이다.

게다가 기억해야 할 것은, HP-UX 서버에 계정 잠금 정책 설정을 위해서는 서버가 trusted mode로 동작하고 있어야 한다.

trusted mode 여부를 확인하는 방법은 다음과 같다.

/usr/lbin 디렉토리로 이동 -> #./getprdef -r -> (trust 모드가 아니라면) System is not trusted 으로 출력됨

그러면 trusted mode로 적용하면 어떤 장점이 있는가?
해당 모드를 적용하면 다음과 같은 system security policies 가 적용된다.

  • passwd format/aging, general user account, terminal security security event, system call, user 에 대한 audit

Continue reading

2016. 12. 29.

2.9. SUID, SGID, Sticky bit 설정파일 점검

*SUID(Set User-ID)와 *SGID(Set Group-ID)가 설정된 파일은(특히, root 소유의 파일인
경우) 특정 명령어를 실행하여 root 권한 획득 및 정상서비스 장애를 발생시킬 수
있으며, 로컬 공격에 많이 이용되므로 보안상 철저한 관리가 필요함.
root 소유의 SUID 파일의 경우에는 꼭 필요한 파일을 제외하고는 SUID, SGID 속성을
제거해주고, 잘못 설정되어 보안 위협이 되고 있는지 주기적인 진단 및 관리가 요구됨.
*SUID(Set User-ID): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유자의
권한을 얻게 됨.
*SGID(Set Group-ID): 설정된 파일 실행 시, 특정 작업 수행을 위하여 일시적으로 파일 소유 그룹의 권한을 얻게 됨.


위 명령어로 검색된 파일 중에 설정이 필요없는 파일은 위와 같다. 

/usr/bin/newgrp (guid)
- 새로운 그룹으로 로그인하는 명령어, 잘 사용하지 않음

/usr/bin/at (suid)
- at은 cron과 같이 반복적인 작업을 하고자 할때 사용, at 자체가 cron에 비해 보안 결함이 있고 잘 사용하지 않음

/usr/sbin/traceroute (suid)
- traceroute 는 네트워크 경로를 추적하는 명령어, 일반유저에게 telnet 이나 ssh 를 open 하지 않으면 권한을 줄 필요가 없다.

/sbin/unix_chkpwd (suid)
- 로컬 공격자는 다른 로컬 사용자들의 유효한 패스워드들을 얻기 위한 브루트 포스 공격들을 위행하기 위해 사용할 수 있다.

Continue reading

2016. 12. 5.

[47] NFS 접근통제

취약점 개요
: NFS 사용 시 허가된 사용자만 접속할 수 있도록 접근제한 설정을 하여야 함. 접근제한 설정이 적절하게 이루어지지 않을 경우 비인가자의 root권한 획득이 가능하며, 해당 공유 시스템에 원격으로 마운트하여 중요 파일을 변조하거나 유출할 위험이 있음.

** 공유폴더의 사용권한 관리
폴더나 볼륨과 같은 공유 리소스에 대한 사용 권한은 해당 리소스의 로컬 NTFS 권한 및 공유 리소스에 액세스하는 데 사용하는 프로토콜에 의해 결정된다.

    • SMB(서버 메시지 블록) 프로토콜 : SMB 기반 액세스 제어(Windows 기반 파일 시스템용)는 개별 사용자 및 그룹에 사용 권한을 부여하여 구현된다.
    • NFS(네트워크 파일 시스템) 프로토콜 : NFS 기반 액세스 제어(UNIX 기반 파일 시스템용)는 네트워크 이름을 사용해서 특정 클라이언트 컴퓨터 및 그룹에 사용 권한을 부여하여 구현된다.


판단 기준 :
양호 - NFS 서비스를 사용하지 않거나, 사용 시 everyone 공유를 제한한 경우
취약 - NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않는 경우

조치 방법
사용하지 않는다면 NFS 서비스 중지, 사용할 경우 everyone 공유 제한



NFS 데몬 구동 여부 확인 및 NFS 데몬 중지

[유닉스의 경우]
   ps -ef | grep nfsd
   kill -9 pid

[솔라리스 5.10 이상]
   svcs -a | grep -i nfs
   svcadm disable svc:/network/nfs/server:default


NFS 서비스가 사용되고 있을때, everyone 공유가 제한되어 있는지 확인

[유닉스의 경우]
1) everyone 으로 시스템이 마운트 되어 있는지 확인
# showmount -e hostname

2) /etc/export 파일에서 접근 통제 설정 여부 확인

#cat /etc/exports
- 취약한 설정 예 : var/www/img *(ro,all_squash)
- 양호한 설정 예 : /data 172.27.0.0/16(rw,no_root_squash)

3) everyone 마운트 제거
# umount [파일시스템명]

[솔라리스의 경우]

#cat /etc/dfs/dfstab
취약한 설정 예 : share -F nfs -o rw /export/home/test
양호한 설정 예 : share -F nfs -o rw=client1:client2 /export/home/test



Continue reading

2016. 11. 30.

[63] SAM 파일 접근 통제 설정

[63] SAM 파일 접근 통제 설정

명령어 : cacls C:\Windows\system32\config\SAM

결과 : C:\Windows\system32\config\SAM NT AUTHORITY\SYSTEM:F
                               BUILTIN\Administrators:F

해석 :     N    없음/ R   읽기/ W  쓰기 / C  바꾸기(쓰기) / F  모든 권한
-> SAM 파일의 권한은 SYSTEM 과 Administroator  계정이 연결되어 있는데 모든 권한(F)가 부여되어 있다.

Continue reading

2015. 10. 1.

파일 시스템의 무결성 점검


자료를 검색하던 중 정말 괜찮은 기사를 발견하게 되었다.
지금부터 내가 적는 내용은 기사의 내용을 정리한 내용임을 미리 밝혀둔다.

시스템 보안이라고 하면, 방화벽, 네트워크 설정, 서비스 관리, 사용자 정책 등에 대한 생각을 하게 된다. 드물지만 루트킷 점검과 같은 수동적 방어에 대해서도 고려하게 된다.

그러나 보안을 정말 중요시하는 시스템 관리자에게 있어서 정말 중요한 것은 '파일시스템 무결성 점검' 이다.

이 무결성 점검은 파일시스템의 상태추적, 그리고 허가를 받지 않은 변경사항이 있는지 주기적으로 검사하는 과정이 포함된다. 수상한 변화가 감지되면 침입자에 의한 것인지 검사한후 피해복구를 해야 한다.

리눅스나 유닉스 환경에서 가장 잘 알려진 파일시스템 무결성 점검 도구는 트립와이어 (tripwire)

트립와이어의 개념

  • 트립와이어는 개념적으로 매우 간단하다.
  • 파일시스템의 '스냅샷'을 찍은 데이터베이스를 유지한다. 이 데이터베이스는 파일시스템에서 어느 부분에서 허가 받지 않은 변경을 했는지 검사하는 정책에 의해 만들어진다.

트립와이어의 정책
  • 트립와이어의 정책은 일반적으로 스냅샷뿐만 아니라 파일시스템의 무허가 혹은 의심쩍은 변화를 규정하는 일련의 규칙도 제공한다. 트립와이어가 시스템을 점검하는 경우 정책을 활용하여 파일시스템의 현 상태를 검사하고 비교한 뒤 발견한 내용에 바탕을 둔 보고서를 생성한다.
  • 보통 트립와이어는 하루에 한번 수행되며, 주로 시스템 사용자가 들어와있지 않은 야간에 이뤄진다.

주의할 점

  • 트립와이어에는 두가지 문제점이 있다.
  • 첫번째는 편리함의 문제이다. 
    • 트림와이어의 보고서가 검토하기에 길고 지루할 수 있다는 사실에 기인한다.
    • 또한 트립와이어 정책에 의해 검사된 파일에 변화를 자주 가한다면 트립와이어 데이터베이스를 주기적으로 업데이트해야 한다는 사실에도 기인한다.
  • 두번째는 약점의 문제이다.
    • 파일시스템 무결성 검사가 실시간이 아니라 주기적으로 이뤄져야 한다는 사실에 기인한다.
    • 이유는 실시간 파일시스템 검사가 엄청난 시스템 자원을 요구하며 성능을 크게 떨어트리기 때문이다.
상세 트립와이어의 사용 명령어는 아래 참고 url 에서 확인할 수 있음.




<참고>

  • 리눅스 파일시스템의 [무결성 점검] - http://www.zdnet.co.kr/news/news_view.asp?artice_id=00000039144301&type=det&re=

Continue reading

Popular Posts

Recent Posts

Powered by Blogger.