안녕하세요 이번에 풀어볼 문제는 Mr Robot CTF 입니다.
https://tryhackme.com/room/mrrobot
Mr Robot CTF
Based on the Mr. Robot show, can you root this box?
tryhackme.com
There are 3 hidden keys located on the machine, can you find them?
이번 문제에서 할 일은 3개의 key를 찾는 것입니다. 일단 우선 nmap을 이용하여 targetIP를 대상으로 scan을 진행합니다.

1) -A (Aggressive Scan(
- OS 탐지
2) -T4 (Timing Template)
- 스캔 속도 조절로 T0(느림)~ T5(가장 빠름) 중에 설정
3) -p- (All Ports)
- 0부터 65535까지 모든 포트 스캔
이번에는 target IP를 browser를 통해 접속해봅시다.

옛날 컴퓨터가 부팅되듯이 시작하다가, 최종적으로 이런 command를 입력할 수 있는 화면이 나오는 기믹이 존재합니다.
하지만 page source code나 뭔가 단서를 찾을 수 없으니 일단 gobuster를 진행해봅시다.
gobuster dir -u http://10.10.153.93 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x php,txt,html,sh,js,css,py

gobuster를 이용하여 웹 서버의 dir 및 file을 탐색한 결과입니다.
웹페이지에서 robots.txt는 3가지 주요 역할을 진행합니다.
1. 크롤링 허용 또는 차단
- 웹사이트의 특정 디렉터리나 페이지에 대해 검색 엔진이 접근하지 못하도록 제한합니다.
- 예) 관리자 페이지, 비공개 자료, 테스트용 디렉터리 등
2. 서버 트래픽 관리
- 대형 웹사이트의 경우 크롤러가 서버에 과부하를 주지 않도록. 크롤링 빈도나 크롤링할 부분을 조정합니다.
3. 검색 인덱싱 제어
- 특정 페이지가 검색 결과에 표시되지 않도록 할 수 있습니다.
하지만 문제가 robot에 관련된 문제인만큼 한 번 robots.txt에 접근을 해 봅시다.

첫 번째 key 파일의 위치를 찾았습니다. 이제 key값을 확인해보면

이렇게 문제 1번은 해결되었습니다.
이제 다음 key를 찾으러 가봅시다.
이번에는 gobuster를 통해 찾은 /wp-login에 접근을 해봅시다.

이러한 로그인 페이지를 찾았습니다.
이번에는 gobuster를 통해 찾은 /license에 접근을 해 봅시다.

중간 부분에 do you want a password or something 이라고 하는 것을 보아 비밀번호 비슷한 힌트로 보이나 incoding 되어 있는 것으로 추정됩니다. 이를 CyberChief를 통해 decoding 해봅시다.
https://gchq.github.io/CyberChef/
CyberChef
gchq.github.io

Base64로 deooding하니 유의미한 문자열이 나왔습니다.
이를 /wp-login 에서 로그인하는데 이용하면 로그인에 성공하고 wp-admin에 연결되게 됩니다.
해당 사이트를 탐색하다보면 웹사이트를 custom 할 수 있는 사이트가 나오게 됩니다.

조사해본 결과 404page를 custom 할 수 있는 것으로 추정됩니다.
이를 이용하여 404page에 webshell을 이용해봅시다.
이에 대하여 pentestmonkey의 php shell을 이용할 것입니다.
https://github.com/pentestmonkey
pentestmonkey - Overview
pentestmonkey has 21 repositories available. Follow their code on GitHub.
github.com
이제 해당 코드를 upload하면 끝입니다. 이후에는 공격자의 kali에서 shell을 열여주고

아래 사진과 같이 status가 404가 나올만한 url에 접속하게 되면

아래 사진과 같이 reverse shell 연결에 성공하게 됩니다.

이제는 리버스 쉘 연결 환경을 탈출해 TTY쉘 환경에서 작업하기 위해 아래의 명령어를 사용해줍니다.
$ python -c 'import pty; pty.spawn("/bin/bash")'

이렇게 TTY쉘 환경에서 daemon의 계정을 탐색하다보면

2번째 key를 찾았습니다. 권한 부족으로 file을 열 수 없습니다.
그리고 password.raw-md5 라는 파일이 있습니다. 권한 상승에 도움이 될 지 모르니 확인해봅시다.

해당 파일에서는 robot의 계정 정보를 알 수 있었습니다.
그런데 md5로 암호화가 되어있는 것으로 추정됩니다.
MD5는 일방향 해시 함수로 해시만 보고 원본 문자열을 복원할 수는 없습니다.
하지만 해당 문자열은 잘 알려진 문자열로 이는 레인보우 테이블이나 온라인 데이터 베이스를 통해 역추적이 가능합니다.
https://md5.gromweb.com/?md5=c3fcd3d76192e4007dfb496cca67e13b
해당 사이트의 도움을 받아 역추적을 하게 되면
abcdefghijklmnopqrstuvwxyz 라는 원본 문자열을 알 수 있게 됩니다.

이제 robot의 계정에 접속 할 수 있으니 robot의 권한을 이용해 2번째 key값을 획득 하게 됩니다.
마지막으로 3번째 key값을 찾아봅시다.
딱봐도 root까지 권한을 상승시켜야 될 거 같으니 root 계정 접속을 목표로 해봅시다.
find / -perm -u=s -type f 2>/dev/null
해당 명령어는 리눅스/유닉스 시스템에서 SUID가 설정된 파일을 찾는 명령어 입니다.
여기서 SUID란 파일에 특수 권한 비트를 설정하여 파일 소유자의 권한으로 실행되게 하는 방식으로
악의적인 사용자가 SUID가 설정된 바이너리를 악용하여. 권한 상승을 할 수 있습니다.

우리는 익숙한 명령어인 nmap 파일을 찾았습니다.
이에 대해 더 조사해 보면

crack! b번 방법으로 해봅시다.

이렇게 마지막으로 3번째 key값 까지 찾아내었습니다.
이렇게 문제를 마무리하게 됩니다.
'보안 프로젝트' 카테고리의 다른 글
[TryHackMe] Relevant 문제풀이 (0) | 2025.02.15 |
---|---|
[TryHackMe] Basic Malware RE 문제풀이와 Ghidra를 이용한 reversing (0) | 2025.02.10 |
[TryHackMe] The Blob Blog 문제풀이 -- 중 kali linux 고장남 (0) | 2025.02.05 |
[TryHackMe] CyberLens 문제풀이 (0) | 2025.01.25 |
[TryHackMe] Light 문제풀이 (0) | 2025.01.21 |