Dejavu exploiting

All multiplayer related discussion.

Moderator: Forum Guards

Dejavu exploiting

Postby Alistair » Sun Aug 20, 06 7:15 pm

Dejavu is using an old Unreal exploit. Heres a detailed explanation:




The most interesting bug I have found in my research is the following.

A specially formatted packet crash immediately EVERY server that uses

Unreal engine: ALL the versions are vulnerable to the same packet!



Let me start to explain a bit of Unreal engine basis:



Unreal engine uses a method (a bit crazy) so to use less space in files

and in network packets.

This method is called "index type" or "Compact Indices" and is a long

type number (31 bits + 1 bit for the sign) that is saved in a amount

of bytes that can go from 1 to 5 (a long type number is 4 bytes, so

this method is good for small values).



In every packet sent through the network, before the data there is

one of this index type numbers that specify the size of the data after

it.

Within each packet can exist many data "parts" and this index

value is used for specify how many long is the current piece of data.



Example:

[index1][data1][index2][data2]...[indexN][dataN]
The Unreal engine first decodes the packet and then simply reads the

index number and finally allocate that size in memory.

However seems that the Unreal engine makes a check for this index

number for avoid possible abuses if an attacker try to set a big index

number (something like:

"if(index_number > packet_or_file_size) break;"), but unfortunately it

sucks when the sign of this value is negative because the Unreal engine

consider negative numbers as Unicode format that needs 2 bytes for each

char.



Example:

If I want that the remote server allocates 512 Mb of RAM for read my

packet, I must not use 512000000 (and naturally convert it in index

format) but I must use -256000000 (negative sign plus half amount of

data).

Simple and funny.



The maximum bytes of memory that we can allocate is a long type number

so 0xffffffff less the first left bit that is used for the sign:

2147483647 bytes.



The effects of this attack are really incredible:
(09:09:13) ­ Clix: - if the size of the bytes to allocate is less than the maximum

available memory on the remote system, the CPU will rise to 100% and

will be consumed all the bytes of memory specified by the attacker.

This effect will persist for a variable amount of time that depend

by the size of the bytes that must be allocated and the performance

of the victim machine (CPU and memory speed).

For example my PII @ 448 Mhz takes 25 seconds to allocate

250 Megabytes in memory (with the UCC.EXE server, without the

other weight of graphic, sound and artificial intelligence of the

game).

During this time seems that the server cannot manage Unreal packets.

If you aren't running a dedicated server but you are playing on your

same server, the game will freeze totally for a variable amount of

seconds.



- if the memory that must be allocated is superior than the available,

the server will crash immediately!
.



The effects actually work and he is using multi-ip bots. Here is a short server log
Critical: (NetMode=1)

Critical: TickLevel

Critical: UGameEngine::Tick

Critical: XGameEngineExt::Tick

Critical: UpdateWorld

Critical: MainLoop

Exit: Exiting.

Uninitialized: Name subsystem shut down

Uninitialized: Log file closed, 08/20/06 19:23:32

. Im seriously thinking of writing his ass off to jail. Just because one guy has a different opinion does not mean he has to spoil it for others, to this extent anyway. Ban his ass from this forum and every DX forum ever known and hopefully he'll discover the wonders of hacking rather than sad black hat script kidding.

update: Hes a snippit from his readme

