一个资产探测扫描器.
Usage of ./getitle:
-d int 超时,默认2s (default 2)
-ip string IP地址 like 192.168.1.1/24
-m string 扫描模式:default or s(smart)
-p string ports (default "top1")
-t int threads (default 4000)
-o string 输出格式:clean,full(default) or json
-f string 输出文件名,默认为空,请用相对路径(./)或绝对路径
-k string 启动密码(必须输入)为puaking
-l string 从文件中读取任务,例如:-l ip.txt
端口预设(v0.2.0 beta4):
case "top1":
ports = []string{"80", "443", "8080"}
case "top2":
ports = []string{"80-90", "443", "4443", "7000-7009", "9000-9009", "8080-8090", "8000-8020", "8443", "8787", "7080", "8070", "7070", "9080", "5555", "6666", "7777", "9999", "8888", "8889", "9090", "8091", "8099", "8848", "8060", "8899", "800", "801", "10000", "10080", "10800"}
case "top3":
ports = []string{"4430", "9443", "6080", "9091", "8100-8110", "8021-8030", "8880-8890", "8010-8020", "8090-8100", "8180-8181", "8800", "8761", "8873", "8866", "8900", "8282", "8999", "8989", "8066", "8200", "8111", "8030", "8040", "8060", "8180"}
case "db":
ports = []string{"3306", "3307", "1433", "1521", "5432", "6379", "11211", "27017"}
case "rce":
ports = []string{"1090", "1098", "1099", "4444", "11099", "47001", "47002", "10999", "45000", "45001", "8686", "9012", "50500", "4848", "11111", "4445", "4786", "5555", "5556"}
case "win":
ports = []string{"21", "22", "23", "53", "88", "135", "137", "139", "389", "445", "1080", "3389", "5985"}
因为并发过高,性能限制主要来自路由器设备.因此建议在阿里云,华为云等vps上使用,如果扫描国外资产,建议在国外vps上使用.本地使用如果网络设备性能不佳会带来大量丢包.
如果使用中发现疯狂报错,大概率是io设备问题(例如多次扫描后io没有被正确释放,或者配合proxifier以及类似代理工具使用报错),可以通过重启电脑,或者虚拟机中使用,关闭代理工具解决.如果依旧无法解决请联系我们.
还需要注意,upx压缩后的版本虽然体积小,但是有可能被杀软杀,也有可能在部分机器上无法运行.
一般情况下无法在代理环境中使用,除非使用-t参数指定较低的速率(默认协程池上线为4000).
./gt.exe -ip 192.168.1.1/24 -p top2
./gt.exe -ip 172.16.1.1/12 -p top2 -m s
启发式扫描只会先扫描80端口,如果在该C段中扫描到了80端口,则进行已配置端口的完整扫描.加快扫描速度.
./gt.exe -ip 172.16.1.1/12 -p top2,db,1000-1009,12345
当前top2预设约90个端口,top2+top3约140个端口,主要从来内外网http资产探测.
-d 4-t 1000指定-k sangfor./gt.exe -ip 172.16.1.1/12 -p top2,135,137
配置文件格式ip.txt:
47.95.116.67/24 top2
121.36.32.125/16 db smart
./gt.exe -l ip.txt
-e参数开启简单的漏洞探测.
当前只支持redis未授权,shiro key发现,ms17-010(免杀原因临时移除)
./gt.exe -ip 172.16.1.1/12 -p top2,445 -e
-v参数开启详细版本号匹配
./gt.exe -ip 172.16.1.1/12 -p top2 -v
icmp扫描
指定探测内网网段: ./gt.exe -m a -p top2 (默认为10/8,172.16/12,192.168/16)
外网icmp探测: ./gt.exe -ip 47.95.116.1/16 -p icmp
外网icmp启发式扫描: ./gt.exe -ip 47.95.116.1/16 -p top2 -m s -n icmp
配置: win10 超时2s,协程数4000
扫描外网C段,top2预设端口(共70个端口). 耗时10s
扫描外网B段,top2预设端口, smart模式. 耗时3分钟
扫描内网172.16.0.0/12段,smart模式,资产较少的情况下耗时10分钟.
如果发现的目标多时间会略微增加.
当前getitle扫描准确度与速度以及能获取的信息量均优于Serverscan,allin等扫描器.
指纹的json位于src\Utils\finger.json.
为了保证单文件可使用,将会在运行gox.bat时将json中的数据写到src\Utils\finger.go中
配置示例:
[
{
"name": "Mysql_unauthorized",
"level": 0,
"defaultport": "3306",
"regexps": [
"Host .* is not allowed to connect to this MySQL server"
]
}
]
name为规则名,string,请保证不重名
level为优先级,int,最高优先级为0
defaultport为该服务默认端口,string,用作提高匹配速度
regexps为正则列表,[]string, 默认为数组,同一规则可以配置多个正则依次匹配
json不接受\x00,\0等转义,请将类似转义修改成\u0000.
请注意数组元素间的逗号,否则可能导致json报错
make release VERSION=VERSION to bulid getitle to all platform
Windows build muli releases
go get github.com/mitchellh/gox
gox.bat
v0.0.1 just a demo
v0.0.3
获取不到getitile的情况下输出前13位字符(如果是http恰好到状态码)
v0.0.4
简化了端口参数
v0.0.5
忽略匹配title的大小写问题
v0.0.6
添加了大于B段启发式扫描模式
v0.1.0
修复了扫描单个ip报错的情况
v0.1.1
修复了启发式扫描的ip计算错误的bug
添加了基于Server与X-Powered-By的简单指纹识别
v0.1.2
重构了输出函数
v0.1.3
添加了json格式输出
v0.1.4
添加了key
v0.1.5
修复了格式化输出的一个bug,导致无法使用tee重定向
v0.1.6
-p top2,db,12345 v0.2.0(beta1/2)
v0.2.0(beta3)
v0.2.0(beta4)
v0.2.0(beta5)
修复了一个json格式输出的bug
v0.2.0(beta6)
https://1.1.1.1,并自动删除https://或http://https://baidu.com,并自动获取ip.如果域名绑定了多个ip,只会获取第一个.1080,3000,5000,6443等常见端口-o html配置指纹识别v0.2.0(beta7)
puakingauto关键字,将会自动对10/8,172.16/12,192.168/16三个内网网段的所有c段的第一个ip,如10.0.0.1进行探测,示例./gt -ip auto -p top2,默认为icmp扫描,也可以使用-m s指定为socket探测80端口-p top2,icmp-m sp,则使用icmp进行启发式扫描auto的时候,自动启用icmp探测v0.2.0(beta7.1) 修复beta7版本的多个bug
## Todo List
添加NetBIOS [√]
添加MS17010 [√]
添加OXID [√]
添加简单目录扫描 (将在新的工具中实现,gt主要进行资产探测)
更灵活的端口模式 [√]
更智能的扫描配置 [√]
重构主要逻辑代码 [√]
添加从文件中读取扫描目标 [√]
添加常见服务指纹识别