본문 바로가기

정보보안/CTF & PS

[정보보안][P.S.] 실습교육 Mission 2 WriteUp

728x90

1. 문제 접근

  • 접속할 수 있는 웹이 있는가?
  • 연결방법에는 무엇이 있는가?
  • 접속할 수 있는 웹이 있다면 Burp Suite 혹은 SQL Injection을 통해 bypass가 가능한가?

2. Scanning & Searching

 

이 문제에서 주어진 정보는 다음과 같다.

 

 - 2212 (SSH)  :  계정은 knu,  패스워드는 대문자2개+소문자2개+숫자2개

 - 8081 (Web)

 - 문제 : 1위를 한 날짜는 "언제" 였을까요?

 

 

 

우선 Scanning을 해봤다. 정확한 정보를 바탕으로 문제를 풀기 위해서였다.

 

그리고 웹에 접속을 시도했다.

 

Web Access

 

웹사이트에 잘 로그인 되었다.

 

접속되는 웹은 phpMyAdmin이었으며

 

hint의 내용은 university였다.

 

따라서 웹해킹을 시도하기 전 ssh 접속에 대해

 

Medusa를 통해 Bruteforce 공격을 진행했다.

 

crunch 6,6 -t ,,@@%% -o good.txt      // password File 생성
medusa -h 10.11.60.241 -p 2212 -u knu -P good.txt -M ssh -t 8     // BruteForce

 

Bruteforce Attack

 

이후 hint인 university에 대해 생각해보았다.

 

이 서버 또한 Metasploitable이므로 DVWA 웹이 있을 지도 모른다고 생각했다.

 

따라서 우선 Kali Linux의 nikto를 이용해 디렉토리 탐색을 시작했다.

 

Test

 

Test 디렉토리에서는 큰 정보를 찾지 못했고, University의 의미에 대해 다시 생각해보았다.

 

/university /knu 등의 디렉토리를 찾던 때

 

/kangwon 임을 발견했다.

 

 

Web

 

이제 Scanning과 Searching으로 얻을 정보는 모두 얻었다고 생각했다.

 

이젠 Exploit을 통해 ID와 Password를 알아내야한다.


3. Exploit

 

어느정도 진행되었을 때, DVWA의 ID가 admin 이라는 힌트를 얻었다.

 

그럼 우선 Social Engineering을 통해 비밀번호를 유추해보자.

 

늘 Metasploitable의 비밀번호는 password였다.

물론 ssh 패스워드와 동일한 패턴일 수도 있다.

 

Login Success

 

운이 좋았던건지 정말 Password였다.

 

하지만 이 이후 Security Level을 조종할 수 없었다.

 

따라서 Page Source를 보며 burp suite로 확인해보기로 했다.

 

웹쉘만 올린다면, 혹은 Command Injection만 성공한다면 파일을 찾기는 쉬울 것이다.

 

개발자도구, burp suite 어느 것을 쓰더라도

Security Level이 Cookie 값이며 변조 가능하다는 것을 알 수 있었다.

 

Burp Suite
F12

 

나는 개발자도구가 더 편하기에 개발자도구를 통해 쿠키값을 변조했다.

 

Success

 

그렇다면 이제 남은 것은 "언제" 우승했는가를 찾는 것이다.

find 명령어를 통해 최근 7일 이내 수정/생성 된 파일이면서 날짜를 가지고 있는 파일을 찾아보았다.

 

find / -mtime -7 -type f -exec grep -l "20" {} +    // 20XX년을 내용으로 하는 파일

 

Files

 

매우 많은 파일이 발견되었다.

 

하지만 의문점이 생겼다.

 

1. 파일은 텍스트 형태가 아닐 수 있다.

2. 파일은 10진수 형태로 년도를 포함하지 않을 수 있다.

 

따라서 파일 이름을 유추하기로 결정했고

 

"January", "Fabuary" 등을 테스트하다가

 

문제에 적힌 ["언제" 1위를 했을까]를 통해 when 이라는 파일을 검색하게 되었다.

 

when

 

수상한 파일을 발견했다. 하지만 내가 접근할 수 있는 곳이 아니었다.

 

따라서 mv 명령어를 통해 kangwon으로 파일을 옮겨보았다.

 

10.11.60.241 |mv /var/src/when /kangwon/

 

그리고 웹을 통해 다운로드 받았다.

 

mv When

 


4. File Signature Recovery

 

받은 파일은 실행이 되지 않아 HexEditor로 열어보았다.

 

Hex - When

 

파일은 7z의 File Signature를 가지고 있었고 37 7A를 앞에 추가해 복원했다.

 

그러자 when.jpg를 다운로드 할 수 있었고 이또한 열리지 않아 Hex Editor로 접근했다.

 

When.jpg

 

String 부분을 보니 IF가 있다.

 

아마도 JFIF라는 jpg파일의 시그니처 헤드 부분이 손상된 것 같다.

 

따라서 (ff d8 ff e0 00 10 4a 46) Signature를 추가해 복원해주었다. JF 부분도 추가해주었다.

 

복원은 이 사이트를 참조했다.

 

https://www.ntfs.com/jpeg-signature-format.htm

 

JPEG Signature Format: Introduction & Recovery

JPEG Signature Format: Introduction & Recovery Joint Photographic Experts Group Type code JPEG File extension .jpg, .jpeg, .jpe, .jif, .jfif, .jfi Type of format Raster/lossy Colors up to 24-bit Compression JPEG Numerical Format Big-endian Magic number FF

www.ntfs.com

 

Result

 

역시 원본은 텍스트가 아닌 사진이 맞았고 날짜는 2016년 04월 25일이었다.

 


 

Reflecting on)

 

처음엔 시행착오를 많이 했다.

 

Kangwon 파일을 찾기까지 시간이 많이 소요됐고

 

사실 admin이라는 계정명을 몰랐으면 더 오래 걸렸을 것이다.

 

password도 우연찮게 알아버린 뒤라 Command Injection을 통해 쉽게 옮길 수 있었을 뿐이었다.

 

조금 더 논리적인 흐름으로 문제를 풀 수 있지 않았을까하는 부분도 있었다.

728x90

'정보보안 > CTF & PS' 카테고리의 다른 글

[정보보안][CTF] CSAW CTF 2012 lemieux writeup  (0) 2023.08.02