xboxscene.org forums

Pages: [1] 2 3

Author Topic: Xbox Live Packets  (Read 438 times)

Tp21

  • Archived User
  • Jr. Member
  • *
  • Posts: 58
Xbox Live Packets
« on: September 29, 2005, 12:10:00 PM »

Hello!

i have an request for everyone who wants an alternative live server tongue.gif
maybe it's possible too fake a live server, but to do that, i need packets of an xbox signing in too xbox live.
namely the kerberos packets on port 88.
if we can fake an Live! kerberos server, the xbox can login to it.
then we can decode the packets send by any game, too find out what they are sending in plain tekst ( not encrypted ).
so... if anyone has any ethereal packets where the kerberos signin is in ( unbanned ).
i love too get them.
you will all be greatly rewarded tongue.gif
Logged

Tp21

  • Archived User
  • Jr. Member
  • *
  • Posts: 58
Xbox Live Packets
« Reply #1 on: October 02, 2005, 06:22:00 AM »

C'mon nobody has any packets or something?!?
Logged

Replex

  • Archived User
  • Jr. Member
  • *
  • Posts: 74
Xbox Live Packets
« Reply #2 on: October 15, 2005, 12:54:00 AM »

This project is so utterly complex for a few reasons:

Xbox games use a series of cryptography techniques to encrypty and decrypt data. First off, all packets are signed with what appears to be DES encryption. Which is basically 54bit encrypted data, the only useful way to aquire the key for cracking the encryption would be to retrieve it from what I am calling a handshake packet.

This handshake packet is sending out various bits of data about each xbox using what looks like a custom algorithm developed by MS.

The problem we face is the lack of network source. The XDK isn't good enough for this, the XDK provides libraries to interface with this functionality, but will not allow us to replicate any encryption keys due to the fact that we have no way of knowing what an idividual program is sending.

I'm not saying it is impossible, but the complexity of Xbox Live is way past any reasonable work.
Logged

Tp21

  • Archived User
  • Jr. Member
  • *
  • Posts: 58
Xbox Live Packets
« Reply #3 on: October 15, 2005, 03:01:00 AM »

from the xdk docs. it uses either kerberos or diffie-helleman
if we can get the handshake packets you can figure out the way it's hand shaked and decrypt/encrypt packets
Logged

d0wnlab

  • Archived User
  • Sr. Member
  • *
  • Posts: 326
Xbox Live Packets
« Reply #4 on: October 15, 2005, 11:43:00 AM »

I think I realized something the other day.  This isn't live related, but syslink related.

I read the xdk docs awhile ago so this might not be 100%, but from what I remember, there are two forms of encryption going on.  The first is the session key created during the first packet exchange between client and host xboxes.  You can tell which of these are encryption handshaking packets because of a flag set in the packet (this is in the SDK whitepapers on the topic).

