Nmap Summary (ESP)
Last updated
Last updated
AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
<ip>,<net/mask>
: IP'leri doğrudan belirtir
-iL <ips_file>
: list_IPs
-iR <number>
: Rastgele IP sayısı, --exclude <Ips>
veya --excludefile <file>
ile olası IP'leri hariç tutabilirsiniz.
Varsayılan olarak Nmap, -PA80 -PS443 -PE -PP
içeren bir keşif aşaması başlatır.
-sL
: İnvaziv değildir, isimleri çözmek için DNS istekleri yaparak hedefleri listeler. Örneğin www.prueba.es/24'te tüm IP'lerin hedeflerimiz olup olmadığını bilmek için faydalıdır.
-Pn
: Ping yok. Hepsinin aktif olduğunu biliyorsanız faydalıdır (değilse, çok zaman kaybedebilirsiniz, ancak bu seçenek aynı zamanda aktif olmadıklarını söyleyerek yanlış negatifler de üretebilir), keşif aşamasını engeller.
-sn
: Port taraması yok. Keşif aşamasını tamamladıktan sonra portları taramaz. Göreceli olarak gizlidir ve küçük bir ağ taramasına izin verir. Yetkilerle 80'e bir ACK (-PA), 443'e bir SYN(-PS) ve bir yankı isteği ve bir Zaman damgası isteği gönderir, yetkisizse her zaman bağlantıları tamamlar. Hedef ağsa, yalnızca ARP(-PR) kullanır. Başka bir seçenekle kullanıldığında, yalnızca diğer seçeneğin paketleri düşer.
-PR
: Ping ARP. Ağımızdaki bilgisayarları analiz ederken varsayılan olarak kullanılır, ping kullanmaktan daha hızlıdır. ARP paketlerini kullanmak istemiyorsanız --send-ip
kullanın.
-PS <ports>
: SYN paketleri gönderir, eğer SYN/ACK ile yanıt verirse açıktır (bağlantıyı sonlandırmamak için RST ile yanıt verir), eğer RST ile yanıt verirse kapalıdır ve eğer yanıt vermezse ulaşılamazdır. Yetkiler yoksa, otomatik olarak tam bir bağlantı kullanılır. Hiç port verilmezse, 80'e atar.
-PA <ports>
: Öncekine benzer ama ACK ile, ikisini birleştirmek daha iyi sonuçlar verir.
-PU <ports>
: Amaç tam tersidir, kapalı olması beklenen portlara gönderilir. Bazı güvenlik duvarları yalnızca TCP bağlantılarını kontrol eder. Kapalıysa port ulaşılamaz ile yanıt verilir, başka bir icmp ile yanıtlanırsa veya yanıt verilmezse hedef ulaşılamaz olarak bırakılır.
-PE, -PP, -PM
: ICMP PING'leri: yankı yanıtı, zaman damgası ve adres maskesi. Hedefin aktif olup olmadığını öğrenmek için gönderilir.
-PY<ports>
: Varsayılan olarak 80'e SCTP INIT probeleri gönderir, yanıt olarak INIT-ACK(açık) veya ABORT(kapalı) veya hiçbir şey veya ICMP ulaşılamaz (pasif) dönebilir.
-PO <protocols>
: Başlıklarda bir protokol belirtilir, varsayılan olarak 1(ICMP), 2(IGMP) ve 4(Encap IP). ICMP, IGMP, TCP (6) ve UDP (17) protokolleri için protokol başlıkları gönderilir, diğerleri için yalnızca IP başlığı gönderilir. Bunun amacı, başlıkların bozulması nedeniyle, Protokol ulaşılamaz veya aynı protokolün yanıtları ile yanıt vererek aktif olup olmadığını bilmektir.
-n
: DNS yok
-R
: Her zaman DNS
-sS
: Bağlantıyı tamamlamaz, bu nedenle iz bırakmaz, kullanılması çok iyi. (yetkiler) Varsayılan olarak kullanılır.
-sT
: Bağlantıyı tamamlar, bu nedenle iz bırakır, ancak kesinlikle kullanılabilir. Varsayılan olarak yetkisizdir.
-sU
: Daha yavaş, UDP için. Genellikle: DNS(53), SNMP(161,162), DHCP(67 ve 68), (-sU53,161,162,67,68): açık(yanıt), kapalı(port ulaşılamaz), filtrelenmiş (başka bir ICMP), açık/filtrelenmiş (hiçbir şey). Açık/filtrelenmiş durumunda, -sV, nmap'in desteklediği herhangi bir sürümü tespit etmek için çok sayıda istek gönderir ve gerçek durumu tespit edebilir. Zamanı çok artırır.
-sY
: SCTP protokolü bağlantıyı kurmada başarısız olur, bu nedenle günlük kaydı yoktur, -PY gibi çalışır.
-sN,-sX,-sF
: Null, Fin, Xmas, bazı güvenlik duvarlarını geçebilir ve bilgi çıkarabilir. Standart uyumlu makinelerin SYN, RST veya ACK gecikmesi olmayan tüm isteklere RST ile yanıt vermesi gerektiği esasına dayanır: açık/filtrelenmiş(hiçbir şey), kapalı(RST), filtrelenmiş (ICMP ulaşılamaz). Windows, Cisco, BSDI ve OS/400 üzerinde güvenilir değildir. Unix'te evet.
-sM
: Maimon taraması: FIN ve ACK bayrakları gönderir, BSD için kullanılır, şu anda hepsini kapalı olarak dönecektir.
-sA, sW
: ACK ve Pencere, güvenlik duvarlarını tespit etmek için kullanılır, portların filtrelenip filtrelenmediğini bilmek için. -sW, açık/kapalı arasında ayrım yapar çünkü açık olanlar farklı bir pencere değeri ile yanıt verir: açık (0'dan farklı bir pencere ile RST), kapalı (RST pencere = 0), filtrelenmiş (ICMP ulaşılamaz veya hiçbir şey). Tüm bilgisayarlar bu şekilde çalışmaz, bu nedenle hepsi kapalıysa çalışmıyor demektir, az sayıda açık varsa iyi çalışıyor demektir, ve çok sayıda açık ve az sayıda kapalı varsa, tam tersi çalışıyor demektir.
-sI
: Idle taraması. Aktif bir güvenlik duvarı varsa ancak belirli bir IP'yi filtrelemediğini biliyorsak (veya sadece anonimlik istiyorsak) zombi tarayıcıyı kullanabiliriz (tüm portlar için çalışır), olası zombileri aramak için ipidseq veya exploit auxiliary/scanner/ip/ipidseq kullanabiliriz. Bu tarayıcı, IP paketlerinin IPID numarasına dayanır.
--badsum
: Yanlış toplam gönderir, bilgisayarlar paketleri atar, ancak güvenlik duvarları bir şey yanıtlayabilir, güvenlik duvarlarını tespit etmek için kullanılır.
-sZ
: "Garip" SCTP tarayıcı, cookie echo parçaları ile probeler gönderdiğinde, açık olduğunda atılmalı veya kapalı olduğunda ABORT ile yanıt verilmelidir. Geçemediği güvenlik duvarlarından geçebilir, kötü olanı ise filtrelenmiş ve açık arasında ayrım yapmamaktadır.
-sO
: Protokol IP taraması. Bazen protokolün bile ayırt edilemediği kötü ve boş başlıklar gönderir. ICMP ulaşılamaz protokol gelirse kapalıdır, ulaşılamaz port gelirse açıktır, başka bir hata gelirse filtrelenmiş, hiçbir şey gelmezse açık|filtrelenmiş.
-b <server>
: FTPhost--> Başka bir makineden bir hostu taramak için kullanılır, bu, başka bir makinenin ftp'sine bağlanarak ve taramak istediğiniz portlara dosyalar göndermesini istemekle yapılır, yanıtlarına göre açık olup olmadıklarını bileceğiz. [<user>:<password>@]<server>[:<port>] Neredeyse tüm ftp sunucuları artık bunu yapmanıza izin vermiyor ve bu nedenle pratikte pek bir kullanımı yok.
-p: Tarayacak portları belirtmek için kullanılır. 65335'i seçmek için: -p- veya -p all. Nmap, popülaritesine göre dahili bir sıralama yapar. Varsayılan olarak 1000 ana portu kullanır. -F (hızlı tarama) ile 100 ana portu analiz eder. --top-ports <sayı> Bu sayıda ana portu analiz eder (1 ile 65335 arasında). Portları rastgele kontrol eder, bunun olmaması için -r kullanılır. Ayrıca portları seçebiliriz: 20-30,80,443,1024- Bu sonuncusu 1024'ten itibaren bakmasını ifade eder. Portları protokollere göre gruplandırabiliriz: U:53,T:21-25,80,139,S:9. Ayrıca nmap'in popüler portları arasında bir aralık seçebiliriz: -p [-1024] nmap-services'de dahil olan 1024'e kadar analiz eder. --port-ratio <oran> 0 ile 1 arasında olmalıdır.
-sV Sürüm taraması, yoğunluğu 0'dan 9'a kadar ayarlayabiliriz, varsayılan 7'dir.
--version-intensity <sayı> Yoğunluğu ayarlıyoruz, daha düşük olduğunda yalnızca en olası probeleri gönderecektir, ancak hepsini değil. Bu, UDP tarama süresini önemli ölçüde kısaltabilir.
-O OS tespiti
--osscan-limit Bir hostu iyi taramak için en az 1 açık ve 1 kapalı port olması gerekir, bu koşul sağlanmazsa ve bunu ayarladıysak, OS tahmini yapmaz (zaman tasarrufu sağlar).
--osscan-guess OS tespiti mükemmel olmadığında daha fazla çaba sarf etmesini sağlar.
Scriptler
--script <dosya adı>|<kategori>|<dizin>|<ifade>[,...]
Varsayılan olanları kullanmak için -sC veya --script=default yeterlidir.
Mevcut türler: auth, broadcast, default, discovery, dos, exploit, external, fuzzer, intrusive, malware, safe, version ve vuln
Auth: Kimlik doğrulama için mevcut tüm _script_leri çalıştırır.
Default: Araç için varsayılan temel _script_leri çalıştırır.
Discovery: Hedef veya kurban hakkında bilgi toplar.
External: Dış kaynakları kullanmak için script.
Intrusive: Kurban veya hedef için müdahaleci olarak kabul edilen _script_leri kullanır.
Malware: Kötü amaçlı yazılımlar veya arka kapılar (backdoors) tarafından açık bağlantıları kontrol eder.
Safe: Müdahale etmeyen _script_leri çalıştırır.
Vuln: En bilinen güvenlik açıklarını keşfeder.
All: Mevcut tüm NSE uzantılı _script_leri çalıştırır.
Script aramak için:
nmap --script-help="http-*" -> http- ile başlayanlar
nmap --script-help="not intrusive" -> Bunlar hariç hepsi
nmap --script-help="default or safe" -> Birinde veya diğerinde veya her ikisinde olanlar
nmap --script-help="default and safe" --> Her ikisinde olanlar
nmap --script-help="(default or safe or intrusive) and not http-*"
--script-args <n1>=<v1>,<n2>={<n3>=<v3>},<n4>={<v4>,<v5>}
--script-args-file <dosya adı>
--script-help <dosya adı>|<kategori>|<dizin>|<ifade>|all[,...]
--script-trace ---> Script'in nasıl gittiğine dair bilgi verir.
--script-updatedb
Bir script kullanmak için sadece şunu yazmak yeterlidir: namp --script Script_Adı hedef --> Script yazıldığında hem script hem de tarayıcı çalıştırılacak, bu nedenle tarayıcı seçenekleri de eklenebilir, yalnızca güvenli olanların çalıştırılması için “safe=1” ekleyebiliriz.
Zaman Kontrolü
Nmap, zamanı saniye, dakika, ms cinsinden değiştirebilir: --host-timeout arguments 900000ms, 900, 900s ve 15m hepsi aynı şeyi yapar.
Nmap, taranacak toplam host sayısını gruplara ayırır ve bu grupları bloklar halinde analiz eder, böylece tüm gruplar analiz edilmeden bir sonraki bloğa geçmez (ve kullanıcı da bir blok analiz edilene kadar herhangi bir güncelleme almaz) bu şekilde, nmap'in büyük gruplar kullanması daha optimaldir. Varsayılan olarak sınıf C'de 256 kullanır.
--min-hostgroup <numhosts>; --max-hostgroup <numhosts> (Paralel tarama grup boyutlarını ayarlayın)
Paralel tarayıcı sayısını kontrol edebiliriz ama bunu yapmamak daha iyidir (nmap, ağ durumuna göre otomatik kontrol içerir): --min-parallelism <numprobes>; --max-parallelism <numprobes>
RTT zaman aşımını değiştirebiliriz, ancak genellikle gerekli değildir: --min-rtt-timeout <time>, --max-rtt-timeout <time>, --initial-rtt-timeout <time>
Deneme sayısını değiştirebiliriz:--max-retries <numtries>
Bir hostun tarama süresini değiştirebiliriz: --host-timeout <time>
Her deneme arasında yavaş gitmesi için süreyi değiştirebiliriz: --scan-delay <time>; --max-scan-delay <time>
Saniyede gönderilen paket sayısını değiştirebiliriz: --min-rate <number>; --max-rate <number>
Birçok port, filtrelenmiş veya kapalı olduğunda yanıt vermekte uzun sürer, eğer yalnızca açık olanlarla ilgileniyorsak, daha hızlı gidebiliriz: --defeat-rst-ratelimit
Nmap'in ne kadar agresif olmasını istediğimizi tanımlamak için: -T paranoid|sneaky|polite|normal|aggressive|insane
-T (0-1)
-T0 --> Sadece 1 port taranır ve bir sonraki için 5 dakika beklenir.
-T1 ve T2 --> Çok benzerler ama her deneme arasında sırasıyla 15 ve 0,4 saniye beklerler.
-T3 --> Varsayılan çalışma, paralel içerir.
-T4 --> --max-rtt-timeout 1250ms --min-rtt-timeout 100ms --initial-rtt-timeout 500ms --max-retries 6 --max-scan-delay 10ms
-T5 --> --max-rtt-timeout 300ms --min-rtt-timeout 50ms --initial-rtt-timeout 250ms --max-retries 2 --host-timeout 15m --max-scan-delay 5ms
Güvenlik Duvarı/IDS
Portları geçişine izin vermez ve paketleri analiz eder.
-f Paketleri parçalara ayırmak için, varsayılan olarak başlıktan sonra 8 baytlık parçalara ayırır, bu boyutu belirtmek için ..mtu kullanırız (bunu yaparken -f kullanmayın), offset 8'in katı olmalıdır. Sürüm tarayıcıları ve scriptler parçalamayı desteklemez.
-D decoy1,decoy2,ME Nmap tarayıcıları gönderir ancak başka IP adresleri ile kaynak olarak, bu şekilde sizi gizler. Listede ME'yi eklerseniz, nmap sizi oraya yerleştirir, tamamen gizlenmek için önünüze 5 veya 6 tane koymak daha iyidir. Rastgele IP'ler oluşturmak için RND:<sayı> kullanabilirsiniz. <sayı> kadar rastgele IP oluşturur. TCP bağlantısı olmadan sürüm tespit cihazları ile çalışmaz. Eğer bir ağ içindeyseniz, aktif olan IP'leri kullanmak önemlidir, aksi takdirde tek aktif olduğunuzu anlamak çok kolay olacaktır.
Rastgele IP'ler kullanmak için: nmap-D RND: 10 Hedef_IP
-S IP Nmap IP adresinizi yakalayamazsa vermeniz gereken şeydir. Ayrıca başka bir hedefin tarandığı izlenimini vermek için de kullanılır.
-e <arayüz> Arayüzü seçmek için.
Birçok yönetici, her şeyin düzgün çalışması için açık giriş portları bırakır ve başka bir çözüm aramaktan daha kolaydır. Bunlar DNS veya FTP portları olabilir... Bu güvenlik açığını aramak için nmap şunları içerir: --source-port <portnumber>;-g <portnumber> Eşdeğerdir.
--data <hex string> Hexadecimal metin göndermek için: --data 0xdeadbeef ve --data \xCA\xFE\x09
--data-string <string> Normal metin göndermek için: --data-string "Güvenlik Operasyonları tarafından gerçekleştirilen tarama, uzantı 7192"
--data-length <sayı> Nmap yalnızca başlıklar gönderir, bununla birlikte, buna ek olarak rastgele olarak oluşturulacak bir bayt sayısı ekler.
IP paketini tamamen yapılandırmak için --ip-options kullanın.
Gönderilen ve alınan paketlerdeki seçenekleri görmek istiyorsanız, --packet-trace belirtin. Nmap ile IP seçeneklerini kullanma hakkında daha fazla bilgi ve örnekler için http://seclists.org/nmap-dev/2006/q3/52 adresine bakın.
--ttl <değer>
--randomize-hosts Saldırının daha az belirgin olması için.
--spoof-mac <MAC adresi, ön ek veya satıcı adı> MAC'i değiştirmek için örnekler: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 ve Cisco.
--proxies <Virgülle ayrılmış proxy URL'leri listesi> Proxy kullanmak için, bazen bir proxy nmap'in istediği kadar açık bağlantı tutmaz, bu nedenle paralelliği değiştirmek gerekebilir: --max-parallelism.
-sP ARP ile bulunduğumuz ağdaki hostları keşfetmek için.
Birçok yönetici, belirli bir porttan (20, 53 ve 67 gibi) gelen tüm paketlerin geçmesine izin veren bir güvenlik duvarı kuralı oluşturur, nmap'e bu portlardan paket göndermesini söyleyebiliriz: nmap --source-port 53 Hedef_IP
Çıktılar
-oN dosya Normal çıktı.
-oX dosya XML çıktısı.
-oS dosya Script kiddie çıktısı.
-oG dosya Grep'lenebilir çıktı.
-oA dosya Hepsi -oS hariç.
-v seviye ayrıntı seviyesi.
-d seviye hata ayıklama.
--reason Host ve durumun nedeni.
--stats-every zaman Bu süre zarfında ne durumda olduğumuzu söyler.
--packet-trace Hangi paketlerin çıktığını görmek için, --version-trace veya --script-trace gibi filtreler belirtilebilir.
--open açık olanları, açık|filtrelenmiş ve filtrelenmemiş olanları gösterir.
--resume dosya Bir özet çıkarır.
Çeşitli
-6 IPv6'yı etkinleştirir.
-A -O -sV -sC --traceroute ile aynıdır.
Çalışma Süresi
Nmap çalışırken seçenekleri değiştirebiliriz:
v / V Ayrıntı seviyesini artırma / azaltma.
d / D Hata ayıklama seviyesini artırma / azaltma.
p / P Paket izlemeyi açma / kapama.
? Çalışma zamanı etkileşimi yardım ekranını yazdırır.
Vulscan
Nmap script'i, elde edilen hizmetlerin sürümlerini çevrimdışı bir veritabanında (diğer önemli veritabanlarından indirir) kontrol eder ve olası güvenlik açıklarını döndürür.
Kullandığı veritabanları:
Scipvuldb.csv | http://www.scip.ch/en/?vuldb
Cve.csv | http://cve.mitre.org
Osvdb.csv | http://www.osvdb.org
Securityfocus.csv | http://www.securityfocus.com/bid/
Securitytracker.csv | http://www.securitytracker.com
Xforce.csv | http://xforce.iss.net
Exploitdb.csv | http://www.exploit-db.com
Openvas.csv | http://www.openvas.org
Bunu indirmek ve Nmap klasörüne kurmak için:
wget http://www.computec.ch/projekte/vulscan/download/nmap_nse_vulscan-2.0.tar.gz && tar -czvf nmap_nse_vulscan-2.0.tar.gz vulscan/ && sudo cp -r vulscan/ /usr/share/nmap/scripts/
Ayrıca veritabanlarının paketlerini indirip /usr/share/nmap/scripts/vulscan/ dizinine eklemek gerekir.
Kullanım:
Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARANACAK_HOST
Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARANACAK_HOST
Bu gönderiye göre, nmap servis analizini hızlandırmak için /usr/share/nmap/nmap-service-probes
dosyasındaki tüm totalwaitms
değerlerini 300 ve tcpwrappedms
değerini 200 olarak değiştirebilirsiniz.
Ayrıca, belirli bir servicewaitms
tanımlanmamış probeler varsayılan olarak 5000
değerini kullanır. Bu nedenle, her bir probeye değer ekleyebiliriz veya nmap'i kendimiz derleyip service_scan.h dosyasındaki varsayılan değeri değiştirebiliriz.
Eğer totalwaitms
ve tcpwrappedms
değerlerini /usr/share/nmap/nmap-service-probes
dosyasında hiç değiştirmek istemiyorsanız, bu değerlerin nmap-service-probes
dosyasında tamamen göz ardı edilmesi için parsing kodunu düzenleyebilirsiniz.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)