Networking Part 2
Wireshark: The Basics
Terdapat dua file tangkapan yang diberikan di VM. Anda dapat menggunakan file http1.pcapng untuk mensimulasikan tindakan yang ditunjukkan pada tangkapan layar. Harap dicatat bahwa Anda perlu menggunakan file Exercise.pcapng untuk menjawab pertanyaan.
- Which file is used to simulate the screenshots?
http1.pcapng
- Which file is used to answer the questions?
Exercise.pcapng
Tool Overview
Wireshark merupakan salah satu alat penganalisis lalu lintas jaringan (traffic analyzer) paling kuat yang banyak digunakan di dunia. Alat ini memungkinkan pengguna untuk menangkap dan menganalisis paket data jaringan secara mendalam.
Use Case Wireshark
Wireshark memiliki berbagai kegunaan utama, antara lain:
- Mendeteksi dan melakukan troubleshooting jaringan, seperti kegagalan koneksi, titik kemacetan jaringan, dan beban lalu lintas yang tinggi.
- Mendeteksi anomali keamanan, seperti adanya host tidak dikenal (rogue host), penggunaan port yang tidak wajar, serta lalu lintas jaringan yang mencurigakan.
- Mempelajari dan menganalisis protokol jaringan, termasuk kode respons, struktur paket, dan payload data.
Catatan: Wireshark bukan merupakan Intrusion Detection System (IDS). Wireshark hanya berfungsi untuk membaca dan menganalisis paket, bukan memodifikasi atau memblokirnya. Oleh karena itu, kemampuan mendeteksi masalah atau anomali jaringan sangat bergantung pada pengetahuan dan keahlian analis.
Antarmuka (GUI) dan Data Wireshark
Saat Wireshark dibuka, pengguna akan melihat satu halaman utama yang terdiri dari beberapa bagian penting untuk menganalisis lalu lintas jaringan.
Komponen Utama GUI Wireshark
| Bagian | Deskripsi |
|---|---|
| Toolbar | Berisi menu dan pintasan untuk menangkap paket, memproses data, melakukan filter, sorting, ringkasan, ekspor, dan penggabungan file. |
| Display Filter Bar | Digunakan untuk memasukkan query atau filter tampilan paket. |
| Recent Files | Menampilkan daftar file PCAP yang baru saja dianalisis dan dapat dibuka kembali dengan klik dua kali. |
| Capture Filter & Interfaces | Menampilkan filter penangkapan dan daftar antarmuka jaringan yang tersedia (misalnya lo, eth0, ens33). |
| Status Bar | Menampilkan status alat, profil yang digunakan, serta informasi jumlah paket. |
1. Loading PCAP Files
Mari kita muat file http1.pcap dan lihat presentasi paket Wireshark secara detail. Perhatikan bahwa Anda juga dapat menggunakan menu "File", menyeret dan meletakkan file, atau mengklik dua kali pada file untuk memuat pcap.

Sekarang, kita dapat melihat nama file yang telah diproses, jumlah paket secara detail, dan detail paket. Detail paket ditampilkan dalam tiga panel berbeda, yang memungkinkan kita untuk menemukannya dalam berbagai format.
Setiap paket yang dimuat akan ditampilkan dalam tiga panel utama berikut:
| Panel | Fungsi |
|---|---|
| Packet List Pane | Menampilkan ringkasan setiap paket (alamat sumber, tujuan, protokol, dan informasi singkat). |
| Packet Details Pane | Menampilkan rincian struktur protokol dari paket yang dipilih. |
| Packet Bytes Pane | Menampilkan data paket dalam format heksadesimal dan ASCII, serta menyoroti bagian tertentu sesuai pilihan di panel detail. |
2. Colouring Packets
Wireshark memiliki fitur packet colouring yang berfungsi untuk mewarnai paket berdasarkan protokol atau kondisi tertentu. Pewarnaan ini membantu analis mengidentifikasi jenis trafik, anomali, dan pola komunikasi secara cepat hanya dengan melihat daftar paket.
Secara default, Wireshark sudah menyediakan aturan pewarnaan bawaan, sehingga pada banyak tangkapan paket, trafik tertentu akan tampak dominan dengan warna tertentu (misalnya hijau untuk trafik umum).

Fungsi Utama Packet Colouring
- Mempercepat analisis trafik tanpa harus membuka detail setiap paket.
- Membedakan protokol jaringan (HTTP, TCP, DNS, dll.) secara visual.
- Mendeteksi anomali atau trafik mencurigakan dengan cepat.
- Menandai event penting menggunakan aturan warna khusus (custom rules).
Jenis Aturan Pewarnaan di Wireshark
Wireshark menyediakan dua jenis aturan pewarnaan paket:
- Permanent Colouring Rules
- Disimpan di file preferensi (profile).
- Tetap tersedia saat Wireshark dibuka kembali.
- Dapat dibuat melalui menu:
View → Coloring Rules- Klik kanan pada paket → buat aturan warna.
- Temporary Colouring Rules
- Hanya aktif selama sesi Wireshark berjalan.
- Tidak disimpan setelah aplikasi ditutup.
- Biasanya digunakan untuk analisis cepat pada trafik tertentu.
Pengaturan Packet Colouring
- View → Colourise Packet List
- Mengaktifkan atau menonaktifkan seluruh pewarnaan paket.
- View → Coloring Rules
- Mengelola dan membuat aturan pewarnaan permanen.
- Conversation Filter
- Digunakan untuk pewarnaan dan penyaringan sementara (dibahas di task selanjutnya).
Catatan: Pewarnaan paket tidak memengaruhi data asli, hanya bersifat visual untuk membantu analisis.
3. Traffic Sniffing
Traffic sniffing adalah proses menangkap paket jaringan secara langsung dari antarmuka jaringan yang dipilih. Wireshark menyediakan kontrol intuitif melalui tombol-tombol pada toolbar.

Kontrol Sniffing di Wireshark
| Tombol | Fungsi |
|---|---|
| 🦈 Shark (Blue Button) | Memulai proses penangkapan paket (start capture). |
| ⛔ Red Button | Menghentikan proses penangkapan paket (stop capture). |
| ▶️ Green Button | Memulai ulang proses penangkapan paket (restart capture). |
Informasi Status Sniffing
Pada bagian Status Bar, Wireshark akan menampilkan:
- Interface jaringan yang digunakan (misalnya eth0, wlan0).
- Jumlah paket yang berhasil ditangkap.
- Status proses capture (aktif atau berhenti).
Informasi ini membantu analis memastikan bahwa:
- Interface yang benar sedang digunakan.
- Paket benar-benar tertangkap.
- Tidak ada kesalahan saat proses sniffing berlangsung.
4. Merge PCAP Files
Wireshark dapat menggabungkan dua file PCAP menjadi satu file tunggal.
Langkah-langkahnya:
- Buka Wireshark.
- Pilih menu File → Merge.

- Pilih file PCAP kedua yang ingin digabungkan.
- Saat memilih file kedua, Wireshark akan menampilkan jumlah total paket di file tersebut.
- Klik Open.
- Wireshark akan menggabungkan file PCAP yang sedang dibuka dengan file yang dipilih, lalu membuat PCAP baru.
⚠️ Catatan penting: Setelah proses merge selesai, Anda harus menyimpan (Save) file PCAP hasil penggabungan sebelum mulai menganalisisnya.
5. Melihat Detail File (View File Details)
Mengetahui detail file PCAP sangat penting, terutama saat bekerja dengan banyak file PCAP. Informasi ini membantu untuk:

