본문 바로가기

보안 프로젝트

[TryHackMe] Enumeration & Brute Force 문제풀이

반응형

안녕하세요.

정말 오랫만에 보안관련 게시물로 찾아뵙게 되었습니다.

 

보안에 대해 요즘 정말 많은 생각들을 해왔고 하고 싶은 말이 많지만

아직까지도 고민에 빠져있으니 각설하고 문제 풀이를 시작하겠습니다.

 

https://tryhackme.com/r/room/enumerationbruteforce

 

Enumeration & Brute Force

Enumerate and brute force authentication mechanisms.

tryhackme.com

 

 

이제부터 7개의 Task로 이루어진 Enumeration & Brute Force 문제를 풀어보겠습니다.

 

Task 1. Introduction

Enumeration & Brute Force 문제에 대한 소개와 문제를 풀기위한 세팅법에 대한 내용입니다.

 

우선 Start Machine을 눌러 해당 문제를 위한 IP주소를 할당 받습니다.

 

이후에는 상단 프로필 이미지를 click하고 access에 가서 ovpn 파일을 다운로드 받습니다.

 

 

이후에는 해당 ovpn파일을 본인 pc openvpn에 등록해줍니다.

 

이제 다음 할 일은 

 

/etc/hosts 에 있는 파일에 타겟 IP를 등록해줍니다.

 

 

nano로 이용해서 파일을 편집해봅시다.

 

 

위 사진과 같이 내용을 수정하고

^O 를 눌러 파일을 수정해줍니다. 

 

 

Task 3. Enumerating Users via Verbose Errors

이번에는 잘못된 인증에 대한 응답 오류 메시지를 힌트로 취약점을 돌파할 차례입니다.http://enum.thm/labs/verbose_login/

사이트에서 제공하는 로그인 화면을 대상으로 수행합니다.

 

TryHackMe에서 제공하고 있는 script.py와 무작위 이메일이 들어있는 파일을 대입하여 공격을 수행합니다.

 

 

위와 같이 터미널에 명령어를 입력하게 되면 Task 3.의 답을 얻을 수 있게 됩니다.

 

무작위 대입이고 양이 많기 때문에 꽤 많은 시간 (저는 20분정도) 걸렸습니다.

 

Task 4. Exploiting Vulunerable Password Reset Logic

이번 침투타겟은

http://enum.thm/labs/predictable_tokens/reset_password.php?token=123
위 url의 token parameter를 이용한 침투입니다.

 

해당 token의 parameter에 burpsuite의 intruder를 이용하여 brute force 공격을 수행합니다.

 

우선적으로 위 링크의 request를 intruder로 가져오고 대입공격을 할 parameter인 token에 $를 추가해줍니다.

 

 

이후에는 아래 사진과 같이 payload setting에 

crunch 3 3 -o otp.txt -t %%% -s 100 -e 200

 

위 명령어를 통해 생성한 otp 대입 파일을 Load하여 start Attack을 합니다.

 

 

이후에 응답 길이 Length에 일반적이지 않은 값이 나오게 되면 해당 응답의 Response를 확인하여 비밀번호를 알아내면 

Task 4를 완수하게 됩니다.

 

 

Task 5. Exploting HTTP Basic Authentication

Task 4와 비슷합니다.

http://enum.thm/labs/basic_auth/

해당 링크에서 id는 admin으로 하고 비밀번호는 아무 입력이나 해서 burp suite를 통해 request를 살펴봅니다.

이후 해당 request를 intruder로 보내고 Authorization 값을 base64로 decode하게 되면 대입해야 할 parameter가 나오게 되고 

try hack me에서 제공하는 500-worst-passwords.txt를 intruder의 payload에 설정해서 brute force를 수행하면

admin에 해당하는 password를 얻을 수 있게 됩니다.

 

intruder를 통해 답을 확인 할 때는 Task 4.에서 Length로 확인한 것과는 다르게 status code를 이용해 유효한 응답이라는 200으로 응답이 오게 되면 해당 응답의Authorization 값을 다시 decode하여 admin의 password로 입력하게되면

 

정답을 맞추게 되며 해당 과제는 끝이 나게 됩니다.

 

[TryHackMe] Enumeration & Brute Force 후기

문제는 쉬운편인것 같습니다.

저 역시도 TryHackMe 첫 문제로 풀어보았는데 어려움을 유일하게 느낀것이 VM 세팅이었습니다.

burp suite는 그래도 어느정도 다룰 수 있었어서 무난했습니다.

 

허나 이 문제 풀이 과정을 설명하려니 그게 더 어려운거 같습니다.

 

전날에 소주 한 병 마시고 풀고 나서 오늘 블로그를 위해 다시 풀면서 글을 쓰고 있는데

문제 풀이 글 작성 방식을 다시 한 번 고려해봐야 할 것 같습니다.

 

솔직히 열심히 쓰다가 후반부터 구태여 모든 것을 쓰는 것이 맞는가? 라는 생각이 들며

망쳐버린거 같습니다.

 

그래도 처음은 미흡하더라도 기록하는 것이 제 원칙이라 결국 글을 써버렸습니다.

 

다음번에는 더 어려운 문제와 더 깔끔한 설명으로 찾아뵙겠습니다.

 

미흡한 글 읽어주셔서 감사합니다.

반응형