浅论《关于域名攻击面发现》技术方向的想法
子域名探测大家都很熟悉了,但是根据域名去寻找更多的攻击面方面的文章发现讨论的不是很多,笔者根据一些经验以及想法对此方向进行了部分的研究,本文是从hackertarget报告分析出发来进行扩充式的研究&分析,如果大家有更好的想法,欢迎一起讨论。
分析报告
根据hackertarget的报告,可以看到发现其他域名的方式有以下三种
- 同一Dns服务器
- Whois信息
- Google Analytics ID
接下来将对于其三种方式进行技术可行度分析以及可信度分析
同一DNS服务器(Record Shares NS)
其技术原理是向dns发送一个解析请求,看是否有返回ns信息,如果有的话将会使用该ns信息与历史沉淀下的dns数据信息进行交叉对比,最后返回一个n个不同的域名使用同一个ns服务器的列表。
查找同一ns服务器的免费接口调用地址为:https://api.hackertarget.com/findshareddns/?q=ns1.dnsserver.com
通过nslookup命令,我们可以轻松的获取到其ns服务器
nslookup
set type=ns
在上图中,查询了四个域名,分别是03sec.com、allsec.cn、baidu.com、ctrip.com。
公用dns服务器
在此我以我博客域名03sec.com
为例子,03sec.com
使用的是cf的dns服务,其返回的ns服务器为
gina.ns.cloudflare.com
bruce.ns.cloudflare.com
通过使用HT的接口查询后得到以下结果
可以发现很多非我自己的域名蹦跶了出来,因为cf是一个提供域名解析服务的公司,使用其同一个dns服务器的有很多其他的客户,这与我们预期的结果会产生很大的差别。且对于攻击面分析增加了n多的工作量。
自用dns服务器
在日常的安全测试中发现ctrip.com
有自己搭建的dns服务器,在通过其自定义的8个ns服务器使用HT的接口查询以后,输出以下信息(下图为查询2个ns服务器的输出信息)
通过上述查询的结果,我们发现绝大部分或者可以说所有信息都为ctrip
的资产域名攻击面。当然也不排除有人故意污染该数据(随便注册个域名,然后设置其ns服务器为ns1.ctrip.com
)。
小结
根据上面不同的两种情况,我们可以看出,查找ns服务器的技术可行度为10分,如果ns服务器为注册商公用ns服务器,那么查询到的数据可信度为1分,如果ns服务器为企业&组织自行搭建的ns服务器,那么可信度为10分。
Whois信息(Reverse Whois)
可以查询whois信息的网站&接口:
- https://domaineye.com/reverse-whois
- https://www.reversewhois.io/
- https://tool.domains/whois-research
- https://tools.webservertalk.com/reverse-whois
- https://reverse-whois-api.whoisxmlapi.com/
- http://whois.domaintools.com/
- https://viewdns.info/reversewhois/
- https://www.domainiq.com/reverse_whois
其技术原理就是根据whois查询到的联系人名字、联系人邮箱、联系人手机号信息进行反向查询关联,但是很多注册商都有一项功能,为“域名隐私保护”。
在2016年的时候,欧盟法律推出了《通用数据保护条例》,简称GDPR
,在此之前,国外友人大部分的网站都没有购买域名隐私保护,对的,之前国外大部分域名隐私保护都是要钱收费的,国内大部分的域名隐私保护都是免费的.在国外推出GDRP以后,绝大部分whois查询到的信息都为其域名注册商的信息,所有很多时候查询到的域名信息类似下面这种:
其中联系邮箱、联系电话、(联系人信息)都基本为注册商的信息,从而导致根据联系人名字、邮箱、电话等信息反查到的可能为其主机商下的信息,导致要查询的信息与预期的不符。当然,在注册商们大幅推广免费隐私保护功能前,就已经有某些公司将域名下历史所有更改过的whois信息进行了存储,输入域名以后可以查到类似以下的信息。
在历史whois信息中,有可能存在真实的联系人、联系邮箱、联系电话等信息,可以根据这些真实的信息进行反查whois其他域名信息。
由此可见此技术可行度为10分,但可信度为3分,因为whois历史数据针对大部分旧域名,如果是新网站、新域名,那么其whois信息可能没有任何历史信息,且限制绝大部分注册商都免费直接开通“域名隐私保护”服务,导致其可信度降低。
Google Analytics ID(Matched Google Analytics ID)
对网站首页内容、搜索引擎内容进行解析搜索,查找关于GA的相关特征,并将其ID提取出来,存入数据索引,在后续可以根据该ID索引进行交叉关联。
由于现在仿站技术多且难度低,且搜索引擎API接口变化较快,如使用官方API限制较高,可能大部分的数据是直接根据域名打开网站首页去获取,而不是百度、谷歌这些搜索引擎,也可以使用fofa、zoomeye、shodan等网络空间策划引擎去搜索。因此其技术可行度为7分,可信度为5分。
技术改进方向
其他网站特征ID信息
通过上述Google Analytics ID的抛砖引玉,我们可以将国内比较大的统计站点信息的特征ID和其他有特征ID的信息进行提取,比如cnzz、51la、百度统计、360站长平台,以下是passivetotal分析使用的具备特征ID的字符串信息
51laId, AboutmeId, AddThisPubId, AddThisUsername, AuthorstreamId, BitbucketcomId, BitlyId, CheezburgerId, ClickyId, ColourloversId, DiigoId, DispusId, EngadgetId, EtsyId, FacebookId, FavstarId, FfffoundId, FlavorsId, FlickrId, FoodspottingId, FreesoundId, GitHubId, GithubId, GoogleAnalyticsTrackingId, GooglePlusId, GoogleTagManagerId, HubpagesId, ImgurId, InstagramId, KloutId, LanyrdId, LastfmId, LibrarythingId, LinkedInId, LinkedinId, MarketinglandcomId, MixpanelId, MuckrackId, MyanimelistId, MyfitnesspalId, NewRelicId, OptimizelyId, PandoraId, PicasaId, PinkbikeId, PinterestId, PlancastId, PlurkId, PornhubId, RaptorId, ReadabilityId, RedditId, RedtubeId, SlideshareId, SmugmugId, SmuleId, SoundcloudId, SoupId, SpeakerdeckId, SporcleId, StackoverflowId, SteamcommunityId, StumbleuponId, ThesixtyoneId, TribeId, TripitId, TumblrId, TwitpicId, TwitterId, UntappdId, UstreamId, WattpadId, WefollowId, WhosAmungUsId, WordPressId, Wordpress, SupportId, XangaId, Xfire, SocialId, XhamsterId, XvideosId, YandexMetricaCounterId, YouTubeChannel, YouTubeId, YoutubeId
备案号查询
从网页首页匹配备案号信息,然后调用api接口进行反查其相关的所有网站信息,也是因为和特征ID抓取的情况类似,对于仿站的情况也存在部分影响,或者直接输入备案号信息,反向查出其所有的网站。且国内对于大部分网站要求必须挂icp备案号,部分要在还要求挂公安备案号。也可以根据其公司名字查询其所属的备案号信息。对于这些数据的查询都有相对应的api接口。
由此此方式其可信度为8分,可行度为9分。
被动收集
使用chrome扩展,对其访问的所有域名进行收集上报,后端根据上报上来的域名信息使用特征ID信息抓取模块进行抓取分析,然后将数据插入攻击面数据库。
此方式为广撒网式,以扩充攻击面数据库为主,发现针对性目标的攻击面为辅助,因此其可信度为5分,可行度为10分。
DNS数据解析
https://opendata.rapid7.com/ 下载分析dns数据,但是dns数据迭代更新处理比较麻烦,且对于服务器的硬件要求较高。根据解析出来的dns数据进行遍历,并将其相对应的主机数据使用特征ID信息抓取模块进行抓取,从而实现对攻击面数据库的扩充or更新。
此方式也为广撒网式,以扩充攻击面数据库为主,发现针对性目标的攻击面为辅助,并且其消耗的硬件资源较大,而且对于历史dns记录的处理可能比较复杂。因此其可信度为5分,可行度为7分。
最终可信度对比
可信度与可信度按照满分10分标准去打分
使用方式 | 可信度 | 可行度 | 实行难度 |
---|---|---|---|
公用DNS服务器 | 1 | 10 | 查找ns服务器 |
自搭DNS服务器 | 10 | 10 | 查找ns服务器 |
Whois反查 | 3 | 10 | whois联系人信息被隐藏 |
GA信息关联 | 5 | 5 | 仿站技术多且难度低,百度、谷歌搜索引擎接口变化较快,如使用官方API限制较高 |
其他网站特征ID信息 | 5 | 5 | 同GA信息关联 |
备案号查询 | 8 | 9 | 同GA信息关联,API接口查询费钱 |
被动收集 | 5 | 10 | 无 |
DNS数据解析 | 5 | 7 | 消耗硬件资源较大 |
总结
关于攻击面探索发现,国外做的比较大且且知名的目前有riskiq以及hackertarget。
riskiq不仅可以根据域名去发现攻击面,还可以根据域名背后解析的IP进行进一步的扩充来发现攻击面。并且能查看有关资产的详细信息,例如IP注册者详细信息、Web组件和关联的CVE等信息。其相关介绍页面为:https://www.riskiq.com/products/digital-footprint/
hackertarget是可以根据提供的域名进行相对应的关联分析,并且会扫描ftp、rdp、ssh服务,且将扫描探测到的服务进行截图。目前hackertarget仅支持GA信息关联分析。其查询到的资源信息可以将其IP的ASN信息进行展示。
不管是riskiq,还是hackertarget,其对于企业中最终的目标是发现更多在互联网上的域名、主机信息,方便企业相关运维管理人员对其进行管控,减少企业的可被攻击面,保证企业的业务安全。对于白帽子&赏金猎人来说,更多的是用此方法去发现企业中其他的攻击面。因为很多企业中的某些年久的网站,存在明显的漏洞,且部署与企业内网中,可能由于早前管理企业IT资产的运维人员的离职或其他原因,并不知道其的存在,由此可能有引发较大的安全风险。