Information_In_Pentest

资产搜集

 在面对大型互联网企业/zf单位,我们所面对的资产不再是单一的网站/ip/域名,所以面对大型目标时候,你本身资产搜集习惯也是决定后续渗透过程走的深度。


dns信息收集


渗透中常利用的dns解析记录中有

记录类型 简介
A记录 返回当前域名解析的IPv4地址
CNAME 返回当前域名解析的别名
AAAA 返回当前域名解析的IPv6地址
SOA 返回当前域名解析的别名
MX 返回当前域名邮件交换记录
NS 返回当前域名采用的域名服务器
TXT 提供一些特殊的文本如SPF,DKIM,DMARC,甚至可能存在一些dns服务器的版本信息等
PTR A记录的逆记录,根据ip返回域名
SRV 返回服务定位资源记录,如域控,VOIP,通常包含服务的名字,所使用的协议
SOA 返回域名的权威解析记录,当NS记录都没有找到该域名记录,就会去SOA记录进行搜索

域传输漏洞

由于一个公司肯定不允许只有一台域名服务器,不同的域名服务器需要同步解析记录,就需要使用axfr,如果配置不当允许任意client查询就会产生域传输漏洞。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
➜ /home/klkx>dig @dns2.hncc.edu.cn axfr hncc.edu.cn     

; <<>> DiG 9.10.3-P4-Ubuntu <<>> @dns2.hncc.edu.cn axfr hncc.edu.cn
; (1 server found)
;; global options: +cmd
hncc.edu.cn. 600 IN SOA dns.hncc.edu.cn. root.hncc.edu.cn. 2019060600 28800 14400 3600000 7200
hncc.edu.cn. 600 IN MX 5 mail.hncc.edu.cn.
hncc.edu.cn. 600 IN MX 10 mail1.hncc.edu.cn.
hncc.edu.cn. 600 IN NS dns.hncc.edu.cn.
hncc.edu.cn. 600 IN NS dns2.hncc.edu.cn.
3y3s.hncc.edu.cn. 600 IN A 125.219.124.36
auto.hncc.edu.cn. 600 IN A 125.219.124.34
bwc.hncc.edu.cn. 600 IN A 125.219.124.36
cachedns.hncc.edu.cn. 600 IN A 125.219.124.114
cwc.hncc.edu.cn. 600 IN A 125.219.124.36
danzhao.hncc.edu.cn. 600 IN A 42.228.9.8
db.hncc.edu.cn. 600 IN A 125.219.124.36
ddh.hncc.edu.cn. 600 IN A 125.219.124.36
disk.hncc.edu.cn. 600 IN A 42.228.9.7
dns.hncc.edu.cn. 600 IN A 125.219.124.8
dns2.hncc.edu.cn. 600 IN A 125.219.124.18
dpstar.hncc.edu.cn. 600 IN A 125.219.124.34
edf.hncc.edu.cn. 600 IN A 125.219.124.36
....

Example

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
➜ /home/klkx/ >dig any baidu.com    
;; ANSWER SECTION:
baidu.com. 5932 IN TXT "v=spf1 include:spf1.baidu.com include:spf2.baidu.com include:spf3.baidu.com a mx ptr -all"
baidu.com. 5932 IN TXT "google-site-verification=GHb98-6msqyx_qqjGl5eRatD3QTHyVB6-xQ3gJB5UwM"
baidu.com. 5932 IN MX 20 jpmx.baidu.com.
baidu.com. 5932 IN MX 10 mx.maillb.baidu.com.
baidu.com. 5932 IN MX 20 mx1.baidu.com.
baidu.com. 5932 IN MX 15 mx.n.shifen.com.
baidu.com. 5932 IN MX 20 mx50.baidu.com.
baidu.com. 5932 IN SOA dns.baidu.com. sa.baidu.com. 2012140900 300 300 2592000 7200
baidu.com. 85 IN A 123.125.114.144
baidu.com. 85 IN A 220.181.38.148
baidu.com. 86395 IN NS ns3.baidu.com.
baidu.com. 86395 IN NS ns7.baidu.com.
baidu.com. 86395 IN NS ns4.baidu.com.
baidu.com. 86395 IN NS dns.baidu.com.
baidu.com. 86395 IN NS ns2.baidu.com.

