本节书摘来自异步社区《黑客秘笈——渗透测试实用指南(第2版)》一书中的第2章2.3节外部或内部主动式信息搜集,作者【美】Peter Kim(皮特 基姆),更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 外部或内部主动式信息搜集
主动式信息搜集就是通过扫描确认目标安装的操作系统和网络服务,并发现潜在漏洞的过程。我们要从网络的内部或者网络的外部对指定的网络段进行扫描。最重要的是,主动式信息搜集要采用正确的扫描工具。

我想要强调一下,本书不会详细介绍扫描器的使用方法,毕竟大多数读者已经非常熟悉扫描工具了。如果尚未掌握扫描工具的使用方法,推荐使用社区版的Nexpose,或者用Nexpose进行练习。针对家庭网络或者实验室网络开展网络扫描,了解这些工具可以获取哪些类型的信息,掌握通过认证后开展扫描的方法,获取指定类型的网络流量。由于扫描行为非常活跃,因此会频频触发网络上入侵检测或者入侵防御系统报警。既然已经做好准备,下面可以更深入地了解一些细节。

本节将介绍在扫描网络时的常规步骤。通过使用多个工具、多种方法和技术,实现高效和快速的网络扫描。扫描过程如下:

Masscan扫描
Sparta扫描
HTTP屏幕截屏扫描
Eyewitness/WMAP扫描
Nexpose/Nessus/OpenVAS扫描
Burp Proxy Pro扫描
ZAP Proxy扫描
分析输出
2.3.1 Masscan(https://github.com/robertdavidgraham/masscan, Kali Linux)
当开始进行主动扫描时,有很多工具可以使用。长期以来,我们使用nmap工具进行扫描,获取IP地址和端口号,但是这个情况正在发生改变。大范围的网络IP段扫描用时较长,在这种情况下Masscan可以派上用场。与nmap类似(它甚至与nmap有相类似参数选项),Masscan使用自定义TCP/IP协议栈,加快了扫描速度和效率。下面了解如何启动Masscan工具。

运行Masscan
cd /opt/masscan/bin/
./masscan -p80,8000-8100 10.0.0.0/8
./masscan -p0-65535 --rate 150000 -oL output.txt
-p定义扫描端口
--rate定义每秒发送数据包个数
谨慎设置该选项,确保您的VPS服务器或者系统网络能够支持Masscan网络流量
-oL定义输出位置
举个例子,在VPS服务器运行一些测试扫描:

hp2:/opt/masscan/bin$ ./masscan -p0-65535 23.239.151.0/24 --rate 150000 -oLoutput. txtStartingmasscan 1.0.3 (http://bit.ly/14GZzcT) at 2015-02-02 05:46:10 GMT-- forced options: -sS -Pn -n --randomize-hosts -v --send-ethInitiating SYN Stealth ScanScanning 256 hosts [65536 ports/host]hp2:/opt/masscan/bin$ dateMon Feb 2 05:48:23 UTC 2015

在上面的测试扫描过程中,使用大约两分钟进行系统配置和系统测试。幸运的是,VPS服务器拥有非常大的网络带宽,支持较高的网络传输速度。

使用相同的配置运行nmap:

hp2:/opt/masscan/bin$ nmap -v -PN -n -sT -T5 23.239.151.0/24 -p0-65535 -oNoutput_nmap. txtStartingNmap 6.47SVN ( http://nmap.org ) at 2015-02-02 05:53 UTCInitiating Connect Scan at 05:53Scanning 64 hosts [65536 ports/host]Discovered open port 80/tcp on 23.239.151. 23Stats: 0:00:22 elapsed; 0 hosts completed (64 up), 64 undergoing Connect ScanConnect Scan Timing: About 1.18% done; ETC: 06:26 (0:32:11 remaining)

从上述的处理结果可以看出扫描时间超过30分钟(同一时间扫描64台主机)。Masscan大大缩短了扫描时间,允许测试者在最短时间内扫描并获得结果。配置Masscan工具的一个重要参数是使用--echo开关。下面的例子是一个扫描样本文件。这个配置文件给出了可能用到的所有不同的配置。所有的配置设置正确后,扫描过程加上-c的参数就可以开始了。

hp2:/opt/masscan/bin# ./masscan -p0-65535 23.239.151.0/24 --rate 150000 -oL output.txt --echo>scan.conf
hp2:/opt/masscan/bin# cat scan.confrate = 150000.00 randomize-hosts = trueseed = 14393045175689752532shard = 1/1# ADAPTER SETTINGSadapter-ip = 0.0.0.0# OUTPUT/REPORTING SETTINGSoutput-format = listshow = open,,output-filename = output.txtrotate = 0# TARGET SELECTION (IP,PORTS,EXCLUDES)ports = 0-65535range = 23.239.151.0/24…hp2:/opt/masscan/bin#./masscan -c scan.conf

可以将这个模板保存,在以后的扫描中使用或者为不同类型的扫描设置不同的模板。

2.3.2 SPARTA(http://sparta.secforce.com/, Kali Linux)
贯穿本书,想要达到的效果是高效和实用。Masscan工具适合扫描大型网络,但是对于小型和内部网络,可以使用SPARTA工具。SPARTA是基于Python语言的图形化应用程序,为渗透测试人员开展扫描和枚举工作提供帮助,简化了网络架构探测工作。测试人员仅需要单击鼠标即可运行程序,获取输出结果,节省时间,方便使用。渗透测试人员只需花费很少时间配置工具和命令,更多时间可用于结果的分析。

为什么将SPARTA工具作为工具集重要的组成,因为它以分段的形式运行NMAP。SPARTA初始扫描有限的端口,可以以任意端口开启Nikto,进行屏幕截屏。第一阶段扫描结束后,它将开始更加深入的NMAP第二阶段和第三阶段。在识别系统服务后,在图形界面中可以很方便地手动检查Nikto、MySQL默认口令,并直接将其放入Hydra暴力破解工具中。

运行SPARTA
cd /opt/sparta/
./sparta.py
SPARTA非常简单和容易使用。加载图形化界面控制台后,单击鼠标即可添加主机并开始扫描(见图2.19)。SPARTA利用NMAP检测功能来启动运行自身的辅助模块(见图2.20)。



在nikto选项卡中,能够查看Nikto扫描的结果(见图2.21)。


SPARTA工具同样使用cutycapt获取Web的截屏(见图2.22)。


SPARTA具有快速使用的特点,可以右击任意主机,并将其发送到Hydra工具。在这个例子中,搜索到一台主机,开放SSH服务,运行HTTPS(443)。可以右击该主机并选择Send to Brute(见图2.23)。


单击Brute标签,可以提供单个用户名/密码或者用户名/密码列表组合(见图2.24)。


工具同样包括额外的功能用于MySQL默认证书检查(见图2.25)。


可以使用Masscan进行大范围外部网络的初始扫描,SPARTA工具提供后续的精准扫描。

2.3.3 HTTP Screenshot(https://github.com/breenmachine/ httpscreenshot, Kali Linux)
渗透测试高效开展的前提是理解目标网络运行什么系统和服务。目标网络通常存在大量网络和服务级的漏洞,但是渗透一个网络,特别是从外部网络渗透,绝大部分是通过网站首先突破的。因为网站通常使用默认的密码、存在不恰当的配置或者具有大量已知的网站应用程序漏洞。

通过扫描探测,发现了SUCK公司外部网络地址范围。总共是65 536个不同IP地址,需要进行扫描和分析。通常在后台运行漏洞扫描程序,但是因为时间有限,需要立即开始攻击。由于没有有效的方式访问每一个网页,需要自动化访问过程,并且以一种有效的方式利用结果数据。

因此我们综合Masscan和HTTP Screenshot两个工具扫描网络,获取网页的快照。通过这种方式,能够可视化查看网页,而不需要逐页访问。在扫描前,需要配置一些参数:

cd /opt/httpscreenshot
编辑masshttp.sh,确保指向masscan可执行文件,同时要确保httpscreenshot.py指向正确的位置。
替换/root/masscan/bin/masscan为/opt/masscan/bin/masscan
替换~/tools/httpscreenshot.py为/opt/httpscreenshot/httpscreenshot.py
更换扫描端口80,443为80,443,8000,8001,8080,8443,8008,9200,50070[在这里添加您指定的Web端口]
创建networks.txt文件,确定扫描网络IP地址范围
gedit networks.txt
开始扫描
./masshttp.sh
firefox ./clusters.html
综合利用Masscan扫描速度和HTTP Screenshot强大的功能,已经获取一些网站的图片。HTTP Screenshot具有很多优点,例如为虚拟/共享主机和线程解析证书主机名,但是它的最大优点是将关联的类似网页进行聚合。在遇到大量HTTP鉴权认证网页或者打印机时,HTTP Screenshot将它们进行关联聚合。这使得攻击和汇总非常容易。它的输出形式未必是最好的,但是确实取得实效。

那么在Web应用程序快照中要获取什么内容呢?下面是要查找的内容:


为什么?因为想获取shell!为了更好了解网站应用程序的漏洞并评估漏洞自身,需要访问一个好的网站。让我们停下来,快速查看下面的网址:

http://www.exploit-db.com/webapps/

从SUCK公司的扫描结果,可以发现正常的服务,例如打印机(在后面将深入研究),但是在渗透测试中还经常发现大量安装Jenkins软件的主机。这给我留下了深刻的印象,正如之前所说的,HTTP Screenshot工具的优点之一是将所有安装Jenkins软件主机信息汇总在一起。Jenkins是一个网站应用程序,为软件开发提供持续的集成服务。无论Jenkins软件的功能是什么,我们都对网络有了初步了解(见图2.26)。


未鉴权的Jenkins服务器存在公开漏洞,通过Groovy Script可以远程执行代码。Pentestgeek.com网站有一篇文章介绍如何利用这个漏洞,通过访问Jenkins设备的8080端口,可以进入/script/script脚本控制终端:

http://[IP]:8080/script/script
现在,已经进入脚本控制终端,可以执行任意Groovy Script代码:

defsout = new StringBuffer(),serr = new StringBuffer()def proc = '[Code to Execute Here]'.execute()
proc.consumeProcessOutput(sout,serr)
proc.waitForOrKill(1000)
println "out> $sout err> $serr"

这个漏洞脚本适用于Windows和*nix操作系统,因此首先确认攻击系统的类型。在下面的例子中,快速运行命令“cat /etc/passwd”来证实代码已经执行(见图2.27)。


正如看到的结果,能够执行程序,读取文件。本节不再深入研究工具的其他功能,这里只是提供一个恰当的例子,证明HTTP Screenshots工具是非常有用的。

我想再强调一下,在做网站快照时有时可能会遇到问题,例如其中一个工具无法正常工作,或者在某些特定的场合希望获取更多的信息。我一直告诉读者不要只关注一个工具,在这里还有另外两个工具可以关注一下。

Eyewitness工具最终取代了Peepingtom工具,Peepingtom工具在第一本书中介绍过。Eyewitness功能强大,但是在扫描大型网络时出现问题。现在这个问题可能已经解决了,但是这仅仅是运行工具过程中遇到的问题之一。

另外一个工具是一个名为WMAP网络扫描的有趣项目。这个项目主要解决网站信息检索工具不处理或者呈现Flash和Java的问题。在那些有特别需求的渗透测试中,可能遇到大量各种类型的网站,可以研究Chrome浏览器插件:

WMAP的工作原理是使用Chrome打开一个新的标签,并获取网页的图片。基于这样的事实,浏览器负责显示页面。

在安装Chrome浏览器插件后,配置WMAP非常简单(见图2.28)。


在使用这个工具时确实遇到一些问题,主要是速度问题和每个网站打开一个标签的问题。WMAP工具是基于浏览器显示网站的内容,Peepingtom和Eyewitnessquery不具备这个功能(见图2.29)。


《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.3节外部或内部主动式信息搜集...相关推荐

  1. 黑客秘笈-渗透测试实用指南 第三版

    黑客秘笈-渗透测试实用指南 第三版 目录 前言 提示和免责声明 介绍 渗透测试团队与红队 总结 第1章 赛前准备--安装 假定攻破练习 设定你的行动 设置你的外部服务器 红队的核心工具 Metaspl ...

  2. 《黑客秘笈——渗透测试实用指南(第2版)》目录—导读

    版权 黑客秘笈--渗透测试实用指南(第2版) • 著 [美] Peter Kim 译 孙 勇 责任编辑 傅道坤 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 3 ...

  3. 《黑客秘笈——渗透测试实用指南》—第2章2.4节Web应用程序的扫描

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第2章2.4节Web应用程序的扫描,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区"异步社区 ...

  4. 《黑客秘笈——渗透测试实用指南》—第2章2.3节 外部或内部的主动式信息收集...

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第2章2.3节 外部或内部的主动式信息收集,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区" ...

  5. 《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.7节总结

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南(第2版)>一书中的第2章2.7节总结,作者[美]Peter Kim(皮特 基姆),更多章节内容可以访问云栖社区"异步社区&qu ...

  6. 《黑客秘笈——渗透测试实用指南》—第1章1.1节搭建渗透测试主机

    本节书摘来自异步社区<黑客秘笈--渗透测试实用指南>一书中的第1章1.1节搭建渗透测试主机,作者[美]Peter Kim(彼得 基姆),更多章节内容可以访问云栖社区"异步社区&q ...

  7. 网络安全-《黑客秘笈渗透测试实用指南(第2版)》工具安装部分

    后门制造工厂 ● Patch PE, ELF, Mach-O 二进制文件注入shellcode git clone https://github.com/secretsquirrel/the-back ...

  8. 好书推荐:《黑客秘笈:渗透测试实用指南》

    内容简介‍‍ 所谓的渗透测试,就是借助各种漏洞扫描工具,通过模拟黑客的攻击方法,来对网络安全进行评估. 本书采用大量真实案例和集邮帮助的建议讲解了在渗透测试期间会面临的一些障碍,以及相应的解决方法.本 ...

  9. 《内网安全攻防:渗透测试实战指南》读书笔记(四):权限提升分析及防御

    目录 前言 一.系统内核溢出漏洞提权分析及防范 1.通过手动执行命令发现缺失补丁 (1)MS16-032(KB3139914) 2.利用MSF发现缺失补丁 3.Windows Exploit Sugg ...

  10. 【保姆级】黑客入门教程「Python安全攻防:渗透测试实战指南」经典纯狱风~

    前言 网络江湖,风起云涌,攻防博弈,从未间断,且愈演愈烈.从架构安全到被动纵深防御,再到主动防御.安全智能,直至进攻反制,皆直指安全的本质--攻防.未知攻,焉知防! 每一位网络安全从业者都有仗剑江湖的 ...

最新文章

  1. python插件安装错误解决办法之SyntaxError: from __future__ imports must occur at the beginning of the file原因
  2. BAT 才不关心币价,19年的5大重点在这里!
  3. C++vector进行局部排序
  4. 浏览器渲染阻塞与优化-详解推迟加载、异步加载。
  5. 计算机二级web题目(8.3)--简单应用题2
  6. pcb钻孔披锋改善报告_高速高频PCB技术 || 玻纤效应对高速信号的影响
  7. Cell|严景华/齐建勋首次发现新冠病毒进入细胞的详细分子细节
  8. MongoDB集群构建
  9. Kent Beck 的《测试驱动开发》(TDD) Money示例Ruby版
  10. php长链接要配置,PHP链接到配置文件页面。 ?id =
  11. 好系统教你如何禁用或删除启动应用程序以加速Windows
  12. 深入理解 JVM 之 垃圾回收机制
  13. SO_REUSEADDR 套接字选项应用实例
  14. XILINX FPGA数字信号处理——8、FIR滤波器和IIR滤波器原理及实现
  15. 新基建浪潮下服务机器人进入快车道 思岚科技推动产业“加速起跑”
  16. cmd命令行把bat或exe执行为windows服务
  17. 使用pm2管理项目(指令)
  18. 查看 java opts,如何在命令提示符中检查JAVA_OPTS值?
  19. 计算机的安全保障机制,技术安全保障管理制度
  20. 基于vue3的splitter组件

热门文章

  1. vscode误删文件恢复
  2. Dynamical Isometry and a Mean Field Theory of CNNs
  3. Flutter 项目实战 应用图标启动页三
  4. 微信小程序 view自适应宽度
  5. 弘辽科技:淘宝店铺违规再也不用怕了 这个新规能抵消扣分处罚
  6. linux软键盘怎么调出来,软键盘怎么关?软键盘关闭方法
  7. java 调用软键盘_关于Java:可靠地隐藏软键盘
  8. C++:实现量化exchangerate汇率测试实例
  9. anti-wrinkle_Anti-wrinkle是什么意思
  10. 爱情不是等你有空才珍惜的