Cha4SEr Security Study

[CTF-D_Disk] 이벤트 예약 웹사이트를 운영하고..#A,B,C 본문

Forensic/CTF-D_Disk

[CTF-D_Disk] 이벤트 예약 웹사이트를 운영하고..#A,B,C

Cha4SEr 2020. 6. 1. 18:27

문제 링크 : http://ctf-d.com/challenges

 

[DigitalForensic] with CTF

 

ctf-d.com

 

시나리오 :

이벤트예약 웹사이트를 운영하고 있는 "깜짝이야"사의 관리자 앞으로 한통의 협박 메일이 도착했다. 당장 10억을 입금하지 않으면, 확보한 자사의 웹페이지 소스코드를 모두 공개할 것이며, 추가적인 위협을 가하겠다는 내용이다. 관리자는 포렌식 전문가인 당신에게 침해사고 분석을 의뢰하였다. 침해된 시스템에 남겨진 흔적과 각종 로그 파일을 분석하여 다음 사항을 밝혀내시오.

 

문제 :

#A : 공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은?
      Key format: (yyyy-MM-dd_hh:mm:ss)

 

#B : 리버스쉘(Reverse Shell)을 동작시키는 프로세스 ID(PID)는? (10진수)

      KEY Format : 1234

 

#C : 리버스쉘(Reverse Shell)에 대한 공격자 주소(IP)는?

      KEY Format : 123.456.789.123

 

 

사용 툴 : Sublime Text3

============================================================================

 

 

#A : 공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은?

      Key format: (yyyy-MM-dd_hh:mm:ss)

 

 

문제 파일을 보면 각 폴더마다 저장된 로그들을 볼 수 있습니다.

[그림 1] 실습 문제 파일

 

accounts 폴더에는 사용자 그룹과 사용자가 입력한 명령어를 기록한 파일 등 사용자 계정과 관련된 파일들이 있습니다.

[그림 2] accounts

 

다른 폴더와 파일들은 일단 놔두고, 사용자의 행위를 알기 쉽게 볼 수 있는 history 파일부터 봅시다. 

 

[그림 3] history 파일

history 파일은 사용자가 터미널 창에서 입력한 기록을 저장하고 있습니다.

 

위쪽에는 네트워크 관련된 모듈과 mysql 등을 설치했다는 것을 볼 수 있고, 중요하게 봐야될 것은 아래쪽에 있는 것 같습니다.

각 명령어가 어떤 의미를 가지고 있는지 살펴보겠습니다.

 

