0%

fscan魔改-修改扫描端口

在打内网的时候,发现fscan并没有扫描出web主机的3389,所以目的就是修改fscan中的默认扫描端口,加上3389。

  • 打开fscan源码,查看目录中扫描功能应该在哪个文件下;或者全局搜索-h参数,都没有什么收获。

1027-fscan-1

debug

  • 调试一下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{  
"version": "0.2.0",
"configurations": [
{
"name": "Launch Package",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${fileDirname}",
"args": [ //添加参数-h 扫描127.0.0.1
"-h","127.0.0.1"
]
}
]
}
  • 程序入口出打断点main.go,F5开始调试

1027-fscan-2

  • 最初是在Plugins.Scan()处先下的断点,但是找了一圈没找到

1027-fscan-3

1027-fscan-4

在PortScan() 完成了扫描,关注传入参数infoinfo.Ports

1
2
3
4
5
6
7
8
9
func main() {
start := time.Now()
var Info common.HostInfo
common.Flag(&Info)
common.Parse(&Info)
Plugins.Scan(Info)
t := time.Now().Sub(start)
fmt.Printf("[*] 扫描结束,耗时: %s\n", t)
}

这次从common.Flag(&Info)进入

1027-fscan-5

  • 注意到有一个DefaultPorts

1027-fscan-6

成功找到fscan的默认扫描端口,添加3389,重新编译

编译

  • win生成fscan.exe
1
go build .  # 需要go的环境
  • linux生成fscan

编写makefile文件,放到和main.go同一路径下

1
2
3
BUILD_ENV = CGO_ENABLED=0
OPTIONS = -trimpath -ldflags "-w -s"
${BUILD_ENV} GOOS=linux GOARCH=amd64 go build ${OPTIONS} -o release/linux_x64_admin admin/admin.go
1
2
go build .   # 再在linux下运行
或者直接 make