CTF-d / Disk / 이벤트 예약 웹사이트를 운영하고… #A#B#C
💡 문제
(A~C번 문제파일 : 2012_Secuwave F100.7z)
이벤트예약 웹사이트를 운영하고 있는 “깜짝이야”사의 관리자 앞으로 한통의 협박 메일이 도착했다. 당장 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
이번에 풀어볼 문제는 Disk 문제이다. 문제를 보면 #A, #B, #C로 나눠져 있지만 한번에 같이 풀어도 상관이 없기 때문에 한번에 풀어보도록 하려고 한다.
📌 문제 풀이
파일의 문제를 열어 보게 되면 다음과 같이 여러 폴더를 확인 할 수 있다.
각 폴더를 열어 무엇이 있는지 확인해 보겠습니다.
한눈에 볼 수 있도록 리눅스를 잠시 사용 했다. 파일 리스트를 보게되면
accounts : group, history, last_R, lastlog, 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, ps_eaf, pstree_a, sad
weblog : access.log
여기서 중요하게 봐야할 파일 들이 있다. 우선 accounts 폴더에 group(사용자 그룹 목록), history(사용자가 사용한 명령어 목록) network 폴더에 lsof(폴더와 관련된 파일및 프로세스 목록) weblog 폴더에 access.log(웹 로그 목록)를 확인해 봐야 한다.
우선 log를 확인해야 한다. 왜냐하면 위에 폴더는 메모리 덤프 파일 혹은 디스크 이미지가 아니기 떄문이다. 또한 유저의 행위를 쉽게 볼 수 있기 때문이다. 따라서 accounts\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은 처음의 7 - 소유자 권한 두번째의 7 - 그룹 사용자 권한 세번째의 7 - 기타 사용자 권한 으로 777은 모든 계정이 읽기, 쓰기, 실행 모든 것을 사용 가능 하다. - adduser ahnlab
- ahnlab 이름의 유저를 추가한다.
- adduser ahnlab sudo
- ahnlab 이름의 유저에게 sudo 권한을 준다.
중점적으로 봐야 할거 같은 명령어는 chmod 777 /var/www/upload/editor/image 이다.
777 권한을 부여한 경로를 확인해 보니 ps_eaf 프로세스가 검색 되었다.
php -f 명령어로 reverse.php 파일을 실행했습니다. pid는 5245이다.
다음은 network 디렉토리의 lsof 로그에서 pid인 5245로 검색해 봤다.
cmd.php 파일을 통하여 cmd 변수에 base64 방식으로 인코딩 된 문자열들이 들어가 있었다.
ls -al /var/www/upload/editor/image/
tar -cvf /var/www/upload/editor/image/1330664838 /var/www/
php -f /var/www/upload/editor/image/reverse.php
🗝️ Key
Flag-A : 2012-08-25_17:26:40
Flag-B : 5245
Flag-C : 144.206.162.21
😉 결론
🔍 Tools used
❌
🔗 출처
출처 : 디지털포렌식 with CTF
댓글남기기