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-carp-vhid — pfSense CE 2.9.0-DEVELOPMENT - Alto - Remoto - RCE - CARP VHID residuo | Kitploit
Strumenti/GitHubGitHub/abraxas/pfsense-carp-vhid
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitPenetration TestingCommand and ControlRed TeamingLab e Pratica
GitHubabraxas/pfsense-carp-vhid

pfsense-carp-vhid

pfSense CE 2.9.0-DEVELOPMENT - Alto - Remoto - RCE - CARP VHID residuo

Vedi Repository
1188 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-carp-vhid

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

Write-up: https://abraxaslabs.tech/research/pfsense-carp-vhid

pfsense-carp-vhid

Classe: RCE Portata: Remota

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

La modifica di un Virtual IP memorizza il VHID CARP proveniente dalla POST senza alcun controllo 1-255. Le opzioni di Form_Select sono solo HTML. L'applicazione CARP applica escapeshellarg al VHID. L'applicazione di un IP Alias sovrapposto interpola vhid {$carpvip['vhid']} al di fuori di escapeshellarg. Lo stato CARP interpola lo stesso VHID memorizzato in una pipeline grep con doppi apici; il punto e virgola resta tra apici, la sostituzione di comando viene comunque eseguita sotto /bin/sh -c. Il privilegio richiesto è modifica + applicazione VIP, 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) CARP VHID
AuthSessione WebGUI con modifica + applicazione VIP (lo status/widget è un trigger successivo)
LicenzaGNU Affero GPL v3.0
Labsolo 127.0.0.1

Ho fissato il master pubblico 9363ac5. Il lab è un gadget PHP composto da interface_carp_configure fissato, mwexec dell'ipalias sovrapposto e exec dello status. Loopback 127.0.0.1:18830.

Cosa può fare un attaccante

MetodoSinkPrivilegio
POST di un VIP carp con un VHID non intero, poi applicazione di un IP Alias sovrapposto su quel parent _vip{uniqid}mwexec ifconfig ... alias {$gateway} {$vhid} (interfaces.inc:3238)Integrità (dimostrata nel lab): shell root. Lab: ipalias-unescaped ha scritto il witness. L'applicazione CARP dello stesso VHID non ha scritto nulla (carp-escaped=yes).
Stesso VHID memorizzato, poi GET di status_carp.php o rendering di carp_status.widget.phppipeline grep exec (pfsense-utils.inc:794)Integrità (dimostrata nel lab): la sostituzione di comando all'interno dei doppi apici è stata eseguita e ha scritto il witness (status-sink=yes, status-subst=yes). Il punto e virgola è rimasto tra apici. Il trigger del widget può essere un'altra sessione GUI.
Stessa shell rootfilesystem dell'hostRicognizione (dedotta): config.xml, chiavi.
Shell root o ifconfig compromessodispositivi CARP / aliasDisponibilità (dedotta): interruzione di interfaccia / CARP / filtro.

Dimostrato nel lab vs dedotto: carp-escaped, il witness di ipalias-unescaped e il witness di sostituzione di comando dello status sono dimostrati nel lab. La ricognizione del filesystem e l'interruzione del filtro sono dedotte dal PHP-FPM root.

Richiede: page-firewall-virtualipaddress-edit (salvataggio) e page-firewall-virtualipaddresses (applicazione). Sink dello status: page-status-carp o qualsiasi dashboard con il widget CARP. CSRF sulla POST.

Superficie adiacente che resta chiusa

SuperficieLab
L'applicazione CARP stessaescapeshellarg sul VHID, carp-escaped=yes
Password CARP / advbase / advskew / subnetis_ipaddr / escaped
Non autenticatochiuso
Applicazione xmlrpc degli stessi oggetti senza credenziali HAskip-list SA-26_22
Diagnostics: Commandresta chiuso se non concesso esplicitamente

Lab

cd lab
./run.sh

Loopback 127.0.0.1:18830. Progetto Compose pfsense-carp-vhid. Tag immagine pfsense-carp-vhid:2.9.0-dev. Witness PFSENSE-CARP-VHID-WITNESS. Ultima riga:

SUCCESS PFSENSE-CARP-VHID carp-escaped=yes ipalias-unescaped=yes status-sink=yes PFSENSE-CARP-VHID-WITNESS

La correzione

Limita il VHID all'intervallo di interi 1-255 al salvataggio. Applica escapeshellarg al VHID durante l'applicazione degli IP Alias impilati e sul grep di stato, allo stesso modo in cui lo fa già l'applicazione CARP.

Riferimenti

  • github.com/pfsense/pfsense 9363ac5b8651a1c7a333180425ce7719070f95f9
  • firewall_virtual_ip.inc saveVIP
  • interfaces.inc mwexec degli ipalias impilati
  • pfsense-utils.inc grep di stato CARP
  • CWE-78
Scarica lo strumento