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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/talha-nazeef-ahmed/alpc-enumerator
ReconnaissanceVulnerability AnalysisReverse EngineeringInformation GatheringMalware AnalysisDigital ForensicsRed Teaming
GitHubtalha-nazeef-ahmed/alpc-enumerator

ALPC-Enumerator

PPL로 보호되는 프로세스를 포함하여 ALPC 포트를 열거하고 분류하는 Windows 사용자 영역 도구입니다.

저장소 보기
2428일 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
ALPC-Enumerator — PPL로 보호되는 프로세스를 포함하여 ALPC 포트를 열거하고 분류하는 Windows 사용자 영역 도구입니다. | Kitploit

PPL 인지 ALPC 포트 열거자

PPL(Protected Process Light) 프로세스가 소유한 포트를 포함하여 ALPC(Advanced Local Procedure Call) 포트를 열거하고 분류하는 Windows 유저랜드 도구로, 표준 핸들 복제가 실패하는 경우에도 동작합니다.

표준 열거 도구는 보호되거나 액세스가 거부된 포트를 완전히 건너뛰는 경우가 많아 사각지대를 만듭니다. 이 도구는 ALPC 포트 객체 유형 인덱스를 동적으로 확인하고 표준 복제 요청을 거부하는 포트를 정확하게 분류하기 위해 NtQueryInformationProcess로 폴백(fallback)합니다.

실제 사용 사례

이 도구는 두 가지 주요 사용자를 위해 표준 Windows IPC 열거의 사각지대를 제거합니다:

  • 위협 헌팅 및 DFIR: ALPC를 통해 통신하는 악성코드는 PROCESS_DUP_HANDLE 액세스를 후킹하거나 거부하여 활동을 숨길 수 있습니다. 표준 도구는 이러한 포트를 조용히 누락합니다. 이 도구는 실패를 포착하고 대신 PS_PROTECTION 구조를 조회합니다. 프로세스가 액세스를 거부하면서 Type과 Signer가 0(None)을 반환한다면 이는 합법적인 Windows PPL 프로세스가 아니며, 매우 이례적인 상황이므로 즉시 조사 대상으로 플래그를 지정해야 합니다.
  • 취약점 연구: 문서화되지 않은 RPC/ALPC 공격 표면을 정확하게 매핑하려면 절대적인 정밀도가 필요합니다. 핸들 복제에만 의존하면 시스템에서 가장 높은 권한을 가진(그리고 가장 가치 있는) 대상을 반드시 놓치게 됩니다.

실행 요약 및 원시 데이터

라이브 Windows 시스템에서 테스트하는 동안 이 도구는 58,916개의 열린 핸들을 순회하여 2,618개의 ALPC 포트를 분리했습니다:

  • 보호된 포트 52개
  • 이름 있는 포트 260개
  • 경로 이름 포트 346개
  • 익명 포트 1,960개

원시 출력: 이 실행의 전체 필터링되지 않은 출력은 alpc_enumerator_output.txt에서 확인할 수 있습니다.

익명 포트 참고 사항: 익명 포트의 콘솔 출력은 터미널 출력이 수천 개의 항목으로 비대해지는 것을 방지하기 위해 main.cpp에서 기본적으로 비활성화되어 있습니다. 익명 포트에 대한 실시간 출력이 필요하면 컴파일 전에 ~451번째 줄의 checkEntriesVectorForPrint(anonEntries, "Anonymous"); 주석을 해제하십시오.

커널 검증

유저랜드 열거가 정확함을 입증하기 위해 이 도구의 출력은 Windows 커널 디버거(WinDbg)로 수동 검증되었습니다. 객체 주소와 PPL 서명자 수준은 커널의 실제 값과 정확히 일치합니다.

  • 병렬 증거는 VERIFICATION.md를 참조하십시오.
  • 원시 WinDbg 세션 로그는 alpc_verification_log.txt를 참조하십시오.

빌드 및 실행

  1. Visual Studio에서 main.cpp를 열거나 MSVC로 컴파일합니다.
  2. Release 모드(x64)로 빌드합니다.
  3. 관리자 권한으로 실행합니다(SeDebugPrivilege 필요).

기술적 접근 방식

ALPC 객체 유형 인덱스를 하드코딩하는 대신(Windows 빌드에 따라 깨질 수 있음), 이 도구는 임시 ALPC 포트를 생성하고 해당 유형을 동적으로 조회하여 호스트 시스템에 맞는 정확한 인덱스(예: 인덱스 46)를 분리합니다. 표준 핸들 복제가 실패하면 PS_PROTECTION을 디코딩하여 액세스 권한에 의존하지 않고 포트를 분류하는 데 필요한 정확한 Type과 Signer를 추출합니다.

전체 기술 분석은 미디엄 글에서 확인할 수 있습니다: https://medium.com/@sphinx_321/userland-alpc-enumeration-dynamic-ppl-aware-approach-283541194102

최신 소식 받아보기

이 도구는 ALPC/RPC 및 Windows 내부 구조에 대한 진행 중인 연구의 일부입니다. 가까운 시일 내에 추가 발견 사항을 게시하고 동반 도구를 출시할 예정입니다. 유용하게 사용하셨다면 GitHub에서 팔로우하거나 아래 소셜 미디어를 통해 향후 출시 알림을 받아보시기 바랍니다.

Twitter LinkedIn

라이선스

MIT

도구 다운로드