可以看到百度的邮件服务器,ns服务器,spf地址,SOA记录,这样为后续确认关键网段定下了基础。

ns服务器的TXT记录一般可能会存在版本信息(如果是用bind进行搭建的)

1
2
3
4
dig txt chaos version.bind @ns7.baidu.com

;; ANSWER SECTION:
version.bind. 0 CH TXT "baidu dns"

而百度主站采用的域名跳转,可以获取到百度另外一个子域名shifen.com

1
www.baidu.com.	387	IN	CNAME	www.a.shifen.com.

渗透中SRV记录在后续内网/关键服务渗透也是十分重要的,这里SRV爆破推荐使用dnsrecon。

1
2
3
4
5
6
7
8
9
10
11
12
[*] Enumerating SRV Records
[*] SRV _sip._udp.alibaba-inc.com vcse-hzbj.alibaba-inc.com 42.120.73.221 5060 10
[*] SRV _sip._udp.alibaba-inc.com vcse-xx.alibaba-inc.com 42.120.74.45 5060 10
[*] SRV _h323cs._tcp.alibaba-inc.com vcse-hzbj.alibaba-inc.com 42.120.73.221 1720 10
[*] SRV _h323cs._tcp.alibaba-inc.com vcse-xx.alibaba-inc.com 42.120.74.45 1720 10
[*] SRV _h323ls._udp.alibaba-inc.com vc.alibaba-inc.com 42.120.74.45 1719 0
[*] SRV _caldavs._tcp.alibaba-inc.com caldav.alibaba-inc.com 140.205.121.207 443 5
[*] SRV _sip._tcp.alibaba-inc.com vcse-hzbj.alibaba-inc.com 42.120.73.221 5060 10
[*] SRV _sip._tcp.alibaba-inc.com vcse-xx.alibaba-inc.com 42.120.74.45 5060 10
[*] SRV _sips._tcp.alibaba-inc.com expe-hzbj.alibaba-inc.com 42.120.73.222 5061 10
[*] SRV _sips._tcp.alibaba-inc.com expe-xx.alibaba-inc.com 42.120.74.52 5061 10
[*] SRV _sip._tls.alibaba-inc.com vc.alibaba-inc.com 42.120.74.45 5061 10

当然最后也不要忘记tracertroute一下看看到目标站点的路由是怎么跳的,有可能也能发现目标的路由出/入口。

域名备案信息(国内)

由于国内正规网站都需要备案,而一个备案号可能会同时在多个网站使用,这样可以快速获取同一公司旗下的其他域名。

https://icp.chinaz.com/

Whois Reverse

可以根据实际情况对Whois的注册人,注册机构,注册邮箱,nameserver 进行反向Whois扩大目标资产面。

Ns记录Reverse(可以尝试多个网站)

Whois注册邮箱Reverse

Whois注册机构Reverse

还有Whois中的电话跟联系地址一样可以进行Reverse查询。

其实眼尖的人就会发现这些域名中出现了一些不一样的Email,域名,注册人,注册机构,所以经过简单去重判断后还是可以重复循环查询,达成最大化的目标资产搜集。

当然这里要注意NS记录Reverse存在的坑点比较多,也有可能存在别人使用了目标公司的NS服务器做自己的NS记录干扰自己的资产搜集结果。

企业信息/投资关系

1
2
3
4
5
6
7
8
9
10
企信宝
企业信用信息查询APP
企查查
天眼查
企业云数据征信中心
信用视界
悉知
Crunchbase
Wikipedia
angel.co

通过企业信息查询可以扩充我们对目标资产的攻击面,比如腾讯的资产,除了母公司旗下还有很多子公司跟投资机构。

根据投资机构我们可以了解到腾讯收购的一些子公司跟即将收购的子公司,我们可以提前对目标即将收购的子公司进行攻击获取权限,

等腾讯全资收购内网打通后,看是否符合攻击条件再进行后续攻击。

这些企业查询还会为你提供企业的业务跟公众号,后续进一步对APP/公众号 进行域名/目标搜集,扩大攻击面。

