alphasec academy

gci -r $HOME|gi -s *|where Stream -ne ':$DATA'|select Filename,Stream - znajdź w katalogu domowym użytkownika pliki, które posiadają ukrytą zawartość jako Alternate Data Streams

Dodatkowe informacje

System plików NTFS udostąpnia mechanizm strumieni (Alternate Data Streams), dzięki któremu do plików (a także katalogów) mogą być dopisywane różne metadane, a nawet alternatywna zawartość pliku. Nazwa alternatywnego strumienia podawana jest po dwukropku. Realnym przykładem wykorzystania ADS jest strumień o nazwie Zone.Identifier, w którym aplikacje internetowe typu Internet Explorer, Google Chrome, Microsoft Outlook zapisują informacje o tym, że plik pochodzi ze strefy Internet.
ADS jest również bardzo lubiany przez cyberprzestępców - jest świetnym miejscem na ukrycie złośliwego oprogramowania lub fantów zdobytych podczas operacji.
Nasz oneliner pobierze rekursywnie listę plików z katalogu domowego użytkownika (
Get-ChildItem -Recurse $HOME
, w skrócie
gci -r $HOME
), następnie dla każdego pliku i katalogu pobierze wszystkie strumienie (
Get-Item -Stream *
, w skrócie
gi -s *
), po czym odrzuci domyślne strumienie
where Stream -ne ':$DATA'
. Na koniec wyświetlimy jedynie nazwę pliku i nazwę strumienia.

Jak pracować z ADS?

Niech jeden listing stanie się wart więcej niż tysiąc słów:
PS C:\Users\drg> mkdir ads

    Directory: C:\Users\drg

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       29.09.2020     11:27                ads


PS C:\Users\drg> Set-Content -Path .\ads\hello.txt -Value "hello"
PS C:\Users\drg> Set-Content -Path .\ads\hello.txt -Value "tajne dane" -Stream ukryty
PS C:\Users\drg> Get-ChildItem .\ads\

    Directory: C:\Users\drg\ads

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       29.09.2020     11:28              7 hello.txt

PS C:\Users\drg> Get-ChildItem .\ads\|Get-Item -Stream *|Select Filename,Stream

FileName                   Stream
--------                   ------
C:\Users\drg\ads\hello.txt :$DATA
C:\Users\drg\ads\hello.txt ukryty


PS C:\Users\drg> Get-Content .\ads\hello.txt
hello
PS C:\Users\drg> Get-Content .\ads\hello.txt -Stream ukryty
tajne dane
PS C:\Users\drg> cat .\ads\hello.txt:ukryty
tajne dane
PS C:\Users\drg>

Przydatne linki


Subskrybuj

Jeśli chcesz otrzymywać nowe, mięsiste protipy na maila, a także zostać czasem powiadomiony o wartościowych wydarzeniach - dołącz do subskrybentów.