预备知识
1. 信息收集的分类
信息收集分为被动方式和主动方式。
被动信息搜集:利用第三方的服务对目标进行访问:Google搜索、Shodan搜索、其他综合工具。被动信息收集是指尽可能多地收集与目标相关的信息。主动信息搜集:通过直接扫描目标主机或者目标网站,主动方式能获取更多的信息,目标系统可能会记录操作信息。
在信息收集中,需要收集的信息:目标主机的DNS信息,目标IP地址,子域名,旁站和C段, CMS类型,敏感目录,端口信息,操作系统版本,网站架构,漏洞信息,服务器与中间件信息,邮箱,人员,地址等。
在信息收集的流程,首先可以进行被动收集,确定网络范围内目标,与目标相关的人员的邮箱,地址等信息。然后在选择出重点渗透的目标,再针对性的进行主动信息收集。
可以通过相关的工具帮助针对性的进行信息收集,信息收集的思维导图如下所示。
2. 信息收集的工具介绍
对思维导图中的信息收集工具和方式进行简单的介绍。
1)Shodan
Shodan是一个搜索引擎,允许用户使用各种过滤器查找连接到互联网的特定类型的计算机(网络摄像头,路由器,服务器等),官方网址:https://www.shodan.io/。例如搜索“product:"SSH"”,能够得到相对应的IP地址,主机名,ISP(组织),对应的国家,Banner信息等信息。
然后可以点击右侧对应的条目,了解具体目标的具体信息。
还可以借助一些过滤规则来帮助精确性获取目标的信息。
2) Google
可以通过Google的语法规则,利用Google搜索,进行针对性的敏感信息搜集。
常用的语法参数
使用场景
可以通过组合使用语法,从而得到获取敏感信息的目的。
3) Maltego
Maltego是一款综合信息收集工具,可以帮助获取和可视化情报收集。Maltego在Kali linux中自带。Maltego使用之前需要进行注册,注册之后可以使用社区版免费版,官方安装网址:https://www.paterva.com/downloads.php, 官方指导文档:https://docs.maltego.comen/user-guide/。
在Kali linux打开Maltego之后,利用之前注册的账户进行登录,然后就可以使用Maltego进行信息收集。首先,点击软件左上角创建一个项目,然后在软件左侧选择一个类型为目标,部分类型包括:
如图使用domain(域名)为搜索目标。点击domain(域名)右侧可以选择搜索策略,默认选择第一个策略。默认策略包括DNS分析,IP地址,邮箱,地址电话等信息。等待一段时间后,就能得到生成的网络拓扑图。
通过网络拓扑图,可以得到域名对应的服务器、网址、邮箱等信息。在得到拓扑图之后,还能根据得到的信息节点,在进行相对应的策略分析。
最后,分析得到的信息不仅可以导出为图片,还可以导出为PDF,详细分析收集的信息。
Maltego作为被动信息搜集工具,收集的信息相当的全面,包括选择目标的 IP地址、域名及域名的相关信息、邮箱信息、公司的地址、人员等信息。根据收集到的这些信息,可以进行综合分析,有助于确定后期渗透测试的攻击的范围和目标。
4)DNS域名信息
对于渗透目标为域名,需要收集域名对应的IP地址,域名注册信息、子域名等相关信息。
① Whois
Linux 的whois指令可以获取目标域名的关键注册信息,包括注册公司、注册邮箱、管理员联系手机等。
② dsenum工具
linux下的工具,指令格式:dnsenum 域名,能够返回对应IP地址。可以输入指令:dnsmap --help查看帮助文档。
5)目标真实IP地址
要判断目标域名是否存在CDN,可以通过网站http://ping.chinaz.com/ 查询。如果查询得到对应多个IP地址,则说明该IP地址可能不是域名对应的真实的服务器地址。
6) 子域名收集
在真实场景中,主域名对应网站的安全措施会比较强,因此可以转向收集子域名的信息。这里介绍Windows中的子域名挖掘的工具Layer和开源扫描器onlinetools ,kali linux中fierce 工具。
① Layer子域名收集器
输入需要查询的域名,点击开始,就能开始进行搜索,能够返回对应的子域名、IP地址、CDN列表、WEB服务器信息。安装连接:http://www.moonsec.com/post-753.html
② 开源扫描器onlinetools
输入域名,点击查询,就能得到对应的子域名。安装方法:https://github.com/iceyhexman/onlinetools
③ fierce工具
指令格式:fierce-dns 域名,能够返回对应子域名和IP地址。可以输入指令:fierce --help查看帮助文档。
7 )网站架构
针对网站的架构,主要收集:服务器操作系统、网站服务组件和脚本类型、CMS类型、WAF等信息。
1. 服务器类型
服务器信息包括服务器用的操作系统:Linux 还是Windows 。使用nmap能够判别。指令:nmap -A -T4 -v IP地址
2. 网站服务组件和脚本类型
网站服务组件和脚本类型可以利用linux的网站指纹识别工具:whatweb和浏览器插件Wappalyzer。
① Whatweb
指令:whatweb 域名
② Wappalyzer
3. CMS安全检测
CMS是一个内容管理系统,允许用户将内容直接发布到WEB 的接口,
主流的cms有drupal,joomla,wordpress,dedecms判断出目标网站CMS,可以根据对应的CMS类型的漏洞进行攻击。目标网站的CMS识别和CMS安全检测,可以利用onlinetools工具分析。
4. 防火墙识别
WAF(防火墙)是WEB应用的保护措施。目标网站的防火墙信息可以使用nmap和WAFW00F获取。
① nmap
指令:nmap -p 80--script http-waf-detect.nse 域名
② WAFW00F
WAFW00F是linux一款探测目标防火墙信息的工具。指令:waf00f 域名。
8 ) 旁站和C段
旁站:和目标网站在同一台服务器上的其它的网站。C段:和目标服务器IP地址处在同一个C段的其它服务器。可以利用onlinetools工具和在线网站http://www.webscan.cc/获取。
1. onlinetools
2. 在线网站http://www.webscan.cc/
9 ) 目录收集
扫描目标网站的目录结构,收集敏感信息,利于对目标网站的渗透。部分敏感信息如表格。
常用的目录扫描工具有Window的御剑目录扫描器和7kbstorm,linux的Dirb。
1. 御剑目录扫描器
使用步骤:点击左下角的添加,输入目标域名,然后点击开始扫描。
安装网址:http://www.moonsec.com/post-753.html
2. 7kbstorm
使用方法:在扫描目标输入目标域名,点击开始即可。安装网址:
https://github.com/7kbstorm/7kbscan-WebPathBrute
3. Dirb
Dirb是一款基于字典的Web目录扫描工具。该工具能根据用户的字典对
目标网站进行扫描。指令格式:http://host/" or"https://host/
10) 端口信息扫描
通过扫描得到目标服务器的端口,根据端口对应的服务,从而进行针对性的攻击。部分常见的端口及对应的服务。常用的端口扫描工具nmap、zemap。
1. Nmap
Nmap用于快速扫描一个网络和一台主机开放的端口,使用TCP/IP协议栈特征探测目标主机的操作系统版本。安装连接:https://nmap.org/download.html
2. Zenmap
Zenmap是Nmap官方提供的图形界面版本。安装连接:https://nmap.org/download.html ,常用的指令如表格。
11 ) 漏洞扫描
网站漏洞扫描有助于帮助找到网站的脆弱点。这里介绍两款漏洞扫描工具:WAVS和Nessus。
1. AWVS
AWVS(Web Vulnerability Scanner)是一个知名的自动化的Web应用程序漏洞扫描工具,它可以扫描任何可通过Web浏览器访问的和遵循HTTP/HTTPS规则的Web站点和Web应用程序,并且可以将扫描的结果生成可视化报告。安装连接:https://www.acunetix.com/vulnerability-scanner/download/
部分核心功能如下表格。
简单使用步骤:首先点击AWVS左侧的目标,然后再点击添加目标并输入需要攻击的目标网站。
然后可以进行参数的选择和配置,不进行修改则直接点击扫描,使用默认策略进行扫描。
待扫描结束之后,点击AWVS左侧的报告,还能生成规范详细的报告。
2. Nessuss
Nessus是一款经典且功能强大的漏洞扫描工具,该工具基于多种安全漏洞进行扫描。官方安装连接:https://www.tenable.com/downloads/nessus,首先需要在官方网站上注册账号,之后利用注册的账号登录使用Nessus。
简单使用步骤:首先,点击左上角的新建扫描。
然后会出现很多不同的扫描方式,这里选择第一个高级扫描方式。
然后,进行参数配置,输入要进行攻击的目标,然后点击完成,就开始进行对目标的扫描。
最后,能将扫描的结果生成相对应的报告。
3. 本章小结
3.2通过介绍信息收集的工具向大家展示了针对不同信息,可以使用什么工具进行搜索。在真实的渗透过程,前期的信息收集尤为重要,做好信息收集,能够整理出目标的脆弱点,易于进行针对性的渗透攻击。
假设需要对一个域名进行信息收集,首先可以使用Shadon或者使用Maltego工具对目标域名进行综合分析,得到目标域名的 IP地址、域名及域名的相关信息、邮箱信息、公司的地址、人员等信息,然后再根据得到信息,利用不同的工具在进行详细的分析。例如可以对搜集得到的邮箱进行钓鱼攻击,对人员进行社会工程会攻击。还可以使用Google语法,利用Google搜索目标域名存在的登录后台、相关文件等信息。对于收集到的后台地址,可以尝试弱密钥攻击,对于收集到的相关文件,可以浏览查看是否存在一些内部信息泄露、初始账户密码、员工信息等信息。
其次,目标域名往往安全措施比较牢固,因此,可以通过收集目标域名的C段、子域名、旁站,从中选择薄弱的站点进行渗透攻击。针对收集得到的网站,可以利用相关工具收集网站架构、敏感目录等信息,网站架构使用的服务器组件中可能会存在相应的漏洞,敏感目录能够帮助获取网站的敏感数据,利于后期渗透使用。并且,还可以根据搜集到的相关IP地址,进行端口扫描,如果开放高危端口,例如:3389,445,80,22,21等,则可以进行相对应的服务攻击。
还可以针对目标,利用工具对目标进行漏洞扫描,根据扫描得到的漏洞信息,可以根据相对应的恶意代码进行漏洞攻击。
实验目的
信息收集是对目标进行渗透测试的第一阶段。只有掌握了目标主机或者网站足够多的信息,才能更有效地对目标进行攻击。通过本实验,了解信息收集需要收集什么信息,需要使用什么工具进行信息收集,了解信息收集的意义。
实验环境
实验机:Kali Linux;Windows ,IP地址:随机分配
实验步骤一
实验场景:黑客A打算对某官方网站的域名进行信息收集,然后在搜集的信息中选取合适的目标做进一步的详细信息收集,为之后的渗透测试打好基础。
任务分为2个部分:
1.利用Maltego工具,Shodan,Google对某学校的官方网站的域名进行信息收集。
2.从第一部分得到的信息中,选择一个目标网站,利用思维导图里的工具对目标网站进行信息收集,并进行相应的整理。
任务描述:以广州大学的官方网站的域名(www.gzhu.edu.cn)为例,用Maltego工具,Shodan,Google对其进行信息收集。
1. Maltego工具
利用预备知识所提到的Maltego工具使用步骤,分析得到以www.gzhu.edu.cn为中心的信息,部分信息包括子域名,邮箱,IP地址,服务组件等。
并且还生成了对应的文档,文档中包含详细的信息,文档截图如下:
2. Shodan
在Shodan中,输入www.gzhu.edu.cn进行搜索,Shodan将会返回诸多信息,例如域名对应的IP地址,国家,使用的网络架构,开放的端口及对应的服务,相对应可能存在的漏洞。搜索截图如下:
3. Google
在Google中,使用一些搜索语法,针对性对www.gzhu.edu.cn进行针对性的信息收集。这里以site:www.gzhu.edu.cninurl:aspx|jsp|php|asp为例。
实验步骤二
在试验任务1集得到的信息中,选取一个目标进行主动信息收集。这里选择目标huu.ghu.edu.cn和gzhu.edu.cn,收集其信息。
1. DNS域名信息
1) 使用工具dnsenum
指令dnsenum huu.ghu.edu.cn,得到目标: huu.ghu.edu.cn,对应的IP地址为:202.192.18.247。
2) 真实IP地址
使用站长之家多个地点Ping,判断202.192.18.247是否为真实的IP地址。结果显示得到的都为同一个IP地址。说明其为真实IP地址。
3) 查询gzhu.edu.cn的子域名
使用Layer子域名查询工具,得到对应的子域名和IP地址。
2. 网站架构
1) 脚本类型和服务组件
使用浏览器插件Wappalyzer。得到目标网站huu.ghu.edu.cn使用Java语言,使用的JavaScript库为jQuery1.9.1。
2) 服务器类型
利用nmap指令对目标网站进行查询,指令为:nmap -A -T4 -v202.192.18.247
3) 防火墙探测
使用工具wafw00f, 指令http://hhu.gzhu.edu.cn/,结果显示可能存在防火墙。
4) CMS安全检测
使用工具onlinetools,检测目标网站huu.ghu.edu.cn,是否存在相关的CMS漏洞。
3. 旁站和C段
攻击对象:gzhu.edu.cn,使用工具:www.webscan.cc,首先查询旁站,得到和gzhu.edu.cn在同一台服务器上的其它的网站。
然后查询C段,得到和gzhu.edu.cn在同一个C段的其它服务器。
4. 目录收集
使用7kbstorm,对目标网站huu.ghu.edu.cn,进行目录收集,发现目标网站没有敏感目录或者文件。
5. 端口扫描
使用zenmap对目标网站:huu.ghu.edu.cn,进行端口扫描,发现目标网站只开放了80端口
配套学习资源
1. Maltego工具的使用 http:// https://blog.csdn.net/qq_41453285/article/details/92743113
2. AWVS的使用 http:// https://blog.csdn.net/qq_36119192/article/details/83187475
3. Nessus的使用 http:// https://blog.csdn.net/lirunling/article/details/79035089