Task 2
해당 머신의 정보 수집부터 exploit까지의 단계는 아래 링크에 설명되어 있다.
https://st-together.tistory.com/41
먼저 sudo -l 명령어를 사용해 sudo로 사용 가능한 명령어 리스트를 확인해 보자
sudo는 사용이 불가능해 보인다
이번엔 홈 디렉터리를 확인해 보자
중요한 정보는 없어 보인다.
그다음으로 찾아볼 것은 setuid가 지정된 프로그램이다
setuid는 실행 권한이 없는 유저도 해당 프로그램을 실행할 때는 프로그램 소유자의 권한으로 실행을 시켜주는 특징이 있다
그 말은 setuid가 설정되어 있는 프로그램을 분석하여 취약점을 찾으면 권한 상승이 가능해질 수 있다는 것이다.
find 명령어의 -perm 옵션을 사용해 찾아보자
find / -perm -4000 2> /dev/null
# 4000은 setuid를 뜻함
/usr/~ 로 되어있는 경로들은 모두 권한 거부가 되므로 /opt/get_access를 확인해 보자
해당 프로그램은 root의 권한으로 setuid가 지정되어 있는 실행파일이라는 것을 확인할 수 있다
실행 파일임을 알았으니 실행을 해보자
모든 서비스를 사용할 수 없다는 문구가 뜨며 서버의 정보만 확인이 가능하다
해당 프로그램이 어떻게 돌아가는지 확인하기 위해 cat 명령어를 통해 확인해 보자
알아보기 힘든 문자들과 섞여 있어 제대로 확인이 어렵다
이때 알아볼 수 있는 문자들만 보여주는 명령어가 strings이다.
해당 명령어를 사용하여 다시 확인해 보자
많은 글자들 중 우리가 중요하게 봐야 할 것은 이 부분이다
/root/system.info라는 파일에 cat 명령어를 실행하고 밑의 문구들을 출력하는 듯하다
여기서 만약 우리가 cat명령어를 입력했을 때 파일을 확인하는 게 아니라 /bin/bash를 불러오는 명령어로 만들 수 있다면
setuid가 root로 지정되어 있기에 우리는 root 쉘을 가져올 수 있을 것이다.
먼저 /bin/bash를 지정하기 위한 파일을 하나 만들어 주자
그다음 해당 파일을 실행 파일로 인식할 수 있도록 path 설정을 해줘야 한다
(우리가 cat명령을 실행할 때는 실제 /usr/bin/cat을 실행하는 것이지만 path 설정으로 인해 앞의 경로는 생략되었다)
path 설정은 export 명령을 통해 할 수 있다.
export PATH=/tmp:$PATH
# :$PATH 를 통해 /tmp 이 path의 첫번째로 오고 나머지 경로들이 뒤에 붙게 된다
PATH에 /tmp가 등록된 것을 확인할 수 있다.
이제 cat 명령어를 실행하면 /usr/bin의 cat이 실행되는 것이 아닌 /tmp/cat이 먼저 실행이 될 것이다
마지막으로 /tmp/cat을 실행하기 위해 실행 파일로 만들어 주자
chmod +x /tmp/cat
그 후 다시 /opt/get_access를 실행해 보면
root 쉘을 획득한 것을 확인할 수 있다.
'Hacking > Hacking Beginner Class (normaltic)' 카테고리의 다른 글
[해킹 비기너 클래스] Drill Course 1주차 정리 (1) | 2023.09.15 |
---|---|
[해킹 비기너 클래스] 8주차 정리 (metasploit) (0) | 2023.09.13 |
[해킹 비기너 클래스] 7주차 정리 (post-exploit) (0) | 2023.09.04 |
[해킹 비기너 클래스] 6주차 Practice (Task 5) (0) | 2023.08.30 |
[해킹 비기너 클래스] 6주차 Practice (Task 4) (0) | 2023.08.29 |