Melakukan Passive Sniffing dan Broadcast Traffic (Nmap, p0f dan Miranda)

Shall we continue??

Apa itu Passive Sniffing? dan apa itu Broadcast Traffic?

1. Broadcast Traffic

Adalah lalu lintas data pada jaringan yang terdapat pada alamat broadcast (x.x.x.255), contoh pada ip range 192.168.10.0/24 maka alamat broadcastnya ada  di 192.168.10.255. semua perangkat yang ada di dalam jaringan pasti melakukan komunikasi dengan alamat broadcast.

Dengan menangkap data yang ada di alamat broadcast maka aktifitas kita akan susah untuk diketahui oleh IDS/IPS karena data yang dihasilkan sangat sedikit, hal ini terjadi karena secara pasif kita menangkap data yang lewat dan bukan melakukan scanning secara intrusive.

Cara melakukan Passive Sniffing dan Broadcast Traffic?

A. Nmap

Salah satunya adalah dengan Nmap, perintahnya adalah seperti berikut:

nmap -Pn -n --script=broadcast

Hasilnya dapat dilihat seperti pada gambar dibawah:



Pada gambar dapat dilihat bahwa:
  • ip 192.168.10.192 mendapatkan DHCP dari 192.168.10.1 dimana DNS yang digunakan adalah 8.8.8.8 dan 208.67.222.222.
  • ip 192.168.10.1 memiliki nama "Server: RouterOS/4.10UPnP/1.0 MikroTik UPnP/1.0", berarti gateway yang digunakan kemungkinan mikrotik.
  • ip 192.168.10.207 adalah ip BT5 saya.
Dengan menangkap lalu lintas data pada alamat broadcast diatas, kita dapatkan beberapa hal yang cukup berguna untuk langkah penetrasi selanjutnya. B. Ping Ping? ga salah ketik nih? TTL atau Time To Live yang dapat dilihat untuk menentukan kira-kira OS apa yang digunakan, biasanya OS Windows menggunakan TTL sekitar 128 sedangkan Linux menggunakan TTL dibawah sekitar 64 atau sekitar 254 Ga percaya?? Contoh pada Linux:
$ ping 192.168.1.215
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.056 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.029 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.049 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.040 ms
^C
--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.029/0.043/0.056/0.009 ms

Contoh pada OS Windows:
$ ping 10.112.12.30 PING 10.112.12.30 (10.112.12.30): 56 data bytes 64 bytes from 10.112.12.30: icmp_seq=0 ttl=128 time=0.622 ms 64 bytes from 10.112.12.30: icmp_seq=1 ttl=128 time=0.786 ms 64 bytes from 10.112.12.30: icmp_seq=2 ttl=128 time=0.704 ms 64 bytes from 10.112.12.30: icmp_seq=3 ttl=128 time=0.510 ms 64 bytes from 10.112.12.30: icmp_seq=4 ttl=128 time=0.913 ms ^C --- 10.112.12.30 ping statistics --- 5 packets transmitted, 5 packets received, 0.0% packet loss round-trip min/avg/max/stddev = 0.510/0.707/0.913/0.138 ms


Perhatikan pada TTL-nya, menarik bukan? ūüėÄ

 

2. Passive Sniffing

Metode yang dilakukan hampir sama, karena non intrusive, hanya menangkap data yang lewat saja. So, how we do it exactly? Saya tahu ada beberapa tools yang dapat melakukan ini, seperti wireshark, p0f, miranda, tcpdump dll. Kali ini akan dibahas p0f dan miranda (UPnP). A. p0f Kebetulan baru muncul versi 3.03b, download saja disini. trus di-extract saja (file berupa .tar.gz):
tar xvf p0f-3.03b

Kemudian untuk membuat file executable p0f tinggal jalankan file build.sh di dalam folder hasil extract diatas:
./build.sh

Seharusnya muncul seperti berikut:
[email protected]:~/Programs/p0f-3.03b# ./build.sh
Welcome to the build script for p0f 3.03b!
Copyright (C) 2012 by Michal Zalewski <[email protected]>

[+] Configuring production build.
[*] Checking for a sane build environment... OK
[*] Checking for working GCC... OK
[*] Checking for *modern* GCC... OK
[*] Checking if memory alignment is required... nope
[*] Checking for working libpcap... OK
[*] Checking for working BPF... OK
[+] Okay, you seem to be good to go. Fingers crossed!
[*] Compiling p0f... OK

