find key(elf)

0

디지털포렌식

목록 보기
25/115
post-custom-banner

이 문제 푸는데만 이틀 썼다.
미친 포렌식

  1. 일단 문제 받아서 해제하면 elf 파일임 (chall.raw)
    elf파일이 무냐 ? 리눅스의 실행파일이다 이거지

  2. 그래서 이런 elf파일은 보통 메모리 덤프 파일이고, objdump 혹은 volatility로 분석이 가능하다.
    volatility로 분석을 하기 위해서는 파일의 운영체제가 뭔지 알아야 하는데,
    volatility -f 파일명 imageinfo를 하면 찾아 낼 수 있음.
    그런데 안나온다.
    오ㅐ냐? windows가 아니면 이렇게 오래 걸림.

    그럼, strings chall.raw | egrep "^Linux.*[0-9]'
    하면 운영체제 확인이 가능함.

    와 근데, volatility가 다운 받아서 그런건지, root계정으로 해도 권한을 나한테 안줘서 chmod, 삭제, 이동 뭐 다 안됨.
    chmod 777 해도 읽기 전용 파일 시스템 이라면서 권한도 안바꿔주고.
    profile를 다운 받아서 volatility/plugins/overlays/해당운영체제
    에 집어 넣어야 얘가 인식을 해서 분석을 하는데 이거 때문에 막혀서 이틀이 날라감.

    결국 리눅스에서는 해답을 못 찾고 윈도우로 옮겼음

    standalone 말고 파이썬 연동으로 volatility를 설치해서, 나머지는 동일하게 파일을 옮겨서 작업 성공 할 수 있었음

  3. 아무튼 프로필을 다 까고
    volatility -f 파일명 --profile=운영체제 linux_pslist > 파일명.txt
    하면 pslist가 쫙 나오는데, 아까 폴더에서도 본 bpython이 있네

    그럼 또 분석해야지

  4. mkdir tmp && volatility -f chall.raw --profile=운영체제 linux_dump_map -p 2364 --dump-dir ./tmp 하면 파일이 쫙 생김.

    (2364는 pid)

  5. 그중에서 가장 용량 큰 텍스트 파일을 strings를 통해서 분석을 했는데 flag를 검색해 보니 뭐가 나오긴 나옴. 근데
    정작 중요한 플래그가 씹혀서 안나옴.
    strings의 에러인가 싶어서 다시 반복해서 했는데도 씹혀서 안나옴

    그래서 애초에 다시 volatility를 통해서 분석, 새로 분석된 파일을 strings를 다시 했더니 이번에는 나오네

    같은 작업인데도 에러가 생기는 경우가 있는걸 이번 경우로 알았음.
    아무튼 그렇게 해서 base64로 인코딩된걸로 추정된 문자열을 받아서, 해독을 해봤더니 또 이상한 문자열이 나옴

    그럼 이게 이제 답인지 or 인코딩 된건지 or 해싱 된건지 하난데

    sha256으로 해시 풀어보면 답.

    힘들었다.
    volatility 사용 설치 제대로 경험해 본 문제 였음

post-custom-banner

0개의 댓글