Skip to content

Commit

Permalink
Deal with incomplete unattend.xml files
Browse files Browse the repository at this point in the history
An incomplete unattend.xml no longer throws a NoMethodError on nil,
instead just advises that the file is incomplete.
  • Loading branch information
Tod Beardsley committed Oct 14, 2013
1 parent f1efe13 commit 50b1dd9
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions modules/auxiliary/scanner/dcerpc/windows_deployment_services.rb
Expand Up @@ -134,7 +134,7 @@ def query_host(rhost)
table.print
print_line
else
print_error("No Unattend files received, service is unlikely to be configured for completely unattended installation.")
print_error("No Unattend files received, service may be busy or not configured for completely unattended installation.")
end
end

Expand Down Expand Up @@ -162,7 +162,7 @@ def request_client_unattend(architecture)
print_status("Sending #{architecture[0]} Client Unattend request ...")
response = dcerpc.call(0, wdsc_packet)

if (dcerpc.last_response != nil and dcerpc.last_response.stub_data != nil)
if (dcerpc.last_response and dcerpc.last_response.stub_data)
vprint_status('Received response ...')
data = dcerpc.last_response.stub_data

Expand All @@ -185,8 +185,14 @@ def request_client_unattend(architecture)

def extract_unattend(data)
start = data.index('<?xml')
finish = data.index('</unattend>')+10
return data[start..finish]
finish = data.index('</unattend>')
if start && finish
finish = finish+10
return data[start..finish]
else
print_error "Incomplete transmission of unattend file."
return nil
end
end

def parse_client_unattend(data)
Expand Down

0 comments on commit 50b1dd9

Please sign in to comment.