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

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

2.3 外部或内部的主动式信息收集
黑客秘笈——渗透测试实用指南
主动式信息收集就是通过主动扫描确认目标安装的操作系统和网络服务,并发现潜在漏洞的过程。即主动式信息收集必定对指定的网络段进行扫描。无论是在网络的内部还是外部进行扫描,主动式信息收集都要采用得当的扫描工具。

本书不会详细介绍扫描器的运行方法,毕竟大多数读者已经非常熟悉扫描工具了。如果您尚未掌握扫描工具的使用方法,我推荐您用社区版的Nexpose,或者用试用版的Nessus进行练习。在家里或者实验室里进行网络扫描,了解这些工具获取可发现哪些类型的信息,使用认证信息进行扫描的方法,以及网络上所产生的流量类型。这些扫描程序会频繁地触发IDS/IPS告警。在熟悉常见的扫描工具之后,我们可开始更深入地了解这种方式的信息收集。

2.3.1 网络扫描的流程
本节讲述进行高效扫描的方法,它涉及扫描的工具、流程和相关技术。我的扫描流程大体分为以下几个步骤。

用Nexpose/Nessus扫描。
用Nmap扫描。
用自定义的Nmap扫描。
用PeepingTom抓取屏幕。
1.用Nexpose/Nessus进行网络漏洞扫描
这两款工具可谓大名鼎鼎,它们都是速度最快、效果最佳的扫描工具。通常,我会对它们进行详细的调整,然后使用一款工具进行详细的安全检查。如果时间紧迫,我会首先使用以前的配置文件进行扫描,仅检测已知的安全漏洞,然后使用默认的预设配置进行第二次扫描。虽然第一次扫描的速度很快,但是往往只会得到一些重要的发现。

先来大致说一下漏洞扫描器。在第1章,我推荐您购买Nexpose或者Nessus 扫描程序。至于哪一个扫描器的品质更佳,就是见仁见智的问题了。我确实用过绝大部分的商业扫描程序,但是这些程序里没有一款可称得上是完美的或者是极致的解决方案。若将这些工具进行比较,总会发现它们功能都不完备,总是或多或少地缺少点什么。所以,我们最好采用多个工具进行漏洞扫描。当然,预算往往不会允许我们什么都买。

如果只能从中选一,那我推荐Tenable的Nessus漏洞扫描器。从它能扫描的IP地址数量以及费用(1500美元)来进行综合评定,还是Nessus比较划算。而Nexpose的咨询许可证价格是Nessus的两倍,所能扫描的IP数量也有限制。不过您最好还是在购买前确认一下价格,因为行情可能随时不同。

本文将通过案例说明多个扫描工具的必要性。例如,使用专业版的Nexpose对我的网站进行扫描。在扫描时,我指定了标准的漏洞扫描配置文件,并没有进行深入的Web应用程序检测。Nexpose给出了4个严重的警告,详细情况如图2.8所示。

然后,我们使用专业版的Tenable Nessus扫描程序进行相同的扫描,并指定了相似的配置文件。可见,扫描结果大有不同。仅仅对我的网站进行扫描,就能存在这么大的区别。可想而知,在大规模的扫描中,扫描结果也不会更为接近。如图2.9所示,Nessus发现了3个中级的警告,5个低级别警告。


1ad074090c44fd2e30aeb6c5da60bc3b83949ac5


a147aedf7470816c895b16eaf65e22a367788884

这两个例子说明这两款程序有很大差别。大致进行比较,就会发现Nexpose检测出了Wordpress路径泄露漏洞,而Nessus没能发现这一问题。

虽然扫描器很有用,也是进行网络渗透的必备工具,但是您要了解它们的优点和局限性。

Nmap——抓取旗标(banner)
在抓取旗标之前,我通常会调整扫描选项,使用Nmap程序对常见端口进行操作系统和网络服务的检测扫描。如果时间充裕,我还会对所有的65535个端口进行扫描。在Nmap进行常规扫描的同时,我还会指定它运行一个抓取旗标的Nmap脚本。后文将会对此进行说明。

进行完整的漏洞扫描会很耗时间。我们可以利用Nmap脚本,在端口扫描的同时,抓取基本的端口信息。这些信息也有助于我们制定更具针对性的攻击计划。

希望您不仅会用Nmap程序,更要了解它的原理。我认为Namp是一款具备模块化特性的快速而高效的扫描工具,足以满足常规的扫描需求。推荐您参考Fydor撰写的介绍Nmap的图书(http://www.amazon.com/Nmap-Network-Scanning-Official-Discovery/dp/0979958717)。本节重点介绍使用Nmap识别操作系统和网络服务的方法,所以我最关注的问题是如何扫描所有的65535个端口,以及如何检测开放端口并获取旗标信息。

这种方法还可用来发现同一个网络环境发生的具体变化。在客户要求您每月都进行一次例行扫描的时候,这种方法正好可以非常快速简单地发现网络情况的具体变化(需要一些辅助脚本)。

在前文的安装阶段,我们安装了HD Moore的banner-plus.nse脚本。这也是它在映射整个网络时所用的脚本 1。它提供了一种可以快速识别开放端口旗标页面信息的方法。运行扫描的命令大致如下:

nmap —script /usr/share/nmap/scripts/banner-plus.nse —min-rate=400 —min-parallelism=512 -p1-65535 -n -Pn -PS -oA/opt /peepingtom/ report

这些选项的含义如下所示。

—script 设置安装阶段下载的banner-plus脚本的位置。

—min-rate 保证扫描会在一定时间内结束。

—min-parallelism 设置并行扫描的数量。

-p1-65535 对所有的端口(即65535个端口)进行扫描。

-n 禁用DNS解析(可以加快扫描速度)。

-Pn 禁用ping(许多服务器会过滤掉外网的ping请求)。

-PS 使用TCP SYNping的方式进行主机探测。

-oA 导出所有类型的报告。

适当调整—min-rates和—min-parallelisms选项,可获得最佳的网络性能和稳定性(更多的信息可参考http://nmap.org/book/man-performance.html)。我用这些数据来创建了一个简单的视图,可以查看服务、漏洞的版本以及其他一些具体的信息。Nmap可以把扫描以各种不同的文件格储存在/opt/peepingtom/文件夹中。在稍后介绍有关截屏的时候,我们再详细介绍它的扫描结果。这一小节将演示这些数据的使用方法。

下一节将展示快速获取旗标数据信息,以及在扫描结果中进行快速检索的方法。为了获取最快的检索速度,我的后台数据库采用的是MongoDB程序,而前端数据检索的功能由PHP实现。此外,本例还用到了Python语言的脚本程序,用它解析Nmap生成的XML文件,继而把有关数据储存到数据库中。之后,我编写了前端的PHP查询页面。因为我们扫描的目标是IP很多的16位子网,所以首要任务就是提高旗标信息的检索速度。如果时间充裕,今后我会将把这个Web应用程序放在公网上。日后,您只要上传xml文件,就可以看到检索结果了。

我建立了一个满足上述需求的程序,并且给它取名为名为internet-scan。它可以快速地检索特定的旗标、端口和IP地址。更棒的是,它可以查询漏洞系统的旗标页面。虽然的确有人会伪造旗标信息,但是以往的渗透测试经历表明,旗标信息还算得上是可靠的判断依据。internet-scan的初始化页面如图2.10所示。

在收集到所有旗标信息之后,我们可使用正则表达进行快速检索,搜索那些有漏洞可利用的网络服务。我会采取多种方式对旗标信息进行排序。例如,在某次对16位子网(CIDR表示法)的扫描结果中,我通过这种方法筛选出了以下这些旗标(见图2.11)。


ff59f2cc52258df303121f7cf4ae07afbd906683


afb477102c743c39cf66ef3e0c3e7285d4ccd861

旗标里暗含着“这台主机存在可利用的漏洞”或“这台主机已经被攻陷”的信息。喔!我们看到了含有scada信息的旗标,它代表该主机可能与电信网格系统有关……有没有那些与终端服务有关的旗标呢?旗标信息确实可以揭示出哪些网络服务存在缺陷,继而可获取该设备的普通(非特权)shell。

我事先写好了一个查询数据库的脚本程序,它可以检索特定类型的操作系统、应用程序版本或者其他信息。在评估规模较大的网络时,这个脚本可以提高查询效率。例如,我使用正则表达检索IIS有关的旗标信息,可以得到图2.12所示的结果。


6ce3aad13d81623dec9015fd20f958aaafbf7570

这种方法可以快速地抓取65000多端口的旗标,继而利用internet-scan对旗标进行快速解析,节省了大量的时间。

2.用Peeping Tom进行截屏
接下来,我们再次处理Nmap的扫描结果。在进行了大范围的端口扫描之后,渗透测试人员面临的首要问题是如何组织数据。我们要从海量数据中判断攻击哪些目标比较容易得手,哪些目标是应该首先攻击的目标。如果目标网络承载着100多个网站,那么人工访问的方式绝对不可取。使用鼠标逐一单击访问的方法不仅十分耗时,而且可能找不到任何漏洞。多数网站的绝大多数网页都不是渗透的对象,我们大体看一眼就可以评判其对于渗透测试的价值。Peeping Tom正是这样一个辅助我们评判网页渗透价值的自动化工具。它可以对指定IP和指定端口的所有HTTP(s)服务进行快照,以一种简单易读的方式展现出来。

这意味着,使用工具下载了网站的HTML页面之后,只需要对页面进行简要的评估就可筛选出较易渗透的网站,或者更值得投入精力进行渗透的网站。请注意,渗透测试通常就是在跟时间赛跑,因为我们没有太多的时间可以浪费。

其他程序的输出数据,要经过整理和处理才能传给Peeping Tom使用。Gnmap.pl脚本可以把前面的Nmap结果处理为Peeping Tom所需的IP列表2。此时,我们需要使用以下命令:

cd /opt/peepingtom/
cat report.gnmap | ./gnmap.pl | grep http | cut -f 1,2 -d "," | tr "," ":" > http_ips.txt

上述命令可筛选出运行着HTTP服务的IP地址,并把整理结果保存到http_ips.txt文件中。而后,我们可以用Peeping Tom处理这个文件,对网站内容进行截屏快照。运行Peeping Tom的命令如下:

python ./peepingtom.py -p -i http_ips.txt
使用Peeping Tom处理Nmap扫描结果的情况如下所示。请注意,Peeping Tom确实可能对部分HTTP服务无能为力。遇到这种情况,测试人员只能手动访问那些网站了。

python ./peepingtom.py -h
Usage: peepingtom.py [opt ions]
peepingtom.py - Tim Tomes (@LaNMaSteR53) (www.lanmaster53.com)
Options:
—version show program's version number and exit
-h, —help show thi s help message and exit
-v Enable verbose mode.
-i  INFILE File input mode. Name of input file. [IP: PORT]
-u URL Single URL input  mode. URL as a string.
-q PyQt4 capture mode. PyQt4 python modules required.
-p Phantonjs capture mode. Phantomjs required.
python ./peepingtom.py -p -i http_ips.txt
[*] Storing data in ‘131229_230336/’
[*] http: //192.168.58.20 200. Good.
[*] https: //192.168.58.20 200. Good.
[*] http: //192.168.58.21 403. Good.
[*] https: //192.168.58.21 <Connect ion refused>. Visit manually from report.
[*] http: //192.168.58.25 <No route to host>.Visit manually from report.
[*] https: //192.168.58.25 <No route to host>.Visit manually from report
[*] http: //192.168.58.35 <Connect ion refused>.Visit manually from report.
[*] http: //192.168.58.48 200. Good.
[*] https: //192.168.58.48 200. Good.

待Peeping Tom处理完毕,它会在peepingtom的文件夹内新建一个以时间戳命名的文件夹。该文件夹中会有多个图片文件和一个名为report.html的文件。我们使用浏览器打开report.html,很容易就能知道哪些页面有渗透价值,哪些页面没有渗透价值。它的扫描结果如图2.13所示。


ab07c33041fe9782e4b5ce624b26ca73670cea4f

在报告文件里,可以看到很多网页的屏幕快照。它以网页形式提供了与服务器、日期、HTTP应答相关的信息。在对100多个Web服务器进行渗透测试的时候,Peeping Tom在几分钟内就能完成所有的处理,必定会大大地简化您的操作。

那么您到底要重点关注什么呢?这恐怕就是见仁见智的问题了,并没有对所有人都适用的答案。对我而言,我通常会对以下内容感兴趣:

Apache Tomcat;
需要认证的页面;
JBoss;
网络设备的默认网页;
ColdFusion;
内容管理系统(CMS);
WordPress;
Wikis;
Joomla;
版权信息早于2012年的网页;
测试中或者开发中的网站;
VoIP页面。
关注这些信息的原因是,它们通常都会含有漏洞,而且这些漏洞可能导致系统被攻陷或者数据被非法访问的问题。Apache、JBoss、ColdFusion程序都有大量的著名漏洞,其中部分exploit程序的源代码可谓触手可及。

举例如下。

ColdFusion的案例:http://www.exploit-db.com/exploits/25305/。

JBoss的案例:http://www.rapid7.com/db/modules/exploit/multi/http/jboss_maindeployer。

Apache的案例:http://www.rapid7.com/db/modules/exploit/multi/http/tomcat_mgr_deploy。

我还对那些需要认证的网站格外感兴趣。认证这一现象意味着网站的应用程序会有额外的功能,而且其Web应用程序很有可能存在安全问题或者默认的密码。

从这些信息入手,您就能快速发现漏洞,并且大致了解您所测试的网络。虽说本书不是详细的网络扫描指南,但是借助这种方法,您可以进行更有效、更快速的网络扫描。

1https://community.rapid7.com/community/infosec/sonar/blog/2013/10/30/project-sonar-one-month-later。
2http://pauldotcom.com/wiki/index.php/Episode291。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/456637.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Storm集群的安装及简单使用

目录前言&#xff1a;1、集群部署的基本流程2、Storm常用操作命令&#xff08;了解&#xff09;3、Storm集群的进程及日志熟悉&#xff08;知道对应的日志的位置出了问题知道去哪找原因&#xff09;4、Storm源码目录分析&#xff08;重要&#xff09;总结&#xff1a; 目录 前…

Storm的通信机制

目录前言&#xff1a;1、Worker进程间通信原理2、Worker进程间技术(Netty、ZeroMQ)3、Worker 内部通信技术(Disruptor)总结&#xff1a; 目录 前言&#xff1a; 这篇文章&#xff0c;博客主要介绍下Storm中Worker进程间和进程内部通信的原理和技术。整篇内容仅供了解&#x…

Storm程序的并发机制原理总结

文章目录目录前言&#xff1a;1、概念2、配置并行度总结&#xff1a;目录 前言&#xff1a; 为了在以后的实践中提高Storm程序执行的效率&#xff0c;我们还是有必要了解下对应的Storm程序的并发机制。&#xff08;哈哈&#xff0c;虽然以博主小菜鸟的水平还没有接触到这种提…

★数学上最大的数是多少?

数学上最大的数是多少&#xff1f; 怪罗科普 收藏(282)| 阅读(117678)人类已经使用数长达千年之久。普遍认为&#xff0c;数的概念最先源于史前人类开始使用手指进行计数。这最终演变成符号语言&#xff0c;然后在沙子、墙壁和木头等物体上作标记。 我们已经向前发展了一大步&…

Storm任务提交过程及目录树介绍

目录前言&#xff1a;1、Storm 任务提交的过程2、Storm相关的目录树总结&#xff1a; 目录 前言&#xff1a; 对于任何一个组件来说&#xff0c;了解它相关的任务提交的过程是非常有必要的&#xff08;毕竟生产中遇到一些Bug时&#xff0c;你如果知道内部执行的过程&#xf…

《Adobe InDesign CS6中文版经典教程》—第1课1.5节修改文档的缩放比例

本节书摘来自异步社区《Adobe InDesign CS6中文版经典教程》一书中的第1课1.5节修改文档的缩放比例&#xff0c;作者【美】Adobe公司,更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.5 修改文档的缩放比例Adobe InDesign CS6中文版经典教程InDesign中的控件让用户能…

大数据之Kafka入门简介

目录前言&#xff1a;1、Kafka是什么2、JMS是什么3、Kafka核心组件&#xff08;重点&#xff09;总结&#xff1a; 目录 前言&#xff1a; 作为流式计算中的一个组件&#xff0c;对于它的组成以及运行的原理&#xff0c;学习者也需要相关的了解。以下主要简单介绍了kafka是什…

oracle的安装与plsql的环境配置

1&#xff0c;首先得有oracle的安装包和plsql的安装包&#xff0c;安装包地址可见百度云 http://pan.baidu.com/s/1miTqhmg 2.解压下来进入0817账套&#xff0c;找到set.exe文件&#xff0c;双击安装即可 注意的是安装的时候有两个目录是要自己创建的&#xff0c;否则安装不成功…

如何在Docker容器中运行GUI程序

如何在Docker容器中运行GUI程序 各位&#xff0c;今天我们将学习如何在Docker之中运行GUI程序。我们可以轻易地在Docker容器中运行大多数GUI程序且不出错。Docker是一个开源项目&#xff0c;提供了一个打包、分发和运行任意程序的轻量级容器的开放平台。它没有语言支持、框架或…

【python】Get与Post的区别?(面试官最想听到的答案)

GET和POST是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别就是GET把参数包含在URL中&#xff0c;POST通过request body传递参数。 你可能自己写过无数个GET和POST请求&#xff0c;或者已经看过很多权威网站总结出…

大数据之Kafka内部原理详细介绍

目录前言&#xff1a;1、Kafka整体结构2、Consumer与topic关系3、Kafka消息的分发4、Consumer的负载均衡5、kafka文件存储机制总结&#xff1a; 目录 前言&#xff1a; 本篇文章所介绍的内容还是以了解为主&#xff0c;主要目的还是为了对Kafka有一个更深入的理解。主要介绍…

JS与APP原生控件交互

“热更新”、“热部署”相信对于混合式开发的童鞋一定不陌生&#xff0c;那么APP怎么避免每次升级都要在APP应用商店发布呢&#xff1f;这里就用到了混合式开发的概念&#xff0c;对于电商网站尤其显得重要&#xff0c;不可能每次发布一个活动&#xff0c;都要发布一个现版本&a…

《脱颖而出——成功网店经营之道》一2.6 连横:返利模式的应用及分销

本节书摘来异步社区《脱颖而出——成功网店经营之道》一书中的第2章&#xff0c;第2.6节&#xff0c;作者&#xff1a; 何小健 责编&#xff1a; 赵轩, 更多章节内容可以访问云栖社区“异步社区”公众号查看。 2.6 连横&#xff1a;返利模式的应用及分销 脱颖而出——成功网店…

大数据之Spark集群安装及简单使用

目录1、Spark集群安装1.1. 安装 2、启动Spark Shell2.1、启动spark shell2.2、在spark shell中编写WordCount程序 目录 1、Spark集群安装 1.1. 安装 1.1.1. 机器部署 准备两台以上Linux服务器&#xff0c;安装好JDK1.7 1.1.2. 下载Spark安装包 下载地址&#xff1a;ht…

大数据之Spark简介及RDD说明

目录前言&#xff1a;1、Spark概述1.1、什么是Spark&#xff08;官网&#xff1a;http://spark.apache.org&#xff09;1.2、为什么要学Spark1.3、Spark特点 2、RDD概述2.1、什么是RDD2.2、RDD的属性2.3、创建RDD的两种方式2.4、RDD编程API2.5、RDD的依赖关系2.6、RDD的缓存2.7…

大数据之SparkSQL简介及DataFrame的使用

目录前言&#xff1a;1、Spark SQL1.1、Spark SQL概述1.2、DataFrames1.3、DataFrame常用操作 总结&#xff1a; 目录 前言&#xff1a; 本文主要介绍下SparkSQL以及SparkSQL的简单使用。这里只是做了一个非常简单的介绍&#xff0c;后续工作中如果有用到相关的知识&#xff…

Ubantu下使用vi时,方向键变字母输出、退格键无法删除字符的解决办法

目录前言&#xff1a;一、编辑/etc/vim/vimrc.tiny二、安装vim full版本三、添加”.vimrc”文件 目录 前言&#xff1a; 最近由于要玩TensorFlow&#xff0c;所以把尘封已久的Ubantu给打开了&#xff0c;不过配置网络的时候&#xff0c;算是一团糟&#xff0c;出现了在插入模…

《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述

本节书摘来自华章计算机《Python爬虫开发与项目实战》一书中的第3章&#xff0c;第3.1节&#xff0c;作者&#xff1a;范传辉著&#xff0c;更多章节内容可以访问云栖社区“华章计算机”公众号查看 第3章 初识网络爬虫 从本章开始&#xff0c;将正式涉及Python爬虫的开发。本章…

windows环境下,如何在Pycharm下安装TensorFlow环境

文章目录目录前言&#xff1a;1.安装Anaconda2.安装Tensorflow3.其他问题4.在pycharm中使用tensorflow目录 前言&#xff1a; 最近由于工作需要要使用TensorFlow&#xff0c;所以只能狂补相关的知识。本来博主打算在Ubantu上玩&#xff0c;但是由于一些原因还是放弃了这个想法…

《Effective Debugging:软件和系统调试的66个有效方法》一第5条:在能够正常运作的系统与发生故障的系统之间寻找差别...

本节书摘来自华章出版社《Effective Debugging&#xff1a;软件和系统调试的66个有效方法》一书中的第1章&#xff0c;第1.5节&#xff0c;作&#xff3b;希&#xff3d;迪欧米迪斯斯宾奈里斯&#xff08;Diomidis Spinellis&#xff09;&#xff0c;更多章节内容可以访问云栖社…