본문 바로가기
CTF, 워게임 문제 풀이/Try Hack Me

Anthem 문제 풀이

by secumark 2024. 3. 27.
728x90

 

  Task 1: Website Analysis  

 

This task involves you, paying attention to details and finding the 'keys to the castle'.

This room is designed for beginners, however, everyone is welcomed to try it out!

Enjoy the Anthem.

In this room, you don't need to brute force any login page. Just your preferred browser and Remote Desktop.

Please give the box up to 5 minutes to boot and configure.

 

무차별 대입 공격은 할 필요가 없다고 함. 

 

 

Let's run nmap and check what ports are open.

nmap을 실행해서 어떤 port가 열려있는지 확인해보라고 한다.

 

 

nmap [희생자 ip]로 간단하게 열린 포트를 확인해주었다. 열린 포트는 80/tcp (http)와 3389/tcp (ms-wbt-server)였다. 3390 포트는 윈도우원격데스크톱을 사용할 때 쓰이는 포트인데.. 일단 이 정도만 확인하고 넘어가보자.

 

 

What port is for the web server?

web server를 사용하는 포트는 http, 즉 80번 포트이다.

 
 

What port is for remote desktop service?

원격 데스크톱 서비스를 사용하는 포트는 무엇인가? 위에서 언급했던 3389를 입력하면 되겠다.
 
 

What is a possible password in one of the pages web crawlers check for?

 
웹크롤러가 확인할 수 있는 여러개의 페이지 중 하나의 가능한 비밀번호가 무엇이냐.. 무슨 말인지 잘 모르겠어서 hint를 확인했다.
fill in the gap ******.txt
password 파일을 확인하라고 하는 것 같다.
 
더 모르겠다..
 
 
일단 ping을 그냥 보내봤는데 응답이 없다. 웹 브라우저에서 접속해봤는데도 응답이 없다. 
 
그러다가 문제에 있는 web crawlers라는 단어에 다시 주목했다. 웹 크롤러에 대해서 아는게 별로 없어서 무작정 웹크롤러를 검색했는데, 우연히 이 글을 봤다. 제목이 '웹 크롤러 좀 그만 만들어라' 이다. 
 
제목이 너무 신선해서 들어가서 무작정 글을 읽었는데, 텍스트 파일의 정체를 알아냈다.
 
그것은 바로 robots.txt.. 정보보안기사 공부하면서 몇번 들었는데 완벽히 까먹고 말았다.. robots.txt는 간단하게 말하면 웹 크롤링을 하고 싶을때 특정 사이트의 /robots.txt 파일을 참고해서 작성된 룰에 따라 수집을 할 수 있도록 하는 것이다.
 
 
 
그냥 10.10.125.7/robots.txt 로는 접속이 안돼서 앞에 http를 함께 붙여줬더니 다음과 같은 페이지가 출력되었다.
User-agent가 *로 설정되어 있다.
UmbracoIsTheBest!
아마 모든 에이전트가 아래의 4개 디렉터리는 크롤링 할 수 없도록 설정을 해놓은 것 같다.
 
 
 
이런식으로 사이트를 확인할 수 있고.. 그래서 가능한 비밀번호가 뭘까..
힌트에 robots.txt를 fill in the gap이라고 했었다... 근데 첫번째 줄에 있는게 혹시 possible password인가 해서 입력해봤더니 맞다. (ㅡㅡ)
 
 
 
 

What CMS is the website using?

 
 
웹사이트에서 어떤 CMS를 쓰고 있냐고 물어보고 있다. CMS는 콘텐츠 관리 시스템. 간단하게 말하면 컨텐츠를 간편하게 올릴 수 있고, 운영도 쉬운 시스템을 말한다. 정답은 7글잔데.. 내가 아는 건 wordpress 뿐이다. 사이트 소스코드를 보면 대충 알 수 있지 않을까?
 
 
아무것도 없다.
 
그런데 
 
 
이 글에서 robots.txt 파일에서도 어떤 cms를 쓰는지 확인할 수 있다고 해서 다시 봤더니 umbraco가 눈에 띄었다. 사실 umbraco라는 걸 처음 들어봐서 뭔지 몰랐는데, 검색해보니까 이것도 오픈소스 콘텐츠 관리 시스템 플랫폼이라고 한다. 작성 언어는 C#이고, MS기반 인프라에 배포되었다고 한다.
 
 
What is the domain of the website?
이 웹사이트의 도메인이 무엇인지 물어보고 있다. 주소를 맞추라는 것 같다. 정답 형식은 ******.***
******.com

 

 

 

정답은 여기에.

 

 

What's the name of the Administrator

 
 
관리자 계정의 이름이 무엇인지 묻고있다.
형식: ******* ******
 
힌트에는 Consult the Oracle 이라고 적혀있다. (your favourite search engine)
검색 엔진을 활용해서 찾아내라는 뜻이다. 
 
 
디폴트 값은 admin이나 test.. 이건 아닌것 같고
 
anthem.com 페이지 내에 있는 2개의 글을 읽어봤다. 그 중 하나가 이건데
 
 
 
누군가가(대표인가?) admin에게 시를 하나 써줬다... 저 아래 시를 복사해서 검색해봤는데
 
 
 
이런 결과가 나왔다. 참고로 nursery rhyme은 동요라는 뜻. ...
 
놀랍게도 이게 정답이다.
 
 

Can we find the email address of the administrator?

이제는 관리자의 이메일을 찾아야 한다. 힌트가 있다.
 
 
There is another email address on the website that should help us figuring out the email pattern used by the administrator. 
관리자에 의해 사용된 이메일 패턴을 확인할 수 있도록 돕는 이메일 주소가 웹 사이트에 있다고 한다.
 
