참교육
메모리에 존재하는 python 코드 복구 본문
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 |