前言
半年前,有幸拜读亮神的渗透测试笔记,其中给我印象最深的一句话是:“渗透测试的本质就是信息收集”。当时我还想不明白为什么,总觉得技术上的精进比信息收集重要得多,半年后回过头来看,技术是有瓶颈期的,至少对绝大多数人来说如此,最终,你能不能拿下目标,很大程度上取决于信息收集,也可以说取决于你对目标的了解的有多全 、有多深
一、收集什么信息?
1.域名信息
关于域名信息,不得不提whois查询和备案查询,查来查去,直接讲目标,要的就是注册商、注册人、邮件、DNS解析服务器、注册人联系电话、地理位置等和目标自身息息相关的要素,具体的收集方法,详见我的渗透流程归纳文章,收集到以后的用法在本文第三大点作详细描述
2.子域名
关于子域名,简单来讲,往往对应着目标系统的不同业务资产,教育类的可能包括教务系统、邮件系统、学生网课平台、学历信息平台、报名系统等,政府类的可能包括OA办公系统、文件存储系统、邮件系统等等。可以说,收集到的子域名越多,你对目标的了解就越全面,对目标的运行架构和框架就越熟悉,能够测试的资产就越多
3.真实IP
关于真实IP,他不仅托管着你一开始拿到的域名的资产,他的旁站和C段甚至机房信息都有可能为你带来意外的惊喜。拿到真实IP后,就可以对该IP的端口信息(开放端口和服务漏洞)、指纹信
息(中间件版本,历史漏洞)、历史解析域名和域名的历史解析IP(拓展出更多资产)做进一步的探测
4.敏感信息 目录和文件
对所有的子域名,都要收集他们的敏感信息、目录和文件,可能会包括员工个人信息、waf、登陆点、后台、历史未删除页面、物理路径、源码备份、可用于社工的信息泄露
5.社工信息
社工技巧
查看注册的网站:0xreg reg007
知道账号去已注册的网站找回密码,可以看到打码后的用户名、邮箱、真实姓名等信息,如果运气好没准能从数据包或 html 中找到未被打码的信息,从这些方面判断用户是否注册过
找回密码
输入账号,如果进入下一步了则该账号存在
登录
输入账号和密码,如果提示密码错误,则表示该用户已存在
注册
填写账号时一般网站会去检测该账号是否已存在,如果已存在则会提示不可重复注册
知道 QQ
通过 QQ 邮箱和 QQ 号搜索支付宝、淘宝账号等其他可能的常用平台
去腾讯 \ 新浪微博搜索
通过微信搜索
查看 QQ 空间 \ 相册 \ 地区 \ 星座 \ 生日 \ 昵称 (后续构建字典以及跨平台搜集)
通过说说、留言、日志找到其好友
加 QQ 钓鱼 \ 共同好友 \ 可能认识的人
知道手机号
搜索 QQ、微信、钉钉等社交账号
在比较火的一些 APP 和网站上注册或忘记密码来判断是否注册过账号
查询支付宝、QQ 交易账号,尝试输入常见姓氏获取名字 (转账到该手机号,会提示输入姓氏验证)
通过对方的职业、兴趣找到该领域知名度较高的社交网站反查
根据在 QQ 空间、朋友圈等动态用百度识图识别照片
在微博、ins、Twitter、fb、百度贴吧搜索相近关键字,按地域、年龄、男女、用户名等筛选
留意社交动态
发布时间线
l使用什么客户端 iPhone Android 还是浏览器
l针对客户端预先制定 exploit
l注意每一条链接 / 图片 / 视频链接可能包含用户 ID
l图片可能包含水印,exif 可能会有 GPS 定位和手机类型,图片内容特征
l视频也有可能有水印暴露社交账号 ID, 拍摄地点
l从最早发布的动态看起,会有很大收获
l一般得到一个账号的密码就相当于得到了其他账号的密码
l一般人不同账号的用户名都是相同或相近的
l一般人的社交账号头像用的都是一样的
l尝试破解社保、公积金账号、sfz号(出生地、生日、星座、派出所代码)
虫部落快搜之文件搜索:
https://search.chongbuluo.com/
qq 群、群文件、贴吧论坛、目标自用论坛等社交平台钓鱼和信息泄露 (爬邮箱等信息)
电子邮件伪造、网络钓鱼
下载恶意程序,输入敏感信息
大部分信息可以用来生成密码字典
对人:说服对方达成一致、恐吓对方(敏感词、漏洞、病毒、权威机构名称),钓鱼获取信息
二、用什么工具收集?
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,非常好用的插件,https://dnschecker.org/集成大量dns相关查询工具
获得真实IP后,进一步对端口服务、中间件、旁站和C段进行信息收集,这个工程也比较大,详见我的渗透流程归纳
4.敏感信息、目录和文件
查询用户注册信息
lhttps://checkusernames.com/
lhttps://www.reg007.com/
lhttps://knowem.com/
lhttps://namechk.com/
公开漏洞库
国内
lhttp://www.cnnvd.org.cn/
lhttps://www.cnvd.org.cn/
lhttps://www.seebug.org/?ref=www
lhttp://vulhub.org.cn/view/global
lhttps://poc.shuziguanxing.com/#/
lhttp://www.nsfocus.net/index.php?act=sec_bug
lhttp://www.bugscan.net/source/template/vulns/
lhttps://src.sjtu.edu.cn/list/
lhttp://ivd.winicssec.com/
lhttp://www.expku.com/
lhttps://github.com/hanc00l/wooyun_public
国外
lhttps://www.exploit-db.com/
lhttps://sploitus.com/
lhttps://packetstormsecurity.org/
lhttps://www.securityfocus.com/bid
lhttps://cxsecurity.com/exploit/
lhttps://www.rapid7.com/db/
lhttps://cve.circl.lu/
lhttps://www.cvedetails.com/
lhttps://cve.mitre.org/cve/search_cve_list.html
lhttps://www.us-cert.gov/ics
lhttp://www.routerpwn.com/
源码、文件泄露:敏感
这里只提供思路,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设计比较过时和过于简单的页面、搭建框架比较老旧的页面、没有验证码或验证码没有生存期的页面、数据参数过滤不严格的站点、交互信息量比较大的站点
作者Mr.M,排版&适配38.5
Github:https://hackerx2021.github.io/
来源:freebuf.com 2021-03-19 18:16:40 by: 天禧信安385
请登录后发表评论
注册