/****************************************

DeusEx Multiplayer GameServer Bot Crasher

*****************************************

(can be used for most of unreal based games)



This is my first C++ project.

How this bot works?

The bot acts as every other bot (rx, sd, etc..), but it has no irc client.

On start, it copies itself into windir\system32, adds to registry for autostart

and delete the original file. Bot connects to website and download the instructions:

can be list of servers to crash all over again, update or uninstall the bot.

This bot can pack some serious damage to unreal engine based games. Having around 50

bots and set them to crash server each 60 seconds means that the server will be off

all the time. In future i will be working to implement MasterServer list downloader

with query for server info, so the crashing would be automatic (no more webupdate

needed) with defined equality eg. if (initialaugs == 0) crash();


bcuzz, stoney, x-lock, ionix, phatty, nesespray and rbot dev team for rBot skelleton

- Luigi Auriemma for unrcrash exploit <No longer here, ha!>

- DejaVu for the idea, porting unrcrash to the bot, final job



This is beta test release. No optimizations yet! Useless stuff in! Known bugs:

- crashdelay took like 2 times longer (dont know why this is happening)

- sometimes ftp url cant be accessed (might be just my testing ftp)



Instructions:

- you need to have Microsoft Visual Studio 6, latest service pack for it, processor pack

and SDK library - where to find? www.google.com :))))

- edit cfg.h in map config

- open crasher.dsw

- build crasher.exe (ignore 2 warnings, the bot works just fine)



DO NOT LEAK! FOR PRIVATE USE AND TESTING ONLY!



btw: FUCK YOU SCRIPT KIDDIES :D



DejaVu

i1337bb@hotmail.com

User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby DarkKnight » Sun Aug 20, 06 7:38 pm

Hmmm.

Anyone know which file this test is located in? :-k
(Or this already fixed with DXIPServer.u?)
Image
I'm a lover, that's why I do this posting.
I don't need the forum,
I do it to save you ignorant bastards from your self.
User avatar
DarkKnight
Forum Super Hero
 
Posts: 4064
Joined: Wed Dec 10, 03 10:01 am
Location: Under the bridge.

Postby Spiderbot01 » Sun Aug 20, 06 7:39 pm

I dont suppose this has anything to do with the random fact that 2 of the FGS servers have gone down? (Could just be coincidence though)
<center>------</center><center>
Image</center>
<center>Image</center><
User avatar
Spiderbot01
Alpha
 
Posts: 5363
Joined: Wed Nov 30, 05 8:24 pm
Location: LONDON!!!!

Postby Alex » Sun Aug 20, 06 7:43 pm

DarkKnight wrote:Hmmm.

Anyone know which file this test is located in? :-k
(Or this already fixed with DXIPServer.u?)

Not fixed. I tested it, on my own server.

Spiderf[A]g01 wrote:I dont suppose this has anything to do with the random fact that 2 of the FGS servers have gone down? (Could just be coincidence though)

Not a coincidence.
Alex
Alpha
 
Posts: 8067
Joined: Wed Nov 12, 03 4:51 pm

Postby Imperial » Sun Aug 20, 06 7:45 pm

Do not leak?
Hmm, maybe report it to somebody who can do something about it instead?

I really do worry for those who have nothing other to do but carry out these things, they take it too far.
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Alex » Sun Aug 20, 06 7:46 pm

Imperial wrote:Do not leak?
Hmm, maybe report it to somebody who can do something about it instead?

I really do worry for those who have nothing other to do but carry out these things, they take it too far.

I will try to fix it.
Alex
Alpha
 
Posts: 8067
Joined: Wed Nov 12, 03 4:51 pm

Postby Spiderbot01 » Sun Aug 20, 06 7:46 pm

Has he not quite grasped that people won't turn to augs they'll just up and leave?

Is there any way to stop it?
<center>------</center><center>
Image</center>
<center>Image</center><
User avatar
Spiderbot01
Alpha
 
Posts: 5363
Joined: Wed Nov 30, 05 8:24 pm
Location: LONDON!!!!

Postby Alistair » Sun Aug 20, 06 7:47 pm

Imperial wrote:Do not leak?
Hmm, maybe report it to somebody who can do something about it instead?

I really do worry for those who have nothing other to do but carry out these things, they take it too far.


Illegal stuff is always leaked bro.

Yes there is a way to stop it.
User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby Imperial » Sun Aug 20, 06 7:49 pm

[A]lex to the rescue :)
To those who say [A]lex does nothing for the dx community, you better eat your words now and leave with a bit of pride. And there have been people who have said this and you will find long ( and boring topics with not much evidence imo) topics about this as well.
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Imperial » Sun Aug 20, 06 7:51 pm

Spiderf[A]g01 wrote:Has he not quite grasped that people won't turn to augs they'll just up and leave?

Is there any way to stop it?


If this is still about augs, then I am getting concerned. I thinks its a bit more than that.

After all, one of the fgs servers are augged.
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Spiderbot01 » Sun Aug 20, 06 7:54 pm

Imperial wrote:
Spiderf[A]g01 wrote:Has he not quite grasped that people won't turn to augs they'll just up and leave?

Is there any way to stop it?


If this is still about augs, then I am getting concerned. I thinks its a bit more than that.

After all, one of the fgs servers are augged.


Yes one is, FGS1. FGS 2 (The TNAG one) is down, as is FGS 3 aka the DXMS server. Which really burns my biscuit.
<center>------</center><center>
Image</center>
<center>Image</center><
User avatar
Spiderbot01
Alpha
 
Posts: 5363
Joined: Wed Nov 30, 05 8:24 pm
Location: LONDON!!!!

Postby Imperial » Sun Aug 20, 06 7:56 pm

My server has just been taken down. He is using it, I shall post the log here.
Attachments
server.log
(5.84 KiB) Downloaded 290 times
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Alistair » Sun Aug 20, 06 8:00 pm

Thanks Imperial. Since you have proof of evidence, report him.
User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby Imperial » Sun Aug 20, 06 8:00 pm

I will, with pleasure mate, but who to?
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Spiderbot01 » Sun Aug 20, 06 8:03 pm

Im currently hosting mine and nothing thus far :S
<center>------</center><center>
Image</center>
<center>Image</center><
User avatar
Spiderbot01
Alpha
 
Posts: 5363
Joined: Wed Nov 30, 05 8:24 pm
Location: LONDON!!!!

Postby Jon » Sun Aug 20, 06 8:04 pm

~[A]lex~ wrote:
Imperial wrote:Do not leak?
Hmm, maybe report it to somebody who can do something about it instead?

I really do worry for those who have nothing other to do but carry out these things, they take it too far.

I will try to fix it.


I don't usually post outside of the editing section of these forums, but this is really concerning everyone in FGS - even IchoTolot doesn't know what is going, but he ran a few tests on the server host PC, and discovered something...

20/08/2006 14:07:49 IchoTolot Jon
........ Init: Game engine initialized Log: Startup time: 1.541852 seconds DevNet: NotifyAcceptingConnection: Server MyLevel accept NetComeGo: Open MyLevel 08/20/06 15:06:34 83.131.94.47:4873 DevNet: NotifyAcceptingChannel Control 0 server Level DXMS_Dust.MyLevel: Accepted Critical: appError called: Critical: Ran out of virtual memory. To prevent this condition, you must free up more


20/08/2006 14:07:50 IchoTolot Jon
space on your primary hard disk. Critical: Windows GetLastError: Für diesen Befehl ist nicht genügend Speicher verfügbar. (8) Exit: Executing UObject::StaticShutdownAfterError Critical: FMallocWindows::Malloc Critical: FMallocWindows::Realloc Critical: 00000000 2043674624 FArray Critical: FArray::Realloc Critical: 1021837312*2 Critical: FString<<


20/08/2006 14:07:51 IchoTolot Jon
Critical: UControlChannel::ReceivedBunch Critical: UChannel::ReceivedSequencedBunch Critical: Direct Critical: UChannel::ReceivedRawBunch Critical: DispatchDataToChannel Critical: BunchData Critical: UNetConnection::ReceivedPacket Critical: UNetConnection::ReceivedRawPacket Critical: UTcpNetDriver::TickDispatch Critical: UpdatePreNet Critical: ULevel::Tick


20/08/2006 14:07:52 IchoTolot Jon
Critical: (NetMode=1) Critical: TickLevel Critical: UGameEngine::Tick Critical: XGameEngineExt::Tick Critical: UpdateWorld Critical: MainLoop Exit: Exiting. Uninitialized: Name subsystem shut down

20/08/2006 14:08:09 IchoTolot Jon dont know whats up

20/08/2006 14:08:29 IchoTolot Jon enough memory is there

20/08/2006 14:15:42 IchoTolot Jon oh ... all augged servers online ? .... hmmmmm

20/08/2006 14:17:40 IchoTolot Jon all servers r augged and all other server r gone ..... coincidence ??? .. hmmmmmmmmmmmmm :-S


Countless people from Gamesmajor played DXMS as a last resort to leaving the game altogether. Please, you have to do something... for all DXers!
User avatar
Jon
Alpha
 
Posts: 1081
Joined: Mon Dec 12, 05 10:20 pm
Location: Derbyshire, England

Postby Imperial » Sun Aug 20, 06 8:06 pm

Yep basically what is happening is all 0augged servers are being targeted.
My server can only stay up for max 8 seconds.

Attached, of server staying up 5 seconds
Attachments
server.log
(5.84 KiB) Downloaded 279 times
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Imperial » Sun Aug 20, 06 8:09 pm

Weird, just tried to do same with auuged, one aug, no augs per kill.
Attached, log.
Attachments
server.log
(5.84 KiB) Downloaded 291 times
I sell donuts, if you want my donuts, give me a call.

DONUTS
User avatar
Imperial
Forum Hero
 
Posts: 2450
Joined: Thu Feb 23, 06 11:23 pm
Location: North Pole

Postby Professor Layton » Sun Aug 20, 06 8:09 pm

it's all explained in konami's post. The exploit he's using, sends a packet which makes the server use an amount of ram, which it doesnt have. This leads to windows killing the application, due to asking too much memory.

It seems deja made the bot kill any server that's not hosting ATDM, could someone try out this gamestyle and see if the server gets crashed then?
User avatar
Professor Layton
Forum Hero
 
Posts: 2333
Joined: Mon Apr 04, 05 3:17 pm
Location: Critical thinking is the key to success!

Postby DarkKnight » Sun Aug 20, 06 8:11 pm

Code: Select all
Init: Game engine initialized
Log: Startup time: 28.163957 seconds
DevNet: NotifyAcceptingConnection: Server MyLevel accept
NetComeGo: Open MyLevel 08/21/06 05:08:18 83.49.249.125:1616
DevNet: NotifyAcceptingChannel Control 0 server Level DXMP_Smuggler.MyLevel: Accepted
Critical: appError called:
Critical: Ran out of virtual memory. To prevent this condition, you must free up more space on your primary hard disk.
Critical: Windows GetLastError: Not enough memory (8)
Exit: Executing UObject::StaticShutdownAfterError
Critical: FMallocWindows::Malloc
Critical: FMallocWindows::Realloc
Critical: 00000000 2043674624 FArray
Critical: FArray::Realloc
Critical: 1021837312*2
Critical: FString<<
Critical: UControlChannel::ReceivedBunch
Critical: UChannel::ReceivedSequencedBunch
Critical: Direct
Critical: UChannel::ReceivedRawBunch
Critical: DispatchDataToChannel
Critical: BunchData
Critical: UNetConnection::ReceivedPacket
Critical: UNetConnection::ReceivedRawPacket
Critical: UTcpNetDriver::TickDispatch
Critical: UpdatePreNet
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: XGameEngineExt::Tick
Critical: UpdateWorld
Critical: MainLoop
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 08/21/06 05:08:18


This is under Linux, but as you can see here, my swap hasn't even been touched.
Image
I'm a lover, that's why I do this posting.
I don't need the forum,
I do it to save you ignorant bastards from your self.
User avatar
DarkKnight
Forum Super Hero
 
Posts: 4064
Joined: Wed Dec 10, 03 10:01 am
Location: Under the bridge.

Postby Professor Layton » Sun Aug 20, 06 8:14 pm

I think it's a preventive server shutdown, to prevent your whole comp from crashing due to memory probs.
User avatar
Professor Layton
Forum Hero
 
Posts: 2333
Joined: Mon Apr 04, 05 3:17 pm
Location: Critical thinking is the key to success!

Postby DarkKnight » Sun Aug 20, 06 8:16 pm

>:{D wrote:I think it's a preventive server shutdown, to prevent your whole comp from crashing due to memory probs.


The stack trace shows it recived a packet. :-k
Image
I'm a lover, that's why I do this posting.
I don't need the forum,
I do it to save you ignorant bastards from your self.
User avatar
DarkKnight
Forum Super Hero
 
Posts: 4064
Joined: Wed Dec 10, 03 10:01 am
Location: Under the bridge.

Postby Professor Layton » Sun Aug 20, 06 8:18 pm

And the packet makes the server try to use an amount of ram, which the server doesnt have... due to some weird error in the unreal engine.. that's what i make up from the exploit explanation.
User avatar
Professor Layton
Forum Hero
 
Posts: 2333
Joined: Mon Apr 04, 05 3:17 pm
Location: Critical thinking is the key to success!

Postby Alistair » Sun Aug 20, 06 8:24 pm

Imperial wrote:I will, with pleasure mate, but who to?


GameSpy and yes they do listen and email back personally. Provide them with a full log they also may ask for more evidence.
User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby Alex » Sun Aug 20, 06 8:28 pm

Konami wrote:
Imperial wrote:I will, with pleasure mate, but who to?


GameSpy and yes they do listen and email back personally. Provide them with a full log they also may ask for more evidence.

Wont help you.
They cannot do a single thing.
Alex
Alpha
 
Posts: 8067
Joined: Wed Nov 12, 03 4:51 pm

Postby Alistair » Sun Aug 20, 06 8:33 pm

Alex, its business, there product makes them a small amount of money and banning a little asshole who is ruining it for everyone else is not a huge bill.
User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby Professor Layton » Sun Aug 20, 06 8:36 pm

Seeing as no one has tried out yet if ATDM server's get crashed, I'll just check myself, if nothing happens in 10 mins, I guess only ATDM would be 'allowed' by the bot.

Update: My server got shutdown off immediately. I dunno what it searches for then. =\
User avatar
Professor Layton
Forum Hero
 
Posts: 2333
Joined: Mon Apr 04, 05 3:17 pm
Location: Critical thinking is the key to success!

Postby Alistair » Sun Aug 20, 06 8:44 pm

Gamespy will most likely contact his ISP, his ISP will warn him if he continues.
User avatar
Alistair
Forum Hero
 
Posts: 2575
Joined: Sun Jan 30, 05 2:02 pm
Location: England, UK

Postby Spiderbot01 » Sun Aug 20, 06 8:46 pm

There are now 2 non aug servers, Lee's and one other random one. Lee's is quite full at the moment as well...
<center>------</center><center>
Image</center>
<center>Image</center><
User avatar
Spiderbot01
Alpha
 
Posts: 5363
Joined: Wed Nov 30, 05 8:24 pm
Location: LONDON!!!!

Postby Professor Layton » Sun Aug 20, 06 8:50 pm

I believe it just does it at random times, earlier today I put up a 0 aug server which lasted for 40 minutes.
User avatar
Professor Layton
Forum Hero
 
Posts: 2333
Joined: Mon Apr 04, 05 3:17 pm
Location: Critical thinking is the key to success!

Next

Return to Multiplayer

Who is online

Users browsing this forum: No registered users and 4 guests
cron