일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 딥러닝파이썬
- 활성화함수파이썬
- C언어알고리즘
- 머신러닝
- 신경망구현
- 8086CPU레지스터
- 밑바닥부터시작하는딥러닝
- 딥러닝
- 버퍼오버플로우
- 항등함수
- BOF
- 신경망
- 백준
- 인공지능
- 파이썬
- 알고리즘
- 백준알고리즘
- C알고리즘
- 신경망 학습
- 정보보안
- FTZlevel10
- 스트림암호
- BOJ
- 소프트맥스함수
- 달고나bof
- 보안
- c언어
- C언어 알고리즘
- 신경망파이썬
- 파이썬신경망
- Today
- Total
목록<Project> (27)
HeeJ's
[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를 다시 덤프 떠준 후, ..
rekall을 설치하고, (rekall 설치 참고 사이트: https://cpuu.postype.com/post/763901) sample.vmem을 열어주었다. imageinfo를 확인해주었는데, volatility와 다른 정보가 나왔다. psxview 필드 또한 volatility와 달랐다. 즉, volatility에서 했던 psxview 필드 7가지 은닉에 대해서는 동일하게 수행하는 것이 불가능 할 것이다. 출처 발표까지 파이팅!! 우리 선배님 S2 https://blog.naver.com/i1004yu/222052409058
우선, strings를 우회하기 위해서 덤프를 떠야하기 때문에 string.exe가 필요해 따로 설치해주었다. docs.microsoft.com/ko-kr/sysinternals/downloads/strings Strings - Windows Sysinternals Search for ANSI and UNICODE strings in binary images. docs.microsoft.com string.exe는 여기서 다운받을 수 있다. 그리고, psxview를 우회한 상태라면 sample.vmem파일을 새로 다운받아서 진행해주어야 한다. 그 후 MalwareProcess의 PID(2752)를 이용해 메모리 덤프를 떠주었다. 덤프 파일을 확인해준 후, 이 덤프 파일을 strings.exe라는 바이너리..