CTF 문제풀이 - Chili
Scenario
Ø Attack-system : Kail linux 5.10.0 version
Ø CTF Image : Chili.ova (SHA1:1AC409DAA2F505073B62FADD08B7F793A8B4CF65)
Ø Network : DHCP service – Enabled / IPv4 Address – Automatically assign
Ø VM : VMware Workstation 16Pro 16.1.0 build
Ø Goal : Get the root shell i.e.(root@localhost:~#) and then obtain flag under /root
Ø Hint : “If you ever get stuck, try again with the name of the lab”
Ø Vulnhub link : https://www.vulnhub.com/entry/chili-1,558/
Ø Screenshots
1. netdiscover 을 통한 Target IP 획득
* netdiscover : APR 를 활용하여 Network Segment 연결된 Client를 검색하는 Scanner
# netdiscover –i eth0
2. 확인된 Target IP 기반으로 zenmap 을 활용 Scanning 진행
* 21/tcp ftp vsftp 3.0.3 service 및 80/tcp http Apache httpd 2.4.38 (Debian) service 확인가능.
* Target OS 는 Debian Linux로 예상.
3. firefox 통해 Target Webserver 접속 시도.
# firefox http://192.168.10.134 &
* 크게 유용한 정보는 확인되지않는다.
* F12 개발자 도구를 통해 추가적인 정보 수집을 진행.
<meta name="description" content="We Are Still Alive!"> <meta name="keywords" content="Chili"> <meta name="robots" content="index, follow"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> |
* 몇가지 추가적인 정보들을 획득
1) description = We Are Still Alive!
2) keyword = Chili
3) robots = index, follow
(예상) Web server 를 통해 얻은 정보 기반으로 ftp를 통한 사용자 접속이 필요할것으로 사료됨
4. Password crack 을 위한 hydra Tool 을 통한 Brute-force Attack 진행
#hydra –l chili –P /usr/share/wordlists/rockyou.txt ftp://192.168.10.134
* ftp user의 정보를 crack 성공 ID:chili / Password:a1b2c3d4 정보를 획득 할 수 있다
5. ftp 접속 및 취약점 확인.
# ftp 192.168.10.134
* Target /var/www/html 내 .nano 다른 사용자 또한 권한이 부여되어있음을 확인가능.
* 해당 취약점을 통하여 Web Shell Attack 공격을 시도하기 위한 코드를 제작.
* pentestmonkey http://pentestmonkey.net/tools/web-shells/php-reverse-shell Reverse shell 을 통한 Traget system 접속시도, 해당 code 수정작업진행
* attack.php 으로 파일을 제작한다.
6. FTP를 통한 attack.php 전송.
* attack.php 파일은 전송 후 실행을 위한 777 Permission 부여
* 전송 전 실제 실행 되는 여부 local 내 test 후 진행 필요함.
7. Web shell 접속
우선 공격자 시스템에서는 L:istener를 열고, 이후 Web 접속을 통한 Webshell 공격시도 2개의 터미널을 열어서 1번은 Listen 상태로 대기. 2번 터미널로는 Web 요청을 진행한다.
#nc –nvlp 8019
* 1번 터미널에서는 Listener을 연다. (Port는 attack.php 와 동일해야한다)
# curl http://192.168.10.134/.nano/attack.php
* 2번 터미널에서는 Webshell 로 접속 시도.
* Web Shell 이 정상적으로 열린다 이후 id, uname –a 등 Target system에 정상 접속 여부를 확인한다.
8. 사용자 권한 상승 및 root 접속
/etc/passwd 파일의 접근권한 확인 및 적합한 유저를 openssl 을 통해 생성한다.
#openssl passwd -1 –salt user01 user01
* 이후 생성된 password를 통해 직접 /etc/passwd 파일 내 user01 사용자의 권한을 root로 삽입 이후 su CMD를 통해 user01 사용자로 접속 및 id CMD 를 활용하여 권한 부여여부 확인.
9. Flag 확인.
* root의 home 디렉토리로 이동, 해당 proof.txt file을 확인
시작은 웹해킹이나 시스템해킹 너무 재밋다 어셈블리어는 보면볼수록 지옥같지만 언젠가 CTF 가지고 노는 그날이 올꺼야~