fscan二开

admin 2023年5月9日03:03:25评论788 views字数 1950阅读6分30秒阅读模式

简介

这里我们从github上下git最新的fscan项目并用ide打开

common目录

fscan二开

config.go 配置文件可以用来修改字典和默认扫描端口

fscan二开

flag.go 用于命令行的选择比如-h -p 等

fscan二开

log.go 日志处理

Parse.go 对选择进行处理

ParseIP.go 对输入ip进行处理

ParsePort.go 对输入端口进行处理

proxy.go 代理

Plugins目录:

这个目录是按我的理解来说可以里面为扫描时的功能插件

fscan二开

像 这些ms17010 mysql mmsql等

列如fscan的mysql扫描写法

fscan二开

两个for循环 调用mysql链接就实现了mysql扫描

他是如何调用这个函数的了?

我们直接对Mysqlscan进行查询

fscan二开

发现在base.go文件中他调用了mysqlscan函数

fscan二开

他是如何对这些进行扫描处理的

同样的对PluginList进行查询

fscan二开

继续跟下去

fscan二开

跟到这里我们可以看到他的处理逻辑

  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目录

fscan二开

rules.go这里时对指纹的处理  如果你想增加指纹可以从这里入手  不过不太推荐增加太多

lib目录

fscan二开

这里是一些固定的东西 没必要改

pocs目录

就是你放poc的地

fscan二开

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 把函数添加进去

fscan二开

这个样子还不够,如果我们要进行单独扫描的话 还需要在common目录下对他进行处理

fscan二开

fscan二开

fscan二开

这里就把单独扫描整好了

fscan二开

fscan二开

到这里一个简单的zookeeper未授权扫描功能就写好了

后面其实还可以加一堆东西 比如什么数据一键利用,向日葵扫描,一键写入shiro内存马等等都可以自定义加

免杀的话,其实可以本地编译,去除github.com/shadow1ng,之后再对编译进行混淆就可以免杀了

这里不推荐工具了,推荐之后 过段时间就免杀不了

原文始发于微信公众号(老鑫安全):fscan二开

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月9日03:03:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   fscan二开https://cn-sec.com/archives/1718877.html

发表评论

匿名网友 填写信息