渗透测试资产信息收集
渗透的本质是信息收集
信息收集也叫做资产收集
信息收集是渗透测试的前期主要工作,是非常重要的环节,收集足够多的信息才能方便接下来的测试,信息收集主要是收集网站的域名信息、子域名信息、目标网站信息、目标网站真实IP、敏感/目录文件、开放端口和中间件信息等等。通过各种渠道和手段尽可能收集到多的关于这个站点的信息,有助于我们更多的去找到渗透点,突破口。
信息收集的分类
- 服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
- 网站指纹识别(包括,cms,cdn,证书等) dns记录
- whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
- 子域名收集,旁站,C段等
- google hacking针对化搜索,word/电子表格/pdf文件,中间件版本,弱口令扫描等
- 扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等
- 传输协议,通用漏洞,exp,github源码等
常见的方法
- whois查询
域名在注册的时候 需要填入个人或者企业信息 如果没有设置隐藏属性可以查询出来 通过备案号 查询个人或者企业信息 也可以whois反查注册人 邮箱 电话 机构 反查更多得域名和需要得信息。 - 收集子域名
域名分为根域名和子域名,相对而言子域名的服务更好突破 - 端口扫描
服务器需要开放服务,就必须开启端口,常见的端口是tcp 和udp两种类型
范围 0-65535 通过扫得到的端口,访问服务 规划下一步渗透。 - 查找真实ip
企业的网站,为了提高访问速度,或者避免黑客攻击,用了cdn服务,用了cdn之后真实服务器ip会被隐藏。 - 探测旁站及C段
旁站:一个服务器上有多个网站 通过ip查询服务器上的网站c段:查找同一个段 服务器上的网站。可以找到同样网站的类型和服务器,也可以获取同段服务器进行下一步渗透。 - 网络空间搜索引擎
通过这些引擎查找网站或者服务器的信息,进行下一步渗透。 - 扫描敏感目录/文件
通过扫描目录和文件,大致了解网站的结构,获取突破点,比如后台,文件备份,上传点。 - 指纹识别
获取网站的版本,属于那些cms管理系统,查找漏洞exp,下载cms进行代码审计。
在线whois查询
通过whois来对域名信息进行查询,可以查到注册商、注册人、邮箱、DNS解析服务器、注册人联系电话等,因为有些网站信息查得到,有些网站信息查不到,所以推荐以下信息比较全的查询网站,直接输入目标站点即可查询到相关信息。
域名注册信息
1 | 站长之家域名WHOIS信息查询地址 http://whois.chinaz.com/ |
在线网站备案查询
网站备案信息是根据国家法律法规规定,由网站所有者向国家有关部门申请的备案,如果需要查询企业备案信息(单位名称、备案编号、网站负责人、电子邮箱、联系电话、法人等),推荐以下网站查询
1 | 天眼查 https://www.tianyancha.com/ |
一些关于域名的前置小知识
域名的级别
acbug.com 根域名 顶级域名
mail.acbug.com 子域名 也叫二级域名
ctf.mail.acbug.com 子域名 也叫三级域名 四级如此类推
域名的解析类型
域名解析就是国际域名或者国内域名以及中文域名等域名申请后做的到P地址的转换过程。P地址是网路上标识您站点的数字地址,为了简单好记,采用域名来代替i地址标识站点地址。域名的解析工作由DNS服务器完成。
相应的就有一些关于域名的记录
A记录、别名记录(CNAME)、MX记录、TXT记录、NS记录:
A (Address) 记录:
是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置您域名的二级域名。
别名(CNAME)记录:
也被称为规范名字。这种记录允许您将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为“host.mydomain.com”(A记录)。它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL。这两个别名的全称就是www.mydomain.com
和mail.mydomain.com
。实际上他们都指向host.mydomain.com
。
同样的方法可以用于当您拥有多个域名需要指向同一服务器IP,此时您就可以将一个域名做A记录指向服务器IP然后将其他的域名做别名到之前做A记录的域名上,那么当您的服务器IP地址变更时您就可以不必麻烦的一个一个域名更改指向了 只需要更改做A记录的那个域名其他做别名的那些域名的指向也将自动更改到新的IP地址上了。
如何检测CNAME记录?
- 进入命令状态;(开始菜单 - 运行 - CMD[回车]);
- 输入命令” nslookup -q=cname 这里填写对应的域名或二级域名”,查看返回的结果与设置的是否一致即可。
MX(Mail Exchanger)记录:
是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据 收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com
时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
什么是TXT记录?:
TXT记录一般指为某个主机名或域名设置的说明,如:
- admin IN TXT “jack, mobile:13800138000”;
- mail IN TXT “邮件主机, 存放在xxx ,管理人:AAA”,Jim IN TXT “contact:
abc@mailserver.com
也就是您可以设置 TXT ,以便使别人联系到您。
如何检测TXT记录?
- 进入命令状态;(开始菜单 - 运行 - CMD[回车]);
- 输入命令” nslookup -q=txt 这里填写对应的域名或二级域名”,查看返回的结果与设置的是否一致即可。
什么是NS记录?
ns记录全称为Name Server 是一种域名服务器记录,用来明确当前你的域名是由哪个DNS服务器来进行解析的。
旁站和C段
旁站往往存在业务功能站点,建议先收集已有IP的旁站,再探测C段,确认C段目标后,再在C段的基础上再收集一次旁站。
旁站是和已知目标站点在同一服务器但不同端口的站点,通过以下方法搜索到旁站后,先访问一下确定是不是自己需要的站点信息。
利用姿势
同服查询
站长之家 同ip网站查询 http://stool.chinaz.com/same
https://chapangzhan.com/
http://dns.bugscaner.com/
google hacking https://blog.csdn.net/qq_36119192/article/details/84029809
c端查询
网络空间搜索引擎:
FOFA ip=’x.x.x.x/24’ shadan net:’x.x.x.x/24’
该方法效率较高,并能够直观地看到站点标题,但也有不常见端口未收录的情况,虽然这种情况很少,但之后补充资产的时候可以用下面的方法nmap扫描再收集一遍。
在线c段 webscan.cc
webscan.cc https://c.webscan.cc/
Nmap,Msscan扫描等
例如:nmap -p 80,443,8000,8080 -Pn 192.168.0.0/24
注意:探测C段时一定要确认ip是否归属于目标,因为一个C段中的所有ip不一定全部属于目标。
查找厂商ip段
http://ipwhois.cnnic.net.cn/index.jsp
收集子域名
子域名作用
收集子域名可以扩大测试范围,同一域名下的二级域名都属于目标范围。
常用收集姿势
子域名中的常见资产类型一般包括办公系统,邮箱系统,论坛,商城,其他管理系统,网站管理后台也有可能出现子域名中。
首先找到目标站点,在官网中可能会找到相关资产(多为办公系统,邮箱系统等),关注一下页面底部,也许有管理后台等收获。
查找目标域名信息的方法有:
在线网站:
站长之家,直接搜索名称或者网站域名即可查看相关信息: http://tool.chinaz.com/
钟馗之眼 site=域名即可 https://www.zoomeye.org/
FOFA搜索子域名,fofa直接输入 domain=”baidu.com” https://fofa.so/
子域名在线查询 https://phpinfo.me/domain/ https://www.t1h2ua.cn/tools/
ip183 https://site.ip138.com/acbug.cn/ 可查询子域名、ip、备案等。
Hackertarget查询子域名 https://hackertarget.com/find-dns-host-records/ 注意:通过该方法查询子域名可以得到一个目标大概的ip段,接下来可以通过ip来收集信息。
360测绘空间 https://quake.360.cn/ domain:"*.freebuf.com"
工具软件:
Layer子域名挖掘机、SubDomainBrute、Sublist3r等等
提示:以上方法为爆破子域名,由于字典比较强大,所以效率较高,很依赖字典。
OneForALL(强推)1
2
3
4
5
6
7
8
9
10
11
12
13
14
15pip3 install --user -r requirements.txt -i [https://mirrors.aliyun.com/pypi/simple/](https://mirrors.aliyun.com/pypi/simple/)
python3 oneforall.py --target baidu.com run /*收集*/
爆破子域名
Example:
brute.py --target domain.com --word True run
brute.py --targets ./domains.txt --word True run
brute.py --target domain.com --word True --concurrent 2000 run
brute.py --target domain.com --word True --wordlist subnames.txt run
brute.py --target domain.com --word True --recursive True --depth 2 run
brute.py --target d.com --fuzz True --place m.*.d.com --rule '[a-z]' run
brute.py --target d.com --fuzz True --place m.*.d.com --fuzzlist subnames.txt run
Wydomain1
2dnsburte.py -d aliyun.com -f dnspod.csv -o aliyun.log
wydomain.py -d aliyun.com
FuzzDomain
隐藏域名hosts碰撞
隐藏资产探测-hosts碰撞 https://mp.weixin.qq.com/s/fuASZODw1rLvgT7GySMC8Q
很多时候访问目标资产IP响应多为:401、403、404、500,但是用域名请求却能返回正常的业务系统(禁止IP直接访问),因为这大多数都是需要绑定host才能正常请求访问的 (目前互联网公司基本的做法)(域名删除了A记录,但是反代的配置未更新),那么我们就可以通过收集到的目标的 域名 和 目标资产 的IP段组合起来,以 IP段+域名 的形式进行捆绑碰撞,就能发现很多有意思的东西。
在发送http请求的时候,对域名和IP列表进行配对,然后遍历发送请求 (就相当于修改了本地的hosts文件一样),并把相应的title和响应包大小拿回 来做对比,即可快速发现一些隐蔽的资产。
进行hosts碰撞需要目标的域名和目标的相关IP作为字典
域名就不说了
相关IP来源有:
目标域名历史解析IP
https://site.ip138.com/
https://ipchaxun.com/
ip正则
https://www.aicesu.cn/reg/
SSL/TLS证书查询
SSL/TLS证书通常包含域名、子域名和邮件地址等信息,结合证书中的信息,可以更快速地定位到目标资产,获取到更多目标资产的相关信息。(强推)
https://myssl.com/
https://crt.sh
https://censys.io
https://developers.facebook.com/tools/ct/
https://google.com/transparencyreport/https/ct/
SSL证书搜索引擎:
https://certdb.com/domain/github.com
https://crt.sh/?Identity=%.moonsec.com
https://censys.io/
GetDomainsBySSL.py
查找真实ip
如果目标网站使用了CDN,使用了cdn真实的ip会被隐藏,如果要查找真实的服务器就必须获取真实的ip,根据这个ip继续查询旁站。
注意:很多时候,主站虽然是用了CDN,但子域名可能没有使用CDN,如果主站和子域名在一个ip段中,那么找到子域名的真实ip也是一种途径。
cdn探测
超级Ping
http://ping.chinaz.com/
http://ping.aizhan.com/
http://www.17ec.com/
绕过cdn找真实ip
查询历史DNS解析记录
在查询到的历史解析记录中,最早的历史解析ip很有可能记录的就是真实ip,快速查找真实IP推荐此方法,但并不是所有网站都能查到。
DNSDB https://dnsdb.io/zh-cn/
viewdns https://viewdns.info/
微步在线 https://x.threatbook.cn/
Ipip.net https://tools.ipip.net/cdn.php
找文件
如果目标网站存在phpinfo泄露等,可以在phpinfo中的SERVER_ADDR或_SERVER[“SERVER_ADDR”]找到真实ip
子域名解析
通过寻找子域名再通过子域名查询解析的服务器的P可以是真实的服务器
在线子域名查询
https://securitytrails.com/list/apex_domain/t00ls.net
http://tool.chinaz.com/subdomain/t00ls.net
https://phpinfo.me/domain/
找到子域名继续确认子域名没有cdn的情况下批量进行域名解析查询,有cdn的情况继续查询历史。
域名批量解析
http://tools.bugscaner.com/domain2ip.html
邮件发送
如果网站有邮箱发送功能可以试,再密码找回邮箱头文件可能是服务器的真实ip。
国外dns获取真实IP
部分cdn只针对国内的ip访问,如果国外ip访问域名 即可获取真实IP
全世界DNS地址:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16http://www.ab173.com/dns/dns_world.php
https://dnsdumpster.com/
https://dnshistory.org/
http://whoisrequest.com/history/
https://completedns.com/dns-history/
http://dnstrails.com/
https://who.is/domain-history/
http://research.domaintools.com/research/hosting-history/ http://site.ip138.com/
http://viewdns.info/iphistory/
https://dnsdb.io/zh-cn/
https://www.virustotal.com/
https://x.threatbook.cn/
http://viewdns.info/
http://www.17ce.com/
http://toolbar.netcraft.com/site_report?url= https://securitytrails.com/
https://tools.ipip.net/cdn.php
还要利用ssl证书,fofa等就不再叙述了。
绕过CDN的多种方法具体可以参考 https://www.cnblogs.com/qiudabai/p/9763739.html
端口扫描
当确定了目标大概的ip段后,可以先对ip的开放端口进行探测,一些特定服务可能开起在默认端口上,探测开放端口有利于快速收集目标资产,找到目标网站的其他功能站点。
在线端口检测
端口扫描器
msscan端口扫描 https://gitee.com/youshusoft/GoScanner/
1 | msscan -p 1-65535 ip --rate=1000 |
nmap扫描端口和探测端口信息
常用参数,如:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15nmap -sV 192.168.0.2
nmap -sT 92.168.0.2
nmap -Pn -A -sC 192.168.0.2
nmap -sU -sT -p0-65535 192.168.122.1
用于扫描目标主机服务版本号与开放的端口
如果需要扫描多个ip或ip段,可以将他们保存到一个txt文件中
nmap -iL ip.txt
来扫描列表中所有的ip。
Nmap为端口探测最常用的方法,操作方便,输出结果非常直观。
还有御剑,zmap等
渗透端口
21,22,23,1433,152,3306,3389,5432,5900,50070,50030,50000,27017,27018,11211,9200,9300,7001,7002,6379,5984,873,443,8000-9090,80-89,80,10000,8888,8649,8083,8080,8089,9090,7778,7001,7002,6082,5984,4440,3312,3311,3128,2601,2604,2222,2082,2083,389,88,512,513,514,1025,111,1521,445,135,139,53
渗透常见端口及对应服务
1 | 1.web类(web漏洞/敏感目录) |
常见的端口和攻击方法
网络空间搜索引擎
如果想要在短时间内快速收集资产,那么利用网络空间搜索引擎是不错的选择,可以直观地看到旁站,端口,站点标题,IP等信息,点击列举出站点可以直接访问,以此来判断是否为自己需要的站点信息。FOFA的常用语法
1 | 1、同IP旁站:ip="192.168.0.1" |
扫描敏感目录/文件
扫描敏感目录需要强大的字典,需要平时积累,拥有强大的字典能够更高效地找出网站的管理后台,敏感文件常见的如.git文件泄露,.svn文件泄露,phpinfo泄露等,这一步一半交给各类扫描器就可以了,将目标站点输入到域名中,选择对应字典类型,就可以开始扫描了,十分方便。
目录扫描工具
御剑 https://www.fujieace.com/hacker/tools/yujian.html
7kbstorm https://github.com/7kbstorm/7kbscan-WebPathBrute
1bbscan https://github.com/lijiejie/BBScan
1 | 使用示例: |
–network 参数用于设置子网掩码,小公司设为28~30,中等规模公司设置26~28,大公司设为24~26
当然,尽量避免设为24,扫描过于耗时,除非是想在各SRC多刷几个漏洞。
该插件是从内部扫描器中抽离出来的,感谢 Jekkay Hu34538980@qq.com
如果你有非常有用的规则,请找几个网站验证测试后,再 pull request
脚本还会优化,接下来的事:增加有用规则,将规则更好地分类,细化,后续可以直接从rules\request 文件夹中导入HTTP_request,优化扫描逻辑
dirmap https://github.com/H4ckForJob/dirmap
1 | 单个目标 |
dirsearch https://gitee.com/Abaomianguan/dirsearch.git
1 | python3 dirsearch.py -u http://m.scabjd.com/ -e * |
gobuster
1 | sudo apt-get install gobuster |
敏感网站文件
1 | 1. robots.txt |
扫描网页备份
例如1
2
3
4
5
6
7config.php
config.php~
config.php.bak
config.php.swp
config.php.rar
conig.php.tar.gz
www.zip
网站头信息收集
1、中间件 :web服务【Web Servers】 apache iis7 iis7.5 iis8 nginx WebLogic tomcat
2.、网站组件: js组件jquery、vue 页面的布局bootstrap
在线查询
http://whatweb.bugscaner.com/look/
火狐的插件 Wappalyzer(力推)
敏感文件搜索
GitHub搜索
1 | in:name baidu #标题搜索含有关键字baidu |
github文档:
https://docs.github.com/en/search-github/searching-on-github/searching-for-repositories
搜索某些系统的密码
https://github.com/search?q=smtp+58.com+password+3306&type=Code
github 关键词监控
https://github.com/0xbug/Hawkeye
https://github.com/MiSecurity/x-patrol
https://github.com/VKSRC/Github-Monitor
1 | 谷歌搜索 |
https://blog.csdn.net/qq_36119192/article/details/99690742
http://www.361way.com/github-hack/6284.html
https://docs.github.com/cn/github/searching-for-information-on-github/searching-code
https://github.com/search?q=smtp+bilibili.com&type=code
Google-hacking
site: 域名
inurl: url中存在的关键字网页
intext:网页正文中的关键词
filetype: 指定文件类型
漏洞库
cnvd vuldb cve 等等
https://wooyun.website/
网盘搜索
凌云搜索: https://www.lingfengyun.com/
盘多多: http://www.panduoduo.net/
盘搜搜: http://www.pansoso.com/
盘搜: http://www.pansou.com/
社工库
名字/常用id/邮箱/密码/电话 登录 网盘 网站 邮箱 找敏感信息
tg机器人 大部分收费查询
网站注册信息
www.reg007.com 查询网站注册信息
一般是配合社工库一起来使用。
js敏感信息
- 网站的url连接写到js里面
- js的api接口 里面包含用户信息 比如 账号和密码
jsfinder
https://gitee.com/kn1fes/JSFinder
1 | python3 JSFinder.py -u [http://www.mi.com](http://www.mi.com) |
当你想获取更多信息的时候,可以使用-d进行深度爬取来获得更多内容,并使用命令 -ou, -os来指定URL和子域名所保存的文件名
批量指定URL和JS链接来获取里面的URL。
指定URL:
python JSFinder.py -f text.txt
指定JS:
python JSFinder.py -f text.txt -j
Packer-Fuzzer
寻找网站交互接口 授权key
随着WEB前端打包工具的流行,您在日常渗透测试、安全服务中是否遇到越来越多以Webpack打包器为代表的网站?这类打包器会将整站的API和API参数打包在一起供Web集中调用,这也便于我们快速发现网站的功能和API清单,但往往这些打包器所生成的JS文件数量异常之多并且总JS代码量异常庞大(多达上万行),这给我们的手工测试带来了极大的不便,Packer Fuzzer软件应运而生。
本工具支持自动模糊提取对应目标站点的API以及API对应的参数内容,并支持对:未授权访问、敏感信息泄露、CORS、SQL注入、水平越权、弱口令、任意文件上传七大漏洞进行模糊高效的快速检测。在扫描结束之后,本工具还支持自动生成扫描报告,您可以选择便于分析的HTML版本以及较为正规的doc、pdf、txt版本。
1 | sudo apt-get install nodejs && sudo apt-get install npm |
SecretFinder
一款基于Python脚本的JavaScript敏感信息搜索工具
https://gitee.com/mucn/SecretFinder
1 | python3 SecretFinder.py -i https://www.moonsec.com/ -e |
cms识别
收集好网站信息之后,应该对网站进行指纹识别,通过识别指纹,确定目标的cms及版本,方便制定下一步的测试计划,可以用公开的poc或自己累积的对应手法等进行正式的渗透测试。
在线cms识别
云悉
http://www.yunsee.cn/info.html
潮汐指纹
http://finger.tidesec.net/
http://whatweb.bugscaner.com/look/
https://github.com/search?q=cms识别
工具识别
whatcms kali下
御剑cms识别
https://github.com/ldbfpiaoran/cmscan
https://github.com/theLSA/cmsIdentification/
非常规操作
1、如果找到了目标的一处资产,但是对目标其他资产的收集无处下手时,可以查看一下该站点的body里是否有目标的特征,然后利用网络空间搜索引擎(如fofa等)对该特征进行搜索,如:body=”XX公司”或body=”baidu”等。
该方式一般适用于特征明显,资产数量较多的目标,并且很多时候效果拔群。
2、当通过上述方式的找到test.com的特征后,再进行body的搜索,然后再搜索到test.com的时候,此时fofa上显示的ip大概率为test.com的真实IP。
3、如果需要对政府网站作为目标,那么在批量获取网站首页的时候,可以用上
http://114.55.181.28/databaseInfo/index
之后可以结合上一步的方法进行进一步的信息收集。
移动资产收集
微信小程序支付宝小程序
现在很多企业都有小程序,可以关注企业的微信公众号或者支付宝小程序,或关注运营相关人员,查看朋友圈,获取小程序。
https://weixin.sogou.com/weixin?type=1&ie=utf8&query=%E6%8B%BC%E5%A4%9A%E5%A4%9A
app软件搜索
资产收集神器
ARL(Asset Reconnaissance Lighthouse)资产侦察灯塔系统
https://github.com/TophantTechnology/ARL]
AssetsHunter
https://github.com/rabbitmask/AssetsHunter
一款用于src资产信息收集的工具
https://github.com/sp4rkw/Reaper
domain_hunter_pro
https://github.com/bit4woo/domain_hunter_pro
LangSrcCurise
https://github.com/shellsec/LangSrcCurise
网段资产
https://github.com/colodoo/midscan
字典工具
Fuzz字典推荐: https://github.com/TheKingOfDuck/fuzzDicts
BurpCollector(BurpSuite参数收集插件): https://github.com/TEag1e/BurpCollector
Wfuzz: https://github.com/xmendez/wfuzz
LinkFinder: https://github.com/GerbenJavado/LinkFinder
PoCBox: https://github.com/Acmesec/PoCBox