본문 바로가기
Hacking/TryHackMe

[TryHackMe] Ice Walkthrough(정보 수집부터 권한 상승까지)

by st-og 2023. 9. 12.

https://tryhackme.com/room/ice 해당 사이트에 접속하면 동일한 머신으로 실습이 가능하다

 

해당 머신의 정보 수집 단계부터 관리자 권한을 얻는 과정까지를 정리하였다.


정보수집, 서비스 분석

먼저 정보 수집을 위해 nmap을 통한 포트 스캔을 진행해 보았다.

 

nmap -sCV -p- [ip주소]
-sC: 취약점 스크립트를 통해 취약점도 같이 스캔함
-sV: 해당 포트에서 서비스 중인 프로그램과 버전 정보를 알려줌
-p- : 모든 포트번호를 스캔함

 

요약

포트 번호 서비스중인 프로그램
135 Microsoft Windows RPC
139 Microsoft Windows netbios-ssn
445 Windows 7 Professional 7601 Service Pack 1 microsoft-ds
3389 ssl/ms-wbt-server
5357 Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
8000 Icecast streaming media server
49152~49160 Microsoft Windows RPC

 

쉘 획득

 

어떤 포트에서 어떤 프로그램이 실행 중인지 알았으니 우리는 해당 프로그램에 취약점이 있는지 확인해 볼 수 있다.

 

먼저 metasploit의 search 기능을 사용해 보자

msfconsole을 통해 metasploit을 실행시킨 후 search [keyword]를 사용하면 된다

 

search를 하다 보면 상당히 많은 취약점들을 확인할 수 있는데

이번 머신에서 중요하게 봐야 할 것은 8000번 포트에서 실행 중인 icecast이다

 

icecast를 search 해보자

 

 

더욱 자세한 정보를 알기 위해서는 info [숫자 or 이름]을 사용하면 된다

 

 

Description을 확인해 보니 해당 모듈은 icecast의 헤더에 BOF를 일으켜 공격을 한다고 한다

해당 모듈을 사용하기 위해서는 use 명령어를 사용하면 된다

 

 

그럼 이렇게 모듈이 장착된 것을 확인할 수 있다.

이제 해당 모듈을 실행하기 위해서는 해당 모듈에서 필요로 하는 기본 조건을 충족시켜줘야 한다

기본 조건을 확인하기 위해서는 options 명령어를 사용하면 된다

 

여기서 Required가 yes로 되어 있는 칸은 모두 채워줘야 한다

rhost는 상대방 pc의 ip를 의미하는 것이고 lhost는 나의 ip 주소를 말하는 것이다

 

해당 옵션을 수정하려면 set 명령어를 사용하면 된다

set [Current Setting Name] [변경할 값]
# ex) set rhosts 10.10.10.10

 

값을 다 추가하였다면 run 또는 exploit 명령어를 사용해 해당 모듈을 실행시킬 수 있다.

 

 

run을 하게 되면 meterpreter라는 이름의 쉘을 획득하게 된다

여기서 meterpreter란 간단하게 metasploit에서 제공하는 더 많은 기능의 쉘이라 생각하면 된다

 


권한 상승

권한 상승을 시도하기 전에 먼저 어떤 유저로 접속하였고 해당 유저의 권한은 어느 정도인지를 알 필요가 있다

유저의 정보를 보기 위해서는 getuid와 getprivs 명령어를 사용하면 된다

 

 

유저의 이름은 Dark-PC이고 5가지의 권한이 부여된 것을 확인할 수 있다

 

각각의 권한들은 이렇게 정리할 수 있다

권한 이름 권한 내용
SeChangeNotifyPrivilege (변경 알림 권한) 파일 또는 디렉토리의 변경 사항을 감지할 수 있는 권한
SeIncreaseWorkingSetPrivilege (작업 집합 크기 증가 권한) 작업 집합 크기를 늘릴 수 있는 권한
SeShutdownPrivilege (시스템 종료 권한) 시스템을 종료하거나 다시 시작하는 작업을 수행할 수 있는 권한
SeTimeZonePrivilege (시간대 변경 권한) 시스템의 시간대를 변경할 수 있는 권한
SeUndockPrivilege (독 분리 권한) 이동식 노트북 컴퓨터의 도킹 스테이션 분리 작업을 수행할 수 있는 권한

 

Dark-PC 유저는 그다지 필요한 권한은 가지고 있지 않은 듯하다

원하는 권한을 얻기 위해 다른 방법을 찾아보자

 

지금같이 상대방 pc의 쉘은 획득한 상태로 더 많은 취약점을 알아내고 싶을 때 사용할 수 있는 모듈이 있다

local_exploit_suggester라는 모듈이다

 

해당 모듈을 사용하기 위해 현재 실행 중인 meterpreter는 백그라운드로 보내두자

ctrl + z 또는 bg 또는 background 명령어를 통해 백그라운드로 보낼 수 있다.

 

 

해당 모듈을 연결한 후 options를 사용해 필요조건을 확인해 보자

session 이 필요한 것을 확인할 수 있는데

session을 확인하기 위해서는 sessions 명령어를 통해 확인할 수 있다

방금 백그라운드에 둔 DARK-PC 계정이 확인된다

 

해당 session의 id는 6이므로 모듈의 session 칸에 6으로 set 하면 된다

set을 마치고 나면 run을 사용해 해당 모듈을 실행시켜 보자

 

그럼 이렇게 공격 가능한 모듈과 불가능한 모듈들이 나뉘어 확인이 가능한데

여기서 우리는 bypass모듈을 사용해 볼 것이다

bypass란 우회를 뜻하는데 해당 모듈은 windows 이벤트 뷰어를 악용하여 UAC(User Account Control)을 우회하며

시스템 권한 상승 공격에 자주 사용된다

 

해당 모듈을 사용해 보자

use bypassuac_eventvwr

 

아까와 동일하게 options를 통해 기본 조건을 알아낸 뒤 set을 사용해 조건을 채워 주자

 

모든 조건이 채워졌으면 run을 사용해 해당 모듈을 실행하면 된다

 

 

그럼 다시 meterpreter 쉘을 확인할 수 있는데

다시 한번 유저 정보를 확인해 보자

 

 

유저의 이름은 똑같지만 아까보다 훨씬 많은 권한을 가지고 있는 것을 확인할 수 있다

 

'Hacking > TryHackMe' 카테고리의 다른 글

[TryHackMe] Basic Pentesting (Walkthrough)  (0) 2023.09.22
[TryHackMe] Bolt Walkthrough  (0) 2023.09.13