- Mengidentifikasi file
- Mengelompokkan (klasifikasi)
- Menentukan prioritas analisis
Detail yang bisa dilihat antara lain:
- Hash file
- Waktu capture
- Komentar capture file
- Interface yang digunakan
- Statistik capture
Cara melihat detail file:
- Pilih menu Statistics → Capture File Properties, atau
- Klik ikon PCAP yang berada di pojok kiri bawah Wireshark.
Answers Questions
Knowing the file details is helpful. Especially when working with multiple pcap files, sometimes you will need to know and recall the file details (File hash, capture time, capture file comments, interface and statistics) to identify the file, classify and prioritise it. You can view the details by following "Statistics --> Capture File Properties" or by clicking the "pcap icon located on the left bottom" of the window.
Flag: TryHackMe_Wireshark_Demo
- Use the "Exercise.pcapng" file to answer the questions.
- Read the "capture file comments". What is the flag?
TryHackMe_Wireshark_Demo
- What is the total number of packets?
58620
- What is the SHA256 hash value of the capture file?
f446de335565fb0b0ee5e5a3266703c778b2f3dfad7efeaeccb2da5641a6d6eb
Packet Dissection
Overview
Packet dissection juga dikenal sebagai protocol dissection, yaitu proses menganalisis detail paket dengan cara mendekode protokol dan field yang ada di dalamnya. Wireshark mendukung banyak protokol untuk proses dissection ini, dan pengguna juga dapat menulis skrip dissection sendiri.
Catatan: Bagian ini membahas bagaimana Wireshark menggunakan layer OSI untuk memecah paket serta bagaimana layer tersebut digunakan dalam analisis. Diharapkan pembaca sudah memahami model OSI dan cara kerjanya.
Packet Details
Pengguna dapat mengklik satu paket pada packet list pane untuk melihat detailnya (klik dua kali akan membuka detail di jendela baru). Sebuah paket terdiri dari 5 hingga 7 layer, bergantung pada model OSI yang digunakan.

Pada contoh ini, digunakan paket HTTP dari sebuah hasil capture. Gambar menunjukkan tampilan packet nomor 27.
Packet Bytes
Setiap kali pengguna mengklik salah satu detail pada details pane, Wireshark akan menyorot bagian data yang sesuai pada packet bytes pane.

Hal ini memudahkan pengguna untuk melihat hubungan antara field dan data mentah (hex) di dalam paket.
Packet Layers
Dari tampilan details pane, terlihat bahwa paket memiliki tujuh layer utama, yaitu:
- Frame / Packet -> berisi informasi umum tentang paket. Ini akan menunjukkan frame/paket apa yang sedang Anda lihat dan detail spesifik untuk lapisan Fisik dari model OSI.

- Source MAC Address -> berisi alamat MAC sumber, dan alamat MAC tujuan dari paket.

- Source IP Address -> berisi alamat IP sumber dan alamat IP tujuan dari paket.

- Protocol -> berisi informasi tentang protokol yang digunakan dalam paket.

- Protocol Errors -> berisi informasi tentang kesalahan protokol yang mungkin terjadi dalam paket.

- Application Protocol -> berisi informasi tentang protokol aplikasi yang digunakan dalam paket.

- Application Data -> berisi data aplikasi yang dikirim dalam paket.

- Markup language yang digunakan pada protokol HTTP adalah eXtensible Markup Language (XML) berada di paling bawah Http.
- Tanggal kedatangan paket adalah 05/13/2004 berada di Frame.
- Nilai TTL berada di Header Internet Protocol.
- Ukuran payload TCP berada di Transmission Control Protocol.
- Nilai e-tag berada di Hypertext Transfer Protocol.
Pada bagian selanjutnya, masing-masing layer tersebut dapat dianalisis lebih lanjut untuk memahami struktur dan isi paket secara mendalam.

- Use the "Exercise.pcapng" file to answer the questions. View packet number 38. Which markup language is used under the HTTP protocol?
- Packet numbers are shown in the left column at the packet list pane.
eXtensible Markup Language

- What is the arrival date of the packet? (Answer format: Month/Day/Year)
05/13/2004

- What is the TTL value?
- The packet details pane and IP protocol section can help.
47

- What is the TCP payload size?
424

ETag: "9a01a-4696-7e354b00"
- What is the e-tag value?
- (For example: 82ecb-6321-9e904585)
9a01a-4696-7e354b00
Packet Navigation
Packet Numbers
Wireshark menghitung jumlah paket yang dianalisis dan memberikan nomor unik untuk setiap paket. Fitur ini sangat membantu saat menganalisis capture berukuran besar dan memudahkan analis untuk kembali ke titik kejadian tertentu dalam proses analisis.

Go to Packet
Nomor paket tidak hanya berfungsi untuk menghitung total paket atau mencari paket tertentu, tetapi juga membantu navigasi analisis. Fitur Go to Packet memungkinkan pengguna:
- Berpindah antar paket (naik/turun)
- Melacak paket dalam satu frame
- Menemukan paket berikutnya dalam satu percakapan (conversation)

Menu "Go" dan toolbar dapat digunakan untuk langsung menuju paket tertentu berdasarkan nomor.
Find Packets
Selain menggunakan nomor paket, Wireshark juga dapat mencari paket berdasarkan isi kontennya. Fitur ini tersedia melalui menu "Edit → Find Packet" dan sangat berguna untuk menemukan:
- Pola serangan (intrusion)
- Jejak kegagalan sistem
- Aktivitas mencurigakan

Dua poin penting dalam pencarian paket:
1. Tipe Input Pencarian
Wireshark mendukung empat jenis input pencarian:
- Display Filter
- Hex
- String
- Regex
Pencarian String dan Regex adalah yang paling sering digunakan. Secara default pencarian tidak sensitif huruf besar/kecil, namun dapat diubah menggunakan opsi case sensitivity.
2. Field Pencarian
Pencarian dapat dilakukan di tiga pane:
- Packet List
- Packet Details
- Packet Bytes
Penting untuk memilih pane yang sesuai, karena Wireshark tidak akan menemukan data jika pencarian dilakukan di pane yang salah, meskipun data tersebut sebenarnya ada.
Mark Packets
Fitur Mark Packets memungkinkan analis untuk menandai paket tertentu untuk investigasi lanjutan. Manfaatnya antara lain:
- Menandai kejadian penting
- Memudahkan referensi analisis
- Menyaring paket untuk diekspor
Penandaan dapat dilakukan melalui menu "Edit" atau klik kanan pada paket.
- Paket yang ditandai akan ditampilkan berwarna hitam, terlepas dari warna koneksi aslinya
- Tanda tidak disimpan permanen dan akan hilang setelah file capture ditutup
bisa juga gunakan shortcut Ctrl + M untuk menandai paket dengan cepat.

Packet Comments
Fitur Packet Comments memungkinkan pengguna menambahkan catatan pada paket tertentu. Fungsi ini berguna untuk:

- Memberi konteks tambahan pada paket mencurigakan
- Membantu analis lain memahami temuan
- Dokumentasi hasil analisis
Berbeda dengan mark packet, komentar akan tersimpan di dalam file capture sampai dihapus secara manual.
Export Packets
File capture dapat berisi ribuan paket, dan Wireshark bukanlah IDS. Oleh karena itu, sering kali diperlukan untuk memisahkan paket tertentu guna analisis lebih mendalam.
Fitur Export Packets memungkinkan analis:
- Mengekspor hanya paket yang relevan atau mencurigakan
- Mengurangi data yang tidak diperlukan
- Membagikan scope analisis yang lebih spesifik
Fitur ini dapat diakses melalui menu "File".
Export Objects (Files)
Wireshark juga mampu mengekstrak file yang ditransfer melalui jaringan. Bagi analis keamanan, fitur ini penting untuk:
- Menemukan file yang dikirim melalui jaringan
- Menyimpan file untuk analisis lanjutan (malware, dokumen, dll)


Fitur ini hanya tersedia untuk protokol tertentu, seperti:
- DICOM
- HTTP
- IMF
- SMB
- TFTP
Time Display Format
Secara default, Wireshark menampilkan waktu dalam format "Seconds Since Beginning of Capture". Namun, untuk analisis yang lebih jelas, sering digunakan format waktu lain seperti UTC.
Pengaturan ini dapat diubah melalui menu: "View → Time Display Format"


Expert Info
Wireshark memiliki fitur Expert Info untuk mendeteksi kondisi tertentu pada protokol yang dapat mengindikasikan anomali atau masalah. Informasi ini bersifat indikatif, sehingga masih mungkin terjadi false positive atau false negative.

Tingkat Keparahan (Severity)
| Severity | Warna | Keterangan |
|---|---|---|
| Chat | Biru | Informasi alur kerja normal |
| Note | Cyan | Kejadian penting (misalnya error aplikasi) |
| Warn | Kuning | Peringatan seperti error tidak biasa |
| Error | Merah | Masalah serius seperti paket rusak |
Grup Informasi yang Umum
| Grup | Keterangan |
|---|---|
| Checksum | Kesalahan checksum |
| Deprecated | Penggunaan protokol usang |
| Comment | Deteksi komentar paket |
| Malformed | Deteksi paket rusak |
Expert Info dapat dilihat melalui:
- Bagian kiri bawah status bar
- Menu "Analyse → Expert Information"
Dialog ini menampilkan:
- Nomor paket
- Ringkasan kejadian
- Grup protokol
- Jumlah kemunculan

