Das Metasploit Framework ist bis heute meine erste Wahl für die Pentest-Automatisierung. Mir gefällt jedoch, was ich von CORE INSIGHT und Immunity Security SWARM gesehen habe. Es gibt einige Tools wie Loki (oder das ältere Yersinia-Tool), Intrace, Chiron, Mana-Toolkit, Mitmf, Bettercap und Responder.py, die ausgeführt werden müssen außerhalb des Metasploit-Frameworks, aber heutzutage können so viele Dinge innerhalb von msfconsole erledigt werden ("load kiwi" fällt mir ein). Wenn Sie einige erstaunliche Ressourcen sehen möchten, lesen Sie dieses Dokument, in dem die Ausführung des vollständigen PTES mit Metasploit behandelt wird.
Metasploit holt hier und da (für fast alle) ein wenig auf Werkzeug und Technik vorhanden!), wie z. B. die Hilfs- / Server- (und Erfassungs-) Module. Es bleiben jedoch viele Fragen offen, wie z. B. Leistungsvergleiche zwischen Auxiliary / Spoof / Arp / Arp_poisoning, Arpspoof, Macof, Arp-Sk, Nemesis und Ettercap. Funktioniert Auxiliary / Sniffer / Psnuffle anders als dsniff? Was ist der Unterschied zwischen Squirtle, Auxiliary / Server / http_ntlmrelay und Auxiliary / Server / Capture / http_ntlm? Wie vergleicht sich http_javascript_keylogger mit BeEF? Wie vergleichen sich Auxiliary / Spoof / llmnr, Auxiliary / Spoof / nbs, Auxiliary / Server / wpad und Auxiliary / Server / Capture / smb mit Responder.py? Natürlich sind andere einfach überlegen, aber ich würde sie gerne neu codieren (oder jemanden sehen, der dies tut), um Teil von MSF zu sein. Sollten beispielsweise dns2proxy (vom Autor von sslstrip2) nicht in Auxiliary / Server / Fakedns vorhanden sein?
Ein Großteil der frühen Arbeiten in Netzwerkpenetrationstests werden entweder mit nmap oder unicornscan durchgeführt, obwohl pbscan, zmap und masscan in den letzten Jahren viel an Boden gewonnen haben. Insbesondere dnmap ist ein eleganter Ansatz. Es gibt sogar eine Weboberfläche für dnmap namens Minions.
Hier sind einige Flags, die mir in Bezug auf nmap gefallen:
Langsamer Scan (aber nicht zu langsam), umgeht IDS und gibt den Grund an, warum die Pakete ihre Ziele nicht erreicht haben. Am besten wird jeweils ein Port mit festgelegter Datenlänge oder Zeichenfolge ausgeführt, wenn das Zielprotokoll oder der Port von nmap nicht bekannt ist. Verwenden Sie robtex und csrecon, um Ihre Ziel-IP-Präfixe zu überprüfen. Versuchen Sie, einen oder zwei Ports zu identifizieren, die Sie nutzen können und die keine Webserver sind, die jedoch in der Vergangenheit für die Ausnutzung von Remotecode anfällig waren (NB, möglicherweise müssen Sie diese Daten mit cvedetails.com oder Exploitsearch.net korrelieren). Sie werden feststellen, dass ich im Beispiel den TCP-Port 623 (IPMI RMCP, einen bereits langsam reagierenden Dienst, der von diesen langsamen Scans profitiert) gewählt habe, aber Sie können dies leicht ändern (obwohl ich keine offensichtlichen wie SSH empfehle oder RDP - überprüfen Sie mindestens den Shodan HoneyScore, bevor Sie diese herausfordern.
-T1 --max-retries 0 --randomize-hosts --reason -n -Pn -sT -p 623
HTTP- oder TLS-Ziele führen normalerweise die Standardports aus. Daher möchte ich sie zuerst SYN-scannen, bevor ich andere HTTP / TLS-Ziele an nicht standardmäßigen Ports scanne. Der zweite Befehl ist sehr langsam, wird aber wahrscheinlich unter die Lupe genommen (insbesondere, wenn Sie diesen Patch aus diesem Blog-Beitrag verwenden), sodass Sie vollständig ins Web wechseln können Schicht unentdeckt. Wenn Sie feststellen, dass die webbezogenen Ports geöffnet sind, das http-title-Skript jedoch fehlschlägt, stimmt etwas nicht - potenzielle Honeypot-Warnung! Suchen Sie nach einer Korrelation zwischen einem offenen Port und einem gültigen, entsprechenden HTML-Titelelement-Tag, das dem Namen und dem Zweck des Dienstes entspricht. Wenn eine bestimmte IP-Adresse immer auf einen Port reagiert, verwenden Sie die Anweisung --exclude <ip>
von nmap oder die Anweisung --excludefile <filename>
, wenn Sie eine Liste von IPs haben (ähnlich der -iL von nmap flag).
-T1 --max-retries 0 --randomize-hosts --script http-title --reason -n -Pn -r -p 80.443
-T1 --max-retries 0 --randomize-hosts --script + http-title --open -n -Pn -p 81,457,902,995,1100,1128,1241,1581,1883,1944,2301,2375, 2381,3010,3037,3128,3780,3790,3872,4000-4002,4100,4567,4848,5000,5250,5800-5802,5814,5986,6060,6405,7000-7002,7080,7181,7272, 7443,7510,7770,7778,8000-8001,8008,8014,8028,8040,8081,8085,8088-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8500,8776, 8834,8880,8883,8888,8980,8999-9000,9002,9060,9080,9084,9090,9191,9292,9389,9443,9495,9990,9999,30821,50000
Wenn alles in Ordnung ist, wechseln Sie zu schnelleren Scans und suchen Sie nach IDS / IPS. Sie werden wissen, dass etwas schief gelaufen ist, wenn alle Ihre Scans gestoppt wurden, aber Sie können ein wenig effizienter damit umgehen, indem Sie das Traceroute-Flag von nmap verwenden (oder es mit dem Firewalk-Skript kombinieren), intrace, lft, ttl-mon.py oder osstmm-afd, um diese Systeme abzubilden. In der Regel wird bei Firewalls mit IPS / IDP-Funktionen, netzwerkbasierten IPS / IDP-Appliances, UTM, NGFW und ähnlichen Network-Stack-Gateways der zu analysierende Datenverkehr nur alle 8 bis 11 Sekunden abgetastet. Längere Verzögerungen zwischen Port-Scans (z. B. die Standardeinstellung von 15 Sekunden beim nmap T1-Scannen oder das Festlegen einer bestimmten Verzögerung von 12 Sekunden bei T2-Scans) und die fehlende Parallelisierung führen normalerweise dazu, dass sich diese langsameren Scans durch Intrusion Detection aller Art einschleichen . Wiederholter Datenverkehr, z. B. der an einen einzelnen Port gerichtete Datenverkehr, kann auch dazu führen, dass Glocken zur Erkennung von Eindringlingen ausgelöst werden und der Datenverkehr als Angriff identifiziert oder automatisch zurückgewiesen wird. Während des Abtastzeitraums sucht die Intrusion Detection möglicherweise auch nach sequentiellen Ports. Es gibt eine Vielzahl von Faktoren, mit denen Sie sich identifizieren oder spielen können. Daher sollten die nächsten unten gezeigten nmap-Flags modifiziert werden, um diese Reihe von IDS-Identifizierungsstrategien zu testen. Wenn der erste Testfall (T2-Scan mit 12 Sekunden Verzögerung, keine erneuten Versuche und keine sequentiellen Ports) erfolgreich ist, der zweite jedoch nicht, sollten Sie herausfinden, warum. Die Paketverfolgungs- und Traceroute-Funktionen von Nmap werden dringend empfohlen. Andere Tools wie hping3 oder nping können jedoch hilfreich sein, um diese Bemühungen zu unterstützen.
Wenn Sie feststellen, dass Ihr Datenverkehr blockiert ist (z. B. wenn die Antworten vollständig gestoppt werden), müssen Sie möglicherweise die öffentliche Quell-IP (oder LAN-IP) wechseln, von der Sie kommen. Ich schlage daher vor, dass Sie die meisten davon bei Starbucks oder außerhalb Ihres primären, üblichen Standorts (dnmap wird wahrscheinlich auch hier helfen). Versuchen Sie auch nicht, Honeynets (z. B. Fortinet FortiGate, TrapX DeceptionGrid usw.) zu treffen, oder identifizieren Sie sie zumindest, damit Sie sie in zukünftigen Scans ausschließen können. Der beste Weg, um diese Fallen zu vermeiden, besteht darin, die Daten von scans.io und SHODAN (und das Wissen über die Zielumgebung, die verwendeten Technologien - nützlicher bei der Durchführung interner Netzwerkscans) zu nutzen und eine Vielzahl von Ports (nmap oder dnmap mit zunehmender Geschwindigkeit (jeweils mit etwa 20 eindeutigen Ports) und vermeiden Sie die übermäßig glänzenden Dienste, die potenzielle Honeypots sind, z. B. 21-23, 25, 53, 110, 135-139, 445, 1337, 1433, 1723, 3306, 3389, 5060-5061, 5800, 5900, 8080, 10000, 31337 und 44443 (Hinweis: Scannen Sie diese Portnummern noch NICHT!).
-T2 --scan- Verzögerung 12s --max-retries 0 --randomize-hosts --open -n -Pn -p26,66,79,113,389,407,465
-T2 --scan-delay 9s --max-retries 1 --randomize -hosts --open -n -Pn -p512-514,523-524
-T2 --max-retries 3 --randomize-hosts --open -n -Pn -p548,554,587,593,873,993,1026,1050 , 1080,1099,1158,1344,1352,1521,1604,1720,2202,2302,2383
--max-rate 20 --max-parallelism 2 --max-retries 3 --randomize -hosts --open -n -Pn - p2628,2869,2947,3000,3031,3260,3478,3500,3632,3689,4369,5019,5040,5222,5353,5357,5432,5560,5631-5632
--max- rate 40 --max-parallelism 4 --max-retries 3 --randomize-hosts --open -n -Pn -p5666,5672,5679,5850,5920,5984-5985,6000-6005,6379,6481,6666 , 7019,7210,7634
--max-rate 80 --max-parallelism 8 --max-retries 3 --randomize-hosts --open -n -Pn -p8000,8009-8010, 8834,9160,9999,11211,12000,17185,13722,19150,27017,30718,35871,49152,50030,50060,50070,50075,50090,52822,52869,60010,60030,64623
Im Folgenden wird die nächste Stufe des nmap-Scannens beschrieben (Standardgeschwindigkeit, keine Randomisierung aufgrund der Qscan-Latenzprüfungen), die Ihnen viele Details und Bewegungsmöglichkeiten bietet. Verwenden Sie meistens Portnummern, von denen Sie wissen, dass sie offen sind. Wählen Sie jedoch einen Port aus, der möglicherweise nicht geöffnet ist (insbesondere solche in der Vergangenheit, bei denen mehrdeutige Ergebnisse erzielt wurden). Vermeiden Sie die Verwendung von dnmap oder anderen Ineffizienzen, die das qscan-Skript beschädigen. TCP-Ports (normalerweise HTTP oder SSL / TLS) können sich hinter Reverse-Caching-Proxys, Load Balancern, auf Netzwerkebene umgeleiteten oder ähnlichen befinden. Das qscan-Skript sollte dabei helfen, diese Situationen zu identifizieren, obwohl Sie sie wahrscheinlich durch andere Tools wie Hellebarde (oder zusätzliche NSE-Skripte wie http-Affiliate-ID und http-Favicon) ergänzen möchten. In dieser Phase können Sie entweder IP-Präfixe, Hostnamen oder eine Kombination verwenden. Ich schlage vor, hier ein starkes Werkzeug wie Blacksheepwall zu verwenden. Seien Sie vorsichtig, wenn Sie auf Hostnamen abzielen, da passive DNS-Sensoren Ihren Standort und / oder Ihre Absichten viel einfacher preisgeben als Sie denken, was zu IPS- oder WAF-ähnlichen Blöcken führt (und an diesem Punkt müssen Sie in der Lage sein, zwischen diesen drei zu unterscheiden). sowie andere defensive Gegenmaßnahmen). Testen Sie alle Ports auf die direkt oben beschriebene Weise, bis Sie das, was Sie bereits über die Zielnetzwerke und -domänen wissen, erschöpft haben. Wenn Sie einen Ziel-SSL / TLS-Port haben, hilft Ihnen das Duplikat-Skript zu verstehen, wenn ein einzelner Host auf mehreren IPs oder Netzwerken (normalerweise Multihomed) spricht.
--script qscan --max -retries 7 --reason -Pn --Versionsintensität 0 -sV -p80, (andere gefundene-TCP-Ports) --script qscan, Duplikate, ssl-cert --max-retries 7 -v --reason -Pn - sV --version-all -p80,443 (andere zuvor gefundene)
Folgen Sie dieser Denkweise mit einigen Einzelportprüfungen unter Verwendung einer schlechten TCP-Prüfsumme. Nutzen Sie Ihr Wissen über die Vergangenheit und bauen Sie darauf auf. Bevor Sie fortfahren, stellen Sie sicher, dass Sie eine gute Vorstellung von den Netzwerkpfaden und Interna jedes von Ihnen gesendeten Pakets haben, und sagen Sie die Antworten von diesem Punkt an voraus. Wenn Sie zu diesem Zeitpunkt ein wenig zusätzliches Wissen aufbauen möchten, können Sie verschiedene Tools wie pbscan, portbunny, masscan, zmap oder unicornscan verwenden (das Flag -w file.pcap kann hier neu verwendet werden, um die Paketerfassung zu ermöglichen Analyse ähnlich wie MSFs pcap_log, aber ich schlage nicht unbedingt vor, dass beide Ansätze so cool sind, wie sie zunächst klingen. Wenn Sie eine Möglichkeit haben (vorzugsweise ein separates Inline-System, damit die E / A-, CPU- und Speichernutzung der Festplatte Ihre Scans nicht beeinflusst), die Paketerfassung durchzuführen, benötigen Sie normalerweise ein Tool wie netsniff-ng to Speichern Sie pcaps (oder ein anderes Tool, wenn Sie pcapng benötigen) und verarbeiten Sie die Ergebnisse mit p0f und / oder PRADS. Fingerabdrücke können komplex werden, und neben nmap gibt es einige Tools, die Sie in dieser Phase wahrscheinlich nutzen möchten. Das Targeting portspezifischer Versionen ist noch nicht erforderlich, obwohl dies hier durchgeführt werden kann. Ich schlage vor, den Fingerabdruck auf Betriebssystemebene mit "gerade genug" Dienstidentifikation zu belasten, um eine Korrelation herzustellen. Es gibt alte Techniken (wie eine Verzweigung von nmap namens cron-os), die auf ein neueres Tool mit einer Aktualisierung der fp-Datenbank auf moderne Plattformen portiert werden sollten (weshalb ich früher p0f und PRADS vorgeschlagen habe - - Sie neigen dazu, mit dem ständigen technologischen Wandel Schritt zu halten. Rapid7 hat ein Big-Data-Projekt für Service-Fingerprinting, recog. Die Serviceversionierung von Nmap ist im Vergleich zu Tools wie amap nur durchschnittlich, und es gibt viele Tools für Punktlösungen wie fpdns, ntp-fingerprint.pl, info2cpe et al. Vuln-Scanner wie Nessus enthalten hmap (einen HTTP-Fingerabdrucker), aber es gibt auch viele Tools in diesem Bereich (httprint, httprecon). Es ist ärgerlich, dass Betriebssystem-Fingerabdrücke und Service-Versionierung sehr problematisch sind. Ich schlage vor, dass Sie mit den von mir beschriebenen Methoden und Werkzeugen das Beste tun, was Sie können.
--script qscan --max-retries 7 --badsum -v -O --osscan-rate --max-os-try 1 --reason --send-ip --versionsintensität 0 -sV -p80, (mindestens ein geschlossener Port)
Wenn und wenn Sie auf offensichtliche IPS oder andere Blöcke stoßen, lesen Sie den Abschnitt weit unten, in dem Sniffjoke und andere fortgeschrittene erwähnt werden Ausweichtechniken (AETs). Wenn Sie die Systeme, die Ihren Datenverkehr blockieren, tatsächlich mit einem Fingerabdruck versehen können, ist es am besten, ein Sniffjoke-Client / Server-Paar in einer anderen ähnlichen Umgebung auszuführen, in der Sie bereits Serverzugriff haben (Hinweis: Dies kann aus einem früheren Pen-Test oder aus einem stammen Labor- oder Scheinumgebung). Der obige Badsum-Trick sollte die meisten IPS-Systeme verhindern. Andere Techniken, die wir durchlaufen haben, haben diese Blockierungssysteme möglicherweise ebenfalls aufgedeckt. Wenn Sie ein gutes AET finden, möchten Sie wahrscheinlich alle Ihre vorherigen Port-Scans erneut ausführen, um festzustellen, ob Sie ähnliche Ergebnisse erzielen. Wenn Sie der Meinung sind, dass der SYN-Verkehr gedrosselt wird (eine Möglichkeit zur Überprüfung besteht darin, nmap für eine Reihe von bekannten offenen Ports mit vollständigen TCP-Verbindungen und denselben Ports mit nur Standard-SYN-Only-Ports zu verwenden), lesen Sie den folgenden Abschnitt über das Ausweichen von SYN-Cookies sowie den noch weitergehenden Abschnitt über die Verwendung von tcptrace zum Erkennen solcher Probleme.
Scannen Sie einige UDP-Ports, überprüfen Sie dies jedoch mit einigen verschiedenen Tools. Erfahren Sie, wie Sie Nmap-Daten in MSF importieren, um Hosts -R in Modulen wie empty_udp zu nutzen (ändern Sie das Skript jedoch, um 1-1024,2049,5060,5061 zu entfernen). Wir überprüfen derzeit keine Ports mit geringer Reichweite aufgrund von Honeypots, Intrusion Detection, Protokollierung oder anderen Inkonsistenzen. Wenn UDP-Ports geöffnet sind, sollte dieses Wissen das ergänzen, was wir bereits über die Live-TCP-Ports in diesem Netzwerk wissen. Wenn Sie aufgrund früherer Kenntnisse über die Zieltypen (vom Betriebssystem oder der Versionserkennung) oder der Zielumgebung der Meinung sind, dass Sie durch das Scannen nach IP-Protokollen wie SCTP, ICMP, IGMP oder auf andere Weise mehr Wissen gewinnen könnten, seien Sie vorsichtig Betrachten Sie die Konsequenzen und senden Sie einige Tests aus, um dieses Wissen zu überprüfen oder darauf aufzubauen.
--max-rate 100 --max-retries 0 --randomize-hosts --reason - Pn -sUV --version-all -p500,523,623,1604,1645,1812,5353,5632,6481,6502,10080,17185
unicornscan 10.0.0.0/24:500,523,1604,1701, 1812,2000,3478,5353,5632,10080-10081 -Iv -mU
für i in ike db2 citrix net-support netop; do udp-proto-scanner.pl -p $ i 10.0.0.0/24; erledigt
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p132
--max-rate 400 --max-retries 0 --randomize-hosts --reason -n -Pn -sY -p1167,1812,1813,2225,2427,2904,2905,2944,2945,3097,3565,3863,3864,3868, 4739,4740,5090,5091,5672,5675,6704,6705,6706,7626,8471,9082,9084,9900,9901,9902,14001,20049,29118,29168,29169,36412,36422
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p1
-T2 --scan-delay 1s --max -retries 0 --randomize-hosts --send-ip -n -PM -sn
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -p2
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --send-ip -n -PP -sn
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO -F --exclude-ports 1,2,6,17,132
-T2 --scan-delay 1s --max-retries 0 --randomize-hosts --reason -n -Pn -sO --exclude-ports 1,2,6,17,132 --data-length 3
Um absolut pedantisch zu sein, führen Sie die folgenden Schritte auf jedem aktiven Host aus, der auf frühere Scans reagiert hat.
-T2 --max-scan-delay 90ms - -max-wiederholt 9 -v -O --osscan-rate -n --send-ip -PE (oder -PP, wenn erfolgreich und / oder -PM, wenn auch erfolgreich) -sTUV -pT: (mindestens ein geschlossener Port aber wenn möglich auch offen), U: (als T :) --version-all
Nach diesem letzten Lauf müssen Sie fast alles über jeden Host und jeden Port wissen - Es sollte für Sie offensichtlich sein, ob es einen Honigtopf oder IDS / IPS / IDP / etc. Gibt. Sie können sie in Kategorien einteilen, auch wenn Sie sich nicht sicher sind, z. B. "wahrscheinlich Cisco", "Unix-Version", "definitiv IP-Telefone oder Softphones" oder "unbekannte Hosts", die jedoch einem bestimmten Profil entsprechen obwohl sie unterschiedliche Ports offen haben ". Sie fühlen sich bereit, eine Schwachstellenanalyse und -ausnutzung für diese Hosts und ihre identifizierten und / oder nicht identifizierten Ports zu starten.
Sie müssen der folgenden nmap-Portliste zuvor gefundene Ports hinzufügen, damit Sie ein geeignetes Nmap-XML erhalten Datei zum Importieren in Metasploit oder zum Abfragen mit metasploitHelper. Stellen Sie sicher, dass Sie dem Abschnitt "T:" TCP / SCTP-Ports und dem Abschnitt "U:" UDP-Ports hinzufügen.
--min-rate 100 --max-rate 400 --min-parallelism 16 --max-retries 9 --defeat-rst-ratelimit -sUS -n -Pn -pT: 0,1,19,42 49,85,105,111,143,264,402,444,446,502,515,631,689,705,783,888,910,912,921,998,1000,1099,1211,1220,1533,1582,1617,1755,1811,1900,2000,2001,2067,2100,2103,2207,2362,2980 3057,3200,3217,3299,3460,3465,3628,3690,3817,4322,4444,4659,4672,4679,5038,5051,5093,5168,5227,5466,5498,5554,5555,6050,6070 6080,6101,6106,6112,6503,6504,6542,6660,6661,6905,6988,7021,7071,7144,7414,7426,7579,7580,7777,7787,8020,8023,8030,8082,8087 8503,8787,8812,8899,9100,9200,9256,9390,9391,9788,9855,10001,10008,10050,10051,10202,10203,10616,10628,11000,11234,12174,12203,12221,12345 , 12397,12401,13364,13500,16102,18881,19810,20010,20031,20034,20101,20111,20171,20222,22222,23472,26000,26122,27000,27960,28784,30000,31001,32764,34205 34443,38080,38292,40007,41025,41080,41523,41524,44334,44818,46823,46824,50001,50013,55553,57772,62514,65535, U: 19,42,49,69,111,161,631,1900,2049 2362, 7777 -oX nmap_target1.xml
Wenn Sie ein gutes Ziel finden, möchten Sie möglicherweise benutzerdefinierte Metasploit-Ressourcendateien (oder "rc") verwenden, die aus Hinweisen zu Modulen, deren Einstellungen und deren Ausführung bestehen. Hier finden Sie portnummernspezifische RC-Dateien, mit denen Sie schnell zu einer Shell gelangen. Möglicherweise ist eine Fehlerbehebung erforderlich, aber ein so früher Angriff auf die Infrastruktur kann auf das Vorhandensein oder Fehlen von IPS (Netzwerk oder Host) hinweisen. Es könnte auch dazu führen, dass Ihre IP-Adresse blockiert wird. Gehen Sie daher vorsichtig vor. Möglicherweise möchten Sie auch einige dieser portspezifischen NSE-Skripte ausführen, von denen einige wichtige Skriptargumente und andere Tuneables enthalten. Wenn Sie bereits sicher sind, dass ein Port geöffnet ist oder sich sogar auf das Zielbetriebssystem / den Zieldienst verlassen kann, können Sie auch etwas unternehmen, um weitere Informationen zu deren Laufzeitstatus zu erhalten. Ihr Anruf, aber zu diesem Zeitpunkt in der Testautomatisierung müssen Sie auf jeden Fall die Informationen erhöhen, die Ihnen für Entscheidungsvorteile zur Verfügung stehen.
Eine andere Möglichkeit besteht darin, auf die Webebene zu wechseln, bei der normalerweise ausgeführt wird carbonator nach einer kleinen nmap- und nikto-Aktion (Hinweis: Sie möchten Ihre nikto.conf ändern, um den Benutzeragenten in einen normalen Webbrowser zu ändern und möglicherweise die beiden mutierten Zeilen auskommentieren). Sie möchten zu diesem Zeitpunkt auch mehr Hostnamen und IP-Präfixe ermitteln (domaincrawler.com, heftig, klopfen, dnsmap und subbrute helfen bei Subdomains und dnsrecon sollte den Rest erledigen). Wenn Sie Tonnen von Zielen haben, können Sie Webshot verwenden, um Bilder abzulegen, die Sie sortieren und Ihre Zielauswahl überprüfen können. Wenn Sie definitiv wissen, dass ein IPS oder WAF vorhanden ist, sollten Sie die Taktik wechseln.
-Pn -p 80 --version-all -sV --script "http-waf * ", http-devframework, http-enum, http-vhosts -oG - | nikto.pl -h - -Tuning x04689c -D 1 -Ausgabe nikto.xml
-Pn -p 443 --version-all -sV --script "http-waf *", http-devframework, http-enum, http-vhosts -oG - | nikto.pl -h - -ssl -Tuning x04689c -D 1 -output niktotls.xml
Jetzt ist es an der Zeit, Anti-IDS-Mechanismen (z. B. Sniffjoke, Fragroute) zu aktivieren und Evader) oder führen Sie in letzter Minute SYN-Cookies, IDS-, IPS- und WAF-Erkennungsprüfungen durch. Endlich los! Es macht an dieser Stelle keinen Sinn, einen einzelnen Port oder einen kleinen Satz von Ports zu scannen.
--script banner-plus --min-rate 450 --min-parallelism 20 --max-retries 5 --defeat-rst-ratelimit -n -Pn -p-
Einhornscan 10.0.0.0/24:a -D -L 20 -r 450 -Iv -mU
Einhornscan 10.0 .0.0 / 24: 9,42,49,67,88,135,139,162,213,259,260,407,445,464,514,517-523,546,631,657,826,829,1069,1194,1558,1645-1646,1900,1967,2055,2362,2427,2727,2746,3401,328 4500,4665,5060,5350,5351,5355,5405,5432,6481,6502,8905,8906,9999,17185,18233,26198,27444,32822-32823,34555,41250,47545,49152,49599,54321 -r 450 -Iv -mU
Die oben genannten Raten (--min-rate in nmap und -r in unicornscan) werden in Paketen pro Sekunde (pps) gemessen und können in einem lokalen Netzwerk oder unter anderen idealen Bedingungen bis zu 10000 geändert werden. Es gibt Patches, mit denen die Scanrate von nmap dynamisch (interaktiv) hier geändert werden kann (erstaunlich in Kombination mit tcptrace.org, das nach erneuten Übertragungen sucht und entweder die Min-Rate, die Max-Rate, interaktive Äquivalente, die Min-Parallelität, min-hostgroup oder max-retries bis die maximale Bandbreite erreicht ist). Es ist schwierig, nmap in den am besten geeigneten Ansatz für das Bulk-SYN- oder UDP-Scannen zu bringen, selbst wenn pedantische Parameter für Min-Hostgruppe, Min-Parallelität und Min-Rate verwendet werden. Aus diesem Grund wenden sich viele Menschen an Unicornscan, Zmap oder Masscan. Wenn Ihre Zielnetzwerke und -dienste in ihren Serverantworten sehr zuverlässige und konsistente Roundtrip-Zeiten aufweisen (oder wenn Sie Zeit und Geduld haben, um die Netzwerkeigenschaften herauszufinden), ist nmap / dnmap möglicherweise die beste Wahl für die Toolkonsistenz, wenn nichts anderes .
Möglicherweise müssen Sie neue IPs, Hostnamen oder Ports überprüfen, die Sie in der Vergangenheit nicht gesehen haben (z. B. die zuvor vermiedenen Honeypot-Ports, einschließlich der SCTP-Ports 5060-5061 mit -sY). Kehren Sie zu der Phase zurück, in der Sie qscan ausgeführt haben, und wiederholen Sie die Szenarien mit den neuen Informationen. Suchen Sie weiterhin nach Honeypots, indem Sie zusätzliche Techniken wie das Metectploit-Modul detect_kippo verwenden. Stellen Sie sicher, dass Sie metasploitHelper erneut ausführen, falls zutreffend. Behalten Sie alle Ihre Informationen im Auge, möglicherweise mithilfe von Dradis, MagicTree, Discover.sh XML zu CSV-Konvertierungen, Lunarline VSC, Prolific Solutions ProVM Auditor, Cisco Kvasir oder FishNet LAIR. Dies sind bessere Alternativen zu Notepad usw., da sie die Daten für Penetrationstests berücksichtigen. Ähnlich wie früher stellen Sie möglicherweise fest, dass das Duplikatskript zur Identifizierung von Hosts mit mehreren Domänen beiträgt. Zu den gängigen Szenarien gehören Windows-Computer mit oder ohne SSL / TLS - oder möglicherweise ein Nicht-Windows-Computer, auf dem SSH, SSL / TLS oder beides ausgeführt wird (obwohl es möglich ist, dass auf einem Windows-Host SSH ausgeführt wird, ist dies jedoch ein äußerst seltsamer Eckfall ).
--script qscan, Duplikate, nbstat, ssl-cert --max-retries 7 -v -O --osscan-rate --max-os-try 1 --reason -Pn -sSUV --version-all -pT: 135,139,443,445, U: 137
--script qscan, Duplikate, nbstat --max-retries 7 -v -O --osscan-rate --max -os-try 1 --reason -Pn -sSUV --version-all -pT: 135,139,445, U: 137
--script qscan, Duplikate, ssh-hostkey --max-retries 7 -v -O --osscan-rate --max-os-try 1 --reason -Pn -sV --version-all -p22
--script qscan, Duplikate, ssh-hostkey, ssl-cert --max-wiederholt 7 -v -O --osscan-erraten --max-os-versucht 1 - Grund -Pn -sV --version-all -p22.443
Wenn Sie offene Ports mit Diensten (oder Apps jeglicher Art) finden, für die eine Authentifizierung erforderlich ist, sollten Sie dies tun Um die protokollspezifischen Skripte zu lesen und zu konfigurieren, sollten Ihre nmap / dnmap-Befehlszeilenargumente im Allgemeinen wie folgt aussehen:
--min-rate 100 --max-retries 5 -n -Pn --script brute, creds-summary --script-args unsicher, brute.mode = pass, userdb = usernames.lst, passdb = passwords. lst, brute.firstOnly, brute.guesses = 2 --version-all -sV (-sUV oder -sUSV, falls zutreffend)
Dies kann mit dnmap unter Verwendung anderer Kennwörter durchgeführt werden .lst-Datei auf jedem Server, um die Anzahl der Versuche zu erhöhen, von verschiedenen IP-Adressen oder einer Vielzahl anderer szenarioabhängiger Optionen zu bruten.
Lassen Sie uns abschließend darüber sprechen, wie nmap / dnmap wirklich glänzen kann - Wenn Sie alles zusammenführen, nachdem Sie wissen, dass das SYN-Scannen funktioniert, haben Sie UDP-Tests herausgefunden (beachten Sie, dass viele der folgenden Punkte in den nmap-Nutzdaten, nmap-Service-Tests, Unicornscan usw. / payloads.conf und udp- fehlen). proto-scanner.conf-Dateien - daher müssen Sie sie möglicherweise manuell erstellen!), und IDS / IPS wird Ihre Automatisierung nicht stören. Nehmen wir an, Sie machen nicht nur eine Kaffeepause, Sie können nicht "nur ein weiteres Nickerchen" machen, und Ihr Lebensgefährte erfordert etwas Aufmerksamkeit und eine normale 8-Stunden-Schlafroutine. Starten Sie nmap / dnmap auf diese Weise und Sie erhalten einige großartige Ergebnisse, wenn Sie zur Konsole zurückkehren!
--min-rate 100 --max-retries 5 --defeat-rst-ratelimit --randomize-hosts --open -Pn -v -O --osscan-rate --max-os-try 1 - sUSV --version-all --script-Banner, Duplikate, nbstat, ssh-hostkey, ssl-cert, vuln, vulscan, brute, creds-Zusammenfassung --script-args vulns.showall, unsicher, vulscanversiondetection = 0, brute.mode = pass, userdb = usernames.lst, passdb = passwords.lst, brute.firstOnly -pT: 0,1,19,26,42,49,66,79-81,85,105,111,113,135,139,143,264,389,402,407,423.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.583.533.583.583.583.583.583.533.583. 1080,1099-1100,1128,1158,1167,1211,1220,1241,1337,1344,1352,1433,1521,1533,1581,1582,1604,1617,1720,1723,1755,1811-1813,1900 1944,2000-2001,2067,2100,2103,2202,2207,2225,2301-2302,2362,2375,2380,2381,2383,2427,2525,2628,2869,2904,2905,2940,2944,2945 2947,2967,3000,3010,3031,3037,3050,3057,3097,3128,3200,3217,3260,3299,3306,3389,3460,3465,3478,3500,3565,3628,3632,3689-3690 3780,3790,3817,3863,3864,3868,3872,4000-4002,4100,4322,4369 4444,4567,4659,4672,4679,4739,4740,4848,5000,5019,5038,5040,5051,5060-5061,5090-5091,5093,5168,5222,5227,5250,5353,5357,5432 5466,5498,5554-5555,5560,5631,5632,5666,5672,5675,5679,5800-5802,5814,5850,5900,5920,5984,5985,5986,6000-6005,6050,6060,6070 6080,6101,6106,6112,6346,6347,6379,6405,6481,6503,6504,654,6660-6661,6666-6667,6704-6706,6905,6988,7000-7002,7019,7021,7071 7080,7144,7181,7210,7272,7414,7426,7443,7510,7579,7580,7626,7634,7770,7777-7778,7787,8000-8001,8008-8010,8014,8020,8023,8028 8030,8040,8080-8082,8085,8087-8091,8095,8140,8161,8180,8200,8222,8300,8400,8443,8471,8500,8503,8776,8787,8812,8834,8880,8888 8899,8980,8999,9000,9002,9060,9080,9082,9084,9090,9100,9160,9191,9200,9256,9292,9390,9391,9443,9495,9788,9855,9900,9901-9902 9990,9999,10000-10001,10008,10050-10051,10202,10203,10616,10628,11000,11211,11234,12000,12174,12203,12221,12345,12397,12401,13364,13500,13722,14001 , 16102,17185,18881,19150,19810,20010,20031,20034,20049,20101,20111,20171,20222,22222,23472,26000,26122 27000,27017,27960,28784,29118,29168,29169,30000,30718,30821,31001,31337,32764,34205,34443,35871,36412,36422,38080,38292,40007,41025,41080,41523-41524 44334,44443,44818,46823,46824,49152,50000-50001,50013,50030,50060,50070,50075500,500,52822,52869,55553,57772,60010,60030,62514,64623,65535, U: 7 9,11,13,17,19,36-37,42,49,53,67,69,88,111,123,135,137,139,161-162,177,213,259,260,407,445,464,500,514,517-521,523,546,555,623,631,657,826,829,921,1069,1294,1414 1967,2000,2049,2055,2221,2302,2362,2427,2727,2746,3001,3283,3401,3478,3544,4045,4104,4500,4665,5060,5350,5351,5353,5355,5405 5432,5555,5632,6481,6502,7001,7004,7777,7983,8905,8906,9999,10080-10081,17185,18233,26198,27444,27960,31337,32767-32774,32822-32823,34555 41250,47545,49152,49599,54321
Nur ein kleiner Aufwand mit nmap kann Ihnen viel Zeit sparen, wenn Sie sich später mit OpenVAS oder Metasploit beschäftigen. Ich bevorzuge es, nmap und OpenVAS in der msfconsole auszuführen, damit all diese Daten in die MSF-Datenbank gelangen. Man könnte auch Werkzeugdaten in XML-Metasploit-Verbrauchsmaterial exportieren oder ein Werkzeug wie nmap2nessus verwenden. Eine wichtige Lektion, die Sie über Schwachstellenscanner lernen sollten, ist, dass sie viele reale Schwachstellen übersehen. Wenn Sie nmap / dnmap über Nacht auf die oben beschriebene Weise ausführen, sehen Sie das Potenzial für jeden einzelnen Schwachstellenpfad. Die meisten von ihnen funktionieren auf den ersten Blick nicht - nmap / dnmap sagt Ihnen, dass sie fehlgeschlagen sind (aber nicht das wahre "Warum", selbst wenn Sie glauben, dass der Grund dafür gültig ist) - es liegt also an Ihnen, dies herauszufinden ob die Sicherheitsanfälligkeit zur Ausnutzung führen kann oder nicht. Kehren Sie zu der früheren Diskussion über portnummernspezifische Metasploit- und Nmap-NSE-Dateien zurück, die jetzt noch relevanter ist. Kennen Sie die Interna dieser Skripte und die Fehlerbehebung für jede Codezeile, aus der sie bestehen. Ein kleiner Versatz, ein kleiner Parameter oder ein paar kombinatorische Änderungen greifen nach der Hülle, die jeder andere Penetrationstester übersehen hätte.