Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DllNotificationInjection — 로컬 및 원격 프로세스에서 DLL 알림 콜백의 개념을 활용하는 새로운 'threadless' 프로세스 인젝션 기술의 POC입니다. | Kitploit
도구/GitHubGitHub/dec0ne/dllnotificationinjection
ExploitationShellcodeRed Teaming
GitHubdec0ne/dllnotificationinjection

DllNotificationInjection

로컬 및 원격 프로세스에서 DLL 알림 콜백의 개념을 활용하는 새로운 'threadless' 프로세스 인젝션 기술의 POC입니다.

저장소 보기
471833년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

DllNotificationInjection

image image

주요 기여자

Dec0ne

설명

DllNotificationInjection은 로컬 및 원격 프로세스에서 DLL 알림 콜백(DLL Notification Callbacks)의 개념을 활용하는 새로운 "스레드리스(threadless)" 프로세스 인젝션 기법의 PoC입니다.

더 자세한 내용을 담은 블로그 게시글은 여기에서 확인할 수 있습니다:

https://shorsec.io/blog/dll-notification-injection/

작동 방식

DllNotificationInjection은 원격 프로세스에 새로운 LDR_DLL_NOTIFICATION_ENTRY를 생성하여 작동합니다. 리스트 헤드의 List.Flink와 리스트의 첫 번째 항목(현재는 두 번째)의 List.Blink를 패치하여 수동으로 원격 LdrpDllNotificationList에 삽입합니다.

새로운 LDR_DLL_NOTIFICATION_ENTRY는 커스텀 트램펄린 셸코드( @C5pider의 ShellcodeTemplate 프로젝트로 제작)를 가리키며, 이 셸코드는 변경 사항을 복원하고 TpWorkCallback을 사용하여 새 스레드에서 악성 셸코드를 실행합니다.

원격 프로세스에 새 항목을 수동으로 등록한 후에는 원격 프로세스가 DLL을 로드하거나 언로드하여 DLL 알림 콜백을 트리거하기를 기다리면 됩니다. 이는 모든 프로세스에서 정기적으로 발생하는 것은 아니므로, 이 인젝션 기법에 적합한 후보를 미리 찾는 작업이 필요합니다. 제가 간단히 조사한 바에 따르면 RuntimeBroker.exe와 explorer.exe가 적합한 후보로 보이지만, 다른 프로세스도 직접 찾아보시길 권장합니다.

OPSEC 참고 사항

이는 PoC입니다. OPSEC에 안전하고 AV/EDR 제품을 우회하려면 몇 가지 수정이 필요합니다. 예를 들어, 셸코드용 메모리를 할당할 때 RWX를 사용했습니다. 게으르지 말고(저처럼) 이를 변경하세요. 또한 OpenProcess, ReadProcessMemory 및 WriteProcessMemory를 더 낮은 수준의 API로 대체하고 간접 시스템 콜(Indirect Syscalls) 또는 (뻔뻔한 플러그) HWSyscalls를 사용하는 것을 고려할 수 있습니다. 셸코드를 암호화하거나, 트램펄린 셸코드를 수정하여 필요에 맞게 조정하는 추가 작업을 수행하거나, 적어도 트램펄린 셸코드를 생성하는 데 사용된 @C5pider의 ShellcodeTemplate 프로젝트의 기본 해시 값을 변경하는 것이 좋습니다.

데모

https://github.com/ShorSec/DllNotificationInjection/assets/54464773/96a72dd9-80de-4cb8-ac4a-54dddfecf822

감사의 말

  • @C5pider - 트램펄린 셸코드를 만드는 데 사용된 ShellcodeTemplate 프로젝트와 PoC 데모 비디오에서 사용된 Havoc C2에 감사드립니다.
  • Yxel과 @Idov31 - Cronos에서 가져와 사용한 바이너리 패턴 매칭 코드에 감사드립니다.
  • @modexpblog - 이 PoC에서 사용된 DLL 알림 콜백 관련 다양한 구조체 정의에 감사드립니다.
  • @NinjaParanoid - 이 PoC에서 사용된 TpWorkCallbacks에 관한 블로그 게시글에 감사드립니다.
  • @onlymalware - UnregisterAllLdrRegisterDllNotification PoC는 영감을 주었고 LdrpDllNotificationList의 내부 작동 방식을 이해하는 데 도움을 주었습니다.
  • Sektor7 - 이 PoC에서 사용된 계산기 셸코드에 감사드립니다. 그들은 어쨌든 훌륭하며, 그들의 강좌를 강력히 추천합니다!
  • @x86matthew와 @Kharosx0 - GetNtdllBase() 함수에 관한 댓글, 댓글에 감사드립니다.
도구 다운로드