• Tidak ada hasil yang ditemukan

Skrip Hacker Pertama Anda: Pindai Port Terbuka

Dalam dokumen Dr. Joseph Teguh Santoso, S.Kom, M.Kom (Halaman 89-94)

BAB 8 SKRIP BASH

8.3 Skrip Hacker Pertama Anda: Pindai Port Terbuka

➍ echo "Bab apa yang Anda ikuti di Dasar-dasar Linux untuk Hacker?"

read chapter

➎ echo "Selamat Datang" $name "di Bab" $chapter "Dasar Linux untuk Hacker!"

Kami membuka dengan #! /bin/bash untuk memberi tahu sistem bahwa kami ingin menggunakan juru bahasa bash untuk skrip ini ➊. Kami kemudian menambahkan komentar yang menjelaskan skrip dan fungsinya ➋. Setelah itu, kami meminta nama pengguna dan meminta juru bahasa untuk membaca masukan dan menempatkannya ke dalam variabel yang kami sebut nama ➌. Kemudian, kami meminta pengguna untuk memasuki bab yang sedang mereka kerjakan di buku ini, dan kami kembali membaca input keyboard ke dalam variabel, kali ini disebut bab ➍.

Di baris terakhir, kami membuat baris keluaran yang menyambut pembaca dengan nama mereka ke bab mereka berada pada ➎. Kami menggunakan perintah gema dan memberikan teks yang ingin kami tampilkan di layar dalam tanda kutip ganda. Kemudian, untuk mengisi nama dan nomor bab yang dimasukkan pengguna, kami menambahkan variabel yang seharusnya muncul di pesan. Seperti disebutkan dalam Bab 7, untuk menggunakan nilai yang terkandung dalam variabel, Anda harus mendahului nama variabel dengan simbol $.

Simpan file ini sebagai WelcomeScript.sh. Ekstensi .sh adalah konvensi untuk file skrip. Anda mungkin telah memperhatikan bahwa kami tidak menyertakan ekstensi sebelumnya; itu tidak benar-benar diperlukan, dan jika Anda membiarkan ekstensi tidak aktif, file akan disimpan sebagai file skrip shell secara default.

Sekarang, mari jalankan skrip ini. Jangan lupa untuk memberi diri Anda izin menjalankan dengan chmod terlebih dahulu; jika tidak, sistem operasi akan memarahi Anda dengan pesan deny message.

kali >./WelcomeScript.sh Sipa namamu?

OccupytheWeb

Bab apa yang Anda ikuti di Dasar-dasar Linux untuk Hacker?

8

Welcome OccupytheWeb untuk Bab 8 Dasar Linux untuk Hackers!

Seperti yang Anda lihat, skrip Anda mengambil input dari pengguna, menempatkannya ke dalam variabel, dan kemudian menggunakan input tersebut untuk memberi salam kepada pengguna.

Ini adalah skrip yang sederhana, tetapi ini mengajari Anda cara menggunakan variabel dan mengambil input dari keyboard. Keduanya adalah konsep penting dalam pembuatan skrip yang perlu Anda gunakan dalam skrip yang lebih kompleks di masa mendatang.

adalah mereka yang memiliki niat jahat, seperti mencuri nomor kartu kredit atau merusak situs web. White hat Hacker (Hacker topi pputih) adalah mereka yang memiliki niat baik, seperti membantu pengembang software atau administrator sistem membuat sistem mereka lebih aman. Hacker topi abu-abu adalah mereka yang cenderung bergerak di antara dua ekstrem ini.

Sebelum melanjutkan, Anda perlu membiasakan diri dengan alat sederhana namun penting bernama nmap yang diinstal di Kali secara default. Anda mungkin pernah mendengar namanya; nmap digunakan untuk menyelidiki suatu sistem untuk melihat apakah sistem itu terhubung ke jaringan dan mencari tahu port apa yang terbuka.

Dari port terbuka yang ditemukan, Anda dapat menduga layanan apa yang berjalan pada sistem target. Ini adalah keterampilan yang sangat penting bagi Hacker atau administrator sistem mana pun.

Dalam bentuk yang paling sederhana, sintaks untuk menjalankan pemindaian nmap terlihat seperti ini:

nmap <type of scan><target IP><optionally, target port>

Tidak terlalu sulit. Pemindaian nmap yang paling sederhana dan paling andal adalah pemindaian koneksi TCP, yang ditandai dengan sakelar -sT di nmap. Jadi, jika Anda ingin memindai alamat IP 192.168.181.1 dengan pemindaian TCP, Anda harus memasukkan kode berikut:

