KoreanHackerTeam
Moderator
什么是Impacket
Impacket은 네트워크 프로토콜을 처리하는 데 사용되는 Python 클래스 모음입니다. Impacket은 패킷에 대한 간단한 프로그래밍 방식 액세스와 스스로를 구현하는 특정 프로토콜 (예 : SMB1-3 및 MSRPC)을 제공하는 데 중점을 둡니다. 패킷은 원시 데이터에서 처음부터 구축되거나 구문 분석 할 수있는 반면 객체 지향 API는 프로토콜의 깊은 구조를 간단하게 만듭니다. 이 라이브러리는이 라이브러리에서 수행 할 수있는 작업을 찾는 예로 도구 세트를 제공합니다.일부 도구에 대한 지침은 https://www.secureauth.com/labs/open-source-tools/impkacket을 방문하십시오
Impacket中包含以下协议
이더넷, Linux "Cooked"패킷 캡처IP, TCP, UDP, ICMP, IGMP, ARP
IPv4 및 IPv6을 지원합니다
NMB 및 SMB1, SMB2 및 SMB3 (고급 구현)
MSRPC 버전 5, 다양한 전송 프로토콜을 통한 TCP, SMB/TCP, SMB/NETBIOS 및 HTTP
비밀번호/해시/제목/키를 통한 간단한 NTLM 및 Kerberos 인증
EPM, DTYPES, LSAD, LSAT, NRPC, RRP, SAMR, SRVS, WKST, SCMR, BKRP, DHCPM, EVEN6, MGMT, SASEC, TSCH, DCOM, WMI
부분 TDS (MSSQL) 및 LDAP 프로토콜 구현.
获得Impacket
컴파일 된 현재 및 이전 버전오픈 소스 브랜치
程序安装
快速开始
최신 안정 버전을 받고 압축을 풀고 명령 PIP 설치를 실행하십시오. 그런 다음 디렉토리에서 실행하십시오.安装要求
Python 2.6/2.7 및 Python 3.6으로 알려진 Python 통역사는 이러한 예제를 실행하려면 실행할 수 있으며 Python2.7을 실행하려면 ArgParse 패키지를 설치하여 정상적으로 실행해야합니다.Kerberos 지원을 위해서는 PYASN1 패키지를 설치해야합니다.
암호화 작업의 경우 Pycryptodomex 패키지를 설치해야합니다.
몇 가지 예를 들어 Pyopenssl (rdp_check.py) 및 ldap3 (ntlmrelayx.py)를 설치해야합니다.
ntlmrelayx.py의 경우 ldapdomaindump, flask 및 ldap3를 설치해야합니다.
Windows 아래에있는 경우 Pyreadline을 설치해야합니다.
최근에 발표 된 Impacket
安装
소스를 설치하려면 IMPACKET 패키지가 변경된 디렉토리에서 다음 명령을 실행하십시오 : PIP 설치. 클래스를 기본 파이썬 모듈 경로에 설치합니다. 거기에 글을 쓰려면 특별한 권한이 필요할 수 있습니다. setup.py에서 사용할 수있는 명령 및 옵션에 대한 자세한 내용은 Python Setup.py-Help-Commands를 실행하십시오.测试
라이브러리 테스트 사례를 실행하려면 세 가지 주요 작업을 수행해야합니다.Windows 2012 R2 도메인 컨트롤러를 설치하고 구성하십시오.
원격 레지스트리 서비스가 활성화되어 실행 중인지 확인하십시오.
필요한 정보로 dcetest.cfg 파일을 구성하십시오
Tox 설치 (PIP 설치 독소)
완료되면 Tox를 실행하고 결과를 기다릴 수 있습니다. 모든 것이 잘 진행되면 모든 테스트 사례가 통과해야합니다. IMPACKET/TESTS/HTMLMCOV/Index.html에 대한 덮어 쓰기 HTML 보고서를 찾을 수도 있습니다.
IMPACKET中包含以下工具
远程执行
psexec.py: psexec-like 함수 예, remcomsvc (https://github.com/kavika13/remcom)smbexec.py : remcomsvc를 사용하여 psexec와 유사한 방법. 기술은 여기에 설명되어 있습니다. 우리의 구현은 로컬 Smbserver를 인스턴스화하여 명령의 출력을 수신함으로써 한 단계 더 나아갑니다. 대상 컴퓨터에 쓰기 가능한 공유가 없을 때 유용합니다.
ATEXEC.PY :이 예제는 작업 스케줄러 서비스를 통해 대상 컴퓨터에서 명령을 실행하고 실행 된 명령의 출력을 반환합니다.
WMIEXEC.PY : Windows Management Instrumentation을 통해 사용되는 반 인터랙티브 쉘. 대상 서버에 서비스/에이전트를 설치할 필요가 없으며 관리자로 실행되며 매우 숨겨져 있습니다.
dcomexec.py : wmiexec.py와 유사한 반 인터랙티브 쉘이지만 다른 dcom 엔드 포인트를 사용합니다. 현재 mmc20.application, shellwindows 및 shellbrowserwindow 객체를 지원합니다.
gettgt.py : 비밀번호, 해시 또는 aeskey를 지정하면이 스크립트는 TGT를 요청하고 CCACH로 저장합니다.
GetSt.py : CCACHE의 비밀번호, 해시, AESKEY 또는 TGT를 지정하면이 스크립트는 서비스 티켓을 요청하여 CCACHE로 저장합니다. 계정에 대표단 (프로토콜 변환 포함) 권한이 제한된 경우 -mimserate 매개 변수를 사용하여 다른 사용자를 대신하여 티켓을 요청할 수 있습니다.
getPac.py :이 스크립트는 지정된 대상 사용자의 PAC (허가 속성 인증서) 구조를 가져옵니다.이 스크립트는 일반 인증 된 사용자 자격 증명 만 있습니다. [MS-SFU]를 사용하여 S4Uself + 사용자 간 Kerberos 인증 조합을 혼합하여 달성됩니다.
getUserspns.py :이 예제는 일반 사용자 계정과 관련된 서비스 원명 이름을 찾아서 얻으려고합니다.
getnpusers.py :이 예제는 "Kerberos 사전 승인이 필요하지 않은"속성이있는 사용자에게 tgt (uf_dont_require_preauth)를 얻으려고합니다. 출력은 JTR과 호환됩니다
Ticketer.py :이 스크립트는 처음부터 금/실버 메모를 작성하거나 템플릿을 기반으로 (KDC의 법적 요청에 따라) Pac_logon_info 구조, 특히 그룹, 추가 인, 지속 시간 등에 설정된 일부 매개 변수를 사용자 정의 할 수 있습니다.
RAISECHILD.PY :이 스크립트는 (AB) 골든 티켓과 절제의 기초를 사용하여 하위 도메인-포지스트 권한 업그레이드를 달성합니다.
Windows Secrets
Secretsdump.py :프록시를 실행하지 않고 원격 기계에서 비밀을 덤프하기 위해 다양한 기술을 수행하십시오. SAM 및 LSA 비밀 (캐시 된 자격 증명 포함)의 경우 대상 시스템 (%SystemRoot%\ temp 디렉토리)에 두드러기를 저장하고 나머지 데이터를 읽으십시오. DIT 파일의 경우 DL_DRSGETNCCHANGES () 메소드를 사용하여 NTLM 해시 값, 일반 텍스트 자격 증명 (사용 가능한 경우) 및 Kerberos 키를 덤프합니다. 또한 smbexec/wmiexec 메소드를 사용하여 실행 된 vssadmin을 사용하여 ntds.dit을 덤프 할 수 있습니다. 스크립트를 사용할 수없는 경우 스크립트는 실행 해야하는 서비스를 시작합니다 (예 : 원격 레지스트리, 비활성화 된 경우에도 원격 레지스트리). 실행이 완료되면 원래 상태로 돌아갑니다.
Mimikatz.py : @gentilkiwi가 개발 한 원격 Mimikatz RPC 서버 제어를위한 미니 쉘
服务器工具/ MiTM攻击
NTLMRELAYX.PY :이 스크립트는 NTLM 릴레이 공격을 수행하고 SMB 및 HTTP 서버를 설정하고 다양한 프로토콜 (SMB, HTTP, MSSQL, LDAP, IMAP, POP3 등)에 자격 증명을 설정합니다. 스크립트는 연결을 전달할 때 트리거 될 때 (예 : LDAP를 통해 사용자 생성) 또는 양말 모드에서 실행될 때 트리거 될 수있는 사전 정의 된 공격과 함께 사용할 수 있습니다. 이 모드에서는 각 릴레이의 연결에 대해 양말 프록시를 통해 여러 번 사용할 수 있습니다.Karmasmb.py : 지정된 SMB 공유 및 PathName에 관계없이 특정 파일 내용에 응답하는 SMB 서버
smbserver.py:SMB 서버의 Python 구현을 통해 빠른 공유 및 사용자 계정을 설정할 수 있습니다.
WMI
wmiquery.py : WQL 쿼리를 발행하고 대상 시스템에서 WMI 객체에 대한 설명을 얻을 수 있습니다 (예 : Win32_Account에서 이름 선택).wmipersist.py :이 스크립트는 WMI 이벤트 소비자/필터를 생성/삭제하고 지정된 WQL 필터 또는 타이머를 기반으로 Visual Basic Basic을 실행하기 위해 둘 사이의 링크를 설정합니다.
已知的漏洞
GoldenPac.py : MS14-068을 활용하십시오. 골든 티켓을 저장하고 대상 위치에서 Psexec 세션을 시작하십시오.Sambapipe.py :이 스크립트는 CVE-2017-7494를 사용하여 -So 매개 변수를 통해 사용자가 지정한 공유 라이브러리를 업로드하고 실행합니다.
SMBRELAYX.PY : SMB 릴레이 공격 취약성 악용 CVE-2015-0005. 대상 시스템이 서명을 실행하고 컴퓨터 계정이 제공되면 모듈은 NetLogon을 통해 SMB 세션 키를 수집하려고 시도합니다. SMB 릴레이 공격 취약성 사용 CVE-2015-0005 사용
SMB / MSRPC
SMBCLIENT.PY : 공유 및 파일 이름을 나열하고 파일을 이름 바꾸고 업로드 및 다운로드하고 디렉토리를 사용자 이름과 비밀번호 또는 사용자 이름 및 해시 조합으로 만들고 삭제할 수있는 공통 SMB 클라이언트입니다. 이것은 실제로 Impacket.smb를 사용하는 방법의 좋은 예입니다.getarch.py :이 스크립트는 대상 (또는 대상 목록) 호스트에 연결하고 문서화 된 MSRPC 기능을 사용하여 (AB)가 설치 한 운영 체제 아키텍처 유형을 수집합니다.
rpcdump.py :이 스크립트는 대상에 등록 된 RPC 엔드 포인트 및 문자열 바인딩 목록을 덤프합니다. 또한 알려진 엔드 포인트 목록과 일치 시키려고합니다.
ifmap.py :이 스크립트는 대상의 관리 인터페이스에 바인딩하여 인터페이스 ID 목록을 얻습니다. 다른 인터페이스 UUID 목록 에서이 목록을 사용하여 각 인터페이스에 바인딩하고 인터페이스가 나열되어 있는지 또는 청취 중인지보고합니다.
opdump.py : 이것은 주어진 호스트name

Samrdump.py : MSRPC 제품군의 보안 계정 관리자의 원격 인터페이스와 통신하는 응용 프로그램에서. 시스템 사용자 계정, 사용 가능한 리소스 공유 및이 서비스를 통해 내보낸 기타 민감한 정보가 나와 있습니다.
Services.py :이 스크립트는 [MS-SCMR] MSRPC 인터페이스를 통해 Windows 서비스를 작동하는 데 사용될 수 있습니다. 시작, 중지, 삭제, 상태, 구성, 목록, 작성 및 변경을 지원합니다.
netview.py : 원격 호스트에서 열린 세션 목록을 얻고 찾은 호스트에서 해당 세션 루프를 추적하고 원격 서버에서 로그인/종료 된 사용자가 추적합니다.
Reg.py : [MS-RRP] MSRPC 인터페이스를 통한 원격 레지스트리 작동 도구. 아이디어는 Reg.exe Windows 유틸리티와 유사한 기능을 제공하는 것입니다.=
LookupSid.py : [MS-LSAT] MSRPC 인터페이스를 통한 Windows Sid Brute-Force 프로그램의 예는 원격 사용자 및 그룹을 찾도록 설계되었습니다.
MSSQL / TDS
MSSQLINSTANCE.PY : 대상 호스트에서 MSSQL 인스턴스 이름을 검색하십시오.mssqlclient.py : mssql 클라이언트, SQL 및 Windows 인증 (HASH)을 지원합니다. 또한 TLS도 지원합니다.
文件格式
esentutl.py : Extensibe 스토리지 엔진 형식 구현. ESE 데이터베이스의 덤핑 디렉토리, 페이지 및 테이블이 허용됩니다 (예 : NTDS.DIT).ntfs-read.py:ntfs 형식 구현. 이 스크립트는 숨겨진/잠긴 콘텐츠를 포함하여 NTFS 볼륨을 탐색하고 추출하기위한 작은 반동 쉘을 제공합니다.
Registry-Read.py : Windows Registry 파일 형식 구현. 오프라인 레지스트리 구성 Hive를 구문 분석 할 수 있습니다
其他
GetAdusers.py :이 스크립트는 도메인 사용자 및 해당 이메일 주소에 대한 데이터를 수집합니다. 또한 마지막 로그인 및 마지막 비밀번호 설정 속성에 대한 추가 정보도 포함됩니다.MQTT_CHECK.PY : 다른 로그인 옵션을 사용하도록 설계된 간단한 MQTT 예제. 계정/암호 Brute Force 도구로 쉽게 변환 할 수 있습니다.
RDP_CHECK.PY : [MS-RDPBCGR] 및 [MS-CREDSSP]는 CREDSSP 인증을 달성하기 위해 부분적으로 구현되었습니다. 이 예제는 계정이 대상 호스트에서 유효한지 여부를 테스트합니다.
Sniff.py : PCPAY 라이브러리를 사용하여 지정된 인터페이스에서 전송 된 패킷을들을 수있는 간단한 패킷 스나이퍼.
Sniffer.py : 원시 소켓을 사용하여 지정된 프로토콜에 해당하는 트랜지 시트 패킷을 듣는 간단한 패킷 스나이퍼.
Ping.py : ICMP Echo 및 Echo-Reply 패킷을 사용하여 호스트의 상태를 확인하는 간단한 ICMP Ping. 원격 호스트가 시작되면 에코 레플리 패킷을 사용하여 에코 프로브에 응답해야합니다.
Ping6.py : ICMP 에코 및 에코 프리플스 패킷을 사용하여 호스트의 상태를 확인하는 간단한 IPv6 ICMP Ping.
源码
https://github.com/secureauthcorp/impkacket을 방문하여 소스 코드 (개발 버전)를 볼 수 있습니다.0.9.19, 2019 년 4 월 1 일 업데이트 -Gzip'd Tarball
0.9.18, 2018 년 12 월 5 일에 업데이트 -Gzip'd Tarball
0.9.17, 2018 년 5 월 30 일에 업데이트 -Gzip'd Tarball
0.9.15, 2016 년 6 월 28 일에 업데이트 -Gzip'd Tarball
0.9.14, 2016 년 1 월 7 일에 업데이트 -Gzip'd tarball,
0.9.13, 2015 년 5 월 4 일에 업데이트 -Gzip'd tarball,
0.9.12, 2014 년 7 월 20 일 업데이트 -gzip'd tarball,
0.9.11, 2014 년 2 월 3 일에 업데이트 -Gzip'd tarball,
0.9.10, 2013 년 5 월 6 일에 업데이트 -Gzip'd tarball,
0.9.9.9, 2012 년 7 월 20 일에 업데이트 -Gzip'd tarball, zip 파일
0.9.6.0, 2006 년 5 월 23 일에 업데이트 - Gzip'd tarball
0.9.5.2, 2006 년 4 월 3 일에 업데이트 -Gzip'd tarball, zip 파일
0.9.5.1, 2003 년 12 월 16 일에 업데이트 -Gzip'd tarball, zip 파일