- Use the "Exercise.pcapng" file to answer the questions. Search the "r4w" string in packet details. What is the name of artist 1?
r4w8173

ternyata flag tidak ada disini namun kita disuruh pergi ke ke packet number 39765.
setelah di cek kita menemukan gambar dankita export dan gunakan md5sum di terminal untuk mendapatkan hashnya.

md5sum a
911cd574a42865a956ccde2d04495ebf a- Go to packet 12 and read the packet comments. What is the answer? Note: use md5sum terminal command to get MD5 hash
911cd574a42865a956ccde2d04495ebf
*.txt

- There is a ".txt" file inside the capture file. Find the file and read it; what is the alien's name?
PACKETMASTER

- Look at the expert info section. What is the number of warnings?
1636
Packet Filtering
Wireshark memiliki filter engine yang sangat kuat untuk membantu analis mempersempit trafik dan fokus pada kejadian yang ingin dianalisis. Terdapat dua jenis filter di Wireshark:
- Capture Filter → Menentukan paket apa saja yang ditangkap sejak awal
- Display Filter → Menentukan paket apa saja yang ditampilkan saat analisis
Pada bagian ini difokuskan pada penggunaan dasar display filter, karena paling sering digunakan dalam proses analisis awal.
Filter di Wireshark berupa query khusus yang dibuat berdasarkan protokol resmi yang didukung Wireshark. Terdapat dua cara utama untuk memfilter trafik dan menghilangkan noise:
- Menggunakan query filter
- Menggunakan klik kanan (GUI)
💡 Golden rule Wireshark: “If you can click on it, you can filter and copy it.”
Apply as Filter

Ini adalah cara paling dasar untuk melakukan filtering. Analis dapat:
- Mengklik field tertentu pada packet details
- Menggunakan klik kanan atau menu "Analyse → Apply as Filter"
Setelah filter diterapkan:
- Wireshark otomatis membuat query filter
- Hanya paket yang sesuai yang ditampilkan
- Paket lain disembunyikan dari packet list pane
Jumlah total paket dan paket yang ditampilkan selalu terlihat di status bar.
Conversation Filter
Berbeda dengan Apply as Filter yang hanya memfilter satu nilai, Conversation Filter digunakan untuk:
- Melihat semua paket yang saling berhubungan
- Berdasarkan IP address dan port
- Cocok untuk analisis satu sesi komunikasi
Fitur ini dapat diakses melalui:
- Klik kanan
- Menu "Analyse → Conversation Filter"


Colourise Conversation
Fitur ini mirip dengan Conversation Filter, tetapi:
- Tidak menyaring paket
- Hanya memberi warna pada paket-paket yang saling terkait
Fitur ini:
- Bekerja dengan Colouring Rules
- Mengabaikan aturan warna sebelumnya
Akses melalui:
- Klik kanan
- Menu "View → Colourise Conversation"

Untuk membatalkan:
- "View → Colourise Conversation → Reset Colourisation"
Prepare as Filter
Fungsi ini mirip dengan Apply as Filter, namun:
- Filter tidak langsung diterapkan
- Query hanya dimasukkan ke display filter bar
Analis dapat:
- Menjalankan filter dengan menekan Enter
- Menggabungkan filter lain menggunakan AND / OR

Cocok untuk membuat filter kompleks secara bertahap.
Apply as Column
Secara default, packet list pane hanya menampilkan informasi dasar. Dengan fitur ini, analis dapat:
- Menambahkan field tertentu sebagai kolom baru
- Melihat pola nilai field tersebut di seluruh paket
Akses melalui:
- Klik kanan
- Menu "Analyse → Apply as Column"
Kolom dapat:
- Diaktifkan / dinonaktifkan
- Diatur langsung dari header packet list pane
Follow Stream
Secara default, Wireshark menampilkan data dalam bentuk potongan paket. Fitur Follow Stream memungkinkan analis:
- Menggabungkan paket menjadi alur data aplikasi
- Melihat isi komunikasi secara utuh
- Menganalisis data tidak terenkripsi seperti username, password, dan payload
Jenis stream yang bisa diikuti:
- TCP
- UDP
- HTTP
Akses melalui:
- Klik kanan
- Menu "Analyse → Follow TCP/UDP/HTTP Stream"

Tampilan stream:
- Biru → Data dari server
- Merah → Data dari client

Filter Otomatis Setelah Follow Stream
Saat mengikuti stream:
- Wireshark otomatis membuat dan menerapkan display filter
- Jumlah paket yang terlihat akan berkurang
Untuk melihat kembali semua paket:
- Klik tombol "X" di sisi kanan display filter bar
Preference Custom Column

Answers Questions
Use the "Exercise.pcapng" file to answer the questions.
- Go to packet number 4. Right-click on the "Hypertext Transfer Protocol" and apply it as a filter.
- Now, look at the filter pane. What is the filter query?
http

- What is the number of displayed packets?
1089


