MemoryEvasion
레드팀을 위한 Cobalt Strike 메모리 은닉 로더로, x86/x64 스테이저/스테이저리스 페이로드와 프로파일을 지원합니다(Windows 7/10, Windows Server 2012에서 테스트됨).
은닉 원리
- 셸코드가 메모리에 로드되기 전에 Sleep, CreateProcessA, CreateHeap, GetProcessHeap 함수를 후킹합니다.
- beacon의 프로파일을 위한 새 힙을 생성합니다. beacon이 GetProcessHeap 또는 CreateHeap 함수를 호출하면 새 힙의 핸들을 반환합니다.
- beacon이 sleep 함수를 호출하면 beacon과 프로파일이 위치한 메모리를 암호화하고, sleep이 끝나면 이를 복호화합니다.
GetProcessHeap과 CreateHeap을 후킹하는 이유
- 64비트 beacon은 GetProcessHeap을 호출하여 beacon의 프로파일을 위한 메모리를 얻습니다.
- 32비트 beacon은 GetProcessHeap을 호출하여 beacon의 프로파일을 위한 메모리를 얻지 않습니다. 대신 CreateHeap을 사용하여 새 힙을 만들고 해당 힙에서 beacon의 프로파일을 저장할 메모리를 얻습니다.
데모

참고 자료
이 프로젝트는 다음 자료 없이는 불가능했을 것입니다: