diff --git a/scripts/rlogin-brute.nse b/scripts/rlogin-brute.nse index 6c1bb47f6..2601c2a26 100644 --- a/scripts/rlogin-brute.nse +++ b/scripts/rlogin-brute.nse @@ -10,13 +10,13 @@ The script needs to be run in privileged mode. -- @output -- PORT STATE SERVICE -- 513/tcp open login --- | rlogin-brute: +-- | rlogin-brute: -- | Accounts -- | nmap:test - Valid credentials -- | Statistics -- |_ Performed 4 guesses in 5 seconds, average tps: 0 -- --- @args rlogin-brute.timeout number +-- @args rlogin-brute.timeout number -- Version 0.1 -- Created 11/02/2011 - v0.1 - created by Patrik Karlsson @@ -42,14 +42,14 @@ Driver = { setmetatable(o, self) self.__index = self return o - end, - + end, + -- connects to the rlogin service -- it sets the source port to a random value between 513 and 1024 connect = function(self) local status - + self.socket = nmap.new_socket() -- apparently wee need a source port below 1024 -- this approach is not very elegant as it causes address already in @@ -75,7 +75,7 @@ Driver = { end return status end, - + login = function(self, username, password) local data = ("\0%s\0%s\0vt100/9600\0"):format(username, username) local status, err = self.socket:send(data) @@ -88,11 +88,11 @@ Driver = { end if ( data ~= "\0" ) then stdnse.print_debug(2, "ERROR: Expected null byte") - local err = brute.Error:new( "Expected null byte" ) - err:setRetry( true ) + local err = brute.Error:new( "Expected null byte" ) + err:setRetry( true ) return false, err end - + status, data = self.socket:receive() if (not(status)) then local err = brute.Error:new("Failed to read response from server") @@ -101,11 +101,11 @@ Driver = { end if ( data ~= "Password: " ) then stdnse.print_debug(2, "ERROR: Expected password prompt") - local err = brute.Error:new( "Expected password prompt" ) - err:setRetry( true ) + local err = brute.Error:new( "Expected password prompt" ) + err:setRetry( true ) return false, err end - + status, err = self.socket:send(password .. "\r") status, data = self.socket:receive() if (not(status)) then @@ -113,21 +113,21 @@ Driver = { err:setRetry( true ) return false, err end - + status, data = self.socket:receive() if (not(status)) then local err = brute.Error:new("Failed to read response from server") err:setRetry( true ) return false, err end - + if ( data:match("[Pp]assword") or data:match("[Ii]ncorrect") ) then return false, brute.Error:new( "Incorrect password" ) end - + return true, brute.Account:new(username, password, creds.State.VALID) end, - + disconnect = function(self) return self.socket:close() end, @@ -142,13 +142,13 @@ action = function(host, port) local options = { timeout = stdnse.get_script_args("rlogin-brute.timeout") } - + options.timeout = options.timeout and tonumber(options.timeout) * 1000 or 10000 local engine = brute.Engine:new(Driver, host, port, options) - engine.options.script_name = SCRIPT_NAME + engine.options.script_name = SCRIPT_NAME status, result = engine:start() return result end