From ab92e7d27818ab17a9f53519d1e7c11cfdfe7823 Mon Sep 17 00:00:00 2001 From: c4ch3c4d3 <23181631+c4ch3c4d3@users.noreply.github.com> Date: Mon, 24 Aug 2026 09:12:55 -0600 Subject: [PATCH] feat(webui,evilportal): move Evil Portal tab under PineAP, live-verified on Pager --- payload/user/remote_access/pager-webui/www/js/app.js | 3 +-- .../user/remote_access/pager-webui/www/js/views.js | 11 ++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/payload/user/remote_access/pager-webui/www/js/app.js b/payload/user/remote_access/pager-webui/www/js/app.js index 15869ad..ac3a143 100644 --- a/payload/user/remote_access/pager-webui/www/js/app.js +++ b/payload/user/remote_access/pager-webui/www/js/app.js @@ -31,7 +31,6 @@ const App = (() => { { key: 'dashboard', label: 'Dashboard', hash: '#/dashboard', icon: 'dashboard' }, { key: 'pineap', label: 'PineAP', hash: '#/pineap', icon: 'wifi' }, { key: 'recon', label: 'Recon', hash: '#/recon', icon: 'recon' }, - { key: 'evilportal', label: 'Evil Portal', hash: '#/evilportal', icon: 'portal' }, { key: 'logging', label: 'Logging', hash: '#/logging', icon: 'logging' }, { key: 'modules', label: 'Payloads', hash: '#/modules', icon: 'modules' }, { key: 'harness', label: 'Harness', hash: '#/harness', icon: 'robot' }, @@ -421,7 +420,7 @@ const App = (() => { '#/recon': 'recon', '#/recon/reports': 'recon_reports', '#/recon/handshakes': 'recon_handshakes', - '#/evilportal': 'evilportal', + '#/pineap/evilportal': 'pineap_evilportal', '#/logging': 'logging', '#/logging/system': 'logging_system', '#/modules': 'modules', diff --git a/payload/user/remote_access/pager-webui/www/js/views.js b/payload/user/remote_access/pager-webui/www/js/views.js index 0e54f10..ef8137b 100644 --- a/payload/user/remote_access/pager-webui/www/js/views.js +++ b/payload/user/remote_access/pager-webui/www/js/views.js @@ -382,6 +382,7 @@ const PINEAP_TABS = [ { label: 'OpenAP', hash: '#/pineap/open' }, { label: 'Evil WPA', hash: '#/pineap/evilwpa' }, { label: 'Evil Enterprise', hash: '#/pineap/enterprise' }, + { label: 'Evil Portal', hash: '#/pineap/evilportal' }, { label: 'Impersonation', hash: '#/pineap/impersonation' }, { label: 'Clients', hash: '#/pineap/clients' }, { label: 'Filtering', hash: '#/pineap/filtering' } @@ -4127,15 +4128,15 @@ views.settings_help = (root) => { // Evil Portal — Hak5 EvilPortalNano-compatible captive portal manager. // --------------------------------------------------------------------------- -views.evilportal = (root) => { - root.appendChild(h('h1', { class: 'page-title', text: 'Evil Portal' })); - const box = h('div', { style: 'display:flex;flex-direction:column;gap:16px' }); - root.appendChild(box); +views.pineap_evilportal = (root) => { + const box = pineapShell(root, '#/pineap/evilportal'); + const portalRoot = h('div', { style: 'display:flex;flex-direction:column;gap:16px' }); + box.appendChild(portalRoot); function portalCard(title) { const card = h('div', { class: 'pineap-title-card' }); card.appendChild(h('div', { class: 'pineap-card-title' }, title)); - box.appendChild(card); + portalRoot.appendChild(card); return card; }