nmap -sT 192.168.181.1

Untuk melangkah lebih jauh, jika Anda ingin melakukan pemindaian TCP alamat 192.168.181.1, mencari untuk melihat apakah port 3306 (port default untuk MySQL) terbuka, Anda dapat memasukkan ini:

nmap -sT 192.168.181.1 -p 3306

Di sini, -p menunjukkan port yang ingin Anda pindai. Silakan dan coba itu sekarang di sistem Kali Anda.

➊ #! /bin/bash

➋ # This script is designed to find hosts with MySQL installed

nmap ➌-sT 192.168.181.0/24 ➍-p 3306 ➎>/dev/null ➏-oG MySQLscan

➐ cat MySQLscan | grep open > MySQLscan2 ➑ cat MySQLscan2

Daftar 8.3 Skrip pemindai yang disederhanakan

Kita mulai dengan shebang dan juru bahasa untuk menggunakan. Mari ikuti ini dengan komentar untuk menjelaskan apa yang dilakukan skrip .

Tugas Kami Pada saat artikel ini dibuat, ada masa hukuman bagi Hacker di penjara federal AS dengan nama Max Butler, juga dikenal sebagai Max Vision di seluruh dunia Hacker.

Max adalah sejenis Hacker topi abu-abu. Pada siang hari, dia adalah seorang profesional keamanan TI di Lembah Silikon, dan pada malam hari, dia mencuri dan menjual nomor kartu kredit di pasar gelap. Pada suatu waktu, dia menjalankan pasar gelap kartu kredit terbesar di

dunia, CardersMarket. Sekarang, Max sedang menjalani hukuman penjara 13 tahun sambil pada saat yang sama membantu Tim Tanggap Darurat Komputer (CERT) di Pittsburgh dengan membela dari Hacker.

Beberapa tahun sebelum Max ditangkap, ia menyadari bahwa sistem Titik Penjualan (POS) Aloha yang digunakan oleh banyak restoran kecil memiliki pintu belakang dukungan teknis yang terpasang di dalamnya. Dalam hal ini, pintu belakang memungkinkan dukungan teknis untuk membantu klien mereka. Dukungan teknis Aloha dapat mengakses sistem pengguna akhir melalui port 5505 untuk memberikan bantuan saat pengguna meminta bantuan. Max menyadari bahwa jika dia menemukan sistem yang terhubung ke internet dengan sistem Aloha POS, dia dapat mengakses sistem dengan hak istimewa sysadmin melalui port 5505. Max dapat masuk ke banyak sistem ini dan mencuri puluhan ribuan nomor kartu kredit.

Akhirnya, Max ingin menemukan setiap sistem yang memiliki port 5505 terbuka sehingga dia bisa beralih dari mencuri ribuan nomor kartu kredit menjadi mencuri jutaan.

Max memutuskan untuk menulis skrip yang akan memindai jutaan alamat IP mencari sistem dengan port 5505 terbuka. Tentu saja, sebagian besar sistem tidak memiliki port 5505 yang terbuka, jadi jika ada, kemungkinan mereka menjalankan POS Aloha yang terkutuk. Dia dapat menjalankan skrip ini saat bekerja di siang hari, lalu pada malam hari meretas ke dalam sistem yang diidentifikasi memiliki port 5505 terbuka.

Tugas kami adalah menulis skrip yang hampir sama dengan skrip Max, tetapi daripada memindai port 5505 seperti yang dilakukan Max, skrip kami akan memindai sistem yang terhubung ke database online MySQL yang ada di mana-mana. MySQL adalah database open source yang digunakan di balik jutaan situs web; kami akan bekerja dengan MySQL di Bab 12. Secara default, MySQL menggunakan port 3306. Database adalah “Golden Fleece”

yang hampir selalu dicari oleh setiap Hacker. berisi nomor kartu kredit dan informasi pengenal pribadi (PII) yang sangat berharga di pasar gelap.

Scanner Simpel

Sebelum kita menulis skrip untuk memindai IP publik di internet, mari kita lakukan tugas yang jauh lebih kecil. Daripada memindai dunia, mari kita menulis skrip untuk memindai port 3306 di jaringan area lokal untuk melihat apakah skrip kita benar-benar berfungsi. Jika ya, kami dapat mengeditnya dengan mudah untuk melakukan tugas yang jauh lebih besar.

