Nmap Summary (ESP)

AWS Hacking'i öğrenin ve uygulayın: HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)

HackTricks'i Destekleyin

``` nmap -sV -sC -O -n -oA nmapscan 192.168.0.1/24 ``` ## Parametreler

Taranacak IP'ler

  • <ip>,<net/mask>: IP'leri doğrudan belirtir

  • -iL <ips_file>: IP listesi

  • -iR <number>: Rastgele IP'lerin sayısı, olası IP'leri --exclude <Ips> veya --excludefile <file> ile hariç tutabilirsiniz.

Ekipman keşfi

Nmap varsayılan olarak -PA80 -PS443 -PE -PP oluşan bir keşif aşaması başlatır.

  • -sL: İstilacı değildir, hedefleri listeler ve isimleri çözmek için DNS istekleri yapar. Örneğin www.prueba.es/24 gibi tüm IP'lerin hedeflerimiz olup olmadığını bilmek için faydalıdır.

  • -Pn: Ping yok. Tümünün aktif olduğunu biliyorsanız (aksi takdirde çok zaman kaybedebilirsiniz, ancak bu seçenek aynı zamanda aktif olmadıklarını belirterek yanlış negatifler üretir), keşif aşamasını engeller.

  • -sn : Port taraması yok. Keşif aşamasını tamamladıktan sonra port taraması yapmaz. Nispeten gizli ve küçük bir ağ taramasına izin verir. Yetkilerle 80'e bir ACK (-PA), 443'e bir SYN(-PS) ve bir echo isteği ile bir Zaman damgası isteği gönderir, yetkiler olmadan 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 bırakılır.

  • -PR: Ping ARP. Ağımızdaki bilgisayarları analiz ederken varsayılan olarak kullanılır, ping'leri kullanmaktan daha hızlıdır. ARP paketleri kullanmak istemiyorsanız --send-ip kullanın.

  • -PS <ports>: Eğer SYN/ACK ile yanıtlarsa açıktır (bağlantıyı sonlandırmamak için RST ile yanıtlarsa), RST ile yanıtlarsa kapalıdır ve yanıt vermezse ulaşılamazdır. Yetkileri yoksa, otomatik olarak toplam bir bağlantı kullanılır. Eğer portlar belirtilmemişse, 80'e gönderilir.

  • -PA <ports>: Bir öncekiyle aynıdır ancak ACK ile, ikisini birleştirmek daha iyi sonuçlar verir.

  • -PU <ports>: Amaçları zıttır, kapatılmış olması beklenen portlara gönderilir. Bazı güvenlik duvarları yalnızca TCP bağlantılarını kontrol eder. Eğer kapalıysa port ulaşılamaz yanıtı verilir, başka bir icmp yanıtı veya yanıt verilmezse hedef ulaşılamaz olarak bırakılır.

  • -PE, -PP, -PM : ICMP PING'leri: echo replay, zaman damgası ve adres maskesi. Hedefin aktif olup olmadığını öğrenmek için gönderilir.

  • -PY<ports>: Varsayılan olarak 80'e SCTP INIT sorguları gönderir, INIT-ACK(açık) veya ABORT(kapalı) veya hiçbir şey veya ICMP ulaşılamaz (etkin değil) yanıtı alabilir.

  • -PO <protocols>: Başlıkta 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, geri kalanlar için yalnızca IP başlığı gönderilir. Amacı, başlıkların bozukluğundan dolayı, Protokol ulaşılamaz veya aynı protokolün yanıtları alınır ve yukarıda olup olmadığını anlamak için yanıtlar alınır.

  • -n: DNS yok

  • -R: Her zaman DNS

Port tarama teknikleri

  • -sS: Bağlantıyı tamamlamaz, bu nedenle iz bırakmaz, kullanılabilirse çok iyidir (yetkiler) Varsayılan olarak kullanılan budur.

  • -sT: Bağlantıyı tamamlar, bu nedenle iz bırakır, ancak kesin olması için kullanılabilir. Varsayılan olarak yetkisiz.

  • -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 sürümlerden herhangi birini tespit etmek için birçok istek gönderir ve gerçek durumu tespit edebilir. Zamanı oldukça artırır.

  • -sY: SCTP protokolü bağlantıyı kuramaz, bu nedenle kayıtlar olmaz, -PY gibi çalışır

  • -sN,-sX,-sF: Null, Fin, Xmas, bazı güvenlik duvarlarını aşabilir ve bilgi çıkarabilir. Standart uyumlu makinelerin SYN, RST veya ACK bayrakları içermeyen tüm isteklere RST ile yanıt vermesi gerektiği varsayımına dayanır: açık/filtrelenmiş(hiçbir şey), kapalı(RST), filtrelenmiş (ICMP ulaşılamaz). Windows, CIsco, BSDI ve OS/400'te güvenilir değildir. Unix'te evet.

  • -sM: Maimon taraması: FIN ve ACK bayrakları gönderir, BSD için kullanılır, şu anda tümünü kapalı olarak döndürecektir.

  • -sA, sW: ACK ve Window, 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çıklar farklı bir pencere değeri ile yanıt verir: açık (pencere değeri 0 olmayan RST), kapalı (pencere = 0 RST), filtrelenmiş (ICMP ulaşılamaz veya hiçbir şey). Tüm bilgisayarlar bu şekilde çalışmaz, bu nedenle tüm kapalıysa, çalışmıyor demektir, birkaç açıksa, düzgün çalışıyor demektir ve birçok açık ve birkaç kapalı varsa, ters şekilde çalışıyor demektir.

  • -sI: Boşta tarama. Eğer aktif bir güvenlik duvarı varsa ve 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 bulmak için ipidseq betiği veya exploit auxiliary/scanner/ip/ipidseq kullanabiliriz. Bu tarayıcı, IP paketlerinin IPID numarasına dayanır.

  • --badsum: Yanlış toplam gönderir, bilgisayarlar paketleri reddeder, ancak güvenlik duvarları bir şeyler yanıtlayabilir, güvenlik duvarlarını tespit etmek için kullanılır.

  • -sZ: "Garip" SCTP tarayıcı, çerez yankısı parçalarıyla sorgular gönderirken açıksa düşürülmeli veya kapalıysa ABORT ile yanıtlanmalıdır. Init'in geçemediği güvenlik duvarlarından geçebilir, kötü olan, filtrelenmiş ve açık arasında ayrım yapmamasıdır.

  • -sO: Protokol Ip taraması. Bazı durumlarda hatta protokol bile ayırt edilemeyen yanlış ve boş başlıklar gönderir. Eğer ICMP ulaşılamaz protokol gelirse kapalıdır, ulaşılamaz port gelirse açıktır, başka bir hata gelirse filtrelenmiştir, hiçbir şey gelirse açık|filtrelenmiştir.

  • -b <server>: FTPhost--> Başka bir makineden bir makineyi taramak için kullanılır, bunu yapmak için başka bir makinenin ftp'sine bağlanarak istediğiniz portlara dosya göndermesini istersiniz, yanıtlara göre açık olup olmadıklarını bileceğiz. [<user>:<password>@]<server>[:<port>] Artık neredeyse tüm ftp sunucularına izin vermez ve bu nedenle pratikte pek kullanışlı değildir.

Merkezi analiz

-p: Taranacak portları belirtmek için kullanılır. 65335'i seçmek için: -p- veya -p all. Nmap'in popülerliğine göre dahili bir sıralaması vardır. Varsayılan olarak ilk 1000'i kullanır. -F (hızlı tarama) ile ilk 100'ü tarar. --top-ports <numero> Belirtilen sayıda ilk portları tarar (1'den 65335'e kadar). Portları rastgele sırayla kontrol eder, bunu önlemek için -r kullanılır. Ayrıca portları seçebiliriz: 20-30,80,443,1024- Bu sonuncusu 1024'ten sonrasına bakacağı anlamına gelir. Ayrıca portları protokollere göre gruplayabiliriz: U:53,T:21-25,80,139,S:9. Nmap'in popüler portları arasından bir aralık seçebiliriz: -p [-1024] nmap-services içinde bulunan 1024'e kadar olan portları tarar. --port-ratio <ratio> Belirtilen oran aralığındaki en yaygın portları tarar, oran 0 ile 1 arasında olmalıdır.

-sV Sürüm taraması, yoğunluğu 0 ile 9 arasında ayarlanabilir, varsayılan 7.

--version-intensity <numero> Yoğunluğu ayarlarız, daha düşükse sadece olasılığı yüksek olan sorguları gönderir, ancak tümünü değil. Bu sayede UDP tarama süresini önemli ölçüde kısaltabiliriz.

-O İşletim sistemi tespiti

--osscan-limit Bir ana bilgisayarı iyi taramak için en az bir açık ve bir kapalı port olması gerekmektedir, bu koşul sağlanmazsa ve bu seçeneği belirlediysek, işletim sistemi tahmini yapmaz (zaman kazandırır) --osscan-guess OS tespiti mükemmel olmadığında daha fazla çaba harcar

Scriptler

--script <dosyaadı>|<kategori>|<dizin>|<ifade>[,...]

