简介
这里我们从github上下git最新的fscan项目并用ide打开
common目录
config.go 配置文件可以用来修改字典和默认扫描端口
flag.go 用于命令行的选择比如-h -p 等
log.go 日志处理
Parse.go 对选择进行处理
ParseIP.go 对输入ip进行处理
ParsePort.go 对输入端口进行处理
proxy.go 代理
Plugins目录:
这个目录是按我的理解来说可以里面为扫描时的功能插件
像 这些ms17010 mysql mmsql等
列如fscan的mysql扫描写法
两个for循环 调用mysql链接就实现了mysql扫描
他是如何调用这个函数的了?
我们直接对Mysqlscan进行查询
发现在base.go文件中他调用了mysqlscan函数
他是如何对这些进行扫描处理的
同样的对PluginList进行查询
继续跟下去
跟到这里我们可以看到他的处理逻辑
if common.Scantype == "all" || common.Scantype == "main" {
switch {
case info.Ports == "135":
AddScan(info.Ports, info, &ch, &wg) //findnet
if common.IsWmi {
AddScan("1000005", info, &ch, &wg) //wmiexec
}
case info.Ports == "445":
AddScan(ms17010, info, &ch, &wg) //ms17010
//AddScan(info.Ports, info, ch, &wg) //smb
//AddScan("1000002", info, ch, &wg) //smbghost
case info.Ports == "9000":
AddScan(web, info, &ch, &wg) //http
AddScan(info.Ports, info, &ch, &wg) //fcgiscan
case IsContain(severports, info.Ports):
AddScan(info.Ports, info, &ch, &wg) //plugins scan
default:
AddScan(web, info, &ch, &wg) //webtitle
}
} else {
scantype := strconv.Itoa(common.PORTList[common.Scantype])
AddScan(scantype, info, &ch, &wg)
}
逻辑处理都出来了 感觉这个没必要说了 大家都应该能看懂这些代码
Webscan目录
rules.go这里时对指纹的处理 如果你想增加指纹可以从这里入手 不过不太推荐增加太多
lib目录
这里是一些固定的东西 没必要改
pocs目录
就是你放poc的地方
poc编写方法你可以参考xray的来写,这里可以推荐一下xray规则实验室
https://poc.xray.cool/
二开
这里搞个简单的 搞个zookeeper未授权扫描
我们直接在Plugins创建一个zookeeper.go文件
参考下zooker的go链接demo,这里就不说了,我们直接贴代码
package Plugins
import (
"fmt"
"github.com/samuel/go-zookeeper/zk"
"github.com/shadow1ng/fscan/common"
"time"
)
func ZookeeperConn(info *common.HostInfo) {
x := fmt.Sprintf("%s:%v", info.Host, info.Ports)
s := []string{x}
_, _, err := zk.Connect(s, time.Second*5)
//defer conn.Close()
if err != nil {
fmt.Println(err)
} else {
common.LogSuccess(fmt.Sprintf("unauthorized zookeeper %s", fmt.Sprintf("%v:%v", info.Host, info.Ports)))
//fmt.Println("zookeeper 连接成功!")
}
}
接着在Plugins/base.go 把函数添加进去
这个样子还不够,如果我们要进行单独扫描的话 还需要在common目录下对他进行处理
这里就把单独扫描整好了
到这里一个简单的zookeeper未授权扫描功能就写好了
后面其实还可以加一堆东西 比如什么数据一键利用,向日葵扫描,一键写入shiro内存马等等都可以自定义加
免杀的话,其实可以本地编译,去除github.com/shadow1ng,之后再对编译进行混淆就可以免杀了
这里不推荐工具了,推荐之后 过段时间就免杀不了
原文始发于微信公众号(老鑫安全):fscan二开
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论