KATEGORI: PEMROGRAMAN PYTHON

Membuat program pengintaian lokasi dengan python

Mengambil informasi lokasi target dengan secuil program saja..

Do Exploit
4 min readMay 20, 2020
Hello!

Disclaimer: I am not responsible for uses intended for crime!

Dalam pembahasan kali ini berbeda dari yang kemarin-kemarin yang paling sering membahas tentang Linux, sekarang kita main-main dulu dengan ular Python (Bahasa Pemrograman). Jadi kita akan membahas cara untuk membuat program reconnaissance yang dapat mengambil lokasi dari beberapa situs website.

Sebelumnya, kita perlu tahu apa itu Reconnaissance/Pengintaian? Ini merupakan sebuah fase persiapan yang perlu dilakukan sebelum melakukan penyerangan, di fase ini kita berusaha mengumpulkan sebanyak mungkin informasi dari target termasuk lokasi.

Baiklah, jadi fitur-fitur yang akan dibuat adalah;

  • Mengambil argumen dari baris perintah.
  • Menggunakan file yang berisi beberapa situs target.
  • Memetakan alamat domain menjadi alamat IP.
  • Menggunakan API dari IPinfo.
  • Melakukan scanning dengan banyak situs sekaligus.

Tampilan full programnya jika sudah jadi bentuknya seperti di bawah, tenang aja jangan pusing dulu, kita akan bedah bersama-sama setiap blok dari programnya. Perlu diketahui juga, versi python yang digunakan oleh saya adalah 3.8. Sesuaikan saja dengan milik kalian.

Tampilan full dari program pengintaian lokasi.

1. Mengimpor modul python

Ada 4 modul yang kita impor ke dalam program, modul sys untuk menyediakan akses ke beberapa variabel yang digunakan oleh interpreter contohnya keluar program, mengambil argumen dan lain-lain. Lebih ke mengakses sistem diatas python sih kira-kira.

Modul requests digunakan untuk mengirimkan permintaan HTTP ke situs, kalau yang pernah menggunakan curl mungkin paham. Kalau socket digunakan untuk membangun aplikasi jaringan lengkap termasuk memiliki klien dan server. Terakhir, modul json disini akan digunakan untuk memproses respon json yang didapat dari permintaan HTTP.

2. Mengambil argumen dari baris perintah

Argumen yang dimaksud adalah ketika kita menjalankan program seperti dibawah ini, maka argumen pertamanya adalah nama_file.py lalu yang kedua adalah argumen2;

$ python3 nama_file.py argumen2

Nah, terus argumen2 itu digunakan untuk apa? Jadi argumen tersebut adalah untuk menyimpan nama file yang berisi situs-situs target. Langsung saja ke tahap akhir jika ingin mengetahui lebih lanjut.

Blok program tersebut merupakan kondisi if yang akan bekerja bila argumen didapat kurang dari 2, setelah itu program akan menampilkan respon seperti gambar dibawah;

3. Membuka dan membaca file yang berisi beberapa situs target

Bahas perbaris aja ya, jadi variabel File tersebut akan menjadi penyimpanan file dari argumen2. Lalu muncul lagi readFile untuk membaca isi dari file, fungsi split digunakan lagi untuk memisahkan baris-perbaris menjadi list.

del readFile[-1] sendiri akan menghapus objek terakhir dari readFile, kalian bisa hapus saja untuk mencobanya lalu membandingkan sendiri perbedaannya.

4. Memetakan alamat domain menjadi alamat IP

Variabel list_ip digunakan sebagai tempat untuk menyimpan IP dari domain-domain target, setelah itu kita akan membuat program looping untuk memetakan alamat domain ke alamat IP secara berulang-ulang. Buat yang masih bingung langsung aja klik disini.

Variabel HostToIP menyimpan salah satu dari domain yang sedang di proses pemetaan, lalu list_ip.append(HostToIP) akan menambahkan nilai dari variabel HostToIP ke variabel list_ip.

Sampai sini program kalian sudah bisa berjalan yang bisa menampilkan alamat IP dari domain, mari kita coba yuk! Pertama buat lah file apa saja, yang berisi domain target dan dipisahkan dengan baris baru. Contohnya seperti ini;

Nih contoh outputnya;

5. Membuat fungsi yang mengambil respon API dari IPinfo

Jangan mual duluan, becanda ya hehe. Oke, kita akan membuat fungsi cekloc() lalu berisi variabel ReqByIP yang akan menyimpan respon dari https://ipinfo/target_ip/json.

Setelah itu kita akan memproses lagi responnnya dengan fungsi json.loads() menjadi tipe data dictionary. Kalian hapus saja pagar(#) sebelum print(ResponseJson) agar bisa menampilkan respon berbentuk jsonnya.

Baris yang ada dibawah bersama fungsi print akan saya rangkum saja. Jadi sintax yang dipakai untuk mengambil nilai dari dictionary adalah;

Variable_dict[Key]

6. Melakukan permintaan dengan banyak situs sekaligus

For loop ini akan menggunakan fungsi dari cekloc();

Hasil akhirnya akan berakhir seperti dibawah ini;

Tips Newbyie

Jadi cara yang digunakan oleh saya untuk memperkuat pemahaman pada setiap fungsi yang digunakan adalah dengan cara menambahkan print setelah baris-baris fungsi penting.

Tips for newbyiee when coding

Selesailah pembahasan cara membuat program pengintaian lokasi, saya tau kode-kodenya belum bisa di sebut clean code dan masih banyak yang harus dikembangkan. Tapi saya percaya kalau kalian yang mengembangkannya maka akan menjadi lebih baik.

Terimakasih dan sampai jumpa di blog selanjutnya!

--

--

Do Exploit
Do Exploit

Written by Do Exploit

I share stories about what I've learned in the past and now. Let's connect to Instagram! @do.exploit

No responses yet