FreshRSS

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

Hfinger - Fingerprinting HTTP Requests

By: Zion3R


Tool for Fingerprinting HTTP requests of malware. Based on Tshark and written in Python3. Working prototype stage :-)

Its main objective is to provide unique representations (fingerprints) of malware requests, which help in their identification. Unique means here that each fingerprint should be seen only in one particular malware family, yet one family can have multiple fingerprints. Hfinger represents the request in a shorter form than printing the whole request, but still human interpretable.

Hfinger can be used in manual malware analysis but also in sandbox systems or SIEMs. The generated fingerprints are useful for grouping requests, pinpointing requests to particular malware families, identifying different operations of one family, or discovering unknown malicious requests omitted by other security systems but which share fingerprint.

An academic paper accompanies work on this tool, describing, for example, the motivation of design choices, and the evaluation of the tool compared to p0f, FATT, and Mercury.


    The idea

    The basic assumption of this project is that HTTP requests of different malware families are more or less unique, so they can be fingerprinted to provide some sort of identification. Hfinger retains information about the structure and values of some headers to provide means for further analysis. For example, grouping of similar requests - at this moment, it is still a work in progress.

    After analysis of malware's HTTP requests and headers, we have identified some parts of requests as being most distinctive. These include: * Request method * Protocol version * Header order * Popular headers' values * Payload length, entropy, and presence of non-ASCII characters

    Additionally, some standard features of the request URL were also considered. All these parts were translated into a set of features, described in details here.

    The above features are translated into varying length representation, which is the actual fingerprint. Depending on report mode, different features are used to fingerprint requests. More information on these modes is presented below. The feature selection process will be described in the forthcoming academic paper.

    Installation

    Minimum requirements needed before installation: * Python >= 3.3, * Tshark >= 2.2.0.

    Installation available from PyPI:

    pip install hfinger

    Hfinger has been tested on Xubuntu 22.04 LTS with tshark package in version 3.6.2, but should work with older versions like 2.6.10 on Xubuntu 18.04 or 3.2.3 on Xubuntu 20.04.

    Please note that as with any PoC, you should run Hfinger in a separated environment, at least with Python virtual environment. Its setup is not covered here, but you can try this tutorial.

    Usage

    After installation, you can call the tool directly from a command line with hfinger or as a Python module with python -m hfinger.

    For example:

    foo@bar:~$ hfinger -f /tmp/test.pcap
    [{"epoch_time": "1614098832.205385000", "ip_src": "127.0.0.1", "ip_dst": "127.0.0.1", "port_src": "53664", "port_dst": "8080", "fingerprint": "2|3|1|php|0.6|PO|1|us-ag,ac,ac-en,ho,co,co-ty,co-le|us-ag:f452d7a9/ac:as-as/ac-en:id/co:Ke-Al/co-ty:te-pl|A|4|1.4"}]

    Help can be displayed with short -h or long --help switches:

    usage: hfinger [-h] (-f FILE | -d DIR) [-o output_path] [-m {0,1,2,3,4}] [-v]
    [-l LOGFILE]

    Hfinger - fingerprinting malware HTTP requests stored in pcap files

    optional arguments:
    -h, --help show this help message and exit
    -f FILE, --file FILE Read a single pcap file
    -d DIR, --directory DIR
    Read pcap files from the directory DIR
    -o output_path, --output-path output_path
    Path to the output directory
    -m {0,1,2,3,4}, --mode {0,1,2,3,4}
    Fingerprint report mode.
    0 - similar number of collisions and fingerprints as mode 2, but using fewer features,
    1 - representation of all designed features, but a little more collisions than modes 0, 2, and 4,
    2 - optimal (the default mode),
    3 - the lowest number of generated fingerprints, but the highest number of collisions,
    4 - the highest fingerprint entropy, but slightly more fingerprints than modes 0-2
    -v, --verbose Report information about non-standard values in the request
    (e.g., non-ASCII characters, no CRLF tags, values not present in the configuration list).
    Without --logfile (-l) will print to the standard error.
    -l LOGFILE, --logfile LOGFILE
    Output logfile in the verbose mode. Implies -v or --verbose switch.

    You must provide a path to a pcap file (-f), or a directory (-d) with pcap files. The output is in JSON format. It will be printed to standard output or to the provided directory (-o) using the name of the source file. For example, output of the command:

    hfinger -f example.pcap -o /tmp/pcap

    will be saved to:

    /tmp/pcap/example.pcap.json

    Report mode -m/--mode can be used to change the default report mode by providing an integer in the range 0-4. The modes differ on represented request features or rounding modes. The default mode (2) was chosen by us to represent all features that are usually used during requests' analysis, but it also offers low number of collisions and generated fingerprints. With other modes, you can achieve different goals. For example, in mode 3 you get a lower number of generated fingerprints but a higher chance of a collision between malware families. If you are unsure, you don't have to change anything. More information on report modes is here.

    Beginning with version 0.2.1 Hfinger is less verbose. You should use -v/--verbose if you want to receive information about encountered non-standard values of headers, non-ASCII characters in the non-payload part of the request, lack of CRLF tags (\r\n\r\n), and other problems with analyzed requests that are not application errors. When any such issues are encountered in the verbose mode, they will be printed to the standard error output. You can also save the log to a defined location using -l/--log switch (it implies -v/--verbose). The log data will be appended to the log file.

    Using hfinger in a Python application

    Beginning with version 0.2.0, Hfinger supports importing to other Python applications. To use it in your app simply import hfinger_analyze function from hfinger.analysis and call it with a path to the pcap file and reporting mode. The returned result is a list of dicts with fingerprinting results.

    For example:

    from hfinger.analysis import hfinger_analyze

    pcap_path = "SPECIFY_PCAP_PATH_HERE"
    reporting_mode = 4
    print(hfinger_analyze(pcap_path, reporting_mode))

    Beginning with version 0.2.1 Hfinger uses logging module for logging information about encountered non-standard values of headers, non-ASCII characters in the non-payload part of the request, lack of CRLF tags (\r\n\r\n), and other problems with analyzed requests that are not application errors. Hfinger creates its own logger using name hfinger, but without prior configuration log information in practice is discarded. If you want to receive this log information, before calling hfinger_analyze, you should configure hfinger logger, set log level to logging.INFO, configure log handler up to your needs, add it to the logger. More information is available in the hfinger_analyze function docstring.

    Fingerprint creation

    A fingerprint is based on features extracted from a request. Usage of particular features from the full list depends on the chosen report mode from a predefined list (more information on report modes is here). The figure below represents the creation of an exemplary fingerprint in the default report mode.

    Three parts of the request are analyzed to extract information: URI, headers' structure (including method and protocol version), and payload. Particular features of the fingerprint are separated using | (pipe). The final fingerprint generated for the POST request from the example is:

    2|3|1|php|0.6|PO|1|us-ag,ac,ac-en,ho,co,co-ty,co-le|us-ag:f452d7a9/ac:as-as/ac-en:id/co:Ke-Al/co-ty:te-pl|A|4|1.4

    The creation of features is described below in the order of appearance in the fingerprint.

    Firstly, URI features are extracted: * URI length represented as a logarithm base 10 of the length, rounded to an integer, (in the example URI is 43 characters long, so log10(43)β‰ˆ2), * number of directories, (in the example there are 3 directories), * average directory length, represented as a logarithm with base 10 of the actual average length of the directory, rounded to an integer, (in the example there are three directories with total length of 20 characters (6+6+8), so log10(20/3)β‰ˆ1), * extension of the requested file, but only if it is on a list of known extensions in hfinger/configs/extensions.txt, * average value length represented as a logarithm with base 10 of the actual average value length, rounded to one decimal point, (in the example two values have the same length of 4 characters, what is obviously equal to 4 characters, and log10(4)β‰ˆ0.6).

    Secondly, header structure features are analyzed: * request method encoded as first two letters of the method (PO), * protocol version encoded as an integer (1 for version 1.1, 0 for version 1.0, and 9 for version 0.9), * order of the headers, * and popular headers and their values.

    To represent order of the headers in the request, each header's name is encoded according to the schema in hfinger/configs/headerslow.json, for example, User-Agent header is encoded as us-ag. Encoded names are separated by ,. If the header name does not start with an upper case letter (or any of its parts when analyzing compound headers such as Accept-Encoding), then encoded representation is prefixed with !. If the header name is not on the list of the known headers, it is hashed using FNV1a hash, and the hash is used as encoding.

    When analyzing popular headers, the request is checked if they appear in it. These headers are: * Connection * Accept-Encoding * Content-Encoding * Cache-Control * TE * Accept-Charset * Content-Type * Accept * Accept-Language * User-Agent

    When the header is found in the request, its value is checked against a table of typical values to create pairs of header_name_representation:value_representation. The name of the header is encoded according to the schema in hfinger/configs/headerslow.json (as presented before), and the value is encoded according to schema stored in hfinger/configs directory or configs.py file, depending on the header. In the above example Accept is encoded as ac and its value */* as as-as (asterisk-asterisk), giving ac:as-as. The pairs are inserted into fingerprint in order of appearance in the request and are delimited using /. If the header value cannot be found in the encoding table, it is hashed using the FNV1a hash.
    If the header value is composed of multiple values, they are tokenized to provide a list of values delimited with ,, for example, Accept: */*, text/* would give ac:as-as,te-as. However, at this point of development, if the header value contains a "quality value" tag (q=), then the whole value is encoded with its FNV1a hash. Finally, values of User-Agent and Accept-Language headers are directly encoded using their FNV1a hashes.

    Finally, in the payload features: * presence of non-ASCII characters, represented with the letter N, and with A otherwise, * payload's Shannon entropy, rounded to an integer, * and payload length, represented as a logarithm with base 10 of the actual payload length, rounded to one decimal point.

    Report modes

    Hfinger operates in five report modes, which differ in features represented in the fingerprint, thus information extracted from requests. These are (with the number used in the tool configuration): * mode 0 - producing a similar number of collisions and fingerprints as mode 2, but using fewer features, * mode 1 - representing all designed features, but producing a little more collisions than modes 0, 2, and 4, * mode 2 - optimal (the default mode), representing all features which are usually used during requests' analysis, but also offering a low number of collisions and generated fingerprints, * mode 3 - producing the lowest number of generated fingerprints from all modes, but achieving the highest number of collisions, * mode 4 - offering the highest fingerprint entropy, but also generating slightly more fingerprints than modes 0-2.

    The modes were chosen in order to optimize Hfinger's capabilities to uniquely identify malware families versus the number of generated fingerprints. Modes 0, 2, and 4 offer a similar number of collisions between malware families, however, mode 4 generates a little more fingerprints than the other two. Mode 2 represents more request features than mode 0 with a comparable number of generated fingerprints and collisions. Mode 1 is the only one representing all designed features, but it increases the number of collisions by almost two times comparing to modes 0, 1, and 4. Mode 3 produces at least two times fewer fingerprints than other modes, but it introduces about nine times more collisions. Description of all designed features is here.

    The modes consist of features (in the order of appearance in the fingerprint): * mode 0: * number of directories, * average directory length represented as an integer, * extension of the requested file, * average value length represented as a float, * order of headers, * popular headers and their values, * payload length represented as a float. * mode 1: * URI length represented as an integer, * number of directories, * average directory length represented as an integer, * extension of the requested file, * variable length represented as an integer, * number of variables, * average value length represented as an integer, * request method, * version of protocol, * order of headers, * popular headers and their values, * presence of non-ASCII characters, * payload entropy represented as an integer, * payload length represented as an integer. * mode 2: * URI length represented as an integer, * number of directories, * average directory length represented as an integer, * extension of the requested file, * average value length represented as a float, * request method, * version of protocol, * order of headers, * popular headers and their values, * presence of non-ASCII characters, * payload entropy represented as an integer, * payload length represented as a float. * mode 3: * URI length represented as an integer, * average directory length represented as an integer, * extension of the requested file, * average value length represented as an integer, * order of headers. * mode 4: * URI length represented as a float, * number of directories, * average directory length represented as a float, * extension of the requested file, * variable length represented as a float, * average value length represented as a float, * request method, * version of protocol, * order of headers, * popular headers and their values, * presence of non-ASCII characters, * payload entropy represented as a float, * payload length represented as a float.



    JA4+ - Suite Of Network Fingerprinting Standards

    By: Zion3R


    JA4+ is a suite of network FingerprintingΒ methods that are easy to use and easy to share. These methods are both human and machine readable to facilitate more effective threat-hunting and analysis. The use-cases for these fingerprints include scanning for threat actors, malware detection, session hijacking prevention, compliance automation, location tracking, DDoS detection, grouping of threat actors, reverse shell detection, and many more.

    Please read our blogs for details on how JA4+ works, why it works, and examples of what can be detected/prevented with it:
    JA4+ Network Fingerprinting (JA4/S/H/L/X/SSH)
    JA4T: TCP Fingerprinting (JA4T/TS/TScan)


    To understand how to read JA4+ fingerprints, see Technical Details

    This repo includes JA4+ Python, Rust, Zeek and C, as a Wireshark plugin.

    JA4/JA4+ support is being added to:
    GreyNoise
    Hunt
    Driftnet
    DarkSail
    Arkime
    GoLang (JA4X)
    Suricata
    Wireshark
    Zeek
    nzyme
    Netresec's CapLoader
    NetworkMiner">Netresec's NetworkMiner
    NGINX
    F5 BIG-IP
    nfdump
    ntop's ntopng
    ntop's nDPI
    Team Cymru
    NetQuest
    Censys
    Exploit.org's Netryx
    cloudflare.com/bots/concepts/ja3-ja4-fingerprint/">Cloudflare
    fastly
    with more to be announced...

    Examples

    Application JA4+ Fingerprints
    Chrome JA4=t13d1516h2_8daaf6152771_02713d6af862 (TCP)
    JA4=q13d0312h3_55b375c5d22e_06cda9e17597 (QUIC)
    JA4=t13d1517h2_8daaf6152771_b0da82dd1658 (pre-shared key)
    JA4=t13d1517h2_8daaf6152771_b1ff8ab2d16f (no key)
    IcedID Malware Dropper JA4H=ge11cn020000_9ed1ff1f7b03_cd8dafe26982
    IcedID Malware JA4=t13d201100_2b729b4bf6f3_9e7b989ebec8
    JA4S=t120300_c030_5e2616a54c73
    Sliver Malware JA4=t13d190900_9dc949149365_97f8aa674fd9
    JA4S=t130200_1301_a56c5b993250
    JA4X=000000000000_4f24da86fad6_bf0f0589fc03
    JA4X=000000000000_7c32fa18c13e_bf0f0589fc03
    Cobalt Strike JA4H=ge11cn060000_4e59edc1297a_4da5efaf0cbd
    JA4X=2166164053c1_2166164053c1_30d204a01551
    SoftEther VPN JA4=t13d880900_fcb5b95cb75a_b0d3b4ac2a14 (client)
    JA4S=t130200_1302_a56c5b993250
    JA4X=d55f458d5a6c_d55f458d5a6c_0fc8c171b6ae
    Qakbot JA4X=2bab15409345_af684594efb4_000000000000
    Pikabot JA4X=1a59268f55e5_1a59268f55e5_795797892f9c
    Darkgate JA4H=po10nn060000_cdb958d032b0
    LummaC2 JA4H=po11nn050000_d253db9d024b
    Evilginx JA4=t13d191000_9dc949149365_e7c285222651
    Reverse SSH Shell JA4SSH=c76s76_c71s59_c0s70
    Windows 10 JA4T=64240_2-1-3-1-1-4_1460_8
    Epson Printer JA4TScan=28960_2-4-8-1-3_1460_3_1-4-8-16

    For more, see ja4plus-mapping.csv
    The mapping file is unlicensed and free to use. Feel free to do a pull request with any JA4+ data you find.

    Plugins

    Wireshark
    Zeek
    Arkime

    Binaries

    Recommended to have tshark version 4.0.6 or later for full functionality. See: https://pkgs.org/search/?q=tshark

    Download the latest JA4 binaries from: Releases.

    JA4+ on Ubuntu

    sudo apt install tshark
    ./ja4 [options] [pcap]

    JA4+ on Mac

    1) Install Wireshark https://www.wireshark.org/download.html which will install tshark 2) Add tshark to $PATH

    ln -s /Applications/Wireshark.app/Contents/MacOS/tshark /usr/local/bin/tshark
    ./ja4 [options] [pcap]

    JA4+ on Windows

    1) Install Wireshark for Windows from https://www.wireshark.org/download.html which will install tshark.exe
    tshark.exe is at the location where wireshark is installed, for example: C:\Program Files\Wireshark\thsark.exe
    2) Add the location of tshark to your "PATH" environment variable in Windows.
    (System properties > Environment Variables... > Edit Path)
    3) Open cmd, navigate the ja4 folder

    ja4 [options] [pcap]

    Database

    An official JA4+ database of fingerprints, associated applications and recommended detection logic is in the process of being built.

    In the meantime, see ja4plus-mapping.csv

    Feel free to do a pull request with any JA4+ data you find.

    JA4+ Details

    JA4+ is a set of simple yet powerful network fingerprints for multiple protocols that are both human and machine readable, facilitating improved threat-hunting and security analysis. If you are unfamiliar with network fingerprinting, I encourage you to read my blogs releasing JA3 here, JARM here, and this excellent blog by Fastly on the State of TLS Fingerprinting which outlines the history of the aforementioned along with their problems. JA4+ brings dedicated support, keeping the methods up-to-date as the industry changes.

    All JA4+ fingerprints have an a_b_c format, delimiting the different sections that make up the fingerprint. This allows for hunting and detection utilizing just ab or ac or c only. If one wanted to just do analysis on incoming cookies into their app, they would look at JA4H_c only. This new locality-preserving format facilitates deeper and richer analysis while remaining simple, easy to use, and allowing for extensibility.

    For example; GreyNoise is an internet listener that identifies internet scanners and is implementing JA4+ into their product. They have an actor who scans the internet with a constantly changing single TLS cipher. This generates a massive amount of completely different JA3 fingerprints but with JA4, only the b part of the JA4 fingerprint changes, parts a and c remain the same. As such, GreyNoise can track the actor by looking at the JA4_ac fingerprint (joining a+c, dropping b).

    Current methods and implementation details:
    | Full Name | Short Name | Description | |---|---|---| | JA4 | JA4 | TLS Client Fingerprinting
    | JA4Server | JA4S | TLS Server Response / Session Fingerprinting | JA4HTTP | JA4H | HTTP Client Fingerprinting | JA4Latency | JA4L | Latency Measurment / Light Distance | JA4X509 | JA4X | X509 TLS Certificate Fingerprinting | JA4SSH | JA4SSH | SSH Traffic Fingerprinting | JA4TCP | JA4T | TCP Client Fingerprinting | JA4TCPServer | JA4TS | TCP Server Response Fingerprinting | JA4TCPScan | JA4TScan | Active TCP Fingerprint Scanner

    The full name or short name can be used interchangeably. Additional JA4+ methods are in the works...

    To understand how to read JA4+ fingerprints, see Technical Details

    Licensing

    JA4: TLS Client Fingerprinting is open-source, BSD 3-Clause, same as JA3. FoxIO does not have patent claims and is not planning to pursue patent coverage for JA4 TLS Client Fingerprinting. This allows any company or tool currently utilizing JA3 to immediately upgrade to JA4 without delay.

    JA4S, JA4L, JA4H, JA4X, JA4SSH, JA4T, JA4TScan and all future additions, (collectively referred to as JA4+) are licensed under the FoxIO License 1.1. This license is permissive for most use cases, including for academic and internal business purposes, but is not permissive for monetization. If, for example, a company would like to use JA4+ internally to help secure their own company, that is permitted. If, for example, a vendor would like to sell JA4+ fingerprinting as part of their product offering, they would need to request an OEM license from us.

    All JA4+ methods are patent pending.
    JA4+ is a trademark of FoxIO

    JA4+ can and is being implemented into open source tools, see the License FAQ for details.

    This licensing allows us to provide JA4+ to the world in a way that is open and immediately usable, but also provides us with a way to fund continued support, research into new methods, and the development of the upcoming JA4 Database. We want everyone to have the ability to utilize JA4+ and are happy to work with vendors and open source projects to help make that happen.

    ja4plus-mapping.csv is not included in the above software licenses and is thereby a license-free file.

    Q&A

    Q: Why are you sorting the ciphers? Doesn't the ordering matter?
    A: It does but in our research we've found that applications and libraries choose a unique cipher list more than unique ordering. This also reduces the effectiveness of "cipher stunting," a tactic of randomizing cipher ordering to prevent JA3 detection.

    Q: Why are you sorting the extensions?
    A: Earlier in 2023, Google updated Chromium browsers to randomize their extension ordering. Much like cipher stunting, this was a tactic to prevent JA3 detection and "make the TLS ecosystem more robust to changes." Google was worried server implementers would assume the Chrome fingerprint would never change and end up building logic around it, which would cause issues whenever Google went to update Chrome.

    So I want to make this clear: JA4 fingerprints will change as application TLS libraries are updated, about once a year. Do not assume fingerprints will remain constant in an environment where applications are updated. In any case, sorting the extensions gets around this and adding in Signature Algorithms preserves uniqueness.

    Q: Doesn't TLS 1.3 make fingerprinting TLS clients harder?
    A: No, it makes it easier! Since TLS 1.3, clients have had a much larger set of extensions and even though TLS1.3 only supports a few ciphers, browsers and applications still support many more.

    JA4+ was created by:

    John Althouse, with feedback from:

    Josh Atkins
    Jeff Atkinson
    Joshua Alexander
    W.
    Joe Martin
    Ben Higgins
    Andrew Morris
    Chris Ueland
    Ben Schofield
    Matthias Vallentin
    Valeriy Vorotyntsev
    Timothy Noel
    Gary Lipsky
    And engineers working at GreyNoise, Hunt, Google, ExtraHop, F5, Driftnet and others.

    Contact John Althouse at john@foxio.io for licensing and questions.

    Copyright (c) 2024, FoxIO



    Above - Invisible Network Protocol Sniffer

    By: Zion3R


    Invisible protocol sniffer for finding vulnerabilities in the network. Designed for pentesters and security engineers.


    Above: Invisible network protocol sniffer
    Designed for pentesters and security engineers

    Author: Magama Bazarov, <caster@exploit.org>
    Pseudonym: Caster
    Version: 2.6
    Codename: Introvert

    Disclaimer

    All information contained in this repository is provided for educational and research purposes only. The author is not responsible for any illegal use of this tool.

    It is a specialized network security tool that helps both pentesters and security professionals.

    Mechanics

    Above is a invisible network sniffer for finding vulnerabilities in network equipment. It is based entirely on network traffic analysis, so it does not make any noise on the air. He's invisible. Completely based on the Scapy library.

    Above allows pentesters to automate the process of finding vulnerabilities in network hardware. Discovery protocols, dynamic routing, 802.1Q, ICS Protocols, FHRP, STP, LLMNR/NBT-NS, etc.

    Supported protocols

    Detects up to 27 protocols:

    MACSec (802.1X AE)
    EAPOL (Checking 802.1X versions)
    ARP (Passive ARP, Host Discovery)
    CDP (Cisco Discovery Protocol)
    DTP (Dynamic Trunking Protocol)
    LLDP (Link Layer Discovery Protocol)
    802.1Q Tags (VLAN)
    S7COMM (Siemens)
    OMRON
    TACACS+ (Terminal Access Controller Access Control System Plus)
    ModbusTCP
    STP (Spanning Tree Protocol)
    OSPF (Open Shortest Path First)
    EIGRP (Enhanced Interior Gateway Routing Protocol)
    BGP (Border Gateway Protocol)
    VRRP (Virtual Router Redundancy Protocol)
    HSRP (Host Standby Redundancy Protocol)
    GLBP (Gateway Load Balancing Protocol)
    IGMP (Internet Group Management Protocol)
    LLMNR (Link Local Multicast Name Resolution)
    NBT-NS (NetBIOS Name Service)
    MDNS (Multicast DNS)
    DHCP (Dynamic Host Configuration Protocol)
    DHCPv6 (Dynamic Host Configuration Protocol v6)
    ICMPv6 (Internet Control Message Protocol v6)
    SSDP (Simple Service Discovery Protocol)
    MNDP (MikroTik Neighbor Discovery Protocol)

    Operating Mechanism

    Above works in two modes:

    • Hot mode: Sniffing on your interface specifying a timer
    • Cold mode: Analyzing traffic dumps

    The tool is very simple in its operation and is driven by arguments:

    • Interface: Specifying the network interface on which sniffing will be performed
    • Timer: Time during which traffic analysis will be performed
    • Input: The tool takes an already prepared .pcap as input and looks for protocols in it
    • Output: Above will record the listened traffic to .pcap file, its name you specify yourself
    • Passive ARP: Detecting hosts in a segment using Passive ARP
    usage: above.py [-h] [--interface INTERFACE] [--timer TIMER] [--output OUTPUT] [--input INPUT] [--passive-arp]

    options:
    -h, --help show this help message and exit
    --interface INTERFACE
    Interface for traffic listening
    --timer TIMER Time in seconds to capture packets, if not set capture runs indefinitely
    --output OUTPUT File name where the traffic will be recorded
    --input INPUT File name of the traffic dump
    --passive-arp Passive ARP (Host Discovery)

    Information about protocols

    The information obtained will be useful not only to the pentester, but also to the security engineer, he will know what he needs to pay attention to.

    When Above detects a protocol, it outputs the necessary information to indicate the attack vector or security issue:

    • Impact: What kind of attack can be performed on this protocol;

    • Tools: What tool can be used to launch an attack;

    • Technical information: Required information for the pentester, sender MAC/IP addresses, FHRP group IDs, OSPF/EIGRP domains, etc.

    • Mitigation: Recommendations for fixing the security problems

    • Source/Destination Addresses: For protocols, Above displays information about the source and destination MAC addresses and IP addresses


    Installation

    Linux

    You can install Above directly from the Kali Linux repositories

    caster@kali:~$ sudo apt update && sudo apt install above

    Or...

    caster@kali:~$ sudo apt-get install python3-scapy python3-colorama python3-setuptools
    caster@kali:~$ git clone https://github.com/casterbyte/Above
    caster@kali:~$ cd Above/
    caster@kali:~/Above$ sudo python3 setup.py install

    macOS:

    # Install python3 first
    brew install python3
    # Then install required dependencies
    sudo pip3 install scapy colorama setuptools

    # Clone the repo
    git clone https://github.com/casterbyte/Above
    cd Above/
    sudo python3 setup.py install

    Don't forget to deactivate your firewall on macOS!

    Settings > Network > Firewall


    How to Use

    Hot mode

    Above requires root access for sniffing

    Above can be run with or without a timer:

    caster@kali:~$ sudo above --interface eth0 --timer 120

    To stop traffic sniffing, press CTRL + Π‘

    WARNING! Above is not designed to work with tunnel interfaces (L3) due to the use of filters for L2 protocols. Tool on tunneled L3 interfaces may not work properly.

    Example:

    caster@kali:~$ sudo above --interface eth0 --timer 120

    -----------------------------------------------------------------------------------------
    [+] Start sniffing...

    [*] After the protocol is detected - all necessary information about it will be displayed
    --------------------------------------------------
    [+] Detected SSDP Packet
    [*] Attack Impact: Potential for UPnP Device Exploitation
    [*] Tools: evil-ssdp
    [*] SSDP Source IP: 192.168.0.251
    [*] SSDP Source MAC: 02:10:de:64:f2:34
    [*] Mitigation: Ensure UPnP is disabled on all devices unless absolutely necessary, monitor UPnP traffic
    --------------------------------------------------
    [+] Detected MDNS Packet
    [*] Attack Impact: MDNS Spoofing, Credentials Interception
    [*] Tools: Responder
    [*] MDNS Spoofing works specifically against Windows machines
    [*] You cannot get NetNTLMv2-SSP from Apple devices
    [*] MDNS Speaker IP: fe80::183f:301c:27bd:543
    [*] MDNS Speaker MAC: 02:10:de:64:f2:34
    [*] Mitigation: Filter MDNS traffic. Be careful with MDNS filtering
    --------------------------------------------------

    If you need to record the sniffed traffic, use the --output argument

    caster@kali:~$ sudo above --interface eth0 --timer 120 --output above.pcap

    If you interrupt the tool with CTRL+C, the traffic is still written to the file

    Cold mode

    If you already have some recorded traffic, you can use the --input argument to look for potential security issues

    caster@kali:~$ above --input ospf-md5.cap

    Example:

    caster@kali:~$ sudo above --input ospf-md5.cap

    [+] Analyzing pcap file...

    --------------------------------------------------
    [+] Detected OSPF Packet
    [+] Attack Impact: Subnets Discovery, Blackhole, Evil Twin
    [*] Tools: Loki, Scapy, FRRouting
    [*] OSPF Area ID: 0.0.0.0
    [*] OSPF Neighbor IP: 10.0.0.1
    [*] OSPF Neighbor MAC: 00:0c:29:dd:4c:54
    [!] Authentication: MD5
    [*] Tools for bruteforce: Ettercap, John the Ripper
    [*] OSPF Key ID: 1
    [*] Mitigation: Enable passive interfaces, use authentication
    --------------------------------------------------
    [+] Detected OSPF Packet
    [+] Attack Impact: Subnets Discovery, Blackhole, Evil Twin
    [*] Tools: Loki, Scapy, FRRouting
    [*] OSPF Area ID: 0.0.0.0
    [*] OSPF Neighbor IP: 192.168.0.2
    [*] OSPF Neighbor MAC: 00:0c:29:43:7b:fb
    [!] Authentication: MD5
    [*] Tools for bruteforce: Ettercap, John the Ripper
    [*] OSPF Key ID: 1
    [*] Mitigation: Enable passive interfaces, use authentication

    Passive ARP

    The tool can detect hosts without noise in the air by processing ARP frames in passive mode

    caster@kali:~$ sudo above --interface eth0 --passive-arp --timer 10

    [+] Host discovery using Passive ARP

    --------------------------------------------------
    [+] Detected ARP Reply
    [*] ARP Reply for IP: 192.168.1.88
    [*] MAC Address: 00:00:0c:07:ac:c8
    --------------------------------------------------
    [+] Detected ARP Reply
    [*] ARP Reply for IP: 192.168.1.40
    [*] MAC Address: 00:0c:29:c5:82:81
    --------------------------------------------------

    Outro

    I wrote this tool because of the track "A View From Above (Remix)" by KOAN Sound. This track was everything to me when I was working on this sniffer.




    Espionage - A Linux Packet Sniffing Suite For Automated MiTM Attacks

    By: Zion3R

    Espionage is a network packet sniffer that intercepts large amounts of data being passed through an interface. The tool allows users to to run normal and verbose traffic analysis that shows a live feed of traffic, revealing packet direction, protocols, flags, etc. Espionage can also spoof ARP so, all data sent by the target gets redirected through the attacker (MiTM). Espionage supports IPv4, TCP/UDP, ICMP, and HTTP. Espionag e was written in Python 3.8 but it also supports version 3.6. This is the first version of the tool so please contact the developer if you want to help contribute and add more to Espionage. Note: This is not a Scapy wrapper, scapylib only assists with HTTP requests and ARP.


    Installation

    1: git clone https://www.github.com/josh0xA/Espionage.git
    2: cd Espionage
    3: sudo python3 -m pip install -r requirments.txt
    4: sudo python3 espionage.py --help

    Usage

    1. sudo python3 espionage.py --normal --iface wlan0 -f capture_output.pcap
      Command 1 will execute a clean packet sniff and save the output to the pcap file provided. Replace wlan0 with whatever your network interface is.
    2. sudo python3 espionage.py --verbose --iface wlan0 -f capture_output.pcap
      Command 2 will execute a more detailed (verbose) packet sniff and save the output to the pcap file provided.
    3. sudo python3 espionage.py --normal --iface wlan0
      Command 3 will still execute a clean packet sniff however, it will not save the data to a pcap file. Saving the sniff is recommended.
    4. sudo python3 espionage.py --verbose --httpraw --iface wlan0
      Command 4 will execute a verbose packet sniff and will also show raw http/tcp packet data in bytes.
    5. sudo python3 espionage.py --target <target-ip-address> --iface wlan0
      Command 5 will ARP spoof the target ip address and all data being sent will be routed back to the attackers machine (you/localhost).
    6. sudo python3 espionage.py --iface wlan0 --onlyhttp
      Command 6 will only display sniffed packets on port 80 utilizing the HTTP protocol.
    7. sudo python3 espionage.py --iface wlan0 --onlyhttpsecure
      Command 7 will only display sniffed packets on port 443 utilizing the HTTPS (secured) protocol.
    8. sudo python3 espionage.py --iface wlan0 --urlonly
      Command 8 will only sniff and return sniffed urls visited by the victum. (works best with sslstrip).

    9. Press Ctrl+C in-order to stop the packet interception and write the output to file.

    Menu

    usage: espionage.py [-h] [--version] [-n] [-v] [-url] [-o] [-ohs] [-hr] [-f FILENAME] -i IFACE
    [-t TARGET]

    optional arguments:
    -h, --help show this help message and exit
    --version returns the packet sniffers version.
    -n, --normal executes a cleaner interception, less sophisticated.
    -v, --verbose (recommended) executes a more in-depth packet interception/sniff.
    -url, --urlonly only sniffs visited urls using http/https.
    -o, --onlyhttp sniffs only tcp/http data, returns urls visited.
    -ohs, --onlyhttpsecure
    sniffs only https data, (port 443).
    -hr, --httpraw displays raw packet data (byte order) recieved or sent on port 80.

    (Recommended) arguments for data output (.pcap):
    -f FILENAME, --filename FILENAME
    name of file to store the output (make extension '.pcap').

    (Required) arguments required for execution:
    -i IFACE, --iface IFACE
    specify network interface (ie. wlan0, eth0, wlan1, etc.)

    (ARP Spoofing) required arguments in-order to use the ARP Spoofing utility:
    -t TARGET, --target TARGET

    A Linux Packet Sniffing Suite for Automated MiTM Attacks (6)

    Writeup

    A simple medium writeup can be found here:
    Click Here For The Official Medium Article

    Ethical Notice

    The developer of this program, Josh Schiavone, written the following code for educational and ethical purposes only. The data sniffed/intercepted is not to be used for malicous intent. Josh Schiavone is not responsible or liable for misuse of this penetration testing tool. May God bless you all.

    License

    MIT License
    Copyright (c) 2024 Josh Schiavone




    SpeedyTest - Command-Line Tool For Measuring Internet Speed

    By: Zion3R


    SpeedyTest is a powerful command-line tool for measuring internet speed. With its advanced features and intuitive interface, it provides accurate and comprehensive speed test results. Whether you're a network administrator, developer, or simply want to monitor your internet connection, SpeedyTest is the perfect tool for the job.


    Features
    • Measure download speed, upload speed, and ping latency.
    • Generate detailed reports with graphical representation of speed test results.
    • Save and export test results in various formats (CSV, JSON, etc.).
    • Customize speed test parameters and server selection.
    • Compare speed test results over time to track performance changes.
    • Integrate SpeedyTest into your own applications using the provided API.
    • track your timeline with saved database

    Installation
    git clone https://github.com/HalilDeniz/SpeedyTest.git

    Requirements

    Before you can use SpeedyTest, you need to make sure that you have the necessary requirements installed. You can install these requirements by running the following command:

    pip install -r requirements.txt

    Usage

    Run the following command to perform a speed test:

    python3 speendytest.py

    Visual Output



    Output
    Receiving data \
    Speed test completed!
    Speed test time: 20.22 second
    Server : Farknet - Konya
    IP Address: speedtest.farknet.com.tr:8080
    Country : Turkey
    City : Konya
    Ping : 20.41 ms
    Download : 90.12 Mbps
    Loading : 20 Mbps







    Contributing

    Contributions are welcome! To contribute to SpeedyTest, 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 PrivacyNet, please feel free to contact me:


    License

    SpeedyTest is released under the MIT License. See LICENSE for details.



    SharpShares - Multithreaded C# .NET Assembly To Enumerate Accessible Network Shares In A Domain

    By: Zion3R


    Multithreaded C# .NET Assembly to enumerate accessible network shares in a domain


    Built upon djhohnstein's SharpShares project

    > .\SharpShares.exe help

    Usage:
    SharpShares.exe /threads:50 /ldap:servers /ou:"OU=Special Servers,DC=example,DC=local" /filter:SYSVOL,NETLOGON,IPC$,PRINT$ /verbose /outfile:C:\path\to\file.txt

    Optional Arguments:
    /threads - specify maximum number of parallel threads (default=25)
    /dc - specify domain controller to query (if not ran on a domain-joined host)
    /domain - specify domain name (if not ran on a domain-joined host)
    /ldap - query hosts from the following LDAP filters (default=all)
    :all - All enabled computers with 'primary' group 'Domain Computers'
    :dc - All enabled Domain Controllers (not read-only DCs)
    :exclude-dc - All enabled computers that are not Domain Controllers or read-only DCs
    :servers - All enabled servers
    :servers-exclude-dc - All enabled servers excluding Domain Controllers or read-only DCs
    /ou - specify LDAP OU to query enabled computer objects from
    ex: "OU=Special Servers,DC=example,DC=local"
    /stealth - list share names without performing read/write access checks
    /filter - list of comma-separated shares to exclude from enumeration
    default: SYSVOL,NETLOGON,IPC$,PRINT$
    /outfile - specify file for shares to be appended to instead of printing to std out
    /verbose - return unauthorized shares

    Execute Assembly

    execute-assembly /path/to/SharpShares.exe /ldap:all /filter:sysvol,netlogon,ipc$,print$

    Example Output

    Specifying Targets

    The /ldap and /ou flags can be used together or seprately to generate a list of hosts to enumerate.

    All hosts returned from these flags are combined and deduplicated before enumeration starts.



    MacMaster - MAC Address Changer

    By: Zion3R


    MacMaster is a versatile command line tool designed to change the MAC address of network interfaces on your system. It provides a simple yet powerful solution for network anonymity and testing.

    Features

    • Custom MAC Address: Set a specific MAC address to your network interface.
    • Random MAC Address: Generate and set a random MAC address.
    • Reset to Original: Reset the MAC address to its original hardware value.
    • Custom OUI: Set a custom Organizationally Unique Identifier (OUI) for the MAC address.
    • Version Information: Easily check the version of MacMaster you are using.

    Installation

    MacMaster requires Python 3.6 or later.

    1. Clone the repository:
      $ git clone https://github.com/HalilDeniz/MacMaster.git
    2. Navigate to the cloned directory:
      cd MacMaster
    3. Install the package:
      $ python setup.py install

    Usage

    $ macmaster --help         
    usage: macmaster [-h] [--interface INTERFACE] [--version]
    [--random | --newmac NEWMAC | --customoui CUSTOMOUI | --reset]

    MacMaster: Mac Address Changer

    options:
    -h, --help show this help message and exit
    --interface INTERFACE, -i INTERFACE
    Network interface to change MAC address
    --version, -V Show the version of the program
    --random, -r Set a random MAC address
    --newmac NEWMAC, -nm NEWMAC
    Set a specific MAC address
    --customoui CUSTOMOUI, -co CUSTOMOUI
    Set a custom OUI for the MAC address
    --reset, -rs Reset MAC address to the original value

    Arguments

    • --interface, -i: Specify the network interface.
    • --random, -r: Set a random MAC address.
    • --newmac, -nm: Set a specific MAC address.
    • --customoui, -co: Set a custom OUI for the MAC address.
    • --reset, -rs: Reset MAC address to the original value.
    • --version, -V: Show the version of the program.
    1. Set a specific MAC address:
      $ macmaster.py -i eth0 -nm 00:11:22:33:44:55
    2. Set a random MAC address:
      $ macmaster.py -i eth0 -r
    3. Reset MAC address to its original value:
      $ macmaster.py -i eth0 -rs
    4. Set a custom OUI:
      $ macmaster.py -i eth0 -co 08:00:27
    5. Show program version:
      $ macmaster.py -V

    Replace eth0 with your desired network interface.

    Note

    You must run this script as root or use sudo to run this script for it to work properly. This is because changing a MAC address requires root privileges.

    Contributing

    Contributions are welcome! To contribute to MacMaster, 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

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

    Contact



    NetworkSherlock - Powerful And Flexible Port Scanning Tool With Shodan

    By: Zion3R


    NetworkSherlock is a powerful and flexible port scanning tool designed for network security professionals and penetration testers. With its advanced capabilities, NetworkSherlock can efficiently scan IP ranges, CIDR blocks, and multiple targets. It stands out with its detailed banner grabbing capabilities across various protocols and integration with Shodan, the world's premier service for scanning and analyzing internet-connected devices. This Shodan integration enables NetworkSherlock to provide enhanced scanning capabilities, giving users deeper insights into network vulnerabilities and potential threats. By combining local port scanning with Shodan's extensive database, NetworkSherlock offers a comprehensive tool for identifying and analyzing network security issues.


    Features

    • Scans multiple IPs, IP ranges, and CIDR blocks.
    • Supports port scanning over TCP and UDP protocols.
    • Detailed banner grabbing feature.
    • Ping check for identifying reachable targets.
    • Multi-threading support for fast scanning operations.
    • Option to save scan results to a file.
    • Provides detailed version information.
    • Colorful console output for better readability.
    • Shodan integration for enhanced scanning capabilities.
    • Configuration file support for Shodan API key.

    Installation

    NetworkSherlock requires Python 3.6 or later.

    1. Clone the repository:
      git clone https://github.com/HalilDeniz/NetworkSherlock.git
    2. Install the required packages:
      pip install -r requirements.txt

    Configuration

    Update the networksherlock.cfg file with your Shodan API key:

    [SHODAN]
    api_key = YOUR_SHODAN_API_KEY

    Usage

    Port Scan Tool positional arguments: target Target IP address(es), range, or CIDR (e.g., 192.168.1.1, 192.168.1.1-192.168.1.5, 192.168.1.0/24) options: -h, --help show this help message and exit -p PORTS, --ports PORTS Ports to scan (e.g. 1-1024, 21,22,80, or 80) -t THREADS, --threads THREADS Number of threads to use -P {tcp,udp}, --protocol {tcp,udp} Protocol to use for scanning -V, --version-info Used to get version information -s SAVE_RESULTS, --save-results SAVE_RESULTS File to save scan results -c, --ping-check Perform ping check before scanning --use-shodan Enable Shodan integration for additional information " dir="auto">
    python3 networksherlock.py --help
    usage: networksherlock.py [-h] [-p PORTS] [-t THREADS] [-P {tcp,udp}] [-V] [-s SAVE_RESULTS] [-c] target

    NetworkSherlock: Port Scan Tool

    positional arguments:
    target Target IP address(es), range, or CIDR (e.g., 192.168.1.1, 192.168.1.1-192.168.1.5,
    192.168.1.0/24)

    options:
    -h, --help show this help message and exit
    -p PORTS, --ports PORTS
    Ports to scan (e.g. 1-1024, 21,22,80, or 80)
    -t THREADS, --threads THREADS
    Number of threads to use
    -P {tcp,udp}, --protocol {tcp,udp}
    Protocol to use for scanning
    -V, --version-info Used to get version information
    -s SAVE_RESULTS, --save-results SAVE_RESULTS
    File to save scan results
    -c, --ping-check Perform ping check before scanning
    --use-shodan Enable Shodan integration for additional information

    Basic Parameters

    • target: The target IP address(es), IP range, or CIDR block to scan.
    • -p, --ports: Ports to scan (e.g., 1-1000, 22,80,443).
    • -t, --threads: Number of threads to use.
    • -P, --protocol: Protocol to use for scanning (tcp or udp).
    • -V, --version-info: Obtain version information during banner grabbing.
    • -s, --save-results: Save results to the specified file.
    • -c, --ping-check: Perform a ping check before scanning.
    • --use-shodan: Enable Shodan integration.

    Example Usage

    Basic Port Scan

    Scan a single IP address on default ports:

    python networksherlock.py 192.168.1.1

    Custom Port Range

    Scan an IP address with a custom range of ports:

    python networksherlock.py 192.168.1.1 -p 1-1024

    Multiple IPs and Port Specification

    Scan multiple IP addresses on specific ports:

    python networksherlock.py 192.168.1.1,192.168.1.2 -p 22,80,443

    CIDR Block Scan

    Scan an entire subnet using CIDR notation:

    python networksherlock.py 192.168.1.0/24 -p 80

    Using Multi-Threading

    Perform a scan using multiple threads for faster execution:

    python networksherlock.py 192.168.1.1-192.168.1.5 -p 1-1024 -t 20

    Scanning with Protocol Selection

    Scan using a specific protocol (TCP or UDP):

    python networksherlock.py 192.168.1.1 -p 53 -P udp

    Scan with Shodan

    python networksherlock.py 192.168.1.1 --use-shodan

    Scan Multiple Targets with Shodan

    python networksherlock.py 192.168.1.1,192.168.1.2 -p 22,80,443 -V --use-shodan

    Banner Grabbing and Save Results

    Perform a detailed scan with banner grabbing and save results to a file:

    python networksherlock.py 192.168.1.1 -p 1-1000 -V -s results.txt

    Ping Check Before Scanning

    Scan an IP range after performing a ping check:

    python networksherlock.py 10.0.0.1-10.0.0.255 -c

    OUTPUT EXAMPLE

    $ python3 networksherlock.py 10.0.2.12 -t 25 -V -p 21-6000 -t 25
    ********************************************
    Scanning target: 10.0.2.12
    Scanning IP : 10.0.2.12
    Ports : 21-6000
    Threads : 25
    Protocol : tcp
    ---------------------------------------------
    Port Status Service VERSION
    22 /tcp open ssh SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1
    21 /tcp open telnet 220 (vsFTPd 2.3.4)
    80 /tcp open http HTTP/1.1 200 OK
    139 /tcp open netbios-ssn %SMBr
    25 /tcp open smtp 220 metasploitable.localdomain ESMTP Postfix (Ubuntu)
    23 /tcp open smtp #' #'
    445 /tcp open microsoft-ds %SMBr
    514 /tcp open shell
    512 /tcp open exec Where are you?
    1524/tcp open ingreslock ro ot@metasploitable:/#
    2121/tcp open iprop 220 ProFTPD 1.3.1 Server (Debian) [::ffff:10.0.2.12]
    3306/tcp open mysql >
    5900/tcp open unknown RFB 003.003
    53 /tcp open domain
    ---------------------------------------------

    OutPut Example

    $ python3 networksherlock.py 10.0.2.0/24 -t 10 -V -p 21-1000
    ********************************************
    Scanning target: 10.0.2.1
    Scanning IP : 10.0.2.1
    Ports : 21-1000
    Threads : 10
    Protocol : tcp
    ---------------------------------------------
    Port Status Service VERSION
    53 /tcp open domain
    ********************************************
    Scanning target: 10.0.2.2
    Scanning IP : 10.0.2.2
    Ports : 21-1000
    Threads : 10
    Protocol : tcp
    ---------------------------------------------
    Port Status Service VERSION
    445 /tcp open microsoft-ds
    135 /tcp open epmap
    ********************************************
    Scanning target: 10.0.2.12
    Scanning IP : 10.0.2.12
    Ports : 21- 1000
    Threads : 10
    Protocol : tcp
    ---------------------------------------------
    Port Status Service VERSION
    21 /tcp open ftp 220 (vsFTPd 2.3.4)
    22 /tcp open ssh SSH-2.0-OpenSSH_4.7p1 Debian-8ubuntu1
    23 /tcp open telnet #'
    80 /tcp open http HTTP/1.1 200 OK
    53 /tcp open kpasswd 464/udpcp
    445 /tcp open domain %SMBr
    3306/tcp open mysql >
    ********************************************
    Scanning target: 10.0.2.20
    Scanning IP : 10.0.2.20
    Ports : 21-1000
    Threads : 10
    Protocol : tcp
    ---------------------------------------------
    Port Status Service VERSION
    22 /tcp open ssh SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.9

    Contributing

    Contributions are welcome! To contribute to NetworkSherlock, 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



    PacketSpy - Powerful Network Packet Sniffing Tool Designed To Capture And Analyze Network Traffic

    By: Zion3R


    PacketSpy is a powerful network packet sniffing tool designed to capture and analyze network traffic. It provides a comprehensive set of features for inspecting HTTP requests and responses, viewing raw payload data, and gathering information about network devices. With PacketSpy, you can gain valuable insights into your network's communication patterns and troubleshoot network issues effectively.


    Features

    • Packet Capture: Capture and analyze network packets in real-time.
    • HTTP Inspection: Inspect HTTP requests and responses for detailed analysis.
    • Raw Payload Viewing: View raw payload data for deeper investigation.
    • Device Information: Gather information about network devices, including IP addresses and MAC addresses.

    Installation

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

    Requirements

    PacketSpy requires the following dependencies to be installed:

    pip install -r requirements.txt

    Getting Started

    To get started with PacketSpy, use the following command-line options:

    root@denizhalil:/PacketSpy# python3 packetspy.py --help                          
    usage: packetspy.py [-h] [-t TARGET_IP] [-g GATEWAY_IP] [-i INTERFACE] [-tf TARGET_FIND] [--ip-forward] [-m METHOD]

    options:
    -h, --help show this help message and exit
    -t TARGET_IP, --target TARGET_IP
    Target IP address
    -g GATEWAY_IP, --gateway GATEWAY_IP
    Gateway IP address
    -i INTERFACE, --interface INTERFACE
    Interface name
    -tf TARGET_FIND, --targetfind TARGET_FIND
    Target IP range to find
    --ip-forward, -if Enable packet forwarding
    -m METHOD, --method METHOD
    Limit sniffing to a specific HTTP method

    Examples

    1. Device Detection
    root@denizhalil:/PacketSpy# python3 packetspy.py -tf 10.0.2.0/24 -i eth0

    Device discovery
    **************************************
    Ip Address Mac Address
    **************************************
    10.0.2.1 52:54:00:12:35:00
    10.0.2.2 52:54:00:12:35:00
    10.0.2.3 08:00:27:78:66:95
    10.0.2.11 08:00:27:65:96:cd
    10.0.2.12 08:00:27:2f:64:fe

    1. Man-in-the-Middle Sniffing
    root@denizhalil:/PacketSpy# python3 packetspy.py -t 10.0.2.11 -g 10.0.2.1 -i eth0
    ******************* started sniff *******************

    HTTP Request:
    Method: b'POST'
    Host: b'testphp.vulnweb.com'
    Path: b'/userinfo.php'
    Source IP: 10.0.2.20
    Source MAC: 08:00:27:04:e8:82
    Protocol: HTTP
    User-Agent: b'Mozilla/5.0 (X11; Linux x86_64; rv:105.0) Gecko/20100101 Firefox/105.0'

    Raw Payload:
    b'uname=admin&pass=mysecretpassword'

    HTTP Response:
    Status Code: b'302'
    Content Type: b'text/html; charset=UTF-8'
    --------------------------------------------------

    FootNote

    Https work still in progress

    Contributing

    Contributions are welcome! To contribute to PacketSpy, 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 PacketSpy, please feel free to contact me:

    License

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



    NetProbe - Network Probe

    By: Zion3R


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

    Features

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

    Download

    You can download the program from the GitHub page.

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

    Installation

    To install the required libraries, run the following command:

    $ pip install -r requirements.txt

    Usage

    To run the program, use the following command:

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

    Example:

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

    Help Menu

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

    NetProbe: Network Scanner Tool

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

    Default Scan

    $ python3 netprobe.py 

    Live Tracking

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

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

    Save Results

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

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

    Contact

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

    License

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



    NetworkAssessment - With Wireshark Or TCPdump, You Can Determine Whether There Is Harmful Activity On Your Network Traffic That You Have Recorded On The Network You Monitor

    By: Zion3R


    The Network Compromise Assessment Tool is designed to analyze pcap files to detect potential suspicious network traffic. This tool focuses on spotting abnormal activities in the network traffic and searching for suspicious keywords.Β 

    • DNS Tunneling Detection: Identifies potential covert communication channels over DNS.
    • SSH Tunneling Detection: Spots signs of SSH sessions which may be used to bypass network restrictions or cloak malicious activities.
    • TCP Session Hijacking Identification: Monitors for suspicious TCP sessions which might indicate unauthorized takeovers.
    • Various Attack Signatures: Recognizes indicators of SYN flood, UDP flood, Slowloris, SMB attacks, and more.
    • Suspicious Keyword Search: Actively scans the network traffic for user-defined keywords that could be indicative of malicious intent or sensitive data leakage.
    • Protocol-Specific Scanning: Allows users to specify which protocols to monitor, ensuring focused and efficient analysis.
    • Output Logging: Provides an option to save detailed analysis results to a file for further investigation or record-keeping.
    • IPv6 Fragmentation Attack Detection: Spots potential attempts to exploit the fragmentation mechanism in IPv6 for nefarious purposes.
    • User-Friendly Display: Color-coded outputs and progress indicators enhance readability and user experience.

    The tool is not just limited to the aforementioned features. With contributions from the community, its detection capabilities can continuously evolve and adapt to the latest threat landscape.

    • Python 3.x
    • scapy
    • argparse
    • pyshark
    • colorama

    1. Clone the repository:

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

      cd NetworkAssessment
    3. Install the required dependencies:

      pip install -r requirements.txt

    python3 networkassessment.py [-h] -f FILE [-p {TCP,UDP,DNS,HTTP,SMTP,SMB} [{TCP,UDP,DNS,HTTP,SMTP,SMB} ...]]
    [-o OUTPUT] [-n NUMBER_PACKET]
    • -f or --file: Path to the .pcap or .pcapng file you intend to analyze. This is a mandatory field, and the assessment will be based on the data within this file.
    • -p or --protocols: Protocols you specifically want to scan. Multiple protocols can be mentioned. Available choices are: "TCP", "UDP", "DNS", "HTTP", "SMTP", "SMB".
    • -o or --output: Path to save the scan results. This is optional. If provided, the findings will be saved in the specified file.
    • -n or --number-packet: Number of packets you wish to scan from the provided file. This is optional. If not specified, the tool will scan all packets in the file.

    In the above example, the tool will analyze the first 1000 packets of the sample.pcap file, focusing on the TCP and UDP protocols, and will then save the results to output.txt.

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

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

    NetworkAssesment is a fork of the original tool called Network_Assessment, which was created by alperenugurlu. I would like to express my gratitude to Alperen Uğurlu for the inspiration and foundation provided by the original tool. Without his work, this updated version would not have been possible. If you would like to learn more about the original tool, you can visit the Network_Assessment repository.

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

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



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

    By: Zion3R


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

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

    1. Clone the repository:

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

      cd TrafficWatch
    3. Install the required dependencies:

      pip install -r requirements.txt

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

    Packet Sniffer Tool

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

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

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

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

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

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

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

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

    This project is licensed under the MIT License.

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



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

    By: Zion3R


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


    Features

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

    Requirements

    • Python 3.x
    • scapy
    • argparse

    Installation

    1. Clone the repository:

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

      cd DoSinator
    3. Install the required dependencies:

      pip install -r requirements.txt

    Usage

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

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

    Disclaimer

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

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

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

    Contributing

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

    Contact

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



    DNSWatch - DNS Traffic Sniffer and Analyzer

    By: Zion3R


    DNSWatch is a Python-based tool that allows you to sniff and analyze DNS (Domain Name System) traffic on your network. It listens to DNS requests and responses and provides insights into the DNS activity.Β 

    Features

    • Sniff and analyze DNS requests and responses.
    • Display DNS requests with their corresponding source and destination IP addresses.
    • Optional verbose mode for detailed packet inspection.
    • Save the results to a specified output file.
    • Filter DNS traffic by specifying a target IP address.
    • Save DNS requests in a database for further analysis(optional)
    • Analyze DNS types (optional).
    • Support for DNS over HTTPS (DoH) (optional).

    Requirements

    • Python 3.7+
    • scapy 2.4.5 or higher
    • colorama 0.4.4 or higher

    Installation

    1. Clone this repository:
    git clone https://github.com/HalilDeniz/DNSWatch.git
    1. Install the required dependencies:
    pip install -r requirements.txt

    Usage

    python dnswatch.py -i <interface> [-v] [-o <output_file>] [-k <target_ip>] [--analyze-dns-types] [--doh]
    • -i, --interface: Specify the network interface (e.g., eth0).
    • -v, --verbose: Use this flag for more verbose output.
    • -o, --output: Specify the filename to save results.
    • -t, --target-ip: Specify a specific target IP address to monitor.
    • -adt, --analyze-dns-types: Analyze DNS types.
    • --doh: Use DNS over HTTPS (DoH) for resolving DNS requests.
    • -fd, --target-domains: Filter DNS requests by specified domains.
    • -d, --database: Enable database storage for DNS requests.

    Press Ctrl+C to stop the sniffing process.

    Examples

    • Sniff DNS traffic on interface "eth0":
    python dnswatch.py -i eth0
    • Sniff DNS traffic on interface "eth0" and save the results to a file:
    python dnswatch.py -i eth0 -o dns_results.txt
    • Sniff DNS traffic on interface "eth0" and filter requests/responses involving a specific target IP:
    python dnswatch.py -i eth0 -k 192.168.1.100
    • Sniff DNS traffic on interface "eth0" and enable DNS type analysis:
    python dnswatch.py -i eth0 --analyze-dns-types
    • Sniff DNS traffic on interface "eth0" using DNS over HTTPS (DoH):
    python dnswatch.py -i eth0 --doh
    • Sniff DNS traffic on interface "wlan0" and Enable database storage
    python3 dnswatch.py -i wlan0 --database

    License

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

    Disclaimer

    This tool is intended for educational and testing purposes only. It should not be used for any malicious activities.

    Contact



    Bryobio - NETWORK Pcap File Analysis

    By: Zion3R


    NETWORK Pcap File Analysis, It was developed to speed up the processes of SOC Analysts during analysis


    Tested

    OK Debian
    OK Ubuntu

    Requirements

    $ pip install pyshark
    $ pip install dpkt

    $ Wireshark
    $ Tshark
    $ Mergecap
    $ Ngrep

    π—œπ—‘π—¦π—§π—”π—Ÿπ—Ÿπ—”π—§π—œπ—’π—‘ π—œπ—‘π—¦π—§π—₯π—¨π—–π—§π—œπ—’π—‘π—¦

    $ https://github.com/emrekybs/Bryobio.git
    $ cd Bryobio
    $ chmod +x bryobio.py

    $ python3 bryobio.py



    Network_Assessment - With Wireshark Or TCPdump, You Can Determine Whether There Is Harmful Activity On Your Network Traffic That You Have Recorded On The Network You Monitor

    By: Zion3R


    With Wireshark or TCPdump, you can determine whether there is harmful activity on your network traffic that you have recorded on the network you monitor.

    This Python script analyzes network traffic in a given .pcap file and attempts to detect the following suspicious network activities and attacks:

    1. DNS Tunneling
    2. SSH Tunneling
    3. TCP Session Hijacking
    4. SMB Attack
    5. SMTP or DNS Attack
    6. IPv6 Fragmentation Attack
    7. TCP RST Attack
    8. SYN Flood Attack
    9. UDP Flood Attack
    10. Slowloris Attack

    The script also tries to detect packages containing suspicious keywords (eg "password", "login", "admin", etc.). Detected suspicious activities and attacks are displayed to the user in the console.

    The main functions are:

    • get_user_input(): Gets the path of the .pcap file from the user.
    • get_all_ip_addresses(capture): Returns a set containing all source and destination IP addresses.
    • detect_* functions: Used to detect specific attacks and suspicious activities.
    • main(): Performs the main operations of the script. First, it gets the path of the .pcap file from the user, and then analyzes the file to try to detect the specified attacks and suspicious activity.

    How to Install Script?

    git clone https://github.com/alperenugurlu/Network_Assessment.git

    pip3 install -r requirements.txt

    How to Run the Script?

    python3 Network_Compromise_Assessment.py

    Please enter the path to the .pcap or .pcapng file: /root/Desktop/TCP_RST_Attack.pcap (Example)

    Script Creator

    Alperen Ugurlu

    Social Media:

    https://www.linkedin.com/in/alperen-ugurlu-7b57b7178/



    ❌