Issue‎ > ‎Issue 08‎ > ‎

006.txt

	____________________   ___ ___ ________   
	\_   _____/\_   ___ \ /   |   \\_____  \  
	 |    __)_ /    \  \//    ~    \/   |   \ 
	 |        \\     \___\    Y    /    |    \
	/_______  / \______  /\___|_  /\_______  /
	        \/         \/       \/         \/ 


					    .OR.ID
ECHO-ZINE RELEASE
       08

Author: \conan\ a.k.a sugar_free || sugar_free@telkom.net
Online @ www.echo.or.id :: http://ezine.echo.or.id


Tips untuk mengelabuhi Nmap OS Fingerprinting
------------------------------------------------------
 
Yang ada pada kita ketika melihat tulisan ini adalah untuk apa kita membuang2 
waktu untuk mengganti/mengkonfigurasi linux kita untuk menyembunyikan Operating 
System apa yang kita gunakan dalam menghadapi para pengguna Nmap, kenapa kita tidak 
lebih memaksimalkan keamanan Linux kita ?. Pikiran kita itu tidak salah,dan jika 
kita tetap pada pikiran kita itu,mungkin lebih baik kita jangan meneruskan untuk 
membaca tulisan ini. Namun sebelum memutuskan lebih jauh ada beberapa alasan dan
pertimbangan berikut yang dapat meyakinkan kita mengapa kita harus mengelabuhi 
para pengguna Nmap tersebut,:
 
* Memperlihatkan OS kita dapat membuat hal-hal yang tidak kita inginkan menjadi 
lebih mudah untuk menemukan dan   dengan sukses menjalankan exploit tertentu atau 
dengan trik tententu dapat memanfaatkan kelemahan dari system kita.

* Menggunakan O/S yang tidak dipatch atau O/S yang “antik” sangat tidak baik untuk 
  gengsi dari system kita,   bayangkan jika system kita itu adalah sebuah O/S dari 
  perusahaan dan beberapa user mengetahui bahwa kita menggunakan sebuah Box yang 
  tidak dipatch.Para pemilik perusahaan tersebut tidak akan mempercayai kita lagi, 
  dan bahayanya adalah seringnya kabar mengenai system kita selalu disebarluaskan 
  kepada komunitas tertentu.

* Mengetahui O/S yang kita gunakan dapat menjadi lebih berbahaya, sebab orang dapat 
  menebak aplikasi apa yang berjalankan pada O/S kita. Sebagai contoh jika sistem 
  yang kita gunakan adalah MS Windows , dan kita sedang menjalankan suatu database, 
  sangat mungkin bahwa kita  sedang menjalankan MS-SQL.

* Informasi ini juga bisa digunakan oleh perusahaan perangkat lunak , untuk menawarkan 
  kita sebuah perangkat lunak yang baru (sebab mereka mengetahui mengenai system 
  operasi kita).

* Dan akhirnya, privacy; seharusnya tidak seorangpun mengetahui system operasi apa 
  yang sedang kita gunakan
 
Nmap 
----
Nmap adalah salah satu tools yang sangat berguna . Nmap mengirimkan tujuh paket 
Tcp/Ip palsu (atau yang disebut paket test) dan melihat jawaban dari paket yang 
dikirimkan itu.
 
Hasil dari jawaban paket itu akan dibandingkan dengan database yang lebih dikenal 
sebagai O/S signature database. Database ini adalah sebuah teks file yang berisi hasil 
dari jawaban (signature) dari masing-masing OS yang ada. Demikian Kemudian, jika 
jawaban bertemu isi database yang manapun , kita dapat menduga bahwa O/S yang 
menjawab itu adalah sama dengan O/S yang ada dalam database. Beberapa paket Nmap 
paket dikirim kepada Port yang terbuka dan paket yang lain dikirim kepada Port yang 
tertutup, berdasarkan hal tersebut maka O/S dari system yang dituju akan diketahui.
 
Maka, jika kita ingin mengelabuhi Nmap dan memberitahu kepada atacker bahwa kita  
sedang menjalankan suatu sistem operasi yang berbeda, kita hanya harus dapat 
memalsukan jawaban kepada paket tests dari Nmap . Solusi yang akan diberikan hanya 
dapat untuk mengelabuhi Nmap dan tidak untuk tools lain yang sejenis. 
 
Metode yang digunakan untuk mendapatkan Solusi agar Linux dapat mengelabuhi Nmap 
O/S FingerPrinting ada didalam Kernel Linux kita, atau kita dapat mem-patch kernel 
linux kita.Jika kita ingin mengubah perilaku dari Linux TCP/IP stack, kita harus 
melakukannya didalam kernel kita.
 
Salah satu solusi kernel akan diberikan, akan sangat tergantung dari bagian module 
pada kernel kita;kita harus mendownload dan mem-patch kernel kita untuk mendapatkan 
fungsi yang dimaksud, yang paling utama adalah kita harus mengaktifkan netfilter 
pada kernel (Ini adalah sebuah keharusan yang wajib hukumnya untuk dilakukan), namun 
ada solusi yang tidak membutuhkan hal tersebut.
 
IP Personality 
--------------
 
IP personality adalah salah satu patch dari kernel 2.4 yang menambah sebuah 
kemampuan dari kernel untuk mempunyai karakteristik yang berbeda dengan kernel lain.

Kemampuan yang dapat diubah antara lain adalah :
* TCP Initial Sequence Number
* TCP Initial windows size
* TCP Options
* Nomor ID IP
* Menjawab beberapa jenis Paket TCP
* Menjawab beberapa jenis Paket UDP

Patch ini sangat tergantung pada jenis netfilter yang digunakan, dalam kasus ini 
adalah iptables, dan tentunya iptables yang digunakan juga harus dipatch, kelihatannya 
memang sulit. Namun kita dapat mendapatkan sebuah kepuasan tertentu dalam 
melakukan ini. (Pengalaman Pribadi J)

Untuk melakukan hal ini ada beberapa software yang dibutuhkan antara lain :
* sourcecode dari ippersonality dapat didownload dari http://ippersonality.sourceforge.net 
* sourcecode dari Linux 2.4.18 atau Linux 2.4.19
* sourcecode dari iptables 1.2.2

dan sedikit pengetahuan mengenai netfilter,iptables dan Internet Protocol (IP,TCP dan UDP).
Sebaiknya kita melakukannya pada box yang khusus sebelum di buat pada system kita yang 
sebenarnya.

Langkah-Langkahnya adalah :
1.Patch kernel kita
# cd linux-2.4.19
# patch –p1 < /direktory/tempat/kernel_patch

2.Compile kernel

Sebelum kita mengcompile kernel, kita harus mengaktifkan patch yang telah kita masukkan 
ke kernel,lihat pada bagian netfilter,ada sebuah option baru : 
IP Personality Support (EXPERIMENTAL)
CONFIG_IP_NF_PERS=y
Atau bisa juga dibuat sebagai kernel module
CONFIG_IP_NF_PERS=m
Agar IPPersonality dapat bekerja dengan baik, kernel kita harus dikonfigurasi untuk 
mensupport iptables, conntrack dan tabel mangle
Catatan : walaupun kita membuat ippersonality sebagai module kernel, kita harus 
tetap mengkompile kernel.

3.Patch Iptables
#cd iptables-1.2.2/
#patch –p1 < /direktory/tempat/patch_iptables

4.Compile iptables
#make
atau
#make KERNEL_DIR=/direktory/tempat/kernel

5.Setelah selesai restart komputer dan gunakan kernel yang telah dipatch dan 
jika kita membuat ippersonality sebagai kernel module maka kita harus menload 
module tersebut

Ketikkan :
#insmod ipt_PERS

6.Tulis rule tabel mangle iptables baru dengan dengan options PERS 
Misal :
Jika kita mempunyai 2 mesin A dan B, dipisahkan oleh router LINUX, dan kita ingin 
B kelihatan sebagai windows dari A, maka kita dapat melakukan hal ini pada router :

