
Firewall/IDS Evasion and SpoofingBanyak pionir Internet mempunyai visi jaringan terbuka global dengan
ruang alamat IP universal yang memungkinkan koneksi virtual antara dua node.
Hal ini membuat host bertindak sebagai peer sebenarnya, menyajikan dan
mengambil informasi satu sama lain. Orang dapat mengakses sistem di
rumah mereka dari tempat kerja, merubah seting kendali iklim atau
membuka pintu bagi tamu yang datang awal. Visi konektivitas universal ini
telah dibatasi dengan kekurangan ruang alamat dan masalah keamanan.
Di awal tahun 1990-an, organisasi mulai menggunakan firewall dengan tujuan
mengurangi konektivitas. Jaringan besar dibatasi dari Internet oleh proxy aplikasi,
network address translation, dan filter paket. Aliran informasi yang tidak terbatas
berubah menjadi regulasi ketat atas kanal komunikasi dan isi yang melaluinya. Penghalang jaringan seperti firewall dapat membuat pemetaan jaringan
sukar. Ia tidak akan menjadi lebih mudah, karena mengurangi reconnaissance umum
adalah tujuan utama implementasi device tersebut. Namun demikian, Nmap menawarkan
banyak fitur untuk membantu memahami jaringan yang kompleks ini, dan untuk memverifikasi
bahwa filter bekerja sebagaimana yang diharapkan.
Ia bahkan mendukung mekanisme untuk melewati pertahanan yang diimplementasikan dengan buruk.
Salah satu metode terbaik untuk memahami postur keamanan jaringan anda adalah dengan
berusaha mengalahkannya. Tempatkan diri anda dalam pola pikir penyerang, dan gunakan
teknik-teknik dari bagian ini terhadap jaringan anda. Lakukan scan FTP bounce, scan idle,
serangan fragmentasi, atau berusaha melakukan tunnel melalui salah satu proxy anda. Selain membatasi aktivitas jaringan, perusahaan semakin meningkatkan
pemantauan lalu lintas dengan intrusion detection systems (IDS).
Seluruh IDS utama menyertakan aturan yang dirancang untuk mendeteksi scan Nmap
karena scan terkadang merupakan awal serangan. Banyak dari produk-produk ini
yang sekarang berubah menjadi intrusion
prevention systems
(IPS)
yang secara aktif memblokir lalu lintas yang dianggap berbahaya.
Sayangnya bagi administrator jaringan dan vendor IDS, mendeteksi tujuan jahat
dengan menganalisis data paket merupakan masalah yang berat. Penyerang dengan kesabaran,
keahlian, dan bantuan opsi-opsi Nmap tertentu biasanya dapat melewati IDS tanpa terdeteksi.
Selain itu, administrator harus berurusan dengan hasil false positive dalam jumlah besar
sehingga aktivitas yang tidak berbahaya salah didiagnosa dan di-alert atau diblokir. Terkadang orang menyarankan bahwa Nmap tidak seharusnya menawarkan fitur-fitur
untuk melewati aturan firewall atau menyelinap dari IDS. Mereka berargumen bahwa
fitur-fitur ini akan disalahgunakan oleh penyerang alih-alih digunakan oleh administrator
untuk memperbaiki keamanan. Permasalahan dengan logika ini adalah metode-metode tersebut
tetap akan digunakan oleh penyerang, yang akan mencari tool lain atau menambahkan
fungsionalitas tersebut ke dalam Nmap. Sedangkan, administrator akan merasa lebih sulit
melakukan pekerjaan mereka. Menggunakan server FTP yang telah dipatch dan modern adalah
pertahanan yang jauh lebih baik daripada mencegah penyebaran tool implementasi serangan
FTP bounce.
Tidak ada peluru ajaib (atau opsi Nmap) untuk mendeteksi dan
menghindari firewall dan sistem IDS. Ia membutuhkan kemampuan dan pengalaman.
Tutorial adalah di luar cakupan panduan referensi ini, yang hanya mendaftarkan
opsi-opsi yang relevan dan menjelaskan apa yang mereka lakukan. -
-f (fragment packets);
--mtu (using the specified MTU)
Opsi -f menyebabkan scan yang diminta (termasuk
ping scan) untuk menggunakan paket IP terfragmentasi kecil. Idenya adalah
membagi header TCP ke beberapa paket untuk membuat filter paket, IDS, dan
gangguan lain kesulitan mendeteksi apa yang sedang anda lakukan. Hati-hatilah
dengan ini! Beberapa program memiliki kesulitan menangani paket-paket kecil ini.
Sniffer old-school bernama Sniffit akan menjadi segmentation faulted segera setelah
menerima fragmen pertama. Spesifikasikan opsi ini sekali, dan Nmap
membagi paket ke dalam delapan byte atau kurang setelah header IP.
Sehingga paket header TCP 20-byte akan dibagi ke dalam tiga paket.
Dua paket dengan delapan byte header TCP, dan satu paket dengan empat byte akhir.
Tentu saja setiap fragmen juga memiliki header IP. Spesifikasikan
-f lagi untuk menggunakan fragmen 16 byte (mengurangi
jumlah fragmen).
Atau anda dapat menspesifikasikan ukuran offset anda sendiri dengan opsi
--mtu. Jangan berikan opsi
-f bila anda menggunakan --mtu. Offset harus
merupakan kelipatan delapan. Meskipun paket fragmented tidak akan melewati
filter paket dan firewall yang membuat antrian seluruh fragment IP,
seperti opsi CONFIG_IP_ALWAYS_DEFRAG dalam kernel Linux,
beberapa jaringan tidak dapat mengatasi kerugian kinerja yang disebabkannya dan
membiarkan opsi tersebut tidak aktif. Yang lain tidak dapat mengaktifkannya
karena fragmen dapat mengambil rute yang berbeda ke jaringan mereka.
Beberapa sistem sumber mendeframentasi paket outgoing dalam kernel. Linux
dengan modul pelacakan koneksi iptable
adalah salah satu contohnya. Lakukan scan ketika sniffer seperti
Wireshark
berjalan untuk memastikan bahwa paket yang dikirim terfragmentasi. Jika OS
host anda menyebabkan masalah, cobalah opsi
--send-eth
untuk melewati lapisan IP dan mengirim frame ethernet raw. Fragmentasi hanya didukung oleh fitur paket raw Nmap,
yang mencakup scan port TCP dan UDP (kecuali scan connect dan FTP
bounce scan) dan deteksi SO. Fitur seperti deteksi versi dan
Nmap Scripting Engine umumnya tidak mendukung fragmentasi karena mereka
tergantung pada stack TCP host anda untuk berkomunikasi dengan layanan target. -
-D <decoy1>[,<decoy2>][,ME][,...]
(Cloak a scan with decoys)
Menyebabkan dilakukannya decoy scan, yang membuat
host remote menganggap bahwa host-host yang anda berikan sebagai
umpan (decoy) juga melakukan pemeriksaan jaringan target. Karenanya IDS mereka
mungkin melaporkan scan port sebanyak 5–10 dari alamat IP yang unik, tetapi
mereka tidak akan tahu IP mana yang memeriksa mereka dan mana yang umpan.
Meski hal ini dapat dikalahkan dengan router path tracing, response-dropping,
dan mekanisme aktif lainnya, namun ia umumnya merupakan teknik efektif untuk
menyembunyikan alamat IP anda. Pisahkan setiap host umpan dengan koma, dan anda dapat
secara opsional menggunakan
ME
sebagai salah satu umpan untuk mewakili posisi alamat IP real anda.
Jika anda menempatkan
ME pada posisi keenam atau lebih, beberapa
detektor scan port umum (seperti
Solar Designer's
Scanlogd yang bagus)
tidak akan menampilkan alamat IP anda sama sekali.
Jika anda tidak menggunakan ME, Nmap akan
menempatkan anda pada posisi acak. Anda dapat juga menggunakan
RND
untuk menghasilkan alamat IP acak dan non-reserved, atau
RND:<number> untuk
menghasilkan alamat <number> Perhatikan bahwa host
yang anda gunakan sebagai umpan harus hidup atau anda akan secara tidak sengaja
mebanjiri target anda dengan SYN. Juga mudah menentukan host mana yang memeriksa
jika hanya satu host saja yang hidup pada jaringan. Anda mungkin ingin
menggunakan alamat IP alih-alih nama (sehingga jaringan umpan tidak melihat
anda dalam log DNS mereka). Umpan digunakan dalam scan ping awal (menggunakan
ICMP, SYN, ACK, atau apapun) dan selama fase pemeriksaan port.
Umpan juga digunakan selama deteksi SO (-O).
Umpan tidak bekerja dengan deteksi versi atau scan connect TCP.
Ketika berlaku scan delay, delay ditegakkan antara setiap batch
probe palsu, tidak antara setiap probe invididual. Karena umpan
dikirim sebagai satu batch keseluruhan, mereka mungkin melanggar
batasan kendali kongesti secara sementara. Penting diperhatikan bahwa penggunaan terlalu banyak umpan
mungkin memperlambat scan anda dan secara potensial membuatnya
kurang akurat. Dan juga, beberapa ISP akan menyaring paket-paket palsu
anda, namun banyak juga yang tidak membatasi paket IP palsu. -
-S <IP_Address> (Spoof source address)
Dalam beberapa keadaan, Nmap mungkin tidak dapat menentukan
alamat sumber anda (Nmap akan memberitahu anda hal ini).
Dalam situasi ini, gunakan -S dengan alamat IP
interface yang ingin anda gunakan untuk mengirim paket. Kemungkinan lain penggunaan flag ini adalah untuk memalsukan scan
untuk membuat target berpikir bahwa orang lain
sedang memeriksa mereka. Bayangkan sebuah perusahaan sedang diperiksa
portnya secara berulang-ulang oleh pesaing! Opsi
-e dan -PN umumnya dibutuhkan
untuk penggunaan seperti ini. Perhatikan bahwa anda biasanya
tidak menerima paket reply (mereka akan ditujukan ke alamat IP
yang anda palsukan), sehingga Nmap tidak akan menghasilkan laporan
yang berguna. -
-e <interface> (Use specified interface)
Memberitahu Nmap interface untuk mengirim dan menerima paket.
Nmap seharusnya dapat mendeteksinya secara otomatis, namun ia akan
memberitahu anda bila ia tidak dapat melakukannya. -
--source-port <portnumber>;
-g <portnumber> (Spoof source port number)
Salah satu kesalahan konfigurasi umum yang mengagetkan adalah mempercayai
lalu lintas hanya berdasarkan nomor port sumber. Adalah mudah memahami bagaimana
hal ini terjadi. Administrator akan mensetup firewall baru, hanya untuk dibanjiri
dengan keluhan user yang aplikasinya berhenti bekerja. Secara khusus, DNS mungkin
tidak berfungsi karena reply UDP DNS dari server eksternal tidak dapat lagi memasuki
jaringan. FTP adalah contoh umum lainnya. Dalam transfer FTP aktif, server remote
berusaha membuka koneksi ke klien untuk mengirim file yang diminta. Terdapat solusi aman untuk masalah ini, seringkali berupa proxy
level-aplikasi atau modul firewall protocol-parsing. Sayangnya terdapat
pula solusi yang lebih mudah dan tidak aman. Dengan memperhatikan bahwa
balasan DNS datang dari port 53 dan active FTP dari port 20, banyak aadministrator
terjebak dengan membolehkan lalu lintas incoming dari port-port ini.
Mereka terkadang berasumsi bahwa tidak ada penyerang akan memperhatikan dan
memanfaatkan lubang firewall ini. Dalam kasus lain, administrator menganggap ini
sebagai solusi sementara hingga mereka dapat mengimplementasikan solusi yang lebih aman.
Lalu mereka lupa melakukan upgrade keamanan.
Administrator jaringan yang terlalu banyak kerja bukan satu-satunya yang
jatuh dalam jebakan ini. Sejumlah produk dikirim dengan rule tidak aman ini.
Bahkan Microsoft telah bersalah. Filter IPsec yang disertakan dengan
Windows 2000 dan Windows XP berisikan sebuah rule implisit yang membolehkan
semua lalu lintas TCP atau UDP dari port 88 (Kerberos). Dalam kasus terkenal lain,
firewall personal Zone Alarm hingga versi 2.1.25
membolehkan sembarang paket UDP incoming dengan port sumber 53 (DNS) atau 67
(DHCP). Nmap menawarkan opsi -g dan
--source-port (mereka ekivalen) untuk mengeksploitasi
kelemahan ini. Cukup berikan nomor port dan Nmap akan mengirim paket
dari port itu bila memungkinkan. Nmap harus menggunakan nomor port yang berbeda
bagi beberapa tes deteksi SO tertentu agar bekerja dengan benar, dan request DNS
mengabaikan flag --source-port karena Nmap mengandalkan pada librari sistem
untuk menangani hal ini. Kebanyakan scan TCP, termasuk SYN scan,
mendukung opsi secara penuh, demikian pula scan UDP. -
--data-length <number> (Append random
data to sent packets)
Normalnya Nmap mengirim paket minimalis yang hanya berisi header.
Sehingga paket TCP umumnya berukuran 40 byte dan request ICMP echo cuma 28.
Opsi ini memberitahu Nmap untuk menambahkan random byte sejumlah tertentu
untuk kebanyakan paket yang dikirimnya.
Paket deteksi SO (-O) tidak terpengaruh
karena akurasinya membutuhkan konsistensi probe, namun kebanyakan paket ping
dan portscan mendukung opsi ini. Ia sedikit memperlambat, namun dapat membuat
scan tidak terlalu mencurigakan. -
--ip-options <S|R [route]|L [route]|T|U ... >;
--ip-options <hex string> (Send packets with specified ip options)
Protokol IP
menawarkan beberapa opsi yang dapat ditempatkan pada header paket.
Tidak seperti opsi TCP yang umum, opsi IP jarang ditemukan karena masalah
kepraktisan dan keamanan. Nyatanya, banyak router Internet memblokir opsi yang
paling berbahaya seperti source routing. Namun opsi dapat tetap berguna
dalam beberapa kasus untuk menentukan dan memanipulasi rute jaringan ke
mesin target. Sebagai contoh, anda mungkin dapat menggunakan opsi record
route untuk menentukan path ke target bahkan ketika pendekatan tradisional
bergaya traceroute gagal. Atau bila paket anda di-drop oleh firewall tertentu,
anda mungkin dapat menspesifikasikan rute yang berbeda dengan opsi source
routing yang ketat atau longgar. Cara paling powerful untuk menspesifikasikan opsi IP adalah cukup dengan
memberikan nilainya sebagai argumen ke
--ip-options. Dahului setiap angka hex dengan
\x lalu dua digit. Anda dapat mengulang
karakter tertentu dengan menambahkan tanda bintang dan diikuti jumlah
perulangan yang anda inginkan. Sebagai contoh,
\x01\x07\x04\x00*36\x01 adalah sebuah string hex
berisi 36 NUL byte. Nmap juga menawarkan mekanisme shortcut untuk menspesifikasikan opsi.
Cukup berikan huruf R,
T, atau U untuk meminta
record-route,
record-timestamp,
atau keduanya,
Source routing
ketat atau longgar dapat dispesifikasikan dengan tanda
L atau S diikuti oleh
spasi dan kemudian daftar alamat IP yang dipisah-spasi. Jika anda ingin melihat opsi dalam paket yang dikirim dan diterima,
berikan --packet-trace. Informasi dan contoh lebih lanjut
tentang penggunaan opsi IP dengan Nmap, dapat dilihat di
http://seclists.org/nmap-dev/2006/q3/0052.html.
-
--ttl <value> (Set IP time-to-live field)
Set field time-to-live IPv4 dalam paket yang dikirim ke nilai
yang diberikan. -
--randomize-hosts (Randomize target host order)
Beritahu Nmap untuk mengacak setiap kelompok hingga 16384 host
sebelum memeriksa merekaa. Hal ini dapat membuat scan kurang mencurigakan
bagi berbagai sistem monitoring jaringan, terutama bila anda menggabungkannya
dengan opsi pewaktuan yang lambat. Jika anda ingin mengacak dalam ukuran yang
lebih besar, naikkan nilai
PING_GROUP_SZ
dalam nmap.h
dan kompilasi ulang.
Solusi alternatif adalah menghasilkan daftar IP target dengan
list scan (-sL -n -oN
<filename>), acaklah dengan skrip Perl,
lalu berikan seluruh daftar ke Nmap dengan
-iL.
-
--spoof-mac <MAC address, prefix, or vendor
name> (Spoof MAC address)
Meminta Nmap untuk menggunakan alamat MAC
yang diberikan untuk seluruh frame ethernet raw yang dikirimkan. Opsi ini mengimplikasikan
--send-eth
untuk memastikan bahwa Nmap benar-benar mengirim paket level-ethernet.
MAC yang diberikan dapat dalam beragam format. Jika berupa angka 0, Nmap memilih alamat MAC yang acak untuk sesi itu.
Jika string yang diberikan adalah angka genap digit hex (setiap digit berpasangan
dipisahkan oleh tanda titik dua), Nmap akan menggunakannya sebagai MAC.
Jika diberikan kurang dari 12 digit hex, Nmap mengisi sisa 6 byte-nya dengan nilai acak.
Jika argumen bukanlah nol atau string hex, Nmap mencari melalui file
nmap-mac-prefixes untuk menemukan nama vendor
berisikan string yang diberikan (tidak case sensitive). Jika ditemukan kecocokan,
Nmap menggunakan OUI (three-byte prefix) vendor
dan mengisi tiga byte sisanya secara random.
Contoh argumen yang valid --spoof-mac adalah Apple, 0,
01:02:03:04:05:06, deadbeefcafe, 0020F2, dan Cisco. Opsi ini hanya mempengaruhi scan paket raw seperti SYN scan atau deteksi SO, dan tidak berlaku pada fitur berorientasi-koneksi seperti deteksi versi atau Nmap Scripting Engine. -
--badsum (Send packets with bogus TCP/UDP checksums)
Meminta Nmap untuk menggunakan checksum TCP atau UDP tidak valid untuk
paket yang dikirimkan ke host target. Karena secara virtual seluruh
stack IP host akan secara tepat men-drop paket ini, sembarang respon yang diterima
adalah kemungkinan berasal dari firewall atau IDS yang tidak peduli untuk memverifikasi
checksum. Detil lebih lanjut mengenai teknik ini, dapat dilihat pada http://nmap.org/p60-12.html
|
|