OXIESEC PANEL
- Current Dir:
/
/
usr
/
share
/
nmap
/
nselib
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
08/07/2020 12:36:00 PM
rwxr-xr-x
📄
afp.lua
71.92 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ajp.lua
16.69 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
amqp.lua
10.5 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
anyconnect.lua
4.45 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
asn1.lua
14.57 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
base32.lua
7.33 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
base64.lua
5.67 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bin.lua
12.89 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bit.lua
2.43 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bitcoin.lua
16.99 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bits.lua
1.82 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bittorrent.lua
40.77 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
bjnp.lua
9.45 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
brute.lua
50.04 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
cassandra.lua
5.78 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
citrixxml.lua
16 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
coap.lua
76.24 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
comm.lua
10.75 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
creds.lua
18.22 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
cvs.lua
3.13 KB
04/16/2018 01:11:39 AM
rw-r--r--
📁
data
-
08/07/2020 12:36:00 PM
rwxr-xr-x
📄
datafiles.lua
11.05 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
datetime.lua
1.16 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
dhcp.lua
29.17 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
dhcp6.lua
19.87 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
dns.lua
51.44 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
dnsbl.lua
19.02 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
dnssd.lua
12.57 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
drda.lua
24.2 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
eap.lua
7.64 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
eigrp.lua
14.47 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
formulas.lua
5.35 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ftp.lua
9.03 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
geoip.lua
1.71 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
giop.lua
18.44 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
gps.lua
3.05 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
http.lua
105.81 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
httpspider.lua
36.15 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
iax2.lua
9.6 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ike.lua
15.02 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
imap.lua
9.59 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
informix.lua
39.76 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ipOps.lua
26.92 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ipmi.lua
10.02 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ipp.lua
12.54 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
irc.lua
757 bytes
04/16/2018 01:11:39 AM
rw-r--r--
📄
iscsi.lua
21.45 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
isns.lua
15.34 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
jdwp.lua
43.57 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
json.lua
11.65 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ldap.lua
31.86 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
lfs.luadoc
1.68 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
libssh2-utility.lua
4.39 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
libssh2.luadoc
4.75 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
listop.lua
4.66 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
lpeg-utility.lua
5.64 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
lpeg.luadoc
351 bytes
04/16/2018 01:11:39 AM
rw-r--r--
📄
ls.lua
10.96 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
match.lua
2.05 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
membase.lua
9.88 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
mobileme.lua
8.46 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
mongodb.lua
21.29 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
mqtt.lua
28.95 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
msrpc.lua
179.93 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
msrpcperformance.lua
29.72 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
msrpctypes.lua
167.61 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
mssql.lua
110.87 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
multicast.lua
6.1 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
mysql.lua
17.09 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
natpmp.lua
5.04 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ncp.lua
36 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ndmp.lua
11.58 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
netbios.lua
13.9 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
nmap.luadoc
40.34 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
nrpc.lua
4.42 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
nsedebug.lua
3.49 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
omp2.lua
4.77 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
openssl.luadoc
7.08 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ospf.lua
15.29 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
packet.lua
36.65 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
pcre.luadoc
6.79 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
pgsql.lua
20.61 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
pop3.lua
5.7 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
pppoe.lua
29.95 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
proxy.lua
12.04 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rdp.lua
11.05 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
re.lua
8.22 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
redis.lua
3.59 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rmi.lua
47.89 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rpc.lua
106.22 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rpcap.lua
11.19 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rsync.lua
5.19 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
rtsp.lua
8.67 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
sasl.lua
16.38 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
shortport.lua
8.01 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
sip.lua
30.56 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
slaxml.lua
17.9 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
smb.lua
175.85 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
smb2.lua
16.32 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
smbauth.lua
37.53 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
smtp.lua
19.81 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
snmp.lua
15.99 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
socks.lua
8.26 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
srvloc.lua
12.25 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ssh1.lua
8.88 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
ssh2.lua
11.88 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
sslcert.lua
33.34 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
sslv2.lua
9.63 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
stdnse.lua
45.93 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
strbuf.lua
4.52 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
strict.lua
2.53 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
stun.lua
11.51 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
tab.lua
3.35 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
target.lua
3.93 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
tftp.lua
9.38 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
tls.lua
56.16 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
tn3270.lua
43.75 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
tns.lua
64.17 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
unicode.lua
14.32 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
unittest.lua
12.33 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
unpwdb.lua
10.08 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
upnp.lua
11.18 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
url.lua
12.09 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
versant.lua
8.6 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
vnc.lua
23.3 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
vulns.lua
76.29 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
vuzedht.lua
16.62 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
wsdd.lua
12.03 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
xdmcp.lua
11.9 KB
04/16/2018 01:11:39 AM
rw-r--r--
📄
xmpp.lua
15.88 KB
04/16/2018 01:11:39 AM
rw-r--r--
Editing: rpcap.lua
Close
--- -- This library implements the fundamentals needed to communicate with the -- WinPcap Remote Capture Daemon. It currently supports authenticating to -- the service using either NULL-, or Password-based authentication. -- In addition it has the capabilities to list the interfaces that may be -- used for sniffing. -- -- The library consist of classes handling <code>Request</code> and classes -- handling <code>Response</code>. The communication with the service is -- handled by the <code>Comm</code> class, and the main interface for script -- writers is kept under the <code>Helper</code> class. -- -- The following code snippet illustrates how to connect to the service and -- extract information about network interfaces: -- <code> -- local helper = rpcap.Helper:new(host, port) -- helper:connect() -- helper:login() -- helper:findAllInterfaces() -- helper:close() -- </code> -- -- For a more complete example, consult the rpcap-info.nse script. -- -- @author Patrik Karlsson <patrik@cqure.net> local bin = require "bin" local ipOps = require "ipOps" local match = require "match" local nmap = require "nmap" local stdnse = require "stdnse" local table = require "table" _ENV = stdnse.module("rpcap", stdnse.seeall) RPCAP = { MessageType = { ERROR = 1, FIND_ALL_INTERFACES = 2, AUTH_REQUEST = 8, }, -- Holds the two supported authentication mechanisms PWD and NULL Authentication = { PWD = { new = function(self, username, password) local o = { type = 1, username = username, password = password, } setmetatable(o, self) self.__index = self return o end, __tostring = function(self) local DUMMY = 0 return bin.pack(">SSSSAA", self.type, DUMMY, #self.username, #self.password, self.username, self.password) end, }, NULL = { new = function(self) local o = { type = 0, } setmetatable(o, self) self.__index = self return o end, __tostring = function(self) local DUMMY = 0 return bin.pack(">SSSS", self.type, DUMMY, 0, 0) end, } }, -- The common request and response header Header = { size = 8, new = function(self, type, value, length) local o = { version = 0, type = type, value= value or 0, length = length or 0 } setmetatable(o, self) self.__index = self return o end, parse = function(data) local header = RPCAP.Header:new() local pos pos, header.version, header.type, header.value, header.length = bin.unpack(">CCSI", data) return header end, __tostring = function(self) return bin.pack(">CCSI", self.version, self.type, self.value, self.length) end, }, -- The implemented request types are kept here Request = { Authentication = { new = function(self, data) local o = { header = RPCAP.Header:new(RPCAP.MessageType.AUTH_REQUEST, nil, #data), data = data, } setmetatable(o, self) self.__index = self return o end, __tostring = function(self) return tostring(self.header) .. tostring(self.data) end, }, FindAllInterfaces = { new = function(self) local o = { header = RPCAP.Header:new(RPCAP.MessageType.FIND_ALL_INTERFACES) } setmetatable(o, self) self.__index = self return o end, __tostring = function(self) return tostring(self.header) end, } }, -- Parsers for responses are kept here Response = { Authentication = { new = function(self) local o = { } setmetatable(o, self) self.__index = self return o end, parse = function(data) local resp = RPCAP.Response.Authentication:new() local pos = RPCAP.Header.size + 1 resp.header = RPCAP.Header.parse(data) return resp end }, Error = { new = function(self) local o = { } setmetatable(o, self) self.__index = self return o end, parse = function(data) local err = RPCAP.Response.Error:new() local pos = RPCAP.Header.size + 1 err.header = RPCAP.Header.parse(data) pos, err.error = bin.unpack("A" .. err.header.length, data, pos) return err end }, FindAllInterfaces = { new = function(self) local o = { } setmetatable(o, self) self.__index = self return o end, parse = function(data) -- Each address is made up of 4 128 byte fields, this function -- parses these fields and return the response, if it -- understands it. Otherwise it simply increases the pos by the -- correct offset, to get us to the next field. local function parseField(data, pos) local offset = pos local family, port pos, family, port = bin.unpack(">SS", data, pos) if ( family == 0x0017 ) then -- not sure why... pos = pos + 4 local ipv6 pos, ipv6 = bin.unpack("B16", data, pos) return offset + 128, ipOps.bin_to_ip(ipv6) elseif ( family == 0x0002 ) then local ipv4 pos, ipv4 = bin.unpack("B4", data, pos) return offset + 128, ipOps.bin_to_ip(ipv4) end return offset + 128, nil end -- Parses one of X addresses returned for an interface local function parseAddress(data, pos) local fields = {"ip", "netmask", "bcast", "p2p"} local addr = {} for _, f in ipairs(fields) do pos, addr[f] = parseField(data, pos) end return pos, addr end local resp = RPCAP.Response.FindAllInterfaces:new() local pos = RPCAP.Header.size + 1 resp.header = RPCAP.Header.parse(data) resp.ifaces = {} for i=1, resp.header.value do local name_len, desc_len, iface_flags, addr_count, dummy pos, name_len, desc_len, iface_flags, addr_count, dummy = bin.unpack(">SSISS", data, pos) local name, desc pos, name, desc = bin.unpack("A" .. name_len .. "A" .. desc_len, data, pos) local addrs = {} for j=1, addr_count do local addr pos, addr = parseAddress(data, pos) local cidr if ( addr.netmask ) then local bits = ipOps.ip_to_bin(addr.netmask) local ones = bits:match("^(1*)") cidr = #ones table.insert(addrs, ("%s/%d"):format(addr.ip,cidr)) else table.insert(addrs, addr.ip) end end table.insert(resp.ifaces, { name = name, desc = desc, addrs = addrs }) end return resp end, } } } -- Maps packet types to classes RPCAP.TypeToClass = { [1] = RPCAP.Response.Error, [130] = RPCAP.Response.FindAllInterfaces, [136] = RPCAP.Response.Authentication, } -- The communication class Comm = { -- Creates a new instance of the Comm class -- @param host table -- @param port table -- @return o instance of Comm new = function(self, host, port) local o = { host = host, port = port, socket = nmap.new_socket() } setmetatable(o, self) self.__index = self return o end, -- Connects the socket to the server connect = function(self) return self.socket:connect(self.host, self.port) end, -- Sends an instance of the request class to the server -- @param req class instance -- @return status true on success, false on failure -- @return err string containing error message if status is false send = function(self, req) return self.socket:send(req) end, -- receives a packet and attempts to parse it if it has a supported parser -- in RPCAP.TypeToClass -- @return status true on success, false on failure -- @return resp instance of a Response class or -- err string containing the error message recv = function(self) local status, hdr_data = self.socket:receive_buf(match.numbytes(RPCAP.Header.size), true) if ( not(status) ) then return status, hdr_data end local header = RPCAP.Header.parse(hdr_data) if ( not(header) ) then return false, "rpcap: Failed to parse header" end local status, data = self.socket:receive_buf(match.numbytes(header.length), true) if ( not(status) ) then return false, "rpcap: Failed to read packet data" end if ( RPCAP.TypeToClass[header.type] ) then local resp = RPCAP.TypeToClass[header.type].parse(hdr_data .. data) if ( resp ) then return true, resp end end return false, "Failed to receive response from server" end, -- Sends and request and receives the response -- @param req the instance of the Request class to send -- @return status true on success, false on failure -- @return resp instance of a Response class or -- err string containing the error message exch = function(self, req) local status, data = self:send(tostring(req)) if ( not(status) ) then return status, data end return self:recv() end, -- closes the socket close = function(self) return self.socket:close() end, } Helper = { -- Creates a new instance of the Helper class -- @param host table -- @param port table -- @return o instance of Helper new = function(self, host, port) local o = { host = host, port = port, comm = Comm:new(host, port) } setmetatable(o, self) self.__index = self return o end, -- Connects to the server connect = function(self) return self.comm:connect(self.host, self.port) end, -- Authenticates to the service, in case no username or password is given -- NULL authentication is assumed. -- @param username [optional] -- @param password [optional] -- @return status true on success, false on failure -- @return err string containing error message on failure login = function(self, username, password) local auth if ( username and password ) then auth = RPCAP.Authentication.PWD:new(username, password) else auth = RPCAP.Authentication.NULL:new() end local req = RPCAP.Request.Authentication:new(tostring(auth)) local status, resp = self.comm:exch(req) if ( not(status) ) then return false, resp end if ( status and resp.error ) then return false, resp.error end return true end, -- Requests a list of all interfaces -- @return table containing interfaces and addresses findAllInterfaces = function(self) local req = RPCAP.Request.FindAllInterfaces:new() local status, resp = self.comm:exch(req) if ( not(status) ) then return false, resp end local results = {} for _, iface in ipairs(resp.ifaces) do local entry = {} entry.name = iface.name table.insert(entry, iface.desc) table.insert(entry, { name = "Addresses", iface.addrs }) table.insert(results, entry) end return true, results end, -- Closes the connection to the server close = function(self) return self.comm:close() end, } return _ENV;