일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 달고나bof
- 8086CPU레지스터
- 소프트맥스함수
- C알고리즘
- 항등함수
- C언어알고리즘
- BOJ
- 버퍼오버플로우
- 밑바닥부터시작하는딥러닝
- FTZlevel10
- c언어
- 머신러닝
- 보안
- C언어 알고리즘
- BOF
- 파이썬신경망
- 파이썬
- 백준알고리즘
- 딥러닝파이썬
- 백준
- 인공지능
- 신경망파이썬
- 딥러닝
- 신경망구현
- 활성화함수파이썬
- 신경망 학습
- 스트림암호
- 신경망
- 정보보안
- 알고리즘
- Today
- Total
목록<Project>/<Anti Memory Forensic>_2020 (21)
HeeJ's
Rekall에서의 dlllist 플러그인은 Volatility보다 훨씬 많은 dll 목록이 있었다. 그 중 ntdll.dll를 Volatility과 동일한 방법으로 _LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks 값과 InMemoryOrderLinks 값을 우회해보고 Rekall에서 dlllist 영역 은닉을 시도해보았다. _LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks 값과 InMemoryOrderLinks 값을 변조해주었다 Volatility와 같은 방법으로 진행해주었지만, Rekall에서는 은닉되지 않았다. ldrmodules에서도 은닉된 흔적을 찾을 수 없었다. Rekall에서 dlllist의 은닉 흔적을 발견할 수 없다.
[18] dlllist 우회하기(2)(DLL/THREAD) :: Anti Memory Forensics/Volatility 이어서 ldrmodules 앞서 dlllist가 은닉되는 것을 확인해주었지만, dlllist가 은닉되었다고 DLL이 전부 은닉된 것은 아니다. ldrmodules라는 플러그인으로 확인해주면 dlllist에서 숨겨진 영역을 확인할 수 있다. 따라서 InInitializationORderModuleList영역도 우회를 진행해주어야 한다. 이 주소(0x174E67F0)에는 InInitializationOrderModuleList의 Flink값인 0x00372F60은 다음 dll인 wow64.dll을 가리킨다. 이 값을 _PEB_LDR_DATA의 InInitializationOrderMod..
[17] dlllist 우회하기(1)(DLL/THREAD) :: Anti Memory Forensics/Volatility 이어서 2. DLL 하나씩 은닉하기 LDR_DATA_TABLE_ENTRY 구조체의 InLoadOrderLinks, InMemoryOrderLinks 값 변조 은닉해볼 필드: C:\Windows\System32\ntdll.dll inLoadOrderLinks와 InMemoryOrderLinks의 Flink값은 IMGSF50Start_x86.exe의 LDR_DATA_TABLE_ENTRY를 가리킨다. IMGSF50Start_x86.exe의 세 필드가 가리키는 Flink값을 wow64.dll을 가리키도록 한다. MalwareProcess의 물리주소(0x1DABB600)에서 0x338만큼 이..
(1) DLL 전체 은닉하기 EPROCESS의 PEB_LDR_DATA구조체 주소 변조 MalwareProcess의 dlllist를 확인해주었다. DLL 전체 은닉을 진행하기 위해 MalwareProcess의 EPROCESS를 확인해주었다. EPROCESS에서 PEB구조체는 0x388만큼 떨어져있는 것을 확인할 수 있다. PEB값을 hex로 확인해보았다. HxD로 MalwareProcess의 EPROCESS로 이동해준 후, PEB를 따라가기 위해 0x388만큼 이동해주었다. 앞의 PEB hex값과 일치하는 것을 확인할 수 있다. (0x7efdf000) 이 PEB의 가상주소값을 물리주소로 바꿔주었다.(0x11cc000) PEB의 Ldr포인터를 따라가보았다. LDR: PEB_LDR_DATA 구조체의 시작을 가..
Volatility에서의 hivescan 플러그인과 hivelist 플러그인을 Rekall에서는 hives로 확인할 수 있다. 앞 글([15] hivelist 우회하기(REGISTRY) :: Anti Memory Forensics/Volatility)에서 \Windows\System32\Config\DEFAULT를 은닉해주었으므로, Rekall을 이용해서 똑같은 필드를 은닉해볼것이다. 물리주소는 앞 글을 참고해서 사용해 줄 것이다.(Rekall에서는 가상주소만 나와있음) task를 이용해 SOFTWARE의 CMHIVE의 HiveList값을 찾아주었다. HiveList의 Flink값도 찾아주었다. Volatility에서 확인해주었던 Flink값과 동일한 것을 확인할 수 있다. C:\Windows\Syste..
hivelist도 pooltag를 변조하여 은닉 가능하지만, rekall에서는 그 방법이 통하지 않기 때문에 linked list를 따라가 변조하는 방법으로 은닉하려 한다. 두 번째 영역인 \SystemRoot\System32\Config\DEFAULT를 은닉하기 위해 첫 번째 영역인 \SystemRoot\System\Config\SOFTWARE의 Flink 값을 DEFAULT의 Flink값으로 변조해주려고 한다. hivelist의 구조체인 CMHIVE로 이동해주었고, 여기서 HiveList값을 이용해 Flink를 찾아줄 것이다. HiveList의 Flink값을 hex로 변환해주었다. 그리고 ...\SOFTWARE의 물리주소(15284010)으로 HxD를 따라 이동해주었다. CMHIVE 구조체의 시그니처..
Rekall의 netscan 플러그인은 Volatility와 같았다. 그래서 Volatility와 똑같이 진행해주었다. TCP_LISTENER의 시그니처인 TcpL을 변조해주었다. 그리고 다시 netscan을 확인해주면 System이 사라진 것을 확인할 수 있었다. NETWORK영역의 netscan 플러그인은 Volatility와 Rekall이 동일한 방법으로 은닉된다는 것을 알 수 있다. [출처] 수고가 많으십니다 PM님 ^^7 https://blog.naver.com/i1004yu/222053521821
MalwareProcess의 PID가 2752인 것을 이용해(Volatility strings 참고) memdump 명령어를 이용해 덤프를 떠주었다. 덤프 파일을 strings 명령어를 이용해 txt파일로 변환해주었다. 이 때, Rekall 창에서 실행하는 것이 아닌 새 터미널 창을 열어주어 실행시켜야 한다. 이 .txt 파일에서 MalwareProcess라는 단어를 검색해보았는데 나오지 않았다. 또한, Volatility와 전혀 다른 메모리 덤프 파일이 생성되었다. 그래서 그냥 윗부분 언저리에서 확인할 수 있는 문자열인 Wow64ApcRoutine을 찾아가서 우회를 시도하려고 한다. HxD로 이 문자열을 따라가 값을 전부 00으로 변조해주었다. 그리고 MalwareProcess를 다시 덤프 떠준 후, ..