W dzisiejszym odcinku hakowania opiszemy siedem nowych LOLBinów do omijania zabezpieczeń systemowych. Tym razem nowe LOLBins łączy jedna wspólna cecha – uruchamiane z linii komend z katalogu zarządzanego przez użytkownika pomagają odpalić zewnętrzny złośliwy plik, który jest wyszukiwany przez system w tej samej ścieżce.
Pod koniec ubiegłego roku pisaliśmy o 3 ciekawych LOLBinach pozwalających oszukać Windows w kontekście blokady uruchamiania zabronionego oprogramowania.
Do naszego zbioru LOLBins trafia dzisiaj aż siedem nowych, które opisujemy poniżej.
Lecz aby poniższe LOLBiny zadziałały, muszą być spełnione następujące warunki:
- Musisz utworzyć folder na dysku, do którego posiadasz pełne uprawnienia, np. „c:\Temp” , na pulpicie lub w innej lokalizacji.
- Z poziomu ścieżki zarządzanego folderu w wierszu linii poleceń musisz uruchomić poniższe LOLBiny (w cudzysłowie z pełną ścieżką).
Poniższe LOLBiny wykorzystują niezałatany do tej pory błąd w systemie Windows, związany z uruchomieniem zależnego, innego pliku (kodu lub biblioteki) bądź programu, który w naszym przypadku będzie w pierwszej kolejności wyszukiwany przez system w bieżącym katalogu użytkownika (tak jakby Windows nie weryfikował ścieżki, skąd jest dany plik uruchamiany). A ponieważ użytkownik posiada pełną kontrolę nad folderem, może w nim umieszczać pożądane przez system nazwy plików (w tym te złośliwe) i dzięki temu niekontrolowanie uruchamiać własny kod.
1. Panel sterowania myszą „main.cpl” i odpalenie zewnętrznego pliku „MOUSE.DLL”.
Zacznijmy od pierwszego pliku, uruchamiającego panel sterowania myszą, czyli „main.cpl”. Plik ten znajduje się w katalogu „C:\Windows\SysWOW64\main.cpl”. Jego uruchomienie z naszego katalogu „C:\Temp\KapitanHack” spowoduje, iż system operacyjny będzie wyszukiwał w nim obecności biblioteki „MOUSE.DLL”. Na dowód wklejamy poniżej zrzut z Process Monitora.
Jeśli użytkownik stworzy własną bibliotekę i nazwie ją „MOUSE.DLL” oraz umieści w powyższym katalogu, wówczas może liczyć na jej załadowanie (uruchomienie kodu).
2. Program diagnostyczny Internet Explorera „iediagcmd.exe” i odpalenie w tle „ipconfig.exe”, „route.exe”, „netsh.exe” oraz „makecab.exe”
Drugi na liście jest program „iediagcmd.exe” znajdujący się w ścieżce „C:\Program Files\Internet Explorer\iediagcmd.exe”. Jego uruchomienie przez użytkownika w katalogu KapitanHack spowoduje wyszukiwanie w nim i próbę uruchomienia w nim plików: „ipconfig.exe”, „route.exe”, „netsh.exe” oraz „makecab.exe”.
3. adekwatności systemu „sysdm.cpl” i uruchomienie „SystemPropertiesComputerName.exe”
Kolejny plik to często uruchamiany Panel Sterowania, którego źródło znajdziesz w „C:\Windows\SysWOW64\system.cpl”. Uruchomienie tego pliku spowoduje wyszukiwanie w katalogu użytkownika pliku wykonywalnego „SystemPropertiesComputerName.exe”. jeżeli zatem nazwiesz tak swój program i umieścisz w katalogu „c:\Temp\KapitanHack”, wówczas wykona się jego kod.
Poniżej pokazujemy przykład uruchomienia skopiowanej aplikacji kalkulatora (calc.exe), którego nazwę zamieniliśmy na „SystemPropertiesComputerName.exe” i umieściliśmy w naszym katalogu przed uruchomieniem „system.cpl”.
4. Program Microsoft Windows Subsystem for Linux „wsl.exe” i uruchomienie „SystemPropertiesComputerName.exe”
Czwarty na liście jest program uruchamiający system Linux z poziomu Windows – „wsl.exe” zlokalizowany pod ścieżką: „C:\Windows\WinSxS\amd64_microsoft-windows-lxss-wsl_31bf3856ad364e35_10.0.19041.2311_none_f7a4fa53841d8f4”. WSL umożliwia programistom instalowanie dystrybucji Linuksa (takich jak Ubuntu, OpenSUSE, Kali, Debian, Arch Linux itp.) i używanie aplikacji, narzędzi z powłoki Linux z poziomu Windows.
Jeśli uruchomimy ten plik z naszego katalogu, wówczas system będzie starał się odnaleźć w nim oraz uruchomić plik „SystemPropertiesComputerName.exe”.
5. Program do konfiguracji folderów roboczych „Workfolders.exe” i uruchomienie „control.exe”
Dzięki folderom roboczym użytkownicy mogą przechowywać i uzyskiwać dostęp do plików roboczych na komputerach osobistych i urządzeniach często określanych jako „przynieś własne urządzenie” (BYOD).
Uruchomienie pliku „workfolders.exe” z naszego katalogu spowoduje wyszukanie w nim pliku „control.exe”. jeżeli umieścimy w nim taki plik, zostanie on oczywiście automatycznie odpalony.
6. Skrypt „GatherNetworkInfo.vbs” i uruchomienie w tle „cmd.exe”, „powershell.exe”, „powercfg.exe”, „sc.exe”, „reg.exe”, „netsh.exe”
Uruchomienie wbudowanego w Windows narzędzia diagnostycznego w postaci skryptu VBS z lokalizacji „C:\Windows\System32\GatherNetworkInfo.vbs” da możliwość odpalenia naszego kodu, jeżeli nazwiemy go jak jeden z wymienionych poniżej plików:
- cmd.exe,
- powershell.exe,
- powercfg.exe,
- sc.exe,
- reg.exe,
- netsh.exe.
7. „PhoneExperienceHost.exe” i uruchomienie w tle biblioteki „YourPhone.dll” oraz innych
Plikiem zamykającym dzisiejszą listę jest „PhoneExperienceHost.exe“ znajdujący się w ścieżce „C:\Programfiles\WindowsApps\Microsoft.YourPhone_1.23022.140.0_x64__8wekyb3d8bbw\PhoneExperienceHost.exe”.
„PhoneExpereinceHost.exe” to proces działający w tle w systemie Windows i odpowiedzialny za zarządzanie aktywną synchronizacją między komputerem a telefonem.
UWAGA! Katalog „Microsoft.YourPhone_1.23022.140.0_x64__8wekyb3d8bbwe” może nazywać się inaczej w Twoim systemie operacyjnym. Do zidentyfikowania jego prawidłowej nazwy należy wyświetlić zawartość jego katalogu nadrzędnego „WindowsApps” – tutaj potrzebne uprawnienia systemowe. W celu dostania się do folderu „Microsoft.YourPhone_1.23022.140.0_x64__8wekyb3d8bbwe” wystarczy zwykłe konto użytkownika.
Po uruchomieniu komendy widzimy nazwy plików, jakich szuka system Windows w katalogu „C:\Temp\kapitanhack”.
Jest to doskonały przykład na to, iż nie tylko pliki ze ścieżek systemowych mogą stwarzać możliwości obejścia zabezpieczeń.
Podsumowanie
Łowcy LOLBinów nieustanie wyszykują nowe możliwości na uruchomienie zewnętrznego kodu na Windows. Dzisiejsze przykłady pokazują, iż to nie koniec poszukiwań i z pewnością pojawią się w sieci nowe pliki, o których postaramy się dla Was napisać. Ostatni (siódmy) przykład udowadnia, iż LOLBinem niekoniecznie musi być program z katalogów systemowych znajdujących się w „c:\Windows”, ale także z „Program Files”. Może to być również aplikacja zewnętrzna, która użyta w pewnym kontekście da możliwość utworzenia obejścia i uruchomienia innego, zależnego programu. Tym programem może być oczywiście nasz własny kod. Przykłady powyższych LOLBINs znajdziecie również tutaj.