FreshRSS

πŸ”’
❌ Secure Planet Training Courses Updated For 2019 - Click Here
There are new available articles, click to refresh the page.
Before yesterdayKitPloit - PenTest Tools!

Damn-Vulnerable-Drone - An Intentionally Vulnerable Drone Hacking Simulator Based On The Popular ArduPilot/MAVLink Architecture, Providing A Realistic Environment For Hands-On Drone Hacking

By: Zion3R


The Damn Vulnerable Drone is an intentionally vulnerable drone hacking simulator based on the popular ArduPilot/MAVLink architecture, providing a realistic environment for hands-on drone hacking.


    About the Damn Vulnerable Drone


    What is the Damn Vulnerable Drone?

    The Damn Vulnerable Drone is a virtually simulated environment designed for offensive security professionals to safely learn and practice drone hacking techniques. It simulates real-world ArduPilot & MAVLink drone architectures and vulnerabilities, offering a hands-on experience in exploiting drone systems.

    Why was it built?

    The Damn Vulnerable Drone aims to enhance offensive security skills within a controlled environment, making it an invaluable tool for intermediate-level security professionals, pentesters, and hacking enthusiasts.

    Similar to how pilots utilize flight simulators for training, we can use the Damn Vulnerable Drone simulator to gain in-depth knowledge of real-world drone systems, understand their vulnerabilities, and learn effective methods to exploit them.

    The Damn Vulnerable Drone platform is open-source and available at no cost and was specifically designed to address the substantial expenses often linked with drone hardware, hacking tools, and maintenance. Its cost-free nature allows users to immerse themselves in drone hacking without financial concerns. This accessibility makes the Damn Vulnerable Drone a crucial resource for those in the fields of information security and penetration testing, promoting the development of offensive cybersecurity skills in a safe environment.

    How does it work?

    The Damn Vulnerable Drone platform operates on the principle of Software-in-the-Loop (SITL), a simulation technique that allows users to run drone software as if it were executing on an actual drone, thereby replicating authentic drone behaviors and responses.

    ArduPilot's SITL allows for the execution of the drone's firmware within a virtual environment, mimicking the behavior of a real drone without the need for physical hardware. This simulation is further enhanced with Gazebo, a dynamic 3D robotics simulator, which provides a realistic environment and physics engine for the drone to interact with. Together, ArduPilot's SITL and Gazebo lay the foundation for a sophisticated and authentic drone simulation experience.

    While the current Damn Vulnerable Drone setup doesn't mirror every drone architecture or configuration, the integrated tactics, techniques and scenarios are broadly applicable across various drone systems, models and communication protocols.

    Features

    • Docker-based Environment: Runs in a completely virtualized docker-based setup, making it accessible and safe for drone hacking experimentation.
    • Simulated Wireless Networking: Simulated Wifi (802.11) interfaces to practice wireless drone attacks.
    • Onboard Camera Streaming & Gimbal: Simulated RTSP drone onboard camera stream with gimbal and companion computer integration.
    • Companion Computer Web Interface: Companion Computer configuration management via web interface and simulated serial connection to Flight Controller.
    • QGroundControl/MAVProxy Integration: One-click QGroundControl UI launching (only supported on x86 architecture) with MAVProxy GCS integration.
    • MAVLink Router Integration: Telemetry forwarding via MAVLink Router on the Companion Computer Web Interface.
    • Dynamic Flight Logging: Fully dynamic Ardupilot flight bin logs stored on a simulated SD Card.
    • Management Web Console: Simple to use simulator management web console used to trigger scenarios and drone flight states.
    • Comprehensive Hacking Scenarios: Ideal for practicing a wide range of drone hacking techniques, from basic reconnaissance to advanced exploitation.
    • Detailed Walkthroughs: If you need help hacking against a particular scenario you can leverage the detailed walkthrough documentation as a spoiler.


    BokuLoader - A Proof-Of-Concept Cobalt Strike Reflective Loader Which Aims To Recreate, Integrate, And Enhance Cobalt Strike's Evasion Features!

    By: Zion3R


    A proof-of-concept User-Defined Reflective Loader (UDRL) which aims to recreate, integrate, and enhance Cobalt Strike's evasion features!


    Contributors:

    Contributor Twitter Notable Contributions
    Bobby Cooke @0xBoku Project original author and maintainer
    Santiago Pecin @s4ntiago_p Reflective Loader major enhancements
    Chris Spehn @ConsciousHacker Aggressor scripting
    Joshua Magri @passthehashbrwn IAT hooking
    Dylan Tran @d_tranman Reflective Call Stack Spoofing
    James Yeung @5cript1diot Indirect System Calls

    UDRL Usage Considerations

    The built-in Cobalt Strike reflective loader is robust, handling all Malleable PE evasion features Cobalt Strike has to offer. The major disadvantage to using a custom UDRL is Malleable PE evasion features may or may not be supported out-of-the-box.

    The objective of the public BokuLoader project is to assist red teams in creating their own in-house Cobalt Strike UDRL. The project aims to support all worthwhile CS Malleable PE evasion features. Some evasion features leverage CS integration, others have been recreated completely, and some are unsupported.

    Before using this project, in any form, you should properly test the evasion features are working as intended. Between the C code and the Aggressor script, compilation with different versions of operating systems, compilers, and Java may return different results.

    Evasion Features

    BokuLoader Specific Evasion Features

    • Reflective callstack spoofing via synthetic frames.
    • Custom ASM/C reflective loader code
    • Indirect NT syscalls via HellsGate & HalosGate techniques
    • All memory protection changes for all allocation options are done via indirect syscall to NtProtectVirtualMemory
    • obfuscate "true" with custom UDRL Aggressor script implementation.
    • NOHEADERCOPY
    • Loader will not copy headers raw beacon DLL to virtual beacon DLL. First 0x1000 bytes will be nulls.
    • XGetProcAddress for resolving symbols
    • Does not use Kernel32.GetProcAddress
    • xLoadLibrary for resolving DLL's base address & DLL Loading
    • For loaded DLLs, gets DLL base address from TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList
    • Does not use Kernel32.LoadLibraryA
    • Caesar Cipher for string obfuscation
    • 100k UDRL Size
    • Import DLL names and import entry name strings are stomped in virtual beacon DLL.

    Supported Malleable PE Evasion Features

    Command Option(s) Supported
    allocator HeapAlloc, MapViewOfFile, VirtualAlloc All supported via BokuLoader implementation
    module_x64 string (DLL Name) Supported via BokuLoader implementation. Same DLL stomping requirements as CS implementation apply
    obfuscate true/false HTTP/S beacons supported via BokuLoader implementation. SMB/TCP is currently not supported for obfuscate true. Details in issue. Accepting help if you can fix :)
    entry_point RVA as decimal number Supported via BokuLoader implementation
    cleanup true Supported via CS integration
    userwx true/false Supported via BokuLoader implementation
    sleep_mask (true/false) or (Sleepmask Kit+true) Supported. When using default "sleepmask true" (without sleepmask kit) set "userwx true". When using sleepmask kit which supports RX beacon.text memory (src47/Ekko) set "sleepmask true" && "userwx false".
    magic_mz_x64 4 char string Supported via CS integration
    magic_pe 2 char string Supported via CS integration
    transform-x64 prepend escaped hex string BokuLoader.cna Aggressor script modification
    transform-x64 strrep string string BokuLoader.cna Aggressor script modification
    stomppe true/false Unsupported. BokuLoader does not copy beacon DLL headers over. First 0x1000 bytes of virtual beacon DLL are 0x00
    checksum number Experimental. BokuLoader.cna Aggressor script modification
    compile_time date-time string Experimental. BokuLoader.cna Aggressor script modification
    image_size_x64 decimal value Unsupported
    name string Experimental. BokuLoader.cna Aggressor script modification
    rich_header escaped hex string Experimental. BokuLoader.cna Aggressor script modification
    stringw string Unsupported
    string string Unsupported

    Test

    Project Origins

    Usage

    1. Compile the BokuLoader Object file with make
    2. Start your Cobalt Strike Team Server
    3. Within Cobalt Strike, import the BokuLoader.cna Aggressor script
    4. Generate the x64 beacon (Attacks -> Packages -> Windows Executable (S))
    5. Use the Script Console to ensure BokuLoader was implemented in the beacon build

    6. Does not support x86 option. The x86 bin is the original Reflective Loader object file.

    7. Generating RAW beacons works out of the box. When using the Artifact Kit for the beacon loader, the stagesize variable must be larger than the default.
    8. See the Cobalt Strike User-Defined Reflective Loader documenation for additional information

    Detection Guidance

    Hardcoded Strings

    • BokuLoader changes some commonly detected strings to new hardcoded values. These strings can be used to signature BokuLoader:
    Original Cobalt Strike String BokuLoader Cobalt Strike String
    ReflectiveLoader BokuLoader
    Microsoft Base Cryptographic Provider v1.0 12367321236742382543232341241261363163151d
    (admin) (tomin)
    beacon bacons

    Memory Allocators

    DLL Module Stomping

    • The Kernel32.LoadLibraryExA is called to map the DLL from disk
    • The 3rd argument to Kernel32.LoadLibraryExA is DONT_RESOLVE_DLL_REFERENCES (0x00000001)
    • the system does not call DllMain
    • Does not resolve addresses in LDR PEB entry as detailed by MDSec here
    • Detectable by scanning process memory with pe-sieve tool

    Heap Allocation

    • Executable RX or RWX memory will exist in the heap if sleepmask kit is not used.

    Mapped Allocator

    • The Kernel32.CreateFileMappingA & Kernel32.MapViewOfFile is called to allocate memory for the virtual beacon DLL.

    Sleepmask Detection

    Indirect Syscalls

    • BokuLoader calls the following NT systemcalls to setup the loaded executable beacon memory: NtAllocateVirtualMemory, NtProtectVirtualMemory
    • These are called indirectly from the BokuLoader executable memory.
    • Setting userland hooks in ntdll.dll will not detect these systemcalls.
    • It may be possible to register kernelcallbacks using a kernel driver to monitor for the above system calls and detect their usage.
    • The BokuLoader itself will contain the mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 assembly instructions within its executable memory.

    Virtual Beacon DLL Header

    • The first 0x1000 bytes of the virtual beacon DLL are zeros.

    Source Code Available

    • The BokuLoader source code is provided within the repository and can be used to create memory signatures.
    • If you have additional detection guidance, please feel free to contribute by submitting a pull request.

    Credits / References

    Reflective Call Stack Spoofing

    Reflective Loader

    HalosGate SysCaller

    • Reenz0h from @SEKTOR7net
    • Checkout Reenz0h's awesome courses and blogs!
    • Best classes for malware development I have taken.
    • Creator of the halos gate technique. His work was initially the motivation for this work.
    • Sektor7 HalosGate Blog

    HellsGate Syscaller

    Aggressor Scripting

    Cobalt Strike User Defined Reflective Loader

    • https://www.cobaltstrike.com/help-user-defined-reflective-loader

    Great Resource for learning Intel ASM

    ETW and AMSI Bypass

    Implementing ASM in C Code with GCC

    • https://outflank.nl/blog/2020/12/26/direct-syscalls-in-beacon-object-files/
    • https://www.cs.uaf.edu/2011/fall/cs301/lecture/10_12_asm_c.html
    • http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/Extended-Asm.html#Extended-Asm

    Cobalt Strike C2 Profiles



    Thief Raccoon - Login Phishing Tool

    By: Zion3R


    Thief Raccoon is a tool designed for educational purposes to demonstrate how phishing attacks can be conducted on various operating systems. This tool is intended to raise awareness about cybersecurity threats and help users understand the importance of security measures like 2FA and password management.


    Features

    • Phishing simulation for Windows 10, Windows 11, Windows XP, Windows Server, Ubuntu, Ubuntu Server, and macOS.
    • Capture user credentials for educational demonstrations.
    • Customizable login screens that mimic real operating systems.
    • Full-screen mode to enhance the phishing simulation.

    Installation

    Prerequisites

    • Python 3.x
    • pip (Python package installer)
    • ngrok (for exposing the local server to the internet)

    Download and Install

    1. Clone the repository:

    ```bash git clone https://github.com/davenisc/thief_raccoon.git cd thief_raccoon

    1. Install python venv

    ```bash apt install python3.11-venv

    1. Create venv:

    ```bash python -m venv raccoon_venv source raccoon_venv/bin/activate

    1. Install the required libraries:

    ```bash pip install -r requirements.txt

    Usage

    1. Run the main script:

    ```bash python app.py

    1. Select the operating system for the phishing simulation:

    After running the script, you will be presented with a menu to select the operating system. Enter the number corresponding to the OS you want to simulate.

    1. Access the phishing page:

    If you are on the same local network (LAN), open your web browser and navigate to http://127.0.0.1:5000.

    If you want to make the phishing page accessible over the internet, use ngrok.

    Using ngrok

    1. Download and install ngrok

    Download ngrok from ngrok.com and follow the installation instructions for your operating system.

    1. Expose your local server to the internet:

    2. Get the public URL:

    After running the above command, ngrok will provide you with a public URL. Share this URL with your test subjects to access the phishing page over the internet.

    How to install Ngrok on Linux?

    1. Install ngrok via Apt with the following command:

    ```bash curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc \ | sudo tee /etc/apt/trusted.gpg.d/ngrok.asc >/dev/null \ && echo "deb https://ngrok-agent.s3.amazonaws.com buster main" \ | sudo tee /etc/apt/sources.list.d/ngrok.list \ && sudo apt update \ && sudo apt install ngrok

    1. Run the following command to add your authtoken to the default ngrok.yml

    ```bash ngrok config add-authtoken xxxxxxxxx--your-token-xxxxxxxxxxxxxx

    Deploy your app online

    1. Put your app online at ephemeral domain Forwarding to your upstream service. For example, if it is listening on port http://localhost:8080, run:

      ```bash ngrok http http://localhost:5000

    Example

    1. Run the main script:

    ```bash python app.py

    1. Select Windows 11 from the menu:

    ```bash Select the operating system for phishing: 1. Windows 10 2. Windows 11 3. Windows XP 4. Windows Server 5. Ubuntu 6. Ubuntu Server 7. macOS Enter the number of your choice: 2

    1. Access the phishing page:

    Open your browser and go to http://127.0.0.1:5000 or the ngrok public URL.

    Disclaimer

    This tool is intended for educational purposes only. The author is not responsible for any misuse of this tool. Always obtain explicit permission from the owner of the system before conducting any phishing tests.

    License

    This project is licensed under the MIT License. See the LICENSE file for details.

    ScreenShots

    Credits

    Developer: @davenisc Web: https://davenisc.com



    C2-Cloud - The C2 Cloud Is A Robust Web-Based C2 Framework, Designed To Simplify The Life Of Penetration Testers

    By: Zion3R


    The C2 Cloud is a robust web-based C2 framework, designed to simplify the life of penetration testers. It allows easy access to compromised backdoors, just like accessing an EC2 instance in the AWS cloud. It can manage several simultaneous backdoor sessions with a user-friendly interface.

    C2 Cloud is open source. Security analysts can confidently perform simulations, gaining valuable experience and contributing to the proactive defense posture of their organizations.

    Reverse shells support:

    1. Reverse TCP
    2. Reverse HTTP
    3. Reverse HTTPS (configure it behind an LB)
    4. Telegram C2

    Demo

    C2 Cloud walkthrough: https://youtu.be/hrHT_RDcGj8
    Ransomware simulation using C2 Cloud: https://youtu.be/LKaCDmLAyvM
    Telegram C2: https://youtu.be/WLQtF4hbCKk

    Key Features

    πŸ”’ Anywhere Access: Reach the C2 Cloud from any location.
    πŸ”„ Multiple Backdoor Sessions: Manage and support multiple sessions effortlessly.
    πŸ–±οΈ One-Click Backdoor Access: Seamlessly navigate to backdoors with a simple click.
    πŸ“œ Session History Maintenance: Track and retain complete command and response history for comprehensive analysis.

    Tech Stack

    πŸ› οΈ Flask: Serving web and API traffic, facilitating reverse HTTP(s) requests.
    πŸ”— TCP Socket: Serving reverse TCP requests for enhanced functionality.
    🌐 Nginx: Effortlessly routing traffic between web and backend systems.
    πŸ“¨ Redis PubSub: Serving as a robust message broker for seamless communication.
    πŸš€ Websockets: Delivering real-time updates to browser clients for enhanced user experience.
    πŸ’Ύ Postgres DB: Ensuring persistent storage for seamless continuity.

    Architecture

    Application setup

    • Management port: 9000
    • Reversse HTTP port: 8000
    • Reverse TCP port: 8888

    • Clone the repo

    • Optional: Update chait_id, bot_token in c2-telegram/config.yml
    • Execute docker-compose up -d to start the containers Note: The c2-api service will not start up until the database is initialized. If you receive 500 errors, please try after some time.

    Credits

    Inspired by Villain, a CLI-based C2 developed by Panagiotis Chartas.

    License

    Distributed under the MIT License. See LICENSE for more information.

    Contact



    BackDoorSim - An Educational Into Remote Administration Tools

    By: Zion3R


    BackdoorSim is a remote administration and monitoring tool designed for educational and testing purposes. It consists of two main components: ControlServer and BackdoorClient. The server controls the client, allowing for various operations like file transfer, system monitoring, and more.


    Disclaimer

    This tool is intended for educational purposes only. Misuse of this software can violate privacy and security policies. The developers are not responsible for any misuse or damage caused by this software. Always ensure you have permission to use this tool in your intended environment.


    Features
    • File Transfer: Upload and download files between server and client.
    • Screenshot Capture: Take screenshots from the client's system.
    • System Information Gathering: Retrieve detailed system and security software information.
    • Camera Access: Capture images from the client's webcam.
    • Notifications: Send and display notifications on the client system.
    • Help Menu: Easy access to command information and usage.

    Installation

    To set up BackdoorSim, you will need to install it on both the server and client machines.

    1. Clone the repository:

    shell $ git clone https://github.com/HalilDeniz/BackDoorSim.git

    1. Navigate to the project directory:

    shell $ cd BackDoorSim

    1. Install the required dependencies:

    shell $ pip install -r requirements.txt


    Usage

    After starting both the server and client, you can use the following commands in the server's command prompt:

    • upload [file_path]: Upload a file to the client.
    • download [file_path]: Download a file from the client.
    • screenshot: Capture a screenshot from the client.
    • sysinfo: Get system information from the client.
    • securityinfo: Get security software status from the client.
    • camshot: Capture an image from the client's webcam.
    • notify [title] [message]: Send a notification to the client.
    • help: Display the help menu.

    Disclaimer

    BackDoorSim is developed for educational purposes only. The creators of BackDoorSim are not responsible for any misuse of this tool. This tool should not be used in any unauthorized or illegal manner. Always ensure ethical and legal use of this tool.


    DepNot: RansomwareSim

    If you are interested in tools like BackdoorSim, be sure to check out my recently released RansomwareSim tool


    BackdoorSim: An Educational into Remote Administration Tools

    If you want to read our article about Backdoor


    Contributing

    Contributions, suggestions, and feedback are welcome. Please create an issue or pull request for any contributions. 1. Fork the repository. 2. Create a new branch for your feature or bug fix. 3. Make your changes and commit them. 4. Push your changes to your forked repository. 5. Open a pull request in the main repository.


    Contact

    For any inquiries or further information, you can reach me through the following channels:



    PurpleKeep - Providing Azure Pipelines To Create An Infrastructure And Run Atomic Tests

    By: Zion3R


    With the rapidly increasing variety of attack techniques and a simultaneous rise in the number of detection rules offered by EDRs (Endpoint Detection and Response) and custom-created ones, the need for constant functional testing of detection rules has become evident. However, manually re-running these attacks and cross-referencing them with detection rules is a labor-intensive task which is worth automating.

    To address this challenge, I developed "PurpleKeep," an open-source initiative designed to facilitate the automated testing of detection rules. Leveraging the capabilities of the Atomic Red Team project which allows to simulate attacks following MITRE TTPs (Tactics, Techniques, and Procedures). PurpleKeep enhances the simulation of these TTPs to serve as a starting point for the evaluation of the effectiveness of detection rules.

    Automating the process of simulating one or multiple TTPs in a test environment comes with certain challenges, one of which is the contamination of the platform after multiple simulations. However, PurpleKeep aims to overcome this hurdle by streamlining the simulation process and facilitating the creation and instrumentation of the targeted platform.

    Primarily developed as a proof of concept, PurpleKeep serves as an End-to-End Detection Rule Validation platform tailored for an Azure-based environment. It has been tested in combination with the automatic deployment of Microsoft Defender for Endpoint as the preferred EDR solution. PurpleKeep also provides support for security and audit policy configurations, allowing users to mimic the desired endpoint environment.

    To facilitate analysis and monitoring, PurpleKeep integrates with Azure Monitor and Log Analytics services to store the simulation logs and allow further correlation with any events and/or alerts stored in the same platform.

    TLDR: PurpleKeep provides an Attack Simulation platform to serve as a starting point for your End-to-End Detection Rule Validation in an Azure-based environment.


    Requirements

    The project is based on Azure Pipelines and requires the following to be able to run:

    • Azure Service Connection to a resource group as described in the Microsoft Docs
    • Assignment of the "Key Vault Administrator" Role for the previously created Enterprise Application
    • MDE onboarding script, placed as a Secure File in the Library of Azure DevOps and make it accessible to the pipelines

    Optional

    You can provide a security and/or audit policy file that will be loaded to mimic your Group Policy configurations. Use the Secure File option of the Library in Azure DevOps to make it accessible to your pipelines.

    Refer to the variables file for your configurable items.

    Design

    Infrastructure

    Deploying the infrastructure uses the Azure Pipeline to perform the following steps:

    • Deploy Azure services:
      • Key Vault
      • Log Analytics Workspace
      • Data Connection Endpoint
      • Data Connection Rule
    • Generate SSH keypair and password for the Windows account and store in the Key Vault
    • Create a Windows 11 VM
    • Install OpenSSH
    • Configure and deploy the SSH public key
    • Install Invoke-AtomicRedTeam
    • Install Microsoft Defender for Endpoint and configure exceptions
    • (Optional) Apply security and/or audit policy files
    • Reboot

    Simulation

    Currently only the Atomics from the public repository are supported. The pipelines takes a Technique ID as input or a comma seperate list of techniques, for example:

    • T1059.003
    • T1027,T1049,T1003

    The logs of the simulation are ingested into the AtomicLogs_CL table of the Log Analytics Workspace.

    There are currently two ways to run the simulation:

    Rotating simulation

    This pipeline will deploy a fresh platform after the simulation of each TTP. The Log Analytic workspace will maintain the logs of each run.

    Warning: this will onboard a large number of hosts into your EDR

    Single deploy simulation

    A fresh infrastructure will be deployed only at the beginning of the pipeline. All TTP's will be simulated on this instance. This is the fastests way to simulate and prevents onboarding a large number of devices, however running a lot of simulations in a same environment has the risk of contaminating the environment and making the simulations less stable and predictable.

    TODO

    Must have

    • Check if pre-reqs have been fullfilled before executing the atomic
    • Provide the ability to import own group policy
    • Cleanup biceps and pipelines by using a master template (Complete build)
    • Build pipeline that runs technique sequently with reboots in between
    • Add Azure ServiceConnection to variables instead of parameters

    Nice to have

    • MDE Off-boarding (?)
    • Automatically join and leave AD domain
    • Make Atomics repository configureable
    • Deploy VECTR as part of the infrastructure and ingest results during simulation. Also see the VECTR API issue
    • Tune alert API call to Microsoft Defender for Endpoint (Microsoft.Security alertsSuppressionRules)
    • Add C2 infrastructure for manual or C2 based simulations

    Issues

    • Atomics do not return if a simulation succeeded or not
    • Unreliable OpenSSH extension installer failing infrastructure deployment
    • Spamming onboarded devices in the EDR

    References



    Rayder - A Lightweight Tool For Orchestrating And Organizing Your Bug Hunting Recon / Pentesting Command-Line Workflows

    By: Zion3R


    Rayder is a command-line tool designed to simplify the orchestration and execution of workflows. It allows you to define a series of modules in a YAML file, each consisting of commands to be executed. Rayder helps you automate complex processes, making it easy to streamline repetitive modules and execute them parallelly if the commands do not depend on each other.


    Installation

    To install Rayder, ensure you have Go (1.16 or higher) installed on your system. Then, run the following command:

    go install github.com/devanshbatham/rayder@v0.0.4

    Usage

    Rayder offers a straightforward way to execute workflows defined in YAML files. Use the following command:

    rayder -w path/to/workflow.yaml

    Workflow Configuration

    A workflow is defined in a YAML file with the following structure:

    vars:
    VAR_NAME: value
    # Add more variables...

    parallel: true|false
    modules:
    - name: task-name
    cmds:
    - command-1
    - command-2
    # Add more commands...
    silent: true|false
    # Add more modules...

    Using Variables in Workflows

    Rayder allows you to use variables in your workflow configuration, making it easy to parameterize your commands and achieve more flexibility. You can define variables in the vars section of your workflow YAML file. These variables can then be referenced within your command strings using double curly braces ({{}}).

    Defining Variables

    To define variables, add them to the vars section of your workflow YAML file:

    vars:
    VAR_NAME: value
    ANOTHER_VAR: another_value
    # Add more variables...

    Referencing Variables in Commands

    You can reference variables within your command strings using double curly braces ({{}}). For example, if you defined a variable OUTPUT_DIR, you can use it like this:

    modules:
    - name: example-task
    cmds:
    - echo "Output directory {{OUTPUT_DIR}}"

    Supplying Variables via the Command Line

    You can also supply values for variables via the command line when executing your workflow. Use the format VARIABLE_NAME=value to provide values for specific variables. For example:

    rayder -w path/to/workflow.yaml VAR_NAME=new_value ANOTHER_VAR=updated_value

    If you don't provide values for variables via the command line, Rayder will automatically apply default values defined in the vars section of your workflow YAML file.

    Remember that variables supplied via the command line will override the default values defined in the YAML configuration.

    Example

    Example 1:

    Here's an example of how you can define, reference, and supply variables in your workflow configuration:

    vars:
    ORG: "example.org"
    OUTPUT_DIR: "results"

    modules:
    - name: example-task
    cmds:
    - echo "Organization {{ORG}}"
    - echo "Output directory {{OUTPUT_DIR}}"

    When executing the workflow, you can provide values for ORG and OUTPUT_DIR via the command line like this:

    rayder -w path/to/workflow.yaml ORG=custom_org OUTPUT_DIR=custom_results_dir

    This will override the default values and use the provided values for these variables.

    Example 2:

    Here's an example workflow configuration tailored for reverse whois recon and processing the root domains into subdomains, resolving them and checking which ones are alive:

    vars:
    ORG: "Acme, Inc"
    OUTPUT_DIR: "results-dir"

    parallel: false
    modules:
    - name: reverse-whois
    silent: false
    cmds:
    - mkdir -p {{OUTPUT_DIR}}
    - revwhoix -k "{{ORG}}" > {{OUTPUT_DIR}}/root-domains.txt

    - name: finding-subdomains
    cmds:
    - xargs -I {} -a {{OUTPUT_DIR}}/root-domains.txt echo "subfinder -d {} -o {}.out" | quaithe -workers 30
    silent: false

    - name: cleaning-subdomains
    cmds:
    - cat *.out > {{OUTPUT_DIR}}/root-subdomains.txt
    - rm *.out
    silent: true

    - name: resolving-subdomains
    cmds:
    - cat {{OUTPUT_DIR}}/root-subdomains.txt | dnsx -silent -threads 100 -o {{OUTPUT_DIR}}/resolved-subdomains.txt
    silent: false

    - name: checking-alive-subdomains
    cmds:
    - cat {{OUTPUT_DIR}}/resolved-subdomains.txt | httpx -silent -threads 100 0 -o {{OUTPUT_DIR}}/alive-subdomains.txt
    silent: false

    To execute the above workflow, run the following command:

    rayder -w path/to/reverse-whois.yaml ORG="Yelp, Inc" OUTPUT_DIR=results

    Parallel Execution

    The parallel field in the workflow configuration determines whether modules should be executed in parallel or sequentially. Setting parallel to true allows modules to run concurrently, making it suitable for modules with no dependencies. When set to false, modules will execute one after another.

    Workflows

    Explore a collection of sample workflows and examples in the Rayder workflows repository. Stay tuned for more additions!

    Inspiration

    Inspiration of this project comes from Awesome taskfile project.



    RansomwareSim - A Simulated Ransomware

    By: Zion3R

    Overview

    RansomwareSim is a simulated ransomware application developed for educational and training purposes. It is designed to demonstrate how ransomware encrypts files on a system and communicates with a command-and-control server. This tool is strictly for educational use and should not be used for malicious purposes.

    Features

    • Encrypts specified file types within a target directory.
    • Changes the desktop wallpaper (Windows only).
    • Creates&Delete a README file on the desktop with a simulated ransom note.
    • Simulates communication with a command-and-control server to send system data and receive a decryption key.
    • Decrypts files after receiving the correct key.

    Usage

    Important: This tool should only be used in controlled environments where all participants have given consent. Do not use this tool on any system without explicit permission. For more, read SECURE

    Requirements

    • Python 3.x
    • cryptography
    • colorama

    Installation

    1. Clone the repository:

      git clone https://github.com/HalilDeniz/RansomwareSim.git
    2. Navigate to the project directory:

      cd RansomwareSim
    3. Install the required dependencies:

      pip install -r requirements.txt

    ο“– My Book

    Running the Control Server

    1. Open controlpanel.py.
    2. Start the server by running controlpanel.py.
    3. The server will listen for connections from RansomwareSim and the Decoder.

    Running the Simulator

    1. Navigate to the directory containing RansomwareSim.
    2. Modify the main function in encoder.py to specify the target directory and other parameters.
    3. Run encoder.py to start the encryption process.
    4. Follow the instructions displayed on the console.

    Running the Decoder

    1. Run decoder.py after the files have been encrypted.
    2. Follow the prompts to input the decryption key.

    Disclaimer

    RansomwareSim is developed for educational purposes only. The creators of RansomwareSim are not responsible for any misuse of this tool. This tool should not be used in any unauthorized or illegal manner. Always ensure ethical and legal use of this tool.

    Contributing

    Contributions, suggestions, and feedback are welcome. Please create an issue or pull request for any contributions.

    1. Fork the repository.
    2. Create a new branch for your feature or bug fix.
    3. Make your changes and commit them.
    4. Push your changes to your forked repository.
    5. Open a pull request in the main repository.

    Contact

    For any inquiries or further information, you can reach me through the following channels:



    T3SF - Technical Tabletop Exercises Simulation Framework

    By: Zion3R


    T3SF is a framework that offers a modular structure for the orchestration of events based on a master scenario events list (MSEL) together with a set of rules defined for each exercise (optional) and a configuration that allows defining the parameters of the corresponding platform. The main module performs the communication with the specific module (Discord, Slack, Telegram, etc.) that allows the events to present the events in the input channels as injects for each platform. In addition, the framework supports different use cases: "single organization, multiple areas", "multiple organization, single area" and "multiple organization, multiple areas".


    Getting Things Ready

    To use the framework with your desired platform, whether it's Slack or Discord, you will need to install the required modules for that platform. But don't worry, installing these modules is easy and straightforward.

    To do this, you can follow this simple step-by-step guide, or if you're already comfortable installing packages with pip, you can skip to the last step!

    # Python 3.6+ required
    python -m venv .venv # We will create a python virtual environment
    source .venv/bin/activate # Let's get inside it

    pip install -U pip # Upgrade pip

    Once you have created a Python virtual environment and activated it, you can install the T3SF framework for your desired platform by running the following command:

    pip install "T3SF[Discord]"  # Install the framework to work with Discord

    or

    pip install "T3SF[Slack]"  # Install the framework to work with Slack

    This will install the T3SF framework along with the required dependencies for your chosen platform. Once the installation is complete, you can start using the framework with your platform of choice.

    We strongly recommend following the platform-specific guidance within our Read The Docs! Here are the links:

    Usage

    We created this framework to simplify all your work!

    Using Docker

    Supported Tags

    • slack β†’ This image has all the requirements to perform an exercise in Slack.
    • discord β†’ This image has all the requirements to perform an exercise in Discord.

    Using it with Slack

    $ docker run --rm -t --env-file .env -v $(pwd)/MSEL.json:/app/MSEL.json base4sec/t3sf:slack

    Inside your .env file you have to provide the SLACK_BOT_TOKEN and SLACK_APP_TOKEN tokens. Read more about it here.

    There is another environment variable to set, MSEL_PATH. This variable tells the framework in which path the MSEL is located. By default, the container path is /app/MSEL.json. If you change the mount location of the volume then also change the variable.

    Using it with Discord

    $ docker run --rm -t --env-file .env -v $(pwd)/MSEL.json:/app/MSEL.json base4sec/t3sf:discord

    Inside your .env file you have to provide the DISCORD_TOKEN token. Read more about it here.

    There is another environment variable to set, MSEL_PATH. This variable tells the framework in which path the MSEL is located. By default, the container path is /app/MSEL.json. If you change the mount location of the volume then also change the variable.


    Once you have everything ready, use our template for the main.py, or modify the following code:

    Here is an example if you want to run the framework with the Discord bot and a GUI.

    from T3SF import T3SF
    import asyncio

    async def main():
    await T3SF.start(MSEL="MSEL_TTX.json", platform="Discord", gui=True)

    if __name__ == '__main__':
    asyncio.run(main())

    Or if you prefer to run the framework without GUI and with Slack instead, you can modify the arguments, and that's it!

    Yes, that simple!

    await T3SF.start(MSEL="MSEL_TTX.json", platform="Slack", gui=False)

    If you need more help, you can always check our documentation here!



    Arsenal - Just A Quick Inventory And Launcher For Hacking Programs

    By: Zion3R


    Arsenal is just a quick inventory, reminder and launcher for pentest commands.
    This project written by pentesters for pentesters simplify the use of all the hard-to-remember commands



    In arsenal you can search for a command, select one and it's prefilled directly in your terminal. This functionality is independent of the shell used. Indeed arsenal emulates real user input (with TTY arguments and IOCTL) so arsenal works with all shells and your commands will be in the history.

    You have to enter arguments if needed, but arsenal supports global variables.
    For example, during a pentest we can set the variable ip to prefill all commands using an ip with the right one.

    To do that you just have to enter the following command in arsenal:

    >set ip=10.10.10.10

    Authors:

    • Guillaume Muh
    • mayfly

    This project is inspired by navi (https://github.com/denisidoro/navi) because the original version was in bash and too hard to understand to add features

    Arsenal new features

    • New colors
    • Add tmux new pane support (with -t)
    • Add default values in cheatsheets commands with <argument|default_value>
    • Support description inside cheatsheets
    • New categories and Tags
    • New cheatsheets
    • Add yml support (thx @0xswitch )
    • Add fzf support with ctrl+t (thx @mgp25)

    Install & Launch

    • with pip :
    python3 -m pip install arsenal-cli
    • run (we also advice you to add this alias : alias a='arsenal')
    arsenal
    • manually:
    git clone https://github.com/Orange-Cyberdefense/arsenal.git
    cd arsenal
    python3 -m pip install -r requirements.txt
    ./run

    Inside your .bashrc or .zshrc add the path to run to help you do that you could launch the addalias.sh script

    ./addalias.sh
    • Also if you are an Arch user you can install from the AUR:
    git clone https://aur.archlinux.org/arsenal.git
    cd arsenal
    makepkg -si
    • Or with an AUR helper like yay:
    yay -S arsenal

    Launch in tmux mode

    ./run -t #Β if you launch arsenal in a tmux window with one pane, it will split the window and send the command to the otherpane without quitting arsenal
    #Β if the window is already splited the command will be send to the other pane without quitting arsenal
    ./run -t -e # just like the -t mode but with direct execution in the other pane without quitting arsenal

    Add external cheatsheets

    You could add your own cheatsheets insode the my_cheats folder or in the ~/.cheats folder.

    You could also add additional paths to the file <arsenal_home>/arsenal/modules/config.py, arsenal reads .md (MarkDown) and .rst (RestructuredText).

    Cheatsheets examples are in <arsenal_home>/cheats: README.md and README.rst

    Troubleshooting

    If you got on error on color init try :

    export TERM='xterm-256color'

    --

    If you have the following exception when running Arsenal:

    ImportError: cannot import name 'FullLoader'

    First, check that requirements are installed:

    pip install -r requirements.txt

    If the exception is still there:

    pip install -U PyYAML

    Mindmap

    https://orange-cyberdefense.github.io/ocd-mindmaps/img/pentest_ad_dark_2022_11.svg

    • AD mindmap black versionΒ 

    • Exchange Mindmap (thx to @snovvcrash)Β 

    • Active directory ACE mindmapΒ 



    TODO cheatsheets

    reverse shell

    • msfvenom
    • php
    • python
    • perl
    • powershell
    • java
    • ruby

    whitebox analysis grep regex

    • php
    • nodejs
    • hash

    Tools

    smb

    • enum4linux
    • smbmap
    • smbget
    • rpcclient
    • rpcinfo
    • nbtscan
    • impacket

    kerberos & AD

    • impacket
    • bloodhound
    • rubeus
    • powerview
    • shadow credentials attack
    • samaccountname attack

    MITM

    • mitm6
    • responder

    Unserialize

    • ysoserial
    • ysoserial.net

    bruteforce & pass cracking

    • hydra
    • hashcat
    • john

    scan

    • nmap
    • eyewitness
    • gowitness

    fuzz

    • gobuster
    • ffuf
    • wfuzz

    DNS

    • dig
    • dnsrecon
    • dnsenum
    • sublist3r

    rpc

    • rpcbind

    netbios-ssn

    • snmpwalk
    • snmp-check
    • onesixtyone

    sql

    • sqlmap

    oracle

    • oscanner
    • sqlplus
    • tnscmd10g

    mysql

    • mysql

    nfs

    • showmount

    rdp

    • xfreerdp
    • rdesktop
    • ncrack

    mssql

    • sqsh

    winrm

    • evilwinrm

    redis

    • redis-cli

    postgres

    • psql
    • pgdump

    vnc

    • vncviewer

    x11

    • xspy
    • xwd
    • xwininfo

    ldap

    • ldapsearch

    https

    • sslscan

    web

    • burp
    • nikto
    • tplmap

    app web

    • drupwn
    • wpscan
    • nuclei


    DoSinator - A Powerful Denial Of Service (DoS) Testing Tool

    By: Zion3R


    DoSinator is a versatile Denial of Service (DoS) testing tool developed in Python. It empowers security professionals and researchers to simulate various types of DoS attacks, allowing them to assess the resilience of networks, systems, and applications against potential cyber threats.Β 


    Features

    • Multiple Attack Modes: DoSinator supports SYN Flood, UDP Flood, and ICMP Flood attack modes, allowing you to simulate various types of DoS attacks.
    • Customizable Parameters: Adjust the packet size, attack rate, and duration to fine-tune the intensity and duration of the attack.
    • IP Spoofing: Enable IP spoofing to mask the source IP address and enhance anonymity during the attack.
    • Multithreaded Packet Sending: Utilize multiple threads for simultaneous packet sending, maximizing the attack speed and efficiency.

    Requirements

    • Python 3.x
    • scapy
    • argparse

    Installation

    1. Clone the repository:

      git clone https://github.com/HalilDeniz/DoSinator.git
    2. Navigate to the project directory:

      cd DoSinator
    3. Install the required dependencies:

      pip install -r requirements.txt

    Usage

    packets to send (default: 500). -ps PACKET_SIZE, --packet_size PACKET_SIZE Packet size in bytes (default: 64). -ar ATTACK_RATE, --attack_rate ATTACK_RATE Attack rate in packets per second (default: 10). -d DURATION, --duration DURATION Duration of the attack in seconds. -am {syn,udp,icmp,http,dns}, --attack-mode {syn,udp,icmp,http,dns} Attack mode (default: syn). -sp SPOOF_IP, --spoof-ip SPOOF_IP Spoof IP address. --data DATA Custom data string to send." dir="auto">
    usage: dos_tool.py [-h] -t TARGET -p PORT [-np NUM_PACKETS] [-ps PACKET_SIZE]
    [-ar ATTACK_RATE] [-d DURATION] [-am {syn,udp,icmp,http,dns}]
    [-sp SPOOF_IP] [--data DATA]

    optional arguments:
    -h, --help Show this help message and exit.
    -t TARGET, --target TARGET
    Target IP address.
    -p PORT, --port PORT Target port number.
    -np NUM_PACKETS, --num_packets NUM_PACKETS
    Number of packets to send (default: 500).
    -ps PACKET_SIZE, --packet_size PACKET_SIZE
    Packet size in bytes (default: 64).
    -ar ATTACK_RATE, --attack_rate ATTACK_RATE
    Attack rate in packets per second (default: 10).
    -d DURATION, --duration DURATION
    Duration of the attack in seconds.
    -am {syn,udp,icmp,htt p,dns}, --attack-mode {syn,udp,icmp,http,dns}
    Attack mode (default: syn).
    -sp SPOOF_IP, --spoof-ip SPOOF_IP
    Spoof IP address.
    --data DATA Custom data string to send.
    • target_ip: IP address of the target system.
    • target_port: Port number of the target service.
    • num_packets: Number of packets to send (default: 500).
    • packet_size: Size of each packet in bytes (default: 64).
    • attack_rate: Attack rate in packets/second (default: 10).
    • duration: Duration of the attack in seconds.
    • attack_mode: Attack mode: syn, udp, icmp, http (default: syn).
    • spoof_ip: Spoof IP address (default: None).
    • data: Custom data string to send.

    Disclaimer

    The usage of the Dosinator tool for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state, and federal laws. The author assumes no liability and is not responsible for any misuse or damage caused by this program.

    By using Dosinator, you agree to use this tool for educational and ethical purposes only. The author is not responsible for any actions or consequences resulting from misuse of this tool.

    Please ensure that you have the necessary permissions to conduct any form of testing on a target network. Use this tool at your own risk.

    Contributing

    Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or submit a pull request.

    Contact

    If you have any questions, comments, or suggestions about Dosinator, please feel free to contact me:



    Upload_Bypass - File Upload Restrictions Bypass, By Using Different Bug Bounty Techniques Covered In Hacktricks

    By: Zion3R


    Upload_Bypass is a powerful tool designed to assist Pentesters and Bug Hunters in testing file upload mechanisms. It leverages various bug bounty techniques to simplify the process of identifying and exploiting vulnerabilities, ensuring thorough assessments of web applications.

    • Simplifies the identification and exploitation of vulnerabilities in file upload mechanisms.
    • Leverages bug bounty techniques to maximize testing effectiveness.
    • Enables thorough assessments of web applications.
    • Provides an intuitive and user-friendly interface.
    • Enhances security assessments and helps protect critical systems.

    New PoC Video:

    Disclaimer

    Please note that the use of Upload_Bypass and any actions taken with it are solely at your own risk. The tool is provided for educational and testing purposes only. The developer of Upload_Bypass is not responsible for any misuse, damage, or illegal activities caused by its usage.

    While Upload_Bypass aims to assist Pentesters and Bug Hunters in testing file upload mechanisms, it is essential to obtain proper authorization and adhere to applicable laws and regulations before performing any security assessments. Always ensure that you have the necessary permissions from the relevant stakeholders before conducting any testing activities.

    The results and findings obtained from using Upload_Bypass should be communicated responsibly and in accordance with established disclosure processes. It is crucial to respect the privacy and integrity of the tested systems and refrain from causing harm or disruption.

    By using Upload_Bypass, you acknowledge that the developer cannot be held liable for any consequences resulting from its use. Use the tool responsibly and ethically to promote the security and integrity of web applications.

    Features

    1. Webshell mode: The tool will try to upload a Webshell with a random name, and if the user specifies the location of the uploaded file, the tool enters an "Interactive shell".
    2. Eicar mode: The tool will try to upload an Eicar(Anti-Malware test file) instead of a Webshell, and if the user specifies the location of the uploaded file, the tool will check if the file uploaded successfully and exists in the system in order to determine if an Anti-Malware is present on the system.
    3. A directory with the name of the tested host will be created in the Tool's directory upon success, with the results saved in Excel and Text files.

    Download:

    Download the latest version from Releases page.

    Installation:

    pip install -r requirements.txt

    Limitations:

    The tool will not function properly if the file upload mechanism includes CAPTCHA implementation.

    Perhaps in the future the tool will include an OCR.

    Usage:

    Attension

    The Tool is compatible exclusively with output file requests generated by Burp Suite.

    Before saving the Burp file, replace the file content with the string *content* and filename.ext with the string *filename* and Content-Type header with *mimetype*(only if the tool is not able to recognize it automatically).

    How a request should look before the changes:


    How it should look after the changes:


    If the tool fails to recognize the mime type automatically, you can add *mimetype* in the parameter's value of the Content-Type header.

    Options: -h, --help

     show this help message and exit

    -b BURP_FILE, --burp-file BURP_FILE

     Required - Read from a Burp Suite file
    Usage: -b / --burp-file ~/Desktop/output

    -s SUCCESS_MESSAGE, --success SUCCESS_MESSAGE

     Required if -f is not set - Provide the success message when a file is uploaded
    Usage: -s /--success 'File uploaded successfully.'

    -f FAILURE_MESSAGE, --failure FAILURE_MESSAGE

     Required if -s is not set - Provide a failure message when a file is uploaded
    Usage: -f /--failure 'File is not allowed!'

    -e FILE_EXTENSION, --extension FILE_EXTENSION

     Required - Provide server backend extension
    Usage: -e / --extension php (Supported extensions: php,asp,jsp,perl,coldfusion)

    -a ALLOWED_EXTENSIONS, --allowed ALLOWED_EXTENSIONS

     Required - Provide allowed extensions to be uploaded
    Usage: -a /--allowed jpeg, png, zip, etc'

    -l WEBSHELL_LOCATION, --location WEBSHELL_LOCATION

      Provide a remote path where the WebShell will be uploaded (won't work if the file will be uploaded with a UUID).
    Usage: -l / --location /uploads/

    -rl NUMBER, --rate-limit NUMBER

      Set rate-limiting with milliseconds between each request.
    Usage: -r / --rate-limit 700

    -p PROXY_NUM, --proxy PROXY_NUM

      Channel the HTTP requests via proxy client (i.e Burp Suite).
    Usage: -p / --proxy http://127.0.0.1:8080

    -S, --ssl

      If set, the tool will not validate TLS/SSL certificate.
    Usage: -S / --ssl

    -c, --continue

      If set, the brute force will continue even if one of the methods gets a hit!
    Usage: -C /--continue

    -E, --eicar

      If set, an Eicar file(Anti Malware Testfile) will be uploaded only. WebShells will not be uploaded (Suitable for real environments).
    Usage: -E / --eicar

    -v, --verbose

      If set, details about the test will be printed on the screen
    Usage: -v / --verbose

    -r, --response

      If set, HTTP response will be printed on the screen
    Usage: -r / --response

    --version

      Print the current version of the tool.     

    --update

      Checks for new updates. If there is a new update, it will be downloaded and updated automatically.     

    Examples

    Running the tool with Eicar and Bruteforce mode along with a verbose output

     python upload_bypass.py -b ~/Desktop/burp_output -s 'file upload successfully!' -e php -a jpeg --response -v --eicar --continue

    Running the tool with Webshell mode along with a verbose output

     python upload_bypass.py -b ~/Desktop/burp_output -s 'file upload successfully!' -e asp -a zip -v

    Running the tool with a Proxy client

     python upload_bypass.py -b ~/Desktop/burp_output -s 'file upload successfully!' -e jsp -a png -v --proxy http://127.0.0.1:8080


    ❌