Sunteți pe pagina 1din 226

Tehnici proactive de detecție a

amenințărilor cibernetice
(Cyber Threats Hunting)

Ion BICA, PhD, CISA


Cezar GLĂVAN, GREM, GCFA, GHFI, LPIC
Obiective
 Prezentarea tehnicilor fundamentale de investigare a
incidentelor de securitate cibernetică
 Înțelegerea tacticilor, tehnicilor si procedurilor folosite de
atacatori
 Prezentarea etapelor unui atac targetat
 Prezentarea surselor de date care pot ajuta la identificarea si
documentarea unui atac cibernetic
 Familiarizarea cu uneltele si tehnicile folosite pentru analiza
host-forensic și network-forensic a surselor de date ce pot
conține urme ale unei compromiteri
 Prezentarea tehnicilor de triere rapida a unui sistem pentru a
stabili daca este compromis

2
Cuprins
1. Introducere
2. Procesul de răspuns la incidente de securitate cibernetică
 Laborator
3. Colectarea probelor digitale
 Laborator
4. Live Windows Incident Response
 Laborator
5. Analiza Timeline
 Laborator
6. Investigarea acțiunilor de răspândire a unei amenințări în
cadrul unei rețele (lateral movement)
 Laborator
7. Threat Hunting
 Laborator 3
Detalii organizatorice
 Programul zilnic: 09:00 – 17:00
 Pauza de masă: 12:30 – 13:30
 Telefoanele mobile: silent

4
Introducere

5
Atacuri cibernetice targetate. APTs
 Creștere în frecvență și complexitate a atacurilor cibernetice
 Conform FireEye, în 2017, numărul mediu de zile în care o
organizație a fost compromisă înainte de a descoperi
intruziunea a fost 101 (205/2014, 146/2015, 99/2016)
 Mandiant’s Red Team are o medie de 3 zile pentru obținerea
credențialelor administratorului de domeniu => o fereastră de
98 de zile pentru atacatori
 Spre deosebire de anii trecuți, organizațiile încep să reușească
să identifice atacurile prin forțe proprii – 62%
– Statistica FireEye cu privire la organizațiile care au descoperit atacurile
prin forțe proprii din anii precedenți era de: 31%/2015, 33%/2014,
37%/2013

6
Principiul...

 56% dintre organizațiile care le un moment dat au fost


compromise prin intermediul unui atac cibernetic ajung ca,
într-un interval de 19 luni, să fie din nou ținta unui atac cel
puțin la fel de complex

7
Atacuri cibernetice targetate. APTs
 Colecție de rapoarte de investigații a APTurilor:
– Targeted CyberAttacks LOGBOOK (Kaspersky)
• https://apt.securelist.com/#secondPage
– https://github.com/kbandla/APTnotes
– http://cybercampaigns.net/
– https://docs.google.com/spreadsheets/d/1H9_xaxQHpWaa4O_Son4Gx0
YOIzlcBWMsdvePFX68EKU/edit?pref=2&pli=1#gid=376438690

8
Natura organizațiilor targetate

9
https://www2.fireeye.com/rs/848-DID-242/images/Mtrends2016.pdf
Modele pentru descrierea atacurilor cibernetice
Cyber Kill Chain – creat de Lockheed Martin

10
Targeted Attack Lifecycle

Dell SecureWorks - http://www.secureworks.com/cyber-threat-


11
intelligence/advanced-persistent-threats/understand-threat/
Targeted Attack Lifecycle

https://www2.fireeye.com/rs/848-DID-242/images/Mtrends2016.pdf
12
Urme lăsate în fiecare pas al atacului

13
Vectori de atac inițiali
 Instrumente și metode care exploatează anumite vulnerabilități
pentru a obține accesul inițial într-o anumită rețea
 Spear phishing (phishing emails)
– Atașamente sau link-uri malițioase
 Watering hole
 Exploatare echipamente de rețea (routere, switch-uri, firewalls)
– Monitorizare trafic
– Activități de recunoaștere
– Persistență în acces
– Modificarea sau dezactivarea controalelor de securitate => obținere
acces la un mediu protejat, recunoașterea țintei
 Compromiterea unor terți (furnizori de servicii) pentru a obține
acces la organizația victimă
14
Procesul de răspuns la incidente de
securitate cibernetică

15
Procesul de răspuns la incidente de sec. cib.

Detection & Analysis

Containment
Post-Incident
Preparation Detection Hunting Eradication
Activity
& Recovery

Adaptat după NIST.SP.800-61r2 Computer Security Incident Handling Guide


http://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-61r2.pdf
16
Preparation
 Dezvoltarea unei capabilități de răspuns la incidente
 Prevenirea incidentelor
– Systems, Networks and Applications hardening
 Mediu de investigație ”prietenos”
 NIST.SP.800-61r2 propune o serie de instrumente și resurse
utile în gestionarea unui incident
– Facilități și canale de comunicații pentru echipa de răspuns
– Hardware și software
– Resurse:
• Documentația pentru SO, aplicații, IDS, AV
• Schema rețelei, sisteme critice
• Baseline-uri pentru rețea, sisteme și aplicații
• Imagini de SO și aplicații pentru restaurare și recuperare
• Kit-uri de reacție rapidă
• Whitelist - The National Software Reference Library (NSRL)
17
 Exerciții de simulare a unui incident
Preparation. Hardening
Managementul privilegiilor
 Utilizatorii nu trebuie să aibă drepturi de administrator
 Conturile nu se partajează
 Parolele nu se partajează
 Implementare autentificare multi-factor pentru administratori
Arhitectura rețelei
 Segmentare multi-tier
 Blocarea comunicațiilor de tip workstation-to-workstation
 Limitarea comunicațiilor de tip workstation-to-server
 Blocarea site-urilor necatalogate
 Blocarea accesului la Internet a serverelor
VPN
 Autentificare two-factor. Dezactivare split tunneling 18
Preparation. Mediu investigativ ”prietenos”
La nivel de host
 Monitorizarea securității și configurației host-urilor (agent)
 Analiză forensic
 Configurații standard (baseline)
 Configurare Windows Event Logs a.î. să surprindă
evenimentele de securitate relevante

Analiza traficului de rețea


 IDS/IPS
 Netflow
 Inspectarea nivelului Aplicație

19
Preparation. Mediu investigativ ”prietenos”
Logare
 Inspectarea nivelului Aplicație
 Creșterea capacității de stocare pentru Windows Event Log
 Autentificare VPN
 Loguri antivirus
 Loguri HIPS
 Loguri de management al patch-urilor
 Sursa cererilor DNS
 Asignări DHCP

20
Preparation. Prevenirea incidentelor
 Suficiente controale de securitate (+configurație judicioasă)
 CSIRT propune măsuri de îmbunătățire a stării de securitate
 Practici recomandate pentru securizarea rețelelor, sistemelor
și aplicațiilor:
– Evaluarea riscurilor
– Securizarea hosturilor (hardening)
– Securizarea rețelei
– Sisteme anti-malware
– User awareness & Training

21
Detection & Analysis
 Mandiant M-TRENDS 2018. Cum au fost detectate atacurile?

22
Detection & Analysis
 Recunoașterea caracterului amenințării
Defăimare
Avantaje Expunere
Acces și
Obiective economice, Bani mediatică Distrugere
propagare
politice Impact
politic
Furt de Furtul Distrugerea
Botnets & Website
Exemple proprietate datelor infrastructurilor
SPAM defacement
intelectuală bancare critice
Targetat NU DA DA DA DA
Provocat de
Caracter Automat Persistent Oportunistic Izbitor anumite
conflicte
 Vectori de atac comuni
– Spear phishing
– Watering hole
– Botnets
23
– Web-based (SQL injection)
Detection & Analysis
Strong  Eveniment de logon neautorizat la un IP din plaja VPN
 Fișiere RAR identificate în rădăcina unui server de fișiere
 HIPS a detectat un password dumper pe controlerul de domeniu
 Scheduled Tasks suspecte pe serverul de fișiere
 Web proxy a detectat o cerere către evildomain.no-ip.org

 AV a detectat un DLL ca urmare a scanărilor de rutină


 Un filtru de email a detectat un atașament sau un URL malițios
 NIDS a detectat callback-uri specifice troianului ZeroAccess

 Utilizatorii au primit mail-uri de phishing bancar


 Mail-uri blocate de filtrul de SPAM
 Utilizatorii se plâng că sistemele se comportă ”ciudat”
 Firewall-ul de perimetru a blocat încercări de scanare de porturi
24
Weak
Detection & Analysis
 Abordare depășită:

Identificare Repetare până


Achiziție
sisteme de Analiza datelor la epuizarea
imagine
interes indiciilor

 Sunt rare incidentele care prezintă o urmă simplă, liniară a


evenimentelor
– Mai multe host-uri de tip ”pacient zero”
– Hosturi compromise, accesate
– Valuri de phishing multiple
– Mai multe puncte de pivotare pentru lateral movement
– Artefactele forensic dispar în timp
– Zgomotul generat de malware comun (commodity malware)
25
Detection & Analysis
 Unde ne uităm?
– Network & host based evidence
– Depinde de indiciul inițial
– Folosim resursele disponibile pentru a stabili dimensiunea incidentului
Network Sources of Evidence Host-Based Sources of Evidence

Web Proxy Centralized Centralized


DNS Logs
Logs AV & HIPS Event Logs
Logs
Firewall
DHCP Logs
Logs
Configuration
Management Endpoint
& Software Forensics
Netflow Logs VPN Logs
Inventory

26
Detection & Analysis
Hunting
 Nu așteptăm până la declanșarea alarmei
 Apărare proactivă:

Identify
Hosts & Gather systems of
Network Sources of interest,
Devices Evidence generate new
leads

• Registry Keys
• Scheduled Tasks
• Event Logs
• AV Logs
• Software Inventory
• Windows Services
• Autoruns
• Filesystem Data
27
Containment, Eradication & Recovery
 Containment & Inteligence Gathering
– Echipa de IR va ști cum a penetrat atacatorul rețeaua, cum s-au
răspândit în cadrul rețelei (lateral movement) și ce malware au folosit =>
Threat Intelligence (TI)
– TI va fi folosit pentru a identifica eventuale alte sisteme compromise
(fully scope the incident) și pentru a propune contramăsuri de
remediere
 Remediation Goals
– Dezvoltarea unei strategii în baza TI
– Înlăturarea completă a atacator-ului(lor)
– Prevenirea întoarcerii imediate a atacatorului
– Recomandările de remediere trebuie realizate într-un timp scurt
– Îmbunătățirea securității (hardening)
– Sporirea capabilităților de detecție
– Îmbunătățirea procesului de răspuns la incidente
28
Containment, Eradication & Recovery
 Planificarea activităților de remediere
– Construirea unui mediu ”prietenos” pentru investigații
– Contramăsurile propuse ar trebui să nu afecteze investigația
– Elaborarea unui plan de remediere

 Când remediem?
– Suntem convinși că s-a realizat dimensionarea completă a
compromiterii?
– Există un impact asupra datelor reglementate sau conexate unui
contract?
– Avem vizibilitate în mediul protejat?
– Am atribuit atacul?
– În funcție de tempo-ul activităților atacatorului
– În funcție de ritmul investigației și cele descoperite
– În funcție de riscul pe care ni-l putem asuma 29
Containment, Eradication & Recovery
 Acțiuni de remediere:
– Izolare / deconectare de la Internet
– Blocare infrastructură de comandă și control (C2)
• Blocare adrese IP malițioase
• Blackhole domenii malițioase
– Înlocuire sisteme compromise
– Înlăturare malware de la nivelul sistemelor ce nu pot fi reconstruite
– Schimbare parole de domeniu și locale
– Verificare acțiuni de remediere
– Îmbunătățirea pe termen lung a strategiei de securitate

