이것은 쉘 코드 주입이 AV 및 EDR을 피하기위한 새로운 기술입니다. 이 기술은 모듈 스토핑에서 영감을 얻었으며 몇 가지 유사점이 있습니다. 이 날짜 (23-01-2022)와 관련하여 Hollows-Hunter도 찾지 못합니다.
이 기술의 가장 큰 장점은 전체 모듈 또는 PE를 덮어 쓰지 않고 하나의 기능만이 대상 모듈의 다른 기능을 사용할 수 있다는 것입니다.
단점은 야생의 모든 기능에 대해 작동하지 않는다는 것입니다 (그러나 대부분의 경우에는 효과가있을 것입니다). 정확한 설명은 내 블로그에 있습니다 : 선, 나쁜 및 탁월한 기능.
참고 : AV가 이것을 표시 할 수 있습니다. 서명이 MSFvenom/metasploit의 서명이라면 괜찮습니다! 쉘 코드를 변경하거나 암호화하면됩니다.
업데이트 : Apperally 이것은 최초의 POC가 불가능한 것이 아니며 Rastamouse는 C#의 비슷한 내용 인 블로그 게시물을 썼습니다.
다음과 같이 프로그램에 헤더를 포함시킵니다.
# include " functionstomping.hpp "
int main () {
// Just get the pid in any way and pass it to the function.
DWORD pid = 3110 ;
FunctionStomping (pid);
return 0 ;
}또는 Rust 프로그램 사용 :
cd functionstomping
cargo b
functionstomping.exe < pid >이 프로그램을 실행 한 후에는 원격 프로세스에서 기능을 호출 해야합니다 ! (기본 기능 CreateFile을 사용한 경우 원격 프로세스에서 호출해야합니다!).
현재 실행할 쉘 코드는 계산기를 팝하는 것이지만 서명되지 unsigned char shellcode[] 쉘 코드로 바꾸는 것만 큼됩니다. C ++ 17 및 VS2019를 사용하여 C ++ 헤더 및 Rust 버전 2021로 프로그램을 컴파일하여 Rust 프로그램을 컴파일했습니다 (Cargo.toml의 종속성을 볼 수 있음).

이 프로젝트의 원인으로 컴퓨터 / 프로그램에 수행되는 모든 종류의 손상에 대해서는 책임이 없습니다. 기부금을 기쁘게 받아들이고 풀 요청을 수행하면 검토하겠습니다!
변조
Cyberark의 악성 메모리 마스킹
Rastamouse의 버전