exploit the possibilities
Home Files News &[SERVICES_TAB]About Contact Add New

camelot.txt

camelot.txt
Posted Mar 25, 2004
Authored by Todd Chapman

Dark Age of Camelot from Mythic Entertainment has flaws in the login client that allow an attacker to read customer information via a man in the middle attack. All versions below 1.68 are affected.

tags | advisory
SHA-256 | 938ec52b9910ec712a9ae408928faa55114e1ca98b4cdd97e839580cee070a63

camelot.txt

Change Mirror Download
----------------------------------------
Security Advisory
----------------------------------------
Software:
Dark Age of Camelot from Mythic Entertainment
including Shrouded Isles & Trials of Atlantis Expansion Packs
http://www.darkageofcamelot.com

Affected Version:
North America – all “live” versions up to initial 1.68 release.
Exploit fixed during subsequent 1.68 patches (exact date unknown)

Platform:
Windows

Issue:
Flaws in login client allows attacker to read customer information
using man in the middle attacks.

Date(s):
2/18/04 - Original advisory to vendor
3/23/04 – Public advisory

Status:
Fixed for billing data.
No response from the vendor to the original notification e-mail
was ever received. Some time after the initial live 1.68 release,
a new login.dll was issued with a billing fix. Account login and
password are still vulnerable. Current login.dll is dated
03/01/2004 2:16:50 PM, file size is 213,064, and MD5 sum is
62F47E62 D88C0AED 0EA11012 6097C32D.

Authors:
Bryan Mayland (bmayland@capnbry.net)
Todd Chapman (tchapman@leoninedev.com)

Advisory home page:
http://capnbry.net/daoc/advisory20040323/
Advisory in text format:
http://capnbry.net/daoc/advisory20040323/daoc-advisory2.txt
Advisory in HTML format:
http://capnbry.net/daoc/advisory20040323/daoc-advisory2.html
Advisory in PDF format:
http://capnbry.net/daoc/advisory20040323/daoc-advisory2.pdf


----------------------------------------

Table of Contents
1) Introduction & Summary
2) Bug Details
3) Sample exploit
4) Conclusion

----------------------------------------

1) Introduction & Summary

Dark Age of Camelot (DAoC) is a fantasy based Massively Multiplayer
Online Role Playing Game (MMORPG) developed by Mythic Entertainment
(http://www.mythicentertainment.com/). For more background information
on the product and for previous security issues, please refer to
advisory issued last December at http://capnbry.net/daoc/advisory.html
or http://www.securityfocus.com/archive/1/347457/2003-12-10/2003-12-16/0

The current security scheme of the Dark Age of Camelot login involves
the use of RSA public key cryptography and an RC4 based symmetric
algorithm. The weakness of their approach is that the RSA public key is
transmitted at the start of each session and is not digitally signed or
verified to insure the integrity of the connection or data.

With the release of the version 1.68 patch to the DAoC test server
(Pendragon), Mythic upgraded the game client (game.dll) to use the
security changes made to the login protocol. One side-effect of this
change was to focus more eyes on the protocol. While monitoring the
discussion on various forums dedicated to DAoC utilities and emulators,
it became apparent that people understood how to attack the security.

Seeing the imminent release of code for cracking the game client (which
would then expose the login client), an e-mail was sent to multiple
contacts at Mythic on February 18th to describe the flaws of the
protocol. Specifically, we described how billing information was
exposed and repeated our suggestion about going to a SSL/TLS based
solution handling account information. This approach seems practical in
light of the fact that the European provider of DAoC, GOA, uses web
pages served over HTTPS to secure account updates.

We have received no acknowledgment of the e-mail from anyone at Mythic.
After one month had passed, we begin to prepare a formal public
advisory and noticed that the login client had been silently patched
(i.e. no mention in any public patch notes). The current version of the
login client is no longer vulnerable to this billing information
exploit. The solution implemented by Mythic was to embed a fixed public
key into the login.dll to use for the encryption of billing data. The
per session public key is still used for protecting the symmetric key.

----------------------------------------

2) Bug Details

