PortScan - Empire Module
This page contains detailed information about how to use the csharp/SharpSploit.Enumeration/PortScan Empire module. For list of all Empire modules, visit the Empire Module Library.
Module Overview
Name: PortScan
Module: csharp/SharpSploit.Enumeration/PortScan
Source code:
empire/server/modules/csharp/SharpSploit.Enumeration.Covenant.yaml#L1426
Language: C#
Needs admin: No
OPSEC safe: No
Background: No
The PortScan module performs a TCP port scan.
This module runs in a foreground and is OPSEC unsafe as it writes on the disk and therefore could be detected by AV/EDR running on the target system.
Note that the PortScan module does not need administrative privileges to work properly which means that a normal user can run this module.
Required Module Options
This is a list of options that are required by the PortScan module:
Agent
Agent to run module on.
ComputerNames
ComputerName(s) to port scan. Can be a DNS name, IP address, or CIDR range.
Default value: 127.0.0.1
.
DotNetVersion
.NET version to compile against.
Default value: Net35
.
Suggested values: Net35
, Net40
.
Ports
Ports to scan. Comma-delimited port list, use hyphens for port ranges.
Default value: 80,443-445,3389
.
Additional Module Options
This is a list of additional options that are supported by the PortScan module:
Ping
Boolean, whether to ping hosts prior to port scanning.
Default value: False
.
PortScan Example Usage
Here's an example of how to use the PortScan module in the Empire client console:
[+] New agent Y4LHEV83 checked in
[*] Sending agent (stage 2) to Y4LHEV83 at 192.168.204.135
(empire usestager/windows/ducky) > usemodule csharp/SharpSploit.Enumeration/PortScan
Author cobbr_io
Background False
Description Perform a TCP port scan.
Language csharp
Name csharp/SharpSploit.Enumeration/PortScan
NeedsAdmin False
OpsecSafe False
,Record Options-,-----------------,----------,-------------------------------------,
| Name | Value | Required | Description |
|---------------|-----------------|----------|-------------------------------------|
| Agent | | True | Agent to run module on. |
|---------------|-----------------|----------|-------------------------------------|
| ComputerNames | 127.0.0.1 | True | ComputerName(s) to port scan. Can |
| | | | be a DNS name, IP address, or CIDR |
| | | | range. |
|---------------|-----------------|----------|-------------------------------------|
| DotNetVersion | Net35 | True | .NET version to compile against |
|---------------|-----------------|----------|-------------------------------------|
| Ping | False | False | Boolean, whether to ping hosts |
| | | | prior to port scanning. |
|---------------|-----------------|----------|-------------------------------------|
| Ports | 80,443-445,3389 | True | Ports to scan. Comma-delimited port |
| | | | list, use hyphens for port ranges |
'---------------'-----------------'----------'-------------------------------------'
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > set Agent Y4LHEV83
[*] Set Agent to Y4LHEV83
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > set ComputerNames 127.0.0.1
[*] Set ComputerNames to 127.0.0.1
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > set DotNetVersion Net35
[*] Set DotNetVersion to Net35
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > set Ports 80,443-445,3389
[*] Set Ports to 80,443-445,3389
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > execute
[!] Error: csharpserver plugin not running
Note: This module requires csharpserver plugin to be running on our system. If this plugin is not running, the error message "[!] Error: csharp server plugin not running
" is thrown on the console. To fix the error, start the csharpserver plugin and re-run the module:
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > useplugin csharpserver
,Record Options--,----------,----------------------------------,
| Name | Value | Required | Description |
|--------|-------|----------|----------------------------------|
| status | start | True | Start/stop the Empire C# server. |
'--------'-------'----------'----------------------------------'
(Empire: useplugin/csharpserver) > execute
[*] Starting Empire C# server
(Empire: useplugin/csharpserver) > back
(Empire: usemodule/csharp/SharpSploit.Enumeration/PortScan) > execute
[*] Tasked Y4LHEV83 to run Task 1
...
Now wait for the results to come.
Author
- cobbr_io
References
- https://github.com/BC-SECURITY/Empire/tree/master/empire/server/modules/csharp/SharpSploit.Enumeration.Covenant.yaml#L1426
- https://twitter.com/cobbr_io
- https://twitter.com/checkymander
See Also
Check also the following modules related to this module:
- csharp/SharpSploit.Enumeration/GetNetSession
- csharp/SharpSploit.Enumeration/GetNetLoggedOnUser
- csharp/SharpSploit.Enumeration/GetNetLocalGroupMember
- csharp/SharpSploit.Enumeration/GetNetLocalGroup
- csharp/SharpSploit.Enumeration/GetDomainGroup
- csharp/SharpSploit.Enumeration/GetDomainUser
- csharp/SharpSploit.Enumeration/GetDomainComputer
- csharp/SharpSploit.Enumeration/Keylogger
- csharp/SharpSploit.Enumeration/Kerberoast
- csharp/SharpSploit.Enumeration/ListDirectory
- csharp/SharpSploit.Enumeration/ProcessList
- csharp/SharpSploit.Enumeration/SetRegistryKey
- csharp/SharpSploit.Enumeration/GetRegistryKey
- csharp/SharpSploit.Enumeration/SetRemoteRegistryKey
- csharp/SharpSploit.Enumeration/GetRemoteRegistryKey
Version
This page has been created based on Empire version 4.1.3 (BC Security Fork).
Visit Empire Module Library for more modules.