이 사이트에 2개의 글이 있었는데, 하나는 바로 위에서 풀었던 문제에 해당되는 글이고, 또 하나는 이 글이다. 

 

이 글 맨 아래에 JD@anthem.com으로 연락을 달라는 내용이 있었다. 그러면 이 사이트와 관련된 직원들은 @anthem.com이라는 메일을 쓸거고, 이 글을 쓴 사람의 이름은 Jane Doe, 그러니까 앞 글자만 따서 만든 이메일이니까 

 

Solomon Grundy의 이메일은 SG@anthem.com이 될 것이다.

 

 

  Task 2: Spot the flags  

Our beloved admin left some flags behind that we require to gather before we proceed to the next task...

flag를 4개 찾아야 한다.

 

What is flag 1?

1번 문제의 힌트는 Have we inspected the pages yet?이라고 적혀있다. 그.. 관리자페이지로 소스코드를 확인 해봤냐? 이런 말이다. 

 

 

A cheers to our IT department 페이지를 검사해보면, meta content 부분 중 하나에 THM{ANOTH3R_M3TA}라는 플래그처럼 보이는 게 있다... 근데 이거는 FLAG 4의 정답이었다.

 

 

 we are hiring 페이지에도 flag 값이 들어있었다.

THM{L0L_WH0_US3S_M3T4} 이게 flag1의 정답이었다.

 

 

What is flag 2?

힌트는 search for it. 이라고 적혀있다. 검색해라.. 

 

 

 이것저것 찾아보다가..... 안보인다.

뭘 검색하라는 걸까? 진짜 검색창에 flag 2 이런걸 검색하라는 건가 싶어서 해봤는데 딱히 단서를 못 찾았다.

 

근데 umbraco를 다시 들여다보니까 아까 admin 아이디랑 비밀번호까지 다 알아냈기 때문에 umbraco 페이지 접속이 가능한 것 같다. 

 

 

워드프레스처럼 이렇게 관리자 페이지에 접속이 가능한 것이었다. 어쨌든.. 그래서 flag 1, 4도 이 페이지에서 쉽게 meta data 확인이 가능하다.

 

 

어쨌든 search바 부분을 다시 봤는데, flag 값이 있었다. 이게 처음에 안 보였던게

 

 

flag 값이 오른쪽 끝에 붙어있었음;;

 

 

What is flag 3?

힌트가 profile이다. 

 

 

이 프로필을 얘기하는 건가 싶어서 봤는데 딱히 보이는게 없었다.

 

 

umbraco에 들어가보니까.. your profile이라고 적혀있긴한데.. 아무것도 없었고

 

 

SG말고 Authors에 있던 또 다른 한 사람인 Jane Doe에 대해 살펴봤다.

 

 

여기에 플래그 값이 있었다!

 

What is flag 4?

flag4의 값은 flag1 풀이에 함께 찾아놓았다.

 

 

 

  Task 3: Final stage  

 

Let's get into the box using the intel we gathered.

무슨 박스에 들어가라는 걸까.. 원격도메인 접속을 말하는 걸까? 그런데 rdp는 윈도우에서 사용하는 건데, 리눅스에서 리눅스로 rdp를 어떻게 하는 걸까..? 리눅스에서 윈도우로 접속할 수 있는지 검색해봤다.

 

rdesktop이라는 명령어를 사용할 수 있다고 한다.

 

 

설치가 안되어 있어서 설치도 진행했다.

rdesktop [options] server[:port] 이렇게 사용하라고 한다. 유저명과 pw는 앞에서 봤던 SG, 그리고 UmbracoIsTheBest!를 비밀번호로 입력해봤다.

 

rdesktop -u SG [target ip] 까지만 입력했는데 다음과 같이 로그인 창이 떴다.

 

 

접속이 됐다!

 

 

 

Let's figure out the username and password to log in to the box.(The box is not on a domain)

 

이건 답을 입력할 필요 없이 넘어가면 된다.

 

Gain initial access to the machine, what is the contents of user.txt?

 
 
user.txt 파일에 flag 값이 적혀있었다.
 
 

Can we spot the admin password?

admin password를 확인할 수 있냐고 물어본다. 힌트가 it is hidden이어서 숨겨진 파일에 들어있다는 생각이 들었다.
 
 
Hidden items 설정을 하고 봤는데 딱히 숨겨진 파일이 보이지 않았다.
 

 

문서 폴더에 있는 Default라는 이름의 rdp가 숨겨져있긴한데..

 

 

그리고 localdisk c에는 backup 폴더, programdata 폴더가 숨겨져 있었다.

 

 

 

backup 폴더에 들어갔더니, restore.txt 파일이 있었다! 이걸 열어봤는데, 파일을 실행시킬 권한이 없다고 뜬다.

 

그래서 그냥 속성에 SG를 추가해봤다.

 

 

파일이 바로 읽힌다. 이게 정답이다.

 

 

Escalate your privileges to root, what is the contents of root.txt?

 

 

root로 권한 상승을 해서 root.txt 파일을 읽어보라고 한다.

 

 

 

Local Dist (C:) > Uses > Administrator에 접속해봤다. (비밀번호는 위 문제 정답을 입력하면 된다.)

 

 

desktop 폴더에 root 파일이 들어있었다.

 

문제를 모두 풀었다.

 

소요시간: 약 5시간

728x90

'CTF, 워게임 문제 풀이 > Try Hack Me' 카테고리의 다른 글

Benign 문제 풀이  (0) 2024.05.02
Investigating with Splunk 문제 풀이  (0) 2024.05.02
NMAP 문제 풀이  (0) 2024.04.01
Blue 문제풀이  (0) 2024.03.29
Agent Sudo 문제 풀이  (0) 2024.03.26

댓글