-
Notifications
You must be signed in to change notification settings - Fork 519
Kscan v1.50 他Lei了~
其实自在吐司发布v1.25版本之后,一直就不太想专门针对Kscan写东西了,主要是没有时间,不过趁着这次棱角搞活动,就再写一篇吧,现阶段的kscan还是比之前强大了很多的。
我对于kscan的定义其实是分两个层面的,第一个是做为红队的资产发现工具,从使用fofa关键字检索资产,在自动化进行端口扫描和指纹识别(当然,端口扫描是可选项),到最终发现重点资产,为后续的攻击提供信息。另一个是在已经打点成功之后,自动化进行存活网段探测、然后进行指纹是被、以及常见,易获取权限的漏洞扫描(主要是弱口令、RCE等)。
那么接下来就让我来分这两个层面介绍一下全新Kscan v1.5吧~
首先,作为红队,往往我们需要通过搜索引擎、企业关系等方面初步确定目标的域名、关键字等内容,然后通过fofa、zoomeye来进行检索,在这个检索过程中,实际上是存在这很多重复、繁琐的工作的,比如当你从fofa找到一个质量很可以的关键字,发现了很多可疑的IP资产,这个时候你就会使用某个工具或者脚本导出地址清单,然后再使用某些指纹识别工具对这些地址进行指纹识别。
但这个过程现在在kscan会变得相当容易
是的,最终Kscan还是增加了Fofa模块,要使用此模块,需要事先配置环境变量:
export FOFA_EMAIL=abcdefg@gmail.com
export FOFA_KEY=****************348dc164c87e4d5a
然后使用kscan -f 参数即可直接调取Fofa结果
当然关于Fofa模块还有更多的可配置参数便于使用
--fofa-syntax 将获取fofa搜索语法说明
--fofa-size 将设置fofa返回条目数,默认100条
--fofa-field 可设置fofa搜索返回结果的字段排列顺序,默认排列顺序为:title,host,ip,port
--fofa-fix-keyword 修饰keyword,该参数中的{}最终会替换成-f参数的值
值得一提的是--fofa-fix-keyword参数,这个参数主要是便于在某些特定的场景,便于修改Fofa查询语句而设计的。
kscan --fofa-fix-keyword 'region="Xinjiang"&&title"{}"' -f 管理
kscan --fofa-fix-keyword 'region="Xinjiang"&&title"{}"' -f 后台
kscan --fofa-fix-keyword 'region="Xinjiang"&&title"{}"' -f 公司
kscan --fofa-fix-keyword 'region="Xinjiang"&&title"{}"' -f OA
如果只是这样,kscan与其他Fofa查询工具其实都没有很大的区别。这个时候需要提到两个参数:
--scan #当使用--scan参数,kscan将对所有来源资产进行端口扫描、及指纹识别
--check #当使用--scan参数,kscan将对所有来源资产进行指纹识别
当然,也可以使用--scan参数进行端口扫描
可以看到,绝大部分的关键自查已经高亮显示了,如存在列目录、phpinfo的页面,以及各类数据协议也能够精准的识别。
kscan均采用静态编译,且支持多个平台(windows、linux、drawin),基本能够覆盖绝大部分打点成功之后的使用场景。且是单文件,无需加载任何库文件。相当便携,唯一的缺点是目前体积较大,有40-50MB,后续会想办法做体积的精简
通常打点成功之后,会进行内网的存活网段探测,目前绝大部分探测的方法都是使用bat、sh脚本使用ping的方式去检测网关的存活性,这种方法单线程,且无法根据存活结果进行进一步的探测。而kscan的--spy模块,可以进行多线程的自动化存活网段探测。仅需要7秒就可以探测完一个B段。
也可以对--spy指定参数,进行多种网络环境的个性化探测
--spy #网段探测模式,此模式下将自动探测主机可达的内网网段可接收参数为:
#(空)、192、10、172、all、指定IP地址(将探测该IP地址B段存活网关)
当然,和前面一样,也可以使用--scan参数对探测结果进行扫描
得益于kscan的精准协议识别,所以在进行暴力破解的任务下发的时候,效率异常的高
目前Kscan支持的暴力破解协议如下
- 3389: "rdp"
- 3306: "mysql"
- 1433: "mssql"
- 1521: "oracle"
- 5432: "postgresql"
- 27017: "mongodb"
- 6379: "redis"
- 21: "ftp"
- 2121: "ftp"
- 445: "smb"
- 50000: "db2",
- 110: "pop3",
- 995: "pop3",
- 25: "smtp",
- 994: "smtp",
- 143: "imap",
- 993: "imap",
- 389: "ldap",
- 23: "telnet",
值得一提的是,kscan的暴力破解模块会尽量去规避重复工作,比如某个IP开放445、3389或者110、995等,则只会对其中一种协议进行暴力破解,这取决于谁先被发现。
使用起来也非常便携,只需要加上--hydra参数即可
hydra options:
--hydra-user #自定义hydra爆破用户名:username or user1,user2 or file:username.txt
--hydra-pass #自定义hydra爆破密码:password or pass1,pass2 or file:password.txt
#若密码中存在使用逗号的情况,则使用\,进行转义,其他符号无需转义
--hydra-update #自定义用户名、密码模式,若携带此参数,则为新增模式,会将用户名和密码补充在默认字典后面。否则将替换默认字典。
--hydra-mod #指定自动化暴力破解模块:rdp or rdp,ssh,smb
关于kscan后续的开发计划,大致还是往高质量的漏洞扫描器的方向走吧,但是具体的架构目前还没有一个很成熟的想法,但肯定是往这个方向的。剩下的就是现有功能的优化了,截止到目前kscan已经初具雏形了,我还是非常高兴的,哈哈哈哈哈哈
最后呢就是感谢了
感谢各位在Gayhub开源的大佬们,给了我很多思路和经验,fscan、ladon等等
感谢无私贡献指纹的大佬们,Ehole、nmap等等
感谢提交bug、开发建议的各位大佬们,太多了就不点名了,哈哈哈哈
最后依然欢迎各位迎来我的Github提交Bug、需求[https://github.com/lcvvvv/kscan/]