Di editor teks Anda, masukkan skrip yang ditampilkan di Daftar 8.3.

➊ #! /bin/bash

➋ # This script is designed to find hosts with MySQL installed nmap ➌-sT 192.168.181.0/24 ➍-p 3306 ➎>/dev/null ➏-oG MySQLscan

➐ cat MySQLscan | grep open > MySQLscan2 ➑ cat MySQLscan2

Daftar 8.3 Skrip scanner yang disederhanakan

Kita mulai dengan shebang dan penerjemah untuk menggunakan ➊. Mari ikuti ini dengan komentar untuk menjelaskan apa yang dilakukan skrip ➋. Sekarang, mari gunakan perintah nmap untuk meminta pemindaian TCP pada LAN kita, mencari port 3306.

(Perhatikan bahwa alamat IP Anda mungkin berbeda; di terminal Anda, gunakan perintah ifconfig di Linux atau perintah ipconfig di Windows untuk menentukan alamat IP Anda.) Agar tetap tersembunyi, kami juga akan mengirimkan nmap standar yang biasanya muncul di layar keluaran ke tempat khusus di Linux, tempat itu menghilang ➎. Kami melakukan ini di

mesin lokal, jadi itu tidak terlalu penting, tetapi jika Anda menggunakan skrip dari jarak jauh, Anda ingin menyembunyikan output nmap. Kami kemudian mengirimkan output scan ke file bernama MySQLscan dalam format grepable ➏, artinya format yang dapat dikerjakan oleh grep.

Baris berikutnya menampilkan file MySQLscan tempat kami menyimpan output, lalu menyalurkan output tersebut ke grep untuk memfilter baris yang menyertakan kata kunci buka. Kemudian kami memasukkan baris tersebut ke dalam file bernama MySQLscan2 ➑.

Terakhir, Anda menampilkan isi file MySQLscan2. File akhir ini hanya boleh menyertakan baris output dari nmap dengan host yang memiliki port 3306 terbuka. Simpan file ini sebagai MySQLscanner.sh dan berikan izin eksekusi sendiri dengan chmod 755 . Jalankan skripnya, seperti begitu:

kali >./MySQLscanner.sh

host: 192.168.181.69 () Ports: 3306/open/tcp//mysql///

Seperti yang dapat kita lihat, skrip ini mampu mengidentifikasi satu-satunya alamat IP di LAN saya dengan menjalankan MySQL. Hasil Anda mungkin berbeda, tergantung pada apakah ada port yang menjalankan instalasi MySQL di jaringan lokal Anda, tentu saja.

Meningkatkan Pemindai MySQL

Sekarang kami ingin menyesuaikan skrip ini agar dapat diterapkan ke lebih dari sekadar jaringan lokal Anda sendiri. Skrip ini akan jauh lebih mudah digunakan jika dapat meminta pengguna untuk rentang alamat IP yang ingin mereka pindai dan port yang akan dicari, lalu menggunakan masukan tersebut. Ingat, Anda telah mempelajari cara meminta pengguna dan memasukkan input keyboard mereka ke dalam variabel di “Menambahkan Fungsi dengan Variabel dan User Input”.

Mari kita lihat bagaimana Anda dapat menggunakan variabel untuk membuat skrip ini lebih fleksibel dan efisien.

Menambahkan Perintah dan Variabel ke Skrip Hacker Kita

Di editor teks Anda, masukkan skrip yang ditampilkan di Daftar 8.4.

#! /bin/bash

➊ echo "Enter the starting IP address : "

➋ read FirstIP

➌ echo "Enter the last octet of the last IP address : " read LastOctetIP

➍ echo "Enter the port number you want to scan for : " read port

➎ nmap -sT $FirstIP-$LastOctetIP -p $port >/dev/null -oG MySQLscan

➏ cat MySQLscan | grep open > MySQLscan2

➐ cat MySQLscan2

Daftar 8.4 Pemindai port MySQL lanjutan Anda

Hal pertama yang perlu kita lakukan adalah mengganti subnet yang ditentukan dengan rentang alamat IP. Kita akan membuat variabel yang disebut FirstIP dan variabel kedua bernama LastOctetIP untuk membuat rentang serta variabel bernama port untuk nomor port (oktet terakhir adalah kelompok angka terakhir setelah periode IP ketiga Alamat IP 192.168.1.101, oktet terakhir adalah 101).

Catatan

