基于go写的信息收集工具(子域名扫描、端口扫描、目录扫描、漏洞扫描),目的是为了发现资产脆弱点,功能慢慢完善。
该工具仅用于安全自查检测
由于传播、利用此工具所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。
本人拥有对此工具的修改和解释权。未经网络安全部门及相关部门允许,不得善自使用本工具进行任何攻击活动,不得以任何方式将其用于商业目的。
flexScan -h
Usage:
flexScan [OPTIONS]
模式选择:
-m, --mode= dir(目录扫描)port(端口扫描)wf(url指纹识别)
-f, --file= 批量扫描,指定目标txt文件(通用参数)
-o, --output= 指定输出的目标txt文件(通用参数) (default: result_mode.txt)
-t, --threads= 线程数量(通用参数)dir描默认为30 port默认500 wf 默认30
--proxy= 设置代理地址,例:--proxy http://127.0.0.1:8080
--update= 每次运行的时候是否需要检查web指纹更新:y、n (default: n)
目录扫描参数:
-u, --url= 指定的URL
-d, --dict= 内置字典:s小字典、b大字典、js扫js文件 或者 某个字典的路径 (default: s)
-x, --excode= 不显示哪些返回码,例:-x 403 或 -x 403,301
-n, --onlycode= 只显示哪些返回码,例:-n 200 或 -n 200,403
-e, --endings= 指定某种后缀类型(只有大字典支持),例:-e jsp 或 -e php
端口扫描参数:
-i, --ip= 指定ip或ip段
-p, --port= 指定top端口:t150、t1000、all(全端口)或-p 1000,2000,8080 或-p 1000-2000 或-p 8080,100-200 (default: t150)
--np= 是否要探活:y、n (default: n)
Help Options:
-h, --help Show this help message
正常扫描一个URL,默认是走小字典的(避免有waf直接一上来IP就被封了):
./flexScan -m dir -u http://127.0.0.1:1122/
指定大字典,或者是自己字典的路径:
./flexScan -m dir -u http://127.0.0.1:1122/ -d b 或者 ./flexScan -m dir -u http://127.0.0.1:1122/ -d xxx.txt
指定后缀,只有大字典才有,字典里面带{EXT}才会被替换,比如:2022{EXT},指定后缀就会变为:2022.jsp
./flexScan -m dir -u http://127.0.0.1:1122/ -d b -e jsp
如果扫了一会,发现401的状态码太多了,可以重新扫一次,不显示状态码为401的记录:
./flexScan -m dir -u http://127.0.0.1:1122/ -d b -e jsp -x 401
批量目录扫描:
./flexScan -m dir -f file.txt
现在开放的端口都可以扫了,但是只会对http服务进行美化输出,其他端口一律显示一个open
默认不进行判活,直接进行web端口扫描,结果输出状态码、标题,如果有跳转会自动识别。对存在http的端口自动识别指纹
还得慢慢调教
扫描一个目标的http端口:
./flexScan -m port -i 127.0.0.1 或者 ./flexScan -m port -i 192.168.1.1/24
支持输入的目标形式(一行一个):
127.0.0.1
192.168.1.1/24
192.168.2.1-100
test.com
指定端口,默认是100多个常见端口:
./flexScan -m port -i 192.168.1.1/24 -p 8080,9990-10000
批量扫描,目标为txt(参考上面目标):
./flexScan -m port -f ips.txt
判断存活:
./flexScan -m port -f ips.txt --np y
这个是写着玩的貌似没多大意义,会返回URL状态码、标题、指纹(如果有),只有一个参数-f指定目标txt文件,因为扫一个目标就不用扫了
./flexScan -m wf -f target.txt
一行一个目标,没有http/https会补,格式可以是:
1.2.3.4
test.com
test.com/1.jsp
http://test.com
https://test.com/
貌似linux、mac都有个最大文件打开数使用命令查看ulimit -n,使用端口扫描的时候要确保ulimit -n的值是大于500的。那么就需要输入命令ulimit -n 550即可,这个只会修改当前shell的,问题不大。
其实线程一般都可以灵活调节,自己测试这么久了,线程越大扫的结果就会有遗漏,和目标主机状况有很大的关系,这里设置的都是相对比较保守的速度
目前只能保存txt格式,默认会根据的模式命名,如果使用了端口扫描则会保存result_port.txt每次扫描都会覆盖,记得保存好结果。
也可以-o xxx.txt来自定义保存
先写觉得好用、好玩的,再写其他一般的
- 指纹识别
- 再肝过一个更好的主机判活方式
- 针对大量url的指纹、标题识别
- 针对域名的web端口扫描
- 获取真实IP
- 子域名扫描
- 漏洞探测
- 漏洞扫描
小声bb:代码写的太菜了,先不开源🙈