Skip to content

SMB probe

The SMB probe sends a configurable sequence of SMB commands to a target server. VirtuProbe implements the SMB wire protocol from scratch (MS-SMB2, MS-NLMP, SPNEGO/ASN.1) — no third-party SMB library is used, giving full control over every byte of the exchange.

SMB probe editor — auth section with NTLM/PTH toggle, command list

FieldDescription
HostTarget hostname or IP
PortServer port (default: 445)
DialectSMB2 (default, supports SMB 2.0.2 through 3.0.2) or SMB1 (CIFS/NT LM 0.12, legacy targets)
TypeDescription
NoneAnonymous / null session — no credentials sent
NTLMNTLMv2 with domain, username, and password
Pass-the-HashNTLMv2 using the NT hash directly (no plaintext password required)

For PTH, provide the 32-character hex NT hash — the MD4 hash of the UTF-16LE password, extractable from LSASS or NTDS.dit.

OptionDescription
Sign messagesEnables AES-128-CMAC message signing after SESSION_SETUP (requires NTLM or PTH auth)
Encrypt (AES-GCM)Wraps all messages in SMB2 TRANSFORM_HEADER with AES-128-GCM encryption (SMB 3.1.1, requires auth)

SMB is stateful — commands are sent in order and the session state carries across them. Commands are reorderable by dragging.

CommandDescription
NEGOTIATEOpens the connection and negotiates the dialect. Always the first command.
SESSION_SETUPAuthenticates using the configured auth type. Two-round NTLM exchange is handled automatically.
TREE_CONNECTConnects to a share (e.g. public, C$, IPC$). Enter the share name — the UNC path is built from the probe host.
TREE_DISCONNECTDisconnects from the current share.
LOGOFFTerminates the session on the server.
ECHOKeepalive / connection health check. No auth required.
CommandDescription
FILE_READOpens a file path and reads its content. Text files render inline; binary files as base64.
FILE_WRITECreates or overwrites a file with the provided content.
DIR_LISTLists a directory path — returns filenames, sizes, timestamps, and directory flags.
LIST_SHARESEnumerates all shares via the SRVSVC named pipe over IPC$. Returns name, type, and comment for each share.

File operation commands are not available when Dialect is set to SMB1.

The command block shows the negotiated dialect (e.g. SMB3 0x0300), max read/write sizes, and the NT status code.

Shares are displayed as a card grid — each card shows the share name, type chip (DISK / IPC / PRINT), and the optional comment field. The IPC special share is marked with an additional indicator.

The directory contents are shown as a file explorer table:

ColumnDescription
IconFolder or file indicator
NameEntry name
SizeFile size (empty for directories)
ModifiedLast write timestamp

File content is displayed in a code block with a copy button. Text files render inline; binary content appears as base64.

Set an Expected status on any command. The value is an NT status code — enter it as a hex string (e.g. 0x00000000) or decimal. Common values:

CodeName
0x00000000STATUS_SUCCESS
0xC000006DSTATUS_LOGON_FAILURE — wrong credentials
0xC0000022STATUS_ACCESS_DENIED — share or file not accessible
0xC00000CCSTATUS_BAD_NETWORK_NAME — share does not exist
0xC0000034STATUS_OBJECT_NAME_NOT_FOUND — file not found

If the actual status differs from the expected value, the history entry is marked as failed.

{{variable}} placeholders are supported in host, domain, username, password, NT hash, share path, file path, directory path, and file content fields.

The history panel shows the overall success/fail status and the target host for each past execution. Expanding an entry shows each command’s status, NT status code, and any rich response (shares, file listing, file content).