lhywk 님의 블로그

[TryHackMe] Basic Pentesting 본문

TryHackMe

[TryHackMe] Basic Pentesting

lhywk 2026. 2. 4. 22:10

export IP=10.201.34.76: export 명령어를 사용하여 IP라는 이름의 환경 변수를 만들고 공격 대상의 IP 주소인 '10.201.34.76'을 값으로 저장한다.

ping $IP 명령어를 사용해 공격 대상(10.201.34.76)이 네트워크상에서 활성화되어 있는지 확인한다.

첫 번째 문제를 풀이한다.

nmap 스캔을 통해 공격 서버에서 어떤 포트들이 열려 있고 어떤 서비스들이 실행되고 있는지 파악하는 과정이다.

  • 포트 22 (SSH): 원격으로 서버에 접속하기 위한 서비스
  • 포트 80 (HTTP): Apache 웹 서버
  • 포트 139/445 (Samba): 파일 공유를 위한 서비스
  • 포트 8080 (HTTP): Apache Tomcat 서버

2번째 문제도 풀이한다.

80번 포트로 열려있는 홈페이지로 접속한다.

apt install gobuster 명령어를 사용해 gobuster 도구를 설치한다.

gobuster는 웹사이트에서 숨겨진 디렉터리나 파일을 찾아내는 데 사용되는 도구이다. 앞선 nmap 스캔에서 발견한 웹 서비스(포트 80, 8080)를 더 자세히 분석하기 위해 필요한 공격 도구이다.

gobuster 도구를 실행하여 타겟 웹 서버(http://$IP)에서 숨겨진 디렉터리를 검색한다.

준비된 단어 목록(wordlist)을 이용해 가능한 모든 디렉터리 이름을 대입하여 스캔을 수행하고 그 결과 /development 라는 이름의 디렉터리를 발견했다.

3번째 문제도 풀이한다.

/development 디렉터리에 웹 브라우저로 접속한다.

해당 디렉터리 내부의 모든 파일 목록이 보인다. 여기서 dev.txt와 j.txt라는 두 개의 텍스트 파일을 발견했다.

dev.txt의 내용이다.

파일 안에는 개발자들이 남긴 메모가 있고 여기서 단서를 얻을 수 있다. 메모에 따르면 이 서버는 Apache Struts 2.5.12 버전을 사용하고 있고 SMB 또한 구성되어 있는 것을 확인할 수 있다.

enum4linux 도구를 실행한다.

이전 nmap 스캔에서 파일 공유 서비스인 Samba(SMB)가 활성화된 것을 확인했기 때문에 이 도구를 사용해 해당 서비스에서 사용자 계정 목록, 공유 폴더 정보 등 상세한 정보를 추출한다.

Samba(SMB) 서비스의 취약점을 이용하여 서버에 존재하는 실제 사용자 계정 목록을 알아낸다.

user 이름은 kay, jan, ubuntu이다. 특히 kay, jan은 이전에 개발자 노트에서 본 -K, -J와 동일 인물일 가능성이 높다.

rockyou.txt는 실제 유출된 수백만 개의 비밀번호가 포함되어 있어서 패스워드 크래킹에 자주 사용되는 파일이다.

gzip -d rockyou.txt.gz 명령어로 압축을 해제한다.

Hydra 도구를 사용하여 SSH 비밀번호 Brute-force attack을 한다.

jan사용자의 비밀번호가 armando임을 찾아낸다.

각각 문제 풀이에 성공한다.

ssh jan@$IP 명령어를 입력하고 armando를 비밀번호로 입력하여 원격 접속에 성공한다.

/etc/passwd 파일을 확인해 보면 kay, jan 계정이 각각 있다.

kay만이 접근 가능한 pass.bak 파일이 있다. 읽기 위해서는 권한 상승이 필요하다.

문제를 풀이한다.

python -m http.server 5555 명령어로 현재 위치한 디렉터리(~/Downloads)의 파일들을 5555번 포트로 공유하는 웹 서버를 만든다.

웹 서버에 접속하여 wget 명령어를 사용해 linpeas.sh 파일을 다운로드한다.

linpeas.sh 파일에 실행 권한을 주고 실행한다.

시스템을 스캔한 결과 kay의 개인 SSH 키 파일을 발견한다.

kay의 개인 SSH 키 파일 내용을 확인한다.

kay_id_rsa이름으로 편집기를 연다.

kay의 SSH 키를 복사한다.

SSH는 보안을 매우 중요하게 생각하기 때문에 개인 키 파일은 파일 소유자 외에는 아무도 읽을 수 없도록 설정되어야 한다.

Permissions 0644 for 'kay_id_rsa' are too open 은 현재 파일 권한이 644로 설정되어 있어서 소유자 외에 다른 사용자가 이 파일을 읽을 수 있다는 의미이다. 다른 사람이 내 개인 키를 읽을 수 있다면 복사해서 악용할 수 있기 때문에 SSH는 이런 위험한 상태의 키 파일은 아예 사용하지 않도록 막아버린다.

chmod 600 명령어를 사용하여 SSH 개인 키 파일의 권한을 바꾼다.

ls -l을 통해 파일 권한을 다시 확인해보면 권한이 -rw-------로 변경되었다. 이는 오직 파일의 소유자(root)만 이 파일을 읽고 쓸 수 있다는 의미로 SSH가 요구하는 보안 수준을 만족한다.

암호화된 SSH 키 파일을 암호 해독기가 이해할 수 있는 형식으로 변환하는 과정이 필요하다. ssh2john로 SSH 개인 키를 John the Ripper와 같은 암호 해독기가 처리할 수 있는 해시 형태로 바꿔준다.

John the Ripper 도구을 사용하여 SSH 키의 비밀번호(beeswax)를 알아낸다.

공격자는 개인키 파일과 비밀번호를 입력해서 SSH 접속에 성공한다.

pass.bak 파일 내용을 성공적으로 읽는다.

마지막 문제를 풀이에 성공한다.

'TryHackMe' 카테고리의 다른 글

[TryHackMe] Blue  (0) 2026.02.06
[TryHackMe] RootMe  (0) 2026.02.05
[TryHackMe] LazyAdmin  (0) 2026.02.05
[TryHackMe] Bounty Hacker  (0) 2026.02.05
[TryHackMe] Ignite  (0) 2026.02.04