cp –r /home/dev/htdocs/* /var/www

: /home/dev/htdocs존재하는 모든 파일과 폴더를 /var/www 복사한다.

 

mysql -u root -p < /home/dev/sqldump.sql

: root 권한으로 /home/dev 에 존재하는 sqldump.sql 파일을 db 삽입한다.

 

chmod 777 /var/www/upload/editor/image

: /var/www/upload/editor/image 파일의 권한을 777로 변경한다.

 777은 모든 계정이 해당 파일을 읽기,쓰기,실행 모두 사용 가능하다는 뜻입니다.

 

adduser ahnlab

: ahnlab 이라는 이름의 유저를 추가한다.

 

adduser ahnlab sudo

: ahnlab 이라는 이름의 유저에게 sudo 권한을 준다.

 

위 명령어 중에서 가장 의심스러운 명령어는 chomod 777~ 으로 보입니다.

그리고  /var/www/upload/editor/image 파일이 뭔가 중요한 파일일 것으로 예상할 수 있습니다.

 

 

 

중요 명령어와 파일을 찾았으면 이제 프로세스 폴더를 봅시다. 프로세스 폴더에서는 사용자 계정에 따른 프로세스의 정보를 담고 있는 파일이 있습니다.

 

[그림 4] process 폴더

 

이 폴더에서 먼저 볼 파일은 ps_eaf 파일입니다. 이 파일은 모든 계정에서의 모든 프로세스에 대한 정보를 가지고 있습니다.

 

[그림 5] ps_eaf

[그림 5]에서 보시는 것 처럼 유저 ID와 실행되는 PID와 파일 이름 등을 알 수 있습니다. 

 

위에 history 파일에서 얻은 정보인 /var/www/upload/editor/ 폴더와 관련된 프로세스가 있는지 찾아봅시다.

[그림 6] 의심 프로세스 찾기

/var/www/upload까지만 검색해봤는데 관련된 프로세스가 5244, 5245 두개가 나왔습니다. 

5244는 쉘 명령어 옵션을 주는 것으로 보이고, 실제 php 명령을 실행하는 프로세스는 밑에 5245 프로세스인 것으로 판단됩니다.

 

 

이제 의심 프로세스를 찾았으니 어떤 네트워크 흐름을 가지는지 파악해 봅시다. 

 

[그림 7] network 폴더

 

 

이제 볼 폴더는 network 이고, 여기서 봐야할 파일은 lsof 입니다. lsof 파일은 시스템에서 열려있는 파일 목록과 사용중인 프로세스와 디바이스 정보등 자세한 정보를 알 수 있습니다.

 

[그림 8] lsof 파일

 

 

파일 구성은 사용한 명령어와 PID, USER 등 프로세스에 대한 정보를 얻을 수 있습니다. 여기에 PID 항목이 있으니 위에서 찾은 5245를 검색하여 찾아봅시다.

 

[그림 9] 의심 프로세스 행위 찾기

5245와 관련된 흔적들이 나오고, php 명령을 통해 앞서 찾은 웹쉘로 파악되는 reverse.php 파일을 실행하는 것으로 추측할 수 있습니다. 공격자 IP와 관련된 내용이 있는지 더 내려서 찾아보겠습니다.

 

[그림 10] 공격자 IP

밑으로 계속 내리다 보니 TCP 연결과 관련된 흔적을 찾을 수 있었습니다. 목적지가 144.206.162.21 이니 이 IP가 공격자의 IP일 것으로 생각해볼 수 있습니다.

 

 

이제 공격자 IP를 찾았으니 해당 접속이 언제 일어났는지 찾아봅시다. 이를 위해 weblog 폴더에 access.log 파일을 봅시다.

 

[그림 11] access.log 파일

위 사진처럼 서버가 처리하는 모든 웹상의 요청에 대한 기록이 남겨져 있습니다. 내용이 상당히 많으니 의심파일이 있는 /upload/editor/image 로 필터링을 걸어보겠습니다.

 

필터링을 걸어 찾던 중 Base64로 인코딩 된 정보가 있는 3가지 기록을 찾았습니다.

 

어떤 명령어가 있는지 Base64 디코딩을 해보겠습니당

 

bHMgLWFsICAvdmFyL3d3dy91cGxvYWQvZWRpdG9yL2ltYWdlLw

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

 

dGFyIC1jdmYgL3Zhci93d3cvdXBsb2FkL2VkaXRvci9pbWFnZS8xMzMwNjY0ODM4IC92YXIvd3d3Lw

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

 

cGhwIC1mIC92YXIvd3d3L3VwbG9hZC9lZGl0b3IvaW1hZ2UvcmV2ZXJzZS5waHA

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

 

 

위 명령어 중에서 reverse.php 파일을 실행시키는 명령어는 가장 아래에 있는 php -f 명령인 것을 알 수 있습니다.

이 명령어를 실행시킨 시간은 25/Aug/2012:17:26:40 (2012-08-25_17:26:40) 입니다.

 

 

=======================================================================

 

 

#A : 공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은?
      Key format: (yyyy-MM-dd_hh:mm:ss)

 

=> 2012-08-25_17:26:40

 

#B : 리버스쉘(Reverse Shell)을 동작시키는 프로세스 ID(PID)는? (10진수)

      KEY Format : 1234

 

=> 5245

 

#C : 리버스쉘(Reverse Shell)에 대한 공격자 주소(IP)는?

      KEY Format : 123.456.789.123

 

=> 144.206.162.21

Comments