BGA CEH Eğitimi Notları #Gün 1 – Ders 2
Bilgi Toplama (Devam)
- Arama motorlarından bilgi toplama Read more »
Bilgi Toplama (Devam)
Gökay BEKŞEN tarafından hazırlanan Nmap Kullanım Kitapçığı Bilgi Güvenliği AKADEMİSİ kütüphanesine eklenmiştir.
Kitapçık http://www.bga.com.tr/calismalar/nmap_guide.pdf adresinden indirilebilir.
10 yılı aşkın süredir açık kaynak kodlu geliştirilen Nmap’e özellikle son birkaç yıldır güvenlik uzmanlarının işlerini kolaylaştıran özellikler ekleniyor. Yine yoğun olarak eğitim notlarını güncellerken aslında Nmap’in birçok özelliğini eksik bıraktığımı farkettim. Nmap notlarım iki senedir felan güncellenmediği için gözüme bayat geliyordu.
Bu aralar işimin de tamamen güvenlik testlerine kayması ile birlikte bol zaman bulabiliyorum. Eğitim notları hazırlarken buraya da ufak tefek eklemeler yapıyorum.
İşte nmap’in az bilinen fakat çok işe yarayan özelliklerinden birkaçı.
En sık kullanılan portlar üzerinde tarama
Port taramalarında en büyük sorunlardan biri hangi portların taramaya dahil edileceğidir. Bilindiği üzere TCP ve UDP protokollerinin her biri 65535 port olasılığı var. Taramalarda tüm bu portları taramaya dahil edecek olursak tarama zamanı oldukça uzayacaktır. Dahil edilmezse de arada açık olup fakat bizim taramadığımız portlar olabilir. Bu sıkıntıyı aşmak için Nmap yazarı Fyodor geçen sene internet üzerinde yaptığı uzun araştırmalar sonucu internete açık portların belli oranını çıkartmış. Bu araştırma ile top 10, top 100, top 1000 gibi portları taratmak mümkün hale gelmiştir.
Taramanın sonuçlarına göre internette en fazla bulunan açık portlar şu şekildedir. Read more »
Bir önceki blog girdisinde NSE’in faydalarından ve basit kullanımından bahsetmiştim. Şimdi de çeşitli NSE scriptlerini kullanarak manuel ya da scriptlerle yaptığımız işleri Nmap’e nasıl havale edeceğimize bakalım. Ilk test sistemlerin DNS cache poisoning’e açık olup olmadığını test etmek. Bugün yaptığım bazı testler sonrası bu konunun oldukça önemli olduğunu anladım. Hatta derdimi anlatacak birileri bulsam tüm Türkiye’nin ip aralığını alıp bu testten gerçirmek isterdim ama arada bir arıza çıkar da sen bizim networkümüzü hangi hakla tararsın(Taramak? DNS sunucusuna çeşitli istekler göndermek illegal mıdır?) diye söylenir diye bu fikrimden şimdilik vazgeçtim.
İçinde birden fazla DNS sunucu barındıranların kendi sistemlerini test etmeleri için buraya Nmap ile testlerin nasıl yapılacağını yazayım belki birilerine faydası dokunur.
Dns cache poisoning açıklığını test etmek için hedef sistemde iki değer kontrol edilir. Birincisi dns sorgulamalarında kaynak portun değiştirilmesi, diğeri de dns sorgularındaki TXID değerinin yeteri kadar random/rastgele olması. Nmap ile bu iki değeri de kontrol edebiliriz. Hatta tek bir taramada her ikisi de kontrol edilebilir.
Önce kaynak port rastgeleliğini test edelim.
# nmap -P0 -sU -p 53 –script dns-random-srcport 100.100.100.2 -vv
Starting Nmap 4.76 ( http://nmap.org ) at 2009-01-12 11:14 GMT
Initiating Parallel DNS resolution of 1 host. at 11:14
Completed Parallel DNS resolution of 1 host. at 11:14, 0.00s elapsed
Initiating UDP Scan at 11:14
Scanning (100.100.100.2) [1 port]
Completed UDP Scan at 11:14, 2.02s elapsed (1 total ports)
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 11:14
Discovered open port 53/udp on 100.100.100.2
Completed SCRIPT ENGINE at 11:14, 5.83s elapsed
Host host- (100.100.100.2) appears to be up … good.
Scanned at 2009-01-12 11:14:39 GMT for 8s
Interesting ports on (100.100.100.2):
PORT STATE SERVICE
53/udp open domain
|_ dns-random-srcport: 100.100.100.2 is POOR: 52 queries in 108.6 seconds from 1 ports with std dev 0Read data files from: /usr/local/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 8.04 seconds
Raw packets sent: 2 (56B) | Rcvd: 0 (0B)
Benzer şekilde txid üretecinin tahmin edilebilirligini test etmek için
# nmap -P0 -sU -p 53 –script dns-random-txid 100.100.100.2 -vv
komutu kullanılabilir.
bt scripts # nmap -P0 -sU -p 53 –script dns-random-txid 100.100.100.5 -vv
Starting Nmap 4.76 ( http://nmap.org ) at 2009-01-12 11:50 GMT
Initiating Parallel DNS resolution of 1 host. at 11:50
Completed Parallel DNS resolution of 1 host. at 11:50, 0.10s elapsed
Initiating UDP Scan at 11:50
Scanning 100.100.100.5 [1 port]
Completed UDP Scan at 11:50, 2.02s elapsed (1 total ports)
SCRIPT ENGINE: Initiating script scanning.
Initiating SCRIPT ENGINE at 11:50
Discovered open port 53/udp on 100.100.100.5
Completed SCRIPT ENGINE at 11:50, 5.80s elapsed
Host 100.100.100.5 appears to be up … good.
Scanned at 2009-01-12 11:50:48 GMT for 8s
Interesting ports on 100.100.100.5:
PORT STATE SERVICE
53/udp open domain
|_ dns-random-txid: x.y.z.t is GREAT: 26 queries in 5.3 seconds from 26 txids with std dev 17822Read data files from: /usr/local/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 8.09 seconds
Raw packets sent: 2 (56B) | Rcvd: 0 (0B)
Her iki testi de tek bir Nmap taraması ile gerçekleştirmek için scriptler arasına “, ” koyulması yeterli olacaktır.
Nmap tarafından dns ile ilgili yapılabilecek diğer taramalar.
bt scripts # ls dns*
dns-random-srcport.nse dns-random-txid.nse dns-recursion.nse dns-test-open-recursion.nse dns-zone-transfer.nse
NSE- Nmap Scripting Engine
Nmap’in en begendigim ozelliklerinden biri cok yaygin kullanilmayan NSE’dir. NSE(Nmap Script Engine) basit scriptlerle Nmap’in gucunu kat kat arttıran bir bileşen. NSE ile Nessus benzeri zayıflık tarama sistemlerinin yaptığı bazı taramaları yapabilirsiniz. Mesela Turkiye’deki Zone transfere acık DNS sunucularını bulmak isterseniz NSE scriptleri arasından zone-transfer scriptini kullanabilirsiniz. Böylece hem ek bir program kullanmadan hem de Nmap’in hızını arkanıza alarak istediğiniz sonuçlara kısa sürede ulaşmış olursunuz.
Her ne kadar Nmap yazarı Fyodor yazılımının Nessus ya da Metasploit benzeri bir arac olmayacağını söylese de kullanıcılar tarafından hazırlanan lua scriptleri gidişatın o yönde olduğunu gösteriyor. Scriptler arasında basit sql-injection’dan tutun güncel Windows exploit denemelerine kadar bir sürü çeşit var. Kısaca Nmap NSE özelliği ile Network tarayıcı kategorisine sığmaz olmuştur.
Uzun zamandır NSE konusunu detaylı incelemek için fırsat kolluyordum. Pentest eğitimi için notlarımı zenginleştireyim derken biraz daha detaylı inceleme fırsatı buldum ve çok hoşuma gitti. Buraya da basit basit aktarmaya çalışacağım…
NSE ile ilgili Nmap parametreleri
SCRIPT SCAN:
-sC: equivalent to –script=safe,intrusive
–script=<Lua scripts>: <Lua scripts> is a comma separated list of
directories, script-files or script-categories
–script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
–script-trace: Show all data sent and received
–script-updatedb: Update the script database.
NSE’i test etmek için en basitinden -sC parametresi kullanılabilir.
# nmap -P0 -sC -p 21,22,23,25,80,3306 mail.lifeoverip.net
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-12 20:47 GMT
Interesting ports on mail.lifeoverip.net (80.93.212.86):
PORT STATE SERVICE
21/tcp open ftp
22/tcp open ssh
23/tcp closed telnet
25/tcp open smtp
| SMTP: Responded to EHLO command
| mail.sistembil.com
| AUTH LOGIN CRAM-MD5 PLAIN
| AUTH=LOGIN CRAM-MD5 PLAIN
| PIPELINING
| 250 8BITMIME
| Responded to HELP command
|_ qmail home page: http://pobox.com/~djb/qmail.html
80/tcp open http
|_ HTML title: 302 Found
3306/tcp open mysql
| MySQL Server Information: MySQL Error detected!
| Error Code was: 1130
|_ Host ’85.96.187.185′ is not allowed to connect to this MySQL serverNmap done: 1 IP address (1 host up) scanned in 6.237 seconds
NSE scriptleri /usr/local/share/nmap/scripts dizini altında bulunur. Ara ara svn update yaparak yeni eklenen imzalar indirilebilir. Her imza ekleme sonrası nmap –script-updatedb komutunun çalıştırılması gerekir.
Örnek Kullanımlar:
Anonim ftp destekleyen sistemlerin bulunması
# nmap -P0 -p 21 –script anonFTP.nse ftp.linux.org.tr
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-12 20:55 GMT
Interesting ports on ftp.linux.org.tr (193.140.100.100):
PORT STATE SERVICE
21/tcp open ftp
|_ Anonymous FTP: FTP: Anonymous login allowedNmap done: 1 IP address (1 host up) scanned in 0.152 seconds
Hedef sistemin SSLV2 desteklediğinin öğrenmek için
# nmap -P0 -p 443 –script SSLv2-support blog.lifeoverip.net
Starting Nmap 4.60 ( http://nmap.org ) at 2009-01-12 20:57 GMT
Interesting ports on mail.lifeoverip.net (80.93.212.86):
PORT STATE SERVICE
443/tcp open https
| SSLv2: server still supports SSLv2
| SSL2_DES_192_EDE3_CBC_WITH_MD5
| SSL2_RC2_CBC_128_CBC_WITH_MD5
| SSL2_RC4_128_WITH_MD5
| SSL2_RC4_64_WITH_MD5
| SSL2_DES_64_CBC_WITH_MD5
| SSL2_RC2_CBC_128_CBC_WITH_MD5
|_ SSL2_RC4_128_EXPORT40_WITH_MD5Nmap done: 1 IP address (1 host up) scanned in 0.114 seconds
Yukarıda basit scriptleri kullanarak Nmap’e port tarama haricinde bazı işler yaptırdık. Scriptler incelenirse daha ileri seviye işlemlerin yaptırılabileceği görülecektir.
NSE ve yazılan scriptler hakkında detay bilgi için aşağıdaki adresler kullanılabilir.
http://nmap.org/book/nse.html
http://nmap.org/nsedoc/