Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
opnsense-firmware-mirror-sed — OPNsense 26.7.6 - Alta - Remota - Privilégio remanescente - espelho de firmware personalizado sed ignora impressões digitais de pkg | Kitploit
Ferramentas/GitHubGitHub/abraxas/opnsense-firmware-mirror-sed
Escalada de PrivilégiosAnálise de VulnerabilidadesAnálise de CódigoExploraçãoExploração de Aplicações WebVirtualização para SegurançaTestes de PenetraçãoSegurança da Cadeia de Suprimentos

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Papers e Pesquisa
Labs e Prática
GitHubabraxas/opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

OPNsense 26.7.6 - Alta - Remota - Privilégio remanescente - espelho de firmware personalizado sed ignora impressões digitais de pkg

Ver Repositório
1há 5 diasAinda não revisado

Abraxas Labs - opnsense-firmware-mirror-sed

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  opnsense-firmware-mirror-sed

opnsense-firmware-mirror-sed

Classe: Ignorar assinatura Alcance: Remoto

OPNsense core 26.7.6 (a842fe48) - opnsense.org

Sistema: Firmware set envia um mirror / flavour personalizado via POST. O core FILTER_SANITIZE_URL mantém \|#;". opnsense-update -m / -n interpola essa string em sed sobre OPNsense.conf e pode alterar signature_type de "fingerprints" para "none". Em seguida, pkg install como root a partir da URL do atacante. A página de configurações oferece um mirror personalizado de pacotes OPNsense ainda assinados. Ela não possui controle de "desativar assinaturas". O privilégio é page-system-firmware-manualupdate, não page-all.

O sed reside no opnsense-update, fora do pin. O core neste pin é o campo não sanitizado mais a passagem -m. O laboratório reexecuta esse texto de programa s||| com GNU sed.

Este pacote do GitHub permanece privado até a divulgação coordenada.

IDainda sem CVE
ClasseIgnorar assinatura
AlcanceRemoto (WebGUI / API autenticada)
CWECWE-74 / CWE-347
CVSSAlto: 7.2 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H
ProdutoOPNsense core
Afetado26.7.6 (a842fe48c21288d11a422cb944678e8eb308becf) Firmware set mirror personalizado
AutenticaçãoSessão WebGUI ou chave de API com page-system-firmware-manualupdate
LicençaGNU Affero GPL v3.0
Laboratórioapenas 127.0.0.1

Fiz o pin da tag 26.7.6 peel a842fe48. O laboratório é um gadget PHP de FILTER_SANITIZE_URL mais o sed mod_mirrorurl do opnsense-update, HTTP em loopback em 127.0.0.1:18860. PR:H porque a página de firmware já tem permissão para instalar pacotes assinados. Pontuação 8.8 se essa página for tratada como PR:L.

O que um atacante pode fazer

MétodoSinkPrivilégio
FILTER_SANITIZE_URL em um mirror personalizado com | e então sed no estilo opnsense-updatereescrita de OPNsense.confIntegridade (comprovada em laboratório): signature_type "none". O mirror de controle permanece "fingerprints". Laboratório: sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes.
Mesmo conjunto, campo pluginssetAction descarta pluginsNegativo (comprovado em laboratório): plugins descartados antes de salvar.
Em seguida POST /api/core/firmware/install/<pkg>pkg install -y como root a partir da URL do atacanteIntegridade (inferida): pacote não assinado como root. A página de firmware já instala pacotes assinados; esse resquício é a verificação ignorada. Nenhum payload não assinado no laboratório.
Em seguida POST /api/core/firmware/update ou /upgradeopnsense-update -pt / -u como rootIntegridade (inferida): conjuntos base/kernel com verificação ignorada (DO_INSECURE).
GET /api/core/firmware/info, /running, /upgradestatusAPI de firmwareRecon (inferida): listas de pacotes, log de atualização, opções de mirror. Destinado a esta ACL.
POST /api/core/firmware/reboot, /poweroff, /remove/<pkg>ações de firmware do configdDisponibilidade (inferida): reboot/halt/remove. Destinado a esta ACL, não ao resquício.

Comprovado em laboratório vs inferido: sanitize mantém | e signature_type none são SUCCESS de laboratório. pkg install ao vivo de um pacote não assinado é inferido. Gadget, não uma VM FreeBSD completa do OPNsense. Nenhum payload de pacote não assinado.

Requer: usuário autenticado ou a chave de API Local desse usuário com page-system-firmware-manualupdate e sem page-all. CSRF em POST de sessão. Não é não autenticado. Não é apenas dashboard.

Superfície adjacente que permanece fechada

SuperfícieLaboratório
Firmware não autenticado401
Apenas dashboard403
Mirror de controle https://pkg.opnsense.orgsignature_type permanece "fingerprints"
Travessia de nome de pluginfilter_pkgname
Busca de changelogainda opnsense-verify
user-config-readonly em save()throwReadOnly()
Mirrors HTTP padrão sem ignorar verificaçãoMITM de transporte; fingerprints ainda exigidos
Firmware XMLRPCapenas strings de versão

Sem não autenticado. Sem apenas dashboard. Changelog ainda assinado.

Laboratório

cd lab
./run.sh

Loopback 127.0.0.1:18860. Projeto Compose opnsense-firmware-mirror-sed. Testemunha OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS. Última linha:

SUCCESS opnsense-firmware-mirror-sed sanitize-keeps-pipe=yes signature_type=none fingerprints-control=yes OPNSENSE-FIRMWARE-MIRROR-SED-WITNESS

Lançador root: python3 opnsense-firmware-mirror-sed-Abraxas-Labs.py.

Formato do mirror de ataque usado no laboratório (apenas testemunha, sem pkg não assinado):

https://example.invalid/|;/signature_type/s/"fingerprints"/"none"/;#

A correção

Rejeitar um mirror personalizado que não seja uma URL. Remover metacaracteres de sed (|, ;, #, ") antes de opnsense-update -m / -n, ou passar a URL como arquivo para que o sed nunca a veja como texto de programa. Manter signature_type: "fingerprints" a menos que um controle separado e auditado desative a verificação. Não permitir que o Firmware set reescreva fingerprints para "none".

Referências

  • github.com/opnsense/core a842fe48c21288d11a422cb944678e8eb308becf
  • FirmwareController.php setAction FILTER_SANITIZE_URL
  • scripts/firmware/repos/OPNsense.php opnsense-update -sd -m
  • OPNsense.conf.shadow.in padrão signature_type: "fingerprints"
  • Sink fora do pin: opnsense-update mod_mirrorurl (s\|\| na linha url:)
  • CWE-74 / CWE-347
Baixar ferramenta