IIRC (which I probably don't), the other encryption used is to make a signed checksum of every packet so that they cannot be modified.  The question I used to have was.. how does each xbox know the secret key used in this checksum procedure?  I think I figured it out, though.  It's the LANKey stored in the XBE header for the game.

So, one has to figure out how to take a message M, and compute the signed hash h(M, LANKey) that matches a signed packet.  Some options:
single-block DES encrypted CRC
carryover of the last round of CBC DES encryption on packet
variants of above.

With this in mind I'll re-read the xdk docs and see if anything else comes to mind.

Cheers,
Tom
Logged

_terror_

  • Archived User
  • Full Member
  • *
  • Posts: 157
Xbox Live Packets
« Reply #5 on: October 15, 2005, 04:24:00 PM »

I've been interested in exploring this for a while now. It would be cool to be able to fake a connection to Xbox live, and/or run your own server.
Logged

santium

  • Archived User
  • Newbie
  • *
  • Posts: 20
Xbox Live Packets
« Reply #6 on: October 20, 2005, 08:38:00 AM »

I was looking through my EEPROM. There's 2 keys. (Well, there's more, but I'm concentrating on these 2) One is the LAN key which syslink uses. (Games send the signature to the host box before signing packets.)
And the other is called a Live key. I intercepted Halo 2 packets. The first packet it sends is the key telling Xbox Live that Xbox's signature. After that every other packet is signed using this key.

I hope this research helps.
Logged

Tp21

  • Archived User
  • Jr. Member
  • *
  • Posts: 58
Xbox Live Packets
« Reply #7 on: October 20, 2005, 09:16:00 AM »

ok, so all packets are encrypted using the Live! key?
...so do we know the decryption scheme? or does it uses another key system...
if it only uses the Live! key we can decrypt (and encrypt) packages to/from Live! servers...
Logged

MercuryTheWhite

  • Archived User
  • Newbie
  • *
  • Posts: 21
Xbox Live Packets
« Reply #8 on: October 20, 2005, 11:48:00 AM »

If u can get the encyrption key, u can hook up a man in the middle to  spoof a signal to live that that the Xbox is stock. or u could just spoof the stock-check the xbox does when it boots up and therefore skipping the need to encipher it in the 1st place. I dont think that nessicarily this will be most useful to people who got banned tho...
Logged

MercuryTheWhite

  • Archived User
  • Newbie
  • *
  • Posts: 21
Xbox Live Packets
« Reply #9 on: October 20, 2005, 11:51:00 AM »

and wait isnt this alot like Mimesis??? if u have questions ask them
Logged

Brouhaha

  • Archived User
  • Full Member
  • *
  • Posts: 213
Xbox Live Packets
« Reply #10 on: October 20, 2005, 02:26:00 PM »

QUOTE(MercuryTheWhite @ Oct 20 2005, 01:26 PM)
and wait isnt this alot like Mimesis??? if u have questions ask them
*



This has nothing to do with Mimesis. Mimesis is simply a modded content provider for which you need their app to use. It doesn't integrate or emulate Live in any way.

As you put it so well:

QUOTE(MercuryTheWhite @ Oct 20 2005, 01:13 PM)
Plz google it first kid
*


Logged

d0wnlab

  • Archived User
  • Sr. Member
  • *
  • Posts: 326
Xbox Live Packets
« Reply #11 on: October 20, 2005, 03:03:00 PM »

QUOTE(santium @ Oct 20 2005, 10:13 AM)
I was looking through my EEPROM. There's 2 keys. (Well, there's more, but I'm concentrating on these 2) One is the LAN key which syslink uses. (Games send the signature to the host box before signing packets.)
And the other is called a Live key. I intercepted Halo 2 packets. The first packet it sends is the key telling Xbox Live that Xbox's signature. After that every other packet is signed using this key.

I hope this research helps.
*



Not quite.
The first packet sent by a client to a server in a syslink connection contains nothing more than a nonce (a random unique ID).  The server (who receives the nonce) generates the public parameters for the DH authentication and sends that to the client.  I have to look at this again, but I'm pretty sure that is the order.

Definitely true:
The key is generated using diffie hellman algorithm between the two xboxes.  It's different every session.  If we could modify these packets, then we could set up a man in the middle attack on system link.  live is a whole other story.

However, the first thing we need to do is figure out how every packet is authenticated.  The last 10 bytes of every packet is the XHash of the packet, which is a cryptographically signed hash.  Who knows what it is.  

   As well, when the client and server agree on a key with DH, they use it to generate a table of keys (not just one), and then in the header of each packet it gives an index to the table for which key to use for encrypting the packets.  Who knows how they generate these keys, it might be something as simple as, given key1, key2 = des(key1), key3 = des(key2).. etc.
Logged

santium

  • Archived User
  • Newbie
  • *
  • Posts: 20
Xbox Live Packets
« Reply #12 on: October 20, 2005, 06:01:00 PM »

QUOTE(MercuryTheWhite @ Oct 20 2005, 07:23 PM)
If u can get the encyrption key, u can hook up a man in the middle to  spoof a signal to live that that the Xbox is stock. or u could just spoof the stock-check the xbox does when it boots up and therefore skipping the need to encipher it in the 1st place. I dont think that nessicarily this will be most useful to people who got banned tho...
*


Why would I ask the team I'm on about something like this? I'm pretty sure everything we know has nothing to do with Xbox Live! besides the DLC format.
Logged

fghjj

  • Archived User
  • Sr. Member
  • *
  • Posts: 288
Xbox Live Packets
« Reply #13 on: October 20, 2005, 08:26:00 PM »

I've said it before (on the same subject) and I'll say it again. For a Live! emulator you need someone with broad knowledge of encryption, x86 assembly and a lot of spare time.

These are not a subjects you can handle by reading tutorials, you need to have been in the business for years in a row.
Logged

Tp21

  • Archived User
  • Jr. Member
  • *
  • Posts: 58
Xbox Live Packets
« Reply #14 on: October 21, 2005, 03:32:00 AM »

i agree with the encryption sceme.
i'll get an extra network card very soon so i can capture packets myself.
but on that x86, that you must code in assembly x86... why?
you need to know something about encryption
and i thought i read in the xdk docs that they use an kerberos encryption thingy tongue.gif
and you don't get banned for capturing Live! packets
Logged
Pages: [1] 2 3