@@ -117,7 +117,7 @@ def get_sql_logins
117
117
sql_logins = [ ]
118
118
119
119
# Fuzz the principal_id parameter passed to the SUSER_NAME function
120
- ( 1 ..datastore [ 'FuzzNum' ] ) . each do |principal_id |
120
+ ( 1 ..datastore [ 'FuzzNum' ] ) . each do |principal_id |
121
121
# Setup query
122
122
sql = "SELECT SUSER_NAME(#{ principal_id } ) as login"
123
123
@@ -142,10 +142,12 @@ def verify_logins(sql_logins_list)
142
142
# Create array for later use
143
143
verified_sql_logins = [ ]
144
144
145
+ fake_db_name = Rex ::Text . rand_text_alpha_upper ( 24 )
146
+
145
147
# Check if the user has the db_owner role is any databases
146
148
sql_logins_list . each do |sql_login |
147
149
# Setup query
148
- sql = "EXEC sp_defaultdb '#{ sql_login } ', 'NOTAREALDATABASE1234ABCD '"
150
+ sql = "EXEC sp_defaultdb '#{ sql_login } ', '#{ fake_db_name } '"
149
151
150
152
# Execute query
151
153
result = mssql_query ( sql )
@@ -155,12 +157,12 @@ def verify_logins(sql_logins_list)
155
157
result = parse_results [ 0 ]
156
158
157
159
# Check if sid resolved to a sql login
158
- if result . include? 'NOTAREALDATABASE1234ABCD'
160
+ if result . include? ( fake_db_name )
159
161
verified_sql_logins . push ( sql_login ) unless verified_sql_logins . include? ( sql_login )
160
162
end
161
163
162
164
# Check if sid resolved to a sql login
163
- if result . include? 'alter the login'
165
+ if result . include? ( 'alter the login' )
164
166
# Add sql server login to verified list
165
167
verified_sql_logins . push ( sql_login ) unless verified_sql_logins . include? ( sql_login )
166
168
end
0 commit comments