1. 程序简介 Railgun为一款GUI界面的渗透工具,将部分人工经验转换为自动化,集成了渗透 过程中常用到的一些功能,目前集成了端口扫描、端口爆破、web指纹扫描、漏洞扫 描、漏洞利用以及编码转换功能,后续会持续更新。 1.1. Tips 1. 工具为64位程序。 2. 工具设置有启动密码,密码查看readme.md。 3. 工具设有托盘,关闭窗口不会关闭程序,需通过托盘操作。双击托盘可还原 或最小化。 4. 如程序出现问题,可点击重启应用快速重启应用。 5. 程序退出可通过托盘,或者选择菜单栏 文件-退出。 1.2. 更新日志1.2.1. V1.4.6 1. 漏洞利用 1. 优化插件刷新功能 2. shiro利用优化 1. 编码模块重构 1. 分页可编排功能基本完成 2. 完成从文件读写操作 3. 编码使用说明(UI功能已完成,说明也基本完善) 4. 新编码 zip编码 language编码 优化编码禁用效果 1.2.2. V1.4.5 1. 暴力破解 1. 更新smb2 hash爆破功能,自动识别输入密码是否为hash 2. 修复smb2 域内爆破机器账户bug问题。 3. 修复smb2 hash正则识别规则 4. 修复mongoDB误报问题 5. redis打印版本号 1. 漏洞利用 1. 更新各个模块UI,根据消息类型不同颜色打印 2. exp插件扩展,可支持ysoserial利用链调用。 1. 修复UI最小化bug 2. 辅助模块 1. 杀软规则更新1.2.3. V1.4.4 1. 漏洞利用 1. 2. ssh批量执行命令,增加不同账号密码,格式如root:root@192.168.1.1 2. O2OA RCE 远程命令执行(CVE-2022-22916) 3. WSO2 文件上传 (CVE-2022-29464) 3. 暴力破解 1. 4. 增加mssql/mysql的指令执行 2. 增加协议多端口扫描,左侧选项端口里以逗号分割端口即可,如 22,2222 5. 漏洞扫描 1. 6. 增加漏洞搜索 2. 增加漏洞信息查看 7. 漏洞利用/漏洞扫描插件化,在无需编译的情况下,直接运行go代码,实现 DIY poc/exp 1. 8. https://github.com/lz520520/railgun-plugin-demo 2. https://github.com/lz520520/railgunlib 1.2.4. V1.4.3 1. 暴力破解 2. 增加每个目标自定义不同账号密码、端口等等,格式如 ssh://root:root@192.168.1.1:22(不能和正常格式同时使用) 3. 增加rdp/oracle爆破 4. 端口扫描 1. 5. 优化web服务识别逻辑 2. icmp增加低权限调用系统ping 3. 增加host格式扫描,如192.168.1.1:80(不能和正常格式同时使用) 6. 扫描结果存储1. 7. 端口扫描、暴力破解、目录扫描、web指纹均实现历史数据查询,扫 描后会自动存储,右键菜单查询即可 2. 右键也可手动存储,用于从外部拷贝数据 8. 漏洞利用 1. 9. 增加帆软漏洞利用 2. 修复切换显示bug 1.2.5. V1.4.2 1. 编码转换 1. 增加seeyonDB解密 2. 漏洞利用 1. 增加spring beans 利用 3. 信息收集 1. 优化刷屏过快问题,加入时间间隔,先5S,后续再自定义。 ✅端口扫描打印ssl证书 1. 漏洞扫描 1. 2. 增加 srping beans 1.2.6. V1.4.1 1. 漏洞利用 1. 2. 增加致远OA历史漏洞利用 2. 增加了spring cloud spel rce利用 3. 增加apisix RCE利用 4. 向日葵RCE 3. 端口扫描1. 4. 向日葵端口指纹识别 1.2.7. V1.4.0 1. 漏洞利用 1. 2. Conflunce CVE_2021_26084优化,增加上传 2. gitlab CVE-2021-22205 优化,增加管理员用户添加、反弹shell等等 3. gitlab CVE-2021-22205 增加无需CSRF-token利用。 3. 漏洞扫描 1. 4. 增加gitlab 版本扫描 1.2.8. V1.3.9 1. 端口扫描 增加ping存活探测(这个可能会有问题,目前测试版暂未发现问 题) 1. web指纹 1. 2. 基于tide-202108 指纹库更新 2. 优化非cms扫描请求流程 3. 更新测试指纹库,用于临时指纹批量测试。 3. 漏洞利用 1. 4. 增加 Conflunce CVE_2021_26084 2. 增加vcenter CVE-2021-22005利用 3. apache httpd CVE_2021_42013利用 4. shiro增加1000个key的选项 5. 增加gitlab CVE-2021-22205利用 6. shiro-550增加POST方法1.2.9. V1.3.8 2021年8月16日 1、漏洞利用 jboss反序列化优化报错回显 优化ysoserial显示逻辑,只显示可用的几条链 优化上传模块里的上传模式,只显示当前漏洞支持的上传模式。 增加致远OA fastjson漏洞 支持24/47/68版本 增加通用fastjson漏洞利用,支持24/47/68版本 增加payload别名,方便选择。 1.2.10. V1.3.7 1. 漏洞利用模块的UI优化 shiro key位置变化,可自定义rememberMe关键词 增加调试模式用于打印错误日志以及原始数据 2. 漏洞利用 增加CommonsBeanutils1Shiro利用链,不再依赖common-collection,实现 tomcat和spring回显 CVE-2021-21972增加vcenter版本获取 vcenter CVE-2021-21985漏洞利用新增,三条利用链 增加weaverOA最新漏洞 内存马部分优化,各类内存马加密,增加springboot拦截器 3. 目录扫描 修改状态码设置,改为edit自定义 4. 端口扫描 增加网关扫描 5. UI框架重构 6. 辅助工具 增加IP解析模块拖拽文本bug修复 1.2.11. V1.3.6 202-04-26 1. 漏洞利用:新增citrix CVE-2019-19781 2. 漏洞扫描:新增 citrix CVE-2019-19781 1.2.12. V1.3.5 2021-03-26 1. 增加杀软识别模块 2. 漏洞利用:优化了Vcenter getshell利用方式。 3. 漏洞利用:修改shiro小bug 4. 内存马整体UI以及内容优化,这块重点强调下,每种注入方式都支持 load/unload/show 5. 漏洞利用:新增F5 CVE-2021-22986 参考:https://github.com/feihong-cs/memShell 1.2.13. V1.3.4 2021-03-12 1. 增加协程数状态查看 2. 漏洞利用:信息栏增加搜索漏洞功能,优化信息展示 3. 漏洞利用:优化命令执行子选项。 1.2.14. V1.3.3 2021-01-151、常见端口添加5001 \2. 漏洞利用:新增beanutils2 gadget 回显、内存马注入。 \3. 漏洞利用:新增fastjon组件检测以及1.2.47以下漏洞回显利用 \4. 信息收集:优化各模块的停止事件延迟,已无延迟。 \5. 漏洞扫描:增加shiro专项指纹识别 \6. 优化了各模块超时设置的粒度,修改为毫秒。 \7. 漏洞利用: 新增weblogic CVE-2021-2109 1.2.15. V1.3.2 2020-12-15 6. 泛微OA RCE URL编码 7. 命令执行回显换行问题 8. 重写端口扫描、暴力破解、目录扫描、web指纹扫描、漏洞扫描的并发框架 9. 目录扫描:新增不同扫描模式选择等 10. 全局选项取消,细化到各个模块,防止模块间误操作 1.2.16. V1.3.1 2020-11-11 1. 解决部分窗口复制粘贴问题 2. 端口扫描:修复ICMP扫描并发误报问题 3. WEB指纹:shiro识别优化 4. 暴力破解:部分模块优化 5. 修复自定义Host不生效问题1.2.17. V1.3.0 2020-10-10 1. 漏洞扫描:新增T3/IIOP协议识别(暂时没想好放哪) 2. 更新UI库至2.0.7,解决控件事件冲突问题。 3. WEB指纹:修复bug。 4. 暴力破解:新增VNC/WMI爆破 5. DNSLOG: 更新配置参数 1.2.18. v1.2.9 2020-09-10 1. 暴力破解:增加LDAP/MemCache/cobaltstrike 2. 信息收集:各模块新增暂停按钮 3. 将http代理和http headers调整为全局设置。 4. 目录扫描:增加URL首次存活探测 5. 端口扫描:新增右键发送暴力破解模块菜单 1.2.19. v1.2.8 2020-08-22 (详细内容更新到此) 1. 信息收集:新增结果栏复制及粘贴功能 2. 端口扫描新增多平台命令行版本,结果可直接导入GUI界面。 3. 新增目录扫描模块,除正常目录扫描功能,还可一键生成自定义目录字典,方便定向 扫描。 1.2.20. v1.2.72020-08-03 1. 端口扫描:新增RPC 网卡扫描 2. 漏洞扫描:增加thinkphp poc 3. 漏洞利用:新增shiro550新检测方法、CVE-2020-14645 4. 漏洞利用:优化反序列化gadget探测、dnslog回显及分段传输上传通用回调函数, weblogic/s2/thinkphp均增加如上功能 6. 漏洞利用:dnslog增加ceye接口调用 1.2.21. v1.2.5 2020-07-09 1. 漏洞利用模块:新增F5 RCE exp及poc;新增shiro padding oracle利用;shiro rce新增分段上传文件功能。 2. 优化漏洞利用及漏洞扫描框架 1.2.22. v1.2.4 1. 漏洞利用模块:优化部分exp 1.2.23. v1.2.3 1. dnslog脚本及相关模块优化。 2. 增加各个模块异常日志记录。 3. 修复tomcat-AJP_LFI GBK乱码问题。 4. 漏洞扫描模块:修复CVE-2019-2725 漏判问题。1.2.24. v1.1.0.9 2020-05-29 1. 修复各模块由于UI库更新的bug。 2. 编码转换:增加自动装换功能。 3. 端口扫描: 增加netbios探测windows主机存活。 4. 优化了shiro 的poc验证过程。 5. 优化了shiro 的exp利用。 1.2.25. 1.1.0.8 2020-05-17 1. UI库更新,从go版delphi迁移至lazarus。 2. 爆破模块:修复mssql爆破bug。 3. 漏洞利用模块: 新增自定义header及自定义请求包。 1.2.26. v1.1.0.7 2020-05-01 1. 端口扫描:双击端口会自动打开网页访问,无论是否识别为web。 2. 端口扫描:新增推荐端口范围选择按钮。 3. smb低版本爆破bug修复。 4. 漏洞利用模块:设置未启用功能隐藏。 5. web指纹:新增shiro指纹识别开关(由于需要设置cookie)。 6. 新增域名扫描模块(Demo),目前只支持域名解析。 7. 菜单新增爆破字典UI设置8. 端口扫描增加域名识别,可导入IP列表。 9. 增加信息收集各模块联动功能,将域名及IP进行关联。 1.2.27. V1.1.0.6 2020-04-25 1. 增加通达OA任意用户登录漏洞 2. 增加phpcms9.6.0前台上传漏洞 3. dnslog 设置API配置文件存储。 4. 爆破模块新增用户密码导入。 5. 端口扫描,识别为web协议点击IP会自动打开浏览器访问 6. 各类扫描结果可多选复制至剪切板。 7. unicode编码bug修复。 2020-04-17 1. 添加thinkphp 上传webshell功能。 2. shiro反序列化更新密钥并优化exp 3. dnslog 过滤结果bug修复 4. 端口扫描增加多次校验机制 2020-04-01 1.2.28. 1.1.0.4 2020-04-01 1. 新增Jboss CVE-2017-0704 CVE-2017-12149 exp 2. 新增重启应用功能 3. 新增MDB编码 4. 新增更新模块5. 编码模块新增拖拽读取文件 6. 调整爆破模块设置,更新为IP并发*每IP并发。 7. 新增启动密码。 1.2.29. 1.1.0.2 2020-03-15 UI库dll文件保存至资源段运行自动释放,后续无需携带dll文件。 增加UTF7编码。 更新通达OAgetshell URL编码优化 1.2.30. 1.1.0.1 2020-03-07 1. webfinger进度条没满就退出了,(解决,主要是因为不检测每任务channel是 否为空) 2. web指纹title html解码(已解决) 3. 爆破首次检测(通过map设置timeout检测已解决) 4. 导入列表自动添加http前缀(已新增,可设置导入域名所自动添加的协议和端口) 5. 暴力破解增加单账号爆破成功则结束该IP爆破。 6. 端口banner开关(已添加) 7. 解决webfinger扫描超时过长问题 8. listview的subitem编辑框偏移错位bug修复1.2.31. 1.1.0.0 2020-03-03 将python大部分代码迁移至go,在工具大小和稳定性、速度上都得到了提升。 MS17-010漏洞exp暂时未迁移,后续考虑单独脚本利用。 编码模块只迁移了小部分常用编码,其他类型后续再考虑增加。 新增TOMCAT-AJP漏洞的poc和exp。 新增web指纹扫描功能,使用fofa+cms方式扫描,已经做了不少识别率的优化。 新增端口扫描结果发送至web指纹扫描模块,将识别为http/https的进行发送。 端口扫描、web指纹新增结果保存功能,可将结果导出为csv格式文件。 漏洞扫描模块新增chunk编码扫描以及代理扫描。 weblogic xml反序列化新增payload,并增加文件上传功能。 1.2.32. 1.0.2.0 2019-12-25 exp更新chunk分块传输,但与代理冲突,开了chunk再使用代理会超时。 支持自定义web、smb端口及是否开启额外特征识别扫描。 更新系统托盘。 优化启动窗口不置顶问题。 优化了poc扫描,标识哪几个payload有效。 需要注意的是chunk编码是全局的,因为直接修改了requests库,后续再优化成单 个模块。1.2.33. 1.0.1.9 2019-12-12 更新编码模块,新增unicode的base64编码。 更新dnslog模块,自定义API获取dnslog结果,并支持dnslog拼接解码还原执行结 果。 1.2.34. 1.0.1.8 2019-12-05 更新编码模块,增加java.lang.Runtime.exec编码 可使用ctrl+enter快捷进行编码转换 增加编码状态保存功能,可以在至多3种编码配置间切换,使用ctrl+数字键可快速 切换 1.2.35. 1.0.1.7 2019-12-02 更新rdp爆破模块,可支持win7以上系统爆破 优化exp模板,更易于扩展。 优化shiro exp,可遍历key查找正确key,且可自定义key 1.2.36. 1.0.1.6 2019-11-16 修改编码模块UI 新增程序启动界面,缓解启动慢问题1.2.37. 1.0.1.5 2019-11-11 新增ysoserial payload,增加shiro反序列化。 1.2.38. 1.0.1.4 2019-11-05 暴力破解模块进行优化,修复bug。 1.2.39. 1.0.1.4beta 2019-11-04 更新了暴力破解模块,该模块支持端口较少,后续会继续增加 漏洞利用模块新增批量攻击功能,通过设置多行URL即可 工具更新成至64位,后续只支持win7以上64位系统运行 1.2.40. 1.0.1.3 新增编码转换模块 rdp/smb支持多端口同时漏洞扫描,端口格式参考端口扫描 1.2.41. 1.0.1.2 poc漏洞选择UI优化。 新增泛微OA/seeyon OA等exp exp新增超时设置 增加更新检测功能 工具汉化 修复子线程卡主线程的bug1.2.42. 1.0.1.0 重构了exp部分,方便后续新的exp可以以插件形式更新。 漏扫部分新增web漏洞扫描,可以选择多个漏洞类型,批量扫描。 扫描方式改为多进程方式,提高扫描速度。 2. 信息收集 目前信息收集可将域名扫描、端口扫描、web指纹联动,可输入已收集的子域名 列表,自动完成解析、端口扫描、web指纹扫描。 2.1. 域名扫描(已暂停开发) 域名扫描目前还只是demo版,仅支持域名解析。界面如下 每行输入一个域名,点击”开始扫描”会输出解析结果。 备注:该模块后面暂时不考虑继续开发了,网上如oneforall等工具已经很强大, 并且能满足当前需要,所以暂停开发。参数介绍 1. 并发数:单线程多任务并发,可多核CPU运行。 超时:单位秒。 2. API设置,由于UI库迁移问题,暂时关闭了。 3. 扫描结果,包含域名/子域名/IP 3个信息,目前来说域名和子域名是一样的,子域名扫描功能还没做,可以 配合其他子域名扫描工具使用,解析IP使用逗号分隔。 4. 其他 结果导出:扫描结果导出为csv。 发送至端口扫描:将扫描结果IP进行整合去重发送至端口扫描,左侧有个勾 选框,如果勾选了,在域名扫描结束后会自动发送并执行端口扫描。 目前这个模块还比较鸡肋,唯一比较好的地方是和端口扫描联动,会将域 名和IP绑定关系一并发送至端口扫描模块,在端口扫描结果中会显示IP和域名的 对应关系,具体细节可查看端口扫描部分。 2.2. 端口扫描 端口扫描界面如下端口扫描是使用goroutine实现并发扫描的,目前仅支持TCP端口扫描。 使用比较简单,输入端口以及IP列表,点击开始扫描即可,结果在”扫描结果”实 时显示。 新增暂停扫描功能,可暂停扫描,维持目前进度。 其他参数下面一一介绍。 2.2.1. 前三行 1. 并发数:单线程多任务并发,可多核CPU运行。 超时:单位秒。 重复发送次数:这里不用去修改,是个还未内置的功能,可设置两次连接探 测保证目标端口扫描结果可靠。 网关:用于大型网络存活扫描,会扫描每个C段的默认1和254来判断存活, 以逗号分割需要扫描的IP,如修改为 1,251,254 也行。 2. 端口默认设置了常见应用端口,如果自定义,格式可参考如下: 80:只扫描80端口 80-90:扫描80-90的11个端口 80,90:扫描80和90两个端口 80,90,7001-7010:扫描80、90、7001到7010,一共12个端口 示例: 3. 新增了常见端口选项设置,点击相应按钮自动切换端口范围,端口范围是参 考nmap。 V1.3.9新增ping探测,勾选后,会对目标先ping探测,然后再扫描端口 2.2.2. IP输入 4. IP列表输入需要扫描IP,可设置多行,每行设置一个格式,格式参考如下: 192.168.1.1:扫描192.168.1.1 一个IP 192.168.1.1-192.168.1.128:扫描192.168.1.1到192.168.1.128共128个IP 192.168.1.0/24:扫描192.168.1.0/24整个C段的IP 192.168.1.1:22 : V1.4.3新增IP端口独立扫描,但不支持和其他格式同时扫 描,只允许该类型单独扫描。 示例: 除此之外,还可以手动导入IP列表,如果仅仅是IP列表,复制粘贴就好了, 但这里可以导入域名和IP的对应关系,这样扫描结果会直接将域名和IP对应起 来。 导入格式如下,每行一个域名IP对应,用分号分割域名和IP,一个域名可对 应多个IP,IP之间用逗号隔开。 鼠标移动到输入栏也会有提示2.2.3. 协议指纹 左侧有协议指纹识别,默认全开启,无需扫描banner等信息关闭即可,端口双击 即可修改。 2.2.3.1. Banner Banner:扫描时会接收banner信息进行显示。 示例: 2.2.3.2. SMBSMB:默认为445,目前可扫描提取xp至2012操作系统信息,和主机名(如果为 域主机标识域名),如果识别不出操作系统可能为2016/win10或特殊原因。(特征 栏:操作系统信息,标题栏:主机名及域名) 示例: 2.2.3.3. WEB WEB:默认为80-90,443,7001-7010,8080-8090,8888,9000,9200,会在端口发现基 础上发送GET请求,自动识别目标是http或者https,并提取返回包里的头部字段里的 x-powered-by和server字段,并获取body里的title字段,自动进行302跳转,目前不会 识别js跳转。(banner栏:目标为http或https;特征:头部返回字段信息;标题:body 的title字段) 示例:1.4.3 新增cert扫描,如果识别到https则会提取cert 2.2.3.4. NetBIOS NetBIOS: 默认为137,是唯一一个使用UDP协议扫描端口,可获取目标MAC和 主机名。 示例: 2.2.3.5. RPC RPC:默认为135,通过该协议可扫描目标所有网卡信息,用于发现多网卡主机。 示例:2.2.4. 扫描结果 目前包括IP/域名/端口/默认端口类型/Banner/特征/标题 7个信息,其中默认端口 类型仅仅用于辅助,标识常用端口默认应用类型, 并不是指纹识别 。(下图缺失域名 栏,正常域名栏为空) 如果导入域名IP列表 扫描结果就如下显示,域名栏会显示于该IP关联的1个或多个域名。2.2.5. 其他 结果导出:可将扫描结果导出为csv格式文件。 发送至WEB指纹:将结果banner识别为http或https的格式化为合规URL发送到 web指纹的”URL列表”里。(左侧有个勾选框,如果勾选了则扫描结束会自动发送并执 行web指纹扫描) 如下会格式化为https://47.103.195.0:443 如果域名栏有内容,则发送至指纹扫描的是域名而不是IP。 最后这里有个未提示的隐藏功能,在扫描结果中,双击指定行的端口栏,会自动 打开浏览器访问,无论是否识别为web应用。 如果banner正常识别为http或https,格式和上述发送至web指纹的URL一致,包括 自动使用域名去访问(如果域名栏不为空)。 如果banner未识别http或https,统一使用http去访问。 2.3. 暴力破解 暴力破解模块参考了超级弱口令工具,包括界面和口令库,优化了爆破速度和误 判率等。整体界面如下配置大致流程: (1)勾选需要爆破的协议以及端口设置 ( 2)输入IP地址(和端口扫描格式一样) ( 3)手动填入单个账号密码,或勾选”选择内置字典” ( 4)开始扫描,结果会实时显示 2.3.1. 参数详解 1. 左边协议是目前已支持爆破的,下面介绍下这些协议注意事项 ftp:用的比较少,暂无问题发现,待续 ldap: 用于ldap用户爆破,这是比较特殊的一个,输入设置账号后缀,如 cn=*,cn=Users,dc=god,dc=org,爆破时用户名会替换 * ssh:测试速度快,暂无发现误判情况,推荐使用。 Smb:由于golang对SMBv1支持不好,winxp/03使用net use去探测,建议使用单并发,否则容易误判,win7以上可正常配置爆破。 mssql: 测试暂无问题发现,能准确识别。 mysql:测试暂无问题发现,能准确识别,目标可能开启封锁IP需注意 PostgreSQL:未测试过,待续 MongoDB:未测试过,待续 Redis:测试暂无问题发现,可测试未授权。 memache:目前仅支持未授权访问测试,即不能输入账号密码。 WebAuth: 用于basic auth认证,比如tomcat管理后台爆破。 vnc: 测试V3.0/V4.0无问题,高版本会有爆破限制,尽量单密码测试。wmi: 该连接等待时间会较长,爆破较慢。 cobaltstrike:目前测试cs4.3以下爆破均无问题。 telnet: 该模块误报率较高,banner识别问题多,待优化。 rdp(V1.4.3新增): 支持rdp爆破,但协议比较复杂, 爆破速度慢,尽量优化字 典。 oracle(V1.4.3新增): 未测试过,待续 smb2(v1.4.5新增): 这个其实和smb差不多,但效果会比smb好,并且支持 hash爆破,密码框输入NTLM值自动识别;也是仅支持win7以上版本。如果是域 账号,无需输入域前缀,只需输入账号即可。 2. 并发设置里,IP并发即同时爆破几个IP,每IP并发即每个IP并发爆破数。目 前可手动设置单用户密码,或勾选”选择内置字典”,会自动调用brute_dict目 录下的不同协议字典。(请勿修改字典名)账号后缀用于ldap等协议的账号格式化 3. 仅破解一个账户表示,如果指定IP的指定协议已经爆破出用户密码,则不再 进行该IP+协议的爆破。 4. 账号密码除了选择内置,还可点击导入按钮,手动导入自定义的账号密码 表。 5. Debug用于在最下面输出框里输出详细错误日志用于排查,默认开启。 6. 扫描结果如下显示 7. 最下面的窗口用于回显成功或者失败信息,主要用来判断失败原因,目前刚 做,后续还需要优化这块日志显示,通过”debug”开启日志打印。 整体示例如下(最新版本并发调整为IP并发*每IP并发) 扫描结果可通过如下按钮导出为csv文件。内置字典操作可通过” 设置-爆破字典设置”打开操作,界面如下 双击指定字典名称就可显示内容,修改完点击更新即可。 2.3.2. ssh命令执行(V1.4.3新增) 可指定命令,当ssh爆破成功后会自动执行。后续会考虑增加数据库等其他模块 的指令2.4. 目录扫描 界面如下 该模块主要参考御剑模式做的,基于御剑增加了一些功能,如生成URI字典、仅 扫描单URI、自定义404页面特征等等。 下面一一介绍各功能。 2.4.1. 设置说明 1. 首行参数这个和其他模块和web指纹扫描差不多,只是多了一个模式,HEAD/GET,扫描 使用的HTTP方法不同。 超时次数:默认为3次,即表示扫描目录超时3次,则停止该URL的扫描,如果设 置为0表示不计算超时次数。 模式(V1.3.2新增): dict:使用选择的字典扫描 fuzz:可自定义字符串和fuzz长度扫描 single: 仅扫描一个URI 2. 次行参数 单URI检测:当模式选择 single ,并输入指定URI,那么就不会读取URI字 典,而是仅使用一个路径批量扫描,这个功能可用于批量检测某一CMS特 征,或者是否存在漏洞路径。 Fuzz元字符:当模式选择 Fuzz ,可自定义fuzz字符串以及长度区间。 404页面过滤: 输入正则表达式,主要用于某些网站错误页面也是返回状态码 200,在该处输入错误页面的正则表达式,则当正则匹配返回内容时,判定 为404,可有效过滤错误页面。注意: 仅在GET模式下生效。 3. URL输入及URI字典 URL列表: 严格按照http(s)://x.x.x.x/格式。 生成URI字典:这个功能用于特定CMS字典生成,比如判断目标可能为某个 CMS,需要扫描敏感路径,如果是开源的,下载源码后,可根据源码路径自动 生成字典进行扫描。扩展名过滤: 用于生成URI字典时过滤,默认过滤js,gif,jpg,png,css这5个后缀 不加入字典,清空则所有文件都加入字典。 生成字典示例: 状态码: 表示返回状态码有效需要打印显示的。 URI字典列表: 可单选、多选移动,刷新按钮可刷新当前字典列表信息。并 且在列表栏右键即可打开字典路径进行调整。 4. 扫描结果 扫描结果很简单,就不多讲了。双击URL栏会自动打开默认浏览器访问。 结果导出功能暂时未做。 2.4.2. 举例2.5. web指纹 界面如下 Web指纹扫描,用于识别目标站点使用的框架及特征等。主要依赖fofa+cms指纹 库,使用sqlite进行存储和读取,sqilte文件为cms_finger.db,fofa和CMS指纹各2000条 左右,具体可使用navicat等工具打开查看。 有三种解析方式: Burpsuite导出文件解析:burpsuite代理记录的请求可导出成xml进行解析判断指 纹。 Fofa指纹扫描:只进行一次URL请求,根据返回结果的各个部分进行指纹识别, 指纹规则与fofa搜索规则格式一致。Fofa+传统指纹扫描:传统指纹会构成不同URL路径请求目标,每次请求返回结 果还会经过fofa指纹识别。 CMS指纹库 Fofa指纹库2.5.1. 设置说明 1. 首行参数设置 URL并发和指纹并发:URL并发表示同时扫描的URL个数,指纹并发表示每个 URL扫描时并发的cms指纹数;如上图所示,如果只有1个URL则同时发起的HTTP请 求数为25,如果超过4个URL扫描则同时发起的HTTP请求数为100。 间隔:主要用于waf场景,为每个并发请求设置时间间隔,防止过快被WAF检测 到。 Shiro: 该选项框默认勾选,因为shiro指纹识别需要设置”Cookie: RememberMe”,暂时不清楚是否会对部分网站造成影响,没做成内置模块。 2. 第二行设置 当勾选burp选项时,可设置burp的xml文件路径,可解析burp文件,但同时cms和 fofa扫描无法使用。 Fofa指纹扫描为默认勾选无法取消,可根据情况是否结合cms使用,如果cms不勾 选,则每个URL只发送一次请求;否则每个URL会根据cms的指纹数发起相应数量的 请求。 3. URL设置 URL列表写入方式有三种: 1. 手动设置符合URL完整格式的字符串,每行一个URL,如果开启cms指纹扫 描,URL不能设置为具体资源,只能是一个路径,因为后面需要拼接指纹库 里的路径。 2. 通过端口扫描识别为http或https的结果发送,写入该编辑框。 3. 如果txt文本文件导入,也是一行一个URL,这里需要注意的是,导入的数据 可以没有URL前缀,即http://或https://,如果没有前缀,会根据右侧协议勾选情况自动加上前缀; 如只勾选http,并设置端口为80-81,则会将导入的host添加上http前缀,并 设置端口为80和81,https也一样。 如果有前缀则不做改动。 示例如下: 4. 结果显示 目前可显示扫描结果如下 URL: 不解释。 “状态码”,”Title”, “特征”:这三个用于首次扫描结果解析,用于简单判断目前服务器状态,”特征”和端 口扫描里的一样。 进度:用于显示每个URL在进行cms扫描时的进度,并且会提示请求超时等异常 报错的次数;扫描结束会显示scan over “cms finger”:该项为cms扫描结果显示,判断对端为哪种cms框架。其他项:剩下的各项为fofa指纹识别结果,sqlite对不同指纹规则进行分类了,标 签含义和结合fofa规则库理解,未进行分类的还默认合并于”fofa finger”显示,所以后续还需要再优化。 2.5.2. 举例 2.5.2.1. 解析BurpSuite导出文件 大概格式如下扫描结果如下 2.5.2.2. Fofa指纹扫描 每次URL仅发起一次请求,结果如下显示2.5.2.3. Fofa+cms指纹扫描 2.5.2.4. test指纹测试(V1.3.9新增) cms_finger.db新增两个test表,可手动输入指纹特征,并在界面上勾选test,则只 读取test表进行扫描。2.6. 扩展功能 2.6.1. 复制粘贴 信息收集各个模块均支持该功能。 右键结果栏,存在粘贴和复制功能,该功能主要用于工具之间的结果传 递。 比如我当前工具挂在vps上扫描,扫描结束,我需要在本地工具也能查看结 果,则可复制vps上的结果,然后粘贴到本地工具里。传统的ctrl+C复制是标准 格式,无法粘贴。 2.6.2. 扩展选项 可设置编码,http代理,以及http请求头部2.6.3. 历史数据查询(V1.4.3新增) 所有扫描模块均添加如下历史数据查询,存储在data.db里 1. 每次扫描结束后会自动将数据存储到sqlite数据库(PS: 扫描过程中不会存 储) 2. 每次只展示近10次扫描结果 3. 如果要查询其他不在近期扫描的结果,可打开data.db查找uuid,通过uuid查 询 4. 清除所有数据,仅清除当前扫描模块的数据 5. 如果需要手动存储,可点击“保存至数据库”,用于从其他地方复制、导入的 数据。3. 漏洞扫描 3.1. 选项 选项界面如下,目前支持的漏洞扫描如左侧显示,根据不同框架分类了。 第一行cookie字段用于某些需要登录才能测试的站点。 可设置代理和chunked编码传输,但两者不可同时使用。 漏洞选项区,左侧为未选择,右侧为已选择,默认均在未选择,即不进行该漏洞 扫描,双击某个漏洞名称可快捷进行左右移动;如果鼠标按住多选,需要点击中间的 箭头进行多项移动。最右侧协议区用于修改协议对应端口,这块提前写好,目前只有SMB/RDP/AJP 三个协议的漏洞。http/https的端口在URL中就有,这里无需设置。 V1.4.4更新 漏洞名上可右键-漏洞信息3.2. 扫描 扫描页界面如下显示 1. 第一行并发超时设置参考端口扫描。 2. IP列表可设置IP和URL,IP设置参考端口扫描设置。URL设置示例如下3. 扫描结果分为5个内容,MS17-010漏扫会同时识别目标操作系统、主机名和 所在域。其中payload部分是和漏洞利用模块一一对应的,比如这里显示 [ 1 ] 表示为漏洞利用模块的payload 1。 下面payload有1,2即可使用漏洞利用模块的thinkphp的payload 1,2两个。 3.3. 插件化 详情查看https://github.com/lz520520/railgunlib 4. 漏洞利用 漏洞利用界面如下所示(V1.3.4优化UI)模块大致分为漏洞设置、信息、命令执行、反弹shell、文件上传、dnslog、选项 这七部分,下面一一介绍。 4.1. 漏洞设置 1. 第一行设置漏洞payload,分别选择漏洞类型、漏洞名称、payload,如 struts2- > exp_S2_045- > 2 根据选择的payload的值,命令执行、反弹shell、文件上传会根据是否有对应的 payload而开启标签页。 示例: 我当前选择的payload仅支持命令执行,则文件上传和反弹shell的标签页隐藏不显 示。且根据不同的漏洞名称,注意是漏洞名称会显示不同的信息,用于指导该漏洞的 利用。 2. URL栏用于设置URL或IP,可设置多行用于单漏洞批量攻击,但IP只支持单 IP,不支持网段范围之类的;根据漏洞情况可设置cookie。效果如下 3. 这里额外增加的ysoserial payload,用于反序列化攻击,像weblogic反序列化、shiro反序列化需要调用ysoserial。合入工具后不需要java环境也可使用。 目前支持的payload有以下,后续还会根据漏洞情况增加新的。 Ysoserial是一个反序列化漏洞利用payload的生成工具。使用java -jar ysoserial.jar可查看payload,具体工具原理可网上查阅资料。 4.2. 信息 信息模块主要用于介绍当前漏洞,并指导如何进行漏洞利用。包括发布时间、影 响范围、漏洞编号、漏洞概述、漏洞利用以及漏洞载荷。 要注意信息内容是根据漏洞名称切换的,所以相同漏洞选择不同payload是不会 切换的,即漏洞载荷部分只是做简单载荷展示和漏洞的触发点,不会和payload对应 上。新增(V.1.3.4):漏洞搜索功能,可通过正则搜索指定漏洞名称,方便查找。 V1.3.8新增折叠和展开功能,方便操作。PS: 在使用漏洞利用前,尽量先查看信息页说明,因为不同漏洞会有不同注意事 项,测试总结都会放在该页。 4.3. 命令执行 命令执行页有两个功能 获取信息:根据不同漏洞效果不一样,比如struts2用于获取绝对路径,shiro用于 漏洞key遍历验证,可参考信息说明。 执行:可以点击执行按钮,或者输入命令后直接回车执行。 4.4. 反弹shell 主要用于NC反弹,目前仅支持MS17-010的反弹(已移除),其他RCE的反弹 shell可通过命令执行页来实现。 设置vps 的nc监听ip端口即可进行利用。 4.5. 文件上传 设置上传路径,绝对路径或者相对路径,可自行设置内容。点击上传即可,如下 图所示。4.6. Dnslog 在渗透测试中,SQL盲注、命令盲注等漏洞是较难利用的,由于无回显,这 类漏洞即使存在也显得有些鸡肋。针对此类问题,我们可以使用DNSLOG来进 行突破。DNSLOG是一种回显机制,使用者可以通过DNS解析日志来读取漏洞 的回显。 DNS的解析是递归与迭代相结合的,下面给出了当我们访问 www.cloudcrowd.com.cn时,DNS的解析过程示意图。 其中,红色部分是可控的。我们只需要搭建一个红色部分的DNS服务器,并将要 盲打或盲注的回显,放到自己域名的二级甚至三级域名上去请求,就可以通过DNS解 析日志来获取到它们。该模块如下所示,需要搭建DNSLOG平台,通过API去调用,目前支持对接我修 改的DNSLOG平台和ceye。 填写好查询API,注意需要点击更新所有模板。 4.6.1. Dnslog手动回显 填写好查询API,点击立即获取即可,如下图所示,即可看到回显的dnslog 并且平台设置了清除API,会自动替换apiquery为apidel,无需修改API,点 击立即清除即可。 由于考虑RCE执行结果可能过长或者执行结果有特殊字符无法通过域名传 输,编写了脚本搭配编码分段传输DNSLOG,回显的DNSLOG需要拼接+解码才 能正常显示,如上图显示则是base64编码后分段传输结果。 预先设置好dnslog格式,如下用{}括起来的为变量参数,{number}表示该位置提取的为编号,{result}表示为 分段传输的数据。如果无{number}那么只会解码单个域名的{result},如果有 {number}会将所有匹配的域名进行拼接,然后再解码。 设置解码次数为1,解码类型为unicodeBase64,其他两种raw表示原生无解码字 符串,base64就是普通解码。powershell编码比较特殊而已。还有base64的alphanet可 能也需要修改,因为base64编码后可能出现”+/”,这两个符号不能进行域名解析,所 以编码的时候会做转换成如”-_” 最后点击解码就可以看到上图的内容,可以看到当前目录和目录下文件,就可以 进行下一步写shell操作了。 4.6.2. Dnslog自动回显 整个模块左侧为自动回显模块,支持bash/python/perl/powershell回显。 使用方法步骤: 1. 勾选”开启” 2. 选择需要使用的dnslog脚本类型,这个处决于目标系统支持,选择不同模 板,会自动刷新右侧的alphabet等参数。 3. 自动DNSLOG格式和手动DNSLOG格式差不多,通过之前的更新模板按钮即 可刷新。 4. Powershell参数功能适用于windows的powershell,因为有些参数会被杀软拦 截,实测只需-e即可。 5. 最后的dnslog模板内容无需调整,是设定好的,只需关注domain参数和格式 里的后缀是否一致即可。 6. 接下来在exp的命令执行模块输入命令执行等待回显即可,目前主要用于 shiro等java反序列化漏洞回显。原理:命令执行内容会替换脚本模板的#{cmd},然后用指定格式base64编码,发 送,之后程序会间隔发送请求至dnslog平台,判断是否返回”_dnsstop_”日志,有则根 据手动回显逻辑进行拼接解码并打印在命令执行结果栏。 具体DNSLOG的使用方法,可参考以下链接。 https://sec.lz520520.cn:4430/2020/01/337/ 4.7. 选项 目前支持的选项如下图所示 超时:漏洞利用超时设置,单位为秒 编码:目前支持UTF-8和GBK,目标平台编码不同可能导致回显结果乱码,需要 使用正确的编码。 Chunk分块传输:用于将http或https的POST请求的body部分进行chunk编码,用于 某些WAF绕过,特殊情况使用的时候开启就好。效果如下图所示HTTP/HTTPS代理:设置代理地址勾选即可代理传输,多用于burp代理抓包调整 payload等等。 PS: HTTP代理和chunk编码不能同时使用,会出现超时问题 自定义header: 针对某些目标系统,可能header字段需要设置多个(不仅仅需要cookie),exp才能执 行,勾选开启,设置如下header即可。自定义请求包:该设置用于工具未集成的exp,可快速设置payload测试效果。 使用该模块之前需设置漏洞类型为custom。 然后使用说明参考信息tab 这里我举个例子,如dvwa的命令执行。使用burp等工具获取完整请求包。 把命令执行部分(whoami)替换成#{cmd::url},表示参数为命令并进行URL编码; 复制到自定义请求包窗口,并勾选开启。然后输入URL,并在命令执行模块输入命令即可 如果结果内容太多需要过滤,可以在”设置cookie”栏输入正则表达式过滤即可, 这个可以使用burp intruder模块自带的grep extract功能提取正则表达式。效果如下 4.8. 插件化 详情查看https://github.com/lz520520/railgunlib5. 编码转换 参考CyberChef进行重构编码转换,如下图所示 双击左侧编码选择,如下进行编排, 首行和末行是固定的首行:按顺序是编码分类(如char)、编码名称(如Base64)、编码模式 (Encode或Decode)、是否开启、上移下移、删除编码。 末行:输入编码和输出编码都分为RAW/HEX/Base64三种,输入编码就是输入栏 里的编码类型,在输入真正的编码转换之前,会先将输入解码,而输出编码相反,会 将转换结果进行编码输出。 如果多个编码组合起来,处理流程大概是这样。 Code1InputDecode->Code1(Encode/Decode)->Code1OutputEncode ->Code2InputDecode->Code2(Encode/Decode)->Code2OutputEncode 不同编码的其他行就是选项,根据编码类型,选项都是不一样的。 如下是AES加密,右键编码上可查看编码使用说明,就不一一赘述了。自动转换:勾选后,当输入改变时,会自动进行编码转换。 转换并保存:对于一些编码类型,输出RAW格式时,是存在不可见字符,此时 可以使用该功能转换后直接写入文件。目前固定3个tab页,可灵活在不同编码转换组合之间切换。文件输入,将文件拖入输入框即可,如图所示,并且修改文件内容后,无法重复 拖拽,会自动读取更新后的文件内容。 除了拖动的方式,也可以选择以 file$$$$: [filepath] 如此格式填写,会自 动识别为文本输入进行转换。 6. 辅助工具 6.1. IP解析 界面如下 这个模块主要是方便从各种扫描日志里提取出IP这里可以将输入IP提取成IP或者网段,选择不同方式,会切换成不同正则表达 式,也可以自定义。 提取IP(会自动去重)提取/24网段 6.2. 杀软识别用于windows杀软识别,将tasklist /svc结果复制进来即可,如下例子 6.3. 格式化 /proc/net/tcp : 用于linux上查看网络连接以及网卡IP 7. BUG反馈留言https://sec.lz520520.com/或https://github.com/lz520520/railgun |
|
没有回复内容