alphasec academy

filter tb64 { [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($_)) } - przydatny filtr do kodowania Base64

Dodatkowe informacje

Zacznijmy od prostego przykładu:
PS /Users/drg> filter tb64{[Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($_))}
PS /Users/drg> whoami
drg
PS /Users/drg> whoami | tb64
ZAByAGcA
PS /Users/drg> 
Tworząc ten filtr, w wygodny sposób możemy mieć pod ręką szybki sposób na kodowanie danych do base64. Jedno z zastosowań to przygotowanie danych do eksfiltracji. Koklejnym jest przygotowanie payloadu do uruchomienia przez Powershella z wykorzystaniem opcji
-enc
, czyli np:
PS C:\Users\Administrator> echo "whoami"|tb64
dwBoAG8AYQBtAGkA
PS C:\Users\Administrator> powershell -enc dwBoAG8AYQBtAGkA
win-rvm4fv5tv8u\administrator
PS C:\Users\Administrator>

Co jest istotnego w filtrach?

Różnica między filtrem a chociażby funkcją polega na tym, że filtr przetwarza pojedyńczo każdy element wejściowy, zobaczcie:
PS C:\Users\Administrator> ls C:\Users\

    Directory: C:\Users

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        6/14/2020   4:03 PM                Administrator
d-r---        2/10/2020   9:19 AM                Public

PS C:\Users\Administrator> ls C:\Users\|tb64
QQBkAG0AaQBuAGkAcwB0AHIAYQB0AG8AcgA=
UAB1AGIAbABpAGMA
PS C:\Users\Administrator>
Generalnie to jest duży plus filtrów, natomiast warto o tym pamiętać, że jeśli byśmy chcieli zakodować całe wyjście poprzedniego polecenia w jeden duży string base64, jednym ze sposobów byłoby zamienienie całego wyjścia polecenia na string z użyciem
Out-String
, a następnie to przekazać do naszego filtra:
PS C:\Users\Administrator> ls C:\Users\|out-string|tb64
DQAKAA0ACgAgACAAIAAgAEQAaQByAGUAYwB0AG8AcgB5ADoAIABDADoAXABVAHMAZQByAHMADQAKAA0ACgANAAoATQBvAGQAZQAg
ACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEwAYQBzAHQAVwByAGkAdABlAFQAaQBtAGUAIAAgACAAIAAgACAAIAAgACAA
TABlAG4AZwB0AGgAIABOAGEAbQBlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAg
ACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAADQAKAC0ALQAtAC0AIAAgACAAIAAgACAAIAAgACAAIAAgACAA
IAAgACAAIAAtAC0ALQAtAC0ALQAtAC0ALQAtAC0ALQAtACAAIAAgACAAIAAgACAAIAAgAC0ALQAtAC0ALQAtACAALQAtAC0ALQAg
ACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAA
IAAgACAAIAAgACAAIAAgAA0ACgBkAC0ALQAtAC0ALQAgACAAIAAgACAAIAAgACAANgAvADEANAAvADIAMAAyADAAIAAgACAANAA6
ADAAMwAgAFAATQAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgAEEAZABtAGkAbgBpAHMAdAByAGEAdABvAHIAIAAgACAA
IAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAANAAoAZAAt
AHIALQAtAC0AIAAgACAAIAAgACAAIAAgADIALwAxADAALwAyADAAMgAwACAAIAAgADkAOgAxADkAIABBAE0AIAAgACAAIAAgACAA
IAAgACAAIAAgACAAIAAgACAAIABQAHUAYgBsAGkAYwAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAg
ACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAADQAKAA0ACgANAAoA
PS C:\Users\Administrator>

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.