AMX Mod X security advisory
distributing malware with backdoors
This special news should only concern server operators who have AMX Mod 2010.1 installed or plan to install it. If you know server operators that use AMX Mod 2010.1
please consider making them aware of this post. This is an important matter that is worth to be mentioned on the official AMXModX site.
has been officially abandoned years ago, but recently one of its users (Stéphane "Flatounet" Vigne) is attempting to update it.
Development unfortunately progresses behind closed doors and nobody really knows what's happening.
Some days ago I've been asked to provide help in migrating an AMX Mod 2010.1 installation to AMXModX for various reasons. Oddly enough the server got attacked a few short hours later
by someone who got a hold of the servers RCON password, and it was unclear how the attacker obtained it.
If you are experiencing any of these problems on your server it might be an indication that someone exploited your AMX Mod 2010.1 installation:
- One or several players are suddenly admins
- Server performance seems to fluctuate unexpectedly
- Server appears to crash or shut down randomly
- Ban lists have been wiped or altered
- Server files have been altered or deleted
Usually the log does not contain useful information if the RCON password is not yet known (explanations below).
In this specific example however, the password was already known. If you are in this situation you would find similar logs:
His first attempt to check RCON validity:
L 12/04/2015 - 10:58:09: Rcon: "rcon 1627405150 "xxxxxx" echo HLSW: Test" from "18.104.22.168:7130"
Adding a SteamID to the admins list, likely via a VPS IP:
L 12/04/2015 - 11:02:10: Rcon: "rcon 1779953110 "xxxxxx" amx_addadmin "STEAM_0:0:13923116" abcdefghijklmnopqrstu" from "22.214.171.124:7130"
Disabling the server log to hide the following commands:
L 12/04/2015 - 11:04:38: Rcon: "rcon 873211125 "xxxxxx" log off" from "126.96.36.199:7130"
L 12/04/2015 - 11:04:38: Log file closed
Server logging disabled.
Malicious activity after this point may include clearing ban lists of SteamIDs and IPs or changing server variables like sys_ticrate
in an attempt to disrupt server functionality.
The hidden commands
Since the RCON was already known in this case, the log doesn't help us understand how it has been found.
Assuming the RCON password is unknown and has not been compromised, a possible threat is a malicious server plugin that allows unauthorized clients to get a hold of this information.
Unfortunately my investigations have found that AMX Mod 2010.1 itself is that malicious server plugin. Naively checking the provided source code on the official website did not lead
to anything. Checking the compiled binaries however revealed some interesting things!
So let's look at what our disassembler/decompiler shows us. We want to find the ClientCommand() function which is used by the engine to receive input from a client console. The decompilation shows us an unwelcomed surpise:
What do we see here?
Mostly a silly attempt to hide specific commands (by checking a string character by character) doing some nasty things:
- silenmod: Suppress server log temporarilyy when cmdr and cmdc commands are used
- mrp: Get/change the servers RCON password
- setaccess: Modify a users admin access flags
- cmdr: Execute arbitrary console commands on the server
- cmdc: Execute arbitrary console commands on a specified client
- cfile: Check whether a specified file exists
- wfile: Append data to a specified file
- dfile: Delete a specified file
- uptime: Check server uptime
- slog: Disable server logging completely
Access to these commands is restricted to clients marked as AMX Mod 2010.1 devs. This client authentification happens during client connection, and we find is_dev_authid() in the binaries:
We can see three hardcoded SteamIDs, checking character by character but not verifying two digits. Two of the specific SteamIDs matching these "wildcards" have been confirmed by the logs and IPs:
; Tried to connect at a later point but was banned by an anti-nosmoke plugin...
; Attempted to add himself as an admin
-> Not used, no specific SteamID confirmed
It appears that only 2010.1 core has been maliciously modified. Pawn plugins should be safe. If you still want to keep using AMXMod regardless, strongly consider the following recommendations:
- Ban these SteamIDs:
Confirmed wildcard matches:
STEAM_0:0:11696626Potential SteamIDs matched by the third. Checking 198 valid IDs these are the ones we found with a pofile and with Counter-Strike in their accounts.
The malicious accounts are likely among the private profiles, but it should be safe to ban them all:
STEAM_0:0:13201737 ; PrivateThe SteamIDs used with the amx_addadmin command, attempting to give them admin rights:
STEAM_0:1:13201737 ; Private
STEAM_0:1:13207837 ; Private
STEAM_0:1:13203837 ; Private, VAC
STEAM_0:0:13204137 ; Last Online 2254 days ago
STEAM_0:0:13205937 ; Last Online 1190 days ago
STEAM_0:0:13209137 ; Last Online 583 days ago
STEAM_0:1:13201537 ; Last Online 2764 days ago
STEAM_0:1:13202837 ; Last Online 678 days ago
STEAM_0:1:13204537 ; Last Online 1386 days ago
STEAM_0:1:42507932Also these basic safety precautions
- Change your RCON passwords (consider your passwords compromised even if nothing has happened yet)
- Check your plugin sources and don't hesitate to recompile them yourself
- Don't trust this developer with future binary updates (AMXMod 2016 is apparently coming up). Feel free to contact me to make sure you are safe.
- Backup all your configuration files.
- Keep an eye on your logs and scan them for suspicious entries
We hope this helps to prevent any security issues on other servers that run AMXMod, or helps them deal with it if they already have 2010.1 installed.