Usage:
godscan [flags]
godscan [command]
Available Commands:
clean clean logs (Aliases: cc)
completion Generate the autocompletion script for the specified shell
dirbrute Dirbrute on sensitive file (Aliases: dir, dirb, dd)
help Help about any command
icon Calculate hash of an icon, eg: godscan icon -u http://example.com/favicon.ico (Aliases: ico)
port port scanner (Aliases: pp)
spider Analyze website using DFS, quick usage: -u (Aliases: sp, ss)
weakpass Start the application (Aliases: weak, wp, wk, ww)
Flags:
-H, --headers stringArray Custom headers, eg: -H 'Cookie: 123'
-h, --help help for godscan
--host string singel host
--host-file string host file
-v, --loglevel int level of your log (default 2)
-o, --output string output file to write log and results (default "result.log")
--private-ip scan private ip
--proxy string proxy
--ua string set user agent (default "user agent")
-u, --url string singel url
--url-file string url file
Use "godscan [command] --help" for more information about a command.
./godscan completion zsh > /tmp/x
source /tmp/x
./godscan clean
dirbrute
可简写为dir
,dirb
,dd
./godscan dirbrute --url http://www.example.com
- 目录扫描数量较少,约50个,只针对渗透测试中容易造成数据泄漏、命令执行的几个点进行了探测
- 目录扫描会根据域名生成对应的备份文件路径,说不定会有意外之喜(删掉了,实际出现的太少)
- 要对单一url进行大线程、多文件探测,请使用dirsearch
- 基于相似哈希算法计算页面哈希,用于资产量较大的情况分辨重点资产
- 基于高德猜想——四等分点算法提取
0,1/4,1/2,3/4,1
处的关键字 辅助识别页面内容 NLP暂时不考虑 还没找到golang下很成熟的主题识别框架 - 默认不跟随重定向,可使用
-L
跟随重定向
./godscan dirbrute --url-file url.txt
- 该hash为fofa的hash 本质是murmur3哈希
- 新增了hunter的hash 本质是md5
./godscan icon --url http://www.example.com/ico.ico
# 默认top 500
./godscan port -i '1.2.3.4/28'
# 自定义端口
./godscan port -i '1.2.3.4/28' -p '12312-12334,6379,22'
# 指定top端口 数字范围在20000以内
./godscan port -i '1.2.3.4/28' --top 1000
# 第top100~第top200端口
./godscan port -i '1.2.3.4/28' --top 100-200
# 第top1000~第top2000端口
./godscan port -i '1.2.3.4/28' --top 1000-2000
- 使用nmap的探针规则进行探测,基于golang版本的nmap探针工具vscan_go修改而来
- 加入了自定义规则,针对性识别JDWP和HTTP协议,目前市面上的扫描器不针对性实现的话无法扫到JDWP
Probe TCP myhttp q|GET / HTTP/1.1\r\n\r\n|
match http m|^HTTP| p/HTTP Protocol/
- 默认基础模式,基础数量在数千级,可配合网络端在线使用或配合本地
hashcat
离线使用 --full
模式,生成数量在万级,建议只配合本地hashcat
离线使用- 会自动识别输入的身份证、电话号码,并根据常见的弱口令规则生成对应的弱口令
weakpass
可简写为weak
,wp
,wk
,ww
- 新加入生日对应的阴历
./godscan weakpass -k "张三,110101199003070759,18288888888"
# 中文会被转成英文,以一定格式生成弱口令,如干饭集团,需要自己去找一下他在网站中经常提到的一些叫法
./godscan weakpass -k "干饭,干饭集团,干饭有限公司"
# 自定义前缀
./godscan weakpass -k "张三,110101199003070759,18288888888" --prefix '_'
# 自定义分隔符
./godscan weakpass -k "张三,110101199003070759,18288888888" --sep '@,_'
# 自定义后缀
./godscan weakpass -k "张三,110101199003070759,18288888888" --suffix '123,qwe,123456'
# 连起来
./godscan weakpass -k '百度,baidu.com,password,pass,root,server,qwer,admin' --prefix '@,!,",123' --suffix '!,1234,123,321' --sep '_,!,.,/,&,+' > 1.txt
# 查看工具默认的后缀
./godscan weakpass --show
# 更为复杂的前后缀,适合本地跑hashcat爆破,本方法还会对字符串作变异,如o->0,i->1,a->4等等
./godscan weakpass -k '百度' --full > 1.txt
# -l 获取python格式的list 如["11","222"]
# mac下拷贝至剪贴板,其余系统可自行探索
./godscan weakpass -k "张三,110101199003070759,18288888888" | pbcopy
- 目前会寻找url地址、密码、各类token
spider
命令可简写为sp
、ss
./godscan spider --url http://example.com
# -d 1 可以指定爬虫的深度 默认为2 可以适当提高深度至3
# 从文件批量爬取 适合针对API型资产 url不建议太多
./godscan spider --url-file url.txt
注意:godscan默认不扫内网IP,来减少卡顿,如果要扫内网IP,使用--private-ip
参数即可
- HTTP响应 Server字段
- 构造404 报错 得到中间件的详情
- POST请求构造报错
- 爬虫 递归访问
- 正则提取注释 注释里往往有版本 github仓库等信息(删了 误报太多)
- 版本识别并高亮(删了 误报太多)
- 对注释里的内容匹配到关键字并高亮(删了 误报太多)
- 识别接口 主要从js里提取
- url特征 人工看吧 有些组件的url是很有特征的 google:
inurl:/wh/servlet
- vue.js 前端 识别
(app|index|main|config).xxxx.js
并使用正则提取里面的path - finger.txt来源
- 图标哈希
- 新增可直接根据图标地址计算hash的功能
- 在fscan的基础上新增从实际渗透测试中获取到的弱口令
- 根据给定的关键词生成大量弱口令
人工筛选时,可关注
- 域名
- 自身域名
- 非自身域名 如开发商 很多默认密码和域名有千丝万缕的联系
- html注释
参考: https://gh0st.cn/HaE/ 这里面有很多现成的规则 挑了一下重点
- 国内手机号
- OSS accessKey accessId
- link 识别
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o godscan_linux_amd64
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o godscan_win_amd64
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w " -trimpath -o godscan_darwin_amd64
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w " -trimpath -o godscan_darwin_arm64
# develop && auto release
git add . && git commit -m "fix bug" && git push -u origin main
git tag -a v1.xx
git push -u origin v1.xx
# delete
git tag -d v1.xx
git push origin :refs/tags/v1.xx
- 2024-08-21 支持带cookie访问
- 2024-07-01 新增全球端口top20000列表,
-p
参数保持不变--top 500
--top 500-1000
--top 2000-3000
-p 1-65535
- 2024-06-29
- 支持从环境变量(http_proxy,https_proxy,all_proxy)读代理,支持http、socks5
- 新增单目标api去重结果(
_api_unique.txt
) - 新增单目标api完整路径结果(
_api_unique_path.txt
)此时可使用dirbrute模块再递归扫一遍 - dirbrute模块新增多个actuator目录遍历绕过,
..;/
的数量为1-5和8,共六个,用于暴力遍历寻找actuator接口,可与_api_unique.path
结合使用
- 2024-04-15 修复map并发状态下的读写条件竞争,换成sync.Map
- 2024-04-09 优化日志输出
- 2024-01-11 修改从JS中寻找弱口令的正则,使用香农熵算法计算密码复杂度,使用表格显示
- 2023-09-13 新增js中提取api路径的功能
- 2023-08-11 新增目录单线程爆破的功能,并会根据域名爆破一些备份文件
- 2023-07-03 新增直接对icon计算hash的功能
- 2023-07-02 新增批量url关键路径扫描的功能
- 2022-08-01 新增部分真实场景中得到的弱口令 新增弱口令后缀,如123,qwe等,丰富生成后的弱口令
- 2022-07-04 修复没有子路径的bug, 移除packr 改用原生的embed库进行静态资源的打包
- 2022-06-10 更新了正则 对输出的表格进行了优化
- 2022-06-09 修复了大小写导致不高亮的问题
- 2022-06-08 修复了os.Open导致找不到文件的错误,改用packr库
本工具仅面向合法授权的企业安全建设行为,如您需要测试本工具的可用性,请自行搭建靶机环境。 为避免被恶意使用,本项目所有技术均为理论方法,不存在任何漏洞利用过程,不会对目标发起真实攻击和漏洞利用。 在使用本工具进行检测时,您应确保该行为符合当地的法律法规,并且已经取得了足够的授权。请勿对非授权目标进行扫描。 如您在使用本工具的过程中存在任何非法行为,您需自行承担相应后果,我们将不承担任何法律及连带责任。