Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

참교육

메모리에 존재하는 python 코드 복구 본문

포렌식

메모리에 존재하는 python 코드 복구

순수어린이 2017. 7. 4. 12:49


CTF 문제 풀다가 배운 기술이다. 파이썬 코드 실행 후 삭제하였을 때 부분적으로 함수, 클래스 복구가 가능하다


참고 사이트는 여기

위 포스팅에서 복구 환경은 위와 같은 코드, 즉 함수가 존재하며 파이썬 코드가 실행중일 경우, 하지만 파일이 없을 때 사용 가능.


1. 기본 설치

apt-get update && apt-get install gdb 

우선 update를 하고 gdb를 설치한다.


2. 모듈 설치

pip install pyrasite 

pip install uncompyle6

실행에 필요한 pyrasite, uncomplye6을 설치한다.


3.  PID 확인


 ps -ef

현재 실행중인  python의 PID를 검색한다.




4. pyrasite-shell 실행

 pyrasite-shell <PID>

위 명령을 실행하면 Python 실행창이 나온다.


5. 모듈 로드

import uncompyle6 

import sys

(존재 한다면, from <PACKAGE NAME> import <MODULE NAME>)

파이썬에 위 2개 모듈을 import 시켜준다.


6. 클래스, 함수 확인


globals() 

(혹은 dir(MODULE NMAE)으로 확인도 가능하다)

globals()를 이용해 함수명을 확인한다.




7. 함수 확인


 uncompyle6.main.uncompyle( 2.7, <FUNC NAME>.func_code, sys.stdout)

함수 이름으로 함수를 확인할 수 있다.


일일이 확인해야하고 복구해야 하지만 어느정도는 복구가 가능하다. 아직 모듈은 안해봤는데 비슷하게 검색하면 나올듯하다.

 CTF에서 사고대응으로 내기 딱 좋은 문제.


'포렌식' 카테고리의 다른 글

QEMU IMAGE FILE to VM FILE  (0) 2019.04.23
RAW IMAGE to VMDK  (0) 2019.04.05
Ubuntu DD 명령어 원격으로 전송하기  (0) 2017.08.09
레지스트리 수정을 이용한 논라적 쓰기 방지  (0) 2017.08.03
ELK  (0) 2017.06.08