이 문제는 3개로 분할되어 있기 때문에, 다 작성을 하겠습니다.
문제들을 먼저 보겠습니다.
#A : 공격자가 웹 페이지 소스코드를 유출한 시간 (UTC+09:00)은?
#B : 리버스 쉘(Reverse Shell)을 동작시키는 프로세스 ID(Process ID)는? (10진수)
#C : 리버스 쉘(Reverse Shell)에 대한 공격자 주소(IP)는?
문제 파일을 다운 받아서 FTK로 열어보니 다음과 같은 폴더들이 있었습니다.
해당 폴더에 들어있는 파일들을 간략하게 보겠습니다.
accounts :
group(사용자의 그룹목록)
history(사용자가 입력했었던 명령어)
lastlog(마지막 접근했던 사용자 정보)
last_R(로그인 상태)
passwd(리눅스 계정 정보를 담은 파일)
shadow(계정 패스워드가 암호화된 파일)
w(현재 사용자)
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
pstree_a(프로세스를 트리형태로 보여주는 파일)
ps_eaf(프로세스 정보 로그)
weblog
access.log (로그 기록)
이렇게 볼 수 있는데요, 일단은 리눅스 시스템이니까 공격자가 어떤 명령어를 실행했는지 보기 위해서 [accounts] -> [history]에 파일을 살펴보겠습니다.
살펴보면, 의심스러운 명령어를 볼 수 있는데, chmod 777이라는 명령어입니다.
리눅스에서 chmod 명령어는 권한을 준다는 명령어이며, 777은 모든계정에게 읽기, 쓰기, 실행권한을 준다는 말입니다.
리눅스 파일을 보면 -rwxrwxrwx가 있는데, r = 4, w = 2, x = 1로 777입니다.
해석을 하면 /var/www/upload/editor/image파일의 권한을 모든 계정에게 읽기, 쓰기, 실행 권한을 주겠다. 이말입니다.
그럼 권한을 줬다. 즉, 이 파일을 가지고 악용을 하겠다고 추측을 할 수 있으며, 이 명령어와 파일을 가지고 프로세스 분석을 해보겠습니다.
process폴더에서 모든 계정에서의 프로세스의 정보들을 로그로 보여주는 ps_eaf파일을 찾아가서 로그를 보면 많은 양의 로그들을 볼 수있는데, 아까 우리가 봤던 history에서 /var/www/upload/editor/image 명령어를 검색을 해봅시다.
history에서 봤던 명령어와 관련된 프로세스가 2개가 나왔습니다.
위의 5244프로세스는 쉘 명령어 옵션이고 5245프로세스 아이디는 php 명령어를 실행하는 명령어 프로세스임을 알 수 있습니다. 이제 네트워크 폴더에서 프로세스에 대한 네트워크 정보 추적을 해야 하니까 lsof 파일로 가서 프로세스 아이디를 검색해봅시다.
이렇게 제일 앞에 php를 보아 php 명령을 통해 reverse.php 파일을 수행하는 것으로 추측할 수 있었습니다.
그리고 TCP 192.168.184.162:52634 -> 144.206.162.21:ww (ESTABLISHED)를 보아 TCP연결을 통해서 144.206.162.21 IP로 목적지가 설정되어 있음을 알 수 있습니다.
이제 weblog폴더에서 access.log를 통해서 로그 기록을 보겠습니다. 저는 export해서 메모장으로 보겠습니다.
아까 찾았던 /upload/editor/image/를 검색하면 cmd= 라는 명령어를 통해 인코딩된 문자들을 3개 볼 수 있습니다.
대소문자와 숫자로 되어있는 것으로 보아 base64로 인코딩 되어 있을거 같아서 base64로 디코딩을 해보겠습니다.
1. ls -al /var/www/upload/editor/image/
2. tar -cvf /var/www/upload/editor/image/1330664838 /var/www/
3. php -f /var/www/upload/editor/image/reverse.php
이것을 토대로 본다면 마지막에 인코딩된 cGhwlC1......HA가 php 명령어를 실행하는 명령어입니다.
그럼 이제 플래그 값을 구해보겠습니다.
#A : 공격자가 웹 페이지 소스코드를 유출한 시간 (UTC+09:00)은?
( 2012-08-25_17:26:40 )
#B : 리버스 쉘(Reverse Shell)을 동작시키는 프로세스 ID(Process ID)는? (10진수)
( 5245 )
#C : 리버스 쉘(Reverse Shell)에 대한 공격자 주소(IP)는?
( 144.206.162.21 )
'CTF-D > Disk' 카테고리의 다른 글
[Disk] 윈도우 작업 관리자에서 우클릭... (0) | 2022.03.16 |
---|---|
[Disk] A회사 보안팀은 내부직원 (0) | 2022.03.15 |
[Disk] 판교 테크노밸리 K기업에서 (2) | 2022.03.13 |
[Disk] X 회사의 재정 정보를 훔치기... (0) | 2022.02.08 |
[Disk] 파일에서 플래그를 찾아라 (0) | 2022.02.05 |