
Roninは、セキュリティ研究と開発のためのフリーでオープンソースのRubyツールキットです。Roninはまた、サードパーティのgitリポジトリを介したコード、エクスプロイト、ペイロードなどの迅速な開発と配布を可能にします。
Roninは、セキュリティ研究と開発のための無料かつオープンソースのRubyツールキットです。 Roninには、エンコーディング/デコーディングデータ、IP/ホスト/URLのフィルタリング、ASNのクエリ、DNSのクエリ、HTTP、ウェブ脆弱性のスキャン、ウェブサイトのクローリング、エクスプロイトやペイロードのサードパーティリポジトリのインストール、エクスプロイトの実行、新しいエクスプロイトの開発、ローカルデータベースの管理、データのファジング、偵察の実行など、さまざまなセキュリティタスクのための多くのCLIコマンドとRubyライブラリが含まれています。
ronin コマンドを使用して、さまざまなデータを迅速に処理およびクエリできます。ronin irb Ruby REPLでコードとデータを効率的に扱えます。roninライブラリを使用して、Rubyスクリプトを迅速にプロトタイプ作成できます。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コマンド一覧:```shell
$ ronin help
コマンドのmanページを表示:```shell $ ronin help COMMAND
`ronin`の使い方に関するランダムなヒントを取得する:```shell
$ 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
さまざまな形式でデータを16進ダンプします:```shell $ ronin hexdump /bin/ls
16進ダンプファイルを元の生バイナリデータに戻します(un-hexdump):```shell
$ ronin unhexdump -o data.bin hexdump.txt
ファイルからすべての印字可能な文字列を表示する:```shell $ ronin strings /bin/ls
ファイルからすべてのアルファベット文字列を出力する:```shell
$ ronin strings --alpha /bin/ls
ファイルからすべての英数字の文字列を表示する:```shell $ ronin strings --alpha-num /bin/ls
ファイルからすべての数値文字列を表示する:```shell
$ ronin strings --numeric /bin/ls
ファイルからすべての16進数文字列を出力:```shell $ ronin strings --hex /bin/ls
ドメイン名のすべてのビットフリップを列挙します:```shell
$ 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 文字列をエンコードする:```shell $ ronin encode --base64 --string "foo bar baz" Zm9vIGJhciBiYXo=
Zlibで圧縮し、Base64でエンコードし、その後URIエンコードする文字列:```shell
$ 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デコード 文字列:```shell $ ronin decode --base64 --string "Zm9vIGJhciBiYXo=" foo bar baz
URIデコード、Base64デコード、そしてzlib展開を文字列に適用する:```shell
$ 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エスケープする:```shell $ ronin escape --uri --string "foo bar" foo%20bar
URIのアンエスケープ:```shell
$ ronin unescape --uri --string "foo%20bar"
foo bar
ファイルを引用符付きC文字列に変換する:```shell $ ronin quote --c file.bin "..."
ファイルを引用符付きのJavaScript文字列に変換:```shell
$ ronin quote --js file.bin
C文字列の引用符を外す:```shell $ ronin unquote --c --string '"\x66\x6f\x6f\x20\x62\x61\x72"' foo bar
### Text
ファイルから高エントロピーデータを抽出する:```shell
$ ronin entropy -e 5.0 index.html
Grepでデータの一般的なパターンを検索:```shell $ ronin grep --hash index.html
データから共通パターンを抽出する:```shell
$ ronin extract --hash index.html
単語のランダムなタイポを生成する:```shell $ ronin typo microsoft microssoft
単語のすべてのタイポバリエーションを列挙します。```shell
$ ronin typo --enum microsoft
microosoft
microsooft
microssoft
単語のランダムなホモグリフ版を生成する:```shell $ ronin homoglyph CEO CEO
単語のすべてのホモグリフのバリエーションを列挙する:```shell
$ ronin homoglyph --enum CEO
ϹEO
СEO
ⅭEO
CEO
CΕO
CЕO
CEO
CEΟ
CEО
CEO
ファイルをシンタックスハイライトします:```shell $ ronin highlight index.html
### 暗号
AES-256 でファイルを暗号化:```shell
$ ronin encrypt --cipher aes-256-cbc --password "..." file.txt > encrypted.bin
データの復号:```shell $ ronin decrypt --cipher aes-256-cbc --password "..." encrypted.bin
ファイルのHMACを生成します:```shell
$ ronin hmac --hash sha1 --password "too many secrets" data.txt
文字列のHMACを生成します:```shell $ ronin hmac --hash sha1 --password "too many secrets" --string "..."
文字列のMD5チェックサムを計算する:```shell
$ ronin md5 --string "hello world"
5eb63bbbe01eeed093cb22bb8f5acdc3
ファイルのMD5チェックサムを計算する:```shell $ ronin md5 file.txt
ファイルの各行のMD5チェックサムを計算します:```shell
$ ronin md5 --multiline file.txt
文字列のSHA1チェックサムを計算する:```shell $ ronin sha1 --string "hello world" 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
ファイルのSHA1チェックサムを計算する:```shell
$ ronin sha1 file.txt
ファイル内の各行のSHA1チェックサムを計算する:```shell $ ronin sha1 --multiline file.txt
文字列のSHA256チェックサムを計算する:```shell
$ ronin sha256 --string "hello world"
b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9
ファイルのSHA256チェックサムを計算する:```shell $ ronin sha256 file.txt
ファイル内の各行のSHA256チェックサムを計算します:```shell
$ ronin sha256 --multiline file.txt
文字列のSHA512チェックサムを計算する:```shell $ ronin sha512 --string "hello world" 309ecc489c12d6eb4cc40f50c902f2b4d0ed77ee511a7c7a9bcd3ca86d4cd86f989dd35bc5ff499670da34255b45b0cfd830e81f605dcf7dc5542e93ae9cd76f
ファイルのSHA512チェックサムを計算する:```shell
$ ronin sha512 file.txt
ファイル内の各行のSHA512チェックサムを計算します:```shell $ ronin sha512 --multiline file.txt
ROT-13 は文字列をエンコードします:```shell
$ ronin rot --string "The quick brown fox jumps over the lazy dog"
Gur dhvpx oebja sbk whzcf bire gur ynml qbt
XORで文字列をエンコード:```shell $ 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を照会する:```shell
$ ronin asn -I 4.2.2.1
4.0.0.0/9 AS3356 (US) LEVEL3
システムの外部/公開IPアドレスを取得します:```shell $ ronin ip --public
IPアドレスを10進数形式に変換する:```shell
$ ronin ip --decimal 127.0.0.1
2130706433
IPアドレスのファイルをURLに変換する:```shell $ ronin ip --file targets.txt --http
IP CIDR範囲内のすべてのIPアドレスを列挙する:```shell
$ 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 glob 範囲内のすべての IP アドレスを列挙する:```shell $ 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 ...
2つのIPアドレス間のすべてのIPアドレスを列挙する:```shell
$ 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サービスに接続する:```shell $ ronin netcat -v example.com 80
ローカルTCPポートで待ち受け:```shell
$ ronin netcat -v -l 1337
リモートのSSL/TLSサービスに接続する:```shell $ ronin netcat -v --ssl example.com 443
リモートUDPサービスに接続する:```shell
$ ronin netcat -v -u example.com 1337
ローカルのUDPポートでリッスン:```shell $ ronin netcat -v -u -l 1337
UNIXソケットを開く:```shell
$ ronin netcat -v --unix /path/to/unix.socket
ソケットから受信したすべてのデータを16進ダンプする:```shell $ 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| ...
#### DNS
DNSレコードを照会する:```shell
$ ronin dns -t TXT github.com
ホスト名の登録済みTLDをすべて検索する:```shell $ ronin host --enum-tlds --registered github.com github.ac github.actor github.ae github.africa github.agency github.ai ...
ホスト名の登録されたパブリックサフィックスをすべて検索:```shell
$ ronin host --enum-suffix --registered github.com
example.com.ag
example.ai
example.al
example.am
example.com.ar
example.at
example.co.at
example.or.at
example.com.au
example.be
example.com.bh
...
アドレスを持つすべてのサブドメインを検索:```shell $ ronin host --enum-subdomains subdomains.txt --has-addresses google.com www.google.com mail.google.com smtp.google.com ns1.google.com ns2.google.com m.google.com ns.google.com blog.google.com admin.google.com news.google.com vpn.google.com ns3.google.com ...
ドメインの考えられるすべてのタイポスクワットのバリエーションを列挙する:```shell
$ ronin typosquat microsoft.com
microosoft.com
microsooft.com
microssoft.com
有効なドメインに対して、登録されているタイポスクワットドメインをすべて見つける:```shell $ ronin typosquat --registered microsoft.com
有効なドメインのアドレスを持つすべてのタイポスクワットドメインを見つける:```shell
$ ronin typosquat --has-addresses microsoft.com
有効なドメインに対する未登録のタイポスクワットドメインをすべて見つける:```shell $ ronin typosquat --unregistered microsoft.com
メールアドレスの難読化を解除する:```shell
$ ronin email-addr --deobfuscate "john [dot] smith [at] example [dot] com"
[email protected]
メールアドレスのすべての難読化を列挙します:```shell $ ronin email-addr --enum-obfuscations [email protected] john.smith @ example.com john.smith AT example.com john.smith at example.com john.smith[AT]example.com john.smith[at]example.com ...
#### SSL/TLS証明書
SSL/TLS証明書に関する情報をダンプします。```shell
$ ronin cert-dump https://example.com/
ホストとポートからSSL/TLS証明書をダウンロード:```shell $ ronin cert-grab github.com:443
新しいSSL/TLS証明書を生成:```shell
$ ronin cert-gen -c test.com -O "Test Co" -U "Test Dept" \
-L "Test City" -S NY -C US
HTTP GET リクエストを実行します(シンタックスハイライト付き):```shell
$ ronin http https://example.com/
追加のヘッダー付きでHTTPリクエストを送信する:```shell
$ ronin http --post --header "Authorization: ..." https://foo.bar/
既知の User-Agent 文字列を使用してHTTPリクエストを送信します:```shell
$ ronin http --post --user-agent chrome-android https://foo.bar/
カスタムの `User-Agent` 文字列を使用してHTTPリクエストを送信します:```shell
$ ronin http --post --user-agent-string "..." https://foo.bar/
対話型HTTPシェルを開く:```shell $ ronin http --shell https://example.com/ https://example.com/> help help [COMMAND] Prints the list of commands or additional help get PATH[?QUERY] [BODY] Performs a GET request head PATH[?QUERY] Performs a HEAD request patch PATH[?QUERY] [BODY] Performs a PATCH request post PATH[?QUERY] [BODY] Performs a POST request put PATH [BODY] Performs a PUT request copy PATH DEST Performs a COPY request delete PATH[?QUERY] Performs a DELETE request lock PATH[?QUERY] Performs a LOCK request options PATH[?QUERY] Performs a OPTIONS request mkcol PATH[?QUERY] Performs a MKCOL request move PATH[?QUERY] DEST Performs a MOVE request propfind PATH[?QUERY] Performs a PROPFIND request proppatch PATH[?QUERY] Performs a PROPPATCH request trace PATH[?QUERY] Performs a TRACE request unlock PATH[?QUERY] Performs a UNLOCK request cd PATH Changes the base URL path headers [{set | unset} NAME [VALUE]] Manages the request headers
ファイル内のすべてのURLのHTTPステータスを表示する:```shell
$ ronin url --file urls.txt --status
ronin-support がプリロードされた新しいRubyスクリプトを生成します:```shell $ ronin new script foo.rb
新しいRubyプロジェクトを`Gemfile`で生成する:```shell
$ ronin new project foo
HTML/XMLを解析する新しいnokogiri Rubyスクリプトを生成する:
$ ronin new nokogiri foo.rb
新しい[ronin-web-server] Rubyスクリプトを生成する:```shell
$ ronin new web-server my_server.rb
新しいronin-web-serverをベースにしたWebアプリを生成します:```shell $ ronin new web-app my_app
新しい[ronin-web-spider] Rubyスクリプトを生成する:```shell
$ ronin new web-spider --host=example.com my_spider.rb
ronin-listener-dns スクリプトを生成します:```shell $ ronin new dns-listener my_dns_listener.rb
生成する [ronin-dns-proxy] スクリプト:```shell
$ ronin new dns-proxy my_dns_proxy.rb
ronin-listener-http スクリプトを生成してください:```shell $ ronin new http-listener my_http_listener.rb
ronin-exploits スクリプトを生成:```shell
$ ronin new exploit my_exploit.rb
ronin-payloads スクリプトを生成:```shell $ ronin new payload my_payload.rb
### Archive
アーカイブファイル:```shell
$ ronin archive -o archive.zip file1.txt file2.txt
tar形式でファイルをアーカイブする:```shell $ ronin archive -o archive.tar file1.txt file2.txt
ファイルを解凍:```shell
$ ronin unarchive arch1.tar arch2.zip
明示的な形式でファイルを解凍する:```shell $ ronin unarchive -f zip arch2.jar
### 関連項目
* [ronin-repos](https://github.com/ronin-rb/ronin-repos#synopsis)
* [ronin-wordlists](https://github.com/ronin-rb/ronin-wordlists#synopsis)
* [ronin-db](https://github.com/ronin-rb/ronin-db#synopsis)
* [ronin-web](https://github.com/ronin-rb/ronin-web#synopsis)
* [ronin-fuzzer](https://github.com/ronin-rb/ronin-fuzzer#synopsis)
* [ronin-payloads](https://github.com/ronin-rb/ronin-payloads#synopsis)
* [ronin-exploits](https://github.com/ronin-rb/ronin-exploits#synopsis)
* [ronin-vulns](https://github.com/ronin-rb/ronin-vulns#synopsis)
## 必要条件
* [gcc] / [clang]
* [make]
* [git]
* [libsqlite3]
* [Ruby] >= 3.2.0
* [open_namespace] ~> 0.4
* [rouge] ~> 3.0
* [io-endpoint] ~> 0.15
* [io-stream] ~> 0.8
* [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スクリプト```shell
curl -o ronin-install.sh https://raw.githubusercontent.com/ronin-rb/scripts/main/ronin-install.sh && bash ronin-install.sh
あなたのプラットフォームにRoninとその追加の依存関係をインストールする方法については、手動インストールの指示を参照してください。
Dockerを使用したい場合は、[Dockerイメージ]も利用できます:```shell docker pull roninrb/ronin docker run -it roninrb/ronin
さらに、ホームディレクトリをDockerイメージにマウントしたい場合:```shell
docker run --mount type=bind,source="$HOME",target=/home/ronin -it ronin
cd ronin./scripts/setupgit checkout -b my_featurebundle exec rake specgit push origin my_featureCopyright (c) 2006-2026 Hal Brodigan (postmodern.mod3 at gmail.com)
Roninは自由ソフトウェアです。あなたはこれを、Free Software Foundationによって公開されたGNU General Public License(バージョン3、または(あなたの選択により)それ以降のバージョン)の条件の下で再配布および/または修正することができます。
Roninは有用であることを期待して配布されていますが、いかなる保証もありません。暗黙の商品性保証や特定目的への適合性の保証も含め、一切の保証はありません。詳細についてはGNU General Public Licenseを参照してください。
あなたはこのプログラムとともにGNU General Public Licenseのコピーを受け取っているはずです。受け取っていない場合は、https://www.gnu.org/licenses/ を参照してください。