# Anti-Forensic Techniques {{#include ../../banners/hacktricks-training.md}} ## Timestamps Napadač može biti zainteresovan za **promenu vremenskih oznaka datoteka** kako bi izbegao otkrivanje.\ Moguće je pronaći vremenske oznake unutar MFT u atributima `$STANDARD_INFORMATION` \_\_ i \_\_ `$FILE_NAME`. Oba atributa imaju 4 vremenske oznake: **Modifikacija**, **pristup**, **kreiranje** i **modifikacija MFT registra** (MACE ili MACB). **Windows explorer** i drugi alati prikazuju informacije iz **`$STANDARD_INFORMATION`**. ### TimeStomp - Anti-forensic Tool Ovaj alat **modifikuje** informacije o vremenskim oznakama unutar **`$STANDARD_INFORMATION`** **ali** **ne** informacije unutar **`$FILE_NAME`**. Stoga, moguće je **identifikovati** **sumnjivu** **aktivnost**. ### Usnjrnl **USN Journal** (Dnevnik broja ažuriranja) je funkcija NTFS (Windows NT datotečni sistem) koja prati promene na volumenu. Alat [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) omogućava ispitivanje ovih promena. ![](<../../images/image (801).png>) Prethodna slika je **izlaz** prikazan od strane **alata** gde se može primetiti da su neke **promene izvršene** na datoteci. ### $LogFile **Sve promene metapodataka na datotečnom sistemu se beleže** u procesu poznatom kao [write-ahead logging](https://en.wikipedia.org/wiki/Write-ahead_logging). Beleženi metapodaci se čuvaju u datoteci nazvanoj `**$LogFile**`, koja se nalazi u korenskom direktorijumu NTFS datotečnog sistema. Alati kao što su [LogFileParser](https://github.com/jschicht/LogFileParser) mogu se koristiti za analizu ove datoteke i identifikaciju promena. ![](<../../images/image (137).png>) Ponovo, u izlazu alata moguće je videti da su **neke promene izvršene**. Korišćenjem istog alata moguće je identifikovati **kada su vremenske oznake modifikovane**: ![](<../../images/image (1089).png>) - CTIME: Vreme kreiranja datoteke - ATIME: Vreme modifikacije datoteke - MTIME: Modifikacija registra datoteke MFT - RTIME: Vreme pristupa datoteci ### `$STANDARD_INFORMATION` i `$FILE_NAME` poređenje Još jedan način da se identifikuju sumnjivo modifikovane datoteke bio bi da se uporede vremena na oba atributa tražeći **neusklađenosti**. ### Nanosekunde **NTFS** vremenske oznake imaju **preciznost** od **100 nanosekundi**. Stoga, pronalaženje datoteka sa vremenskim oznakama poput 2010-10-10 10:10:**00.000:0000 je veoma sumnjivo**. ### SetMace - Anti-forensic Tool Ovaj alat može modifikovati oba atributa `$STARNDAR_INFORMATION` i `$FILE_NAME`. Međutim, od Windows Vista, potrebno je da živi OS modifikuje ove informacije. ## Data Hiding NFTS koristi klaster i minimalnu veličinu informacija. To znači da ako datoteka koristi i klaster i pola, **preostala polovina nikada neće biti korišćena** dok se datoteka ne obriše. Stoga, moguće je **sakriti podatke u ovom slobodnom prostoru**. Postoje alati poput slacker koji omogućavaju skrivanje podataka u ovom "skrivenom" prostoru. Međutim, analiza `$logfile` i `$usnjrnl` može pokazati da su neki podaci dodati: ![](<../../images/image (1060).png>) Stoga, moguće je povratiti slobodan prostor koristeći alate poput FTK Imager. Imajte na umu da ovaj tip alata može sačuvati sadržaj obfuskovan ili čak enkriptovan. ## UsbKill Ovo je alat koji će **isključiti računar ako se otkrije bilo kakva promena na USB** portovima.\ Jedan od načina da se to otkrije bio bi da se ispita pokrenuti procesi i **pregleda svaki python skript koji se izvršava**. ## Live Linux Distributions Ove distribucije su **izvršene unutar RAM** memorije. Jedini način da ih otkrijete je **ako je NTFS datotečni sistem montiran sa dozvolama za pisanje**. Ako je montiran samo sa dozvolama za čitanje, neće biti moguće otkriti upad. ## Secure Deletion [https://github.com/Claudio-C/awesome-data-sanitization](https://github.com/Claudio-C/awesome-data-sanitization) ## Windows Configuration Moguće je onemogućiti nekoliko metoda beleženja u Windows-u kako bi se forenzička istraga učinila mnogo težom. ### Disable Timestamps - UserAssist Ovo je ključ registra koji održava datume i sate kada je svaki izvršni program pokrenut od strane korisnika. Onemogućavanje UserAssist zahteva dva koraka: 1. Postavite dva ključa registra, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` i `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, oba na nulu kako bi se signalizovalo da želimo da onemogućimo UserAssist. 2. Očistite svoje podključeve registra koji izgledaju kao `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\`. ### Disable Timestamps - Prefetch Ovo će sačuvati informacije o aplikacijama izvršenim sa ciljem poboljšanja performansi Windows sistema. Međutim, ovo može biti korisno i za forenzičke prakse. - Izvršite `regedit` - Izaberite putanju datoteke `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\Memory Management\PrefetchParameters` - Desni klik na `EnablePrefetcher` i `EnableSuperfetch` - Izaberite Izmeni na svakom od ovih da promenite vrednost sa 1 (ili 3) na 0 - Ponovo pokrenite ### Disable Timestamps - Last Access Time Kad god se folder otvori sa NTFS volumena na Windows NT serveru, sistem uzima vreme da **ažurira polje vremenske oznake na svakom navedenom folderu**, koje se zove vreme poslednjeg pristupa. Na NTFS volumenu koji se često koristi, ovo može uticati na performanse. 1. Otvorite Registry Editor (Regedit.exe). 2. Pretražite do `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`. 3. Potražite `NtfsDisableLastAccessUpdate`. Ako ne postoji, dodajte ovaj DWORD i postavite njegovu vrednost na 1, što će onemogućiti proces. 4. Zatvorite Registry Editor i ponovo pokrenite server. ### Delete USB History Sve **USB Device Entries** se čuvaju u Windows Registry pod **USBSTOR** ključem registra koji sadrži podključeve koji se kreiraju svaki put kada priključite USB uređaj u svoj PC ili laptop. Možete pronaći ovaj ključ ovde `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Brisanjem ovog** obrišete USB istoriju.\ Takođe možete koristiti alat [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) da biste bili sigurni da ste ih obrisali (i da ih obrišete). Još jedna datoteka koja čuva informacije o USB-ima je datoteka `setupapi.dev.log` unutar `C:\Windows\INF`. Ova datoteka takođe treba da bude obrisana. ### Disable Shadow Copies **Lista** senčnih kopija sa `vssadmin list shadowstorage`\ **Obrišite** ih pokretanjem `vssadmin delete shadow` Takođe ih možete obrisati putem GUI prateći korake predložene u [https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html](https://www.ubackup.com/windows-10/how-to-delete-shadow-copies-windows-10-5740.html) Da biste onemogućili senčne kopije [koraci su ovde](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows): 1. Otvorite program Services tako što ćete otkucati "services" u tekstualnu pretragu nakon što kliknete na Windows dugme za pokretanje. 2. Iz liste pronađite "Volume Shadow Copy", izaberite ga, a zatim pristupite Svojstvima desnim klikom. 3. Izaberite Onemogućeno iz padajućeg menija "Tip pokretanja", a zatim potvrdite promenu klikom na Primeni i U redu. Takođe je moguće modifikovati konfiguraciju koje datoteke će biti kopirane u senčnu kopiju u registru `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot` ### Overwrite deleted files - Možete koristiti **Windows alat**: `cipher /w:C` Ovo će označiti cipher da ukloni sve podatke iz dostupnog neiskorišćenog prostora na disku unutar C diska. - Takođe možete koristiti alate poput [**Eraser**](https://eraser.heidi.ie) ### Delete Windows event logs - Windows + R --> eventvwr.msc --> Proširite "Windows Logs" --> Desni klik na svaku kategoriju i izaberite "Clear Log" - `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"` - `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }` ### Disable Windows event logs - `reg add 'HKLM\\SYSTEM\\CurrentControlSet\\Services\\eventlog' /v Start /t REG_DWORD /d 4 /f` - Unutar sekcije servisa onemogućite servis "Windows Event Log" - `WEvtUtil.exec clear-log` ili `WEvtUtil.exe cl` ### Disable $UsnJrnl - `fsutil usn deletejournal /d c:` --- ## Advanced Logging & Trace Tampering (2023-2025) ### PowerShell ScriptBlock/Module Logging Nedavne verzije Windows 10/11 i Windows Server čuvaju **bogate forenzičke artefakte PowerShell-a** pod `Microsoft-Windows-PowerShell/Operational` (događaji 4104/4105/4106). Napadači mogu onemogućiti ili obrisati ih u hodu: ```powershell # Turn OFF ScriptBlock & Module logging (registry persistence) New-ItemProperty -Path "HKLM:\\SOFTWARE\\Microsoft\\PowerShell\\3\\PowerShellEngine" \ -Name EnableScriptBlockLogging -Value 0 -PropertyType DWord -Force New-ItemProperty -Path "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\PowerShell\\ModuleLogging" \ -Name EnableModuleLogging -Value 0 -PropertyType DWord -Force # In-memory wipe of recent PowerShell logs Get-WinEvent -LogName 'Microsoft-Windows-PowerShell/Operational' | Remove-WinEvent # requires admin & Win11 23H2+ ``` Defenderi bi trebali pratiti promene na tim registrima i visoki obim uklanjanja PowerShell događaja. ### ETW (Event Tracing for Windows) Patch Proizvodi za bezbednost krajnjih tačaka se u velikoj meri oslanjaju na ETW. Popularna metoda izbegavanja iz 2024. godine je patchovanje `ntdll!EtwEventWrite`/`EtwEventWriteFull` u memoriji tako da svaki ETW poziv vraća `STATUS_SUCCESS` bez emitovanja događaja: ```c // 0xC3 = RET on x64 unsigned char patch[1] = { 0xC3 }; WriteProcessMemory(GetCurrentProcess(), GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"), patch, sizeof(patch), NULL); ``` Public PoCs (e.g. `EtwTiSwallow`) implement the same primitive in PowerShell or C++. Zbog toga što je zakrpa **lokalna za proces**, EDR-ovi koji rade unutar drugih procesa mogu je propustiti. Detekcija: uporediti `ntdll` u memoriji naspram na disku, ili hook pre korisničkog moda. ### Revival Alternativnih Podataka (ADS) Malware kampanje u 2023. (npr. **FIN12** loaderi) su primećene kako postavljaju binarne datoteke druge faze unutar ADS-a da bi ostale van vidokruga tradicionalnih skenera: ```cmd rem Hide cobalt.bin inside an ADS of a PDF type cobalt.bin > report.pdf:win32res.dll rem Execute directly wmic process call create "cmd /c report.pdf:win32res.dll" ``` Enumerišite tokove sa `dir /R`, `Get-Item -Stream *`, ili Sysinternals `streams64.exe`. Kopiranje host fajla na FAT/exFAT ili putem SMB će ukloniti skriveni tok i može se koristiti od strane istražitelja za oporavak payload-a. ### BYOVD & “AuKill” (2023) Bring-Your-Own-Vulnerable-Driver se sada rutinski koristi za **anti-forensics** u ransomware napadima. Open-source alat **AuKill** učitava potpisani, ali ranjivi drajver (`procexp152.sys`) da suspenduje ili prekine EDR i forenzičke senzore **pre nego što dođe do enkripcije i uništavanja logova**: ```cmd AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe" AuKill.exe -k CrowdStrike ``` Vozač se uklanja nakon toga, ostavljajući minimalne artefakte. Mere zaštite: omogućite Microsoftovu blok listu ranjivih vozača (HVCI/SAC) i obavestite o kreiranju kernel-servisa iz putanja koje korisnik može da piše. --- ## Linux Anti-Forensics: Samo-popravljanje i Cloud C2 (2023–2025) ### Samo-popravljanje kompromitovanih servisa za smanjenje detekcije (Linux) Protivnici sve više "samo-popravljaju" servis odmah nakon što ga iskoriste kako bi sprečili ponovnu eksploataciju i suprimili detekcije zasnovane na ranjivostima. Ideja je da se ranjivi komponenti zamene najnovijim legitimnim upstream binarnim datotekama/JAR-ovima, tako da skeneri prijavljuju host kao popravljen dok persistencija i C2 ostaju. Primer: Apache ActiveMQ OpenWire RCE (CVE‑2023‑46604) - Nakon eksploatacije, napadači su preuzeli legitimne JAR-ove sa Maven Central (repo1.maven.org), obrisali ranjive JAR-ove u ActiveMQ instalaciji i ponovo pokrenuli broker. - Ovo je zatvorilo inicijalni RCE dok su se održali drugi uporišta (cron, promene SSH konfiguracije, odvojeni C2 implantati). Operativni primer (ilustrativno) ```bash # ActiveMQ install root (adjust as needed) AMQ_DIR=/opt/activemq cd "$AMQ_DIR"/lib # Fetch patched JARs from Maven Central (versions as appropriate) curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-client/5.18.3/activemq-client-5.18.3.jar curl -fsSL -O https://repo1.maven.org/maven2/org/apache/activemq/activemq-openwire-legacy/5.18.3/activemq-openwire-legacy-5.18.3.jar # Remove vulnerable files and ensure the service uses the patched ones rm -f activemq-client-5.18.2.jar activemq-openwire-legacy-5.18.2.jar || true ln -sf activemq-client-5.18.3.jar activemq-client.jar ln -sf activemq-openwire-legacy-5.18.3.jar activemq-openwire-legacy.jar # Apply changes without removing persistence systemctl restart activemq || service activemq restart ``` Forenzička/istraživačka uputstva - Pregledajte direktorijume usluga za neplanirane zamene binarnih/JAR datoteka: - Debian/Ubuntu: `dpkg -V activemq` i uporedite heš/putanje datoteka sa repozitorijumima. - RHEL/CentOS: `rpm -Va 'activemq*'` - Potražite JAR verzije prisutne na disku koje nisu u vlasništvu menadžera paketa, ili simboličke linkove ažurirane van kanala. - Vremenska linija: `find "$AMQ_DIR" -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort` za korelaciju ctime/mtime sa vremenom kompromitacije. - Istorija ljuske/telemetrija procesa: dokazi o `curl`/`wget` ka `repo1.maven.org` ili drugim CDN-ovima artefakata odmah nakon inicijalne eksploatacije. - Upravljanje promenama: validirajte ko je primenio “zakrpu” i zašto, ne samo da je prisutna verzija sa zakrpom. ### Cloud‑service C2 sa bearer tokenima i anti‑analitičkim stagerima Posmatrano trgovanje kombinovalo je više dugoročnih C2 puteva i anti‑analitičko pakovanje: - Loader-i PyInstaller ELF zaštićeni lozinkom kako bi se otežalo korišćenje sandboxes i statička analiza (npr., enkriptovani PYZ, privremena ekstrakcija pod `/_MEI*`). - Indikatori: `strings` hitovi kao što su `PyInstaller`, `pyi-archive`, `PYZ-00.pyz`, `MEIPASS`. - Artefakti u vreme izvršavanja: ekstrakcija u `/tmp/_MEI*` ili prilagođene `--runtime-tmpdir` putanje. - C2 podržan Dropbox-om koristeći hardkodirane OAuth Bearer tokene - Mrežni markeri: `api.dropboxapi.com` / `content.dropboxapi.com` sa `Authorization: Bearer `. - Istražujte u proxy/NetFlow/Zeek/Suricata za izlazni HTTPS ka Dropbox domenima iz serverskih radnih opterećenja koja obično ne sinhronizuju datoteke. - Paralelni/rezervni C2 putem tunelovanja (npr., Cloudflare Tunnel `cloudflared`), zadržavajući kontrolu ako je jedan kanal blokiran. - Host IOCs: `cloudflared` procesi/jedinice, konfiguracija na `~/.cloudflared/*.json`, izlazni 443 ka Cloudflare ivicama. ### Postojanost i “hardening rollback” za održavanje pristupa (primeri za Linux) Napadači često kombinuju samopročišćavanje sa trajnim pristupnim putevima: - Cron/Anacron: izmene u `0anacron` stubu u svakom `/etc/cron.*/` direktorijumu za periodičnu izvršavanje. - Istražujte: ```bash for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done grep -R --line-number -E 'curl|wget|python|/bin/sh' /etc/cron.*/* 2>/dev/null ``` - Hardening rollback SSH konfiguracije: omogućavanje root prijava i menjanje podrazumevanih ljuski za naloge sa niskim privilegijama. - Istražujte za omogućavanje root prijava: ```bash grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config # vrednosti zastavica kao što su "yes" ili previše permisivne postavke ``` - Istražujte sumnjive interaktivne ljuske na sistemskim nalozima (npr., `games`): ```bash awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd ``` - Nasumični, kratko imenovani beacon artefakti (8 slova) postavljeni na disk koji takođe kontaktiraju cloud C2: - Istražujte: ```bash find / -maxdepth 3 -type f -regextype posix-extended -regex '.*/[A-Za-z]{8}$' \ -exec stat -c '%n %s %y' {} \; 2>/dev/null | sort ``` Odbrambeni timovi treba da koreliraju ove artefakte sa spoljnim izlaganjem i događajima zakrpa usluga kako bi otkrili anti‑forenzičko samopročišćavanje korišćeno za prikrivanje inicijalne eksploatacije. ## Reference - Sophos X-Ops – “AuKill: A Weaponized Vulnerable Driver for Disabling EDR” (mart 2023) https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-for-disabling-edr - Red Canary – “Patching EtwEventWrite for Stealth: Detection & Hunting” (jun 2024) https://redcanary.com/blog/etw-patching-detection - [Red Canary – Patching for persistence: How DripDropper Linux malware moves through the cloud](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/) - [CVE‑2023‑46604 – Apache ActiveMQ OpenWire RCE (NVD)](https://nvd.nist.gov/vuln/detail/CVE-2023-46604) {{#include ../../banners/hacktricks-training.md}}