The encryption scheme relies on the use of RSA public key encryption
combined with RC4 based symmetric encryption. The encryption routines
were originally based on implementations from LibTomCrypt
(http://www.libtomcrypt.org/). We say “RC4 based” because of one small
difference in the Mythic code from the LTC code. For brevity we will
refer to it simply as RC4 from now on.

Note: In no way are any of the flaws we've found attributable to
LibTomCrypt code.

At the beginning of each TCP session, the server sends a 1536 bit RSA
public key to the client. The client then randomly generates a 256 byte
RC4 key which is encrypted using the public key and transmitted back to
the server. Any further communication during the session is encrypted
using RC4. The basic login process is diagrammed below:

Client Server
1 Connect -------->
2 <-------- RSA pub key
3 Send RC4 key -------->
4 Authenticate -------->
5 <-------- Authenticate Success
6 Launch game.dll

1. Client connects to server
2. Server generates RSA public/private key and exports the public
key to the client
3. Client generates RC4 key, encrypts it with RSA public key and
sends to server
4. Authentication information is encrypted via RC4 and sent to the
server
5. Server sends success message (secured via RC4)
6. Login.dll launches game.dll passing it the account and password
to send to game server.

If billing information is transmitted, the data is encrypted using the
RSA public key prior to the RC4 encryption.

The fundamental weakness of their approach is the transmission of the
public key at the start of each session without any type of
verification. The key is not signed in such a way that the client can
validate that the key came from Mythic. Any attacker able to actively
proxy or hijack the communication can supply his own key to the client
and read the data.

Since this requires an active attack, the attacker can take the step of
not passing the data along to the Mythic account servers and simply
pretend to be the server and demand that the client provide billing
information. Once the client provides the data, the attacker signals
success and the login client will proceed with launching the game
client, which communicates with different servers (and thus the
attacker can ignore that traffic). As long as the user's account is
valid, the game would proceed with a normal launch.

Testing Note: All tests for this issue were run upon data captured from
our own personal machines. No “in the wild” testing was done.

----------------------------------------

3) Sample exploit

The following exploit code is designed to pretend to be an account
server to trick a login in client into thinking an account is closed
and prompting the user to enter their billing data. In this case, no
data is ever passed along to the real account servers.

To simplify our test case, we relied on modifying the login.dat file to
force the login client to talk to our program. The following lines were
edited.

[main]
numofservers=1

[daocclient0]
addr=127.0.0.1
port=10500

However, the exploit can also be implemented using ARP spoofing to fool
the client machine into sending packets to the attacking machine. An
example setup would be use arpspoof and iptables on Linux similar to
the one method used for the SSLsniff exploit for I.E. at
http://www.thoughtcrime.org/ie.html.

The code was implemented using LibTomCrypt v0.91 but newer versions
should work. Compiled and tested on Linux and Cygwin. Note protocol
version comment prior to definition of LOGIN_PROTOCOL_VERSION for
testing with different versions of the login.dll (currently set to
version of vulnerable client).

Sample compile: gcc mystic2.c -o mystic2 -I./libtomcrypt
-L./libtomcrypt -ltomcrypt

File: mystic2.c available at
http://capnbry.net/daoc/advisory20040323/mystic2.c

Example run against 1/15/04 dated login.dll:

user@mymachine:~/mystic2$ ./mystic2 10500
prng registered...
RSA key generated...
RSA public key exported (209 bytes)...
.Waiting for client connections.
Client connected!
RSA public key sent to client...
Client sent symmetric key (256 bytes)...
Account authenticate request:
Account Name: MyAccount
Password: password
Requesting user enter their billing info...Client closed
Client connected!
RSA public key sent to client...
Client sent symmetric key (256 bytes)...
Billing Info:
Account Name: MyAccount
Password: password
Cardholder's Name: Joe blow
CreditCard Number: 1234123412341234
Expiration Date: 11/04
Billing cycle: 1
Client closed

----------------------------------------

4) Conclusion

The current state of the situation appears to be that weaknesses with
transmission of billing information are being improved but only when
outside attention is focused upon the problem. We would hope that
Mythic would learn to take a more proactive approach to these issues.

As with the previous advisory, the main purpose of this advisory is to
inform the general public that may have been exposed by this problem.
The difficulty of this exploit is greater than the previous one (which
was trivial) and it existed for much less time (a few months instead of
2 years) so the danger of exposure is less.

----------------------------------------
Last Modified: 3/23/2004

Revision History:
3/17/04 – Creation of formal advisory.
3/23/04 – Finalizing for publication.
Login or Register to add favorites

File Archive:

July 2024

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jul 1st
    27 Files
  • 2
    Jul 2nd
    10 Files
  • 3
    Jul 3rd
    35 Files
  • 4
    Jul 4th
    27 Files
  • 5
    Jul 5th
    18 Files
  • 6
    Jul 6th
    0 Files
  • 7
    Jul 7th
    0 Files
  • 8
    Jul 8th
    28 Files
  • 9
    Jul 9th
    44 Files
  • 10
    Jul 10th
    24 Files
  • 11
    Jul 11th
    25 Files
  • 12
    Jul 12th
    11 Files
  • 13
    Jul 13th
    0 Files
  • 14
    Jul 14th
    0 Files
  • 15
    Jul 15th
    0 Files
  • 16
    Jul 16th
    0 Files
  • 17
    Jul 17th
    0 Files
  • 18
    Jul 18th
    0 Files
  • 19
    Jul 19th
    0 Files
  • 20
    Jul 20th
    0 Files
  • 21
    Jul 21st
    0 Files
  • 22
    Jul 22nd
    0 Files
  • 23
    Jul 23rd
    0 Files
  • 24
    Jul 24th
    0 Files
  • 25
    Jul 25th
    0 Files
  • 26
    Jul 26th
    0 Files
  • 27
    Jul 27th
    0 Files
  • 28
    Jul 28th
    0 Files
  • 29
    Jul 29th
    0 Files
  • 30
    Jul 30th
    0 Files
  • 31
    Jul 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2022 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close