Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add module to brute force the Cisco IronPort application #2224

Merged
merged 4 commits into from Aug 16, 2013
Merged

Add module to brute force the Cisco IronPort application #2224

merged 4 commits into from Aug 16, 2013

Conversation

juushya
Copy link
Contributor

@juushya juushya commented Aug 14, 2013

No description provided.

This module scans for Cisco Ironport SMA, WSA and ESA web login portals, finds AsyncOS version and performs login brute force to identify valid credentials.
})

if (res)
cookie = res.headers['Set-Cookie'].split('; ')[0]
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the module. You definitely wanna handle the 'Set-Cookie' key possibly not being there (which would be nil), this occurs when you're firing against the wrong web server, or for some reason a newer/future version of your target doesn't set this. Example:

[-] Auxiliary failed: NoMethodError undefined method `split' for nil:NilClass
[-] Call stack:
[-]   /msf/modules/auxiliary/scanner/http/cisco_ironport_enum.rb:67:in `is_app_ironport?'
[-]   /msf/modules/auxiliary/scanner/http/cisco_ironport_enum.rb:41:in `run_host'
[-]   /msf/lib/msf/core/auxiliary/scanner.rb:94:in `block in run'
[-]   /msf/lib/msf/core/thread_manager.rb:100:in `call'
[-]   /msf/lib/msf/core/thread_manager.rb:100:in `block in spawn'
[*] Auxiliary module execution completed

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks. Valid point. I've added a new check to ensure 'Set-Cookie' is not null, in the new update.

Added code to check successful conn first, so now if there is no connectivity on target port, script aborts run.
New check to ensure 'set-cookie' is set by the app as expected, before any further fingerprinting & b-f starts.
If the app is not Ironport, 'set-cookie' will not be set & remains null, and so script aborts run.
De-registered 'TARGETURI.'
Registered 'username' and 'password' with default value.
Changed some run messages.
And lastly, changed the csrf key piece cos I miss a cold beer right now.
@wchen-r7
Copy link
Contributor

Thanks for the update, @juushya. It looks like we don't have the hardware to verify testing. Could you please send us a pcap? You can e-mail it to msfdev[at]metasploit.com. Thanks.

@juushya
Copy link
Contributor Author

juushya commented Aug 15, 2013

Hey @wchen-r7 I do not have the key file so pcap will not be readable. I can share the burp capture though. Please let me know if that suffices.

@wchen-r7
Copy link
Contributor

Yes, please.

begin
res = send_request_cgi(
{
'uri' => '/login?CSRFKey=5PADuD3Z-10v3-b33R-5h0t-0n4h3R0cK555',
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have some concern over the CSRFKey parameter. You can hardcode this? The burp logs show they're always updated.

Thx.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reviewed this part. Actually, auth req is a POST to /login & the key is not going in with submission. This parameter should be removed for now. Will update the code. Thanks.

removed the csrfkey parameter from login uri.
@wchen-r7 wchen-r7 merged commit e4885b2 into rapid7:master Aug 16, 2013
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants