OS Discovery – Pengenalan

OS discovery atau banner grabbing adalah teknik untuk mengidentifikasi aplikasi dan OS yang berjalan pada host target. Dengan mengetahui versi OS yang digunakan, attacker dapat mengatur strategy penyerangan dan tingkat keberhasila akan lebih tinggi.

Terdapat dua type teknik banner grabbing:

Active Banner Grabbing

Menggunakan prinsip bahwa OS IP stack memiliki cara unik dalam merespon TCP packet yang dirancang khusus. Hal ini terjadi karena perbedaan interprestasi yang diterapkan vendor ketika mengimplementasikan TCP/IP stack.

Attacker akan mengirimkan bervariasi paket cacat ke remote host, kemudian membandingkan respon yang didapat dengan database. Respon akan bervariasi berdasarkan OS target.

nmap menggunakan 9 tests dalam melakukan OS fingerprinting. Berikut test yang dilakukan:

  • Test 1, mengirimkan packet TCP SYN dan ECN-Echo flag ke TCP open port.
  • Test 2, mengirimkan packet TCP tanpa flag ke TCP open port. Type packet adalah NULL packet.
  • Test 3, mengirimkan packet TCP URG, PSH, SYN dan FIN flags ke TCP open port.
  • Test 4, mengirimkan packet TCP ACK flag ke TCP open port.
  • Test 5, mengirimkan packet TCP SYN flag ke TCP closed port.
  • Test 6, mengirimkan packet TCP ACK flag ke TCP closed port.
  • Test 7, mengirimkan packet TCP URG, PSH, dan FIN ke TCP closed port.
  • Test 8 PU (port unreachable), mengirimkan UDP packet ke UDP closed port. Tujuannya untuk mengekstrak ICMP unreachable message dari target.
  • Test 9 TSeq (TCP Sequence ability test), test bertujuan menentukan sequence generation pattern dari TCP initial sequence numbers (TCP ISN sampling). IP identification number (IPID sampling) dan TCP timestamp numbers. Akan dikirimkan 6 TCP packet dengan SYN flag ke TCP open port.

Tujuan dari test diatas adalah mencari pattern dari initial sequence number. Dapat dikategorikan seperti berikut:

  • Tradisional 64K (UNIX versi lama)
  • Random increments (versi lebih baru dari Solaris, IRIX, FreeBSD, Digital UNIX, Cray dan lainnya)
  • True Random (Linux 2.0*, openVMS, newer AIX, dan lainnya).

Untuk Windows, menggunakan time-dependent model, dimana ISN ditambahkan dengan angka fixed untuk setiap kejadian.

Passive Banner Grabbing

Passive banner grabbing juga tergantung perbedaan implementasi dari stack dan cara OS merespon packets. Passive banner grabbing akan melakukan sniffing untuk mengetahui OS yang digunakan.

Yang termasuk Passive banner grabbing adalah:

  • Banner grabbing from error messages: Terdapat informasi pada error messages, seperti type server, OS dan SSL tools yang digunakan target system.
  • Sniffing network traffic: menangkap dan menganalisa packets dari target.
  • Banner grabbing from page extensions: dengan melihat extension pada URL juga dapat digunakan untuk mengetahui versi aplikasi yang digunakan. Contoh: .aspx -> IIS server dan Windows platform.

Ada empat area untuk menentukan OS dari target:

  • TTL (time to live) dari packets.
  • Window size.
  • Apakah DF (don’t fragment) bit di set.
  • TOS (type of service), apakah OS mengatur TOS, jika ya, apa setting yang digunakan.

Passive fingerprinting tidak sepenuhnya akurat dan tergantung dengan keempat signature diatas. Untuk meningkatkan akurasi, dilakukan kombinasi signature.

Berikut contoh analisis sniffed packet oleh Lance Spitzner dalam paper passive fingerprinting (https://www.symantec.com/connect/articles/passive-fingerprinting)

04/20-21:41:48.129662 129.142.224.3:659 -> 172.16.1.107:604  TCP TTL:45 TOS:0x0 ID:56257  ***F**A* Seq: 0x9DD90553   Ack: 0xE3C65D7   Win: 0x7D78

Berdasarkan 4 kriteria, berikut identifikasinya:

  • TTL: 45
  • Window Size: 0x7D78 (or 32120 in decimal)
  • DF: The Don’t Fragment bit is set
  • TOS: 0x0

TTL: TTL hasil analysis adalah 45, original packet melalui 19 hops untuk mencapai target, sementara original TTL adalah 64. Berdasarkan informasi TTL ini, diperikirakan user mengirim packet dari Linux atau FreeBSD.

TTL ini dikonfirmasi dengan melakukan traceroute ke remote host. Jika khawatir apabila remote host akan mendeteksi traceroute, Anda dapat menyetel TTL traceroute (default 30 hops), menjadi satu atau dua hops lebih sedikit (gunakan opsi -m). Contoh melakukan traceroute hanya menggunakan 18 hop (traceroute -m 18). Ini memberi Anda informasi path (termasuk upstream provider mereka) tanpa benar-benar menyentuh remote host.

Window Size: Window size termasuk efektif, khususnya Window Size apa yang digunakan dan seberapa sering ukurannya berubah. Pada signature di atas, kita disetel pada 0x7D78, Window size default yang biasa digunakan oleh Linux.

Selain itu, Linux, FreeBSD, dan Solaris cenderung mempertahankan Ukuran Jendela yang sama sepanjang sesi (seperti yang dilakukan ini). Namun, Window size router Cisco dan Microsoft Windows/NT terus berubah. WIndow size lebih akurat jika diukur setelah inisial 3-way handshake.

DF Bit, nilainya terbatas. Namun, hal ini memudahkan untuk mengidentifikasi beberapa sistem yang tidak menggunakan flag DF (seperti SCO atau OpenBSD).

TOS: juga memiliki nilai yang terbatas. Lebih berbasis sesi daripada sistem operasi. Dengan kata lain, bukan sistem operasi yang menentukan TOS, tetapi protokol yang digunakan. TOS pasti membutuhkan beberapa pengujian lagi. Jadi, berdasarkan informasi di atas, khususnya ukuran TTL dan Window, Anda dapat membandingkan hasilnya dengan database signature dan menentukan OS yang digunakan (dalam kasus ini, kernel Linux 2.2.x).

Sharing is caring:

Leave a Comment