본문 바로가기

FORENSIC

Digital Forensic Low

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

 

 

폴더 파일 정보
accounts group 사용자 그룹 목록
history 사용한 명령어 목록
last_R 접속한 계정
lastlog 접근했던 파일들 (로그인 목록, IP 정보)
passwd 사용자 계정 정보
shadow 사용자 비밀번호 정보
w 현재 사용자 ip 정보
file fls_r_m  
mactime_b 유용하지 않은 정보가 많음
network arp mac 테이블 겹치는걸 확인해서 조작되었는지 스푸핑 여부 확인
lsof list open files.
폴더와 관련된 파일 및 프로세스 목록,
프로세스에 대한 네트워크 정보 확인,
열려있는 파일에 대한 프로세스 데이터 정보
netstat_an listen 상태로 서비스되고 있는 데몬, 포트번호 확인
osinfo date 날짜
df_k 디스크가 하나인지 확인
hostname 컴퓨터 이름
ifconfig_a 현재 컴퓨터 IP 주소
localtime 어셈블리어. 추후 프로그램 통해 따로 확인
timezone 시스템에 로컬 사이트 정보 확인
uname_a 버전 정보
process crontab 주기적으로 사용되는 스크립트 확인
ipcs_u 가상 메모리 사용,
세마포어(교착상태) 확인
lsmod 커널에 있는 모듈의 정보
ps_eaf 메모리에 적재된 동작하는 프로세스 확인,
모든 계정에서의 모든 프로세스에 대한 정보
pstree_a 실행되고 있는 프로세스의 부모자식 관계 확인
weblong access.log 웹 로그 목록

 

 

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

 

/accounts/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 파일이 뭔가 중요한 파일일 것으로 예상된다.

 

중요 명령어와 파일을 찾았으면 이제 프로세스 폴더를 보자.

process 폴더에서는 사용자 계정에 따른 프로세스의 정보를 담고 있는 파일이 있다.

 

/process/ps_eaf

이 파일은 모든 계정에서의 모든 프로세스에 대한 정보를 가지고 있다.

 

 

Ctrl + F로 history에서 찾은 파일을 검색하였을 때,

나온 프로세스는 PID가 5244 인 것과 5245 인 것 두 개이다.

5244는 쉘 명령어 옵션을 주고 실제 php 명령을 실행하는 프로세스는 아래의 5245인 것으로 보인다.

 

의심되는 프로세스를 찾았으니 어떤 네트워크 흐름을 갖는지 알아보자.

 

/network/lsof

이 파일에서 시스템에서 열려있는 파일 목록과 사용 중인 프로세스와 디바이스 정보 등을 알 수 있다.

 

 

5245를 검색해보니 php 명령을 통해 앞서 찾았던 웹쉘 reverse.php 파일을 실행하는 것으로 추측되는 파일을 실행하는 듯하다.

 

 

더 내리니 TCP 연결과 관련된 IP가 나오는데 이 144.206.162.21 이 바로 공격자 IP인 듯 싶다.

 

공격자 IP를 찾았으니 해당 접속이 언제 일어났는지 찾아보자.

 

/weblog/access.log

 

서버가 처리하는 모든 웹상의 요청에 대한 기록이 남겨져 있다.

내용이 많으니 의심파일이 있는 /upload/editor/image 로 필터링을 걸어보겠다.

나온 결과 중 Base64로 인코딩된 정보가 있는 기록 세 가지를 찾아냈다.

 

 

그런데 이것보다 그냥 cmd= 으로 cmd 명령어를 검색하는게 더 빠르지 않았나 싶다.

 

아래 사이트에서 cmd= 뒤에 오는 명령어를 Base64 디코딩을 해준다.

Base64 Decode and Encode - Online

 

Base64 Decode and Encode - Online

Decode from Base64 format or encode into it with various advanced options. Our site has an easy to use online tool to convert your data.

www.base64decode.org

 

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 +9000.

즉, 2012-08-25_17:26:40 이다.

 

A. 공격자가 웹페이지 소스코드를 유출한 시간(UTC+09:00)은? (yyyy-MM-dd_hh:mm:ss)
2012-08-25_17:26:40

 

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

 

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

 

답: md5("2012-08-25_17:26:40_5245_144.206.162.21")

 

 

'FORENSIC' 카테고리의 다른 글

keyboard warrior.pcap  (0) 2023.05.20
Shark's secret.pcapng  (0) 2023.05.20
who_is_it.pcap  (0) 2023.05.20
find_pw.pcapng  (0) 2023.05.20
[SWING] Forensic 01  (0) 2023.03.25