Project Showcase: Network Reconnaissance Tool

To truly defend a network, you first need to understand how an attacker thinks. This principle led me to my latest project: a multi-functional Network-Recon-Tool. Instead of simply relying on existing tools, I wanted to build one from scratch to gain a deep understanding of the mechanics of host discovery and port scanning. This project was an exercise in applying theoretical cybersecurity knowledge to a practical, hands-on application.
⚠️ A Note on Ethical Use
This tool is provided for educational and ethical purposes only. It's designed for use in controlled, authorized environments to test and understand network security principles. Unauthorized scanning of networks is illegal and unethical. By using this tool, you agree to assume full responsibility for your actions.
Project Overview & Key Features
This tool is an advanced network reconnaissance script built in Python. It combines host discovery and multithreaded port scanning to efficiently map out a network.
* Host Discovery: The tool uses ARP requests to quickly and reliably find live hosts on a local network, a method that is much faster than a standard ping sweep.
* Multithreaded Scanning: It leverages a thread pool to perform port scans, which allows it to check multiple ports simultaneously and deliver significantly faster results.
* Flexible Scanning Modes: The tool is highly adaptable, supporting several use cases right from the command line. You can scan a single host for common ports, scan an entire network range for live hosts, or even check for a specific port across all discovered hosts.
* Service Identification: To provide additional context, the tool includes a dictionary of common ports, so it can display a service name (e.g., ssh, http) along with the port number.
How to Use the Tool
This tool requires elevated privileges to run because it uses the Scapy library to send and receive raw network packets.
Basic Syntax:
sudo python3 netrecon.py [OPTIONS].
Examples:
* Scan a single host for common ports:
sudo python3 netrecon.py --single 192.168.1.10
* Scan an entire network for common ports on all live hosts:
sudo python3 netrecon.py --full 192.168.1.0/24
* Check for a specific port (e.g., 80) on all live hosts:
sudo python3 netrecon.py --full 192.168.1.0/24 --show 80
This project was a fantastic learning experience that provided a deeper understanding of network protocols and efficient programming. I'm proud of the result and excited to share it with you all.
You can view the full code on my GitHub repository: https://github.com/ghostface-security/Network-Recon-Tool
You can download the windows version of the project here: https://ghostfacesecurity.gumroad.com/l/zwjdpm
Subscribe to my newsletter
Read articles from Gage Morrow directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Gage Morrow
Gage Morrow
Hello, I'm Gage Morrow, an ethical hacker and developer. My work is dedicated to understanding and fortifying digital defenses by thinking like an attacker. With over a decade of hands-on experience in computer systems, I specialize in penetration testing and software development. Through my blog, I aim to share my technical deep dives and practical projects. You can expect to see content on topics like: Building security tools with Python, such as a real-time network monitor with Scapy. Exploring software development for security, including my network reconnaissance tool and a stock trading simulator. Discussions on cybersecurity, open source projects, and more.