红队篇之信息收集

作者:bzlx 2021/09/16 09:14:17
https://xz.aliyun.com/t/10236

前段时间一直在做java,渗透工具都要生锈了。项目又来了,赶紧磨一磨我的武士刀。总结一下打点的思路,以及对一些自动化工具做一下总结。
当我们拿到一个目标的时候,有时候做安服渗透项目,大多数时候都是直接给了一个具体的网站或者APP。但是当我们作为红队的时候,更多的时候可能是给你一个公司的名字等。这种时候信息收集就不进进局限于网站了。可能要从头开始收集。下面说一下信息收集的方式方法。

企业信息收集

拿到一个目标,不考虑钓鱼的情况下。如果正常从web入手,至少需要收集以下的信息。
一:公司级别
(1)公司的域名
(2)公司的子域名
(3)全资子公司(可能从下级单位打上去,但是光打了下级算不算分得看裁判和规则怎么评估)
(4)公司的ip信息(大公司可以直接跑C段)
一般经过上面的收集以后,我们能够获取到一系列的ip,域名信息。此时需要针对这些进行排除(比如说云上的资产等或者存在cdn的资产,cdn需要寻找真实ip绕过云waf,云上很可能触发告警要小心一点)。
二:ip级别
当我们拿到了一系列的ip和域名以后,对于已经确定的ip,需要进行至少一下的信息收集
(1)ip是否为真实ip
(2)ip开启了哪些端口,可能存在哪些漏洞(外网redis有时候看到的多,但是真实情况下碰到的确实不多,很多时候其实都是web和钓鱼撕开口子的)
(3)对于web,至少需要收集框架,路径,登录接口,js中的敏感信息,网站中间件,服务器操作系统等。大多数时候其实都是文件上传,直接rce或者寻找到了敏感信息等拿下来的,对于之前碰到过一次有个队伍打供应链下载源码审计的这种属于非常态暂不讨论。
三:用户级别
(1)用户级别主要是涉及拿到一些用户的用户名等。便于进行暴力破解。这种说的少点因为太多了,github,google语法,官网,看官网邮箱格式,根据公司名字猜,还有公告里泄露人名,以及一些通用的如公司首字母+数字等。
下面对一些收集的方法进行具体的说明。


公司级别
获取目标域名

(1)直接百度公司,看看有无官网,官网一般是主域名
(2)查看天眼查,企查查,域名备案等获取主域名
(3)利用whois查询,whois反查获取域名相关信息
(4)利用app查询公司的域名。
(5)利用股权穿刺图查看公司的子公司域名
http://whois.chinaz.com/ //whois查询
https://beian.miit.gov.cn/ // 域名备案查询
https://www.qcc.com/ //企查查
https://www.qixin.com/ //启信宝
http://icp.chinaz.com/ //站长工具
https://www.tianyancha.com/ //天眼查
https://aiqicha.baidu.com/ //爱企查
说一个小的tips,这里没有提到搜索引擎,可以再fofa或者zoomeye shodan上面查一下公司名字,因为更新的原因可能有些时候域名等无法访问以及更换了,但是ip段还在,如果找到了ip,也能跑一下C段,说不定可以拿到主域名,拿到主域名的原因是在于跑一下子域名。

当我们拿到域名以后。先不要急着跑子域名。可以看一下ip的信息。这个其实很好说,全球ping一下看看有无cdn,搜索一下ip看看是否属于某某云。
http://ping.chinaz.com/www.zswater.com //全球ping
https://wepcc.com/ //全球ping

获取目标子域名

拿到了主域名,子域名肯定是必不可少要跑的。上面叫先拿ip,是因为我们可以结合真实ip的C段,更精确的判断出域名的相关信息,尽可能少的漏掉。这里我比较喜欢用下面的几个工具
https://github.com/shmilylty/OneForAll //比较自动化,收集的比较全,使用方便
https://github.com/knownsec/ksubdomain //自动化,收集比较全
https://github.com/0x727/ShuiZe_0x727 //使用方便,自动化,集成工具
有机会的话对于app等也抓一下域名信息。对于一些自定义字典爆破的特殊情况就不说了,这里只说常用的。

获取目标ip

