拥抱变化,展望未来!已经过去半年了,近期也该找时间写todo list,避免下半年又处于划水的状态。
其实大家都知道现在厂商业务线要么很长,要么很短。但最容易挖的却是业务线短的,这里可以稍微解释下,业务线短容易跟进业务同时也能深知哪些功能是干嘛的。业务线过长别说白帽子跟不过来,即便甲方安全工程师也不敢百分百说把控全面业务安全。
每天总在谈及信息收集、子域名爆破等等,难道就没有想过对域名做监控?比如每天x点扫描一遍dns数据,看这个域名有没有更新。
浅谈借助RiskIQ实施域名监控,API docs: https://api.passivetotal.org/api/docs/#api-Enrichment-GetV2EnrichmentSubdomains
模拟请求
➜ ~ curl -u $USERNAME:$KEY 'https://api.passivetotal.org/v2/enrichment/subdomains?query=yongshao.com'
Response:
{
"primaryDomain": "yongshao.com",
"success": true,
"queryValue": "yongshao.com",
"subdomains": ["ftp", "mail", "smtp", "webmail", "www"]
}
解析返回后是JSON格式数据。存入mongodb中也比较方便,由于对python不是过于熟悉,只能从python 中import os 后调用curl命令进行请求。
一些核心的代码
data = json.loads(text.replace('n', '').replace(' ', ''))
repeat_list = []
if data.get('subdomains'):
subdomains = data['subdomains']
for subdomain in subdomains:
if subdomain in repeat_list:
continue
item = {
'domain': subdomain + '.' + data['queryValue'],
'subdomains': subdomain,
'ctime': time.strftime('%Y-%m-%d %H:%M:%S')
}
repeat_list.append(subdomain)
if coll.find_one({'domain': subdomain + '.' + data['queryValue']}):
continue
else:
print('insert data:',item)
coll.insert_one(item)
将subdomains与domain进行一个拼接,后续推送IM/Mail时会用到。
之后部署在服务器中并写入定时任务,在每天凌晨x点执行,如果发现新子域名则会在钉钉中进行推送。
大概效果如图
上述只是一些点,如果你觉得这种思路不太好,可以使用rasca1的工具:
https://github.com/guimaizi/get_domain
他的至少比我完善的多,后续我也会加入获取title、HTTP Status Code等等的功能。
某些情况中业务文档尤为重要,毕竟它是提供使用者清晰知道本业务有哪些功能。但在读文档时会消磨很大耐心得沉住气,个人感觉它的收获至少是比瞎点功能有用的多。
(搜索某业务文档……)
以下图为例子
这个之前在《hacking you without password》也讲过了,不会再细讲了。先要了解清楚这块是干嘛的、能产生什么漏洞。具体这里会有什么问题我也不知道,因为我瞎扯的……(主要是提供思路罢了)
本文讲述的两种方法使得最近挖了不少漏洞。。。
以上临时工所述
我司一概不负责
本文始发于微信公众号(逢人斗智斗勇):近期挖洞的那些事儿
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论