mirror of
https://github.com/nmap/nmap.git
synced 2025-12-09 06:01:28 +00:00
Add support for RACF to cics-user-enum. Closes #619
This commit is contained in:
@@ -35,6 +35,7 @@ CICS User ID enumeration script for the CESL/CESN Login screen.
|
|||||||
--
|
--
|
||||||
-- @changelog
|
-- @changelog
|
||||||
-- 2016-08-29 - v0.1 - created by Soldier of Fortran
|
-- 2016-08-29 - v0.1 - created by Soldier of Fortran
|
||||||
|
-- 2016-12-19 - v0.2 - Added RACF support
|
||||||
--
|
--
|
||||||
-- @author Philip Young
|
-- @author Philip Young
|
||||||
-- @copyright Same as Nmap--See http://nmap.org/book/man-legal.html
|
-- @copyright Same as Nmap--See http://nmap.org/book/man-legal.html
|
||||||
@@ -106,7 +107,8 @@ Driver = {
|
|||||||
end
|
end
|
||||||
-- At this point we MUST be at CESL/CESN to try accounts.
|
-- At this point we MUST be at CESL/CESN to try accounts.
|
||||||
-- If we're not then we quit with an error
|
-- If we're not then we quit with an error
|
||||||
if not (self.tn3270:find('SIGN ON TO CICS') and self.tn3270:find("Signon to CICS")) then
|
if not (self.tn3270:find('SIGN ON TO CICS') or self.tn3270:find("Signon to CICS")) then
|
||||||
|
local err = brute.Error:new( "Can't get to CESL")
|
||||||
err:setRetry( true )
|
err:setRetry( true )
|
||||||
return false, err
|
return false, err
|
||||||
end
|
end
|
||||||
@@ -117,21 +119,21 @@ Driver = {
|
|||||||
self.tn3270:get_all_data()
|
self.tn3270:get_all_data()
|
||||||
stdnse.debug(2,"Screen Recieved for User ID: %s", pass)
|
stdnse.debug(2,"Screen Recieved for User ID: %s", pass)
|
||||||
self.tn3270:get_screen_debug(2)
|
self.tn3270:get_screen_debug(2)
|
||||||
-- So far only support for TopSecret, ACF2
|
|
||||||
-- TODO: Add RACF error messages if they exist?
|
|
||||||
if self.tn3270:find('TSS7145E') or
|
if self.tn3270:find('TSS7145E') or
|
||||||
self.tn3270:find('ACF01004') then
|
self.tn3270:find('ACF01004') or
|
||||||
-- known invalid userid
|
self.tn3270:find('DFHCE3530') then
|
||||||
|
-- known invalid userid messages
|
||||||
-- TopSecret: TSS7145E
|
-- TopSecret: TSS7145E
|
||||||
-- ACF2: ACF01004
|
-- ACF2: ACF01004
|
||||||
-- RACF: TODO
|
-- RACF: DFHCE3530
|
||||||
stdnse.debug("Invalid CICS User ID: %s", string.upper(pass))
|
stdnse.debug("Invalid CICS User ID: %s", string.upper(pass))
|
||||||
return false, brute.Error:new( "Incorrect CICS User ID" )
|
return false, brute.Error:new( "Incorrect CICS User ID" )
|
||||||
elseif self.tn3270:find('TSS7102E') or
|
elseif self.tn3270:find('TSS7102E') or
|
||||||
self.tn3270:find('ACF01012') then
|
self.tn3270:find('ACF01012') or
|
||||||
|
self.tn3270:find('DFHCE3523') then
|
||||||
-- TopSecret: TSS7102E Password Missing
|
-- TopSecret: TSS7102E Password Missing
|
||||||
-- ACF2: ACF01012 PASSWORD NOT MATCHED
|
-- ACF2: ACF01012 PASSWORD NOT MATCHED
|
||||||
-- RACF: TODO
|
-- RACF: DFHCE3523 Please type your password.
|
||||||
stdnse.verbose("Valid CICS User ID: %s", string.upper(pass))
|
stdnse.verbose("Valid CICS User ID: %s", string.upper(pass))
|
||||||
return true, creds.Account:new("CICS User", string.upper(pass), creds.State.VALID)
|
return true, creds.Account:new("CICS User", string.upper(pass), creds.State.VALID)
|
||||||
else
|
else
|
||||||
@@ -244,9 +246,8 @@ action = function(host, port)
|
|||||||
local status, result = engine:start()
|
local status, result = engine:start()
|
||||||
-- port.version.extrainfo = "Security: " .. secprod
|
-- port.version.extrainfo = "Security: " .. secprod
|
||||||
-- nmap.set_port_version(host, port)
|
-- nmap.set_port_version(host, port)
|
||||||
return "result"
|
return result
|
||||||
else
|
else
|
||||||
return err
|
return err
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -54,8 +54,6 @@ Hidden fields will be listed below the screen with (row, col) coordinates.
|
|||||||
author = "Philip Young aka Soldier of Fortran"
|
author = "Philip Young aka Soldier of Fortran"
|
||||||
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
|
license = "Same as Nmap--See https://nmap.org/book/man-legal.html"
|
||||||
categories = {"safe", "discovery"}
|
categories = {"safe", "discovery"}
|
||||||
-- XXX Is this a real script?
|
|
||||||
--dependencies = {"tn3270-info"}
|
|
||||||
|
|
||||||
portrule = shortport.port_or_service({23,992}, {"tn3270"})
|
portrule = shortport.port_or_service({23,992}, {"tn3270"})
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user