30
Containment, Eradication & Recovery
 Recovery
– Revenire la starea de normalitate
– Se recomandă implementarea unor soluții pe termen lung cu scopul de
a îmbunătăți starea de securitate a rețelei a.î. să permită prevenirea și
detecția unor alte eventuale incidente similar
 Măsuri de recuperare pe termen lung:
– Îmbunătățirea modelului de autentificare la nivel enterprise
– Creșterea vizibilității la nivelul rețelei
– Stabilirea unui program de management al patch-urilor
– Implementarea unui program de management al schimbărilor de
configurație
– Implementarea unei soluții de logare centralizată
• SIEM – Security Information and Event Management
– Îmbunătățirea portalului de parole
– Dezvoltarea unui program de Security Awareness Training
31
– Re-proiectarea rețelei
Post-Incident Activity
 Verificări
– Incidentul a fost soluționat?
– Atacatorul a fost înlăturat?
– Contra-măsurile au fost implementate?

 Combinație de
– monitorizare adițională,
– network/host sweeps pentru a identifica noi compromiteri și insule de
atac (beach heads) și
– auditarea rețelei (PenTest & Compliance)

32
Threat Intelligence (TI)
 Informații despre adversari / atacatori
– Infrastructură
– Instrumente
– Tehnici preferate
 Procese care să folosească informațiile și să conducă la
detecția activităților malițioase
 TI-ul creat și făcut public de o organizație nu este neapărat
aplicabil în totalitate și fără adaptări și propriei organizații
(adversari diferiți sau aceeași adversari dar cu TTPs (Tactics,
Techniques and Procedures) adaptate la organizație) =>
necesitatea de a completa / adapta TI-ul public cu cel creat prin
investigarea incidentelor proprii

33
Kill Chain

Fazele unei intruziuni finalizate cu succes

Privilege Data
Recon Exploatation Escalation Collection

Delivery C2 Lateral Data


Installation Movement Exfiltration

Analiză Detecție

Analiza unei intruziuni produse (post incident)


34
Kill Chain
 Cât de mult a progresat atacatorul?
– Daunele provocate
– Nivelul de efort de investigație necesar
 Reconnaissance
– Atacatorul alcătuiește un profil al organizației targetate
– Dificil de creat TI în baza acestei activități
 Weaponization
– Plasarea unui payload malițios într-un livrabil
• Obfuscare shellcode, împachetare executabil malițios într-un document
– Se poate manifesta sau nu
– Victima nu poate observa această activitate dar o poate detecta
– Detecția acestei etape nu este totdeauna posibilă sau predictibilă dar
când poate fi realizată => TI valoros
– Payload malițios livrat => reverse engineering => înțelegerea modului în
care atacatorul a plasat payload-ul malițios într-un livrabil 35
Kill Chain
 Delivery
– Phishing email, cerere HTTP cu cod pentru SQL injection
 Compromise / Exploit
– Exploatarea unei vulnerabilități software, hardware sau umane (social
engineering) => cod malware ce rulează pe un host din rețeaua org.
– Într-o etapă sau mai multe (exploit -> light shellcode -> main payload)
 Installation and Command & Control (C2)
– Callback to attacker’s infrastructure
– Escaladarea privilegiilor
– Culegere de informații despre mediul/rețeaua host-ului compromis
– Lateral movement folosind credențialele compromise
– Enumerarea sistemului de fișiere
– Descărcarea de noi tool-uri pentru nevoi precise (memory dumping,
arhivare, mail harvesting, system profiler etc.)
 Exfiltrare
36
– Datele părăsesc rețeaua organizației
Kill Chain

Fazele unei intruziuni blocate

Privilege Data
Recon Exploatation Escalation Collection

Delivery C2 Lateral Data


Installation Movement Exfiltration

DETECT PIVOT

Analiză Detecție Sinteză

37
Analiza unei intruziuni blocate
Deep Dive System Forensic Analysis &
Enterprise Host-Based Forensics
Deep Dive Forensics Enterprise Scanning
• Nu se realizează pe fiecare sistem • Scanare după indicatori de
• Oferă răspunsuri la întrebări cheie compromitere
despre o compromitere • Identifică noi sisteme compromise
• Obligatorie pentru o remediere • Necesară când trebuie scanate rapid
corectă sute sau mii de sisteme
• Culege malware • Folosește TI pentru a căuta urme ale
• Ajunge la echipa de RE activității atacatorului
• Culege semnături de rețea
• Enterprise Scanning
• Deep Dive forensics  Memory Analysis (anumite
 Memory Analysis (toate procese)
procesele)  Timeline Analysis (anumite
 Timeline Analysis (toată activități)
activitatea)  File System Analysis (anumite
 File System Analysis (tot aspecte ale sistemului de fișiere)
sistemul de fișiere)
38
Metodologie Deep Dive Forensics
Identificare & Achiziție Investigație & Analiză

Data
Identificarea Recovery
sistemului

Descrierea Media Memory


sistemului Analysis Analysis

Acces local sau


remote la sistem Timeline
(RAM, HDD) Analysis

Containment
39
Descrierea sistemului
 Locație
 Rol
 Configurație (SO, rețea)
 Informații care ar putea influența cursul investigației

40
Colectarea probelor
 Date volatile
 Data persistente
 Imagini forensic

 Forensically sound acquisition


– Trebuie evitată pierderea și alterarea datelor
– Unele date sunt foarte volatile => ordinea de achiziție este importantă

 Documentare rezultate achiziție


– Instrumente software și hardware folosite
– Dovada asigurării integrității datelor

41
Timeline

• Fundația unei investigații

42
 https://www.sans.org/security-resources/posters/hunt-evil/165/download

43
Media Analysis. Windows Artifact Analysis

https://blogs.sans.org/computer-forensics/files/2012/06/SANS-Digital-Forensics-and- 44
Incident-Response-Poster-2012.pdf
https://digital-forensics.sans.org/media/Poster_Network-Forensics_WEB.pdf
45
Data Recovery
 Căutări după stringuri (colectii de cuvinte cheie)
– Spațiu alocat, nealocat, file slack
 Recuperare date șterse
– Fragmente de fișiere și date nerecuperabile

46
Rezumat metodologie DFIR

Deep Dive System Forensic Analysis

Threat Intelligence Gathering /


Creation

Enterprise Host-Based Scanning

47
SIFT (SANS Investigative Forensic Toolkit)
Workstation
 Mașină virtuală VMware
– Construită pe Ubuntu
– Preinstalată cu numeroase tool-uri open source de forensic
 Capabilități puternice în linie de comandă
 Permite realizarea tuturor activităților de analiză:
– Analiză memorie
– Analiză trafic rețea
– Analiză de tip timeline
– Analiză sistem de fișiere
 Suportă cele mai comune formate de stocare a imaginilor
– Expert Witness Format (EO1)
– Advanced Forensic Format (AFF)
– RAW (dd)

48
SIFT (SANS Investigative Forensic Toolkit)
Workstation
 Unix / Windows forensic lab
 Laborator portabil pentru derularea investigațiilor
 Suportă majoritatea sistemelor de fișiere
– Windows (MSDOS, FAT, VEAT, NTFS)
– MAC (HFS)
– Solaris (UFS)
– Linux (EXT2/3)

49
Colectarea probelor digitale.
Montarea imaginilor achiziționate
pentru analiză

50
Forensic Imaging
 Copie bit-la-bit
 Tipuri de achiziție
– Live system
– ”Dead” drive
 Tipuri de imagini
– Fizice: conținutul unui drive
– Logice: conținutul unui volum
 Atenție la terminologie
 Cunoașterea tipurilor de sisteme de fișiere
– Organizare, stocare și regăsire
– Comportament și metadate diferite
– Compatibilitate între tooluri forensic și SO
 ”User” vs. ”Raw” Disk Access
51
”User” vs. ”Raw” Disk Access

Fișiere și date șterse


din spațiul de
stocare neutilizat

Fișiere speciale cu
metadate
C:\ în Explorer

Fișiere
protejate de
SO

C:\ în FTK Imager

52
C:\ în consola CMD (dir)
Unelte pentru achiziția probelor digitale
 Hardware
– Forensic Duplicator
– Forensic Imager
– Forensic Write Blockers
– Storage – stocare imagini
– Stickuri USB 3.0
– Conectică
 Software analiză forensic
– AccessData FTK
– Guidance Encase Forensic
 Software de achiziție free
– FTK Imager
– Linux „dd”

53
FTK Imager

 Laborator 54
Linux „dd”
 Clonare partiție
# dd if=/dev/sda1 of=/dev/sdb1 bs=64K conv=noerror,sync

 Clonare hardisk
# dd if=/dev/sdX of=/dev/sdY bs=64K conv=noerror,sync

 Creare imagine harddisc


1. Boot de pe un Linux live CD, USB
2. Montare harddisc pentru stocarea imaginii
3. Creare imagine harddisk sursă pe harddisk-ul de stocare

 Laborator

55
Montarea imaginilor
 Montare partiții/volume (discuri logice)
 Montare discuri fizice
 Montare fișiere în format forensic image (E01, AFF)
– Imagini compresate
 Rolul montării
– Image file -> Sistem de fișiere explorabil
– Permite vizualizarea și accesarea fișierelor/directoarelor alocate
– Permite derularea unor activități de scanare / analiză cu tooluri externe
și de automatizare (scripting)
 Tipuri de imagini
– Raw (dd)
– E01
– AFF
 Laborator 56
Live Windows Incident Response

57
Live System Incident Response - Obiective
 Colectarea datelor care
– Pot fi achiziționate rapid și portabil
– Sunt disponibile pe durata funcționării sistemului (date volatile)
 Trierea sistemelor de interes
 Rezultatele determină necesitatea achiziționării unei imagini a
discului
 Generează indicii pentru canalizarea investigației

58
Live Response Kit (minimal)
• Hub sau Switch
Echipamente • Cabluri CAT5
de rețea • Cablu cross-over

• Enterprise Scanning Capability


• GRR Rapid Response
• F-Response
Live • Mandiant MIR
Response • Live Response tools
• Tool-uri pentru achiziția și analiza memoriei și a
Tools discului
• SysInternals Tools + scripts

• Adaptoare pentru SATA/IDE/SCSI


• SATA/IDE Hardware Write-Blocker
Achiziția • Discuri de capacitate mare pentru stocare
datelor • Stick-uri USB 3.0 ce vor conține tool-urile
• Toate programele folosesc librării de sistem
(DLLs) => binare compilate static sau
salvăm librăriile pe USB 59
Live Response Evidence

Date volatile Date nevolatile


Metadate sistem de fișiere
Procese & handle-uri Registry Hives
Configurația de rețea Istoric de browsing
RAM Conexiuni de rețea Prefetch
Hooks Event Logs
Drivere încărcate Scheduled Tasks
Conturi de utilizator
Informații despre sistem

60
Live Response Acquisition Guidelines
 Minimizarea modificărilor asupra sistemului
 Utilizarea de instrumente
– care permit automatizarea procesului de achiziție
– scriptabile (permit automatizare și adăugare de noi tool-uri)
 Toolkit pentru Windows pe 32 și 64 de biți
 Nu se copiază date pe hardisk-ul sistemului investigat
 Datele achiziționate nu se copiază niciodată pe hardisk-ul
sistemului investigat
 Se documentează fiecare pas din proces

61
Reguli de colectare a datelor
 Înțelegerea modului în care tool-urile folosite realizează
