关于Ronin
Ronin是一款免费的开源Ruby工具包,旨在用于安全研究和开发。
Ronin 包含许多不同的CLI 命令和 Ruby 库,可用于执行各种安全任务,例如编码/解码数据、过滤 IP/主机/URL、查询 ASN、查询 DNS、HTTP、检测 Web 漏洞、执行资源爬取、 Payload检测、管理本地数据库、 托管模糊测试数据、执行网络侦察等等。
适合的用户
CTF 玩家
漏洞赏金猎人
安全研究人员
安全工程师
开发人员
学生
功能介绍
1、使用ronin命令快速处理和查询各种数据。
2、在 Ruby REPL中高效处理代码和数据ronin irb。
3、使用ronin-support和其他ronin 库快速制作 Ruby 脚本原型。
4、使用ronin-repos测试第三方Payload git存储库。
5、使用ronin-db数据库导入和查询数据。
6、使用ronin-fuzzer模糊数据。
7、使用ronin-recon进行网络侦察。
8、使用常见的Payload或使用ronin-payloads编写自己的Payload。
9、使用ronin-exploits编写/运行Payload。
10、使用ronin-vulns扫描网络安全问题。
11、使用ronin-app执行扫描并在浏览器中浏览数据库。
工具要求
gcc / clang
make
git
libsqlite3
Ruby >= 3.1.0
open_namespace ~> 0.4
rouge ~> 3.0
async-io ~> 1.0
wordlist ~> 1.1
ronin-support ~> 1.1
ronin-dns-proxy ~> 0.1
ronin-core ~> 0.2
ronin-repos ~> 0.1
ronin-wordlists ~> 0.1
ronin-db ~> 0.1
ronin-listener ~> 0.1
ronin-nmap ~> 0.1
ronin-masscan ~> 0.1
ronin-recon ~> 0.1
ronin-fuzzer ~> 0.1
ronin-web ~> 2.0
ronin-code-asm ~> 1.0
ronin-code-sql ~> 2.0
ronin-payloads ~> 0.1
ronin-exploits ~> 1.0
ronin-vulns ~> 0.2
ronin-app ~> 0.1
工具安装
Bash脚本
curl -o ronin-install.sh https://raw.githubusercontent.com/ronin-rb/scripts/main/ronin-install.sh && bash ronin-install.sh
Docker
docker pull roninrb/ronin docker run -it roninrb/ronin docker run --mount type=bind,source="$HOME",target=/home/ronin -it ronin
工具使用
Usage: ronin [options] [COMMAND [ARGS...]] Options: -h, --help Print help information Arguments: [COMMAND] The command name to run [ARGS ...] Additional arguments for the command Commands: archive asn banner-grab bitflip cert-dump cert-gen cert-grab completion decode, dec decrypt dns dns-proxy email-addr encode, enc encrypt entropy escape extract grep help hexdump highlight hmac homoglyph host http ip iprange irb md5 netcat, nc new pack proxy public-suffix-list quote rot sha1 sha256 sha512 strings tld-list tips typo typosquat unarchive unescape unhexdump unpack unquote url xor Additional Ronin Commands: $ ronin-repos $ ronin-wordlists $ ronin-db $ ronin-web $ ronin-fuzzer $ ronin-masscan $ ronin-nmap $ ronin-recon $ ronin-payloads $ ronin-exploits $ ronin-vulns $ ronin-app
查看工具帮助信息:
$ ronin help
查看命令的手册页:
$ ronin help COMMAND
获取有关如何使用的随机提示:
$ ronin tips
打开 Ronin Ruby REPL:
$ ronin irb , Jµ ▓▓█▓ J▌ ▐▓██▌ ████ ██ ▐███D ╓▄▓▓█████▌ ██µ ████ ▄███ÖJ██▌ ███▌ ,╓µ▄▄▄▄▄▄▄▄µ;, ,▄▓██████████ ▐███ ▐███▀ ███▌ ████µ ▄███ ¬∞MÆ▓███████████████████████▓M ▄██████▀▀╙████▌ ████▌ ████ ▄███ J█████ ███▌ `█████▀▀▀▀▀███████ -████▀└ ████ ▐█████n ▄███O ███▌ ██████████ ▓████L ████▀ ▓████ ▓███Ö ███████ ███▌ ▓███ ▐█████████▀ ▄████▀ ,╓▄▄▄█████ J████Ü ,███▌ ▄███████████ J███▀ ████ █████ J█████████████████─ ████▌ ████ ████`██████▌ ████ ▐███Ü ▐███Ü ███████████▀▀▀╙└ ▐████ J███▌ ▓███▌ ²█████ J███Ü ███▌ ▀█▌ ▓██████████▌ ████▌ ████ ;████ ▀███▀ ███▌ J▀▀▀- █ ▄█████▀ ▀█████µ ▐████ ,▄▓████▀ ████▀ ███ J███ ` J█████- ╙▀███▄ ████████████▀╙ J█▀▀▀ █U ▀█▌ ████▀ ▀███ ▄████████▀▀ ╨ █ ▓██▀ ²▀█▄ █▀▀▀╙└ ▄██╜ ╙W J█▀ ▌└ ┘ irb(ronin)>
启动并打开 Ronin 的交互式 Web UI:
$ ronin-app
工具运行演示
二进制
多种格式的十六进制转储数据:
$ ronin hexdump /bin/ls
将十六进制转储文件还原为其原始的二进制数据:
$ ronin unhexdump -o data.bin hexdump.txt
打印文件中的所有可打印字符串:
$ ronin strings /bin/ls
打印文件中的所有字母字符串:
$ ronin strings --alpha /bin/ls
打印文件中的所有字母数字字符串:
$ ronin strings --alpha-num /bin/ls
打印文件中的所有数字字符串:
$ ronin strings --numeric /bin/ls
从文件打印所有十六进制字符串:
$ ronin strings --hex /bin/ls
枚举域名的所有位翻转:
$ ronin bitflip microsoft --alpha-num --append .com licrosoft.com oicrosoft.com iicrosoft.com eicrosoft.com Microsoft.com mhcrosoft.com mkcrosoft.com mmcrosoft.com macrosoft.com mycrosoft.com ...
编码
Base64 编码字符串:
$ ronin encode --base64 --string "foo bar baz"
Zm9vIGJhciBiYXo=
Zlib 压缩、Base64 编码,然后 URI 编码字符串:
$ ronin encode --zlib --base64 --uri --string "foo bar" %65%4A%78%4C%79%38%39%58%53%45%6F%73%41%67%41%4B%63%41%4B%61%0A
Base64 解码字符串:
$ ronin decode --base64 --string "Zm9vIGJhciBiYXo=" foo bar baz
URI 解码、Base64 解码,然后 zlib 膨胀字符串:
$ ronin decode --uri --base64 --zlib --string "%65%4A%78%4C%79%38%39%58%53%45%6F%73%41%67%41%4B%63%41%4B%61%0A" foo bar
URI 转义字符串:
$ ronin escape --uri --string "foo bar" foo%20bar
URI 取消转义字符串:
$ ronin unescape --uri --string "foo%20bar" foo bar
将文件转换为带引号的 C 字符串:
$ ronin quote --c file.bin "..."
将文件转换为带引号的 JavaScript 字符串:
$ ronin quote --js file.bin
取消引用 C 字符串:
$ ronin unquote --c --string '"\x66\x6f\x6f\x20\x62\x61\x72"' foo bar
文本
从文件中提取高熵数据:
$ ronin entropy -e 5.0 index.html
Grep 查找常见的数据模式:
$ ronin grep --hash index.html
从数据中提取常见模式:
$ ronin extract --hash index.html
生成一个单词的随机拼写错误:
$ ronin typo microsoft microssoft
列举单词的每个拼写错误变体:
$ ronin typo --enum microsoft microosoft microsooft microssoft
生成一个单词的随机同形文字版本:
$ ronin homoglyph CEO CEO
枚举单词的每个同形异义词变体:
$ ronin homoglyph --enum CEO ϹEO СEO ⅭEO CEO CΕO CЕO CEO CEΟ CEО CEO
语法高亮显示文件:
$ ronin highlight index.html
加密
AES-256 加密文件:
$ ronin encrypt --cipher aes-256-cbc --password "..." file.txt > encrypted.bin
解密数据:
$ ronin decrypt --cipher aes-256-cbc --password "..." encrypted.bin
为文件生成 HMAC:
$ ronin hmac --hash sha1 --password "too many secrets" data.txt
为字符串生成 HMAC:
$ ronin hmac --hash sha1 --password "too many secrets" --string "..."
计算字符串的 MD5 校验和:
$ ronin md5 --string "hello world" 5eb63bbbe01eeed093cb22bb8f5acdc3
计算文件的 MD5 校验和:
$ ronin md5 file.txt
计算文件中每一行的 MD5 校验和:
$ ronin md5 --multiline file.txt
计算字符串的 SHA1 校验和:
$ ronin sha1 --string "hello world" 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
计算文件的 SHA1 校验和:
$ ronin sha1 file.txt
计算文件中每一行的 SHA1 校验和:
$ ronin sha1 --multiline file.txt
计算字符串的 SHA256 校验和:
$ ronin sha256 --string "hello world" b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
计算文件的 SHA256 校验和:
$ ronin sha256 file.txt
计算文件中每一行的 SHA256 校验和:
$ ronin sha256 --multiline file.txt
计算字符串的 SHA512 校验和:
$ ronin sha512 --string "hello world" 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
计算文件的 SHA512 校验和:
$ ronin sha512 file.txt
计算文件中每一行的 SHA512 校验和:
$ ronin sha512 --multiline file.txt
ROT-13 编码字符串:
$ ronin rot --string "The quick brown fox jumps over the lazy dog" Gur dhvpx oebja sbk whzcf bire gur ynml qbt
XOR 编码字符串:
$ ronin xor --key ABC --string "The quick brown fox jumps over the lazy dog" "\x15*&a36(!(a 1.5-a$,9b)4/32b,7'1a6+$b/ 8:a&,&"
联网
查询 IP 地址的 ASN:
$ ronin asn -I 4.2.2.1 4.0.0.0/9 AS3356 (US) LEVEL3
获取系统的外部/公共 IP 地址:
$ ronin ip --public
将 IP 地址转换为十进制格式:
$ ronin ip --decimal 127.0.0.1 2130706433
将 IP 地址文件转换为 URL:
$ ronin ip --file targets.txt --http
枚举 IP CIDR 范围内的每个 IP 地址:
$ ronin iprange 10.1.0.0/15 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.6 10.0.0.7 10.0.0.8 10.0.0.9 ...
枚举 IP 全局范围内的每个 IP 地址:
$ ronin iprange 10.1-3.0.* 10.1.0.1 10.1.0.2 10.1.0.3 10.1.0.4 10.1.0.5 10.1.0.6 10.1.0.7 10.1.0.8 10.1.0.9 10.1.0.10 ...
枚举两个 IP 地址之间的每个 IP 地址:
$ ronin iprange --start 10.0.0.1 --stop 10.0.3.33 10.0.0.1 10.0.0.2 10.0.0.3 10.0.0.4 10.0.0.5 10.0.0.6 10.0.0.7 10.0.0.8 10.0.0.9 10.0.0.10
连接到远程 TCP 服务:
$ ronin netcat -v example.com 80
监听本地 TCP 端口:
$ ronin netcat -v -l 1337
连接到远程 SSL/TLS 服务:
$ ronin netcat -v --ssl example.com 443
连接到远程 UDP 服务:
$ ronin netcat -v -u example.com 1337
监听本地 UDP 端口:
$ ronin netcat -v -u -l 1337
打开 UNIX 套接字:
$ ronin netcat -v --unix /path/to/unix.socket
十六进制转储从套接字接收到的所有数据:
$ ronin netcat --hexdump example.com 80 GET / HTTP/1.1 Host: example.com User-Agent: Ruby 00000000 48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d |HTTP/1.1 200 OK.| 00000010 0a 41 67 65 3a 20 32 35 30 38 30 36 0d 0a 43 61 |.Age: 250806..Ca| 00000020 63 68 65 2d 43 6f 6e 74 72 6f 6c 3a 20 6d 61 78 |che-Control: max| 00000030 2d 61 67 65 3d 36 30 34 38 30 30 0d 0a 43 6f 6e |-age=604800..Con| 00000040 74 65 6e 74 2d 54 79 70 65 3a 20 74 65 78 74 2f |tent-Type: text/| 00000050 68 74 6d 6c 3b 20 63 68 61 72 73 65 74 3d 55 54 |html; charset=UT| ...
许可证协议
本项目的开发与发布遵循GPL-3.0开源许可协议。
项目地址
Ronin:【GitHub传送门】