#iptables –t mangle –A PREROUTING –s B –d A –j PERS –tweak src \
 --conf win9x.conf
#iptables –t mangle –A PREROUTING –s A –d B –j PERS –tweak dst \
 --conf win9x.conf

Atau kita ingin router kelihatan sebagai windows dari A :
#iptables –t mangle –A PREROUTING –s B –d router –j PERS –tweak \ dst --local --conf win98.conf
#iptables –t mangle –A PREROUTING –s router –d B –j PERS –tweak \ dst  --local --conf win98.conf

Sekarang kita bisa mengetest apakah rule kita berhasil dengan melakukan scanning 
terhadap Host B atau terhadap router dengan menggunakan nmap.

Kita dapat juga menambahkan ukuran tabel ip_contrack dengan menggunakan 
#echo 20480 > /proc/sys/net/ipv4/ip_conntrack_max

contoh hasil nmap dari box yang sudah dipatch ippersonality :

gentoo root # nmap -v -sS -O *.*.*.*

Starting nmap 3.30 ( http://www.insecure.org/nmap/ ) at 2004-10-20 01:24 WIT
Host *.*.*.* appears to be up ... good.
Initiating SYN Stealth Scan against *.*.*.* at 01:24
Adding open port 80/tcp
Adding open port 22/tcp
Adding open port 443/tcp
The SYN Stealth Scan took 1 second to scan 1644 ports.
Insufficient responses for TCP sequencing (0), OS detection may be less accurate
Interesting ports on *.*.*.*:
(The 1641 ports scanned but not shown below are in state: closed)
Port       State       Service
22/tcp     open        ssh
80/tcp     open        http
443/tcp    open        https
Device type: general purpose
Running: Microsoft Windows 95/98/ME|NT/2K/XP
OS details: Microsoft Windows NT 3.51 SP5, NT4 or 95/98/98SE

Nmap run completed -- 1 IP address (1 host up) scanned in 14.360 seconds


Stealth pacth
-------------
Solusi lain adalah dengan stealth pacth, dapat didownload dari http://www.innu.org/~sean/. 
Ketika kernel kita sudah dipatch maka kita akan mendapatkan dua options baru pada 
file config kita :

* IP : TCP Stack options, options yang kita gunakan apabila kita ingin mengaktifkan 
stealth pacth. Jika kita meggunakan options ini maka akan dienable secara default ketika 
kita mereboot system kita. Untuk mendisable , kita dapat melakukan :

#echo 0 > /proc/sys/net/ipv4/tcp_ignore_ack
#echo 0 > /proc/sys/net/ipv4/tcp_ignore_bogus
#echo 0 > /proc/sys/net/ipv4/tcp_ignore_synfin

* Log all dropped packet,logs all packet with bad options

Patch ini tidak seperti IPPersonality, kita tidak dapat mengubah respon linux kita 
menjadi O/S lain.System hanya membuang semua paket yang aneh yang diduga dapat menjadi 
salah satu cara untuk menduga operating system yang kita gunakan.

Fingerprint Fucker
------------------
Fingerprint Fucker adalah kernel module yang dapat digunakan pada linux kernel 2.2 dan 
dapat digunakan untuk menyembunyikan O/S yang kita gunakan dan mengubah perilaku menjadi 
O/S lain. Namun Patch ini belum stabil dan dapat membuat linux menjadi hang.

Dan demikianlah tips yang dapat kita gunakan untuk mengelabuhi nmap, patch yang 
disarankan adalah ippersonality.

..:: Have Fun ::..


REFERENSI a.k.a bacaan :

1.http://www.google.com
2.http://voodoo.somoslopeor.com/papers/nmap.html by David Barroso Berrueta
3.ippersonality README
4.http://www.innu.org/~sean/
5.Fingerprint Fucker README


All my greetz is dedicated to: 

All #neoteker,#wongkito @dalnet crew
All TeleInformatics Labs STTTelkom Crew


kirimkan kritik && saran ke sugar_free@telkom.net

+--------------------------------------------------+
|...::: Security is a process, not a product :::...|
+--------------------------------------------------+


Comments