Skip to content

信息收集(子域名、端口扫描、目录扫描、漏洞扫描),目的是为了发现资产脆弱点。

Notifications You must be signed in to change notification settings

xi3w3n/flexScan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 

Repository files navigation

flexScan

基于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指纹扫描

这个是写着玩的貌似没多大意义,会返回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来自定义保存

todo

先写觉得好用、好玩的,再写其他一般的

  • 指纹识别
  • 再肝过一个更好的主机判活方式
  • 针对大量url的指纹、标题识别
  • 针对域名的web端口扫描
  • 获取真实IP
  • 子域名扫描
  • 漏洞探测
  • 漏洞扫描

小声bb:代码写的太菜了,先不开源🙈

About

信息收集(子域名、端口扫描、目录扫描、漏洞扫描),目的是为了发现资产脆弱点。

Resources

Stars

Watchers

Forks

Packages

No packages published