信息收集那些事(by Mr.M)


title: 信息收集那些事
date: 2021-02-19 19:57:51
tags:
categories:

  • 信息收集

写在开头:
半年前,有幸拜读亮神的渗透测试笔记,其中给我印象最深的一句话是:
“渗透测试的本质就是信息收集”。

未经作者授权禁止转载

那时我还想不明白为什么,总觉得技术上的精进比信息收集重要得多,半年后回过头来看,技术是有瓶颈期的,至少对绝大多数人来说如此,最终,你能不能拿下目标,很大程度上取决于信息收集,也可以说取决于你对目标的了解的有多全、有多深。

所以,我结合自己浅薄的一些经验,写一写关于信息收集的那些事,
如有不正之处,欢迎批评指正。

一、收集什么信息?

1.域名信息

关于域名信息,不得不提whois查询和备案查询,我们查来查去,直接讲重点,要的就是注册商、注册人、邮件、DNS解析服务器、注册人联系电话、地理位置等和目标自身息息相关的要素,具体的收集方法,详见我的渗透流程归纳文章,收集到以后的用法在本文第三大点作详细描述。

2.子域名

关于子域名,简单来讲,往往对应着目标系统的不同业务资产,教育类的可能包括教务系统、邮件系统、学生网课平台、学历信息平台、报名系统等,政府类的可能包括OA办公系统、文件存储系统、邮件系统等等。可以说,收集到的子域名越多,你对目标的了解就越全面,对目标的运行架构和框架就越熟悉,能够测试的资产就越多。

3.真实IP

关于真实IP,他不仅托管着你一开始拿到的域名的资产,他的旁站和C段甚至机房信息都有可能为你带来意外的惊喜。拿到真实IP后,就可以对该IP的端口信息(开放端口和服务漏洞)、指纹信息(中间件版本,历史漏洞)、历史解析域名和域名的历史解析IP(拓展出更多资产)做进一步的探测。

4.敏感信息、目录和文件

对所有的子域名,都要收集他们的敏感信息、目录和文件,可能会包括员工个人信息、waf、登陆点、后台、历史未删除页面、物理路径、源码备份、可用于社工的信息泄露。

5.社工信息

详见我的渗透流程归纳,已经比较全面了,在此不赘叙。

二、用什么工具收集?

1.记录工具

xmind+excel

刚开始做渗透的时候,自己竟然用的是记事本txt,当目标资产比较多的时候,相信我,每次重新打开文档,你根本看不过来,而且思路全是混乱的。所以,我推荐xmind这个思维导图软件,把整个渗透的流程都可以像树状图一样记录进去,既便于理清思维,也便于实际操作。

excel,便于把域名、端口、目录批量导入,去重和筛选以及整合都非常方便。

2.域名和子域名收集工具

dnsenum

dnsenum 是一款用于收集 dns 信息的工具,这款工具通过字典爆破、搜索引擎、whois 查询、区域传输等手段用于获取dns 信息,查询网站的主机地址信息(A记录),域名服务器和邮件交换记录(NS和MX),在域名服务器上执行axfr(区域传送)请求,然后通过Google得到扩展域名信息,提取子域名并查询,当查询到 C 类地址的时候还会做反向的域名查询,以发现更多的域名,利用字典完成DNS爆破( /usr/share/dnsenum/dns.txt ,可替换此默认字典,国内国外的dns字典还是有差别的)。

常用方法:

详细的方法用dnsenum -h可以获取,这里只介绍常用的。

(1)dnsenum example.com

A记录和NS记录对应多个IP,可以判断使用了CDN,MX记录和TXT记录可能是真实IP或C段。

(2)dnsenum example.com -f /usr/share/dnsenum/dns.txt(dns字典绝对路径) --noreverse(跳过反向查询,节省时间)

读取已知子域名,利用dns字典进行暴力破解,跑出更多子域名。

(3)dnsenum example.com -f /usr/share/dnsenum/dns.txt(dns字典绝对路径) -t 1 --noreverse -o

-t参数代表超时时间,设置1秒节省时间,-o参数代表将结果输出为文件,便于查看和整理。

(4)域传送漏洞现在比较少,第一种方法里会自动检测的,留意一下就好。C类地址和IP块也挑出来整理好,以后扩大信息收集范围的时候再用。

nslookup

详细的方法用man nslookup可以获取,这里只介绍常用的。

(1)非交互式

直接查询域名

nslookup example.com

多个IP可以认为有cdn

指定dns服务器

nslookup example.com 8.8.8.8

从国内访问国内网站时,大多会被cdn解析,但是如果用国外的dns服务器,可能直接得到真实IP,用不同的dns服务器对比。

查询特定类型记录 nslookup -type=mx/ns/soa example.com

(2)交互式

进入交互模式:

直接输入nslookup命令,不加任何参数,则直接进入交互模式,此时nslookup会连接到默认的域名服务器(/etc/resolv.conf的第一个dns地址)。

输入nslookup - 127.0.0.1。

支持选定不同域名服务器,需要设置第一个参数为“-”,然后第二个参数是设置要连接的域名服务器主机名或IP地址。例如可以设置本机为域名服务器nslookup - 127.0.0.1

进入交互模式以后:

直接输入域名或set type=a/ns/mx/soa....

dig

dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。

详细的方法用dig -h可以获取,这里只介绍常用的。

(1)dig example.com a/mx/ns....

(2)dig +trace example.com

从根域开始显示是如何一步步解析出IP地址的

(3)dig +short example.com 以上的简化版,直接出最后结果

layer子域名挖掘机

比较好的主动式挖掘工具,windows平台下使用,还可同时探测子域名ip、端口、中间件版本以及多层子域名挖掘。

各种在线子域名挖掘网站