<a href='artists.php?artist=1'><h3>r4w8173</h3></a>
<a href='artists.php?artist=2'><h3>Blad3</h3></a>
<a href='artists.php?artist=3'><h3>lyzae</h3></a>- Go to packet number 33790, follow the HTTP stream, and look carefully at the responses.
- Looking at the web server's response, what is the total number of artists?
3
- What is the name of the second artist?
Blad3
Tcpdump: The Basics
overview
Tantangan utama dalam mempelajari protokol jaringan adalah kita jarang dapat melihat secara langsung “percakapan” antar protokol yang terjadi di balik layar. Kompleksitas teknis jaringan tersembunyi di balik antarmuka pengguna yang sederhana dan ramah.
Sebagai contoh, kita dapat mengakses sumber daya di jaringan lokal tanpa pernah melihat proses ARP request, atau menggunakan layanan internet selama bertahun-tahun tanpa menyadari adanya TCP three-way handshake, kecuali kita mempelajarinya melalui buku jaringan atau melakukan analisis traffic.
Cara terbaik untuk memahami cara kerja protokol jaringan adalah dengan menangkap dan menganalisis traffic jaringan secara langsung. Dengan metode ini, kita dapat melihat bagaimana protokol bekerja dan saling berinteraksi.
Tcpdump adalah tool command-line untuk menangkap dan menganalisis traffic jaringan. Tcpdump dan library pendukungnya, libpcap, ditulis menggunakan bahasa C dan C++ dan pertama kali dirilis untuk sistem Unix-like pada akhir 1980-an hingga awal 1990-an.
Karena usianya yang panjang, Tcpdump dikenal sebagai tool yang:
- Sangat stabil
- Memiliki performa tinggi
- Banyak digunakan dalam analisis jaringan
Library libpcap menjadi fondasi bagi banyak tool jaringan lainnya. Selain itu, libpcap juga telah di-port ke sistem Microsoft Windows dengan nama WinPcap.
Cred For SSH
Username: user Password: THM123
ssh user@10.48.179.54
- What is the name of the library that is associated with tcpdump?
libpcap
Basic Packet Capture
Penggunaan Dasar Tcpdump
Tcpdump dapat dijalankan tanpa argumen, namun hal ini hanya berguna untuk memastikan bahwa tool tersebut sudah terpasang. Dalam penggunaan nyata, kita perlu menentukan secara jelas:
- Interface jaringan yang akan dipantau
- Lokasi penyimpanan hasil capture
- Cara menampilkan paket yang ditangkap
Menentukan Network Interface
Untuk menangkap traffic, kita harus menentukan interface jaringan menggunakan opsi:
-i INTERFACE
Beberapa pilihan yang umum:
-i any→ mendengarkan semua interface yang tersedia-i eth0,-i ens5, dll → mendengarkan interface tertentu
Untuk melihat daftar interface jaringan yang tersedia, gunakan perintah:
ip address show atau ip a s
Contoh hasil menunjukkan adanya:
lo→ loopback interfaceens5→ network interface utama
Menyimpan Hasil Capture ke File
Dalam banyak kasus, paket yang ditangkap perlu dianalisis kembali di kemudian hari. Hal ini dapat dilakukan dengan menyimpan hasil capture menggunakan:
-w FILE
- Biasanya file menggunakan ekstensi
.pcap - File
.pcapdapat dibuka dengan tool lain seperti Wireshark - Saat menggunakan
-w, paket tidak ditampilkan di layar
Membaca Paket dari File
Tcpdump juga dapat digunakan untuk membaca hasil capture dari file menggunakan:
-r FILE
Fungsi ini sangat berguna untuk:
- Mempelajari perilaku protokol jaringan
- Menganalisis traffic tertentu dengan filter
- Melakukan analisis serangan jaringan dari file capture
Membatasi Jumlah Paket yang Ditangkap
Untuk membatasi jumlah paket yang akan ditangkap, gunakan:
-c COUNT
Tanpa opsi ini, tcpdump akan terus berjalan hingga dihentikan secara manual dengan CTRL-C. Pembatasan paket berguna ketika hanya membutuhkan sampel traffic tertentu.
Menonaktifkan Resolusi IP dan Port
Secara default, tcpdump akan:
- Melakukan DNS lookup untuk IP address
- Menerjemahkan port number (misalnya port 80 menjadi
http)
Opsi yang tersedia:
-n→ tidak melakukan resolusi IP (DNS lookup)-nn→ tidak melakukan resolusi IP dan port number
Penggunaan opsi ini membantu:
- Mempercepat proses capture
- Menghindari traffic tambahan akibat DNS lookup
- Menampilkan informasi jaringan secara mentah dan jelas
Mode Output Verbose
Untuk menampilkan detail paket yang lebih lengkap, gunakan opsi verbose:
-v→ verbose dasar-vv→ lebih detail-vvv→ detail paling lengkap
Mode verbose menampilkan informasi tambahan seperti:
- TTL (Time To Live)
- Identification
- Total length
- IP options
Ringkasan Opsi Tcpdump
| Perintah | Penjelasan |
|---|---|
tcpdump -i INTERFACE | Menangkap paket pada interface tertentu |
tcpdump -w FILE | Menyimpan hasil capture ke file |
tcpdump -r FILE | Membaca paket dari file |
tcpdump -c COUNT | Membatasi jumlah paket |
tcpdump -n | Tidak melakukan resolusi IP |
tcpdump -nn | Tidak melakukan resolusi IP dan port |
tcpdump -v | Menampilkan output verbose |
Contoh Penggunaan
Menangkap 50 paket di interface eth0 dengan output verbose:
tcpdump -i eth0 -c 50 -v
Menangkap traffic WiFi dan menyimpannya ke file:
tcpdump -i wlo1 -w data.pcap
Menangkap semua interface tanpa resolusi IP dan port:
tcpdump -i any -nn
sudo tcpdump -i ens5 -c 5 -n
# [sudo] password for user:
# tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
# listening on ens5, link-type EN10MB (Ethernet), capture size 262144 bytes
# 11:06:08.916543 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 2961504810:2961504998, ack 3820050716, win 474, length 188
# 11:06:08.916758 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 188:360, ack 1, win 474, length 172
# 11:06:08.916874 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 360:508, ack 1, win 474, length 148
# 11:06:08.916980 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 508:656, ack 1, win 474, length 148
# 11:06:08.917097 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 656:804, ack 1, win 474, length 148
# 5 packets captured
# 6 packets received by filter
# 0 packets dropped by kernel
sudo tcpdump -i ens5 -c 20 -w output.pcap -v
# tcpdump: listening on ens5, link-type EN10MB (Ethernet), capture size 262144 bytes
# 20 packets captured
# 38 packets received by filter
# 0 packets dropped by kernel
tcpdump -r output.pcap -nn
# reading from file output.pcap, link-type EN10MB (Ethernet)
# 11:07:50.714763 IP 10.48.179.54.22 > 192.168.146.209.59057: Flags [P.], seq 2961506222:2961506346, ack 3820050908, win 474, length 124
# 11:07:50.818402 IP 192.168.146.209.59057 > 10.48.179.54.22: Flags [.], ack 124, win 253, length 0
# 11:07:50.906531 IP 10.48.179.54.42660 > 172.31.65.32.443: Flags [P.], seq 2574540558:2574542421, ack 3339662590, win 443, options [nop,nop,TS val 3522673919 ecr 3056469205], length 1863
# 11:07:50.906976 IP 10.48.179.54.49440 > 10.48.0.2.53: 62467+ [1au] AAAA? b-1.kafka.aw1jw3.c1.kafka.eu-west-1.amazonaws.com. (78)
# 11:07:50.907121 IP 10.48.179.54.55516 > 10.48.0.2.53: 1474+ [1au] A? b-1.kafka.aw1jw3.c1.kafka.eu-west-1.amazonaws.com. (78)- What option can you add to your command to display addresses only in numeric format?
-n
Filtering Expressions
Pentingnya Filtering pada Tcpdump
Menjalankan tcpdump tanpa filter sebenarnya tidak efektif. Sama seperti berada di keramaian, kita tidak mungkin mendengarkan semua percakapan sekaligus. Jumlah paket yang melewati network interface sangat banyak, sehingga kita harus memfokuskan capture pada traffic tertentu yang ingin dianalisis.
Filtering memungkinkan kita menangkap hanya paket yang relevan, sehingga analisis menjadi lebih mudah dan efisien.
Filtering Berdasarkan Host
Untuk menangkap paket yang berkomunikasi dengan host tertentu (misalnya printer jaringan atau server game), kita dapat menggunakan filter:
host IP atau host HOSTNAME
Contoh: menangkap semua paket yang berkomunikasi dengan example.com dan menyimpannya ke file:
sudo tcpdump host example.com -w http.pcap
- Capture paket membutuhkan hak akses root atau
sudo - Filter ini menangkap paket ke dan dari host tersebut
Source dan Destination Host
Filter dapat dipersempit lebih lanjut:
src host IP/HOSTNAME→ hanya paket dari sumber tertentudst host IP/HOSTNAME→ hanya paket ke tujuan tertentu
sudo tcpdump host ariaf.my.id -w ariaf.pcap -c 3 &
ping ariaf.my.id
sudo pkill tcpdump
tcpdump -r ariaf.pcap -n
# reading from file ariaf.pcap, link-type EN10MB (Ethernet)
# 11:22:23.083981 IP 10.48.179.54 > 185.199.108.153: ICMP echo request, id 2, seq 1, length 64
# 11:22:24.106450 IP 10.48.179.54 > 185.199.108.153: ICMP echo request, id 2, seq 2, length 64
# 11:22:25.130420 IP 10.48.179.54 > 185.199.108.153: ICMP echo request, id 2, seq 3, length 64Filtering Berdasarkan Port
Untuk menangkap traffic pada port tertentu, gunakan filter:
port PORT_NUMBER
Contoh: menangkap seluruh traffic DNS (port 53):
sudo tcpdump -i ens5 port 53 -n
# jalankan tcpdump, dan lakukan ping di terminal lain
sudo tcpdump -i ens5 port 53 -n
# tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
# 11:24:58.883403 IP 10.48.179.54.49647 > 10.48.0.2.53: 45918+ [1au] A? example.cpm. (40)
# 11:24:58.883531 IP 10.48.179.54.52640 > 10.48.0.2.53: 8100+ [1au] AAAA? example.cpm. (40)
# 11:24:58.886123 IP 10.48.0.2.53 > 10.48.179.54.49647: 45918 NXDomain 0/1/1 (115)DNS menggunakan:
- UDP port 53
- TCP port 53
Tcpdump otomatis menangkap keduanya jika filter
port 53digunakan.
Source dan Destination Port
Filter lanjutan:
src port PORT_NUMBER→ paket dari port tertentudst port PORT_NUMBER→ paket menuju port tertentu
Filtering Berdasarkan Protokol
Tcpdump juga mendukung filter berdasarkan protokol jaringan. Beberapa contoh protokol yang dapat difilter:
ipip6tcpudpicmp
Contoh: menangkap hanya paket ICMP:
sudo tcpdump -i ens5 icmp -n
# jalankan tcpdump, dan lakukan ping di terminal lain
udo tcpdump -i ens5 icmp -n
# tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
# listening on ens5, link-type EN10MB (Ethernet), capture size 262144 bytes
# 11:26:14.861011 IP 10.48.179.54 > 104.18.26.120: ICMP echo request, id 3, seq 1, length 64
# 11:26:15.882448 IP 10.48.179.54 > 104.18.26.120: ICMP echo request, id 3, seq 2, length 64Dari hasil capture ICMP, kita dapat mengidentifikasi:
- *ICMP Echo Request & Reply- → indikasi perintah
ping - ICMP Time Exceeded → ser- g muncul saat menjalankan
traceroute
Logical Operators pada Filter
Tcpdump mendukung operator logika untuk membuat filter yang lebih kompleks:
Operator yang Tersedia
and→ kedua kondisi harus terpenuhior→ salah satu kondisi terpenuhinot→ kondisi tidak terpenuhi
Contoh Penggunaan
Menangkap TCP traffic dengan host tertentu:
tcpdump host 1.1.1.1 and tcp
Menangkap UDP atau ICMP:
tcpdump udp or icmp
Menangkap semua paket kecuali TCP:
tcpdump not tcp
Ringkasan Filter Tcpdump
| Perintah | Penjelasan |
|---|---|
tcpdump host IP/HOSTNAME | Filter berdasarkan host |
tcpdump src host IP | Filter berdasarkan source host |
tcpdump dst host IP | Filter berdasarkan destination host |
tcpdump port PORT | Filter berdasarkan port |
tcpdump src port PORT | Filter berdasarkan source port |
tcpdump dst port PORT | Filter berdasarkan destination port |
tcpdump PROTOCOL | Filter berdasarkan protokol |
Contoh Penggunaan Filter
Menangkap traffic SSH di semua interface:
tcpdump -i any tcp port 22
Menangkap traffic NTP (UDP port 123) di WiFi:
tcpdump -i wlo1 udp port 123
Menangkap HTTPS traffic ke example.com dan menyimpannya ke file:
tcpdump -i eth0 host example.com and tcp port 443 -w https.pcap
Membaca File Capture dan Analisis Lanjutan
Untuk membaca file hasil capture, gunakan:
tcpdump -r FILE
Contoh: menampilkan 5 paket pertama tanpa resolusi IP:
tcpdump -r traffic.pcap -c 5 -n
Membaca file .pcap tidak memerlukan sudo.
Menghitung Jumlah Paket
Output tcpdump dapat diproses menggunakan perintah lain seperti wc untuk menghitung jumlah baris (paket):
tcpdump -r traffic.pcap src host 192.168.124.1 -n | wc
Contoh hasil menunjukkan:
- 910 paket
- Dengan source IP
192.168.124.1
Opsi
-ndigunakan untuk menghindari delay akibat DNS resolution.
tcpdump -r traffic.pcap icmp -n
# eading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:19:49.974597 IP 192.168.124.148 > 192.168.124.137: ICMP echo request, id 28942, seq 295, length 128
# 07:19:49.974616 IP 192.168.124.137 > 192.168.124.148: ICMP echo reply, id 28942, seq 295, length 128
tcpdump -r traffic.pcap icmp -n | wc
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 26 358 2722- How many packets in traffic.pcap use the ICMP protocol?
26
tcpdump -r traffic.pcap arp -n
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:29.940761 ARP, Request who-has 192.168.124.137 tell 192.168.124.148, length 28
# 07:18:29.940776 ARP, Reply 192.168.124.137 is-at 52:54:00:23:60:2b, length 28- What is the IP address of the host that asked for the MAC address of 192.168.124.137?
- Filter by ARP
192.168.124.148
tcpdump -r traffic.pcap port 53 -n
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:24.058626 IP 192.168.124.137.33672 > 192.168.124.1.53: 39913+ A? mirrors.rockylinux.org. (40)
# 07:18:24.058652 IP 192.168.124.137.33672 > 192.168.124.1.53: 27109+ AAAA? mirrors.rockylinux.org. (4- What hostname (subdomain) appears in the first DNS query?
mirrors.rockylinux.org
Advanced Filtering
Advanced Filtering pada Tcpdump
Dalam kondisi nyata, kita akan berhadapan dengan ribuan bahkan jutaan paket. Oleh karena itu, kemampuan untuk mengekspresikan filter yang sangat spesifik menjadi hal yang krusial agar hanya paket yang relevan saja yang ditampilkan.
Tcpdump menyediakan berbagai teknik filtering lanjutan untuk memenuhi kebutuhan tersebut.
Filtering Berdasarkan Panjang Paket
Tcpdump memungkinkan penyaringan paket berdasarkan ukuran (length) paket:
greater LENGTH→ Menampilkan paket dengan panjang lebih besar atau sama dengan nilai yang ditentukanless LENGTH→ Menampilkan paket dengan panjang lebih kecil atau sama dengan nilai yang ditentukan
Filter ini berguna ketika:
- Mencari paket anomali
- Menganalisis payload tertentu
- Mengabaikan paket kecil seperti ACK-only
Binary Operations (Operasi Biner)
Advanced filtering memanfaatkan operasi biner yang bekerja pada bit (0 dan 1). Operasi ini penting untuk memahami filter berbasis header byte dan TCP flags.
Operator Biner Dasar
AND (&)
Menghasilkan 1 hanya jika kedua input bernilai 1.
| Input 1 | Input 2 | Hasil |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
OR (|)
Menghasilkan 1 jika salah satu input bernilai 1.
| Input 1 | Input 2 | Hasil |
|---|---|---|
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
| 1 | 1 | 1 |
NOT (!)
Membalik nilai bit.
| Input | Hasil |
|---|---|
| 0 | 1 |
| 1 | 0 |
Filtering Berdasarkan Header Byte
Tcpdump (melalui pcap-filter) memungkinkan kita memfilter paket berdasarkan isi byte tertentu pada header protokol.
Format Umum
proto[expr:size]
Keterangan:
proto→ protokol (arp, ether, icmp, ip, ip6, tcp, udp)expr→ offset byte (dimulai dari 0)size→ jumlah byte (1, 2, atau 4; default = 1)
Contoh (Konseptual)
ether[0] & 1 != 0→ Menampilkan paket Ethernet multicastip[0] & 0xf != 5→ Menampilkan paket IP yang memiliki IP options
Contoh ini menunjukkan seberapa dalam kemampuan filtering tcpdump, meskipun tidak wajib dipahami sepenuhnya pada tahap ini.
Filtering TCP Flags
Fokus utama advanced filtering pada materi ini adalah TCP flags, yang sangat berguna untuk menganalisis koneksi TCP.
Akses TCP Flags
tcp[tcpflags]
TCP Flags yang Tersedia
tcp-syn→ SYN (Synchronize)tcp-ack→ ACK (Acknowledge)tcp-fin→ FIN (Finish)tcp-rst→ RST (Reset)tcp-push→ PSH (Push)
Contoh Advanced TCP Flag Filtering
- Menangkap paket TCP hanya dengan SYN (tanpa flag lain):
tcpdump "tcp[tcpflags] == tcp-syn" - Menangkap paket TCP yang memiliki flag SYN (boleh ada flag lain):
tcpdump "tcp[tcpflags] & tcp-syn != 0" - Menangkap paket TCP dengan SYN atau ACK:
tcpdump "tcp[tcpflags] & (tcp-syn | tcp-ack) != 0"
Filter ini sangat berguna untuk:
- Menganalisis TCP handshake
- Mendeteksi scan jaringan
- Mengidentifikasi perilaku koneksi abnormal
tcpdump -n -r traffic.pcap tcp
tcpdump -n -r traffic.pcap "tcp[tcpflags] == tcp-rst"
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:24.477352 IP 192.168.124.137.53660 > 199.232.194.132.443: Flags [R], seq 709170445, win 0, length 0
# 07:18:24.477372 IP 192.168.124.137.53660 > 199.232.194.132.443: Flags [R], seq 709170445, win 0, length 0
tcpdump -n -r traffic.pcap "tcp[tcpflags] == tcp-rst" | wc
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 57 741 5975- How many packets have only the TCP Reset (RST) flag set?
57
tcpdump -n -r traffic.pcap greater 15000
reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:24.967023 IP 185.117.80.53.80 > 192.168.124.137.60518: Flags [.], seq 2140876081:2140896901, ack 741991605, win 235, options [nop,nop,TS val 2226566282 ecr 3054280184], length 20820: HTTP
# 07:18:25.778012 IP 185.117.80.53.80 > 192.168.124.137.60518: Flags [.], seq 1293616:1308884, ack 1, win 235, options [nop,nop,TS val 2226567095 ecr 3054280994], length 15268: HTTP- What is the IP address of the host that sent packets larger than 15000 bytes?
185.117.80.53.80
Displaying Packets
Tcpdump menyediakan banyak opsi untuk mengatur cara paket ditampilkan. Opsi-opsi ini sangat berguna untuk analisis, debugging, maupun pembelajaran protokol jaringan.
Pada bagian ini, difokuskan pada lima opsi utama yang mengubah format output paket:
-q→ output singkat-e→ menampilkan header link-layer-A→ menampilkan data paket dalam format ASCII-xx→ menampilkan data paket dalam format heksadesimal-X→ menampilkan data paket dalam format heksadesimal dan ASCII
Sebagai pembanding, awalnya paket ditampilkan tanpa opsi tambahan, sehingga hanya informasi standar seperti IP, port, flag TCP, dan panjang paket yang terlihat.
tcpdump -r TwoPackets.pcap
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
# 18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29Output Singkat (Quick Output)
Opsi -q digunakan untuk menampilkan informasi paket secara ringkas.
tcpdump -r TwoPackets.pcap -q
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 IP 104.18.12.149.https > g5000.45248: tcp 25
# 18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: tcp 29Ciri utama:
- Menampilkan timestamp
- Menampilkan source dan destination IP
- Menampilkan source dan destination port
- Tidak menampilkan detail TCP flags atau opsi tambahan
Opsi ini cocok digunakan ketika:
- Hanya membutuhkan gambaran umum traffic
- Ingin output yang mudah dibaca dan tidak panjang
Menampilkan Link-Level Header
Opsi -e digunakan untuk menampilkan header link-layer, seperti:
- MAC address sumber
- MAC address tujuan
- EtherType
tcpdump -r TwoPackets.pcap -e
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 44:df:65:d8:fe:6c (oui Unknown) > 02:83:1e:40:5d:17 (oui Unknown), ethertype IPv4 (0x0800), length 91: 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
# 18:59:59.980574 02:83:1e:40:5d:17 (oui Unknown) > 44:df:65:d8:fe:6c (oui Unknown), ethertype IPv4 (0x0800), length 95: g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29Fitur ini sangat berguna untuk:
- Mempelajari protokol seperti ARP dan DHCP
- Melacak asal paket yang mencurigakan
- Analisis jaringan Ethernet atau WiFi
Menampilkan Paket dalam Format ASCII
Opsi -A menampilkan payload paket dalam format ASCII.
tcpdump -r TwoPackets.pcap -A
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
# E..M..@.5..)h.....BY.......|.;5}...........
# ..1...k......j.3.2.....&9a.....-L
# 18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
# E..Ql.@.@.VV..BYh........;5}...............
# ..k...1.......1.y.&VC<#._J$..z...D#.`Karakteristik:
- Byte yang merepresentasikan huruf, angka, dan simbol akan ditampilkan
- Cocok untuk traffic berbasis teks (misalnya HTTP)
Keterbatasan:
- Tidak efektif untuk data terenkripsi
- Tidak cocok untuk data terkompresi
- Tidak mendukung bahasa non-alfabet Latin
Menampilkan Paket dalam Format Heksadesimal
Opsi -xx digunakan untuk menampilkan seluruh isi paket dalam format heksadesimal (hex).
tcpdump -r TwoPackets.pcap -xx
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
# 0x0000: 0283 1e40 5d17 44df 65d8 fe6c 0800 4500
# 0x0010: 004d fbd8 4000 3506 d229 6812 0c95 c0a8
# 0x0020: 4259 01bb b0c0 a0b1 037c aa3b 357d 8018
# 0x0030: 0010 f905 0000 0101 080a 189a 310d ebfa
# 0x0040: 6b2e 1703 0300 146a 8f33 1832 e6a2 fb99
# 0x0050: eb26 3961 dad4 1611 152d 4c
# 18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
# 0x0000: 44df 65d8 fe6c 0283 1e40 5d17 0800 4500
# 0x0010: 0051 6ca8 4000 4006 5656 c0a8 4259 6812
# 0x0020: 0c95 b0c0 01bb aa3b 357d a0b1 0395 8018
# 0x0030: 087f 17e0 0000 0101 080a ebfa 6be8 189a
# 0x0040: 310d 1703 0300 18f4 31fa 798d 2656 433c
# 0x0050: 2389 5f4a 24c2 fa7a 1496 8444 238e 60Keunggulan:
- Semua data dapat ditampilkan tanpa tergantung encoding
- Memungkinkan analisis byte-per-byte
- Cocok untuk melihat struktur header IP dan TCP secara detail
Setiap byte ditampilkan sebagai dua digit heksadesimal (karena 1 byte = 8 bit).
Kombinasi Hex dan ASCII
Opsi -X menggabungkan keunggulan dari -xx dan -A.
tcpdump -r TwoPackets.pcap -X
# reading from file TwoPackets.pcap, link-type EN10MB (Ethernet), snapshot length 262144
# 18:59:59.979771 IP 104.18.12.149.https > g5000.45248: Flags [P.], seq 2695955324:2695955349, ack 2856007037, win 16, options [nop,nop,TS val 412758285 ecr 3959057198], length 25
# 0x0000: 4500 004d fbd8 4000 3506 d229 6812 0c95 E..M..@.5..)h...
# 0x0010: c0a8 4259 01bb b0c0 a0b1 037c aa3b 357d ..BY.......|.;5}
# 0x0020: 8018 0010 f905 0000 0101 080a 189a 310d ..............1.
# 0x0030: ebfa 6b2e 1703 0300 146a 8f33 1832 e6a2 ..k......j.3.2..
# 0x0040: fb99 eb26 3961 dad4 1611 152d 4c ...&9a.....-L
# 18:59:59.980574 IP g5000.45248 > 104.18.12.149.https: Flags [P.], seq 1:30, ack 25, win 2175, options [nop,nop,TS val 3959057384 ecr 412758285], length 29
# 0x0000: 4500 0051 6ca8 4000 4006 5656 c0a8 4259 E..Ql.@.@.VV..BY
# 0x0010: 6812 0c95 b0c0 01bb aa3b 357d a0b1 0395 h........;5}....
# 0x0020: 8018 087f 17e0 0000 0101 080a ebfa 6be8 ..............k.
# 0x0030: 189a 310d 1703 0300 18f4 31fa 798d 2656 ..1.......1.y.&V
# 0x0040: 433c 2389 5f4a 24c2 fa7a 1496 8444 238e C<#._J$..z...D#.
# 0x0050: 60Hasil yang ditampilkan:
- Kolom kiri → data dalam format heksadesimal
- Kolom kanan → representasi ASCII (jika memungkinkan)
Opsi ini sering digunakan karena:
- Memberikan konteks teknis dan keterbacaan sekaligus
- Sangat membantu dalam analisis payload dan header
| Perintah | Penjelasan |
|---|---|
tcpdump -q | Output singkat (quick), informasi paket minimal |
tcpdump -e | Menampilkan header link-layer (MAC address) |
tcpdump -A | Menampilkan payload paket dalam format ASCII |
tcpdump -xx | Menampilkan paket dalam format heksadesimal |
tcpdump -X | Menampilkan paket dalam format heksadesimal dan ASCII |
# tidak menampilkan source mac address
tcpdump -r traffic.pcap arp -q
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:29.940761 ARP, Request who-has ip-192-168-124-137.ap-south-1.compute.internal tell ip-192-168-124-148.ap-south-1.compute.internal, length 28
# 07:18:29.940776 ARP, Reply ip-192-168-124-137.ap-south-1.compute.internal is-at 52:54:00:23:60:2b (oui Unknown), length 28
# menampilkan source dan destination mac address
tcpdump -r traffic.pcap arp -e
# reading from file traffic.pcap, link-type EN10MB (Ethernet)
# 07:18:29.940761 52:54:00:7c:d3:5b (oui Unknown) > Broadcast, ethertype ARP (0x0806), length 42: Request who-has ip-192-168-124-137.ap-south-1.compute.internal tell ip-192-168-124-148.ap-south-1.compute.internal, length 28
# 07:18:29.940776 52:54:00:23:60:2b (oui Unknown) > 52:54:00:7c:d3:5b (oui Unknown), ethertype ARP (0x0806), length 42: Reply ip-192-168-124-137.ap-south-1.compute.internal is-at 52:54:00:23:60:2b (oui Unknown), length 28- What is the MAC address of the host that sent an ARP request?
52:54:00:7c:d3:5b
Nmap: The Basics
Host Discovery: Who Is Online
- Tujuan: mencari host yang online di jaringan menggunakan Nmap
- Penentuan target Nmap:
- Rentang IP →
192.168.0.1-10 - Subnet →
192.168.0.0/24 - Hostname →
example.thm
- Rentang IP →
- Opsi host discovery:
-sn(ping scan) -snhanya mengecek host aktif, tidak scan port- Nmap dijalankan sebagai root / sudo agar fitur tidak terbatas
Scan jaringan lokal:
nmap -sn 192.168.66.0/24
Starting Nmap 7.92 ( https://nmap.org ) at 2024-08-07 13:49 EEST
Nmap scan report for XiaoQiang (192.168.66.1)
Host is up (0.0069s latency).
MAC Address: 44:DF:65:D8:FE:6C (Unknown)
Nmap scan report for S190023240007 (192.168.66.88)
Host is up (0.090s latency).
MAC Address: 7C:DF:A1:D3:8C:5C (Espressif)
Nmap scan report for wlan0 (192.168.66.97)
Host is up (0.20s latency).
MAC Address: 10:D5:61:E2:18:E6 (Tuya Smart)
Nmap scan report for 192.168.66.179
Host is up (0.10s latency).
MAC Address: E4:AA:EC:8F:88:C9 (Tianjin Hualai Technology)
[...]
Nmap done: 256 IP addresses (7 hosts up) scanned in 2.64 seconds- Contoh:
nmap -sn 192.168.66.0/24 - Menggunakan ARP request
- Host yang membalas ARP → Host is up
- MAC address & vendor bisa diketahui
Scan jaringan remote:
- ARP tidak bisa digunakan
- Menggunakan kombinasi:
- ICMP echo (ping)
- ICMP timestamp
- TCP SYN (port 443)
- TCP ACK (port 80)
- Host dianggap hidup jika ada respons
Opsi tambahan:
-
-sL→ hanya menampilkan daftar target -
-sncocok untuk enumerasi awal -
Tidak menampilkan service yang berjalan
nmap -sn 192.168.0.1/27
# all host not up
nmap -sL 192.168.0.1/27
# Nmap scan report for 192.168.0.0
# Nmap scan report for 192.168.0.1
# [...]
# Nmap scan report for 192.168.0.31
Nmap done: 32 IP addresses (0 hosts up) scanned in 0.00 seconds- What is the last IP address that will be scanned when your scan target is 192.168.0.1/27?
192.168.0.31
Port Scanning: Who Is Listening
- Tujuan: menemukan service jaringan pada host yang sudah terbukti hidup
- Network service:
- Proses yang listen di TCP / UDP port
- Contoh:
- Web → TCP 80, 443
- DNS → UDP/TCP 53
Total port:
- TCP: 65.535
- UDP: 65.535
Cara dasar cek TCP port:
- Coba koneksi ke setiap port
- Port terbuka → handshake berhasil
- Mirip metode Telnet
TCP Connect Scan:
- Opsi:
-sT - Melakukan full TCP three-way handshake
- Jika sukses → koneksi langsung ditutup (RST)
- Port tertutup → target balas RST-ACK
- Lebih noisy

SYN -> SYN-ACK -> ACK -> RST-ACK -> SYN -> RST-ACK (client) -> (server) -> (client) -> (client) -> (client) -> (server)
TCP SYN Scan (Stealth):
- Opsi:
-sS - Hanya kirim SYN
- Port terbuka → balas SYN-ACK
- Nmap balas RST (tidak lanjut handshake)
- Lebih stealth, log lebih sedikit
SYN -> SYN-ACK -> RST -> SYN -> RST-ACK
(client) -> (server) -> (client) -> (client) -> (server)
UDP Scan:
- Opsi:
-sU - Digunakan untuk service UDP
- Contoh service:
- DNS
- DHCP
- NTP
- SNMP
- VoIP
- Port tertutup → ICMP destination unreachable
- Lebih lambat & sulit dianalisis
UDP Packet -> ICMP Destination Unreachable
(client) -> (server) -> (server)
Pembatasan port scan:
- Default: 1000 port paling umum
-F→ scan 100 port umum-p10-1024→ scan port 10 sampai 1024-p-25→ scan port 1 sampai 25-p-→ scan semua port (1–65535)
kesimpulan
-sn→ host discovery (ping scan)-sT→ TCP connect scan (full handshake)-sS→ TCP SYN scan (stealth)-sU→ UDP scan-F→ scan 100 port umum-p→ tentukan port spesifik atau rentang port
nmap -sS 10.49.144.2
# 7/tcp open echo
# 9/tcp open discard
# 13/tcp open daytime
# 17/tcp open qotd
# 22/tcp open ssh
# 8008/tcp open http
nmap -sT 10.49.144.2
# PORT STATE SERVICE
# 7/tcp open echo
# 9/tcp open discard
# 13/tcp open daytime
# 17/tcp open qotd
# 22/tcp open ssh
# 8008/tcp open http- How many TCP ports are open on the target system at 10.49.144.2?
6
curl -s http://10.49.144.2:8008 | grep -i THM
# <span style="font-size: 24px;"><code>THM{SECRET_PAGE_38B9P6}</code></span>- Find the listening web server on 10.49.144.2 and access it with your browser. What is the flag that appears on its main page?
- Use Firefox to access http://IP_ADDRESS:PORT_NUMBER, where IP_ADDRESS is the IP address of the target server, and PORT_NUMBER is the TCP port number of the listening web server.
THM{SECRET_PAGE_38B9P6}
Version Detection: Extract More Information
OS Detection
- Opsi:
-O - Menebak OS target berdasarkan indikator jaringan
- Hasil tidak 100% akurat, tapi cukup mendekati
- Contoh hasil: Linux kernel 4.x / 5.x
nmap -sS -O 192.168.124.211
# PORT STATE SERVICE
# 22/tcp open ssh
# MAC Address: 52:54:00:54:FA:4E (QEMU virtual NIC)
# Device type: general purpose
# Running: Linux 4.X|5.X
# OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
# OS details: Linux 4.15 - 5.8
# Network Distance: 1 hopService & Version Detection
- Opsi:
-sV - Menampilkan service + versinya
- Contoh:
OpenSSH 8.9p1 - Berguna untuk enumerasi & vulnerability mapping
nmap -sS -sV 192.168.124.211
# PORT STATE SERVICE VERSION
# 22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
# MAC Address: 52:54:00:54:FA:4E (QEMU virtual NIC)
# Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelAggressive Scan
- Opsi:
-A - Mengaktifkan:
- OS detection (
-O) - Service/version detection (
-sV) - Traceroute
- Fitur tambahan lain
- OS detection (
- Lebih lengkap tapi lebih noisy
Forcing Scan
- Opsi:
-Pn - Menganggap semua host online
- Tetap scan walau target tidak merespons ping/ICMP
- Berguna jika host memblok ICMP
Ringkasan Opsi
-O→ deteksi OS-sV→ deteksi service & versi-A→ scan agresif (lengkap)-Pn→ paksa scan host yang terlihat down
nmap -sS -O 10.49.144.2
# tidak mendapatkan informasi OS entah kenapa :v
nmap -sS -sV 10.49.144.2
# PORT STATE SERVICE VERSION
# 7/tcp open echo
# 9/tcp open discard?
# 13/tcp open daytime?
# 17/tcp open qotd?
# 22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.5 (Ubuntu Linux; protocol 2.0)
# 8008/tcp open http lighttpd 1.4.74
nmap -sV -p 8008 10.49.144.2
# 8008/tcp open http lighttpd 1.4.74- What is the name and detected version of the web server running on 10.49.144.2?
lighttpd 1.4.74
Timing: How Fast is Fast
Nmap menyediakan opsi timing & speed control Tujuan:
- Menghindari IDS / security alert
- Menyesuaikan kondisi jaringan & target
Timing template (-T)
-
-T0/ paranoid → paling lambat -
-T1/ sneaky -
-T2/ polite -
-T3/ normal (default) -
-T4/ aggressive -
-T5/ insane → paling cepat -
Bisa pakai angka atau nama (
-T0atau-T paranoid) -
Contoh uji scan:
- Perintah:
nmap -sS -F <target> - Scan 100 port TCP paling umum
- Perintah:
-
Durasi (contoh lab):
- T0 → ± 9.8 jam
- T1 → ± 27 menit
- T2 → ± 40 detik
- T3 → ± 0.15 detik
- T4 → ± 0.13 detik
-
Waktu scan bisa berbeda tergantung jaringan & target
-
Perilaku timing:
- T0 → jeda ~5 menit per port
- T1 → jeda ~15 detik per port
- T2 → jeda ~0.4 detik
- T3 → jalan secepat koneksi memungkinkan
Parallel probes
- Opsi:
--min-parallelism <num>--max-parallelism <num>
- Mengatur jumlah probe TCP/UDP secara bersamaan
- Default: diatur otomatis oleh Nmap
- Jaringan buruk → probe bisa turun ke 1
- Jaringan bagus → bisa ratusan probe
Rate control
- Opsi:
--min-rate <pps>--max-rate <pps>
- Mengatur jumlah paket per detik
- Berlaku untuk seluruh scan, bukan per host
Host timeout
- Opsi:
--host-timeout <time> - Batas waktu maksimum menunggu satu host
- Cocok untuk host lambat / koneksi buruk
Ringkasan opsi penting:
-T0–5→ kontrol kecepatan scan--min/max-parallelism→ jumlah probe paralel--min/max-rate→ rate paket per detik--host-timeout→ batas waktu per host
nmap -sS -p 7,9,13,17 -T0 -v 10.49.144.2
# 5m*4 -> 20 menit
nmap -sS -p 7,9,13,17 -T1 -v 10.49.144.2
# 15d*4 -> 1 menit
Starting Nmap 7.80 ( https://nmap.org ) at 2026-01-10 12:53 GMT
# Scanning 10.49.144.2 [4 ports]
# Stats: 0:00:15 elapsed; 0 hosts completed (0 up), 1 undergoing Ping Scan
# Ping Scan Timing: About 0.00% done
# Completed Ping Scan at 12:53, 15.01s elapsed (1 total hosts)
# Discovered open port 9/tcp on 10.49.144.2
# Discovered open port 7/tcp on 10.49.144.2
# [...]
nmap -sS -p 7,9,13,17 -T2 -v 10.49.144.2
# Completed Ping Scan at 12:55, 0.40s elapsed (1 total hosts)
nmap -sS -p 7,9,13,17 -T3 -v 10.49.144.2
# Completed Ping Scan at 12:56, 0.04s elapsed (1 total hosts)
nmap -sS -p 7,9,13,17 -T4 -v 10.49.144.2
# Completed Ping Scan at 12:56, 0.04s elapsed (1 total hosts)
nmap -sS -p 7,9,13,17 -T5 -v 10.49.144.2
# Completed Ping Scan at 12:56, 0.03s elapsed (1 total hosts)baca elapsednya jika ingin tau brp lama time scan portnya
kesimpulan dari percobaan diatas:
-
T0 → ~5 menit
-
T1 → ~15d menit
-
T2 → ~0.4 detik
-
T3 → ~0.04 detik
-
What is the non-numeric equivalent of -T4?
-T aggressive
Output: Controlling What You See
Fokus task:
- Menampilkan info tambahan saat scan berjalan
- Menyimpan hasil scan ke file
nmap -sS 192.168.139.1/24
# Starting Nmap 7.92 ( https://nmap.org ) at 2024-08-13 18:57 EEST
# Nmap scan report for 192.168.139.254
# Host is up (0.000030s latency).
# All 1000 scanned ports on 192.168.139.254 are in ignored states.
# Not shown: 1000 filtered tcp ports (no-response)
# MAC Address: 00:50:56:E0:FC:AE (VMware)
# Nmap scan report for g5000 (192.168.139.1)
# Host is up (0.000010s latency).
# Not shown: 999 closed tcp ports (reset)
# PORT STATE SERVICE
# 902/tcp open iss-realsecure
# Nmap done: 256 IP addresses (2 hosts up) scanned in 41.84 secondstanpa opsi tambahan, tidak menampilkan progres scan ketika berjalan
Verbosity (Verbose Output)
- Opsi:
-v - Menampilkan progres scan secara real-time
- Menunjukkan tahap scan (ARP, DNS, SYN, dll)
- Bisa ditingkatkan:
-vv,-vvvv-v2,-v4
- Bisa tekan tombol
vsaat scan sedang berjalan
nmap 192.168.139.1/24 -v
# Starting Nmap 7.92 ( https://nmap.org ) at 2024-08-13 19:01 EEST
# Initiating ARP Ping Scan at 19:01
# Scanning 255 hosts [1 port/host]
# Completed ARP Ping Scan at 19:01, 7.94s elapsed (255 total hosts)
# Initiating Parallel DNS resolution of 1 host. at 19:01
# Completed Parallel DNS resolution of 1 host. at 19:02, 13.00s elapsed
# Nmap scan report for 192.168.139.0 [host down]
# Nmap scan report for 192.168.139.2 [host down]
# [...]
# Initiating SYN Stealth Scan at 19:02
# Scanning g5000 (192.168.139.1) [1000 ports]
# Discovered open port 902/tcp on 192.168.139.1
# Completed SYN Stealth Scan at 19:02, 0.03s elapsed (1000 total ports)
# Nmap scan report for g5000 (192.168.139.1)
# Host is up (0.0000090s latency).
# Not shown: 999 closed tcp ports (reset)
# PORT STATE SERVICE
# 902/tcp open iss-realsecure
# Read data files from: /usr/bin/../share/nmap
# Nmap done: 256 IP addresses (2 hosts up) scanned in 42.19 seconds
# Raw packets sent: 3512 (146.336KB) | Rcvd: 2005 (84.156KB)Debugging Output
- Opsi:
-d - Menampilkan info debug tingkat rendah
- Bisa ditingkatkan:
-dd,-d5- Maksimal:
-d9
- Sangat verbose (ribuan baris log)
Menyimpan Hasil Scan
-oN <file>→ output normal (human-readable)-oX <file>→ XML-oG <file>→ grep-able-oA <nama>→ semua format sekaligus.nmap,.xml,.gnmap
Contoh:
-
nmap -sS <target> -oA hasil_scan -
What option must you add to your nmap command to enable debugging?
-d
Conclusion and Summary
Di room ini dipelajari penggunaan Nmap untuk menemukan host yang aktif di jaringan, melakukan berbagai jenis port scanning, mendeteksi service beserta versinya, mengatur timing scan, serta menyimpan hasil scan dalam berbagai format output.
Disarankan menjalankan Nmap dengan hak akses sudo/root agar seluruh fitur dapat digunakan. Nmap tetap bisa dijalankan sebagai user biasa, namun banyak fitur penting tidak tersedia. Saat dijalankan dengan sudo, Nmap secara otomatis menggunakan SYN scan (-sS), sedangkan jika dijalankan tanpa sudo akan menggunakan connect scan (-sT). Hal ini karena pembuatan paket tertentu, seperti TCP SYN, memerlukan hak akses root.
Nmap merupakan tools yang sangat kaya fitur. Room ini hanya membahas fitur-fitur paling umum dan esensial. Untuk pembahasan lebih lanjut dan mendalam, modul Network Security menyediakan beberapa room khusus yang membahas Nmap secara detail.
| Kategori | Opsi | Penjelasan |
|---|---|---|
| List Scan | -sL | Menampilkan daftar target tanpa melakukan scan |
| Host Discovery | -sn | Ping scan – hanya mencari host yang hidup |
| Port Scanning | -sT | TCP Connect Scan – full three-way handshake |
-sS | TCP SYN Scan – hanya SYN (stealth scan) | |
-sU | UDP Scan | |
-F | Fast mode – scan 100 port paling umum | |
-p[range] | Menentukan rentang port (-p- = semua port) | |
-Pn | Anggap semua host online (abaikan ping) | |
| Service Detection | -O | Deteksi sistem operasi |
-sV | Deteksi service & versinya | |
-A | OS detection, service detection, traceroute, dll | |
| Timing | -T0–5 | Timing template (paranoid → insane) |
--min-parallelism <num> | Minimum probe paralel | |
--max-parallelism <num> | Maksimum probe paralel | |
--min-rate <num> | Minimum paket per detik | |
--max-rate <num> | Maksimum paket per detik | |
--host-timeout <time> | Batas waktu maksimum per host | |
| Real-time Output | -v | Verbose output (-vv, -v4) |
-d | Debug output (-d, -d9) | |
| Report Output | -oN <file> | Output normal (human-readable) |
-oX <file> | Output XML | |
-oG <file> | Output grep-able | |
-oA <name> | Output semua format sekaligus |
- What kind of scan will Nmap use if you run nmap MACHINE_IP with local user privileges?
Connect Scan