Jump to content


Photo

Xbox Live Packets


  • Please log in to reply
44 replies to this topic

#1 Tp21

Tp21

    X-S Member

  • Members
  • Pip
  • 64 posts
  • Location:Deventer
  • Interests:Computers,Xbox,Halo
  • Xbox Version:v1.6
  • 360 version:v1 (xenon)

Posted 29 September 2005 - 07:10 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

#2 Tp21

Tp21

    X-S Member

  • Members
  • Pip
  • 64 posts
  • Location:Deventer
  • Interests:Computers,Xbox,Halo
  • Xbox Version:v1.6
  • 360 version:v1 (xenon)

Posted 02 October 2005 - 12:46 PM

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

#3 Replex

Replex

    X-S Senior Member

  • Members
  • PipPip
  • 178 posts
  • Xbox Version:v1.4
  • 360 version:v1 (xenon)

Posted 15 October 2005 - 07:18 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.

#4 Tp21

Tp21

    X-S Member

  • Members
  • Pip
  • 64 posts
  • Location:Deventer
  • Interests:Computers,Xbox,Halo
  • Xbox Version:v1.6
  • 360 version:v1 (xenon)

Posted 15 October 2005 - 09:25 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

#5 d0wnlab

d0wnlab

    X-S Expert

  • Moderator
  • PipPipPip
  • 557 posts
  • Xbox Version:unk

Posted 15 October 2005 - 06:07 PM

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

#6 _terror_

_terror_

    X-S Expert

  • Members
  • PipPipPip
  • 514 posts
  • Xbox Version:v1.1
  • 360 version:unknown

Posted 15 October 2005 - 10:48 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.

#7 santium

santium

    X-S Young Member

  • Members
  • Pip
  • 30 posts
  • Xbox Version:v1.4
  • 360 version:v1 (xenon)

Posted 20 October 2005 - 03:02 PM

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.

#8 Tp21

Tp21

    X-S Member

  • Members
  • Pip
  • 64 posts
  • Location:Deventer
  • Interests:Computers,Xbox,Halo
  • Xbox Version:v1.6
  • 360 version:v1 (xenon)

Posted 20 October 2005 - 03:40 PM

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...

#9 MercuryTheWhite

MercuryTheWhite

    X-S Enthusiast

  • Members
  • 24 posts
  • Location:0xCC07C9
  • Xbox Version:v1.5

Posted 20 October 2005 - 06:12 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...

#10 MercuryTheWhite

MercuryTheWhite

    X-S Enthusiast

  • Members
  • 24 posts
  • Location:0xCC07C9
  • Xbox Version:v1.5

Posted 20 October 2005 - 06:15 PM

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

#11 Brouhaha

Brouhaha

    X-S X-perience

  • Members
  • PipPip
  • 396 posts
  • Location:Oz
  • Xbox Version:v1.6

Posted 20 October 2005 - 08:50 PM

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

View Post



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

View Post




#12 d0wnlab

d0wnlab

    X-S Expert

  • Moderator
  • PipPipPip
  • 557 posts
  • Xbox Version:unk

Posted 20 October 2005 - 09:27 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.

View Post



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.

#13 santium

santium

    X-S Young Member

  • Members
  • Pip
  • 30 posts
  • Xbox Version:v1.4
  • 360 version:v1 (xenon)

Posted 21 October 2005 - 12:25 AM

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...

View Post


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.

#14 fghjj

fghjj

    X-S X-perience

  • Members
  • PipPip
  • 455 posts

Posted 21 October 2005 - 02:50 AM

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.

#15 Tp21

Tp21

    X-S Member

  • Members
  • Pip
  • 64 posts
  • Location:Deventer
  • Interests:Computers,Xbox,Halo
  • Xbox Version:v1.6
  • 360 version:v1 (xenon)

Posted 21 October 2005 - 10:32 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

Edited by Tp21, 21 October 2005 - 10:35 AM.





0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users