본문 바로가기
디지털 포렌식(Digital Forensics)/CTF(ctf-d.com)

[Disk] 이벤트 예약 웹사이트를 운영하고… #A

by LIZ0904 2020. 6. 7.
반응형

[ctf-d] 의 DIsk 문제 중 첫번째 문제

이번에는 disk 포렌식 문제를 풀어보도록 하자! 처음 해보는 분야라 설레는 마음으로 시작합시다.

 

 

 

문제에서 주는 파일의 압축을 풀어보면, 2012_Secuwave_F100\Incident_Response\2012-08-27 아래에 사진과 같은 많은 폴더들이 있다. 

 

 

이 폴더 안에 각각 어떤 파일들이 있는지 알아보자.

각 폴더들 내부의 파일들

 

폴더 파일
accounts group(사용자 그룹 목록), history(사용한 명령어 목록), last_R,(접속한 계정) lastlog(접근했던 파일들), passwd(사용자 계정 정보), shadow(사용자 비밀번호 정보), w(사용자 ip 정보)
file fls_r_m, mactime_b
network arp, lsof(폴더와 관련된 파일 및 프로세스 목록), netstat_an
osinfo date, df_k, hostname, ifconfig_a, localtime, timezone, uname_a
process crontab, ipcs_u, lsmod, ps_eaf, pstree_a, sad
weblong access.long(웹 로그 목록)

이 파일들에서 다양한 정보를 알아낼 수 있는데, 내가 대충 분석해본 결과는 많지는 않지만 바로 아래에 있다.

accounts\shadow에서 수상한 사용자 admin01, dev, ahnlab을 확인 할 수 있다. 

osinfo\uname_a 에서는 OS가 ubuntuLinux ubuntu 2.6.32-38-generic-pae임을 알 수 있다.

osinfo\ifconfig_a에서 웹서버의 ip가 192.168.184.162임을 알 수 있다.

 

 

 

이제 본격적으로 먼저 log 파일을 확인해보자. accounts\history는 사용자가 각 폴더에서 사용했던 명령어들의 목록을 기록해 둔 파일이다.

accounts\history 의 내용

열어보니 겁도없이 chmod 명령어를 이용해 /var/www/upload/editor/image 파일에게 777 권한을 줬던 기록을 볼 수 있다. chmod는 리눅스에서 권한을 변경하기 위해서 사용하는 명령어이고, 777은 유저, 그룹, 기타 사용자 모두에게 읽기, 쓰기, 실행의 모든 권한을 준다는 의미이다. ~/editor/image 파일을 건드린 것이 수상하므로 이 파일의 기록에 대해서 조사해가도록 하자! 

 

 

process\ps_eaf 파일을 봐보자. 짧은 글 들 중에서 /var/www/upload/editor/image/reverse.php에 대한 내용만 톡 튀어나와있어서 찾기 쉬웠다. php 명령어를 통해 reverse.php 파일을 본 것을 알 수 있었다.

이 파일을 통해서 /var/www/upload/editor/image/reverse.php의 PID가 5245임을 알 수 있게 되었다. (혹시나 해서 하는 말이지만 앞쪽에 적혀있는 5245는 PID이고, 뒤쪽의 5244는 PPID이다.)

 

이제 로그 파일에 가서 /var/www/upload/editor/image/reverse.php와 관련된 수상한 로그가 없는지 확인해보자. 열심히 Ctrl+f 를 두들겨서 /upload/editor/image를 검색하다보면 cmd.php라고 되어 있는 것을 찾을 수 있다. cmd를 건드리다니! 3개의 인코딩 된 문자열들을 찾을 수 있다. 

 

※인코딩 알고리즘 : 바이너리 데이터를 텍스트 데이터(=아스키코드)로 변환하는 방법

※Base64 인코딩 : { 알파벳대소문자, +,/ } 로 이루어진 기호 64개로 변환하는 방식

 

'cmd.php?cmd=~ '의 뒤는 우리가 알아볼 수 있는 내용이 아니기 때문에, 디코드 해주는 사이트에 들어가서 열심히 복붙해보자. 

https://base64.guru/converter/decode

 

Base64 Decode | Base64 Converter | Base64

The “Base64 Decode Online” is a free decoder for decoding online Base64 to text or binary. In other words, it is a tool that converts Base64 to original data. This online decoder is as smart as it is simple. Its superpower is the ability to automatical

base64.guru

1. bHMgLWFsICAvdmFyL3d3dy91cGxvYWQvZWRpdG9yL2ltYWdlLw

               -> ls -al  /var/www/upload/editor/image/

2. dGFyIC1jdmYgL3Zhci93d3cvdXBsb2FkL2VkaXRvci9pbWFnZS8xMzMwNjY0ODM4IC92YXIvd3d3Lw

               ->tar -cvf /var/www/upload/editor/image/1330664838 /var/www/

3. cGhwIC1mIC92YXIvd3d3L3VwbG9hZC9lZGl0b3IvaW1hZ2UvcmV2ZXJzZS5waHA

               ->php -f /var/www/upload/editor/image/reverse.php

 

이러한 결과가 나올 것이다. 

1번은 ~/editor/image/의 목록을 보여달라는 명령어, 2번은 ~/editor/image 디렉토리의 1330664838 파일을 /var/www/에 압축을 해체하라는 명령어이다.

그리고 마지막 대망의 3번에서 php명령어를 실행시키는 것을 볼 수 있다. 아까 처음에 accesslog 파일은 웹 로그 목록이 적혀져 있다고 했는데, 이 목록에 시간값도 같이 저장이 되어있을 것이다. 때문에 accesslog 파일로 돌아가서 시간을 확인해보면!!!

 

시간을 확인 할 수 있다. 예이~~~

 

 

 

정답은 2012-08-25_17:26:40

 

 

 

 

 

참고자료: https://whitesnake1004.tistory.com/570

 

Disk - 이벤트 예약 웹사이트를 운영하고… #A,B,C

일단 문제 파일을 열어보면 아래와 같이 여러 폴더를 확인 할 수 있다. 각각 폴더에 들어있는 파일을 봐보겠습니다. accounts : group(사용자 그룹 목록), history(사용자가 사용한 명령어 목록), last_R, l

whitesnake1004.tistory.com

 

반응형

댓글