Nama variabel tidak relevan, tetapi praktik terbaik adalah menggunakan nama variabel yang membantu Anda mengingat apa yang dimiliki variabel.

Untuk mendapatkan nilai untuk variabel FirstIP, echo "Enter the starting IP address:"

ke layar, menanyakan pengguna alamat IP pertama yang ingin dipindai ➊. Setelah melihat perintah ini di layar, pengguna akan memasukkan alamat IP pertama, jadi kami perlu menangkap masukan tersebut dari pengguna.

Kita juga perlu meminta pengguna untuk nilai ini.Kita dapat melakukannya dengan menggunakan perintah echo yang kita gunakan di Daftar 8.1.

Kita dapat melakukan ini dengan perintah baca diikuti dengan nama variabel yang ingin kita simpan inputnya di ➋. Perintah ini akan menempatkan alamat IP yang dimasukkan oleh pengguna ke dalam variabel FirstIP. Kemudian kita dapat menggunakan nilai tersebut di FirstIP di seluruh skrip kami.

Kami akan melakukan hal yang sama untuk variabel LastOctetIP ➌ dan port ➍ dengan meminta pengguna untuk memasukkan informasi dan kemudian menggunakan perintah read untuk menangkapnya.

Selanjutnya, kita perlu mengedit perintah nmap di skrip kita untuk menggunakan variabel yang baru saja kita buat dan isi. Untuk menggunakan nilai yang disimpan dalam variabel, kita cukup mengawali nama variabel dengan $, seperti di $port, misalnya. Jadi, di , kami memindai berbagai alamat IP, dimulai dengan IP input pengguna pertama hingga IP input pengguna kedua, dan mencari input port tertentu oleh pengguna. Kami telah menggunakan variabel sebagai pengganti subnet untuk memindai dan port untuk menentukan apa yang akan dipindai.

Simbol pengalihan > memberitahukan output nmap standar, yang biasanya ditampilkan ke layar, untuk menjadi /dev/null (/dev/null hanyalah tempat untuk mengirimkan output sehingga menghilang). Kemudian, kami mengirimkan output dalam format yang dapat diterima ke file yang kami beri nama MySQLscan.

Baris berikutnya tetap sama seperti pada pemindai sederhana kami: baris ini menampilkan konten file MySQLscan, menyalurkannya ke grep, yang difilter untuk baris yang menyertakan kata kunci open, dan kemudian mengirim file SQL baru ke MySQLscan2 ➏ . Terakhir, kami menampilkan konten file MySQLscan2 ➐.

Jika semuanya berfungsi seperti yang diharapkan, skrip ini akan memindai alamat IP dari alamat input pertama ke alamat input terakhir, mencari port input dan kemudian melaporkan kembali hanya dengan alamat IP yang memiliki port yang ditentukan.

Simpan file skrip Anda sebagai MySQLscannerAdvanced, jangan lupa untuk memberi izin eksekusi sendiri.

Jika semuanya berfungsi seperti yang diharapkan, skrip ini akan memindai alamat IP dari alamat input pertama ke alamat input terakhir, mencari port input dan kemudian melaporkan kembali hanya dengan alamat IP yang memiliki port yang ditentukan.

Simpan file skrip Anda sebagai MySQLscannerAdvanced, ingat untuk memberi izin untuk Anda sendiri untuk menjalankan.

Contoh Jalankan

Sekarang kita dapat menjalankan skrip pemindai sederhana dengan variabel yang menentukan rentang alamat IP dan port yang akan dipindai tanpa harus mengedit skrip setiap kali ingin menjalankan pemindaian:

kali >./MySQLscannerAdvanced.sh Enter the starting IP address :

192.168.181.0

Enter the last IP address : 192.168.181.255

Enter the port number you want to scan for :

3306 Host: 192.168.181.254 ()Ports:3306/open/tcp//mysql//

Skrip tersebut meminta pengguna untuk memberikan alamat IP pertama, alamat IP terakhir, dan kemudian port yang akan dipindai. Setelah mengumpulkan informasi ini, skrip melakukan pemindaian nmap dan menghasilkan laporan semua alamat IP dalam rentang yang memiliki port yang ditentukan terbuka. Seperti yang Anda lihat, bahkan skrip yang paling sederhana pun dapat membuat alat yang hebat. Anda akan mempelajari lebih banyak lagi tentang skrip di Bab 17.

Dalam dokumen Dr. Joseph Teguh Santoso, S.Kom, M.Kom (Halaman 89-94)