Active Directory Lateral Movement: SMB Relay Attack

Active Directory Lateral Movement: SMB Relay Attack. Kali ini saya akan membahas mengenai salah satu teknik lateral movement pada aktifitas internal AD pentesting. Topik yang akan kita bahas kali ini adalah SMB Relay Attack.

Sederhananya, SMB Relay Attack terjadi ketika pentester mendapatkan NTLM Hash pada suatu mesin, kemudian me-relay nya ke mesin lain didalam lingkungan Active Directory. Hal ini dapat terjadi dikarenakan tidak adanya validasi autentikasi SMB (melalui SMB Signing), yang memungkinkan attacker mengeksploitasinya.

Sebagai catatan tambahan, SMB Signing sendiri secara default sudah diaktifkan pada Windows Server, namun untuk PC Workstation (misalnya Windows 10), settingan ini secara default tidak di enforce sehingga serangan SMB Relay masih sangat relevan sampai saat ini ketika kita melakukan penetration testing pada lingkungan Active Directory yang didalamnya berisi banyak komputer non-server.

Requirements

Agar serangan ini sukses, berikut beberapa kondisi yang harus terpenuhi:

  • SMB Signing pada target tidak diaktifkan atau minimal tidak di enforce.
  • Kredensial user yang di relay memiliki hak akses Local Administrator pada mesin target (karena idealnya ketika kita melakukan serangan ini, hal-hal seperti credential dumping, psexec, dll membutuhkan privilege admin).

Demo

Oke, agar kalian dapat gambaran serangannya, saya akan mendemokan bagaimana serangan ini berjalan. Berikut skenarionya:

  • Melalui LLMNR Poisoning, attacker berhasil mendapatkan hash domain user asuka di mesin 172.16.8.140.
  • User asuka merupakan Local Administrator di mesin 172.16.8.138.
  • Alih-alih melakukan cracking hash dari serangan LLMNR poisoning di 172.16.8.140, attacker melakukan relaying attack user asuka untuk melakukan compromise mesin 172.16.8.138.

Pertama, kita melakukan enumerasi pada network untuk memeriksa mesin mana yang SMB Signing nya tidak di enable atau tidak di enforce. Disini saya  menggunakan NetExec. Kalian bisa gunakan Nmap, CrackMapExec, dll. Bebas.

netexec smb 172.16.8.1/24 --gen-relay-list relay_list.txt


Target serangan relay kita adalah mesin Windows 10 di alamat IP 172.16.8.138.

Oke sekarang kita lanjut ke eksploitasinya. Tools yang dibutuhkan adalah Responder dan ntlmrelayx. Pertama, kita edit dulu konfigurasi Responder dan menonaktifkan HTTP dan SMB karena kedua service itu akan di relay menggunakan ntlmrelayx.

sudo nano /etc/responder/Responder.conf

Selanjutnya kita jalankan Responder.

sudo responder -I vmnet8 -wd

Selanjutnya kita jalankan tool ntlmrelayx.

sudo impacket-ntlmrelayx -tf /tmp/relay_list.txt -smb2support --ipv6 -debug

relay_list.txt sendiri merupakan list komputer dengan SMB Signing yang tidak di enforce (yang sebelumnya kita generate menggunakan NetExec). Di tutorial ini targetnya memang hanya satu, tapi bayangkan jika kita sedang melakukan penetration testing pada lingkungan Active Directory di client dimana ada puluhan atau bahkan ratusan PC Workstation yang tidak melakukan enforce SMB Signing.

Oke, konsep serangan ini sama seperti NBT-NS/LLMNR Poisoning sehingga kita perlu menunggu target melakukan autentikasi ke "fake service" yang kita buat. Bedanya adalah alih-alih melakukan cracking NTLM hashes dari hasil Responder, kita me-relay kredensial itu untuk mengakses mesin lain didalam jaringan.

Berikut response dari Responder kita.

Dan berikut respon dari ntlmrelayx kita. Kita berhasil melakukan dump SAM hashes dari 172.16.8.138 melalui relay attack.

Secara default task yang akan dilakukan oleh ntlmrelayx adalah melakukan dump SAM hashes. Namun tentu kita juga bisa menjalankan command execution di mesin target.

Tinggal ubah command ntlmrelayx nya menggunakan flag -c. Contoh:

sudo impacket-ntlmrelayx -tf /tmp/relay_list.txt -smb2support --ipv6 -c "whoami"

Untuk fitur lain bisa kalian explore sendiri ya. Tinggal jalankan command:

impacket-ntlmrelayx --help

Oke mungkin sekian sharing singkat kali ini, semoga bermanfaat.

Posting Komentar untuk "Active Directory Lateral Movement: SMB Relay Attack"