开源渗透测试自动化

信息安全 渗透测试 工具 漏洞扫描器 网络扫描仪
2021-08-09 14:42:28

典型的开源渗透测试按什么顺序运行?哪些工具首先运行,第二次运行,第三次运行——你如何控制它们?

是否只是使用 Metasploit RC 文件?以特殊方式的网络漏洞扫描程序?命令行、自定义或无头 Web 应用程序安全扫描器?

您愿意分享任何其他加速渗透测试的方法(甚至想法)吗?

是否有开源项目可以帮助完成这个过程(除了 Metasploit RC 文件或 MSF 控制台下的“保存”命令)?

4个回答

直到今天,Metasploit 框架仍然是我用于渗透测试自动化的首选工具,但是,我确实喜欢我所看到的 CORE INSIGHT 和 Immunity Security SWARM。有一些工具,例如Loki(或较旧的耶尔森氏菌工具)、intrace、Chiron、mana-toolkit、mitmf、bettercap 和 Responder.py,必须在 Metasploit 框架之外运行,但可以在内部完成很多事情这些天来 msfconsole(想到了`load kiwi')。如果您想查看一些惊人的资源,请查看此文档,该文档涵盖了使用 Metasploit 执行完整的 PTES。

Metasploit 正在到处追赶(几乎所有现有的工具和技术!),例如辅助/服务器(和捕获)模块。但是,仍然存在许多问题,例如辅助/欺骗/arp/arp_poisoning、arpspoof、macof、arp-sk、nemesis 和 ettercap 之间的性能比较。辅助/嗅探器/psnuffle 的工作方式与 dsniff 有什么不同吗?什么之间的区别小水龟,辅助/服务器/ http_ntlmrelay和辅助/服务器/捕获/ http_ntlm?如何http_javascript_keylogger比较牛肉? 辅助/欺骗/llmnr、辅助/欺骗/nbs、辅助/服务器/wpad和辅助/服务器/捕获/smb与Responder.py相比如何?显然,其他人只是优越,但我想重新编码(或看到有人这样做)成为 MSF 的一部分。例如,辅助/服务器/fakedns 中不应该存在dns2proxy(来自sslstrip2的作者)功能吗?

网络渗透测试的大部分早期工作都是使用 nmap 或 unicornscan 完成的,尽管pbscan、 zmap 和 masscan 近年来已经取得了很大进展。特别是,dnmap是一种时尚的方法。甚至还有一个名为Minions的 dnmap 网络界面。

以下是我喜欢的关于 nmap 的一些标志:

慢速扫描(但不会太慢),避开 IDS,并给出数据包没有到达目的地的原因。当 nmap 不知道目标协议或端口时,最好一次执行一个端口,并设置数据长度或字符串。使用 robtex 和csrecon检查您的目标 IP 前缀。尝试找出您可以利用的一两个端口,这些端口不是 Web 服务器,但在历史上容易受到远程代码利用的攻击(注意,您可能需要将此数据与 cvedetails.com 或exploitsearch.net 相关联)。您会注意到我在示例中选择了 TCP 端口 623(IPMI RMCP,一个响应缓慢的服务,受益于这些慢速扫描),但您可以轻松更改此端口(尽管我不推荐明显的端口,例如 SSH或 RDP——至少检查 Shodan HoneyScore 在挑战这些之前)。

-T1 --max-retries 0 --randomize-hosts --reason -n -Pn -sT -p 623

HTTP 或 TLS 目标通常会运行默认端口,因此我喜欢先 SYN 扫描它们,然后再扫描非默认端口上的其他 HTTP/TLS 目标。第二个命令会非常慢,但它可能会被忽视(特别是如果您使用这篇博文中获取的补丁),从而允许完全转向 web 层而不被检测到。如果你发现与 web 相关的端口是打开的,但是 http-title 脚本失败了,那就是有问题——潜在的蜜罐警告查找开放端口与匹配服务名称和用途的有效、对应的 HTML 标题元素标记之间的相关性。如果特定 IP 总是响应任何端口,则使用 nmap 的指令或--exclude <ip>--excludefile <filename> 如果您有 IP 列表(类似于 nmap 的 -iL 标志)。

-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

如果一切正常,请切换到更快的扫描并检查 IDS/IPS。当所有扫描都停止时,您会知道出了点问题,但是您可以通过使用 nmap 的 traceroute 标志(或将其与 firewalk 脚本结合使用)、intrace、lftttl-mon.py 来提高效率,或 osstmm-afd 来尝试绘制这些系统。通常,包含 IPS/IDP 功能、基于网络的 IPS/IDP 设备、UTM、NGFW 和类似网络堆栈网关的防火墙只会每 8-11 秒对要分析的流量进行一次采样。端口扫描之间的较长延迟(例如,nmap T1 扫描中的 15 秒默认值,或通过在 T2 扫描中设置特定的 12 秒延迟)和缺乏并行化通常是导致这些较慢扫描通过各种入侵检测偷偷摸摸的原因. 重复流量,例如定向到单个端口的流量,也可能导致入侵检测铃声响起,将流量识别为攻击或自动拒绝它。在采样期间,入侵检测也可能会寻找顺序端口。有多种因素可以尝试识别或使用。因此,下面看到的下一个 nmap 标志应该被修改以测试这一系列 IDS 识别策略。如果第一个测试用例(T2 扫描延迟 12 秒,没有重试,没有顺序端口)通过但第二个没有,那么您将需要找出原因。强烈建议使用 Nmap 的数据包跟踪和跟踪路由功能,但其他工具(如 hping3 或 nping)可能有助于支持这项工作。

如果您发现您的流量被阻止(例如,响应完全停止),您可能需要切换您来自的源公共 IP(或 LAN IP),所以我建议您在星巴克或关闭您的主要运行这些中的大部分,通常的位置(dnmap 在这里也可能会有所帮助)。尽量不要攻击任何蜜网(例如,Fortinet FortiGate、TrapX DeceptionGrid 等),或者至少识别它们,以便在以后的扫描中排除它们。避免这些陷阱的最好方法是利用 scans.io 和 SHODAN 数据(以及有关目标环境的知识、使用的技术种类——在执行内部网络扫描时更有用),获取大量端口(nmap 或dnmap 以越来越快的速度进行,每个端口有 20 个左右独特的端口),并避免可能是蜜罐的过于闪亮的服务,即 21-23、25、53、110、135-139、445、1337、

-T2 --scan-delay 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

下面写的是下一级的 nmap 扫描(默认速度,由于 qscan 延迟检查而没有随机化),为您提供大量细节和移动潜力。主要使用您知道打开的端口号,尽管选择一个可能未打开的端口(尤其是过去结果不明确的端口)。避免使用 dnmap 或其他会破坏 qscan 脚本的低效率。TCP(通常是 HTTP 或 SSL/TLS)端口可能位于反向缓存代理、负载平衡器、在网络级别重定向或类似的后面。qscan 脚本应该有助于识别这些情况,尽管您可能希望使用 halberd 等其他工具来补充它们(或其他 NSE 脚本,例如 http-affiliate-id 和 http-favicon)。在此阶段,您可以使用 IP 前缀、主机名或组合。我建议在这里使用一种强大的工具,例如 blacksheepwall。定位主机名时要小心,因为被动 DNS 传感器会比您想象的更容易泄露您的位置和/或意图,从而导致类似于 IPS 或 WAF 的块(此时您需要能够区分这三个,以及其他防御措施)。继续以上面直接的方式测试所有端口,直到你用尽了关于目标网络和域的已知信息。如果您有目标 SSL/TLS 端口,则重复脚本将帮助您了解单个主机何时在多个 IP 或网络(通常是多宿主)上讲话。

--script qscan --max-retries 7 --reason -Pn --version-intensity 0 -sV -p80,(其他找到的 TCP 端口) --script qscan,duplicates,ssl-cert --max-retries 7 - v --reason -Pn -sV --version-all -p80,443,(其他之前发现的)

遵循这种思路,使用错误的 TCP 校验和进行一些单端口检查。利用您对过去的了解并以此为基础。在继续之前,请确保您对发送的每个数据包的网络路径和内部结构有一个很好的了解,并预测从这一点开始的响应。如果您想在这个阶段建立一些额外的知识,您可能需要使用不同的工具,例如 pbscan、portbunny、masscan、zmap 或 unicornscan(-w file.pcap 标志可以在这里重新使用以允许数据包捕获分析很像 MSF 的 pcap_log,但我不一定建议任何一种方法都像最初听起来那样酷)。如果您确实有办法(最好是单独的内联系统,以便磁盘 I/O、CPU 和内存使用不会影响您的扫描)来执行数据包捕获,通常,您需要使用 netsniff-ng 之类的工具来保存 pcaps(如果需要 pcapng,则需要使用其他工具),然后使用 p0f 和/或 PRADS 处理结果。指纹识别可能会变得复杂,除了 nmap 之外,还有一些您可能希望在此阶段利用的工具。虽然可以在这里完成,但目前还没有必要针对特定​​端口的版本。我建议使用“刚好足够”的服务识别来关联操作系统级别的指纹识别。有一些旧技术(例如一个名为 还没有必要,尽管可以在这里完成。我建议使用“刚好足够”的服务识别来关联操作系统级别的指纹识别。有一些旧技术(例如一个名为 还没有必要,尽管可以在这里完成。我建议使用“刚好足够”的服务识别来关联操作系统级别的指纹识别。有一些旧技术(例如一个名为cron-os),应该移植到一个更新的工具,并将 fp 数据库刷新到现代平台(这就是我之前建议 p0f 和 PRADS 的原因——它们往往跟上技术的不断变化)。Rapid7 有一个用于服务指纹识别的大数据项目recogNmap 的服务版本控制与 amap 等工具相比只是平均水平,并且有许多点解决方案工具,如 fpdns、ntp-fingerprint.pl、info2cpe 等。诸如 Nessus 之类的漏洞扫描器包含 hmap(一种 HTTP 指纹识别器),但该领域也有许多工具(httpprint、httprecon)。操作系统指纹识别和服务版本控制存在很大问题,这很烦人。我建议您使用我描述的方法和工具尽力而为。

--script qscan --max-retries 7 --badsum -v -O --osscan-guess --max-os-tries 1 --reason --send-ip --version-intensity 0 -sV -p80,(至少一个封闭端口)

如果并且当您遇到任何明显的 IPS 或其他障碍时,请参阅下面提到的嗅探和其他高级规避技术 (AET) 的部分。如果您实际上可以识别阻止您的流量的系统,那么您最好的选择是在另一个类似的环境中运行一个嗅探客户端/服务器对,您已经可以访问服务器(注意,这可能来自之前的渗透测试或来自实验室或模拟环境)。上面的 badsum 技巧应该会抢占大多数 IPS 系统。我们经历过的其他技术可能也发现了这些阻塞系统。如果您找到了一个好的 AET,那么您可能希望再次运行所有以前的端口扫描,以查看是否有类似的结果。

扫描一些 UDP 端口,但请使用一些不同的工具来确定。了解如何将 Nmap 数据导入 MSF,以便在 empty_udp 等模块中利用主机 -R (但修改脚本以删除 1-1024,2049,5060,5061)。由于蜜罐、入侵检测、日志记录或其他不一致,我们目前没有检查任何低范围端口。如果有任何 UDP 端口打开,这些知识应该补充我们已经知道的关于该网络上的活动 TCP 端口的知识。如果由于过去对目标类型(来自操作系统或版本检测)或目标环境的了解,您觉得可以通过扫描 IP 协议(​​例如 SCTP、ICMP、IGMP 或其他)来获得更多知识——那么,请小心,考虑后果,并发出一些探测来验证或建立在该知识的基础上。

--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

for i in ike db2 citrix net-support netop ;做 udp-proto-scanner.pl -p $i 10.0.0.0/24 ;完毕

-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,269169,364122

-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

为了绝对迂腐,请在响应过去扫描的任何内容的每个活动主机上运行以下命令。

-T2 --max-scan-delay 90ms --max-retries 9 -v -O --osscan-guess -n --send-ip -PE(或 -PP 如果成功和/或 -PM 如果也成功) - sTUV -pT:(至少一个关闭的端口,如果可能的话也打开一个),U:(as T:) --version-all

在最近一次运行之后,您必须了解几乎所有关于每个主机、每个端口的信息——如果有蜜罐或 IDS/IPS/IDP/等,您应该很清楚。即使不确定,您也可以将它们分组,例如“可能是 Cisco”、“Unix 风格”、“肯定是某种 IP 电话或软电话”或“未知主机,但这些与特定配置文件匹配即使它们打开了不同的端口”。您准备好开始针对这些主机及其已识别和/或未识别端口进行漏洞分析和利用。

您需要将之前找到的端口添加到以下 nmap 端口列表中,以便获得合适的 Nmap XML 文件,用于导入 Metasploit 或使用metasploitHelper进行查询。确保将 TCP/SCTP 端口添加到“T:”部分,将 UDP 端口添加到“U:”部分。

--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,2380,2525,2940,2947,2967,3050,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,13274,12203,12274,12203,13274 12401,18811119019018881118019018888888888888888818888888888888888888885 38080,38292,40007,41025,41080,41523,41524,44334,44818,46823,46824,50001,50013,55553,57772,62514,65535,U:19,42,49,69,111,761,631,12702,-1970 oX nmap_target1.xml

如果你找到了一个好的目标,你可能想要使用自定义的 Metasploit 资源(或“rc”)文件,这些文件包含关于模块的注释、它们的设置以及如何运行它们。您可以在此处找到特定于端口号的 rc 文件,这可以让您快速进入 shell。它可能需要一些故障排除,但这么早攻击基础设施可能表明 IPS(网络或主机)存在或不存在。它也可能会阻止您的 IP 地址,因此请谨慎操作。您可能还想运行其中一些特定于端口的 NSE 脚本,其中一些具有重要的脚本参数和其他可调参数。如果您已经确定某个端口是打开的,或者甚至对目标操作系统/服务有信心,那么您不妨做一些事情来获取有关其运行时状态的更多信息。您的电话,但在测试自动化的这个阶段,您肯定需要增加可用的信息以获得决策优势。

另一种可能性是转向 web 层,这通常涉及在一些 nmap 和 nikto 操作后运行carbonator(注意,您需要修改 nikto.conf 以将用户代理修改为普通的 web 浏览器之一,并可能注释掉两条变异线)。此时您还需要发现更多主机名和 IP 前缀(domaincrawler.com、猛烈、敲门、dnsmap 和 subbrute 将有助于子域,而 dnsrecon 应该处理所有其余的)。如果您有大量目标,那么您可能需要使用webshot来删除可以对目标选择进行分类和分类的图像。如果您肯定知道有 IPS 或 WAF,那么您可能需要转换策略。

-Pn -p 80 --version-all -sV --script "http-waf*",http-devframework,http-enum,http-vhosts -oG - | nikto.pl -h - -Tuning x04689c -D 1 -output 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 -输出 niktotls.xml

现在是使用任何反 IDS 机制(例如 sniffjoke、fragrouteEvader)或运行任何最后一分钟的 SYN-cookie、IDS、IPS 和 WAF 检测检查的时候了。最后,加油!此时扫描单个端口或一小组端口没有意义。

--script banner-plus --min-rate 450 --min-parallelism 20 --max-retries 5 --defeat-rst-ratelimit -n -Pn -p-

独角兽扫描 10.0.0.0/24:a -D -L 20 -r 450 -Iv -mU

Unicornscan 10.0.0.0/2465,139,160.0/2465,1857,245,2465,1857,215,2558,185-119465.1945-11946 9,4045,4500,4665,5060,5350,5351,5355,5405,5432,6481,6502,8905,8906,9999,17185,18233,26198,27444,32822-32823,34555,41250,47545, ,54321 -r 450 -IV -mU

上述速率(nmap 中的 --min-rate 和 unicornscan 中的 -r)以每秒数据包 (pps) 为单位测量,并且在本地网络或其他理想条件下可以修改为高达 10000。这里有补丁可以动态(交互)改变nmap的扫描速率(与 tcptrace.org 结合查找重传并修改最小速率、最大速率、交互式等效项、最小并行性、最小主机组或最大重试次数,直到达到最大带宽时令人惊叹)。即使使用迂腐的 min-hostgroup、min-parallelism 和 min-rate 参数,也很难让 nmap 成为批量 SYN 或 UDP 扫描的最佳方法。这就是为什么许多人转向 unicornscan、zmap 或 masscan。如果您的目标网络和服务在其服务器响应中具有非常可靠且一致的往返时间(或者如果您有时间和耐心来弄清楚网络特征),那么 nmap/dnmap 可能是您保持工具一致性的最佳选择.

您可能需要验证过去未见过的新 IP、主机名或端口(例如我们之前避免的蜜罐端口,包括带有 -sY 的 SCTP 端口 5060-5061)。回到您运行 qscan 并使用新信息重试方案的阶段。使用 Metasploit 的 detect_kippo 模块等其他技术继续检查蜜罐。如果适用,请务必重新运行 metasploitHelper。跟踪您的所有信息,可能使用 Dradis、MagicTree、discover.sh XML 到 CSV 转换、Lunarline VSC、Prolific Solutions proVM Auditor、Cisco Kvasir 或 FishNet LAIR。这些是记事本等更好的替代品,因为它们可以感知渗透测试数据。与之前类似,您可能会发现重复脚本有助于识别多宿主主机。

--script qscan,duplicates,nbstat,ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --reason -Pn -sSUV --version-all -pT: 135,139,443,445,U:137

--script qscan,duplicates,nbstat --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --reason -Pn -sSUV --version-all -pT:135,139,445,U: 137

--script qscan,duplicates,ssh-hostkey --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --reason -Pn -sV --version-all -p22

--script qscan,duplicates,ssh-hostkey,ssl-cert --max-retries 7 -v -O --osscan-guess --max-os-tries 1 --reason -Pn -sV --version-all - p22,443

如果您发现任何带有需要任何形式身份验证的服务(或任何类型的应用程序)的开放端口,那么您将需要阅读和配置特定于协议的脚本,但通常您的 nmap/dnmap 命令行参数应如下所示:

--min-rate 100 --max-retries 5 -n -Pn --script brute,creds-summary --script-args unsafe,brute.mode=pass,userdb=usernames.lst,passdb=passwords.lst,brute .firstOnly,brute.guesses=2 --version-all -sV(-sUV 或 -sUSV,如果合适)

上述操作可以通过 dnmap 在每台服务器上使用不同的 passwords.lst 文件来执行,以增加尝试、从不同的 IP 地址进行暴力破解或各种其他与场景相关的选项。

最后,让我们谈谈 nmap/dnmap 是如何真正发挥作用的——在您知道 SYN 扫描有效之后,将它们放在一起,您就可以发现 UDP 探测(请注意,nmap-payloads 中缺少以下许多内容,nmap- service-probes、Unicornscan etc/payloads.conf 和 udp-proto-scanner.conf 文件——因此您可能必须手动创建它们!)并且 IDS/IPS 不会对您的自动化造成麻烦。假设您不只是在喝咖啡休息时间,您不能“再打个盹”,而您的另一半需要一些关注和正常的 8 小时睡眠程序。好吧,以这种方式启动 nmap/dnmap,当你回到控制台时,你会得到一些很好的结果!

--min-rate 100 --max-retries 5 --defeat-rst-ratelimit --randomize-hosts --open -Pn -v -O --osscan-guess --max-os-tries 1 -sUSV --版本-所有 --script 横幅,重复,nbstat,ssh-hostkey,ssl-cert,vuln,vulscan,brute,creds-summary --script-args vulns.showall,不安全,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,443-446,457,465,500,502,512-515,523,524,548,554,587,593,623,631,689,705,783,873,888,902,910,912,921,993,995,998,1000,1026,1050,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,6542,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,122030,121274,23 12397,1240110111111111111111111111119801980180198018018501501885 27905 ,,31180505 ,,311805058805 ,,3118059805888848884855888485885858884858588585888558858855885885885885885888858588588588588885888858858858885885885888588885885888858888588858858885885888885885888858888858888858888858888588588885985885 44818,46823,46824,49152,50000-50001,50013,50030,50060,50070,50075,50090,52822,52869,55553,57772,60010,60030,62514,64623,61,535, 13,185 ,1111111111111111111111111111111555585855855855555855558555855585558555558558555855 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,74243,26198, 27960,31337,32767-32774,32822-32823,34555,41250,47545,49152,49599,54321

如果您使用OpenVAS 或 Metasploit,只需稍微使用 nmap 即可为您节省大量时间稍后的。我更喜欢从 msfconsole 中运行 nmap 和 OpenVAS,以便所有这些数据都进入 MSF 数据库。也可以将工具数据导出到 Metasploit 可使用的 XML,或使用类似 nmap2nessus 的工具。了解漏洞扫描程序的一个重要教训是,它们错过了许多现实世界的漏洞。通过以上述方式在夜间运行 nmap/dnmap,您将看到每个漏洞路径的潜力。他们中的大多数人一开始都不会工作——nmap/dnmap 会告诉你他们失败了(但不是真正的“为什么”,即使你认为它的原因是正确的)——所以由你来弄清楚该漏洞是否会导致利用。回到前面关于端口号特定 Metasploit 和 Nmap NSE 文件的讨论,现在它更加相关。了解这些脚本的内部结构以及如何对它们所包含的每一行代码进行故障排除。一点点偏移、一个小参数或一些组合调整将抓住每个其他渗透测试人员都会错过的外壳。

关于上述问题,我想分享一些轶事“A network vulnerability scanner in a special way?”

在开始之前,我想指出,对于大多数扫描工具来说,速度是准确性的对立面。 速度杀人。

速度致死

端口扫描:

调整nmap以提高出球速度(a la –min-hostgroup, --min-parallelism, and friends)对于观察iptraf上的数据包计数器变得模糊非常棒,但您可以放心,准确性会受到影响。

我对快速进行的典型对冲是运行多轮 nmap 扫描:最好在不同的日子和不同的时间。这有助于最大程度地减少影响准确性的危险,例如使带宽饱和的计划备份。

对于非常大的扫描,请尝试unicornscan已经有一段时间了,但我注意到上次我做了一个相当大的基于 Internet 的端口扫描:

回顾一下:我们通过将扫描配置为对每个 IP 进行完整的 TCP 端口扫描,使用 3 到 5 个系统持续约 55 Mbits/s,并在天。

考虑到每个端口发送两个 SYN 探测,这意味着发送约 525 亿个数据包并产生约 3 TB 的数据,这是非常好的。

漏洞扫描:

这在今天可能并非如此,但几年前流行的商业漏洞。扫描仪会优化他们的扫描速度以提高速度。营销和销售推动了它,因为客户将质量与他们获得扫描结果的速度联系在一起。

因此,作为一个供应商(披露:我曾经为一个供应商工作),游戏是减少检查次数以提高速度。完整的 TCP 或 UDP 扫描?没门。需要时间的单个漏洞检查?埋葬他们。

您可以看到这是怎么回事 - 如果您想要准确性,请花几分钟时间并自定义您首选的漏洞扫描程序以确保准确性(和覆盖范围)。如果您想要速度,那么就知道您正在牺牲这些属性。

结合以上:

我厌倦了端口扫描结果在相同任务中因工具而异的频率。当我为每个 IP 漏洞扫描(例如 Qualys)付费时,我讨厌它并且该工具反复错过我验证为打开的打开端口。我喜欢从我的端口扫描(见上文)中获取结果,并自定义我使用的每个漏洞扫描工具,以仅访问我的自定义扫描发现打开的那些端口。这可以节省大量时间。

云升压:

对于基于 Internet 的扫描,我现在几乎只使用云虚拟机。我最喜欢的是linode.com。 到目前为止,Linode 的AUP 并没有禁止端口扫描(亚马逊有)。启动 30 台虚拟机以在非区域数据中心分配扫描工作可以让端口扫描重新获得乐趣。考虑到有利的延迟和带宽条件,更容易进行积极的调整。我的观点是云虚拟机非常适合提高扫描能力。

尝试来自 Social-Engineer.org 的SET 。整个网站是一个很好的资源。

我在阅读这个问题时的一些想法......

渗透测试非常依赖于环境。是的,有自动化工具,但即使它们有帮助,它们也不能做所有事情。根据我的经验,除非应用于渗透测试/审计过程中的特定步骤,否则自动化会成为障碍。

我实际上只是对OpenVAS感兴趣。从技术上讲,它不是一个渗透测试工具,但它对侦察非常有帮助。如果您查找它,请记住今天早上发布了一个新版本(3.2.3)。

这不是开源的,但另一个调查工具是CoreInsight我正在找机会玩它,虽然我知道它不具备 Core Impact 的可操作性,但它应该是一个非常有趣和有用的工具。

尽管我对渗透测试中的自动化持怀疑态度,但我对其他人要说的话很感兴趣....(+1 给你,先生)