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 shortport = require "shortport" local formulas = require "formulas" description = [[ Detects the CCcam service (software for sharing subscription TV among multiple receivers). The service normally runs on port 12000. It distinguishes itself by printing 16 random-looking bytes upon receiving a connection. Because the script attempts to detect "random-looking" bytes, it has a small chance of failing to detect the service when the data do not seem random enough.]] categories = {"version"} author = "David Fifield" local NUM_TRIALS = 2 local function trial(host, port) local status, data, s s = nmap.new_socket() status, data = s:connect(host, port) if not status then return end status, data = s:receive_bytes(0) if not status then s:close() return end s:close() return data end portrule = shortport.version_port_or_service({10000, 10001, 12000, 12001, 16000, 16001}, "cccam") function action(host, port) local seen = {} -- Try a couple of times to see that the response isn't constant. (But -- more trials also increase the chance that we will reject a legitimate -- cccam service.) for i = 1, NUM_TRIALS do local data data = trial(host, port) if not data or seen[data] or #data ~= 16 or not formulas.looksRandom(data) then return end seen[data] = true end port.version.name = "cccam" port.version.version = "CCcam DVR card sharing system" nmap.set_port_version(host, port) end