guimaizi’s blog

从前


title: 子域名监测源码与环境搭建 url: 360.html id: 360 comments: false categories:

  • 安全/代码 date: 2018-12-06 21:44:03 tags:

环境要求:

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


设置结束后启动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客户端