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: rtsp.lua
Close
--- -- This Real Time Streaming Protocol (RTSP) library implements only a minimal -- subset of the protocol needed by the current scripts. -- -- @copyright Same as Nmap--See https://nmap.org/book/man-legal.html -- @author Patrik Karlsson <patrik@cqure.net> -- -- The library contains the following classes: -- -- * <code>Request</code> -- ** This class contains the functions needed to create the RTSP request -- -- * <code>Response</code> -- ** This class contains the functions needed to parse the RTSP response -- -- * <code>Client</code> -- ** This class contains the RTSP client, a class responsible for sending -- and receiving requests and responses to/from the server -- -- * <code>Helper</code> -- ** This class serves as the main interface for script writers -- -- The following sample code shows how to use the library: -- <code> -- local helper = rtsp.Helper:new(host, port) -- local status = helper:connect() -- local response -- status, response = helper:describe(url) -- helper:close() -- </code> -- -- Version 0.1 -- Created 10/23/2011 - v0.1 - Created by Patrik Karlsson -- local nmap = require "nmap" local stdnse = require "stdnse" local table = require "table" _ENV = stdnse.module("rtsp", stdnse.seeall) -- The RTSP Request object Request = { --- Creates a new Request instance -- @return o instance of Request new = function(self, url, headers) local o = { url = url, req = {}, headers = headers or {} } setmetatable(o, self) self.__index = self return o end, --- Sets the RTSP Request method -- @param method string containing the RTSP method setMethod = function(self, method) self.method = method end, --- Sets the RTSP sequence number -- @param cseq number containing the sequence number setCSeq = function(self, cseq) self.cseq = cseq end, --- Adds an optional header to the RTSP request -- @param header string containing the header name -- @param value string containing the header value addHeader = function(self, header, value) table.insert( self.headers, { header = value } ) end, --- Converts the Request to a string -- -- @return req string containing the request as a string __tostring = function(self) assert(self.cseq, "Request is missing required header CSeq") assert(self.url, "Request is missing URL") local req = stdnse.strjoin("\r\n", { ("%s %s RTSP/1.0"):format(self.method, self.url), ("CSeq: %d"):format(self.cseq) } ) .. "\r\n" if ( #self.headers > 0 ) then req = req .. stdnse.strjoin("\r\n", self.headers) .. "\r\n" end return req .. "\r\n" end, } -- The RTSP response instance Response = { --- Creates a new Response instance -- @param data string containing the unparsed data new = function(self, data) assert(data, "No data was supplied") local o = { raw = data, status = tonumber(data:match("^RTSP%/1%.0 (%d*) ")) } -- Split the response into a temporary array local tmp = stdnse.strsplit("\r\n", data) if ( not(tmp) ) then return nil end -- we should have atleast one entry if ( #tmp > 1 ) then o.headers = {} for i=2, #tmp do -- if we have an empty line, this should be the end of headers if ( #tmp[i] == 0 ) then break end local key, val = tmp[i]:match("^(.-): (.*)$") -- create a key per header name o.headers[key] = val end end setmetatable(o, self) self.__index = self return o end, } -- RTSP Client class Client = { -- Creates a new Client instance -- @param host table as received by the action method -- @param port table as received by the action method -- @return o instance of Client new = function(self, host, port) local o = { host = host, port = port, cseq = 0, headers = { }, retries = 3, timeout = 10 * 1000, } setmetatable(o, self) self.__index = self return o end, --- Sets the number of retries for socket reads -- @param retries number containing the number of retries setRetries = function(self, retries) self.retries = retries end, --- Sets the socket connection timeout in ms -- @param timeout number containing the timeout in ms setTimeout = function(self, timeout) self.timeout = timeout end, --- Adds a RTSP header to the request -- @param header string containing the header name -- @param value string containing the header value addHeader = function(self, header, value) table.insert(self.headers, { ("%s: %s"):format(header,value) } ) end, --- Connects to the RTSP server -- @return status true on success, false on failure -- @return err string containing the error message on failure connect = function(self) self.socket = nmap.new_socket() self.socket:set_timeout(self.timeout) local status = self.socket:connect(self.host, self.port) if ( not(status) ) then stdnse.debug2("Failed to connect to the server: %s", self.host.ip) return false, ("Failed to connect to the server: %s"):format(self.host.ip) end return true end, --- Sends a DESCRIBE request to the server and receives the response -- @param url string containing the RTSP URL -- @return status true on success, false on failure -- @return response Response instance on success -- err string containing the error message on failure describe = function(self, url) local req = Request:new(url, self.headers) req:setMethod("DESCRIBE") return self:exch(req) end, options = function(self, url) local req = Request:new(url, self.headers) req:setMethod("OPTIONS") return self:exch(req) end, --- Sends a request to the server and receives the response and attempts -- to retry if either send or receive fails. -- @param request instance of Request -- @return status true on success, false on failure -- @return response Response instance on success -- err string containing the error message on failure exch = function(self, req) local retries = self.retries local status, data self.cseq = self.cseq + 1 req:setCSeq( self.cseq ) repeat local err status, err = self.socket:send( tostring(req) ) -- check if send was successful, in case it wasn't AND -- this is our last retry, ABORT if ( not(status) and 0 == retries - 1 ) then stdnse.debug2("Failed to send request to server (%s)", err) return false, ("Failed to send request to server (%s)"):format(err) -- if send was successful, attempt to receive the response elseif ( status ) then status, data = self.socket:receive() -- if we got the response all right, break out of retry loop if ( status ) then break end end -- if either send or receive fails, re-connect the socket if ( not(status) ) then self:close() local status, err = self:connect() -- if re-connect fails, BAIL out of here if ( not(status) ) then stdnse.debug2("Failed to reconnect socket to server (%s)", err) return false, ("Failed to reconnect socket to server (%s)"):format(err) end end retries = retries - 1 until( status or retries == 0 ) if( not(status) ) then stdnse.debug2("Failed to receive response from server (%s)", data) return false, ("Failed to receive response from server (%s)"):format(data) end return true, Response:new(data) end, --- Closes the RTSP socket with the server close = function(self) return self.socket:close() end, } -- The Helper class is the main script interface Helper = { -- Creates a new Helper instance -- @param host table as received by the action method -- @param port table as received by the action method -- @return o instance of Client new = function(self, host, port) local o = { host = host, port = port, client = Client:new(host, port) } setmetatable(o, self) self.__index = self return o end, -- Connects to the RTSP server -- @return status true on success, false on failure -- @return err string containing the error message on failure connect = function(self) return self.client:connect() end, -- Closes the RTSP socket with the server close = function(self) return self.client:close() end, -- Sends a DESCRIBE request to the server and receives the response -- -- @param url string containing the RTSP URL -- @return status true on success, false on failure -- @return response string containing the unparsed RTSP response on success -- err string containing the error message on failure describe = function(self, url) return self.client:describe(url) end, options = function(self, url) return self.client:options(url) end, } return _ENV;