而且可以不止将目标瞄准在投资的子公司,甚至可以对准目标的母公司/集团。

当然我们关注点不能只放在国内,angel.co,Crunchbase,Wikipedia搜集到的资产信息跟国内完全不同,并且大家的目标也不一定是国内企业。

https://en.wikipedia.org/wiki/List_of_mergers_and_acquisitions_by_Facebook FaceBook收购的企业

https://www.crunchbase.com/organization/tencent/acquisitions/acquisitions_list#section-acquisitions Tencent海外动作

当然万能的Google也是我们最好的伙伴(查询国外企业效果更好)

合作伙伴/开发商/供应商

在常规安全测试中,供应商/合作方/外包公司一直是一个比较容易忽略的点,

这里列出一些在对目标进行渗透时用来发现目标存在相关合作公司的点。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
copryright 

meta author

google/baidu/搜索引擎能找到的相关新闻信息

招标公告

shodan/fofa/zoomeyes

新闻/内幕消息/微信群/qq群/weibo

合作伙伴

招聘信息

公司技术栈

特定资产的url path

从这些角度或许都能找到目标供应商,合作方或者跟目标相关的一些信息,具体信息还是需要个人进行详细的判断。

供应链攻击一直以来是厂商最头疼的问题,因为一般的厂商都不会把防御资源应用到供应商/合作方/外包公司上面,
所以当我们获取目标供应商/合作方/外包公司的权限时,
可以获取目标的源代码,或者往目标厂商所需的产品/源代码植入Shell,
或者长期控制合作方的邮箱,监控他们与目标厂商的交流从中获取意想不到的资源(如VPN/内部的git/相关的组群…)。

IP方向的资产搜集

获取目标系统的ip后,第一反应就是进行whois查询,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
inetnum: 202.69.16.0 - 202.69.31.255
netname: PINGANCOM
descr: Shenzhen Ping An Communication Technology Co.,Ltd
descr: 5/F Ping An Building,No.3 Ba Gua Road
descr: Futian District,Shenzhen,China.
admin-c: ZM1477-AP
tech-c: ZM1478-AP
country: CN
mnt-by: MAINT-CNNIC-AP
mnt-lower: MAINT-CNNIC-AP
mnt-irt: IRT-CNNIC-CN
status: ALLOCATED PORTABLE
last-modified: 2016-03-03T02:36:01Z
source: APNIC

这里可以看到 202.69.16.0 - 202.69.31.255整个网段都是属于平安的资产.

1
2
3
4
5
6
7
8
9
10
person: Junli Yu
address: 5/F Ping An Building,No.3 Ba Gua Road
address: Futian District,Shenzhen,China.
country: CN
phone: +86-13418620122
e-mail: Yujunli001@pingan.com.cn
nic-hdl: ZM1477-AP
mnt-by: MAINT-CNNIC-AP
last-modified: 2016-03-03T02:12:01Z
source: APNIC

并且可以获取属于的组织跟联系人信息,后续可以将此信息再带入whois反查中获取更多相关ip(riskiq)。

大型组织一般都会购买属于自己的ASN,我们可以通过bgp查询到相关的组织信息。

https://bgp.he.net

通过ASN又可以获取到目标新的ip范围。

而且我们可以通过ip反查ASN,在看当下的ASN拥有哪些ip.

1
202.69.26.13 -> AS23848 -> 43.230.220.0/22,45.65.20.0/22,103.50.36.0/22,103.50.38.0/24,103.210.168.0/22,103.210.168.0/24,103.210.171.0/24,202.69.16.0/20

这样就能获取对方大范围的资产列表了,但是这也要小心云类型的ip,容易会影响我们对目标ip的判断。

Shodan/Censys 提供的Org命令也可以帮我们快速发现目标的其他一些网段。

目标的org可以根据你之前获得的ip信息带到shodan去获取,获取到新的org名字后再继续进行查询。

在获取企业资产的ip后,C段方向的信息搜集也是必不可少的,除了常用的一些riskiq/sameip domain以外,免费的必应也是一个不错的选择。

而在Github/oschina/gitlab上也会有一些相关的域名/ip,这一点Github监控工具也已经在网上一找一大把了。