优点:速度快,dns解析压力小

缺点:字典不能自定义,查了什么内容第三方知道,有时候还不准

fuzzdomain/dirbuster

类似layer,但速度比layer快很多,且支持任意数量字母数字的fuzz,不管是目录扫描、后台扫描、Web漏洞模糊测试都能灵活应对,有的目标子域名很具有规律性,用这个就比较方便。

fofa/shodan/zoomeye等资产搜索引擎

用已经收集到的信息输入进去,有时候也能发现意料之外的域名,有些目标系统除了中文名也有英文名和简写,利用旁站、C段进行查询,也可能有收获。

反查操作

根据已经收集到的注册人名、邮箱、手机号等信息进行反查,看看还有没有其他资产。站长之家、企查查、github等。

根据ip反查历史域名,根据域名反查历史注册ip。

反查往往是拓宽信息收集面的重要手段,自己在信息收集的时候,往往就是越收集越多,正向循环的一个过程。

3.真实IP

海外ping

因为CDN的原因,国内的站用国外ping,反之亦然,可能获取真实IP。

有些子域名可能由于成本的原因没有用CDN,所以要尽可能的多收集子域名,从而有效判断真实ip。

zoomeye/fofa/shodan

同上反查操作,能找出一批IP,再进行鉴别。

历史解析ip和ip的历史解析域名

一般来说,ip和域名总有更换绑定的历史记录,在已知域名、子域名、ip的情况下,把所有域名和ip进行历史解析查询,多用国外dns,这里不赘述,详见我的渗透流程归纳。

目标发邮件得到ip

利用邮件订阅、注册、密码找回等一切能让对方服务器给自己发邮件的方式获取,邮件的源码和头部信息可能就有用。

注意:必须是目标自己的邮件服务器,第三方或公共邮件服务器是没有用的。

旁站和C段

有一定防范意识的目标,一般都会将自己的web单独托管,如果有旁站或C段看起来比较奇怪,基本也可以认为不是真实IP。

浏览器插件

DNS Checker,非常好用的插件

集成大量dns相关查询工具,进入以后自己体会

获得真实IP后,进一步对端口服务、中间件、旁站和C段进行信息收集,这个工程也比较大,详见我的渗透流程归纳。

4.敏感信息、目录和文件

你应该掌握的shegongku

TG
https://dehashed.com/
https://aleph.occrp.org/
https://www.blackbookonline.info/

查询用户注册信息

REG007

公开漏洞库

国内

  • 国家信息安全漏洞库
  • 国家信息安全漏洞共享平台
  • SeeBug
  • 信息安全漏洞门户 VULHUB
  • 数字观星
  • NSFOCUS绿盟科技
  • BugScan–漏洞插件社区
  • 漏洞列表 | 教育行业漏洞报告平台(Beta)
  • 工控系统行业漏洞库平台
  • exp库-打造中文最大exploit库
  • 乌云漏洞库

国外

  • Exploit-db
  • Sploitus | Exploit & Hacktool Search Engine
  • packetstorm
  • SecurityFocus
  • cxsecurity
  • rapid7 Vulnerability & Exploit Database
  • Most recent entries – CVE-Search
  • CVE security vulnerability database. Security vulnerabilities, exploits
  • CVE mitre – Search CVE List
  • 美国官方工控数据库 ICS-CERT Landing | CISA
  • 路由器漏洞搜索 Routerpwn – One click exploits, generators, tools, news, vulnerabilities, poc

源码、文件泄露、敏感信息

详见渗透流程归纳,这里只提供思路。

github、gitee、gitlab等代码托管平台(目标系统,他们的技术人员github和个人博客也是很重要的一条线索)

搜索引擎hack

网盘文件聚合搜索引擎

目标相关应用

目标网站APP应用,用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP等信息

七麦数据:通过当前APP查询同开发商应用,得到目标所有APP应用(同开发商应用)

AppStore:通过当前APP查询同开发商应用,得到目标所有APP应用(同开发人员)

天眼查和企查查:获取目标的公众号、微博、备案站点、软件著作权等,可以结合社工拓展更多资产

三、运用信息有什么思路?

1.寻根溯源

一定要拿到真实ip,渗透最终如果能getshell当然是最好的,只有拿到的ip是真实ip,shell写入的才是目标系统,才能获取重要的数据。

而且,比较大的系统真实ip往往不唯一,甚至可能是完全不同的机房,信息收集的时候要注意甄别。

真实ip扫出的端口和banner信息有利用的价值,CDN分发的则没有,可以get的点明显少很多。

在拿ip的过程中,尤其注意从ip的历史解析域名和域名的历史解析ip下手,全网扫描的dns扫描工具比较多,除非从建站一开始就做好了CDN,否则一定会有蛛丝马迹被记录到。

可以说,信息收集最基础和最根本的就是找准真实ip。

2.延长信息链

信息收集时,要注意把现有的信息链尽可能的延长,每一条信息都尽可能的延展开来,继续进行搜集,就像苍天大树由主干向上不断延展、开枝散叶。

3.形成信息收集的正循环

在信息收集的全流程中,总能不断发现新的ip和域名,而新的ip和域名则可以发现新的敏感信息和内容,也可以用来反查历史解析和社工,实际操作的过程中,你会发现会越收集越多,信息网织起来越来越密,对目标的了解更加全面和深入。

这样就不能等全部信息收集完再开始测试了,很多比较脆弱的资产有明显的特征,经验丰富的工程师比较容易识别出来

比如:

UI设计比较过时和过于简单的页面
搭建框架比较老旧的页面
没有验证码、验证码过于简单或验证码没有生存期的页面
数据参数过滤不严格的站点
交互信息量比较大的站点...

4 个赞