Status: still vulnerable as far as I know.
Full details here:
http://revuln.com/files/ReVuln_Steam_Se ... curity.pdf
What I think is particularly interesting of that paper is the tool I released and the information about the IPC interface of the service.
The following are the methods that can be called:
Code: Select all
IClientInstallUtils::SetUniverse
IClientInstallUtils::AddShortcut
IClientInstallUtils::RemoveShortcut
IClientInstallUtils::RemoveFromGameExplorer
IClientInstallUtils::AddRichSavedGames
IClientInstallUtils::RemoveRichSavedGames
IClientInstallUtils::AddToMediaCenter
IClientInstallUtils::RemoveFromMediaCenter
IClientInstallUtils::AddUninstallEntry
IClientInstallUtils::RemoveUninstallEntry
IClientInstallUtils::AddToFirewall
IClientInstallUtils::RemoveFromFirewall
IClientInstallUtils::RegisterSteamProtocolHandler
IClientInstallUtils::FixupSteamClientShortcuts
IClientInstallUtils::RunInstallScript
IClientInstallUtils::AddInstallScriptToWhiteList
IClientInstallUtils::GetInstallScriptExitCode
IClientModuleManager::LoadModule
IClientModuleManager::UnloadModule
IClientModuleManager::CallFunctionAsync
IClientModuleManager::CallFunction
IClientModuleManager::PollResponseAsync
IClientProcessMonitor::RegisterProcess
IClientProcessMonitor::UnregisterProcess
IClientProcessMonitor::TerminateProcess
IRegistryInterface::BGetValueUint
IRegistryInterface::BSetValueBin
IRegistryInterface::BDeleteValue
IRegistryInterface::BDeleteKey
IRegistryInterface::BKeyExists
IRegistryInterface::BSetValueStr
IRegistryInterface::BSetValueUint
IRegistryInterface::BGetSubKeys
IRegistryInterface::BGetValues
IRegistryInterface::BEnumerateKey
IRegistryInterface::BGetValueStr
IRegistryInterface::BGetValueBin
IRegistryInterface::BenumerateValue
The tool contains all the arguments and is well made, except for the "exit" part because the service remain freezed and you must kill it manually (as SYSTEM obviously)... yeah that part needed more work so feel free to have fun with it.
Link:
http://aluigi.org/poc/steam_service_poc.zip