子域名监测源码与环境搭建

环境要求:

ubuntu 64位
python3 go mongodb chrome chromedriver

代码下载链接: https://pan.baidu.com/s/18cR0wmJR7X3ukT6GQyynKQ 提取码: 26k6

代码结构:

browser.py  浏览器功能 获取html、执行js等  
config.py 配置文件,一些需要的功能  
mongodb_con.py mongo连接文件  
start.py 开始爆破和爬取子域名获取http响应入mongo库  
while_update.py 域名监测功能、遍历mongo库内数据 对比出变化域名和爬取新域名 
\subfinder 用来启动最初爆破子域名
\tmp 存放browser爬取的 href network请求的url    
\target  存放要监测域名的配置信息  

注意

因为获取http响应的是基于chrome浏览器,模拟chrome访问,并且访问后进行多个javascript执行,所以访问每个url会比普通urllib时间要长很多,所以我添加了简易版chrome线程池以便进行多线程同步访问以便加快速度,默认是5个chrome同时模拟访问。

环境搭建

必须执行

cd 进扫描器目录
sudo sh install.sh

install.sh内代码:
sudo apt-get install mongodb golang git python3 python3-pip xvfb unzip libxss1 libappindicator1 libindicator7 -y
sudo pip3 install selenium pymongo
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome*.deb
chmod +x chromedriver
sudo mv -f chromedriver /usr/local/share/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/local/bin/chromedriver
sudo ln -s /usr/local/share/chromedriver /usr/bin/chromedriver

基本就可以启动扫描器。。。

其他参考:

mongodb服务端搭建 会的大佬请绕过此步

关闭mongo命令: sudo service mongodb stop
“`
1、首先修改mongodb的配置文件 让其监听所有外网ip,如果不行,连接的时候肯定会有异常
编辑文件:/etc/mongodb.conf
修改后的内容如下:
bind_ip = 0.0.0.0
port = 27017
auth=true (添加帐号,密码认证)

设置结束后启动mongo命令: sudo service mongodb start
进入mongo命令行: mongo
添加超级用户
use admin
db.createUser({user:’admin’,pwd:’123456aaa1xsda1A’,roles:[{role:’userAdminAnyDatabase’,db:’admin’}]})
db.auth(‘admin’,’123456aaa1xsda1A’)
添加扫描器用户
use target_domain
db.createUser({user:’target’,pwd:’123456aaaxsda1A’,roles:[{role:’readWrite’,db:’target_domain’}]})
db.auth(‘target’,’123456aaaxsda1A’)
“`

mongo客户端连接:

F10Rbj.png

下载 https://www.robomongo.org/ 连接mongodb
常用mongo命令:
sudo service mongodb start | stop | restart
db.getCollection(‘qq_com’).find({“domain”:{“$regex”:”.3g.qq.com”}}) 搜索
db.getCollection(‘qq_com’).remove({“domain”:{“$regex”:”.3g.qq.com”}}) 删除
db.update({ “state” : 1} ,{$set:{“state”:0}}) 更新

设置Ubuntu默认python3

sudo update-alternatives –install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives –install /usr/bin/python python /usr/bin/python3 150

下载subfinder

go get github.com/subfinder/subfinder

启动说明

配置目标domain.json(请注意格式)

F1BGon.png

domain 为要收集监测的目标域名,格式必须是.domain.com,如:

.qq.com
.163.com
.weibo.com

Blacklist_domain 为子域名黑名单,比如46456.qzone.qq.com qq空间业务,进行.qzone.qq.com绕过收集。

进入config.py配置文件,进行配置

F1B8ds.png

然后执行python start.py 开始爆破、爬取子域名…域名数据决定运行时间(建议后台运行)。

结果在robomongo查看:
F1BjOg.png

start.py运行结束后。

while_update.py进行库内子域名重新爬行后http响应对比,和爬取新域名。
参考:http://jinbitou.net/2016/02/24/1534.html
进行定时执行while_update设置,如:24小时执行一次,12小时执行一次,就形成子域名监测。
根据mongo库内time日期请自己设置新域名推送。


有钱的捧个钱场,没钱的捧个人场,多谢收看,欢迎技术交流,感谢赞助,微信赞助码:

F1rCHH.png


参考资料:
https://www.jianshu.com/p/71bbe8acee01 Ubuntu 16.04版 Selenium环境搭建
http://npm.taobao.org/mirrors/chromedriver/ chromedriver镜像
https://github.com/subfinder/subfinder SubFinder
https://blog.csdn.net/lishanleilixin/article/details/82908423 Linux(ubuntu18.04)切换python版本
https://www.cnblogs.com/shileima/p/7823434.html mongodb远程环境搭建
https://www.robomongo.org/ robomongo客户端


为您推荐了相关的技术文章:

  1. ”安全线“大型目标渗透-01信息搜集|漏洞研究 - 安全技术社区
  2. 胖哈勃杯第十三届CUIT校赛官方Writeup
  3. 【经典好文】- 攻击JavaWeb应用 [1] - ThreatHunter
  4. 当 PassiveDNS 遇到泛解析 | 岚光
  5. [原创]安全攻城师系列文章-信息收集工具篇

原文链接: www.guimaizi.com