但是最容易被忽略的就是目前大部分监控工具都容易忘记的一点就是企业内部的域名,跟内网资源相结合形成的杀伤力可能会更加大。

众所周知某鹅内网存在oa.com这样的域名,如果我们在Github监控包含oa.com 存在符合10.x.x.x的内网地址的文件,那么我们会发现什么?

某鹅某手游的模块源码,里面存在着许多敏感的信息,如果我这时候是一个想对某鹅进行APT的不良人员,那么我第一反应就是从这个点入手看能不能获取更多信息。

所以一个良好的信息搜集习惯会是年轻人成功拿下目标必不可少的一步。

当然相关的搜索语法一定是不仅仅是这样的,信息搜集靠的也是参与人的集思广益。

其实Git+内部域名/内网ip的方式,在我们获取目标的内网入口后,再重新进行一起探测,则会更有利与自己在目标内网进行横向渗透,关键目标渗透。

移动端

随着移动端的兴起,很多单位都有自己的移动APP、微信公众号、QQ群等,这也是值得重点关注的点。

微信公众号在企查查等网站可以搜到一些绑定了企业信息的公众号,很方便我们个人进行目标的资产搜集。

但是如果没有经过企业认证的公众号就不会显示在企查查的页面中,可能还需要我们个人在微信接口上面搜索企业相关关键字/企业软文/微信文章内的关键字来获取一些不一样的目标接口跟资产信息。

而移动App除了市面上可以搜索到的一些APP,

我们针对的大型企业大部分都会开发属于自己员工进行内网通信,同事协同交流之类的办公协同APP,

这也是一个很重要的入口点,可以找找相关的目标的一些入职培训,入职公告,或者weibo/twitter一些员工发的入职牢骚,往往能得到这些特殊APP名称/下载地址,实在不行伪装成萌新去问,一般的员工都不会认为企业内部的通讯APP分享给一个新员工有什么问题,也都会分享给你的。

如果能搞定这个APP,那么就可以获取目标员工信息/内网入口等。

针对目标企业相关的QQ群也是一个很重要的点,虽然现在办公大部分都转移到了wechat/dingtalk/自建平台等,但是由于历史的原因还是有很多企业的事业群依然采用QQ进行沟通交流,而QQ群默认都是允许搜索到的。

这样我们搜索到目标相关QQ群,可以伪装成xx部新入职小王,这样不容易被人怀疑的理由申请加群,大部分都会通过的。那么群内的公告,群共享,聊天记录,通讯录对一个不怀好意的人来说更是一笔可观的资产资源。

子域名爆破/搜集

这是一个古老而又不得不提到的点,网上爆破工具五花八门,每个人选取自己喜欢的工具即可。

这里推荐几个第三方获取域名的接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
https://www.ask.com/web?q=site:%s&o=0&qo=homepageSearchBox&page=%s
http://www.baidu.com/s?wd=site:%s&pn=%s
https://www.bing.com/search?q=site:' + self.domain + '&first=' + str(page)+'&FORM=PERE2
http://alexa.chinaz.com/?domain=%s
https://crt.sh/?q=%25.{0}
http://www.dnsdb.org/%s/
https://dnsdumpster.com/
http://www.exalead.com/search/web/results/?q=site%3A{0}&&elements_per_page=10&start_index={1}
http://www.google.com/search?q=site:%s&safe=on&start=%i
https://api.hackertarget.com/hostsearch/?q=%s
http://www.haosou.com/s?src=360sou_newhome&q=site:'+domain
http://i.links.cn/subdomain/
http://searchdns.netcraft.com/?restriction=site+contains&host=*.%s&lookup=wait..&position=limited
http://ptrarchive.com/tools/search.htm?label=%s
https://api.passivetotal.org/v2/enrichment/subdomains
https://www.threatcrowd.org/searchApi/v2/domain/report/?domain=%s
https://www.threatminer.org/getData.php?e=subdomains_container&q=%s&t=0&rt=10&p=1
https://www.virustotal.com/en/domain/%s/information/
http://webscan.360.cn/sub/index/?url='+domain
https://search.yahoo.com/search?p=site:%s&pz=10&b=%s
https://findsubdomains.com/subdomains-of/%s
censys_certificates.search
https://urlscan.io/api/v1/search/?q=domain:%s
https://duckduckgo.com/d.js?q=site%3A%s&l=wt-wt&s=0&a=h_&ct=CN&ss_mkt=us&vqd=3-271505942735536872707783476956374496418-294079616056275245052269096373311738824&p_ent=&ex=-1&sp=%s
https://dns.bufferover.run/dns?q=%s (也可以自己利用rdns搭建本地查询更快速)

