MSMQ-Privilege-Escalation-Vulnerability

Neoficiálny “Patch Tuesday” – MSMQ Privilege Escalation Vulnerability Hotfix

Zhrnutie

Táto bezpečnostná záplata rieši verejne známu zraniteľnosť vo Windows Message Queuing Service (MSMQ) objavenú spoločnosťou KoreLogic [1]. V predvolenom nastavení súčasť Message Queuing nie je nainštalovaná a zraniteľný je iba operačný systém Windows XP. Keďže Microsoft pre Windows XP prestal vydávať bezpečnostné záplaty [2] a exploit je dostupný v Metasploite [3], rozhodli sme sa vydať hotfix, ktorý ochráni používateľov, ktorí nestihli zmigrovať z Windows XP a používajú túto službu. Patch bol úspešne otestovaný na Windows XP SP3 a neobsahuje žiadny škodlivý kód.

UPDATE: Pôvodná verzia záplaty nebola kompatibilná s prepínačom /3GB v boot.ini. Aktuálna verzia je kompatibilná aj s /3GB prepínačom. Ďakujeme Patrikovi Horníkovi zo spravodajského technologického servera DSL.sk za upozornenie.

Microsoft túto zraniteľnosť neplánuje zaplátať (z KoreLogic advisory):

msmq

Ako aplikovať záplatu

1. Spustite Windows XP v núdzovom režime [4]
2. Spustite python skript (záplatu) [5]

Záplata

#!/usr/bin/python
#
# MSMQ Privilege Escalation Vulnerability Hotfix - CVE-2014-4971
# 12th August 2014 - Alino from Citadelo - alino@citadelo.com
# 
# Disclaimer: Use this security patch at your own risk.
 
import os
import sys
import ctypes
import shutil
import hashlib
import platform
 
original = "7849c06480eeb96c0d06689e5db80ddcacc5dd077ce6dfa25ccb7bdf3378c962"
patched = "b014b913a1f913fad4d15cce9b27ff2b54f6f015c768b622c2baf049ca5f5b2e"
old_patch = "f481a1c6ea8508854ee8b4051d423679d58abb66586d904c7240b200fb109432"
 
driver = os.environ['WINDIR'] + "\\System32\\drivers\\mqac.sys"
driver_bck = os.environ['WINDIR'] + "\\System32\\drivers\\mqac.bck"
 
print "\n[*] MSMQ Privilege Escalation Vulnerability Hotfix - CVE-2014-4971"
print "[*] 12th August 2014 - Alino from Citadelo - alino@citadelo.com"
 
if platform.release() != "XP":
    sys.exit("\n[-] ERROR: This patch is for Windows XP!")
 
if ctypes.windll.user32.GetSystemMetrics(67) == 0:
    sys.exit("\n[-] ERROR: Must be run in Safe mode!")
 
if ctypes.windll.shell32.IsUserAnAdmin() != 1:
    sys.exit("\n[-] ERROR: You must have Administrator rights!")
 
if not os.path.exists(driver):
    sys.exit("\n[-] ERROR: Driver mqac.sys not found!")
 
hasher = hashlib.sha256()
with open(driver, "rb") as file:
    buffer = file.read()
    hasher.update(buffer)
 
if hasher.hexdigest() == patched:
    sys.exit("\n[-] ERROR: Already patched!")
 
if hasher.hexdigest() != original:
    if hasher.hexdigest() != old_patch:
        sys.exit("\n[-] ERROR: Wrong driver version! This patch is for version 5.1.0.1110")
 
shutil.copyfile(driver, driver_bck)
print "\n[*] Backup file mqac.bck created"
 
buffer = buffer[:0x138] + "\x0A\xE1\x01" + buffer[0x13B:] # PE CHECKSUM
buffer = buffer[:0x1EFA] + "\xE9\xDD\x18\x01\x00" + buffer[0x1EFF:] # JMP mqac!_alldiv+0x6
buffer = buffer[:0x1F32] + "\xEB\xC6" + buffer[0x1F34:] # JMP mqac!AC2QM+0x20
buffer = buffer[:0x137DC] + "\xE8\x00\x00\x00\x00\x5B\x8B\x5B\x73\x8B\x1B\x3B\xF3\xBB\x00\x00\x00\x00\x0F\x83\xE2\xE7\xFE\xFF\xE9\x3B\xE7\xFE\xFF" + buffer[0x137F9:] # CALL mqac!_alldiv+0xb; POP EBX; MOV EBX,DWORD PTR [EBX+73h]; MOV EBX,DWORD PTR [EBX]; CMP ESI,EBX; MOV EBX,0; JNB mqac!AC2QM+0xfc; JMP mqac!AC2QM+0x5a
 
f = open(driver , "wb")
f.write(buffer)
f.close()
 
print "[*] Driver sucessfully patched!"

Metasploit modul zlyhá počas exploitácie na zaplátanom systéme:

msmq

Upozornenie

Použitie záplaty je na vlastné riziko.

Zostávajte zabezpečení,
Alino

Referencie:

  1. https://www.korelogic.com/Resources/Advisories/KL-001-2014-003.txt

  2. http://windows.microsoft.com/en-us/windows/end-support-help

  3. http://www.rapid7.com/db/modules/exploit/windows/local/mqac_write

  4. http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/boot_failsafe.mspx

O autorovi

Citadelo
Citadelo je dom plný etických hackerov na vašej strane. Pomáhame otestovať ich informačnú bezpečnosť. Podrobte svoje IT prostredie výzve a odhaľte, do akej miery sú vaše citlivé dáta chránené.
Zobraziť viac od autora

Podobné blogy

Citadelo Security Evening - jar 2018

blog | | Michaela Gallee
Bizarné úniky firemných dát alebo ako si uchovať svoju virtuálnu peňaženku alebo ako sa uchrániť pred fenoménom "Black Swan". To sú témy prednášok, ktoré odzneli na Citadelo Security Evening (CSE), ktorý sa konal vo štvrtok 26.4.2018 u nás v Citadelo.
Zobraziť

Počítačová kriminalita – sme často obeťami hackerských útokov?

blog |
Už dávno neplatí, že v ohrození sú len medzinárodné spoločnosti alebo tí, čo disponujú hodnotným majetkom. Zločinci si pri útoku cez internet len málokedy vyberajú jednotlivcov - ich terčom sú masy.
Zobraziť

Bezpečnosť na internete - Viete sa správať v online priestore bezpečne?

blog |
Priemerný človek strávi na internete každý deň 3 hodiny a 20 minút. Okrem užitočných informácií a zábavy ale na nás čaká v online svete aj veľké množstvo hrozieb.
Zobraziť

Citadelo na novom a ešte bezpečnejšom webe

Blog | | Michaela Gallee
Naša požiadavka na bezpečný web sa môže niekomu zdať prehnaná, nie sme predsa svetová banka. To však nič nemení na tom, že našou víziou je bezpečný internet a preto naša priorita bola kladená na bezpečnosť.
Zobraziť