Well, that's it. Be sure to review README. If you run into any problems, you
can reach the author at <[email protected]>.


Setelah itu akan muncul file executable p0f, jalankan saja file p0f-nya:

./p0f -h

Perintah diatas untuk melihat options yang terdapat pada p0f, dapat dilihat dibawah ini:

[email protected]:~/Programs/p0f-3.03b# ./p0f --h
--- p0f 3.03b by Michal Zalewski <[email protected]> ---

./p0f: invalid option -- '-'
Usage: p0f [ ...options... ] [ 'filter rule' ]

Network interface options:

-i iface  - listen on the specified network interface
-r file   - read offline pcap data from a given file
-p        - put the listening interface in promiscuous mode
-L        - list all available interfaces

Operating mode and output settings:

-f file   - read fingerprint database from 'file' (p0f.fp)
-o file   - write information to the specified log file
-s name   - answer to API queries at a named unix socket
-u user   - switch to the specified unprivileged account and chroot
-d        - fork into background (requires -o or -s)

Performance-related options:

-S limit  - limit number of parallel API connections (20)
-t c,h    - set connection / host cache age limits (30s,120m)
-m c,h    - cap the number of active connections / hosts (1000,10000)

Optional filter expressions (man tcpdump) can be specified in the command
line to prevent p0f from looking at incidental network traffic.

Problems? You can reach the author at <[email protected]>.

Mari kita coba dengan perintah -i eth0 jika network card ada di eth0, lalu -p atau promiscouse mode agar semua trafik dapat ditangkap oleh p0f dan -o untuk menyimpan hasil sniffing, dapat dicoba seperti berikut:

./p0f -i eth0 -p -o p0f-internal

Perintah -f tidak perlu dilakukan karena secara default p0f akan menggunakan file konfigurasi p0f.fp, kecuali kalau kita ingin menggunakan signature database packet data yang lain.

Dari data diatas mari kita coba lakukan analisa:

.-[ 192.168.10.207/49659 -> 76.74.255.117/443 (syn) ]-
|
| client   = 192.168.10.207/49659
| os       = Linux 3.x
| dist     = 0
| params   = none
| raw_sig  = 4:64+0:0:1460:mss*10,6:mss,sok,ts,nop,ws:df,id+:0
|
`----

Arti data diatas kira-kira begini:

  • ip 192.168.10.207 port 49659 sedang melakukan koneksi SYN terhadap ip 76.74.255.117 port 443
  • OS yg digunakan Linux 3.x
  • Jarak dengan sniffer 0 (alias 1 network)
  • raw_sig adalah suatu signature (tanda) yang dihasilkan oleh OS tersebut ketika melakukan komunikasi di dalam jaringan.

Sebenarnya masih banyak yang bisa dilihat dari data yang ditangkap oleh p0f, dapat dilihat disini, tepatnya di no. 2 "What's the Output?"

B. Miranda

Miranda adalah tools yang dibuat dari bahasa pemrograman Python untuk menangkap data protokol UPnP (Universal Plug n Play).

Perangkat apa saja yang menggunakan protokol UPnP??

Karena sifatnya yang plug n play maka perangkat yang menggunakan protokol ini mulai dari komputer, network home appliances (tv internet, nintendo wii dll) dan perangkat wireless lainnya.

Bayangkan saja kita bisa melakukan sniffing di suatu jaringan wifi yang terdapat tv internet yang terhubung dengan wifi tersebut, maka mungkin saja bagi kita untuk melakukan remote seperti mematikan tv, menyetel volume tv dll. Ngeri kan?? hehehe #ketawasetan

Walaupun saya belum pernah melakukannya secara langsung (maklum ga punya tv internet), tetapi ada PoC dari website Pauldotcom yang akan saya coba tulis disini:

Di BT5 Miranda ada di folder /pentest/enumeration/miranda/

Cara menjalankan miranda tinggal:

./miranda.py

Setelah itu kita akan masuk kedalam shell prompt upnp>

Perintah-perintah yang dapat dilakukan di miranda adalah sebagai berikut:

[email protected]:/pentest/enumeration/miranda# ./miranda.py
upnp> ?

Invalid command. Valid commands are:

load            Restore previous host data from file
head            Show/define SSDP headers
help            Show program help
host            View and send host list and host information
msearch         Actively locate UPNP hosts
pcap            Passively listen for UPNP hosts
quit            Exit this shell
log             Logs user-supplied commands to a log file
seti            Show/define application settings
exit            Exit this shell
save            Save current host data to file

Untuk melakukan sniffing di miranda adalah dengan menjalankan perintah msearch seperti berikut:
upnp> msearch
Entering discovery mode for 'upnp:rootdevice', Ctl+C to stop... **************************************************************** SSDP reply message from 192.168.1.213:8060 XML file is located at http://192.168.1.213:8060/ Device is running Roku UPnP/1.0 MiniUPnPd/1.4 **************************************************************** **************************************************************** SSDP reply message from 192.168.1.224:52236 XML file is located at http://192.168.1.224:52236/rcr/RemoteControlReceiver.xml Device is running Linux/9.0 UPnP/1.0 PROTOTYPE/1.0 **************************************************************** **************************************************************** SSDP reply message from 192.168.1.214:52235 XML file is located at http://192.168.1.214:52235/dmr/SamsungMRDesc.xml Device is running Linux/9.0 UPnP/1.0 PROTOTYPE/1.0 ****************************************************************

Kemudian lakukan host list untuk melihat host mana saja yang telah diketahui oleh miranda:
upnp> host list
[0] 192.168.1.213:8060
[1] 192.168.1.219:8060
[2] 192.168.1.215:8060
[3] 192.168.1.224:52236
[4] 192.168.1.214:52235
[5] 192.168.1.241:8888
[6] 192.168.1.16:2869

Mari kita lihat data yang ada pada host 5:
upnp> host summary 5
Host: 192.168.1.241:8888 XML File: http://192.168.1.241:8888/upnp_descriptor_0 MediaRenderer manufacturerURL: http://www.onkyo.com modelName: TX-NR509 modelNumber: TX-NR509 presentationURL: http://192.168.1.241/ friendlyName: TX-NR509 fullName: urn:schemas-upnp-org:device:MediaRenderer:1 modelDescription: AV Receiver UDN: uuid:aeb01704-c117-04b9-db1e-0409c1b9c871 modelURL: http://www.onkyo.com manufacturer: ONKYO

Untuk melihat lebih lanjut lakukan host info 5
upnp> host info 5
xmlFile : http://192.168.1.241:8888/upnp_descriptor_0 name : 192.168.1.241:8888 proto : http:// serverType : MediabolicMWEB/1.8.225 upnpServer : Linux/2.6.33-rc4 UPnP/1.0 MediabolicUPnP/1.8.225 dataComplete : True deviceList : {}

Dapat diketahui bahwa host no 5 adalah sebuah tv internet yang menggunakan Linux, sekarang dengan sedikit perintah kita dapat mematikan volume suara pada tv tersebut:

upnp> host send 5 MediaRenderer RenderingControl SetMute

Required argument:
Argument Name: InstanceID
Data Type: ui4
Allowed Values: []
Set InstanceID value to: 0

Required argument:
Argument Name: DesiredMute
Data Type: boolean
Allowed Values: []
Set DesiredMute value to: 1

Required argument:
Argument Name: Channel
Data Type: string
Allowed Values: ['Master', 'LF', 'RF']
Set Channel value to: Master</pre>

Dan tv pun dalam kondisi MUTE, tidak bersuara sama sekali....

Ngeri bukan klo ada yang dapat melakukan ini pada perangkat elektronik kita yang terhubung dengan jaringan?? :hammer

Tapi klo dilihat lagi keren juga ya? hehehe

Tampaknya banyak juga tulisan kali ini....baiklah saatnya saya undur diri untuk istirahat,

Semoga bermanfaat

iKONs

Sumber:

  • http://pauldotcom.com/wiki/index.php/Episode276
  • http://www.linuxhaxor.net/os-fingerprinting-with-the-new-nmap/
  • http://scottlinux.com/2011/12/22/tcpos-fingerprinting-tools-p0f-and-nmap/

1
Leave a Reply

1 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
0 Comment authors

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
newest oldest most voted
Notify of
Melakukan Passive Sniffing dan Broadcast Traffic