Network service scanner application written in C++.
SvcScan is a network port scanner that uses TCP network sockets to perform targeted service scanning (C++ 20).
- Multithreaded port scanning
- TCP socket banner grabbing
- SSL/TLS encrypted communications
- HTTP/HTTPS server probing
- Concurrent network connections
- Plain text and JSON scan reports
svcscan.exe [OPTIONS] TARGET
svcscan.exe [OPTIONS] TARGET PORT
All available SvcScan command-line arguments are listed below:
Argument | Type | Description | Default |
---|---|---|---|
TARGET |
Required | Target address or host name | N/A |
-p/--port PORT |
Required | Target ports (comma delimited) | N/A |
-v, --verbose |
Optional | Enable verbose console output | False |
-s, --ssl |
Optional | Enable SSL/TLS communications | False |
-j, --json |
Optional | Output the scan results as JSON | False |
-o/--output PATH |
Optional | Write the scan results to a file | N/A |
-t/--timeout MS |
Optional | Connection timeout in milliseconds | 3500 |
-T/--threads NUM |
Optional | Scanner thread pool thread count | Local thread count or 16 |
-c/--curl [URI] |
Optional | Use HTTP method GET instead of HEAD | / |
-h/-?, --help |
Optional | Display the help menu and exit | False |
See the Usage Examples section for more information.
SvcScan can be automatically configured and installed or updated using the installer in the tools directory.
It can be installed manually by building from source or using the precompiled standalone executables in the Zips directory.
Download and execute the svcscan-install.ps1 installer script using PowerShell:
irm -d "https://raw.githubusercontent.com/vandavey/SvcScan/main/tools/svcscan-install.ps1" | powershell -
svcscan-install.ps1 only supports x64 and x86 architectures and must be executed as an administrator.
SvcScan can be manually installed using the following precompiled standalone executables:
It can be built from source by compiling SvcScan.vcxproj after installing the dependencies detailed in the Dependencies section.
Print the application help menu, then exit:
svcscan.exe --help
Scan port 80
against localhost
:
svcscan.exe -p 80 localhost
Scan ports 22
through 25
against joe-mama
:
svcscan.exe joe-mama 22-25
Scan ports 443
and 6667
against 192.168.1.1
using an
SSL/TLS capable scanner and display verbose scan output:
svcscan.exe -vsp 443,6667 192.168.1.1
Scan ports 80
, 443
, and 20
through 40
against localhost
using a thread
pool with 8
threads and set the connection timeout to 4000
milliseconds:
svcscan.exe -t 4000 -T 8 -p 80,443,20-40 localhost
The default thread pool size will be used if the specified thread count is greater than 32.
Scan ports 6667
and 6697
against 192.168.1.100
with verbose output displayed
and save a JSON scan report to file path svcscan-test.json
:
svcscan.exe -vjo svcscan-test.json 192.168.1.100 6667,6697
Scan port 80
against 10.0.0.1
and perform HTTP or
HTTPS probing using method GET
and URI /admin
:
svcscan.exe --ssl --verbose --curl /admin 10.0.0.1 80
-c
/--curl
must be passed as the final command-line argument when no explicit URI is provided.
To run the prebuilt application executable, no dependencies are required.
To compile SvcScan, the following Boost C++ libraries
and their dependencies must be installed through vcpkg
using triplets x64-windows-static
and x86-windows-static
:
-
Library for networking and other low level I/O functionality.
-
Library for HTTP, WebSocket, and networking functionality.
-
Library for generating forwarding call wrappers.
-
Library for JSON parsing, serialization, and DOM.
Once vcpkg is installed, the following command can be used to install all required Boost libraries:
vcpkg.exe install "boost:x64-windows-static" "boost:x86-windows-static"
- This application currently only supports Windows operating systems.
- Please use discretion as this application is still in development.
SvcScan is licensed under the MIT license and officially hosted in this repository.