Yay, so where no servers were being attacked with this before, everyone will
do it now.

----- Original Message -----
From: "Cruise" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, June 21, 2002 10:09 AM
Subject: [hlcoders] Fwd: Half-life fake players bug


> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: MD5
>
> This went out on BugTraq earlier...figured people here might be
> interested...
>
> I have the attachment he mentions in the mail (won't be allowed on
> this list), so if anyone wants it, let me know.
>
> [ cruise / www.casual-tempest.net / www.transference.org ]
>
> - ----
> ######################################################################
>
> Application: Half-life (and all the mods that run on it)
> Version:     All the versions (1.1.0.9 vulnerable too)
> Bug:         Wrong management of the players in multiplayer game
> Risk:        The multiplayer server can be filled with fake players,
>              so nobody can play in that server.
> Author:      Auriemma Luigi (e-mail: bugtest at sitoverde.com)
>
> ######################################################################
>
>
> 1) Introduction
> 2) Bug
> 3) The Code
> 4) Fix
> 5) Philosophy
>
> - ---
>
> 1) Introduction
>
> This bug has been showed to Valve and the support of Sierra at the
> following mail addresses over 1 month ago: [EMAIL PROTECTED]
> and [EMAIL PROTECTED]
> Unfortunally nobody has answer to my mails (2 mails to Valve), but
> I have decided to publish this all the same so if Valve don't release
> patch somebody else can try to solve the problem...
>
> - ---
>
> 2) Bug
>
> The protocol of Half-life multiplayer server is simple, and I have
> seen that it is really similar to the Quake3 protocol, but this last
> is compressed or ciphred.
> However the handshake beetween the client and the server (default port
> 27015) is the following:
>
> - - the client send an UDP datagram to the server with the a challenge
>   request.
>   The request is: "\xff\xff\xff\xffgetchallenge\n"
>
> - - the server send the key of the current challenge to the client.
>   This key change when Halflife start.
>   (a little strange thing is that the key sended by the server is an
>   unsigned int but the client read it as an int (???))
>
> - - the client now have the key so for complete the handshake it send
>   the connection request:
>   "connect %protocol %challenge_key %cd_key %player_info"
>
>   %protocol can be get by querying the server with an info request
>   but it is not useful, the %challenge_key was get, the %cd_key is
>   a key generated with the cd key inserted during the installation.
>   With a same %cd_key, in the same server can play max 4 players, so
>   we use a key filled with random chars and we can insert infinite
>   player from the same IP.
>   EACH PLAYER MUST HAVE AN UDP SOURCE PORT DIFFERENT!!!
>   %player_info is a set of not important options to send to the
>   server for give info about the new player.
>
> - - now the handshake is finished and for the server a new player is
>   entered, but it is WRONG!!!
>   Now the server answer with an acknowledgement, where we can see
>   our IP and our port.
>   If the server have reached the maximum number of players, it will
>   answer with "Server Full", and if the challenge_key that we have
>   sended to it is wrong, it will answer with "Bad Challenge".
>
> Naturally exist a timeout for the players connected to the server
> and it is 60 seconds (default).
> So every 60 secs (or less) the attacker can "create" new players so
> the server will be filled forever and the real players that want to
> play in it will receive a "Server full" message.
> The server admin can only see that the maximum number of players is
> reached, but when he watch the names of the players in his server, he
> found nobody!
>
> - ---
>
> 3) The Code
>
> I have attached a proof-of-concept of the attack that run on Linux
> and Win.
> Other detailed info about the attack can be found in the code.
> The UDP packets are not spoofeds but we can control the real
> situation on the server, because it send to us messages as "Server
> full" and "Bad challenge" if the key as changed (this key change every
> time that Half-Life is started).
> A spoofed version of the code is possible but, as I have explained
> before, we cannot control if the server is up, if the maximum number of
> players has been reached, if the key is changed, and others.
> I have also attached an utility for see info about the Half-life
> servers only for fun.
>
> - ---
>
> 4) Fix
>
> No official fix available.
>
> A possible fix is to set a password, so only if someone know it can
> attack the server, because if the attacker don't know the password,
> the server will answer with "BADPASSWORD".
>
> - ---
>
> 5) Philosophy
>
> It's not rigth to post an advisory if there are not patches or
> tricks to fix the bug, but I think that this is a good method to show
> the problem to the community.
> Then the Valve team don't have answer to me and I hope that this
> advisory can get their attention.
> I'm really hopeful about the full disclosure, because with that
> "everyone" can know the real effects of an attack, the real danger of
> a bug, someone can learn a bit of programming (I have learn a bit of
> C from the source code of some exploits) and it's useful for all the
> people that are hopeful in this type of disclosure.
> No secrets!
>
> - ---
>
> Any type of feedback is really welcome!
>
> Byez
>
> - ---
> Crea, espandi e gestisci la tua mail da numero verde, senza scatti
telefonici !
> Questo ed altri servizi da numero verde solo su http://www.sitoverde.com
> Info promozioni web Aziende: 011 274 10 92 [EMAIL PROTECTED]
>
> -----BEGIN PGP SIGNATURE-----
> Version: 2.6
>
> iQCVAwUAPRLtVPdi0Z5STRufAQGkYwP8CZ1grN+RRL4d96ad51uv/jmHyXcFNEqu
> n8+rGjCSnHgl3ikbqc7frvTSyzuxBkPAX5yeP0rLHMBhuD3hDztvIvcQyHG90K2L
> uSR44BUtEGPytTmMasKyppRj9T9uVsSAnUBVzdylJnrq6qsP4yGB3RzhF2xb5jft
> 9YIVuFcKIAc=
> =/Gcp
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> To unsubscribe, edit your list preferences, or view the list archives,
please visit:
> http://list.valvesoftware.com/mailman/listinfo/hlcoders
>

_______________________________________________
To unsubscribe, edit your list preferences, or view the list archives, please visit:
http://list.valvesoftware.com/mailman/listinfo/hlcoders

Reply via email to