Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pfsense-limiter-number — pfSense CE 2.9.0-DEVELOPMENT - Alto - Remoto - RCE - limiter number dnctl | Kitploit
Strumenti/GitHubGitHub/abraxas/pfsense-limiter-number
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingCommand and ControlRed TeamingLab e Pratica
GitHubabraxas/pfsense-limiter-number

pfsense-limiter-number

pfSense CE 2.9.0-DEVELOPMENT - Alto - Remoto - RCE - limiter number dnctl

Vedi Repository
112 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Abraxas Labs - pfsense-limiter-number

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  pfsense-limiter-number

pfsense-limiter-number

Classe: RCE Portata: Remota

pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org

I Traffic Shaper Limiters emettono un campo number nascosto in fase di modifica. La creazione sovrascrive quel numero con dnpipe_find_nextnumber(). La modifica no. validate_input non controlla mai number. GetNumber() viene concatenato senza virgolette in dnctl pipe|sched|queue delete. Il PHP mwexec è /bin/sh -c. Il privilegio è page-firewall-trafficshaper-limiter, non Diagnostics: Command.

IDnessuna CVE al momento
ClasseRCE
PortataRemota (WebGUI autenticata)
CWECWE-78
CVSSAlto: 8.8 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
ProdottopfSense CE
Affetto2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) limiter number
AuthSessione WebGUI con page-firewall-trafficshaper-limiter
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Ho fissato il master pubblico 9363ac5. Il lab è un gadget PHP di ReadConfig / SetNumber / delete_queue fissati. Loopback 127.0.0.1:18840.

Cosa può fare un attaccante

MetodoSinkPrivilegio
Creare un limiter, POST save con number dell'attaccante, poi eliminare quel limitermwexec("/sbin/dnctl pipe delete " . $this->GetNumber()) (shaper.inc:3820)Integrità (dimostrata in lab): root shell. Lab: edit-delete ha scritto il witness (edit-delete-exec=yes). La sovrascrittura in creazione e il percorso apply-file non hanno scritto nulla.
Stessa root shellfilesystem hostRecon (inferito): config.xml, chiavi.
Root shell o dnctl di numeri dell'attaccantedummynetDisponibilità (inferita): interruzione di limiter / dummynet.

Dimostrato in lab vs inferito: la sovrascrittura in creazione (nessun witness), il percorso apply-file (dnctl di un file, nessun witness) e l'exec edit-delete (witness) sono dimostrati in lab. Il recon del filesystem è inferito da root PHP-FPM.

Richiede: sessione WebGUI con page-firewall-trafficshaper-limiter. CSRF sul POST save. La delete è GET action=delete.

Superficie adiacente che resta chiusa

SuperficieLab
Percorso di creazionednpipe_find_nextnumber() sovrascrive, create-overwrites=yes
Percorso di applydnctl di /tmp/rules.limiter, nome file non controllato dall'utente, apply-file=yes
Charset del nome limiter^[a-zA-Z0-9_-]+$
Non autenticatochiuso
Diagnostics: Commandresta chiuso a meno che non sia concesso anche quello

I parametri AQM in /tmp/rules.limiter sono linguaggio dummynet aggiuntivo, non questo residuo.

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18840. Progetto Compose pfsense-limiter-number. Tag immagine pfsense-limiter-number:2.9.0-dev. Witness PFSENSE-LIMITER-NUMBER-WITNESS. Ultima riga:

SUCCESS PFSENSE-LIMITER-NUMBER create-overwrites=yes apply-file=yes edit-delete-exec=yes PFSENSE-LIMITER-NUMBER-WITNESS

La correzione

Cast a int di GetNumber() prima di ogni dnctl. Ignorare il number del POST in fase di modifica, oppure verificarne il range rispetto all'id dummynet attivo. La creazione già sovrascrive; far fare lo stesso alla modifica.

Riferimenti

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • shaper.inc delete_queue / GetNumber
  • firewall_shaper_vinterface.php
  • CWE-78
Scarica lo strumento