Ronin:一款用于安全研究和安全开发的Ruby工具包
2024-10-29 14:48:3 Author: www.freebuf.com(查看原文) 阅读量:1 收藏

关于Ronin

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传送门

参考资料

https://ronin-rb.dev/

https://www.ruby-lang.org/


文章来源: https://www.freebuf.com/sectool/413966.html
如有侵权请联系:admin#unsafe.sh