nim-loader
nim을 배우는 여정에서 여러 리소스를 조합하여 일반적인 EDR/AV 회피 기법을 구현한 셸코드 로더를 만든, 매우 조잡하고 진행 중인 프로젝트입니다.
이것은 난장판이며 연구 목적으로만 사용하세요! 수정 없이 컴파일 및 실행이 될 것이라고 기대하지 마십시오.
지침
loader.nim의 바이트 배열을 자신의 x64 셸코드로 교체하세요.
- EXE를 컴파일하고 실행:
nim c -d:danger -d:strip --opt:size "loader.nim"
- 사용 중인 인젝션 폴더 메서드의 .nim 파일을 확인하여 인젝션 대상 프로세스를 조정하세요.
완료된 기능
- NTDLL에서 동적으로 해석된 직접 시스템 콜 (제작: @ShitSecure)
- AMSI 및 ETW 패치 (제작: @byt3bl33d3r)
- NTDLL 후킹 제거 (제작: @MrUn1k0d3r)
- CreateRemoteThread 인젝션 (제작: @byt3bl33d3r, @ShitSecure)
진행 중인 기능
- 프로세스 할로잉 기법 (제작: @snovvcrash)
- AES CTR 모드를 사용한 셸코드 암호화/복호화 (제작: @snovvcrash)
- 호환 가능한 모든 API 호출을 시스템 콜로 대체
- 템플릿 생성기 및 컴파일러 추가, 셸코드, 인젝션 메서드, 프로세스 경로 등에 대한 명령줄 인자 추가
난독화
- obfuscator-llvm 님 컴파일 지원을 위해 @LittleJoeTables의 denim 사용을 고려하세요!
참고 자료 및 영감
- OffensiveNim by Marcello Salvati (@byt3bl33d3r)
- NimlineWhispers2 by Alfie Champion (@ajpc500)
- SysWhispers3 by klezVirus (@KlezVirus)
- NimPackt-v1 by Cas van Cooten (@chvancooten)
- unhook_bof.c by Mr. Un1k0d3r (@MrUn1k0d3r)
- NimGetSyscallStub by S3cur3Th1sSh1t (@ShitSecure)
- NimHollow by snovvcrash (@snovvcrash)
예제