Skip to content

子域名收集和整理脚本、配合Oneforall食用更佳

Notifications You must be signed in to change notification settings

xiaopan233/panSubdomainScanner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

panSubdomainScanner

子域名收集和整理脚本(python3)

本脚本基于oneforall收集到的子域名的基础上,再次探测和扫描、网页截图,使用html的形式展示


使用方式:

root权限运行:

python3 go.py xxx.csv xxx.html [reqThread] [shotThread] [ports]

其中。xxx.csv为oneforall收集得到的csv

xxx.html为结果输出的html文件

reqThread可选,为进行网页请求的线程数,默认200

shotThread可选,为进行网页截图的线程数,默认30

ports可选。为要扫描的端口,脚本默认扫描了80和443,如果要新增端口的话就可以写上去(不需要再写80和443),多个端口用英文逗号分开


运行脚本截图:

其中count为每一个线程的总工作量,now为当前探测到第几个子域名,state为完成状态,subdomain为当前探测的子域名。


本脚本有三个阶段:

第一阶段:调用nmap和requests库探测子域存活和信息手机

第二阶段:调用selenium对存活子域和状态码在200-399的子域进行网页截图

第三阶段:将收集得到的信息整理在一个html里


运行结束后会在当前目录下生成一些文件:

img文件夹:存放的是网页截图

xxx.html:信息整理好的html文件,使用浏览器打开

error.log:报错日志,可能里面有些子域用上面的工具探测报错的,但实际我们人工访问可以访问

noWebHost.log:使用nmap扫描时,指定的端口没有开放。这里的子域名可以进行一下全端口扫描

responseDictNone.log:使用requests请求时出错了,可能手动访问可以访问。


**本脚本使用了:**

nmap作为存活探测以及端口探测

requests验证http和https,以及抓取header

selenium进行网页截图


需要先安装好Chrome浏览器

需要安装的库:

pip3 install selenium

pip3 install requests

nmap的话我附带上来了,应该不用再装。

那个 chromedriver ,需要给个环境变量才能用。

如果报错说chromedriver的版本有问题,查看自己chrome的版本,然后去这里下对应版本的chromedriver:https://npm.taobao.org/mirrors/chromedriver/

为了让chrome能够在root模式下运行,需要修改个配置:

vim /usr/bin/google-chrome
将 exec -a "$0" "$HERE/chrome" "$@"  改为
exec -a "$0" "$HERE/chrome" "$@" --no-sandbox

完成之后的HTML界面图:

About

子域名收集和整理脚本、配合Oneforall食用更佳

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages