Mr.Robot CTF 풀이1 (Walk through)

2017. 3. 29. 22:34보안 & 해킹/CTF



Mr.Robot 드라마를 베이스로 한 CTF 문제이다.


Vulnhub에서 다운받아 문제를 풀어 볼 텐데, 앞서서 이 CTF에는 두가지 이상의 버전이 존재하기에 최신 버전을 기준으로 설명하도록 하겠다.


해당 CTF 문제를 OVA파일로 다운로드받고 VMware에 설치를 해준다.


Mr.Robot 문제를 받고나면 초기상태를 볼 수 있다.


Description을 보면 wordpress, ubuntu라는 정보를 볼 수 있는데 이를 몰라도 알아낼 수는 있다.


초기 Network 설정은 Bridge(Automatic)인데 우리는 편의상 칼리리눅스를 이용하여 내부망에서 풀이를 진행하기 위해 NAT로 설정을 바꾼다.




mrRobot 가상 운영체제를 부팅하면 linux login 창이 뜬다. 




하지만 우리는 계정 id도 password도 모른다.




이제 칼리리눅스의 Zenmap 기능을 이용하여 내부망에 붙어있는 CTF의 ip를 알아내보자.


윈도우 키를 눌러 검색창에서 zenmap을 검색하면 Zenmap(as root)가 있고 이를 실행해준다.






나의 칼리 네트워크 ip 대역대를 확인해보자.



ifconfig을 입력해보면 나의 대역대는 192.168.150.* 임을 알 수 있고 zenmap에서 이쪽 대역대를 검색해본다.








zenmap의 Hosts를 보면 칼리리눅스(자신)의 ip인 192.168.150.128와 192.168.150.133이 리눅스형태인 것을 알 수 있다. 그리고 80/tcp http Apach httpd 포트가 열려있는 것을 보아 웹서비스가 동작하고 있다는 것 또한 알 수 있다.


웹 브라우저를 이용해서 192.168.150.133에 접속해보면 웹페이지가 열린다.


입력할 수 있는 Commands로 몇가지가 주어지는데 해당커맨드를 입력하면 Mr.Robot 동영상이 나온다. CLI환경인 척 구현된 가짜 터미널 화면이다



웹 사이트에서 우클릭->소스보기(View Source)를 해보면 YOU ARE NOT ALONE이라고 나오는데 특별히 더 얻을 수 있는 정보는 없다. (구 버전 CTF에서는 이곳에 Base64로 인코딩된 dictionary 이름을 써놓았다.)



이제 이 웹 사이트를 스캔해보자.


uniscan 이라는 칼리 내장 툴을 사용하면 웹사이트 하위에 어떤 항목들이 있는지 스캔할 수 있다.


root@kali:~# uniscan -u 192.168.150.133 -qweds
####################################
# Uniscan project #
# http://uniscan.sourceforge.net/ #
####################################
V. 6.3
Scan date: 23-1-2017 14:48:30
===================================================================================================
| Domain: http://192.168.150.133/
| Server: Apache
| IP: 192.168.150.133
===================================================================================================
|
| Directory check:
| [+] CODE: 200 URL: http://192.168.150.133/Image/
| [+] CODE: 200 URL: http://192.168.150.133/admin/
| [+] CODE: 200 URL: http://192.168.150.133/feed/
| [+] CODE: 200 URL: http://192.168.150.133/image/
| [+] CODE: 200 URL: http://192.168.150.133/login/
| [+] CODE: 200 URL: http://192.168.150.133/rss/
| [+] CODE: 200 URL: http://192.168.150.133/wp-login/
| [+] CODE: 200 URL: http://192.168.150.133/wp-admin/
===================================================================================================
|
| File check:
| [+] CODE: 200 URL: http://192.168.150.133/admin/index.html
| [+] CODE: 200 URL: http://192.168.150.133/admin/index.php
| [+] CODE: 200 URL: http://192.168.150.133/favicon.ico
| [+] CODE: 200 URL: http://192.168.150.133/index.html
| [+] CODE: 200 URL: http://192.168.150.133/index.html%20
| [+] CODE: 200 URL: http://192.168.150.133/index.php
| [+] CODE: 200 URL: http://192.168.150.133/license.txt
| [+] CODE: 200 URL: http://192.168.150.133/readme
| [+] CODE: 200 URL: http://192.168.150.133/readme.html
| [+] CODE: 200 URL: http://192.168.150.133/robots.txt
| [+] CODE: 200 URL: http://192.168.150.133/search/htx/sqlqhit.asp
| [+] CODE: 200 URL: http://192.168.150.133/search/htx/SQLQHit.asp
| [+] CODE: 200 URL: http://192.168.150.133/search/SQLQHit.asp
| [+] CODE: 200 URL: http://192.168.150.133/search/sqlqhit.asp
| [+] CODE: 200 URL: http://192.168.150.133/sitemap.xml
===================================================================================================
|
| Check robots.txt:
|
| Check sitemap.xml:
===================================================================================================
|
| Crawler Started:
| Plugin name: Upload Form Detect v.1.1 Loaded.
| Plugin name: Web Backdoor Disclosure v.1.1 Loaded.
| Plugin name: Timthumb <= 1.32 vulnerability v.1 Loaded.
| Plugin name: External Host Detect v.1.2 Loaded.
| Plugin name: Code Disclosure v.1.1 Loaded.
| Plugin name: phpinfo() Disclosure v.1 Loaded.
| Plugin name: E-mail Detection v.1.1 Loaded.
| Plugin name: FCKeditor upload test v.1 Loaded.
| [+] Crawling finished, 59 URL's found!


스캔 결과를 보면 /wp-login/ , /wp-admin/ 항목이 있는 걸로 보아 워드프레스 기반임을 알 수 있다. 또한 192.168.150.133/asdfdsfasdf 와 같이 에러페이지를 유도해보면 워드프레스 디폴트 블로그 페이지가 나온다.


/wp-login 페이지에 접속해보면 아래와 같은 워드프레스 로그인 페이지를 볼 수 있다.



uniscan 결과 나온 파일리스트를 보면 /robots.txt 를 볼 수 있다. robots.txt 페이지는 웹봇의 자동 크롤링 설정. 이 파일에 각종 CTF에서 flag들을 보통 잘 숨기기에 (게다가 이 CTF 이름도 Mr.Robot이고) 해당 페이지로 가보자.



fsocity.dic 과 key-1-of-3.txt 라고 적힌 것을 볼 수 있다.


wget 명령어 혹은 해당 페이지 http://192.168.150.133/[fsocity.dic, key-1-of-3.txt] 로 접속하여 txt 파일을 받자.



key-1-of-3.txt 로 접속해보면 플래그값을 찾아낼 수 있다.


fsocity.dic 파일을 보면 파일이 7.2MB인데 85만줄이나 되는 사전파일이다.


플래그2번을 구하기 위해서는 이 사전파일을 이용해야 될 것 같지만 무엇인지 모른다.






링크 : 풀이 2번


링크 : 풀이 3번