前言
工欲善其事,必先利其器。
关注“杂术馆”,来与小编一起成长吧。
信息收集(Information Gathering),信息收集是指通过各种方式获取所需要的信息。信息收集是渗透测试的基础,也是最关键的一步。如何快速的实现子域名收集,获取一个企业相关的资产信息,小编来带大家看看。我所知道的方式,关注公众号“杂术馆”,来与一个喜欢渗透测试的小编一起进步吧。
1 域传送漏洞
dig @ns.example.com example=.com AXFR
windows 下面使用相关的命令如下:
2 枚举域名
比如很经典的有lijiejie大牛的相关脚本
https://github.com/lijiejie/subDomainsBrute lijiejie
https://github.com/ring04h/wydomain zhuzhuxia
小编一直在默默寻找可以一些特别有用的接口,最终发现了三个网站提供的接口还不错,给大家分享分享。
http://api.hackertarget.com/reversedns/?q=youku.com
https://crt.sh/?q=%25baidu.com
http://i.links.cn/subdomain/baidu.com.html
详细如下图所示
由于时间问题,小编花了半个小时帮大家写了两个接口的。如果大家需要跟小编一起学习完成这个子域名收集的代码的话。就关注我们的公众号“杂术馆”,想要代码的可以关注公众号,回复“subdomain”获取,跟小编一起交流吧。下面贴上小编写的部分代码:
func SubdomainScanhackertarget(domain string) []DomainInfo {
defer func() { // 必须要先声明defer,否则不能捕获到panic异常
if err := recover(); err != nil {
// fmt.Println(err) // 这里的err其实就是panic传入的内容,55
}
}()
urls, err := url.Parse("http://api.hackertarget.com/reversedns/?q=" + domain)
checkErr(err)
client := &http.Client{}
request, err := client.Get(urls.String())
checkErr(err)
robots, err := ioutil.ReadAll(request.Body)
request.Body.Close()
checkErr(err)
//fmt.Print(string(robots))
wangzhans := strings.Split(string(robots), "\n")
var Domaindata []DomainInfo
for i := 0; i < len(wangzhans); i++ {
wangzhan := strings.Split(wangzhans[i], " ")
if len(wangzhan) == 2 {
//fmt.Println(wangzhan[1])
//domainlist[wangzhan[1]]=wangzhan[0]
title := ""
domaininfos := &DomainInfo{}
domaininfos.Domain = wangzhan[1]
domaininfos.Ip = wangzhan[0]
domaininfos.Title = title
domaininfos.Souce = "hackertarget"
//Subnetadd(wangzhan[0])
Domaindata = append(Domaindata, *domaininfos)
}
}
return Domaindata
}
效果如下图所示:
如何快速的获取子域名信息,小编的介绍到这里就差不多了。如果有兴趣的小伙伴可以关注我们的公众号,回复“subdomain”下载源码,跟小编一起交流学习。