자양
10.12.13
조회 수 5507
추천 수 1
댓글 11

이번 글은 좀 짧은것 같아서 전체 복사해 왔는데 그래도 기네요..


출처)


http://blog.naver.com/dowkim10/120120031591


---------------------------------------------------------------------





본인은 z4root를 통하여 루팅한것은 아니지만, 요즈음은 이 툴을 통하여 루팅을 많이 하는것 같다.
하지만, 사람들은 z4root이 어떤 메커니즘을 사용하여 루팅되는지에 대해서는 잘 모르는것 같다. (사실 이부분은 공개된 내용이 아니라서 인터넷을 뒤져도 잘 안나온다)



이클레어 시절 갤럭시s를 제외한 폰에서 exploit을 사용한 루팅툴이 Universal Android root 어플이었다.
exploit의 경우 hotplug 취약성( 일반 user 에서 super user 권한 스키립트 실행)을 사용한 루팅이었지만, 커널이 업데이트되면서 점차 루팅이 불가능 하게 되었다.



현재 프로요에서 많이 사용하는 z4root 는 rageagainstthecage-arm5.bin 을 이용한 것인데, adb의 취약성 및 RLIMIT_NPROC의 문제점을 이용한 것이다.
(제작자인 Sebastian Krahmer가 이전 버전의 exploit도 만든것 같음)



파일 다운로드
http://www.joeyconway.com/epic/root/rageagainstthecage-arm5.bin



테스트 방법
http://modmymobile.com/forums/567-motorola-backflip-general/553988-local-privilege-escalation-found-5.html


- adb push rageagainstthecage-arm5.bin /sdcard/
- adb shell


$ mkdir /skttmp/tmp
$ cd /skttmp/tmp
$ cat /sdcard/rageagainstthecage-arm5.bin > rageagainstthecage-arm5.bin
$ chmod 755 rageagainstthecage-arm5.bin
$ ./rageagainstthecage-arm5.bin
adb가 끊길때까지 기다린다.
- adb kill-server
- adb devices (to verify the connection)
- adb shell
이때 root인 #이 뜬다.



rageagainstthecage-arm5.bin 를 실행시키면 무제한적으로 프로세스를 생성(fork)시키면서 결구 RLIMIT_NPROC까지 만나게 되면서 더이상 프로세서가 생성이 안된다.
이때, adb가 root로 재실행되면서 shell 접속시 root의 권한을 얻게된다. (원래는 shell권한을 얻어야 되나, max proc의 갯수로 인해 setuid가 fail이 되기 때문이다.)




특징
- 특별히 시스템의 위해적 요소는 없는것으로 보이며, 영구루팅이 아니라면 리부팅시 시스템의 어떠한 변화도 없다.
- temporary(임시) rooting의 경우 아주 많은 프로세서가 생겨져 있으므로 리소스의 낭비와 폰이 느려질수 있다. (리부팅하면 되니 특별히 상관은 없다)
- permanat(영구) rooting의 겨우 su, superuser.apk가 /system에 설치된다.
- ./rageagainstthecage-arm5.bin가 항상 성공하는 것은 아닌것 같다. (이런경우는 다시 시도하면 될듯)
- adb의 취약성을 이용하는 것이므로 설정에서 USB debbugging이 체크되어 있어야 한다.
- 이것도 exploit과 마찬가지로 안드로이드의 취약성을 이용한 것이므로, 곧 막힐것이다. (이전버전은 커널이 수정되었고, 이번 버전은 adb가 수정될 것으로 보인다.)



댓글 11
  • ?
    벼리
    10.12.13
    잘봤습니다 ^^
    저도 그냥 가져다만 써서 원리까지는 자세히 몰랐네요
    이런글은 노하우로 고고싱 ㅎㅎ
    p.s 자유게시판에서 묻히는게 안타까워서 노하우 게시판으로 옮겨두었는데, 기분 나쁘시면 쪽지주세요 다시 옮겨드릴게요 ^^;;
  • ?
    좋은 정보 감사드립니다. ^^
  • ?
    자양
    10.12.13
    아무데나 두셔도 상관없습니다. ㅎㅎ
    그냥 제 블로그 내용복사한거라서요.
  • ?
    bvlgaria
    10.12.13
    자양님이시군요..반갑습니다..영구루팅이 되었을때 superuser.apk와 su 가 리부팅할때마다 z4root 도 자양님의 루팅커널처럼 복사가되나요? 파일정보를 보면 항상 날짜가 변경이 되어있더군요..
  • ?
    자양
    10.12.13
    호.. 흥미로운 사실이네요..
    제 생각에는 z4root로 영구루팅시 한번만 복사할거로 생각되는데요..
    (전 z4root 사용안해봐서 모르겠네요.)
  • ?
    벼리
    10.12.13
    rageagainstcage를 실행하게되면 이걸 실행한 주체가 root권한을 가지게 됩니다.
    adb에서 실행하셨다면 adb가 better terminal에서 실행하셨다면 betterterminal이, z4root에서는 이걸 이용하여 자신이 root권한을 획득한 후 이걸 바탕으로 /system/bin에 su를 /system/app에 SuperUser.apk를 카피합니다. 재부팅을 하게되면 root권한이 없어지기 때문에 그 전에 카피를 하는 방법입니다. 물론 한번만 하면 됩니다.

    예전 마켓에서 삭제되기 전 원펀치와 테마스토어에도 이런 방법을 이용해서 루팅 기능을 구현해놨던거구요
  • ?
    벼리
    10.12.13
    자양님 좋은글 좀 자주 남겨주세요 ㅎㅎ
  • ?
    bvlgaria
    10.12.13
    네 저도 z4root가 사실 더 쉬운 방법이라 이전에 자양님 루팅커널로 루팅을 했다가 이번에 시스템을 엎으면서 z4root를 설치해봤는데요..리부팅전 12월 12일 오후 11시 35분인걸로 확인하고 리부팅해보니 지금은 12월 12일 오전 8시 35분으로 파일날짜가 변경이 되어있네요..새로 쓰기라면 오늘 날짜로 복사가 되어야 할텐데 오늘 날짜가 아니라 오히려 이전 날짜로 변경이 되어있습니다..^^
    조금 써보다가 다시 자양님 툴로 루팅할까 합니다..^^
  • ?
    자양
    10.12.13
    맛클 홈페이지 개편이후로 안들어오다가 요즘은 들어와요..
    (모바일 맛클주소가 바뀐지도 모르고있다가 최근 알게됬네요.)
    향후, 좋은 아이템이 생기면 글 남길게요..
  • ?
    좋은 글 감사합니다... 도움이 많이 되겠네요... ^^
  • ?
    oops!
    10.12.16
    좋은정보 감사합니다^^
댓글 쓰기 권한이 없습니다.
정렬 목록 검색 쓰기
등록된 글이 없습니다.
1 - 2