收集到现在,不出意外我们手上应该是有一堆域名信息了。一个个判断略显麻烦,这里已经有师傅为我们做好了域名转化为ip的工具,同时能够将C段整理出来。
https://github.com/EdgeSecurityTeam/Eeyes
都到了这里了,可以尝试扫描一下c段,因为有ehole能够直接整理出重点资产,比较方便。推荐的扫描工具
https://github.com/shadow1ng/fscan //内网可用,外网也可以用
https://github.com/Adminisme/ServerScan
https://github.com/EdgeSecurityTeam/EHole
这里可能会存在一些cdn,需要真实ip的可能。一般我比较常用的是找子域名和icon,以及ssl证书等,历史记录感觉碰到的不多,还不如fofa大法去搜搜。或者是直接子域名再扫个C段等等。这个方法很多我就不献丑了。

获取目标web信息

上两步,我们基本是拿到了目标的ip段,域名,现在就要尝试对网站进行判断了。推荐先用ehole走一下识别出重点资产。然后再判断。
https://github.com/broken5/WebAliveScan //web存活判断
(1)收集web的框架信息,一般我采用下面几种手法
《一》识别网址框架:
https://scan.dyboy.cn/web/
https://fp.shuziguanxing.com/#/
火狐插件
wappalyzer
其他
利用web的js里面可能会泄露web框架的相关信息,或者根据网站的图标,错误页面,下方的开发公司等去确定网站可能采用了什么框架。
《二》路径收集
https://github.com/maurosoria/dirsearch //dirsearch
dirbuster //kali自带
burp爆破自定义的字典 //需要平时收集或者再github上找字典(主要还是可能有些网站他有自己的路径格式,工具不一定能跑出来)
《三》敏感信息收集
js中的敏感文件
JSfinder:https://github.com/Threezh1/JSFinder
查看开发者工具中js,然后对于一些js文件搜索password username等关键字(这需要直接,有可能会js泄露一些用户名,这是工具跑不出来的)
网站内容的敏感数据
这种对有些ZF很有用。经常会碰到邮箱账号密码都写在主页里的。所以对于一些文章啊,可以浏览一些。说不定也能看到一些收购计划之类的,扩大我们的攻击面。路多了总有一条能走通。这里没用吧端口说出来,因为我们前面已经收集了。一些中间件一类的是顺带就可以看的,操作系统类的也是能拿了shell才考虑的事情。当然一些shiro等还是要熟悉,这是HW的大杀器。
《四》后台收集
这里专门把后台收集提出来,是因为后台并不是说路径扫完了没了就没有了。有可能字典不包含。碰到这种情况,可以尝试以下方法。
(1)可以去搜一下有没有相同的框架说明文档看看后台地址。
(2)根据他网站文件的命名格式去看一下有没有可能重名。
(3)在网页上看看有没有暴露出后台的接口
(4)在js中搜一下admin,system等关键字看看能不能拼接处后台地址。
(5)根据url地址,直接把user改为admin等等。

当到了这一步的时候,我们基本上对于我们的目标打点以及资产还是不少了。对了还有APP的没说,APP渗透我做的不多,所以这里就找了几个搜索APP信息的工具
https://github.com/kelvinBen/AppInfoScanner app敏感信息收集
百度一下网盘查询,找几个进去看看(可以看看是否泄露了源码,但是实际没碰到过这种情况,适用于想直接getshell失败的情况下。)

对于可能需要爆破的,用户名的收集,这一块我一般都是字典直接爆破的。要收集的话我的思路是以下,如果有补充和修正欢迎指点一下:
(1)再网页上直接找用户名(因为一般都有邮箱之类的,这里你能拿到用户名,根据公司名称或者数字生成相应的字典)
(2)利用google语法,搜索xlsx等,或者直接搜这个公司相关的,可能会出现用户名
(3)github上找一下这个公司看看有没有啥泄露的
(4)招聘网站上看看,面试官之类的可能会泄露电话号码,用户名,根据电话号码查用户名
(5)搜索公司的架构图,如果有领导的记下来
(6)利用公众号,微博等社交软件搜索公司的信息。
(7)百度图片(这个看运气了,有时候网页搜出来太多了,直接看看百度图片,有可能出现用户名 筛选起来也很快,是我在之前某次攻防中需要找到一个编号的时候想到了,但是编号打码太模糊了看不清楚)
(8)找一下常用用户名的字典进行收集。
大概就想到这么多吧,其他的再实战中碰到了再说。常规的思路其实已经够用了,比较骚的思路都是走投无路的时候抓破头颅整出来的,所以不管碰到什么情况,多动动小脑筋。信息收集多做一点,实在不行曲线救国打打供应链能脱下来源码也不错(但是这种比较适用于地方ZF用的小供应商的代码,比较大的要你那么短时间审计出来难度也太大了。)

指导单位
广东省公安厅网络警察总队 | 广东省信息安全等级保护协调小组办公室