Project focused on designing an Internet of Things (IoT) search engine.
Night Crawler uses a command line interface to scan IPv4 address ranges with multi-threading.
Using sockets, it determines which ports are open and captures more information about the target, see the features section for details.
Each collection is stored in a database, and finally the deployment of an API allows users to access the devices.
-
Is a method of determining which ports on a network are open and could be receiving or sending data. It is also a process for sending packets to specific ports on a host and analyzing responses to identify vulnerabilities.
-
Whenever performing the intel-reconnaissance process during penetration testing or security auditing, we need to pay attention to the current web-server’s exposed information.
That’s where banner grabbing comes in. Banner grabbing is the act of getting software banner information (name and version), whether it’s done manually, or by using any OSINT tools that can do it for you automatically.
FTP servers, web servers, SSH servers and other system daemons often expose critical information about not only the software name, but also about the exact versions and operating systems they’re running.
For example, following is a FTP banner:
"220 CONICET La Plata FTP Server ready."
-
IP Geolocation is the identification of the geographic location of a device, such as a mobile phone, gadget, laptop, server and so on, by using an IP address. This scanner retrieves geolocation from Maxmind database, updated periodically.
"country" : "Argentina", "region_name" : "Buenos Aires", "city" : "La Plata", "country_code" : "AR", "zip_code" : "1900", "time_zone" : "America/Argentina/Buenos_Aires", "latitude" : -34.9314, "longitude" : -57.9489,
-
Possibility to take screenshots from hosts with HTTP using Rendertron and unnauthenticated VNC servers, using VNC Snapshot
usage: CLI.py [-h] [-s START_IP] [-e END_IP] [-t THREADS] [-m FILE] [--timeout TIMEOUT] [--screenshot] [--top-ports] [--all-ports]
Scanner for Internet-connected devices
optional arguments:
-h, --help show this help message and exit
-s START_IP, --start START_IP
-e END_IP, --end END_IP
-t THREADS, --threads THREADS
Number of threads [Default: 100]
-m FILE, --massive-scan FILE
File path with IP blocks
--timeout TIMEOUT Socket timeout [Default: 0.5]
--screenshot Take screenshots from hosts with HTTP
--top-ports Scan only 20 most used ports
--all-ports Scan 1000 most used ports
Scan only a single IPv4 address range:
python3 CLI.py --start 192.168.0.0 --end 192.168.0.255 -t 500 --top-ports
Scan from a text file with multiple IPv4 address ranges:
python3 CLI.py --massive-scan Argentina.csv -t 200 --all-ports --screenshot
- Command-line interface
- Backend API with Flask
- Execution time in terminal
- Logging module implementation, for exception handling
- Massive and automatic scanning
- Default FTP login detection
- Automatic download of IP ranges by country
- Screenshot of unnauthenticated VNC servers
- Frontend with React
- Web application vulnerability scan
- Search filter by tags
- Web technologies detection
- Find domain name associated with IP
- Build image with Docker and deployment
- Honeypot detection
- RDP Screenshot
pip install -r requirements.txt
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropriate.