-
[ctf-d] 이벤트 예약 웹사이트를 운영하고... #A2022/Write-Ups 2022. 5. 17. 23:25
4팀 김기연
공격자가 웹페이지 소스코드를 유출한 시간을 구하라고 한다.
압축을 풀면 위와 같은 폴더들을 확인할 수 있다.
웹페이지 소스코드를 유출한 시간을 구하라고 해서 weblog 폴더를 먼저 확인했다.
weblog\access.log 파일 하나가 있었는데, 플래그 형식이랑 맞는 것 같아서 플래그는 여기서 찾으면 될 것 같다고 생각했다!
리눅스 로그파일
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=joonee14&logNo=220349139519
1) utmp
: 현재 로그인한 사용자 상태 정보를 담고 있는 로그파일
명령어) w, who, finger
2) wtmp
: 성공한 로그인, 로그아웃 및 시스템의 boot, shutdown의 히스토리를 담고 있는 로그파일
명령어) last
3) btmp
: 실패한 로그인 정보를 담고 있는 로그파일
명령어) lastb
4) last log
: 마지막으로 성공한 로그인 정보를 담고 있는 로그파일
명령어) lastlog
admin01, dev, ahnlab 이 로그인했던 것으로 보인다.
chmod 777 ..? 읽기 쓰기 실행 위험하다고 생각
/var/www/upload/editor/image 가 유출된 파일인가..?
일단 아는 게 이거밖에 없으니 /var/www/upload/editor/image 중심으로 파보려고 한다 ㅎ . ㅎ
웹로그 파일에서 냅다 /var/www/upload/editor/image 검색하고 플래그 넣어봤지만, 당연하게도 실패 ^_______^
그리고 group, w, passwd, shadow 이런 파일들은 별로 필요가 없을 것 같다고 생각했다. 그냥 느킴임.
이게 뭔지 모르겠다...
process 폴더의 ps_eaf 파일이다. 마찬가지로 /var/www/upload/editor/image 검색해봤는데, reverse.php..??
차례대로 UID, PID, PPID, C, STIME, TTY, TIME, CMD
아 저 뒤쪽이 명령어인 것 같다.
php -f /var/www/upload/editor/image/reverse.php 명령어를 실행한 것으로 보인다.
마찬가지로 /var/www/upload/editor/image를 검색해보았다.
lsof
: list open files, 시스템에 있는 모든 열린 파일들에 대한 정보를 출력해주는 명령어
차례대로 COMMAND, PID, USER, FD, TYPE, DEVICE, SIZE/OFF, NODE NAME
COMMAND가 php인 라인을 기준으로 정리했다.
- COMMAND : 실행한 명령어 => php
- PID : 프로세스 ID => 5245
- USER : 명령어를 실행한 사용자 => www-data ??
- FD : File Descriptor, 파일의 종류 => cwd (current working directory)
- TYPE : 파일의 종류 => DIR 디렉토리
- DEVICE : 디바이스 번호 => 8,1 ???
- SIZE/OFF : 파일의 크기 혹은 현재 오프셋 => 73728 ???
- NODE : 노드 번호 => 653895
- NAME : 파일 이름 => /var/www/upload/editor/image
정리하면, /var/www/upload/editor/image 가 유출된 것 같고,
크기가 73728
디바이스 번호가
실행한 명령어 php
PID 5245
사용자 www-data
reverse.php 실행?
다시 보면, UID가 www-data, PID가 5245, PPID가 5244, STIME이 10:11, CMD가 php -f ~
딱히 뭐가 없어서 블로그 검색해봤는데, 이제 웹로그에서 확인만 하면 되는 거였다.
(참고 https://whitesnake1004.tistory.com/570)
weblog\access.log 에서 upload/editor/image를 검색해본 결과, 위의 결과들만 찾을 수 있었다.
그 중에서도 인코딩되어 있는 정보들이 눈에 띄었는데, 명령어 부분을 base64 디코딩해보았다.
http://www.hipenpal.com/tool/base64-encode-and-decode-in-korean.php
112.216.97.29 - - [25/Aug/2012:17:19:23 +0900] "GET /upload/editor/image/cmd.php?cmd=bHMgLWFsICAvdmFyL3d3dy91cGxvYWQvZWRpdG9yL2ltYWdlLw%20%20 HTTP/1.1" 200 13318 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
=> ls -al /var/www/upload/editor/image/
==> 자세히 출력
112.216.97.29 - - [25/Aug/2012:17:21:12 +0900] "GET /upload/editor/image/cmd.php?cmd=dGFyIC1jdmYgL3Zhci93d3cvdXBsb2FkL2VkaXRvci9pbWFnZS8xMzMwNjY0ODM4IC92YXIvd3d3Lw%20%20 HTTP/1.1" 200 14541 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
=> tar -cvf /var/www/upload/editor/image/1330664838 /var/www/
==> tar 명령어를 통해 압축
112.216.97.29 - - [25/Aug/2012:17:26:40 +0900] "GET /upload/editor/image/cmd.php?cmd=cGhwIC1mIC92YXIvd3d3L3VwbG9hZC9lZGl0b3IvaW1hZ2UvcmV2ZXJzZS5waHA%20 HTTP/1.1" 200 294 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0; SLCC2;
=> php -f /var/www/upload/editor/image/reverse.php
==> reverse.php를 통해 유출
따라서 마지막 php -f 명령을 통해 reverse.php를 실행시켜서 유출한 것으로 판단된다.
시각을 입력해주면
해결 -!
'2022 > Write-Ups' 카테고리의 다른 글
[ctf-d] 천 마디 말보다 사진 한 장... (0) 2022.05.17 [DigitalForensic_with CTF] 저는 이 파일이 내 친구와... (0) 2022.05.17 [suninatas] 21번 (0) 2022.05.17 [DigitalForensic_with CTF] 내 친구는 이것이 특별한... (0) 2022.05.17 [ctf-d] 이 파일에서 플래그를 찾아라! (0) 2022.05.17