Varsayılanları 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 scriptleri çalıştırır

  • Default: aracın varsayılan temel scriptlerini çalıştırır

  • Discovery: hedef veya kurban hakkında bilgi toplar

  • External: harici kaynakları kullanmak için script

  • Intrusive: kurban veya hedef için müdahaleci olarak kabul edilen scriptleri kullanır

  • Malware: kötü amaçlı yazılım veya backdoor (arka kapı) tarafından açık bağlantıları kontrol eder

  • Safe: müdahaleci olmayan scriptleri çalıştırır

  • Vuln: en bilinen zayıflıkları keşfeder

  • All: mevcut tüm NSE uzantılı scriptleri çalıştırır

Scriptleri aramak için:

nmap --script-help="http-*" -> http- ile başlayanlar

nmap --script-help="not intrusive" -> Bunlar hariç tüm scriptler

nmap --script-help="default or safe" -> Birinde 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 <dosyaadı>

--script-help <dosyaadı>|<kategori>|<dizin>|<ifade>|all[,...]

--script-trace ---> Scriptin durumu hakkında bilgi verir

--script-updatedb

Bir scripti kullanmak için sadece şunu yazmak yeterlidir: nmap --script Script_Adı hedef --> Script yazıldığında hem script hem de tarayıcı çalıştırılır, bu nedenle tarayıcı seçenekleri de ekleyebiliriz, sadece güvenli olanları çalıştırmak için "safe=1" ekleyebiliriz.

Zaman Kontrolü

Nmap saniye, dakika, ms cinsinden zamanı değiştirebilir: --host-timeout arguments 900000ms, 900, 900s ve 15m hepsi aynı işi yapar.

Nmap, taranacak toplam host sayısını gruplara böler ve bu grupları bloklar halinde analiz eder, böylece tüm gruplar analiz edilene kadar bir sonraki bloğa geçmez (ve kullanıcıya blok analiz edilene kadar herhangi bir güncelleme alınmaz), bu nedenle nmap için büyük gruplar kullanmak daha iyidir. Varsayılan olarak sınıf C'de 256 kullanır.

Değiştirebilirsiniz**--min-hostgroup** <numhosts>; --max-hostgroup <numhosts> (Paralel tarama grup boyutlarını ayarlayın)

Paralel tarama sayısını kontrol edebilirsiniz ancak genellikle gerekli değildir (nmap ağ durumuna göre otomatik kontrol sağlar): --min-parallelism <numprobes>; --max-parallelism <numprobes>

Rtt zaman aşımını değiştirebilirsiniz, ancak genellikle gerekli değildir: --min-rtt-timeout <zaman>, --max-rtt-timeout <zaman>, --initial-rtt-timeout <zaman>

Deneme sayısını değiştirebilirsiniz:--max-retries <denemesayısı>

Bir hostun tarama süresini değiştirebilirsiniz: --host-timeout <zaman>

Her test arasındaki süreyi yavaşlatmak için: --scan-delay <zaman>; --max-scan-delay <zaman>

Saniyedeki paket sayısını değiştirebilirsiniz: --min-rate <sayı>; --max-rate <sayı>

Filtrelenmiş veya kapalı birçok port yanıt vermek için uzun sürebilir, yalnızca açık olanları ilgilendiriyorsa daha hızlı tarama yapabiliriz: --defeat-rst-ratelimit

Nmap'ın ne kadar saldırgan olmasını istediğimizi belirlemek için: -T paranoid|sneaky|polite|normal|aggressive|insane

-T (0-1)

-T0 --> Yalnızca bir port taranır ve bir sonraki için 5 dakika beklenir

-T1 ve T2 --> Çok benzer ancak her test arasında sırasıyla 15 ve 0,4 saniye bekler

-T3 --> Varsayılan işlevsellik, 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ı kapatır ve paketleri analiz eder.

-f Paketleri parçalamak için, varsayılan olarak başlık sonrası 8 bayt parçalar, bu boyutu belirtmek için ..mtu kullanırız (bununla birlikte, -f kullanmayın), ofset 8'in katı olmalıdır. Versiyon tarama ve scriptler parçalamayı desteklemez

-D decoy1,decoy2,ME Nmap, diğer IP adresleriyle taramalar gönderir, böylece kendinizi gizler. ME'yi listeye eklerseniz, nmap sizi oraya yerleştirir, sizi tamamen gizlemek için kendinizden önce 5 veya 6 eklemek daha iyidir. RND:<sayı> ile rastgele IP'ler oluşturabilirsiniz. TCP bağlantısı olmayan versiyon algılayıcılarıyla çalışmaz. Bir ağ içindeyseniz, etkin IP'leri kullanmanız önemlidir, aksi takdirde sizin tek etkin olduğunuzu kolayca anlamak mümkün olacaktır.

Rastgele IP'ler kullanmak için: nmap-D RND: 10 Hedef_IP

-S IP Nmap, IP adresinizi alamadığında bunu vermeniz gerekir. Ayrıca, başka bir hedefin tarama yaptığını düşündürmek 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 giriş kapılarını açık bırakır ve başka bir çözüm aramaktan kaçınırlar. Bu, DNS veya FTP gibi portlar olabilir... Bu zayıflığı aramak için nmap şunları içerir: --source-port <portnumarası>;-g <portnumarası> Eşdeğerdir

--data <onaltılık dize> Onaltılık metin göndermek için: --data 0xdeadbeef ve --data \xCA\xFE\x09

--data-string <dize> Normal metin göndermek için: --data-string "Güvenlik Operasyonları tarafından yapılan tarama, uzantı 7192"

--data-length <sayı> Nmap yalnızca başlıklar gönderir, bu sayede rastgele oluşturulan belirli bir bayt sayısını ekleriz

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 örnek 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ını sağlamak için

--spoof-mac <MAC adresi, önek veya üretici adı> Mac adresini değiştirmek için örnekler: Apple, 0, 01:02:03:04:05:06, deadbeefcafe, 0020F2 ve Cisco --proxies <Proxy URL'lerinin virgülle ayrılmış listesi> Proxies kullanmak için, bazen bir proxy nmap'in istediği kadar çok bağlantıyı açık tutmaz, bu yüzden paralelizmi değiştirmek gerekebilir: --max-parallelism

-sP ARP ile ağdaki ana bilgisayarları keşfetmek için

Çoğu yönetici, belirli bir bağlantı noktasından gelen tüm paketlerin geçmesine izin veren bir güvenlik duvarı kuralı oluşturur (örneğin 20, 53 ve 67 gibi), nmap'e paketlerimizi bu bağlantı noktalarından göndermesini söyleyebiliriz: nmap --source-port 53 Ip

Çıktılar

-oN dosya Normal çıktı

-oX dosya XML çıktısı

-oS dosya Script çocukları çıktısı

-oG dosya Grepable çıktı

-oA dosya -oS hariç tüm çıktılar

-v seviye ayrıntı seviyesi

-d seviye hata ayıklama

--reason Ana bilgisayarın ve durumun nedeni

--stats-every zaman Belirli aralıklarla durumu bildirir

--packet-trace Gönderilen paketleri görmek için filtreler belirtilebilir: --version-trace veya --script-trace

--open Açık, açık|filtrelenen ve filtrelenmeyenleri gösterir

--resume dosya Özet çıkarır

Çeşitli

-6 ipv6'ya izin verir

-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ır / azalt

d / D Hata ayıklama seviyesini artır / azalt

p / P Paket izlemeyi aç / kapat

? Çalışma zamanı etkileşim yardım ekranını yazdır

Vulscan

Nmap betiği, alınan hizmet sürümlerini çevrimdışı bir veritabanında (diğer önemli veritabanlarından indirilen) inceleyen ve olası zayıflıkları döndüren bir betiktir

Kullandığı veritabanları:

  1. Securitytracker.csv | http://www.securitytracker.com

Nmap klasörüne indirip 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, veritabanı paketlerini indirip /usr/share/nmap/scripts/vulscan/ klasörüne eklemek gerekecektir

Kullanım:

Hepsini kullanmak için: sudo nmap -sV --script=vulscan TARAMA_YAPILACAK_IP

Belirli bir veritabanını kullanmak için: sudo nmap -sV --script=vulscan --script-args vulscandb=cve.csv TARAMA_YAPILACAK_IP

Nmap Hizmet taramasını x16 hızlandırma

Bu gönderiye göre, nmap hizmet analizini hızlandırabilirsiniz, tüm totalwaitms değerlerini /usr/share/nmap/nmap-service-probes dosyasında 300 ve tcpwrappedms değerlerini 200 olarak değiştirerek.

Ayrıca, özellikle tanımlanmamış servicewaitms değerine sahip probeler varsayılan olarak 5000 değerini kullanır. Bu nedenle, her bir probeye değer ekleyebiliriz veya nmap'i kendimiz derleyerek service_scan.h dosyasındaki varsayılan değeri değiştirebiliriz.

Eğer totalwaitms ve tcpwrappedms değerlerini hiç değiştirmek istemiyorsanız, /usr/share/nmap/nmap-service-probes dosyasındaki bu değerlerin tamamen yok sayılmasını sağlayacak şekilde ayrıştırma kodunu düzenleyebilirsiniz.

Last updated