Home page logo
/
Zenmap screenshot
Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News
Example Nmap output

Library wsdd

A library that enables scripts to send Web Service Dynamic Discovery probes and perform some very basic decoding of responses. The library is in no way a full WSDD implementation it's rather the result of some packet captures and some creative coding.

The "general" probe was captured of the wire of a Windows 7 box while connecting to the network. The "wcf" probe was captured from a custom tool tool performing WCF discovery in .NET 4.0.

More information about the protocol can be found here:

The library contains the following classes

  • Comm
** A class that handles most communication
  • Helper
** The helper class wraps the Comm class using functions with a more descriptive name.
  • Util
** The Util class contains a number of static functions mainly used to convert data.
  • Decoders
** The Decoders class contains static functions used for decoding probe matches

The following code snippet shows how the library can be used:

local helper = wsdd.Helper:new()
helper:setMulticast(true)
return stdnse.format_output( helper:discoverDevices() )

Author:
"Patrik Karlsson <patrik@cqure.net>"

Copyright© Same as Nmap--See http://nmap.org/book/man-legal.html

Source: http://nmap.org/svn/nselib/wsdd.lua

Functions

['error'] (data)

Decodes an error message received from the service

['general'] (data)

Decodes a general probe response

['wcf'] (data)

Decodes a wcf probe response

discoverDevices (self)

Sends a general probe to attempt to discover WSDD supporting devices

discoverServices (self, probename)

Sends a probe, receives and decodes a probematch

discoverWCFServices (self)

Sends a probe that attempts to discover WCF web services

generateUUID ()

Creates a UUID

getProbeByName (name)

Retrieves a probe from the probes table by name

new (self, host, port)

Creates a new helper instance

new (self, host, port)

Creates a new helper instance

recvProbeMatches (self)

Receives one or more responses for a Probe

sendProbe (self)

Sends a probe over the wire

setMulticast (self, mcast)

Instructs the helper to use unconnected sockets supporting multicast

setProbe (self, probe)

Sets a probe from the probes table to send

setTimeout (self, timeout)

Sets the timeout for socket reads

setTimeout (self, timeout)

Sets the timeout for socket reads



Functions

['error'] (data)

Decodes an error message received from the service

Parameters

  • data: string containing the response as received over the wire

Return values:

  1. status true on success, false on failure
  2. err string containing the error message
['general'] (data)

Decodes a general probe response

Parameters

  • data: string containing the response as received over the wire

Return values:

  1. status true on success, false on failure
  2. response table containing the following fields msgid, xaddrs, types err string containing the error message
['wcf'] (data)

Decodes a wcf probe response

Parameters

  • data: string containing the response as received over the wire

Return values:

  1. status true on success, false on failure
  2. response table containing the following fields msgid, xaddrs, types err string containing the error message
discoverDevices (self)

Sends a general probe to attempt to discover WSDD supporting devices

Parameters

  • self:

Return values:

  1. status true on success, false on failure
  2. matches table containing responses, suitable for printing using the stdnse.format_output function
discoverServices (self, probename)

Sends a probe, receives and decodes a probematch

Parameters

  • self:
  • probename: string containing the name of the probe to send check probes for available probes

Return values:

  1. status true on success, false on failure
  2. matches table containing responses, suitable for printing using the stdnse.format_output function
discoverWCFServices (self)

Sends a probe that attempts to discover WCF web services

Parameters

  • self:

Return values:

  1. status true on success, false on failure
  2. matches table containing responses, suitable for printing using the stdnse.format_output function
generateUUID ()

Creates a UUID

Return value:

uuid string containing a uuid
getProbeByName (name)

Retrieves a probe from the probes table by name

Parameters

  • name: string containing the name of the probe to retrieve

Return value:

probe table containing the probe or nil if not found
new (self, host, port)

Creates a new helper instance

Parameters

  • self:
  • host: string containing the host name or ip
  • port: number containing the port to connect to

Return value:

o a new instance of Helper
new (self, host, port)

Creates a new helper instance

Parameters

  • self:
  • host: string containing the host name or ip
  • port: number containing the port to connect to

Return value:

o a new instance of Helper
recvProbeMatches (self)

Receives one or more responses for a Probe

Parameters

  • self:

Return value:

table containing decoded responses suitable for stdnse.format_output
sendProbe (self)

Sends a probe over the wire

Parameters

  • self:

Return value:

status true on success, false on failure
setMulticast (self, mcast)

Instructs the helper to use unconnected sockets supporting multicast

Parameters

  • self:
  • mcast: boolean true if multicast is to be used, false otherwise
setProbe (self, probe)

Sets a probe from the probes table to send

Parameters

  • self:
  • probe: table containing a probe from probes
setTimeout (self, timeout)

Sets the timeout for socket reads

Parameters

  • self:
  • timeout:
setTimeout (self, timeout)

Sets the timeout for socket reads

Parameters

  • self:
  • timeout:

Nmap Site Navigation

Intro Reference Guide Book Install Guide
Download Changelog Zenmap GUI Docs
Bug Reports OS Detection Propaganda Related Projects
In the Movies In the News
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]