WWW Hadess Io
WWW Hadess Io
IO
Sharpening Techniques with
Impacket
DumpNTLMInfo
Techniques Used
DumpNTLMInfo.py is likely a Python script that utilizes Impacket's capabilities to interact
with network protocols. The primary technique it might use is the extraction or dumping
of NTLM (NT LAN Manager) information from a specified target. NTLM is a suite of
Microsoft security protocols intended to provide authentication, integrity, and
confidentiality to users.
URL
URL: DumpNTLMInfo.py on GitHub
Description
Assuming the typical functionality of Impacket scripts, DumpNTLMInfo.py would be a tool
for extracting NTLM authentication details from a target system. This could include
gathering NTLM hashes, which are often a target for attackers due to their potential use
in pass-the-hash attacks. The script might interact with services like SMB (Server
Message Block) or others that utilize NTLM for authentication.
Get-GPPPassword
Techniques Used
The script likely uses techniques to retrieve and decrypt passwords stored in Group
Policy Preferences files. These files are often used by system administrators to
URL
URL: Get-GPPPassword.py on GitHub
Description
Get-GPPPassword.py is probably designed to automate the process of finding, retrieving,
and decrypting passwords stored in GPP files. This script would typically target XML
files that contain these encrypted passwords, such as Groups.xml , Services.xml ,
, Datasources.xml , and Printers.xml . Once it locates these files, it uses
Scheduledtasks.xml
GetADUsers
Techniques Used
GetADUsers.py likely employs techniques to query Active Directory for user account
information. This can include retrieving details such as usernames, account settings,
and other attributes stored in AD. The script may use LDAP (Lightweight Directory
Access Protocol) queries or similar methods to extract this information from the AD
database.
URL
URL: GetADUsers.py on GitHub
Description
The primary function of GetADUsers.py is probably to enumerate user accounts in an
Active Directory environment. This can be particularly useful in penetration testing and
security auditing scenarios, where understanding the user landscape of a target network
is crucial.
URL
URL: GetNPUsers.py on GitHub
Description
The primary function of GetNPUsers.py is to enumerate and exploit AD user accounts that
are vulnerable due to the 'Do not require Kerberos preauthentication' setting. This
setting, if enabled, means that the account does not require the initial proof of
knowledge of the password to start the Kerberos authentication process.
Enumerating users in the AD who have the 'Do not require Kerberos
preauthentication' setting enabled.
Requesting TGS tickets from the Kerberos Key Distribution Center (KDC) for these
users.
These tickets are encrypted with the user's password hash, which can then be
extracted and subjected to offline password cracking techniques.
GetUserSPNs
The GetUserSPNs.py script from the Impacket suite is designed to interact with Service
Principal Names (SPNs) in Active Directory (AD) environments. Here's an overview
based on the typical functionality of such scripts:
Techniques Used
GetUserSPNs.pylikely employs techniques to enumerate and request service tickets for
accounts that have registered SPNs in an AD environment. In Kerberos, SPNs are used
URL
URL: GetUserSPNs.py on GitHub
Description
The primary function of GetUserSPNs.py is to identify and exploit potential vulnerabilities
associated with service accounts in Active Directory. The script:
Retrieves these tickets, which are encrypted with the account's password hash.
addcomputer
Techniques Used
likely employs techniques to automate the process of adding a new
addcomputer.py
computer account to an Active Directory domain. This can involve using LDAP
(Lightweight Directory Access Protocol) or other AD protocols to communicate with the
domain controller and create a new computer account. The script might also handle
setting or modifying various attributes associated with the computer account.
URL
URL: addcomputer.py on GitHub
Description
The primary function of addcomputer.py is to facilitate the addition of computer accounts
to an AD domain. This can be particularly useful for system administrators and IT
professionals who need to automate the process of joining multiple computers to a
domain.
Setting specific attributes for the computer account, such as its name, description,
and security settings.
atexec
echniques Used
atexec.py is likely a Python script designed to execute commands on a remote machine
in a Windows environment. This script probably uses the AT protocol, a legacy
scheduling system, to remotely execute commands. It might interact with the Windows
Task Scheduler service to schedule tasks (commands) to be executed on a remote
machine.
URL
URL: atexec.py on GitHub
Description
The primary function of atexec.py would be to facilitate remote command execution on
Windows systems. This can be particularly useful for system administrators, IT
professionals, and penetration testers for various purposes, such as:
Testing the security of networked systems by assessing how they handle unsolicited
task scheduling and command execution.
changepasswd
Techniques Used
changepasswd.py likely employs techniques to interact with AD services for password
management. This can involve using network protocols such as LDAP (Lightweight
Directory Access Protocol) or SMB (Server Message Block) to communicate with AD
URL
URL: changepasswd.py on GitHub
Description
The primary function of changepasswd.py is to facilitate the changing of passwords for
user accounts in an AD domain. This can be particularly useful for system
administrators and IT professionals who need to manage user credentials, either for
routine password updates or in response to security incidents.
dcomexec
Techniques Used
dcomexec.py likely employs techniques to interact with Windows systems using the
DCOM protocol. DCOM is a Microsoft technology for communication among software
components distributed across networked computers. The script probably uses this
protocol to remotely execute commands or scripts on a target machine, leveraging
DCOM's ability to communicate across different network segments.
URL
URL: dcomexec.py on GitHub
Description
The primary function of dcomexec.py is to facilitate remote command execution on
Windows systems using DCOM. This can be particularly useful for system
Testing the security of networked systems by assessing how they handle remote
execution requests.
describeTicket
Techniques Used
describeTicket.py likely employs techniques to parse and interpret Kerberos tickets.
Kerberos is a network authentication protocol commonly used in Windows Active
Directory environments. The script probably analyzes the tickets to extract and display
information such as the ticket's encryption type, validity period, and the identities of the
principal and target server.
URL
URL: describeTicket.py on GitHub
Description
The primary function of describeTicket.py is to provide a detailed description of Kerberos
tickets. This can be particularly useful for security professionals and system
administrators for purposes such as:
dpapi
Techniques Used
dpapi.py likely employs techniques to interact with the Windows Data Protection API,
which is used to provide encryption and decryption capabilities for protecting data such
URL
URL: dpapi.py on GitHub
Description
The primary function of dpapi.py is to facilitate the decryption and analysis of data
protected by the Windows Data Protection API. This can be particularly useful for
security professionals and system administrators for purposes such as:
Decrypting data that has been encrypted using DPAPI, which can include
passwords, keys, and other sensitive information.
Auditing and testing the security of systems that use DPAPI for data protection.
esentutl
Techniques Used
esentutl.pylikely employs techniques to interact with ESE database files, also known
as JET Blue databases. These databases are used by various Windows services and
applications, including Active Directory, Exchange, and Windows Update. The script
might handle tasks like reading, extracting, or manipulating data within ESE database
files, which can be crucial in forensic analysis or during security assessments.
URL
URL: esentutl.py on GitHub
Description
The primary function of esentutl.py is to facilitate the interaction with ESE database
files. This can be particularly useful for security professionals and system administrators
for purposes such as:
findDelegation
Techniques Used
findDelegation.pylikely employs techniques to query Active Directory for delegation
settings on user and computer accounts. Delegation in AD refers to the ability of one
account to act on behalf of another. The script might use LDAP (Lightweight Directory
Access Protocol) queries or similar methods to identify accounts with delegation
permissions, which can be a significant aspect in assessing the security posture of an
AD environment.
URL
URL: findDelegation.py on GitHub
Description
The primary function of findDelegation.py is to enumerate and report on delegation
settings within an Active Directory domain. This can be particularly useful for security
professionals conducting authorized assessments of AD environments.
getArch
Techniques Used
URL
URL: getArch.py on GitHub
Description
The primary function of getArch.py is to remotely determine the architecture of a
Windows machine in a network. This can be particularly useful for IT professionals,
system administrators, and security researchers for purposes such as:
getPac
Techniques Used
getPac.py likely employs techniques to interact with and analyze the PAC, which is a
part of the Kerberos ticket in AD environments. The PAC contains user authorization
information, such as group memberships and user rights. The script might use network
protocols and authentication mechanisms to request and retrieve PAC data from a
domain controller, which can be crucial for understanding user privileges and roles in an
AD domain.
URL
URL: getPac.py on GitHub
Extracting PAC data from Kerberos tickets to analyze user privileges and group
memberships.
Assisting in auditing and compliance checks related to user rights and access
controls in AD.
getST
Techniques Used
getST.py likely employs techniques to interact with the Kerberos protocol in AD
environments. The script might be used to request Service Tickets for specific services
within the domain. This process involves authenticating to the Kerberos Key Distribution
Center (KDC) and requesting tickets that grant access to specific services. These
tickets can be crucial for understanding access controls and permissions within an AD
domain.
URL
URL: getST.py on GitHub
Description
The primary function of getST.py is to facilitate the acquisition of Kerberos Service
Tickets for different services in an AD domain. This can be particularly useful for security
professionals conducting authorized assessments of AD environments.
getTGT
Techniques Used
getTGT.py likely employs techniques to interact with the Kerberos protocol in AD
environments. The script might be used to request Ticket Granting Tickets, which are
essential for Kerberos-based authentication. This process involves authenticating to the
Kerberos Key Distribution Center (KDC) and requesting a ticket that can be used to
obtain service tickets for various services within the domain.
URL
URL: getTGT.py on GitHub
Description
The primary function of getTGT.py is to facilitate the acquisition of Kerberos Ticket
Granting Tickets in an AD domain. This can be particularly useful for security
professionals conducting authorized assessments of AD environments.
goldenPac
Techniques Used
URL
URL: goldenPac.py on GitHub
Description
The primary function of goldenPac.py is to exploit the Kerberos protocol in an AD domain
by creating a Golden Ticket. This can be particularly useful (and dangerous) for security
professionals conducting authorized assessments of AD environments or for malicious
actors.
Key features of the script might include:
Creating a forged TGT that provides extensive access rights within an AD domain.
karmaSMB
Techniques Used
karmaSMB.py likely employs techniques to exploit weaknesses in the SMB protocol, which
is used for network file sharing in Windows environments. The script might simulate an
SMB server to intercept and manipulate SMB traffic, potentially allowing unauthorized
access to network resources or sensitive information.
URL
URL: karmaSMB.py on GitHub
Description
Assisting in penetration testing and red team exercises to identify and mitigate
SMB-related vulnerabilities.
keylistattack
Techniques Used
Given the name keylistattack.py , the script likely involves techniques related to
cryptographic keys or credentials. It might be designed to exploit vulnerabilities related
to key management or authentication processes in networked environments. The script
could potentially be used for tasks like extracting, decrypting, or exploiting keys or
credentials transmitted over a network.
URL
URL: keylistattack.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of
keylistattack.py . However, in general, a script with this name in the Impacket suite
would be used for security testing and network analysis purposes, potentially focusing
on:
kintercept
Techniques Used
Given the name kintercept.py , the script likely involves techniques related to network
interception or manipulation. It might be designed to capture, analyze, or modify
network traffic, potentially focusing on Kerberos protocol traffic or other authentication-
related data in a networked environment.
URL
URL: kintercept.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of
kintercept.py . However, in general, a script with this name in the Impacket suite would
be used for security testing and network analysis purposes, potentially focusing on:
lookupsid
Techniques Used
lookupsid.py likely employs techniques to enumerate and resolve SIDs (Security
Identifiers) in a Windows network. SIDs are unique identifiers for user and group
accounts in Windows. The script might use network protocols such as SMB (Server
Message Block) or RPC (Remote Procedure Call) to query Windows systems or domain
controllers to resolve SIDs to their corresponding account names.
Description
The primary function of lookupsid.py is to enumerate and resolve SIDs in a Windows
network environment. This can be particularly useful for IT professionals, system
administrators, and security researchers for purposes such as:
Identifying user and group accounts in a Windows network based on their SIDs.
machine_role
Techniques Used
Given the name machine_role.py , the script likely involves techniques related to network
reconnaissance and system identification. It might be designed to query networked
machines to determine their roles, such as whether they are domain controllers, file
servers, or workstations. This information is often crucial in network management and
security assessments.
URL
URL: machine_role.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of
machine_role.py . However, in general, a script with this name in the Impacket suite would
mimikatz
Techniques Used
mimikatz.py likely employs techniques to interface with or replicate some functionalities
of Mimikatz. This might include extracting credentials from memory, performing pass-
the-hash attacks, or other activities related to credential theft and manipulation on
Windows systems.
URL
URL: mimikatz.py on GitHub
Description
The primary function of mimikatz.py is to assist in security testing and penetration
testing activities by providing capabilities similar to those of Mimikatz. This can include:
mqtt_check
Techniques Used
Given the name mqtt_check.py , the script likely involves techniques related to the MQTT
protocol, which is a lightweight messaging protocol used for small sensors and mobile
devices. It might be designed to test the security of MQTT brokers, check for
vulnerabilities, or perform reconnaissance on MQTT-based communication in a
networked environment.
URL
URL: mqtt_check.py on GitHub
mssqlclient
Techniques Used
mssqlclient.pylikely involves techniques for connecting to, querying, and potentially
exploiting Microsoft SQL Server databases. This might include running SQL queries,
executing commands, or exploiting SQL Server features for various purposes, including
both legitimate database management and security testing.
URL
URL: mssqlclient.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of
mssqlclient.py . However, in general, a script with this name in the Impacket suite would
mssqlinstance
SQL Server instances on a network. This might include identifying active SQL Server
instances, determining their versions, and potentially gathering other relevant
information about the database environment.
URL
URL: mssqlinstance.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of
mssqlinstance.py . However, in general, a script with this name in the Impacket suite
net
Techniques Used
net.py likely involves techniques for network communication, enumeration, and possibly
exploitation. This might include tasks like scanning for open ports, identifying network
services, and potentially exploiting vulnerabilities in network protocols or services.
URL
URL: net.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of net.py .
However, in general, a script with this name in the Impacket suite would be used for
purposes like:
netview
Techniques Used
netview.py likely involves techniques for viewing and analyzing network structures and
devices. This might include tasks like enumerating network shares, users, and devices,
as well as potentially identifying network configurations and vulnerabilities.
URL
URL: netview.py on GitHub
Description
Without specific details, it's challenging to provide an accurate description of netview.py .
However, in general, a script with this name in the Impacket suite would be used for
purposes like:
Enumerating and analyzing network resources such as shares, users, and devices.
nmapAnswerMachine
Techniques used:
NMAP scripting - the script is designed to work with NMAP to scan ports and
respond to requests
Port scanning - it scans TCP ports on the target system to find open ones
Crafted responses - it sends crafted responses to hide open ports and make the
system appear offline
Description:
This Python script works as an "answer machine" for NMAP port scans. When NMAP
scans ports on the system running this script, it will send crafted responses to make
those ports appear closed. This hides open ports from the NMAP scan to make the
system seem offline and prevent fingerprinting. The script listens on the local interface
for SYN scan probes from NMAP and sends back spoofed RST packets in response. It
does this for all TCP ports except 110, 139, and 445 which are left open to mimic a
Windows machine.
ntfs-read
Techniques used:
SMB protocol - communicates with the target using the SMB protocol
Mounting drives - mounts the target NTFS volume locally to read files
URL: https://github.com/fortra/impacket/blob/master/examples/ntfs-read.py
Description:
This Python script allows reading files from NTFS drives by leveraging SMB
connections and user impersonation. It takes a username, password, target, and
optionally a domain as input. Using this credential information, it impersonates the user
to mount the target NTFS drive over SMB. By default it will mount the C drive. Once
mounted, it can list paths and read any accessible files on the remote NTFS volume just
as if it were a local drive. This allows directory enumeration and file access via the SMB
protocol by essentially masquerading as an authenticated domain user to the target.
ntlmrelayx
Techniques used:
SMB relay - relays NTLM auth to SMB shares and executes commands
HTTP server - contains an HTTP server for NTLM relay over HTTP
URL: https://github.com/fortra/impacket/blob/master/examples/ntlmrelayx.py
Description:
ntlmrelayx.py is a tool that performs NTLM relay attacks by intercepting authentication
requests to one service and relaying them to either SMB shares or an HTTP server. It
listens for incoming NTLM authentication attempts, captures the challenge/response,
and replays it to authenticate as the user to different services. This can be used to relay
authentication to SMB servers to enumerate shares and read/write files. It can also
relay NTLM to an HTTP server under the attacker's control to execute commands.
Additionally it contains an HTTP server specifically for NTLM relay. The tool can relay
credentials to access services the user is authorized for but attackers are not. This
allows escalation of privileges and lateral movement.
ping
Techniques used:
Raw sockets - creates raw sockets to send and receive ICMP packets
URL: https://github.com/fortra/impacket/blob/master/examples/ping.py
Description:
This Python script allows pinging hosts using ICMP echo requests and replies. It creates
raw ICMP sockets which requires admin privileges. After creating the raw sockets, it can
then send ICMP echo request packets to the target hosts and listen for ICMP echo reply
packets back. Based on the replies, it calculates and prints out statistics showing how
long it takes to receive replies from the target. This allows basic network connectivity
testing by leveraging raw ICMP socket communication.
ping6
Techniques used:
ICMPv6 - uses ICMPv6 echo requests and replies to ping IPv6 hosts
Raw sockets - creates raw sockets to send and receive ICMPv6 packets
URL: https://github.com/fortra/impacket/blob/master/examples/ping6.py
Description:
This Python script allows pinging IPv6 hosts using ICMPv6 echo requests and replies. It
creates raw ICMPv6 sockets which requires admin privileges. After creating the raw
sockets, it can then send ICMPv6 echo request packets to the target IPv6 hosts and
listen for ICMPv6 echo reply packets back. Based on the replies, it calculates and prints
out statistics showing how long it takes to receive replies from the target. This allows
basic IPv6 network connectivity testing by leveraging raw ICMPv6 socket
communication.
psexec
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/psexec.py
Description:
raiseChild
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/raiseChild.py
Description:
This Python script allows spawning new processes and injecting arbitrary DLLs into
their memory. It leverages the Windows API to create a new suspended child process of
the parent python.exe process. It then writes the bytes of the specified DLL into the new
process's memory space. Finally, it resumes execution which causes the DLL to
execute within the child process. By spawning from the parent Python process it inherits
the parent's level of privileges, allowing escalation.
rbcd
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/rbcd.py
Description:
This Python script provides the capability to perform credential dumping by injecting a
DLL into the lsass.exe process. It leverages access to lsass in order to load a custom
RBC DLL which can then access memory and dump credentials. The script uses
Windows API calls to open the lsass process, allocate memory, write the encoded DLL,
and create a remote thread to call it. This gives execution inside lsass, allowing the DLL
to extract credentials from memory. These credentials can then be used for lateral
movement, pivoting, and escalation.
rdp_check
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/rdp_check.py
Description:
This Python script tests RDP services for valid account credentials. It takes a target,
username file, password file and optional domain and attempts to connect to the target's
RDP service using found account/password combinations. For each user/pass pair
found in the files, it tries to authenticate to verify a valid combination. If successful, it
returns that the credentials are valid for RDP access to that target. This allows quickly
brute forcing and checking remote desktop credentials.
rpcdump
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/rpcdump.py
Description:
This Python script dumps information from remote RPC services by connecting over
SMB. It extracts details from the RPC backend that can be used for reconnaissance and
discovery. By passing target host details and optional credentials, rpcdump.py
communicates with the RPCSS service to enumerate available RPC endpoints. It then
probes and dumps information about the RPC backends such as UUIDs, annotated
UUIDs, protocol sequences, and supported transfers. This reveals system info and can
identify potential lateral movement attacks.
samrdump
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/samrdump.py
Description:
This Python script extracts user account details and password hashes from the Security
Account Manager Remote (SAMR) service. It connects to the target over SMB and then
queries the SAMR functions to enumerate users and extract their NT and LM hashes.
By default it will extract hashes for all accessible users, or can dump just a single
specified user's hashes. The hashes can then be cracked to attain account passwords
for lateral movement and privilege escalation.
smbclient
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/smbclient.py
Description:
smbclient.py provides SMB client functionality to interact with remote SMB shares and
files. It connects to target Windows SMB servers using valid credentials or
anonymously. It can then list shares, enumerate directories, upload/download files from
the remote server. It provides an interface similar to an smbclient shell allowing file
manipulation and discovery. Since itpivot through file shares using stolen credentials or
via anonymous access.
smbexec
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/smbexec.py
Description:
This Python script executes commands on remote Windows hosts utilizing SMB
connections. It connects to the remote admin share (ADMIN$) over SMB using valid
credentials. It then creates a service on the remote host via the Service Control
Manager. That service is started by the script pointing to cmd.exe with any specified
commands. Output from cmd is returned over SMB and printed/saved. This allows
execution of arbitrary OS commands on remote hosts the valid credentials have access
to.
smbpasswd
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/smbpasswd.py
Description:
This Python script allows changing local account passwords on remote machines over
SMB by accessing the SAMR database. It takes target details and authenticates over
SMB to connect to the remote SAMR service. User credentials and a new password are
provided to reset and update the passwords in the SAM database for those accounts.
This results in the account passwords being updated without needing local access on
the Windows machine.
smbrelayx
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/smbrelayx.py
Description:
smbrelayx.py performs SMB and NTLM authentication relay attacks by intercepting
authentication attempts and relaying them to access other resources. It listens for
incoming SMB connection attempts that contain NTLM messages. It captures
challenge/response NTLM info and uses it to connect and authenticate to other servers
that the user has access to. This could give elevated access by abusing relayed
credentials. It can also capture NTLM hashes over these connections through
manipulation of the SMB/NTLM traffic that it controls.
smbserver
Techniques used:
URL: https://github.com/fortra/impacket/blob/master/examples/smbserver.py
Description:
smbserver.py sets up a fake SMB server that can capture credentials and interact with
Windows SMB client connections. It implements the SMB protocol to simulate an SMB
share that clients can connect to. It allows sharing a local folder over SMB when clients
connect. The server logs all authentication attempts and file activity. This allows man-in-
the-middle attacks to intercept legit SMB connections by running as a proxy, capturing
SMB credentials in the process.