Server : Apache/2.4.18 (Ubuntu) System : Linux canvaswebdesign 3.13.0-71-generic #114-Ubuntu SMP Tue Dec 1 02:34:22 UTC 2015 x86_64 User : oppastar ( 1041) PHP Version : 7.0.33-0ubuntu0.16.04.15 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, Directory : /usr/share/nmap/scripts/ |
Upload File : |
local nmap = require "nmap" local stdnse = require "stdnse" local table = require "table" description=[[ Discovers Telldus Technologies TellStickNet devices on the LAN. The Telldus TellStick is used to wirelessly control electric devices such as lights, dimmers and electric outlets. For more information: http://www.telldus.com/ ]] --- -- @usage -- nmap --script broadcast-tellstick-discover -- -- @output -- | broadcast-tellstick-discover: -- | 192.168.0.100 -- | Product: TellStickNet -- | MAC: ACCA12345678 -- | Activation code: 8QABCDEFGH -- |_ Version: 3 -- author = "Patrik Karlsson" license = "Same as Nmap--See https://nmap.org/book/man-legal.html" categories = {"broadcast", "safe"} prerule = function() return ( nmap.address_family() == 'inet' ) end action = function() local socket = nmap.new_socket("udp") local host, port = { ip = "255.255.255.255" }, { number = 30303, protocol = "udp" } socket:set_timeout(5000) if ( not(socket:sendto(host, port, "D")) ) then return stdnse.format_output(false, "Failed to send discovery request to server") end local output = {} while( true ) do local status, response = socket:receive() if ( not(status) ) then break end local status, _, _, ip = socket:get_info() if ( not(status) ) then stdnse.debug2("Failed to get socket information") break end local prod, mac, activation, version = response:match("^([^:]*):([^:]*):([^:]*):([^:]*)$") if ( prod and mac and activation and version ) then local output_part = { name = ip, ("Product: %s"):format(prod), ("MAC: %s"):format(mac), ("Activation code: %s"):format(activation), ("Version: %s"):format(version) } table.insert(output, output_part) end end if ( 0 < #output ) then return stdnse.format_output(true, output) end end