achiziția
 Cunoașterea metodelor prin care colectarea anumitor date
poate fi afectată
Ce fișiere sunt Ce fișiere sunt
în C:\Windows? în C:\Windows?

Analiză RAM
WinAPI Raw Disk Access

FindFirstfile
Win32_Process
FindNextFile
62
Achiziționare date de la distanță
 F-Response (https://www.f-response.com/buyfresponse/software)
– Acces de la distanță la disc și memorie
– Orice tool de forensic ”capătă” capabilități de lucru în rețea

 Windows UNC Shares


– \IR\sysinternals\tool.exe >
\\SIFTWORKSTATION\cases\winforensics\tooloutput.txt

 Netcat
– Listener: nc.exe –l –p <port> > output_file
– Client: tool.exe | nc.exe <IP address> <port>

63
Fast Forensics / Triage
 Realitatea = intruziuni pe scară largă și cantități mari de date
=> nefezabilă achiziția imaginii pentru fiecare sistem de interes
 Cantitatea de date colectată este dictată de timpul avut la
dispoziție și de inspirația analistului
 Date care să permită o analiză limitată în vederea trierii
sistemelor:
• Memory
• Registry hives & backups
• LNK files
• Jump lists
Imagine • Prefetch
logică • Event logs
• Browser data
• Master File Table ($MFT)
• Log files & Journal log
• Pagefile & Hibernation files 64
Fișiere / artefacte colectate
 Imagine memorie
 $MFT - Master File Table (Index-ul fiecărui fișier și director)
 $Logfile, $UsnJrnl - loguri care jurnalizează schimbările de la
nivelul sistemului de fișiere (file/folder open, close, creation,
deletion)
 Registry hives & backup registry hives:
– SAM
– SYSTEM
– SOFTWARE
– DEFAULT
– NTUSER.DAT
– USRCLASS.DAT

65
Fișiere / artefacte colectate
 *.evtx - Event Logs (%WinDir%\System32\winevt\Logs)
 *.lnk - Link files
 *.pf - Prefetch files
 Pagefile.sys - Windows Pagefile (extensie a memoriei RAM)
 Hiberfile.sys - hibernation file = imagine compresată a
memoriei RAM care datează din momentul în care sistemul a
intrat ultima dată în starea de hibernare
 Directorul și subdirectoarele RECENT ce conțin jumplist-uri
(Win Vista/7/8)
 Directorul ”APPDATA” pentru fiecare utilizator – conține fișiere
de tip cache, history, cookies etc.

66
Live Response Tools – colectare date volatile
 Sunt necesare unelte software care să permită obținerea
– Imaginii memoriei RAM
– Informații despre sistem
– Network Data
– Informații despre procese & drivere

 Windows SysInternals Suite


– https://technet.microsoft.com/en-us/sysinternals/
– ~ 70 de utilitare software (live response & offline analysis)
– Incident response & troubleshooting pentru SO Windows
– Actualizate frecvent

67
Live Response Tools – Informații despre sistem
Analiza imagine
Necesitate Tool Analiza memoriei
disc
System Date & Time date; time Da – System Hive Da
System Info PsInfo.exe Da – System Hive Da
mountvol
Da - $Volume,
Volume Info diskpart Da
System Hive
vssadmin
Utilizatori logați PsLoggedon.exe Da – SAM, event logs Da
Detecția criptării EDD.exe Da – Analiza partițiilor Nu (se pot recupera
(Full Disk / Volume) Crypthunter.exe / discului cheile de criptare)
Da – System,
Persistența Autorunsc.exe Software, Da
NTUSER.DAT
LogParser.exe
Listing fișiere Da - $MFT Da
Md5deep.exe
Da – Schedlgu.txt,
Scheduled Tasks at; schtasks / query Nu
at.job, Event Logs
68
Live Response Tools – Informații despre sistem
 Autorunsc.exe
– Peste 50 de locații de autorun
– Verifică semnăturile digitale
– Calculează MD5 pentru o eventuală whitelistare
 diskpart
– Volume & disk info
 vssadmin
– Volume Shadow Copies
 EDD.exe, Crypthunter
– Utile pentru a determina dacă este oportună închiderea unui sistem în
vederea realizării unei imagini a discului

69
Live Response Tools – Network Data
Analiza imagine
Necesitate Tool Analiza memoriei
disc
Configurația de rețea ipconfig /all Da – System Hive Nu
Tabela ARP arp -a Nu Nu
Tabela de rutare netstat -rn Nu Nu
Cache DNS ipconfig /displaydns Nu Nu
Cache NetBIOS nbtstat -c Nu Nu
netstat –an
Conexiuni de rețea și
Openports.exe Nu Da
socketi
Fport.exe
Fișiere deschise de la
PsFile.exe Nu Nu
distanță

 Datele de rețea sunt printre cele mai volatile


 Cunoașterea adreselor IP ale sistemelor cu care a comunicat
recent, poate ajuta în determinarea rolului sistemului
investigat în cadrul incidentului 70
Live Response Tools – Procese și drivere
Necesitate Tool Analiza imagine Analiza memoriei
disc
Lista proceselor PsList.exe Nu Da
Lista proceselor și Tlist.exe Nu Da
calea către executabil
Lista de servicii PsService.exe Da – Software Hive Da
DLL-uri încărcate Lsitdlls.exe Nu Da
Process Handles Handles.exe Nu Da
Drivers Listdrivers.exe Nu Da

 Informațiile colectate ajută la identificarea aplicațiilor de tip


malware
 Aceste informații se regăsesc și în memorie
 Analiza unei imagini a memoriei este mai facilă și poate
furniza mai multe informații, comparativ cu toolurile
enumerate 71
Analiza Persistenței
 Verificarea aplicațiilor care sunt rulate în mod automat la
– System boot
– Logarea utilizatorului
– Rularea unui program
 autorunsc.exe (cmd line), autoruns.exe (GUI)
– Verificare semnături digitale (nu garantează legitimitatea, vezi Stuxnet,
Flame, Duqu)
 Exemple de locații din Windows Registry care asigură
persistența la logarea utilizatorului
– NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\Run
– NTUSER.DAT\Software\Microsoft\Windows\CurrentVersion\RunOnce
– Software\Microsoft\Windows\CurrentVersion\Runonce
– Software\Microsoft\Windows\CurrentVersion\policies\Explorer\Run
– Software\Microsoft\Windows\CurrentVersion\Run
– SOFTWARE\Microsoft\Windows\CurrentVersion\Winlogon\Userinit\
72
userinit.exe -> malware.exe
Analiza Persistenței
• Winlogon -> Userinit.exe (logon scripts, pornește Explorer.exe)
– SYSTEM\CurrentControlSet\Services
• Start key = 0x02 => serviciul va porni la boot
 Dezavantaje autoruns
– Analizează un singur profil de utilizator (curent)
– In offline mode e necesar ca analistul să furnizeze calea către profilul
utilizatorului
 Alternativa la autoruns este autorunner
– https://github.com/woanware/autorunner
– Flexibil
– Analiză offline

 Laborator

73
Ce este normal vs Ce este malițios?
 Succesul sau eșecul unei investigații este deseori dictat de
capacitatea de a observa diferența dintre normal și malițios
 SANS ”Find Evil Poster” (http://dfir.to/Get-Find-Evil-Poster)

74
Live Response Tools
 Incident Response Triage
– https://github.com/AJMartel/IRTriage
– Colecție de tooluri scriptate
– Se rulează de pe un stick USB, rezultatele salvate tot pe stick
– cmd line și GUI
– Configurabil

 Mandiant Redline
– https://www.fireeye.com/services/freeware/redline.html
– Permite colectarea de date volatile și nevolatile
– Agent portabil (”colector”) implementat sub forma unui script batch
– Configurabil (se pot alege datele ce se doresc a fi colectate)
– Colectarea se realizează via WinAPI, raw disk & analiza de memorie
– Poate fi rulat de pe stick USB, rezultatele fiind salvate tot pe stick
75
Live Response Tools
 Mandiant Redline
– Risk index pentru procese (util dar susceptibil la false positive)
– Permite căutarea după indicatori de compromitere (IOC)
– Rezultatele obținute pot fi analizate unitar într-un GUI performant cu
capabilități de filtrare și căutare folosind expresii regulate
– Datele culese sunt stocate în format XML => importare în alte tooluri
– Aceeași tehnologie folosită și pe MIR- Mandiant Intelligent Response
(https://www.fireeye.com/products/mir-endpoint-forensics.html)

 Laborator

76
Introducere în surse de date Windows
 Obiective
– Cunoașterea principalelor surse de date relevante în DFIR
– Însușirea terminologiei
– Maparea surselor de date cu cele mai întâlnite întrebări la care un
analist trebuie să răspundă

77
Etape de investigare
 Având un indiciu de nivel rețea (adresă IP), ce surse de date de
nivel host trebuia analizate mai întâi?
Listing porturi Istoric web Memoria Prefetch Mecanisme Intregul sistem
de fisiere,
deschise, proceselor de Windows
Listing persistenta Registry, Event
procese Logs

Există Există Este Există Există Ce


procese referințe adresa IP executabile executabile modificări a
care au către prezentă ce au rulat persistente suferit
conexiuni adresa IP în spațiul în imediata care nu sistemul în
active cu suspectă de proximitate sunt apropierea
adresa IP în istoricul memorie temporală semnate primei
a alertei? digital sau manifestări
suspectă? web? al vreunui
au MD5 a alertei?
proces?
necunoscut
?
Nivelul de efort necesar

78
Etape de investigare
 Având un indiciu de nivel host, ce surse de date de nivel host
trebuia analizate mai întâi?
Loguri Sistemul Prefetch RAM Intregul sistem Mecanisme
de fisiere, Win
de fisiere Registry, Event
de
Logs persistență

Ce alte Fișierul sau Există Este Ce Există


alerte se metadatele
vreun fișierul modificări a executabile
mai sale sunt suferit
recuperabile? fișier de tip încărcat în persistente
regăsesc în Există alte
sistemul în care nu
prefetch memorie?
logurile AV fișiere în apropierea sunt
sau pentru În spațiul perioadei în
aceeași cale semnate
HIDS/HIPS sau fișiere fișierul cărui care fișierul
digital sau
de pe create/modific suspect? proces? a fost
ate în aceeași au MD5
sistem? detectat?
perioadă de necunoscut
timp ?

Nivelul de efort necesar


79
Conexiuni de rețea și istoricul de navigare web
 Ce procese au porturi în ascultare?
 Ce procese au conexiuni în derulare?
Probe cu privire la conexiunile de rețea
ID proces (PID) Adresa IP locală / port
Numele procesului și calea Adresa IP remote / port
Starea conexiunii Protocolul (TCP / UDP)

 Ce siteuri web au fost vizitate înainte?


 Ce fișiere au fost descărcate?
 Ce date de tip form data au fost transmise?
 Ce cookieuri au fost create?
Probe cu privire la istoricul de navigare web
Profil Nume utilizator
Numele browserului URL
80
Versiunea browserului Ultima data de vizitare a paginii
Conexiuni de rețea în Redline

 Laborator
81
Istoric de navigare web în Redline

 Laborator
82
Windows Prefetch
 Ce aplicații au fost executate și când?

C:\Windows\calc.exe C:\Windows\Prefecth\CALC.EXE-1701a124.pf

 Stații de lucru
– Win 7/ Server 2008: 128 fișiere .pf
– Windows 8: 1024 fișiere .pf

 Servere
– Dezactivat cu excepția boot Prefetch-ului
• ntosboot-b00dfaac.pf

83
Analiza fișierelor de tip Prefetch
 Data de creare a fișierului .pf = data la care a fost rulat pentru
prima dată fișierul
 Fișierul .pf conține și alte metadate:

C:\Windows\Prefetch\RAR.EXE-1711A9B1.pf
Ultimul timp de rulare 2012-05-22 04:44:27Z
Numărul de rulări 2
Accessed Files "C:\Windows\System32\ntdll.dll"
"C:\Windows\addins\rar.exe"
R&W din primele 10 secunde de la execuție "C:\Windows\System32\kernel32.dll"
"C:\Windows\System32\APISETSCHEMA.DLL"
"C:\Windows\System32\KERNELBASE.DLL"

84
Prefetch în Redline

 Laborator
85
Analiza sistemului de fișiere
METADATE FIȘIER CONȚINUT FIȘIER

• Obținute prin analiza • Obținut prin analiza


artefactelor specifice conținutului fișierelor
sistemului de fișiere • Cuprinde:
• Cuprinde: • Hash / sume de control
• Denumiri fișiere & • Tipul fișierului
directoare • Structuri specifice
• Timestamps tipurilor de fișiere
• Dimensiune (header)
• Atribute (RO,W, • Șiruri de caractere
Deleted)
• Deținător, ACLuri

86
Vizualizare sistem de fișiere în Redline

 Laborator
87
Windows Registry
 Bază de date ce stochează configurația SO Windows:
– Setări de nivel sistem
– Setări de nivel utilizator
– Baza de date de securitate (SAM database)
 Organizată în fișiere ”hive”
 Încărcată în memorie
 Pentru vizualizarea conținutului într-un format inteligibil este
nevoie de parsarea bazei de date

88
Registry Hives

Fișiere registru pe disk Căi în baza de date

%SYSTEMROOT%\system32\config\

SYSTEM HKLM\SYSTEM
System
SOFTWARE HKLM\SOFTWARE
Hives
SECURITY HKLM\SECURITY

SAM HKLM\SAM

89
Registry Hives
Fișiere registru pe disk Căi în baza de date

Windows 2000, 2003, XP


\Documents and Settings\<username>\

Windows Vista, 7, 2008


\Users\<username>\

NTUSER.DAT HKEY_USERS\<User SID>


Per-
User
Hives Windows 2000, 2003, XP
\Documents and Settings\<username>\Local
Settings\Application Data\Microsoft\Windows

Windows Vista, 7, 2008


\Users\<username>\AppData\Local\Microsoft\Wind
ows\

USRCLASS.DAT HKEY_USERS\<User
SID>_Classes 90
Artefacte existente în Windows Registry
Configurația sistemului
Computer Name Joined Domain Info
Timezone Network Shares
OS Version Users, SIDS, Groups
Network & Firewall Configuration Mounted Devices
Audit Configuration Application Compatibility / Shim Cache
Installed Programs USB Devices

Date specifice utilizatorilor Autoruns


Mapped Drives / Network volumes Windows Services
Frequently-Used Programs (UserAssist) Run / RunOnce Keys
Explorer Usage (ShellBags) WinLogon Notifications
Application MRU Data Active Setup Installed Components
Executed Programs (MUICache) AppInit DLLs
Typed URLs Shell Extensions
91
Opened Documents Browser Helper Objects
Anatomia unei chei de regiștri
 Key
– HKLM\SYSTEM\ControlSet001\Control\Windows
 Value
– SystemDirectory
 Data
– %SystemRoot%\system32
 Key Last Modified (LM)
– 5/25/2012 17:50:11 UTC
– Moștenește LM de la cheia părinte

92
Windows Registry în Redline

 Laborator
93
Audit de persistență cu Redline
 Examinează multe mecanisme de persistență
 Combină date din
– Windows Registry
– File system metadata
– Service control manager
 Similar cu utilitarul Autoruns din suita SysInternals
 Facilitează un triaj rapid
– Fișierul către care trimite cheia de persistență mai este prezent pe disc?
– Este semnat digital?
– Hash-ul este cunoscut?

94
Audit de persistență cu Redline

 Laborator
95
Event Logs
 Mecanismul de logare integrat în Windows
 Formatul fișierelor este proprietar
– EVT (2000, XP, 2003)
– EVTX (Vista, 7, 2008, 8, 10)
 Fișierele log sunt stocate pe disc și mapate în memorie
 Utilitare de analiză:
– Windows Event Viewer
– Microsoft Log Parser
– Mandiant Redline

96
Event Logs

Calea către fișierele log


Înainte de Vista / 2008 Vista / 2008 și după
%SYSTEMROOT%\system32\config\*.evt %SYSTEMROOT%\system32\winevt\Logs\*.evtx

Principalele tipuri și fișiere log


Log Înainte de Vista / 2008 Înainte de Vista / 2008
Application AppEvent.evt Application.evtx
Security SecEvent.evt Security.evtx
System SysEvent.evt System.evtx

97
Event Logs – evenimente logate

Logon & Process Driver loads & Service start


logoff Execution unloads & stop

User creation, Security & Network


deletion, policy configuration
changes changes changes

Security Application System

Windows Software
error reporting installation

Anti-virus & User


HIPS alerts application
events
98
Application & Services Logs (începând cu Vista /
Server 2008)
 Subcomponente ale SO
– AppLocker
– Powershell
– Task Scheduler
– Remote Desktop
– Etc.

 Nivele de logare
– Operational
– Admin
– Debug
– Analytic

99
Event Logs în Redline

 Laborator
100
Analiza memoriei - utilitate
 Necesară datorită
– creșterii nivelului de complexitate al tehnicilor de intruziune
– utilizării de tehnici anti-forensic
 Necesară datorită probelor care sunt disponibile doar pe un
sistem care rulează:
– Procese ascunse sau terminate, drivere încărcate, hookuri instalate
– Malware
– Socket-uri de rețea, URL-uri, adrese IP
– Fișiere deschise
– Parole, cache, clipboard data
– Configurații software și hardware
– Chei de criptare
– Date necriptate
– Comenzi și argumente introduse în linie de comandă
– Windows registry keys & event logs 101
Analiza memoriei - avantaje
 Cel mai indicat loc pentru a identifica aplicații malware
– Studierea configurației live a sistemului
– Identificare inconsistențe (tehnici rootkit)
– Evitarea packerelor, obfuscatoarelor binare, rootkiurilor
• Malware-ul trebuie să se execute la un moment dat, deci trebuie să renunțe
la camuflaj
 Permite analiza și urmărirea activității recente de pe sistem
– Identificare activitate recentă în context
– Construirea profilului de activitate al utilizatorilor și atacatorului
 Colectarea unor date care nu mai pot fi găsite în alte surse
– fileless malware (malware rezident doar în memorie)
– Comunicații de tip chat
– Activități Internet
• Identificare sesiuni de navigare web în modul „in-private” / „incognito”
– Chei de regiștri volatile (se actualizează și există doar în memorie) 102
Achiziția memorie RAM
 Live system
– MoonSols DumpIt
– WinPMEM
– Redline
 Dead system
– Hibernation file
• Se creează în modul power save / hibernation
• Imagine completă și compresată de RAM
• %SystemDrive%\hiberfil.sys
• Se regăsește și în Volume Shadow Copies
– Page file
• Conține fragmente de RAM care au fost paginate pe disc
• %SystemDrive%\pagefile.sys
– Memory dump
• Dump-uri realizate de SO ca urmare a unui crash
• %WINDIR%\MEMORY.DMP 103
Achiziție memorie RAM – MoonSols DumpIt
 Ușor de folosit
– http://www.moonsols.com/products/
 Suport pentru sisteme x86 și x64
 Rulare de pe stick USB

 Laborator 104
Memoria fizică
 Imagine binară a memoriei RAM
 În urma analizei pot fi obținute informații cu privire la:
– Procese
– Handle-uri
– Secțiuni de memorie
– Drivere încărcate
– Tabele de funcții

105
Pagefile
 %SYSTEMDRIVE%\pagefile.sys
 Poate fi achiziționat doar prin acces raw la disc
 Caracteristici:
– Poate conține urme ale unor procese vechi
– Datele stocate pot persista după reboot
 Tehnici de analiză:
– Stringuri
– Căutări după pattern-uri de octeți

106
Memoria unui proces
 Conține doar spațiul de memorie virtuală aferentă unui singur
proces
 Datele unui proces sunt stocate în RAM și paginate pe disk
(pagefile.sys) la nevoie

107
Etape ale procesului de analiză a memoriei

1 • Identificare procese suspecte

2 • Analiză DLL-uri și handle-uri

3 • Analiză artefacte de rețea

4 • Căutare după urme de cod executabil injectat

5 • Căutare după urme specifice unui rootkit

6 • Dump memorie drivere și procese suspecte

108
Achiziția și analiza memoriei cu Redline
 Colectorul (agentul) Redline
– Memoria fizică, memoria proceselor
 Redline analizează imaginea fizică a memoriei și furnizează
următoarele rezultate:
– Listing procese (arbore de execuție) care rulează sau rămășite ale unor
procese terminate
– Handle-uri
– Secțiuni de memorie
– Porturi / conexiuni existente
– Drivere
– Hook-uri
 Implementează euristici de identificare a proceselor suspecte
 Capabilități de analiză live a memoriei și de live response
 Căutare după indicatori de compromitere (IOC)
 Whitelisting fișiere 109
Căutarea proceselor în memorie
 În memoria kernel există o listă dublu înlănțuită de structuri
EPROCESS
 Structura EPROCESS oferă informații despre:
– PID, PID proces părinte
– Numele executabilului aferent procesului (calea)
– Data la care a fost creat procesul
– Data la care a fost încheiat procesul
– Adresa din memorie
– Thread-uri asociate procesului
– Handle-uri către alte artefacte
– Pointeri către alte structuri EPROCESS
(flink & blink)
– Pointer către VAD (Virtual Address
Descriptor)
– Pointer către PEB (Process Environment Block) 110
Analiza proceselor

• Procesul este legitim?


Denumirea procesului • Este scris corect?
• Se încadrează în contextul sistemului

• Este cea corectă?


Calea către executabilul • Rulează dintr-o cale accesibilă utilizatorului sau din
procesului %TEMP%?

Procesul părinte • Este cel așteptat?

• Denumirea executabilului este aceeași cu a imaginii


Linia de comandă procesului?
• Argumentele sunt cele așteptate?

• A pornit la boot?
Start time • A pornit în proximititatea temporală a atacului?

• Au sens?
Security IDs (SID) • Procese de sistem care rulează cu SID-ul unui
utilizator?
111
Identificare procese suspecte cu Redline
 Redline acordă proceselor un scor de risc (MIR – Malware Risk
Index) determinat în baza
– Euristicii de comportament
– Verificării semnăturilor digitale (EXE, DLL, Drivers)
• Fără semnătură digital -> număr de apariții (>75 % => posibil legitim)
 Euristica de comportament cuprinde următoarele reguli:
– Verificarea căii executabilului aferent procesului
– Verificarea utilizatorului (SID) din contextul căruia rulează procesul
– Inspecția handle-urilor procesului
 Redline verifică și după:
– Procese care nu sunt mapate (nu au un fișier corespondent de pe disc)
• Indică injecție de cod
– Procese pornite din cmd
– DLL load order hijacking
– Argumentele folosite la pornirea proceselor 112
Identificare procese suspecte cu Redline

113
Identificare procese suspecte cu Redline

114
Identificare procese suspecte - Recapitulare
 Procesele trebuie verificate după:
– Corectitudinea denumirii procesului / fișierului executabil
– Corectitudinea locației executabilului
– Corectitudinea ierarhiei procesului (procesul părinte)
– Corectitudinea liniei de comandă și a parametrilor folosiți
– Timpul de pornire
– SID

115
Analiza obiectelor dintr-un proces
 Un proces cuprinde următoarele tipuri de obiecte
– DLL-uri
– Handle-uri
– Thread-uri
– Secțiuni de memorie
– Sockets
 Handle-urile permit programelor să interacționeze cu obiectele
 Tipuri de handle-uri:
– Procese
– Thread-uri
– Fișiere, dispozitive I/O
– Chei de regiștri
– Token-uri
– Mutex / Semafoare
– Evenimente 116
Analiza obiectelor dintr-un proces
 Redline introduce conceptul LFO –Least Frequency of
Occurence
 Aplicațiile malware și artefactele asociate ar trebui să fie
printre cele mai rare obiecte dintr-o imagine RAM
 Redline ține evidența tuturor obiectelor referențiate
 Atenție!
– un obiect ce este referențiat de puține ori nu este totdeauna malițios

117
Importanța handle-urilor în DFIR
 Oferă informații cu privire la funcționalitatea procesului:
– Fișiere de intrare / ieșire
– Chei de regiștri
– Pipes, devices

 Identificarea handle-urilor suspecte:


– Procese care nu ar trebui să pornească procesul ”cmd.exe”
– Obiecte mutex cunoscute a fi asociate unor aplicații malware
• Backdoor.Graybird VIP2.0_MUTEX
• Backdoor.GWGhost GWGhost_25a5_Mutex

118
Exemplificare handle-uri în Redline

119
Secțiuni de memorie
 Stochează conținutul din spațiul de memorie virtuală al unui
proces
 Caracteristici ale secțiunilor de memorie:
– Named Sections
• Corespund unui fișier de pe disc încărcat în memorie
– Unnamed Sections
• Heap / stiva
• Accesate prin adresă
– Region Start
• Adresa de start
– Region Size
• Dimensiunea unei secțiuni de memorie
– Protection Attributes
• Cum poate fi folosită secțiunea
 Analiza secțiunilor de memorie permite identificarea librăriilor
DLL legitime, malițioase și a codului injectat (process injection)120
Exemplificare secțiuni de memorie în Redline

121
Process Injection
 Rulare cod în contextul unui alt proces
 Folosită atât în scop legitim cât și malițios
 Necesită drepturi privilegiate (administrator, debug)

122
Process Injection Evidence
 Clasic DLL injection
– Named sections suspecte în procese legitime
– Verificare MD5, semnături digitale, frecvența de apariție
 Alte tehnici de injecție
– Header PE (Portable Executable) în secțiuni executabile unnamed
– Shellcode injection
– Înlocuirea procesului legitim (process hollowing)
 Redline parcurge arborele VAD al fiecărui proces. Identifică
paginile de memorie RWX care nu sunt mapate => pagină
injectată

123
Artefacte de rețea

Porturi suspecte
• Comunicații ce folosesc porturi anormale?
• Porturi de ascultare (backdoor)?
Conexiuni suspecte
• Conexiuni externe
• Conexiuni către domenii/IP-uri malițioase
• Conexiuni TCP/UDP
• Timpii de creare a socket-ilor

Procese suspecte
• Are procesul capabilități de comunicație în rețea când în mod normal nu ar trebui să aibă?

124
Artefacte de rețea – comportament anormal
 Orice proces care comunică pe protul 80, 443, 8080 și nu este
un browser
 Orice browser care nu comunică pe porturile 80, 443, 8080
 Conexiuni nejustificate către adrese IP interne sau externe
 Cereri web către adrese IP și nu către domenii
 Conexiuni RDP (port 3389), în special cele inițiate de la adrese
IP ciudate
 Cereri DNS pentru domenii ciudate

125
 Laborator

126
Detecția rootkit-urilor
Rootkit Hooking
• Pot modifica anumite structuri din kernel pentru a ascunde
procese, fișiere, regiștri și conexiuni de rețea față de utilizator
și uneltele de live response
• Procesul sau driverul malițios redirecționează firul logic de
execuție cu scopul de a manipula intrările și ieșirile
System Service
Descriptor Table (SSDT) • Kernel instruction hooking
Interrupt Descriptor
Table (IDT) • Kernel hooks
Import Address Table
(IAT) & Inline API • User-mode DLL function hooking
I/O Request Packets
(IRP) • Driver hooking 127
Rootkit Hooking
 SSDT
– Lookup table pentru funcții de sistem (conține pointeri către funcții)
– SSDT hook = modificare pointeri pentru a redirecta către cod controlat de
rootkit
– Structura este rezidentă în memorie => hook global
– Fiecare intrare din SSDT pointează către ntoskernel.exe sau win32k.sys
 IDT
– Tabelă de pointeri către funcții ce gestionează întreruperile și excepțiile
– Întreruperile sunt generate de fiecare dată când un proces are nevoie de
acces la kernel
 IAT
– Tabelă cu denumirile funcțiilor de care are nevoie din interfața WinAPI și
pointerii către acele funcții
– User-mode => efectele sunt locale procesului afectat
128
Rootkit Hooking
 IRP
– Definesc modul de interacțiune dintre procese și driverele hardware
– Controlează datele trimise / recepționate de hardware => hookurile
permit manipularea traficului de rețea, citirile/scrierile pe disc și
evenimentele generate de tastatură
– Greu de separat hookurile IRP legitime de cele malițioase
• Trebuie identificate acele drivere cu nume suspecte sau cele care apar
într-un număr redus
• Redline permite identificarea hook-urilor suspecte și în timpul analizei live
poate verifica semnăturile digitale ale driverelor ce au instalat hook-uri

129
Extragerea proceselor și a driverelor suspecte
 Redline ajută în înțelegerea a ceea ce a fost compromis în
cadrul sistemului și cum funcționează malware-ul în linii mari
 Înțelegerea detaliată a aplicației malware și a tuturor
indicatorilor de compromitere aferenți necesită analiza
dinamică și statică a aplicației => achiziție procese și drivere
 Analiză dump-uri procese și drivere
– Scanare antivirus (VirusTotal.com)
– Unelte automate de analiză dinamică și parțial statică (sandbox-uri)
• Threat Expert - http://www.threatexpert.com/submit.aspx
• Hybrid Analysis - https://www.hybrid-analysis.com/
• Malwr - https://malwr.com/
– Analiză dinamică manuală
– Reverse enginnering (analiză la nivel de limbaj de asamblare)
– Atenție la ce transmitem în spațiul public. Ar putea semnala atacatorului
faptul că a fost descoperit în cadrul unei organizații. Alternativa: căutare
după sume de control (MD5, SHA256) 130
Analiza live a memoriei
 Avantaje
– Triaj rapid al sistemelor
– Includerea memoriei de tip pagefile => imagine completă a memoriei
– Euristică mai eficientă
– Accesul la sistemul de fișiere permite verificarea semnăturilor digitale
ale executabilelor, DLL-urilor și driverelor
– Whitelisting fișiere
– Căutări după indicatori de compromitere (IOCs)
 Aplicațiile malware sunt mai ușor de identificat, chiar și cele
avansate
– Memory paging malware
 Accesează memoria fizică și nu folosește funcții din interfața
WinAPI, handle-uri către memorie sau aplicații de tip debugger

131
Analiza live a memoriei
 Redline permite crearea unui script de configurare (portable
agent) pentru analiza live a memorie
– Se rulează de pe stick
– Se obține o imagine completă a memoriei + date din analiza live
– Imaginea memoriei poate fi analizată și cu alte unelte software
(Volatility)
– Rezultatele sunt consultate pe stația de analiză forensic
 Whitelisting fișiere
– Permite importarea unei liste de MD5-uri pentru fișiere cunoscute a fi
legitime
• Mandiant întreține o astfel de listă
• NIST National Software Reference Library hashes
– Necesită accesarea sistemului de fișiere pentru calcularea MD5

132
Analiza live a memoriei
 Identificare malware cu indicatori de compromitere cunoscuți
– Redline permite folosirea de IOCs în analiza live și în analiza offline a
unei imagini de memorie
– Există IOCs publici pentru cele mai răspândite aplicații malware
– IOCs pot fi creați cu utilitarul IOC Editor
 Malware nou identificat -> analiză malware -> creare IOCs ->
scanarea sistemelor din rețea folosind agentul Redline cu noii
indicatori descoperiți => posibile noi sisteme compromise
 IOCs
– Procese, hook-uri, drivere, handle-uri, string-uri
– Cele dependente de proprietățile fișierelor, de Windows Registry sau
Event Logs necesită o analiză live

 Laborator
133
Live Response via PowerShell
 Consolă interactivă similară Bash din Unix
 Limbaj de scriptare foarte puternic
 Instalare implicită pe Win7/8/10 & Server 2008/2012/2016
 Permite analiză de la distanță
 Comenzi PowerShell / Cmdlets ce permit accesarea
– Sistemului de fișiere
– Windows Registry
– WMI – Windows Management Instrumentation
 Live Response with PowerShell:
– https://digital-forensics.sans.org/blog/2013/09/03/the-power-of-
powershell-remoting
– http://www.ldap389.info/en/2013/06/17/powershell-forensic-onliners-
regex-get-eventlog/
– https://blogs.technet.microsoft.com/heyscriptingguy/2012/07/28/weeken
134
d-scripter-using-powershell-to-aid-in-security-forensics/
Live Response via PowerShell
 Utilizare PowerShell pentru identificarea indiciilor de activitate
malițioasă:
– https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/28/use-
powershell-to-aid-in-security-forensics/
– https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/29/use-
powershell-to-perform-offline-analysis-of-security-logs/
– https://blogs.technet.microsoft.com/heyscriptingguy/2012/05/31/use-
powershell-to-compute-md5-hashes-and-find-changed-files/

 Kansa
– https://github.com/davehull/Kansa
– Platformă modulară în PowerShell pentru răspuns la incidente
– Permite rularea de la distanță (PowerShell Remoting) pe hosturile
dintr-o rețea a unor module pentru colectarea de date utile pentru
răspunsul la incidente, threat hunting sau pentru a construi un
environment baseline 135
Analiză TIMELINE

136
Cuprins
1. Introducere Timeline
2. Creare și analiză Timeline al sistemului de fișiere și a
memoriei
3. Super Timeline
4. Super Timeline targetat
5. Filtrare Super Timeline
6. Analiză Super Timeline

137
1. Introducere concept TIMELINE

138
Beneficii

Examinare activitate sistem în proximitatea


temporală a incidentului

Detectare canale de comandă și control (C2)

Greu de indus în eroare prin tehnici anti-


forensic – multe surse de indicatori temporali

Atacatorii lasă multe urme la nivelul


sistemului

139
Beneficii
 Una dintre cele mai importante capabilități ale unui analist ce a
permis accelerarea analizei forensic
 Obținere automată de artefacte, în ordine cronologică, din
regiștri, sistemul de fișiere și SO
 Analiza interacțiunii artefactelor permite identificarea secvenței
de evenimente ce s-au produs pe sistem într-o anumită
perioadă de timp (Ce și când s-a întâmplat?)
 Utilizatorii, procesele de sistem, utilizatorii de sistem (System,
Local Service, Network Service), task-urile automate și
atacatorii generează evenimente cu amprentă temporală =>
analistul trebuie să identifice și să izoleze acele evenimente
asociate activităților atacatorului

140
Cunoștințe necesare

Sistemul Artefacte Chei


de fișiere Windows regiștri

 O resursă de documentare foarte bună ce trebuie asimilată


https://uk.sans.org/posters/windows_artifact_analysis.pdf
141
Recomandări în analiza timeline
 Un artefact identificat trebuie analizat în contextul în care s-a
manifestat și nu separat
 Trebuie să găsim urme ale categoriilor din broșura SANS
(Download, Execution, File Opening, File Knowledge)
 Timeline-ul trebuie generat astfel încât să permită gruparea
artefactelor pentru a răspunde la o anumită întrebare sau
pentru a evidenția o anumită acțiune
 Stabilirea punctului de pivotare (De unde începem să analizăm
timeline-ul?)
– Trebuie să pornim de la un indiciu altfel poate deveni descurajator
datorită cantității considerabile de date cuprinsă într-un timeline
– Hint = un anumit fișier, o anumită dată/oră, un artefact
– Analiza proximității temporale a hint-ului

142
Cum alegem un punct de pivot?
• Ultima dată când utilizatorul a
Data incidentului fost văzut folosind sistemul
• Alerta IDS

• Sistemul generează pachete suspecte


Activitate la nivelul rețelei
• Listează timpii la care sunt generate

Activitate la nivelul • Identifică un proces care are legătură


proceselor cu incidentul
• Ce timpi caracterizează acel proces?
Numele unui• Fișier potențial malițios (ex. invoice.doc)
fișier • Furt de proprietate intelectuală (ex. concept.doc)

Tipul unui • .doc, .xlsx, .exe


fișier
• Introducere stick USB
• Download fișier
Activitate • Rulare fișier
• Modificare regiștri 143
• Ștergere fișier
Volatilitatea anumitor date din timeline
 Probele cuprinse într-un timeline sunt foarte sensibile la
schimbările din sistem
 Simpla rulare a unei comenzi poate modifica timpul care indică
ultima accesare / modificare a unui fișier => valabilitatea
informației de timp scade pe măsură ce ne întoarcem în timp
=> putem face presupunerea greșită că ceva lipsește din
timeline sau nu s-a întâmplat după cum ne așteptam
 Se recomandă ca timeline-ul să fie realizat înainte de a rula alte
comenzi pe sistem în cadrul procesului de live response

144
Tipuri de timeline-uri
Orientat pe sistemul de fișiere SuperTimeline
fls log2timeline

• Generat doar din metadatele • Generat din totalitatea


aferente sistemului de fișiere surselor de date
• Metadate sistem de
• Suport pentru mai multe tipuri fișiere
de fișiere: • Artefact timestamps
• Apple (HFS) • Registry timestamps
• Solaris (UFS)
• Linux (EXT) • Focalizat pe Windows
• Windows (FAT/NTFS) • Funcționalități limitate
• CD-ROM pentru Linux și MAC

• Mai complet dar poate deveni


covârșitor datorită volumului
mare de date colectate
145
Procesul de analiză timeline
Determinarea perioadei de interes din timeline. Se
determină prin analiza întrebărilor la care trebuie
răspuns și a tipului de incident investigat

Identificarea și focalizarea punctelor de pivotare.


Time based / File Based

Determinarea tipului de timeline


• File System Based – fls RAPID
• Super Timeline – automat sau targetat – log2timeline LENT

Filtrare Timeline => rămân doar date relevante

Analiză timeline
• Accent pe contextul artefactelor
• Utilizare cheat sheet ”SANS Windows Artifact Analysis: Evidence of”

146
2. Creare și analiză Timeline a
sistemului de fișiere și a memoriei

147
Timeline al sistemului de fișiere

Timeline-urile pot
Colecta indicatori fi create pentru
Utilitarele vor parsa:
temporali din: mai multe tipuri de
sisteme de fișiere:
• Doar metadate ale • Data modificării (M) • NTFS
sistemului de fișiere • Data accesării (A) • FAT12/16/32
• Directoare • Metadata de • EXT2/3/4
• Fișiere schimbare (C) • ISO9660 – CDROM
• Fișiere șterse • Metadata de creare (B) • HFS+
• Metadate din • UFS1&2
spațiul de
stocare nealocat

148
NTFS Time Stamps

 M – Timpul la care conținutul fișierului s-a schimbat ultima dată


 A – Timpul aproximativ la care conținutul fișierului a fost
accesat ultima dată
 C – Timpul la care înregistrarea MFT a fost modificată ultima
dată
 B – Timpul la care fișierul a fost creat
 NTFS stochează timpul în format UTC, nefiind afectat de fusul
orar
 FAT stochează timpul în funcție de ora locală a sistemului
 Particularitate NTFS: timestamp-urile unui fișier sunt stocate și
într-o metadată a MFT ($File_Name) pe lângă cele salvate în
listingul directorului părinte al fișierului ($Standard_Information)
149
Hinturi pentru analiza timeline
 Determinarea contextului din jurul unui eveniment
 Gruparea evenimentelor pe categorii de activități:
– Deschidere / creare fișier
– Rulare program
– Utilizare browser
– Schimbare parolă
– Compilare program
– Instalare program
 Activități realizate de un hacker:
– Creare directoare în locații neobișnuite
– Fișiere de dimensiuni mari
– Creare / modificare fișiere în directoare de sistem
(C:\Windows\system32, C:\windows)

150
Creare timeline sistem de fișiere – pasul 1
 Creare fișier BODY – conține date despre toate fișierele din
imaginile de disc analizate
 Se pot colecta date pentru
– fișierele alocate (vizibile prin comenzile ls sau dir)
– fișiere șterse (există structura $File_name, ce permite determinarea căii
fișierului și detalii legate de timestamp-uri și permisiuni).
– inode-uri nealocate ($Orphan Files) – reprezintă toate structurile,
asociate unui fișier, ce nu mai sunt folosite (nu mai există un nume de
fișier care să pointeze către ele). Conțin date despre fișierele șterse
chiar dacă structura de nume nu mai există
 Comanda fls –m
– Face parte din suita Sleuth Kit
– Colectează informația de timeline din structura $File_name
– Parsează fiecare inode de director pentru a extrage lista fișierelor
conținute (inclusiv cele șterse)
151
Creare timeline sistem de fișiere – pasul 2
 Creare timeline dintr-un subset al datelor din fișierul BODY
 Se realizează cu utilitarul mactime
– Script Perl care primește ca input fișierul BODY creat de utilitarul fls
– Transformă datele din fișeriul BODY într-un format ce poate fi analizat
de un investigator
– Permite furnizarea unui interval de timp astfel încât doar înregistrările
din acel time-frame vor fi sortate cronologic și afișate

152
Timeline sistem de fișiere (exemplu)

153
Timeline al memoriei
 Timeliner – plugin Volatility pentru colectarea informațiilor de
timp din artefacte prezente în memorie
 Există numeroase artefacte de memorie care conțin
timestamp-uri:
– Data și timpul sistemului
– Procese (timpii de start & stop)
– Thread-uri (timpii de start & stop)
– Fișiere executabile PE (data compilării)
• EXE, DLL, Drivere
– Socket-uri de rețea (timpul de creare)
– Chei de regiștri (timpi care indică ultima scriere)
– Event Logs
 Timeliner adună toate informațiile de timp din artefactele
identificate într-o imagine de memorie într-un fișier care
ulterior poate fi convertit într-un timeline 154
Timeliner
 Suportă Windows XP/2003, Windows 7/8, Windows 10
 Selectează în mod automat plugin-urile Volatility specifice unei
versiuni de Windows în funcție de valoare furnizată
opțiunii ”-profile”
 Poate dura destul de mult iar outputul poate fi de ordinul MB
=> se recomandă importarea într-un fișier XLS pentru
capabilitățile de filtrare și sortare
 Suportă atât formatul mactime (--output=body) cât și
log2timeline
 Exemplu:
– vol.py –f memory.img timeliner --profile=Win7SP1x86 --output-
file=timeliner.body –output=body
– mactime –d –b timeliner.body –z EST5EDT > timeline.csv

155
Timeline memorie (exemplu)

• Laborator
156
3. Super Timeline

157
Super Timeline – log2timeline
• Include în timeline și alte surse valoroase de timestamp-uri
• Artefacte analizate facil prin Super Timeline:
Recycle Shortcut IEHistory Recent
Prefetch USB Keys User Assist
Bin (.LNK) File and Firefox Docs
Last Time File File Recycle Last Time File Link clicked First Time
Executed Time Open On Execution of Last Time
Inserted – Program File Open
• Prefetch File • $I File • Lonk File • Entry in setupai.log
Last Creation Last history file
Execution Time Modification
Time Time
Last Time
Last Time Folder
Inserted – Opened
First Time First Time File NTUSER.DAT
Executed Opened mountpoints2
• Prefetch File • Link File registry entry
Creation Creation {need GUID}
Time Time

• Sumar din cheat sheet-ul SANS Windows Artifacts

158
Identificare dispozitive USB în Super Timeline

 Surse de date:
– SetupAPI.log (modificare fișier)
– SYSTEM hive, cheia USBSTOR

159
Urme de rulare a unui program în Super Timeline

 Surse de date:
– UserAssist key
– Prefetch
– Access time

160
Urme de manipulare/deschidere fișiere

 Surse de date:
– Registry Recent Docs
– LNK files
– Intenet Explorer file:// entries
161
Urme de deschidere / ștergere fișiere
Urme ale deschiderii unui director

 Surse de date:
– Shellbag entries

162
log2timeline
 Permite crearea și analiza unui super timeline
 Implementează
– module de intrare: parsează datele de intrare (fișiere, directoare) pentru
a produce obiecte de tip timeline. Lista formatelor suportate este afișată
la rularea comenzii # log2timeline –f list
– module de ieșire: stabilesc formatul de salvare a rezultatelor. Acceptă
obiectele timeline produse de modulele de intrare și le salvează într-un
fișier de tip super timeline sau fișier BODY care poate fi importat în alte
tool-uri (ex. mactime). Lista modulelor de ieșire este afișată la rularea
comenzii # log2timeline –o listmat

163
log2timeline
 # log2timeline [OPTIONS] [-f FORMAT] [-z TIMEZONE] [-o
OUTPUT MODULE] [-w BODYFILE] LOG_FILE/LOG_DIR [--]
[FORMAT FILE OPTIONS]
 Exemple de utilizare log2timeline
• # log2timeline -r -z EST5EDT -f iehistory
IEHISTORY
/path-to/History.IE5 > timeline.csv
• .# log2timeline – z EST5EDT -f recycler /path-
Recycle Bin
to/RECYCLER/{SID)/INFO2 > timeline . csv
• .# log2timeline -z EST5EDT -f ntuser /path-
NTUSER.DAT
to/NTUSER.dat > timeline.csv
• #log2timeline –r –z EST5EDT -f win_link
Shortcut
/path-to/Documents and
(.LNK)
Settings/username/Recent > timeline.csv
• log2timeline-z EST5EDT –f pcap /path-
PCAP File
to/Network.pcap > timeline.csv
• #log2timeline –z EST5DT –f squid /path-
Squid Log File
to/access.log > timeline.csv 164
4. Super Timeline targetat

165
Super Timeline Targetat
 # log2timeline
– Super timeline exhaustiv
– Ușor de folosit
– Colectarea datelor poate dura foarte mult => este necesară optimizarea
colectării prin targetarea datelor de interes
 Super Timeline targetat
– # log2timeline –f <LISTNAME>
• <LISTNAME> = linux, webhist, win7, win7_no_reg, winxp, winxp_no_reg
 Listele de module sunt în /usr/share/perl5/log2t/input
– # cd /usr/share/perl5/Log2t/input
– # ls *.lst
– cat winxp_no_reg.lst
 Listele de module pot fi modificate (includere/excludere
module) în funcție de nevoile de colectare => eficientizare
166
Super Timeline Targetat - exemple

• #log2timeline –z EST5EDT –p –r –f
WINXP winxp /mnt/windows_mount >
timeline.csv
• #Iog2timeiine –z EST5EDT -p –r –f win7
WIN7
/mnt/windows_mount > timeline.csv
• #Iog2timeline –z EST5EDT –r -f
Logs only evt,setupapi,iis /mnt/wlndows_mount >
timeline.csv
WINXP, fără • #log2timeline –z EST5EDT –p –r -f
ntuser, fără winxp,-ntuser,-evt
event logs /mnt/windows_mount > timeline.csv

167
5. Filtrare Super Timeline

168
Filtrare Super Timeline
 Utilitarul l2t_process
– Reduce duplicatele la o singură linie
– Permite selectarea datelor dintr-un anumit interval de timp
– Permite excluderea anumitor intrări
– Permite includerea doar a intrărilor ce conțin anumite cuvinte cheie
 # l2t_process [OPTIONS] -b CSV_BODYFILE [-w white] [-k dirty]
[DATE_RANGE]
Additional options
-b <bodyfile>Filename of CSV output produced by log2timeline
-w <file> whitelist file — defines known-good entries you
would like to exclude
-k <file> keyword file — defines known-good entries you
would only like to display
[DATE_RANGE] MM-DD-YYYY -- Entries from date and forward
MM-DD-YYYY . . MM-DD-YYYY 169
6. Analiză Super Timeline

170
Analiză Super Timeline
 Se realizează de regulă în Excel
 Fișier CSV cu sute de mii de linii și în jur de 20 de coloane =>
necesară o abordare focalizată (”pivot point”)
 Din totalitatea coloanelor le afișăm doar pe cele mai importante
– Date, Time, MACB, source type, short, filename, Inode, user (sisteme
multi-user), host (comparație între mai multe sisteme)
 După filtrarea timeline-ului în jurul pivotului se recomandă
afișarea tuturor coloanelor pentru a obține alte informații
 Folosire template de culori pentru analiză supertimeline în
Excel (https://blogs.sans.org/computer-
forensics/files/2012/01/TIMELINE_COLOR_TEMPLATE.zip)
– Ajută la identificarea activităților de interes
– Legenda culorilor este aceeași cu cea folosită în cheatsheet-ul elaborat
de SANS Windows Artifact Analysis: Evidence of...
171
6. Analiză Super Timeline

https://digital-forensics.sans.org/blog/2012/01/25/digital-forensic-sifting-
colorized-super-timeline-template-for-log2timeline-output-files 172
6. Analiză Super Timeline
 Timeline cheat sheet pentru SIFT workstation
– https://digital-forensics.sans.org/media/log2timeline_cheatsheet.pdf
 Laborator

173
Investigarea acțiunilor de răspândire a
unei amenințări în cadrul unei rețele
(lateral movement)

174
Etapele unui atac – Lateral Movement

https://www2.fireeye.com/rs/848-DID-242/images/Mtrends2016.pdf
175
 https://www.jpcert.or.jp/english/pub/sr/Detecting%20Lateral%20Mov
ement%20through%20Tracking%20Event%20Logs_version2.pdf

176
Cuprins
 Acțiuni de recunoaștere ale atacatorului
 Credentiale Windows
 Logon Events
 RCE (Remote Command Execution)
 Artefacte generate de sesiunile interactive

177
Acțiuni de recunoaștere ale atacatorului
 Obiectivele atacatorului
– Identificarea sistemelor și a share-urilor de rețea
– Identificarea utilizatorilor și a grupurilor de utilizatori

 Acțiunile vor fi întreprinse pe sistemul local și pe AD – Active


Directory (dacă sistemul este înrolat într-un AD)

 Se va folosi de comenzi incluse în sistemul de operare sau


utilitare externe

178
Comenzi de enumerare domenii și utilizatori
 whoami
– Numele sistemului și utilizatorului curent

 net view /domain


– Vizualizare domenii

 net user /domain


– Vizualizare utilizatori din domeniul în care este înrolat sistemul

179
Comenzi de enumerare utilizatori și sisteme
 net group ”Domain Admins” /domain
– Vizualizarea utilizatorilor de domeniu ce aparțin unui grup

 net view /domain:[domainname]


– Vizualizare sisteme dintr-un domeniu

180
Comenzi de enumerare sesiuni și open shares
 net session
– Vizualizarea sesiunilor cu sistemul local

 net file
– Vizualizare open shares și fișiere blocate

181
Credențiale Windows
 Tipuri de credențiale Windows

 Atacuri asupra parolelor


– Credențiale sub formă de hash
– Retransmiterea credențialelor captate (replay)
– Credențiale în clar

182
NT LAN Manager (NTLM)
 Autentificare locală
 Autentificare utilizatori de domeniu dacă protocolul Kerberos
nu este suportat
 Protocol de tip challenge / response

https://blogs.msdn.microsoft.co
m/fchapleau/2013/02/24/the-
evolution-of-authentication/

 Hash-urile sunt derivate din parola utilizatorului (fără salt)


 Surse de hash-uri
– SAM registry hive
– NTDS:DIT (pe DC – Domain Controller)
183
– Memoria procesului „lsass.exe”
Atacuri asupra NTLM
 Password cracking
 Pass-the-hash
– Impersonarea sesiunii de autentificare prin rețea
– Rularea de comenzi în contextul unui alt utilizator
– Cerințe pentru derularea atacului
• Hash-uri NTLM
• Privilegii de administrator local pe sistemul sursă

http://fuzzynop.blogspot.ro/2012/09/pass-hash-without-metasploit.html

184
Kerberos
 Protocolul implicit de autentificare pentru AD
 Permite autentificare mutuală
 Clientul obține un „ticket” de la KDC – Key Distribution Center
 Ticket-ul este prezentat serverelor pentru autentificare

https://blogs.msdn.microsoft.com/fchapleau/2013/02/24/the-evolution-of-
authentication/ 185
Atacuri asupra Kerberos
 Ticket dumping
 Pass-the-ticket
 Golden Ticket
– Ticket Granting Ticket care expiră în 1o ani
– Oferă privilegii de administrator de domeniu
– Nu este afectat de resetările de parole
– Cerințe pentru derularea atacului:
• Domain SID
• Hash-ul NTLM pentru krbtgt

186
Credențiale în clar: LSA Secrets
 Folosite de
– Serviciile Windows care rulează sub un cont de utilizator
– Automatic user logon
 Surse de credențiale LSA
– Memoria procesului „lsass.exe”
– HKLM\Security\Policy\Secrets
 Security Service Providers (SSPs) furnizează servicii de Single
Sign-On pentru
– Kerberos
– wdigest (HTTP digest auth)
– tspkg (Terminal Services = Remote Desktop Services)
 SSPs stochează credențialele de logare în memorie => parolele
pot fi recuperate în clar
187
Atac asupra LSA Secrets

https://dfir-blog.com/2015/11/24/protecting-windows-networks-dealing-
with-credential-theft/ 188
Unelte pentru dumpul parolelor
Tool NTLM NTLM Logon Kerberos MSCACHE Clear-text Certs & Smart card
(SAM) (Logon Sessions / Tickets Logons LSA Keys PIN codes
Sessions) SSPs Secrets
cachedump x
fgdump x x
gsecdump x x x
lsadump x
mimikatz x x x x x x x
pwdump7 x
PwDumpX x x
wce x x x

• „wce” și „mimikatz” sunt cele mai populare


• Necesită privilegii de administrator local sau de sistem local

189
Logon Events
 Network Logons – logon type 3
– Acces sau transfer de fișiere
– Interacțiune nativă cu linia de comandă
– Există utilitare în linie de comandă
– Permit interacțiunea cu serviciile de sistem
– Permite rularea de comenzi de la distanță
– Protocoale de autentificare
• NTLM
• Kerberos
 Indicii pentru network logons Code Type
– Network = Type 3
2 Interactive
– Înregistrate de Security event log
3 Network
• Sistem destinație
10 RemoteInteractive
• Sistem sursă
• Domain Controller
190
Network Logon Event (NTLM)

net use y: \\alicePC\c$

bobPC alicePC

Infectat cu
un backdoor Succesful Network Logon: EID 540 sau
ce rulează în User Name: bob 4624
contextul Domain: ACME
utilizatorului Logon ID: (0x0, 0x3e2c4e73)
ACME\bob Logon Type: 3
Logon Process: NtLmSsp Security Event Log
Authentication package: NTLM
Workstation name: bobPC
Source Network Address: 10.0.1.121

ACME DC
191
Network Logon Event – Credențiale explicite

net use y: \\alicePC\c$ passwd /u:ACME\alice

bobPC alicePC

Infectat cu un A logon was attempted using explicit


backdoor ce credentials.
rulează în Account Name: bob
contextul Account Domain: ACME
utilizatorului
ACME\bob Account whose credentials were used:
Account Name: alice Security Event Log
Account Domain: ACME
EID 540 sau 4624
Target Server Name: alicePC.acme.com
Process ID: 0x0000000000000158
Process Name:
Security Event Log
C:\Windows\system32\svchost.exe
EID 552 sau 4648 192
Network Event Logon (Kerberos)

net use y: \\alicePC\c$

Succesful Network Logon:


bobPC User name: bobPC$ alicePC
Domain: ACME
Infectat cu un Logon ID: (0x0, 0x3e2c4e73)
Logon Type: 3
backdoor ce
Logon Process: Kerberos
rulează în Authentication Package: Kerberos
contextul Workstation Name:
utilizatorului Source Network Address:
ACME\bob
Succesful Network Logon: Security Event Log
User name: bob
Domain: ACME
EID 540 sau 4624
Logon ID: (0x0, 0xaf03d119)
Logon Type: 3
Logon Process: Kerberos
Authentication Package: Kerberos
Workstation Name:
Source Network Address: 193
Interactive Logon Events
 Interactive – Type 2
– Consola fizică
– Screen sharing
– „RunAs” sau „PsExec” cu furnizare de credențiale

 RemoteInteractive – Type 10
– Remote Desktop / Terminal Services

Code Type
2 Interactive
3 Network
10 RemoteInteractive

194
RemoteInteractive Logon Event
Event ID 4624
An account was successfully logged on.
User name: edward.sandu
Domain: C-LAB
Logon ID: (0x0, 0x151f248)
laptop_X Logon type: 10
Logon Process: User32
Autehntication Package: Negotiate
Workstation Name: mgmt.c-lab.int
Source Network Address: 10.0.1.101

Security Event Log

RDP

mgmt.c-lab.int
C-LAB Domain
Controller
195
Remote Command Execution
 Mecanisme integrate în Windows:
– Scheduled Tasks („at”)
– WMI – Windows Management Instrumentation
– PowerShell

 Utilitare externe:
– PsExec

 Necesită autentificare prin rețea cu credențiale de


administrator

196
Scheduled Tasks
 „at” permite crearea de task-uri pe sisteme locale sau remote
– Fișierele create au denumiri de genul „At1”, „At2”, etc.
 Se poate folosi pentru a rula un anume fișier la un anumit
moment de timp, la intervale de timp prestabilite sau când are
loc un eveniment
 Este folosită pentru a rula malware de la distanță
 Necesită drepturi de administrator
 Va rula sub contextul utilizatorului „SYSTEM”

197
Scheduled Task Event Logs
 ”Microsoft-Windows-TaskScheduler/Operational”
– Începând cu Windows Vista

Exemple de loguri

198
Scheduled Task Log
 XP, 2000, 2003
– %SYSTEMROOT%\SchedLgU.txt
 Vista, 7, 2008
– %SYSTEMROOT%\Tasks\SchedLgU.txt
 Înregistrează doar pornirea / oprirea serviciului Task Scheduler
Nume fișier. Calea și
Nume job argumentele nu sunt logate

Ora locală a
sistemului
Exit code

199
Fișierele de tip .job
 Stocate în %SYSTEMROO%\Tasks\*.job
 Metadatele din cadrul fișierelor .job includ detalii de
configurare pentru un eveniment din Windows Task Scheduler
– Calea către fișierul rulat
– Parametrii cu care este rulat fișierul
– Programul de rulare
 Fișiere binare

 jobparser.py – utilitar de parsare fișiere .job


200
– https://github.com/sans-dfir/sift-files/blob/master/scripts/jobparser.py
Exemple de comenzi de rulare exe de la distanță
 Necesită logare prin rețea cu credențiale de administrator

 WMI
wmic /node:TargetHost process call create ”C:\evil.exe”

 PowerShell
Invoke-Command TargetHost {C:\evil.exe}

 SysInternals PsExec
psexec \\TargetHost –e C:\evil.exe

201
Artefacte la nivelul sistemului de fișiere
 La prima logare interactivă a unui utilizator se creează profilul
utilizatorului
– C:\users\%USERNAME%\
– User registry hives
 Acestea sunt suficiente pentru a demonstra o logare
interactivă, chiar și fără a inspecta Event Log-urile
 Fișierele de tip LNK (shortcut)
– Auto-generate la deschiderea unui fișier prin Explorer
– Implementează funcționalitate de „Recent Files”/„Recent Docs”
Windows Vista, 7, Server 2008 – LNK File Paths
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Windows\Recent\
C:\Users\%USERNAME%\AppData\Roaming\Microsoft\Office\Recent\
Înainte de VISTA – LNK File Paths
C:\Documents and Settings\%USERNAME%\Recent\
202
C:\Documents and Settings\%USERNAME%\Application Data\Microsoft\Office\Recent\
Conținut fișiere LNK
 Calea fișierului (locală sau din rețea)
 Atribute și dimensiune logică
 Timestamp-urile MAC pentru fișierul referențiat la momentul
ultimei deschideri a acestuia
 lnk-parse
– https://sourceforge.net/projects/jafat/files/lnk-parse/

203
Recycle Bin

SECRET.TXT
$RD2SVWS.TXT
$R<RAND>.<EXT>
• Copia fișierului original

C:\$Recycle.Bin\<SID>\
$ID2SVWS.TXT
$I<RAND>.<EXT>
• Data și timpul ștergerii
• Denumirea fișierului original
• Dimensiunea fișierului original
Pentru parsarea fișierelor $I folosiți utilitarul rifiuti2
204
https://github.com/abelcheung/rifiuti2/releases/tag/0.6.1
Recycle Bin
 Directoarele șterse
– Redenumite după aceeași convenție ca în cazul fișierelor șterse
– Fișierele din cadrul lor își păstrează denumirea originală
 Fișierele aflate în rădăcina directoarelor „Recycler”,
„$Recycle.bin” sunt întotdeauna suspecte
– Locație folosită de aplicațiile malware

205
Accesul interactiv în Windows Registry
 Există chei care înregistrează activitatea pe parcursul
sesiunilor interactive
– Modul de utilizare al shell-ului Explorer
– Programe rulate
– Modul de utilizare al aplicațiilor
 Majoritatea cheilor se află în user hives

Windows 2000, 2003, XP Windows 2000, 2003, XP


\Documents and Settings\<username>\ \Documents and Settings\<username>\Local
Settings\Application Data\Microsoft\Windows

Windows Vista, 7, 2008 Windows Vista, 7, 2008


\Users\<username>\ \Users\<username>\AppData\Local\Microsoft\Wind
ows\

NTUSER.DAT USRCLASS.DAT

206
HKEY_USERS\<User SID> HKEY_USERS\<User SID>_Classes
Shellbags
 Înregistrează modul de utilizare al shell-ului Windows Explorer
 Înregistrează detalii despre ferestrele afișate (dimensiunea,
poziția, etc.)
 Furnizează indicii despre accesul utilizatorului la directoare
locale și remote

Windows Vista, 7, Server 2008 (în USRCLASS.DAT per utilizator)


HKEY_USERS\{SID}_Classes\Local Settings\Software\Microsoft\Windows\Shell\

Înainte de Windows Vista (în NTUSER.DAT per utilizator)


HKEY_USERS\{SID}\Software\Microsoft\Windows\Shell\
HKEY_USERS\{SID}\Software\Microsoft\Windows\ShellNoRoam\

207
Shellbags
 Decodarea cheilor shellbag pot furniza informații precum
– Căi către directoarele accesate prin Windows Explorer
– Data și timpul la care au fost accesate directoarele
• Data ultimei modificări a cheii shelbag
– Timestamp-urile MAC ale fiecărei căi accesate și înregistrate în
shellbags
 Unelte pentru decodare shellbags
– RegRipper
• https://github.com/keydet89/RegRipper2.8
– „shellbags.py”
• https://github.com/williballenthin/shellbags

208
Date decodate din shellbags

209
UserAssist & MUICache
 Înregistrează fișierele și programele deschise prin Explorer

UserAssist MUICache
• Câte o valoare per fișier executabil – • Câte o valoare per fișier executabil –
codată ROT13 text în clar
• Numărul de rulări ale fiecărui program • Stochează metadata „FileDescription”
pentru fișierele PE
• Data ultimei execuții

HKEY_USERS\{SID}\Software\Microsoft\Win HKEY_USERS\{SID}\Software\Microsoft\
dows\CurrentVersion\Explorer\UserAssist Windows\ShellNoRoam\MUICache

210
UserAssist

Datele din UserAssist pot fi decodate cu RegRipper

211
Most Recently Used – MRU Keys
 Explorer „Open and Save” MRU
HKEY_USERS\{SID}\Software\Microsoft\Windows\
CurrentVersion\Explorer\ComDlg32\
 Start Menu „Run” MRU
HKEY_USERS\{SID}\Software\Microsoft\Windows\
CurrentVersion\Explorer\RunMRU

 „RecentDocs” – fișiere deschise recent


HKEY_USERS\{SID}\Software\Microsoft\Windows\
CurrentVersion\Explorer\RecentDocs
 Remote Desktop MRU
HKEY_USERS\{SID}\Software\Microsoft\Terminal
Server Client\Default\
HKEY_USERS\{SID}\Software\Microsoft\Terminal
212
Server Client\Servers\
Threat Hunting

213
Cuprins
 Introducere
– Obiective
– Colectarea datelor relevante
– Analiză
 Exemple
– Task Scheduler Log
– ShimCache
– Service Stacking
 Laborator

214
Obiective
 Căutare proactivă după indicatori de compromitere
 Colectare date pentru investigații viitoare
 Accentul va fi pe date care
– Sunt ușor de colectat și analizat
– Nu reprezintă un volum mare de date
– Au cele mai mari șanse de a produce rezultate bune
 Începeți simplu, urmând a vă extinde pe parcurs

215
Colectarea datelor
 Instrumente de nivel enterprise pentru colectarea datelor și
analiza forensic
 Instrumente pentru inventariere și metrici software
 Anti-virus
 Colectori SIEM - Security Information and Event Management
 Utilitare și scripturi de colectare

216
Analiza datelor
 Ce căutăm?
– Indicatori specifici („known” bad)
– Anomalii („unknown” bad)

Ce sisteme conțin Ce utilizatori au creat Care sisteme rulează


fișierul „evil.exe”? joburi „at” pe servere? servicii Windows
neobișnuite?

Indicatori specifici Anomalii

 Limitări
– Disponibilitatea indicatorilor
– Vizibilitatea la nivelul endpoint-urilor și la nivelul rețelei
– Timpul & resursele
217
Exemple de threat hunting
 Task Scheduler Logs
 ShimCache
 Services

 În \Labs\scripts se găsesc scripturi PowerShell care pot ajuta


în activitățile de threat hunting

218
Task Scheduler Logs
 Scopul este de a identifica folosirea în scop malițios a facilității
Windows Task Scheduler
 Căutăm task-uri fără nume create cu utilitarul „at”
 Două surse de date:

Microsoft-Windows- SchedLgU.txt
TaskScheduler%4Operational.evtx
• Date disponibile
• Date disponibile • Timpii de start/stop task
• Timpii de creare, start și • Numele task-ului
terminare task • Denumirea fișierului executat
• Utilizatorul care a înregistrat • Filtrați după taskuri denumite „At#”
task-ul
• Calea și denumirea fișierului
executat
• Filtrați după EID 106, 129, 200, 201
• Mesajele conțin „\At”

 \Labs\scripts\get_task_scheduler_logs.ps1 219
ShimCache
 Implementează Windows „Application Compatibility Cache”
– Gestionează problemele de compatibilitate ale aplicațiilor
 Înregistrează metadate pentru fișiere PE și scripturi
– Chiar și dacă nu au fost executate

HKLM\SYSTEM\CurrentControlSet\Contro\Session Manager\AppCompatibility\AppCompatCache

HKLM\SYSTEM\CurrentControlSet\Contro\Session Manager\AppCompatCache\AppCompatCache

 Script python pentru parsarea ShimCache


– https://github.com/mandiant/ShimCacheParser

220
ShimCache decodat
 Înregistrările sunt ordonate începând cu cele mai recent
adăugate sau actualizate
 „Last Update, Size, Exec Flag” nu sunt prezente pe toate
versiunile de Windows
$SI Last Modified Cache Entry Last
Update

 \Labs\scripts\get_shimcache.ps1 221
Metrici ShimCache
Analiză ShimCache
 O singură cheie în Windows Registry
 Până la 1024 de înregistrări cache / sistem
 Exemplificare
– 20.000 sisteme (Windows 7 / Server 2008)
– ~7.000.000 de linii de ShimCache decodat
– ~650 MB CSV
 Analiză
– Căutări după
• Denumiri de fișiere, directoare, timpi asociați unor activități malițioase
– Denumiri de fișiere / căi aleatoare (posibil asociate instalerului malware)
– Variații ale înregistrărilor cache / sistem
– Ex: Care sunt fișierele unice din rădăcina partiției „C:\”
– În cazul unui hit, evaluăm contextul

222
Windows Services
 Identificați serviciile Windows suspecte prin analiza frecvenței
de apariție
 Parametri asociați serviciilor Windows ce ar trebui colectați

Parametru Exemplu
Name dmwappushservice
Descriptive Name dmwappushsvc
Description WAP Push Message Routing Service
ImagePath C:\WINDOWS\system32\svchost.exe -k netsvcs
ServiceDll

 \Labs\scripts\get_windows_services.ps1

223
Windows Services

 Topul celor mai puțin frecvente ServiceDll


 Reducerea datelor
– Colectare semnături digitale și MD5-uri pentru toate fișierele asociate
serviciilor
– Eliminare fișiere cu semnături digitale valide
– Pentru fișierele rămase verificați MD5-urile. Dacă nu este găsit atunci
achiziționați fișierele și trimiteți-le către analiză malware
224
Alte date folositoare în „threat hunting”
 Fișierele prefetch
– Denumiri fișiere executabile
– Căile fișierelor executabile
– Căile fișierelor accesate
 Registry autorun keys
 Înregistrări din System Event Logs aferente serviciilor
– [service name] started by [user]
 Network logon events
– Prezente în Security Event Logs
– RDP / Terminal Services logs
– Focalizare pe conturile de tip administrator local și cele cu drepturi
privilegiate la nivel de domeniu
 Laborator
225
END

226