impacket

agnusdei·2025년 7월 9일

CTF

목록 보기
37/185

impacket

문제

impacket 윈도우 공격 모음

답변

1. 개념

Impacket은 네트워크 프로토콜을 처리하는 Python 라이브러리 모음으로, 주로 윈도우 환경의 네트워크 프로토콜을 대상으로 저수준(Low-level) 프로그래밍 액세스를 제공한다. SECUREAUTH에서 개발한 오픈소스 프로젝트로, 주로 보안 전문가, 침투 테스터(Penetration Tester)가 네트워크 프로토콜 조작과 윈도우 인프라 취약점 테스트에 활용한다.

2. 역할 & 목적

  • 네트워크 프로토콜 분석 및 조작
  • 윈도우 인프라 보안 취약점 테스트
  • 네트워크 인증 메커니즘 테스트
  • 원격 명령 실행 및 권한 상승 검증
  • 보안 감사 및 레드팀(Red Team) 활동 지원

3. 구조 및 구성요소

Impacket은 다음과 같은 주요 구성요소로 이루어져 있다:

  1. 프로토콜 구현 모듈

    • SMB(Server Message Block)
    • MSRPC(Microsoft Remote Procedure Call)
    • NTLM(NT LAN Manager)
    • Kerberos
    • LDAP(Lightweight Directory Access Protocol)
    • DCERPC(Distributed Computing Environment/Remote Procedure Call)
  2. 유틸리티 스크립트

    • 인증 관련 스크립트
    • 원격 실행 스크립트
    • 정보 수집 스크립트
    • 권한 상승 스크립트

4. 주요 공격 도구 및 기능

4.1 인증 관련 공격

  • secretsdump.py: SAM, NTDS.dit 파일에서 계정 해시 덤프
  • GetNPUsers.py: Kerberos AS-REP Roasting 공격 수행
  • GetUserSPNs.py: Kerberos 서비스 계정 티켓 요청(Kerberoasting)
  • lookupsid.py: SID 브루트포스를 통한 사용자 열거
  • ntlmrelayx.py: NTLM 릴레이 공격 수행

4.2 원격 실행 관련 공격

  • psexec.py: SMB를 통한 원격 명령 실행(윈도우 PsExec 유사 기능)
  • wmiexec.py: WMI(Windows Management Instrumentation)를 통한 원격 명령 실행
  • smbexec.py: SMB 및 서비스 제어를 통한 명령 실행
  • dcomexec.py: DCOM(Distributed COM)을 통한 원격 명령 실행
  • atexec.py: 작업 스케줄러(Task Scheduler)를 통한 원격 명령 실행

4.3 정보 수집 관련 기능

  • samrdump.py: 원격 시스템의 사용자 계정 정보 수집
  • rpcdump.py: RPC 엔드포인트 매핑 수집
  • netview.py: 네트워크 호스트 및 공유 정보 수집
  • reg.py: 원격 레지스트리 조작

4.4 특수 공격

  • goldenPac.py: MS14-068 취약점을 이용한 골든 티켓 공격
  • karmaSMB.py: 악성 SMB 서버를 통한 인증 정보 수집
  • ticketer.py: Kerberos 티켓 조작(Golden/Silver Ticket 생성)
  • mimikatz.py: mimikatz 기능 일부 구현

5. 공격 원리 및 특징

공격 유형대상 프로토콜/서비스공격 원리주요 도구
패스워드 추출SMB, LDAP, Kerberos자격 증명 파일 접근 및 해시 덤프secretsdump.py
계정 열거RPC, LDAPSID 브루트포스, RPC 호출lookupsid.py, samrdump.py
원격 코드 실행SMB, WMI, DCOM관리 인터페이스 활용, 서비스 생성psexec.py, wmiexec.py
인증 우회NTLM, Kerberos릴레이 공격, 티켓 위조ntlmrelayx.py, ticketer.py
권한 상승Kerberos취약점 활용, 티켓 조작goldenPac.py, GetUserSPNs.py

6. 장단점

장점

  • 다양한 윈도우 프로토콜에 대한 포괄적 지원
  • 파이썬 기반으로 확장성과 유연성이 높음
  • 상세한 프로토콜 조작이 가능
  • 완전한 오픈소스로 지속적 업데이트
  • 침투 테스트 도구와의 높은 호환성

단점

  • 오용 시 심각한 보안 위협 초래 가능
  • 복잡한 프로토콜 지식 필요
  • 일부 기능은 높은 권한 요구
  • 지속적인 윈도우 보안 업데이트로 기능 제한 가능성

7. 방어 대책

  • 최신 보안 패치 적용
  • SMB 서명 강제 활성화
  • NTLM 인증 제한 및 Kerberos 보안 강화
  • 네트워크 세그먼트화 및 접근 제어
  • EDR(Endpoint Detection and Response) 솔루션 활용
  • 강력한 계정 관리 정책 수립

상세 내용: Impacket 주요 공격 시나리오

Pass-the-Hash 공격

해시 값만으로 인증을 수행하여 평문 비밀번호 없이도 시스템에 접근

psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0 administrator@10.0.0.1

Kerberoasting 공격

서비스 계정의 SPN(Service Principal Name)을 이용하여 서비스 티켓을 요청한 후, 오프라인에서 크래킹

GetUserSPNs.py domain/user:password -dc-ip 10.0.0.1 -request

AS-REP Roasting 공격

Kerberos 사전 인증이 비활성화된 계정에 대해 암호화된 AS-REP를 요청하여 오프라인에서 크래킹

GetNPUsers.py domain/ -usersfile users.txt -dc-ip 10.0.0.1

NTLM 릴레이 공격

중간자 공격을 통해 인증 데이터를 가로채어 다른 서비스에 릴레이하는 공격

ntlmrelayx.py -t smb://10.0.0.1 -smb2support

어린이 버전 요약

Impacket은 컴퓨터 전문가들이 윈도우 컴퓨터의 보안을 검사하는 데 사용하는 도구 모음이에요. 이 도구는 컴퓨터들이 서로 대화하는 방식(네트워크 프로토콜)을 이해하고 테스트할 수 있게 해줘요. 마치 열쇠를 모으는 것처럼 컴퓨터 접근 권한을 확인하거나, 멀리 있는 컴퓨터에 명령을 내릴 수 있게 도와줘요. 하지만 이 도구는 오직 허락받은 컴퓨터에서만 테스트해야 해요. 그렇지 않으면 다른 사람의 컴퓨터를 몰래 들여다보는 것과 같기 때문이죠!

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글