可以利用的接口也一定不只有这些,希望也能一直更新好用的接口。

some example

0x01 幻想过程一

事情起因来自于某次资产搜集发现目标存在一处对外包暴露的管理后台 

http://x.b.com/manager,这对于这样的问题交给大厂的src也能换上一顿午饭。

但是后台底部的一处@copyright 2015@kkk,引起了我的注意,自己果断去某度搜索了kkk,发现是一家从事互联网开发的公司,并且在他的合作伙伴里面找到了b.com!
一个邪恶的想法就产生了。
于是我就把目标转换到了kkk,经过对kkk的资产探测发现了一个kaifa.kkk.com的域名,猜测这是一台开发团队的测试鸡,并且通过Google搜索得到的缓存记录也基本验证了我的想法。
这时候通过Github搜索kkk.com的域名获得某个开发人员的Github,并且发现他的Email,通过Email在sgk成功找到他常用的password,通过这个password登录Github发现一个私有项目,

私有项目一看也是kkk公司的一个即将要交付的项目,而里面的配置文件让我欣喜若狂

1
2
3
4
5
'REDIS_SERVER' => array(
'host' => 'redis.kkk.com',
'port' => 26379,
'password' => 'rootklkx@REDIS',
),

一个熟悉的Redis,并且是目标kaifa.kkk.com域名的Redis密码,接下来的就是直接redis getshell 3连拿到kaifa.kkk.com权限。

脱下来的源码里面一共有127个客户

1
2
➜ /home/klkx/Desktop/sb >ls | wc -l     
127

而跟b.com的项目相关的源码也有两位数的项目,并且是时时更新的最新业务源码。

这个开发商至今也已经控制了1年多至今也没有发现,并且期间通过审计开发商的代码成功获取到b.com的shell一枚,可惜后面b.com的项目下线:(,不知道shell被发现了嘛?

但是如果是一个真的要搞b.com的坏人,拿到这些源码后对目标进行持久型的漏洞挖掘 or 植入后门,再获取b.com的敏感数据也不算一件太难的事情。

b.com也算是国内IT企业的领头羊,发生这样的事情,只能说国内安全任重道远啊!

后续当然是乖乖的删除了源码,做一个快乐的好好青年!毕竟整个过程都是幻想的。

0x02 幻想过程二

之前无聊的时候看到新闻A企业会收购某m公司,虽然我也是某m公司的资深用户,但是无聊起来连自己信息都搞。

想到A公司的安全实力很强大,在收购之后一定会重新帮m公司进行安全评估/安全加固。

所以对m公司下手也只有在收购之前下手,可能会比较容易一些。毕竟自己还是从来没有进入到A公司内网看过,所以就想好好针对一下m公司。

经过前期的信息搜集n.com这个域名是m公司mail等主要系统使用的域名,

于是对这个域名下的子域名跟关联ip进行资产探测,然后发现一处很经典的tomcat映射配置错误,成功下载到了该站点的war,

经过审计发现该站点登录后,可以通过上传的文件名进行命令注入。 使用china top 500 names+123456成功登录到系统里面,并且成功RCE。

可惜后续自己去做了其他事情,过了半把月后网站都打不开了,当然也没有进入到A公司内网 只能说是一个失败的幻想过程:(

通过两个幻想的案例,觉得有时候针对目标企业的攻击面也不必要只局限在传统范围,把可能性放宽广一些,那么能得到的效果可能就会更好一点,

这可能就是你们Pentester有趣的地方吧,同一个目标可能会有很多不同的方式来达到.

0x03 幻想过程三

等关键风头过了更新