Uchambuzi wa Malware
Reading time: 9 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Karatasi za Udanganyifu za Forensics
https://www.jaiminton.com/cheatsheet/DFIR/#
Huduma za Mtandaoni
Zana za Antivirus na Ugunduzi za Offline
Yara
Sakinisha
sudo apt-get install -y yara
Andaa sheria
Tumia skripti hii kupakua na kuunganisha sheria zote za yara malware kutoka github: https://gist.github.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9
Unda saraka ya rules na uitekeleze. Hii itaunda faili inayoitwa malware_rules.yar ambayo ina sheria zote za yara za malware.
wget https://gist.githubusercontent.com/andreafortuna/29c6ea48adf3d45a979a78763cdc7ce9/raw/4ec711d37f1b428b63bed1f786b26a0654aa2f31/malware_yara_rules.py
mkdir rules
python malware_yara_rules.py
Skana
yara -w malware_rules.yar image #Scan 1 file
yara -w malware_rules.yar folder #Scan the whole folder
YaraGen: Angalia kwa malware na Unda sheria
You can use the tool YaraGen to generate yara rules from a binary. Check out these tutorials: Part 1, Part 2, Part 3
python3 yarGen.py --update
python3.exe yarGen.py --excludegood -m ../../mals/
ClamAV
Sakinisha
sudo apt-get install -y clamav
Scan
sudo freshclam #Update rules
clamscan filepath #Scan 1 file
clamscan folderpath #Scan the whole folder
Capa
Capa inagundua uwezo wa hatari katika executable: PE, ELF, .NET. Hivyo itapata mambo kama mbinu za Att&ck, au uwezo wa kushangaza kama:
- angalia kosa la OutputDebugString
- endesha kama huduma
- tengeneza mchakato
Pata katika Github repo.
IOCs
IOC inamaanisha Kielelezo cha Kuathiriwa. IOC ni seti ya masharti yanayobaini baadhi ya programu zisizohitajika au malware iliyothibitishwa. Timu za Blue hutumia aina hii ya ufafanuzi ili kutafuta aina hii ya faili za hatari katika mifumo yao na mitandao.
Kushiriki ufafanuzi huu ni muhimu sana kwani wakati malware inatambuliwa kwenye kompyuta na IOC kwa malware hiyo inaundwa, timu nyingine za Blue zinaweza kuitumia ili kutambua malware hiyo haraka.
Zana ya kuunda au kubadilisha IOCs ni IOC Editor.
Unaweza kutumia zana kama Redline ili kutafuta IOCs zilizofafanuliwa kwenye kifaa.
Loki
Loki ni skana ya Viashiria Rahisi vya Kuathiriwa.
Ugunduzi unategemea mbinu nne za ugunduzi:
1. File Name IOC
Regex match on full file path/name
2. Yara Rule Check
Yara signature matches on file data and process memory
3. Hash Check
Compares known malicious hashes (MD5, SHA1, SHA256) with scanned files
4. C2 Back Connect Check
Compares process connection endpoints with C2 IOCs (new since version v.10)
Linux Malware Detect
Linux Malware Detect (LMD) ni skana ya malware kwa Linux iliyotolewa chini ya leseni ya GNU GPLv2, ambayo imeundwa kuzingatia vitisho vinavyokabiliwa katika mazingira ya mwenyeji wa pamoja. Inatumia data za vitisho kutoka kwa mifumo ya kugundua uvamizi kwenye ukingo wa mtandao ili kutoa malware inayotumika kwa shambulio na kuunda saini za kugundua. Zaidi ya hayo, data za vitisho pia zinatokana na michango ya watumiaji kupitia kipengele cha LMD checkout na rasilimali za jamii ya malware.
rkhunter
Zana kama rkhunter zinaweza kutumika kuangalia mfumo wa faili kwa ajili ya rootkits na malware.
sudo ./rkhunter --check -r / -l /tmp/rkhunter.log [--report-warnings-only] [--skip-keypress]
FLOSS
FLOSS ni chombo ambacho kitajaribu kupata nyuzi zilizofichwa ndani ya executable kwa kutumia mbinu tofauti.
PEpper
PEpper inakagua mambo ya msingi ndani ya executable (data ya binary, entropy, URLs na IPs, baadhi ya sheria za yara).
PEstudio
PEstudio ni chombo kinachoruhusu kupata taarifa za Windows executables kama vile imports, exports, headers, lakini pia kitakagua virus total na kupata mbinu za Att&ck zinazoweza kuwa.
Detect It Easy(DiE)
DiE ni chombo cha kugundua kama faili ime encrypted na pia kupata packers.
NeoPI
NeoPI ni script ya Python inayotumia mbinu mbalimbali za statistical methods kugundua maudhui yaliyofichwa na encrypted ndani ya faili za maandiko/script. Kusudi lililokusudiwa la NeoPI ni kusaidia katika detection of hidden web shell code.
php-malware-finder
PHP-malware-finder inajitahidi sana kugundua obfuscated/dodgy code pamoja na faili zinazotumia PHP functions ambazo mara nyingi hutumiwa katika malwares/webshells.
Apple Binary Signatures
Unapokagua baadhi ya malware sample unapaswa kila wakati check the signature ya binary kwani developer aliyeisaini inaweza kuwa tayari related na malware.
#Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"
#Check if the app’s contents have been modified
codesign --verify --verbose /Applications/Safari.app
#Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app
Mbinu za Kugundua
Kuunganisha Faili
Ikiwa unajua kwamba folda fulani inayoshikilia faili za seva ya wavuti ilifanywa kupdate kwa tarehe fulani. Angalia tarehe zote za faili katika seva ya wavuti zilizoumbwa na kubadilishwa na ikiwa tarehe yoyote ni ya kushangaza, angalia faili hiyo.
Msingi
Ikiwa faili za folda hazipaswi kubadilishwa, unaweza kuhesabu hash ya faili za asili za folda na kulinganisha na zile za sasa. Kila kitu kilichobadilishwa kitakuwa cha kushangaza.
Uchambuzi wa Takwimu
Wakati habari inahifadhiwa katika kumbukumbu unaweza kuangalia takwimu kama vile ni mara ngapi kila faili ya seva ya wavuti ilifikiriwa kama shell ya wavuti inaweza kuwa moja ya.
Kuondoa Ufafanuzi wa Mwelekeo wa Kudumu (JMP/CALL RAX Dispatchers)
Familia za kisasa za malware zinatumia sana ufichaji wa Mchoro wa Mwelekeo (CFG): badala ya kuruka/kuita moja kwa moja wanahesabu marudio wakati wa utendaji na kutekeleza jmp rax
au call rax
. Dispatcher ndogo (kawaida maagizo tisa) inaweka lengo la mwisho kulingana na bendera za CPU ZF
/CF
, ikivunja kabisa urejeleaji wa static CFG.
Mbinu hii – iliyowasilishwa na mzigo wa SLOW#TEMPEST – inaweza kushindwa kwa mchakato wa hatua tatu unaotegemea tu IDAPython na emulator ya CPU ya Unicorn.
1. Pata kila kuruka / kuita isiyo ya moja kwa moja
import idautils, idc
for ea in idautils.FunctionItems(idc.here()):
mnem = idc.print_insn_mnem(ea)
if mnem in ("jmp", "call") and idc.print_operand(ea, 0) == "rax":
print(f"[+] Dispatcher found @ {ea:X}")
2. Toa byte-code ya dispatcher
import idc
def get_dispatcher_start(jmp_ea, count=9):
s = jmp_ea
for _ in range(count):
s = idc.prev_head(s, 0)
return s
start = get_dispatcher_start(jmp_ea)
size = jmp_ea + idc.get_item_size(jmp_ea) - start
code = idc.get_bytes(start, size)
open(f"{start:X}.bin", "wb").write(code)
3. Iiga mara mbili kwa kutumia Unicorn
from unicorn import *
from unicorn.x86_const import *
import struct
def run(code, zf=0, cf=0):
BASE = 0x1000
mu = Uc(UC_ARCH_X86, UC_MODE_64)
mu.mem_map(BASE, 0x1000)
mu.mem_write(BASE, code)
mu.reg_write(UC_X86_REG_RFLAGS, (zf << 6) | cf)
mu.reg_write(UC_X86_REG_RAX, 0)
mu.emu_start(BASE, BASE+len(code))
return mu.reg_read(UC_X86_REG_RAX)
Kimbia run(code,0,0)
na run(code,1,1)
ili kupata malengo ya tawi false na true.
4. Rudisha nyuma kuruka moja kwa moja / wito
import struct, ida_bytes
def patch_direct(ea, target, is_call=False):
op = 0xE8 if is_call else 0xE9 # CALL rel32 or JMP rel32
disp = target - (ea + 5) & 0xFFFFFFFF
ida_bytes.patch_bytes(ea, bytes([op]) + struct.pack('<I', disp))
Baada ya kurekebisha, kulazimisha IDA kuchambua tena kazi ili CFG kamili na matokeo ya Hex-Rays yarudishwe:
import ida_auto, idaapi
idaapi.reanalyze_function(idc.get_func_attr(ea, idc.FUNCATTR_START))
5. Label indirect API calls
Mara tu marudio halisi ya kila call rax
yanapojulikana unaweza kumwambia IDA ni nini ili aina za parameta na majina ya mabadiliko yaweze kurejeshwa kiotomatiki:
idc.set_callee_name(call_ea, resolved_addr, 0) # IDA 8.3+
Faida za Kivitendo
- Inarejesha CFG halisi → decompilation inabadilika kutoka 10 mistari hadi maelfu.
- Inaruhusu cross-reference za nyuzi & xrefs, ikifanya ujenzi wa tabia kuwa rahisi.
- Scripts zinaweza kutumika tena: ziacha kwenye loader yoyote iliyo na ulinzi wa hila hiyo hiyo.
Marejeleo
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.