信息收集方法总结
信息收集是渗透测试方法论的第二个阶段,占据整个渗透测试的60%,由此可见信息搜集的重要性。信息收集中收集到的信息越多、跟目标系统交互的越少,隐蔽性就越好,从而我们的成功可能性越大。
信息收集分为被动信息收集和主动信息收集两大类。
被动信息收集是指通过第三方服务来获取目标网络的相关信息,如搜索引擎等。搜索引擎常见有Google,百度,其中Google支持的语法相当丰富,深受白帽子青睐。除基于爬虫的搜索引擎外,网络空间搜索引擎如:国外的shodan,华顺信安的fofa和知道创宇的zoomeye还会进行端口扫描、指纹识别、口令探测、版本探测等一系列查点手段。
主动信息收集是指通过直接发起与被测目标网络之间的互动来获取相关信息。如:域名信息、IP 信息、员工联系方式、系统指纹信息、应用指纹信息等。
主动信息收集
指纹信息
指纹信息是指
- 指定路径指定名称的js文件、css文件或代码。
- title中的内容,有些程序标题中会带有程序标识。
- display:none中的版权信息。
- 页面底部版权信息,关键字© Powered by等。
- readme.txt、License.txt、help.txt等文件。
- 指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件等,一般管理员不会修改它们。
- 注释掉的html代码中http头的X-Powered-By中的值,有的应用程序框架会在此值输出。
- cookie中的关键字
- robots.txt文件中的关键字
- 404页面,302返回时的旗标
通过识别目标网站所使用的CMS信息,进一步了解渗透测试环境,利用已知的一些CMS漏洞来进行攻击。
系统指纹
涉及系统的版本、开放了哪些端口、启动了哪些服务。
应用指纹
判断应用是使用开源的 web 系统还是自研web系统。开源系统可能存在已知安全漏洞,通过指纹识别能快速判断应用是否存在安全问题。
指纹识别方式
归根结底,指纹识别很大程度上都依赖强大的指纹识别库,理论上指纹识别库有多强大,识别成功率就会有多高。推荐两个在线指纹识别平台。
godeye
支持网址、IP地址查询。检测header数据包识别代理、登录认证、务器中间件、服务器指纹、防火墙指纹、开发语言,除此之外还进行简单的SQL注入检测数据库类型。通过算法、策略提升指纹识别速度,单条指纹识别速度可达0.04秒。
傻瓜式操作,在线方便,指纹库强大,识别成功率高,关键注册即送三千条批量识别,提交指纹送积分,妥妥的“白嫖怪”的福音。
云悉
支持网址、IP地址查询。不依赖于应用首页特征,请求识别CMS核心关键文件;基于自研指纹规则提取系统,确保每个CMS识别规则独一无二;自主收录约七千个识别规则,适合国内使用场景。
沉淀时间长,识别率高,但注册需要邀请码,需要实名认证。
DNS 域名信息,IP地址
多级域名通过爬虫,DNS暴力枚举获取。
域名解析,再进行IP扩展,通过扫描指纹判断IP的归属。
nmap
nmap --script=broadcast-dns-service-discovery xxx.com
nmap -T4 -p 53 --script dns-brute www.xxx.com
nmap -Pn -sU -p 53 --script=dns-recursion xxx.xxx.xxx.xxx
nmap --script dns-srv-enum --script-args "dns-srv-enum.domain='xxx.com'"
host命令:向DNS服务器查询主机的IP地址。
host www.xxx.com
dig命令:进行DNS查询,不指定任何选项,dig指令仅返回A记录。要查询全部类型的DNS数据,可以把type选项设置为any。
Dig xxx.com any
dnsenum命令:收集DNS数据。还可以通过谷歌搜索其他的域名和子域名,对子域名进行暴力破解,对C类网段进行whois查询等。
默认情况下,dnsenum会返回主机地址、名称解析服务器和邮件服务器的IP地址信息。
dnsenum -f dns.txt baidu.com #暴力破解子域名
fierce命令:通过多项技术查找目标IP地址和主机名,也可以暴力破解子域名
fierce -dns xxx.com –threads 3
dmitry命令:多功能的信息收集工具。可以查询主机的whois信息,在netcraft.com网站上挖掘主机信息,查找子域,目标域中的电子邮件地址,探测端口等。
dmitry –iwnse www.baidu.com
dmitry –p www.baidu.com –f -b
员工联系方式
theharvester命令:收集电子邮件帐号、用户名、主机名、子域名等信息。
从google的前100项搜索结果中挖掘电子邮件地址和主机名:
theharvester -d xxx.com -l 100 -b google
在Linkedin.com中搜索用户名等信息:
theharvester -d xxx.com -l 100 -b linkedin
被动信息搜集
代码关键信息泄露
大多数程序员都有强烈的代码共享意识,都有追求自由的心,代码分享就成了程序员们的一种情怀。
最大、最常见的代码共享平台就是GitHub,同时该平台也是企业发生代码泄露最严重的地方。很多时候,重要的信息,如:管理员用户名、密码,企业核心数据等,仅需要GitHub的代码搜索就能很快查找到。除GitHub之外常见的还有sourceforge,codesc等等平台。
天眼查
包含所有法定代表人,注册资本,统一社会信用代码,纳税人识别号,企业类型,人员规模,曾用名,企业地址,经营范围,经营状态,实缴资本,组织机构代码,进出口企业代码,营业期限,参保人数,英文名,成立日期,核准日期,工商注册号,所属行业,登记机关,所属地区,股东信息,主要人员,对外投资,分支机构等超过100+数据维度。提供历史数据、增量数据、爬虫部署、数据库部署、数据检索、数据分析、可视化展示。重点关注企业老板、关系,企业老板背后投资公司主体信息,关联出与目标先关的企业单位,扩展攻击面,后续可对企业老板和员工进行诱骗社工。
一级域名
通过所搜引擎、友情链接、资产关系等获得。
IP地址信息
常用的whois信息在国内并不是非常有用。国内而言,IP地址紧缺,大量的服务都运行在云上,使用的都是云服务商提供的IP地址。