[HTB] StartingPoint - Foundations 문제 풀이 모음
시작에 앞서
생각해보니까 나는 가장 기본적인 Writeup이 있는 문제들이 아니라 바로 Machines로 달려들어갔다는 것을 깨닫고 이번에 동아리에서 스터디 매니저로 진행하는 겸 한번 Starting Point에 있는 문제들을 풀어보고자 한다.
근데 여기도 VIP 머신들이 있어 일단은 Free 머신들만 푸는걸로.
| 이름 | 난이도 | OS | Link |
|---|---|---|---|
| Meow | Very Easy | Linux | Link |
| Fawn | Very Easy | Linux | Link |
| Dancing | Very Easy | Window | Link |
| Redeemer | Very Easy | Linux | Link |
Meow (Linux)
일단 모든 과정은
- 정찰 및 정보 수집
- 초기 침투
- 권한 상승
의 순서로 진행하게 된다.
정찰 및 정보 수집 (Reconnaissance & Enumeration)
nmap 결과 telnet이 열려있음을 확인했다.
초기 침투 (Initial Foothold / Exploitation)
telnet에 admin, administrator, root 등으로 로그인을 시도했고 바로 관리자(root)계정을 습득하는데 성공했다.
권한 상승 (Privilege Escalation)
할 것도 없이 바로 root 습득
이번 문제는 Weak Credentials(취약한 자격 증명), Misconfiguration(설정 오류 _ 비밀번호 없음) 의 취약점이라고 볼 수 있겠다.
Fawn (Linux)
바로 시작
정찰 및 정보 수집 (Reconnaissance & Enumeration)
nmap 스캔 결과 21번 포트에 FTP 서비스(vsftpd 3.0.3)이 실행 중임을 알 수 있다.
거기다 Anonymous FTP login allowed를 보면 알 수 있듯 비밀번호 없이 anonymous로 로그인 할 수 있고 게다가 비밀번호 없이 접속 가능하다고 한다.
초기 침투 (Initial Foothold / Exploitation)
FTP 접속 성공 및 파일을 바로 읽을 수 없음으로 FTP의 명령어인 get을 이용해 다운로드 받으면 된다.
권한 상승 (Privilege Escalation)
이번 문제는 유저 획득이나 계정 탈취 과정이 없다.
Dancing (Window)
이번 문제는 지금까지와는 다른 Window 머신이다.
정찰 및 정보 수집 (Reconnaissance & Enumeration)
딱 봐도 리눅스랑 차이가 많이 보이는데
자세한 내용들은 인터넷에 찾아보거나 호롱불 고양이/HTB Fluffy에 정리해 놓은 부분을 참고하면 된다.
초기 침투 (Initial Foothold / Exploitation)
일단 이번에 우리가 볼 부분은 microsoft-ds로 이 친구를 통해 윈도우에서 SMB프로토콜이 실행중임을 알 수 있다.
smbclient -L <IP>를 통해 접속을 시도해보면 비밀번호를 물어보는데 우린 모르니까. 그냥 엔터를 눌러주자.
그럼 위처럼 ADMIN$, C$, IPC$, WorkShares라고 하는 4개의 공유 폴더를 볼 수 있다.
그리고 smbclient 명령어를 통해 파일들에 접속을 시도하면 위처럼 ADMIN$과 C$는 접속이 불가능하나 IPC$나 WorkShares에는 무리없이 접속이 가능하다는 것을 알 수 있다.
참고로 여기서 \\\\를 4개나 쓴 이유라면 리눅스 터미널에서 \를 쓰기 위해선 \\으로 입력해야 \가 되기 때문이다. 마치 마크다운처럼.
하지만 IPC$에는 파일이 없고
여기엔 두 사용자가 있다.
Amy.J에는 worknotes가 존재하고
James.P 에는 찾는 플래그가 존재한다.
보아하니 진짜 일해야 하는 것들에 대한 내용이였다.
권한 상승 (Privilege Escalation)
이번 문제는 SMB Share Misconfiguration 즉 SMB 공유 설정 오류라고 볼 수 있겠다.
Redeemer (Linux)
이번엔 다시 리눅스 문제.
정찰 및 정보 수집 (Reconnaissance & Enumeration)
어..? 머선일이고.
좀 더 넓게 스캔을 진행하니 무려 6379번 포트가 열려있음을 확인했다.
그리고 그 안에는 Redis 5.0.7 버전이 실행되고 있다는 것을 알게 되었다.
Redis란? 특징부터 사용법까지, 제대로 활용하기 / ELANCER
위 블로그를 통해 redis에 대해 간단히 이해하고, 다음으로 진행하자.
초기 침투 (Initial Foothold / Exploitation)
redis-cli -h <ip>를 통해 원격 서버에 접속이 가능하고 성공했다면 위처럼 나올 것이다.
info 명령어를 입력해 출력된 정보를 쭉 읽어보면
# Keyspace에 db0:keys=4를 볼 수 있다.
0번 데이터베이스에 4개의 키가 저장되어있다고 하니 select 0을 입력해 0번 데이터베이스를 선택하자.
위와같이 keys * 명령어를 통해 존재하는 키들을 살펴볼 수 있고 get 명령어로 마치 cat으로 읽듯 읽어볼 수 있다.
권한 상승 (Privilege Escalation)
참 쉽죠?
Redeemer의 경우 원래 Redis는 보통 신뢰할 수 있는 내부 네트워크에서만 접근하도록 설계되어있다만 이번처럼 비밀번호도 없는데다 외부에서 찾아 접속 가능했기에 발생한 문제라고 볼 수 있겠다.
마치며
보통의 문제와는 좀 다르게 되게 쉽게 만들어져있다보니 아무래도 초기 침투, 권한 상승의 부분이 전혀 없는 난이도의 문제이긴 하다.
일단 아직 진행도는 56%이지만 무료 사용자가 할 수 있는 문제는 다 풀었다고 볼 수 있겠다.
그럼 다음번엔 Tier 1 - Fundamental Exploitation으로 넘어가 문제를 풀어보자.