mirror of
https://github.com/mblanke/ThreatHunt.git
synced 2026-03-01 14:00:20 -05:00
Added functionality
added securitytools functions
This commit is contained in:
BIN
backend/__pycache__/app.cpython-313.pyc
Normal file
BIN
backend/__pycache__/app.cpython-313.pyc
Normal file
Binary file not shown.
452
backend/lists/security-tools.md
Normal file
452
backend/lists/security-tools.md
Normal file
@@ -0,0 +1,452 @@
|
|||||||
|
Anti-Virus (AV):
|
||||||
|
360rp.exe
|
||||||
|
360sd.exe
|
||||||
|
360tray.exe
|
||||||
|
a2guard.exe
|
||||||
|
a2service.exe
|
||||||
|
a2start.exe
|
||||||
|
agent.exe
|
||||||
|
amp.exe
|
||||||
|
ashServ.exe
|
||||||
|
aswidsagent.exe
|
||||||
|
avastsvc.exe
|
||||||
|
avastui.exe
|
||||||
|
avcenter.exe
|
||||||
|
avengine.exe
|
||||||
|
avgsrmaa.exe
|
||||||
|
avgsvc.exe
|
||||||
|
avguard.exe
|
||||||
|
avgui.exe
|
||||||
|
AVKService.exe
|
||||||
|
AVKTray.exe
|
||||||
|
AVKWCtl.exe
|
||||||
|
avp.exe
|
||||||
|
bdservicehost.exe
|
||||||
|
beats.exe
|
||||||
|
BgMain.exe
|
||||||
|
BkavService.exe
|
||||||
|
BkavUI.exe
|
||||||
|
BullGuard.exe
|
||||||
|
CbDefense.exe
|
||||||
|
cb.exe
|
||||||
|
ccsvchst.exe
|
||||||
|
cis.exe
|
||||||
|
clamscan.exe
|
||||||
|
clamtray.exe
|
||||||
|
cmdagent.exe
|
||||||
|
coreServiceShell.exe
|
||||||
|
cpda.exe
|
||||||
|
CSFalconContainer.exe
|
||||||
|
CSFalconService.exe
|
||||||
|
CylanceSvc.exe
|
||||||
|
CylanceUI.exe
|
||||||
|
DeepInstinctService.exe
|
||||||
|
DeepInstinctTray.exe
|
||||||
|
drweb32.exe
|
||||||
|
egui.exe
|
||||||
|
ekrn.exe
|
||||||
|
elastic-agent.exe
|
||||||
|
FortiEDRCollector.exe
|
||||||
|
FortiEDRDaemon.exe
|
||||||
|
freshclam.exe
|
||||||
|
fsav32.exe
|
||||||
|
fshoster32.exe
|
||||||
|
fsorsp.exe
|
||||||
|
HeimdalAgent.exe
|
||||||
|
HeimdalThorAgent.exe
|
||||||
|
iptray.exe
|
||||||
|
kavsvc.exe
|
||||||
|
masvc.exe
|
||||||
|
mbam.exe
|
||||||
|
mbamservice.exe
|
||||||
|
mbamtray.exe
|
||||||
|
mcshield.exe
|
||||||
|
mfemms.exe
|
||||||
|
mfetp.exe
|
||||||
|
MsMpEng.exe
|
||||||
|
nanoav.exe
|
||||||
|
nanoavtray.exe
|
||||||
|
NisSrv.exe
|
||||||
|
nortonsecurity.exe
|
||||||
|
ns.exe
|
||||||
|
NTRTScan.exe
|
||||||
|
openav.exe
|
||||||
|
pavsrvx86.exe
|
||||||
|
psanhost.exe
|
||||||
|
Rav.exe
|
||||||
|
RavMonD.exe
|
||||||
|
repux.exe
|
||||||
|
sched.exe
|
||||||
|
seccenter.exe
|
||||||
|
SentinelAgent.exe
|
||||||
|
SentinelStaticEngine.exe
|
||||||
|
sfc.exe
|
||||||
|
sophoscleanservice.exe
|
||||||
|
SophosFS.exe
|
||||||
|
sophosfs.exe
|
||||||
|
sophossps.exe
|
||||||
|
SophosUI.exe
|
||||||
|
sophosui.exe
|
||||||
|
spideragent.exe
|
||||||
|
spidernt.exe
|
||||||
|
TmCCSF.exe
|
||||||
|
tpas.exe
|
||||||
|
tpasvc.exe
|
||||||
|
trac.exe
|
||||||
|
V3Main.exe
|
||||||
|
V3Svc.exe
|
||||||
|
vba32ldr.exe
|
||||||
|
vba32utl.exe
|
||||||
|
vsmon.exe
|
||||||
|
vsserv.exe
|
||||||
|
wrsa.exe
|
||||||
|
xagt.exe
|
||||||
|
zatray.exe
|
||||||
|
MsMpEng.exe
|
||||||
|
MpCmdRun.exe
|
||||||
|
NisSrv.exe
|
||||||
|
AvastUI.exe
|
||||||
|
AvastSvc.exe
|
||||||
|
aswEngSrv.exe
|
||||||
|
aswidsagent.exe
|
||||||
|
avgui.exe
|
||||||
|
avgsrvx.exe
|
||||||
|
avgwdsvcx.exe
|
||||||
|
avp.exe
|
||||||
|
avpsus.exe
|
||||||
|
bdagent.exe
|
||||||
|
vsserv.exe
|
||||||
|
updatesrv.exe
|
||||||
|
ns.exe
|
||||||
|
nortonsecurity.exe
|
||||||
|
ccsvchst.exe
|
||||||
|
nis.exe
|
||||||
|
mcshield.exe
|
||||||
|
masvc.exe
|
||||||
|
mfemms.exe
|
||||||
|
egui.exe
|
||||||
|
ekrn.exe
|
||||||
|
SophosUI.exe
|
||||||
|
SophosScan.exe
|
||||||
|
SavService.exe
|
||||||
|
UfSeAgnt.exe
|
||||||
|
TmListen.exe
|
||||||
|
NTRtScan.exe
|
||||||
|
avcenter.exe
|
||||||
|
avgnt.exe
|
||||||
|
avguard.exe
|
||||||
|
PSANHost.exe
|
||||||
|
PSUAService.exe
|
||||||
|
mbam.exe
|
||||||
|
mbamservice.exe
|
||||||
|
cfp.exe
|
||||||
|
cmdagent.exe
|
||||||
|
MsMpEng.exe
|
||||||
|
MpCmdRun.exe
|
||||||
|
MpUXSrv.exe
|
||||||
|
NisSrv.exe
|
||||||
|
SecurityHealthService.exe
|
||||||
|
SecurityHealthSystray.exe
|
||||||
|
AvastUI.exe
|
||||||
|
AvastSvc.exe
|
||||||
|
aswEngSrv.exe
|
||||||
|
aswidsagent.exe
|
||||||
|
avgui.exe
|
||||||
|
avgsrvx.exe
|
||||||
|
avgwdsvcx.exe
|
||||||
|
avp.exe
|
||||||
|
avpsus.exe
|
||||||
|
kavtray.exe
|
||||||
|
klnagent.exe
|
||||||
|
bdagent.exe
|
||||||
|
bdservicehost.exe
|
||||||
|
bdlaunch.exe
|
||||||
|
vsserv.exe
|
||||||
|
updatesrv.exe
|
||||||
|
ns.exe
|
||||||
|
nortonsecurity.exe
|
||||||
|
ccsvchst.exe
|
||||||
|
nis.exe
|
||||||
|
symerr.exe
|
||||||
|
symlcsvc.exe
|
||||||
|
mcshield.exe
|
||||||
|
mcagent.exe
|
||||||
|
masvc.exe
|
||||||
|
mfemms.exe
|
||||||
|
mcupdate.exe
|
||||||
|
mfevtps.exe
|
||||||
|
egui.exe
|
||||||
|
eguiProxy.exe
|
||||||
|
ekrn.exe
|
||||||
|
SophosUI.exe
|
||||||
|
SophosScan.exe
|
||||||
|
SavService.exe
|
||||||
|
ALMon.exe
|
||||||
|
sophossps.exe
|
||||||
|
UfSeAgnt.exe
|
||||||
|
TmListen.exe
|
||||||
|
NTRtScan.exe
|
||||||
|
PccNTMon.exe
|
||||||
|
avcenter.exe
|
||||||
|
avgnt.exe
|
||||||
|
avguard.exe
|
||||||
|
sched.exe
|
||||||
|
avscan.exe
|
||||||
|
PSANHost.exe
|
||||||
|
PSUAService.exe
|
||||||
|
PandaSecurityTb.exe
|
||||||
|
mbam.exe
|
||||||
|
mbamtray.exe
|
||||||
|
mbamservice.exe
|
||||||
|
MBAMService.exe
|
||||||
|
cfp.exe
|
||||||
|
cmdagent.exe
|
||||||
|
cis.exe
|
||||||
|
cavwp.exe
|
||||||
|
fshoster32.exe
|
||||||
|
fsav32.exe
|
||||||
|
fsgk32.exe
|
||||||
|
WRSA.exe
|
||||||
|
zlclient.exe
|
||||||
|
vsmon.exe
|
||||||
|
CSFalconService.exe
|
||||||
|
CSFalconContainer.exe
|
||||||
|
SentinelAgent.exe
|
||||||
|
CbDefense.exe
|
||||||
|
klnagent.exe
|
||||||
|
klnagchk.exe
|
||||||
|
klnagntf.exe
|
||||||
|
klnagwds.exe
|
||||||
|
klcsldcl.exe
|
||||||
|
klcsngtgui.exe
|
||||||
|
klcspxy.exe
|
||||||
|
klshwmsg.exe
|
||||||
|
kldumper.exe
|
||||||
|
klmover.exe
|
||||||
|
klwd.exe
|
||||||
|
ksnproxy.exe
|
||||||
|
klrirbtagt.exe
|
||||||
|
avpdtagt.dll
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
EndPoint Detection Response (EDR):
|
||||||
|
Check Point
|
||||||
|
CrowdStrike Falcon
|
||||||
|
IBM/HCL Notes Agent
|
||||||
|
McAfee Agent
|
||||||
|
Microsoft Defender
|
||||||
|
|
||||||
|
|
||||||
|
Virtual Private Networks (VPN):
|
||||||
|
Adguardvpn.exe
|
||||||
|
airvpn.exe
|
||||||
|
amnezia.exe
|
||||||
|
Astrillvpn.exe
|
||||||
|
AtlasVPN.exe
|
||||||
|
AtlasVPNSetup.exe
|
||||||
|
AvastSecureLine.exe
|
||||||
|
azirevpn.exe
|
||||||
|
bdvpnapp.exe
|
||||||
|
beetvpn.exe
|
||||||
|
Betternet.exe
|
||||||
|
betternet.exe
|
||||||
|
BetternetForWindows.exe
|
||||||
|
bitdefendervpn.exe
|
||||||
|
cactusvpn.exe
|
||||||
|
celovpn.exe
|
||||||
|
clearvpn.exe
|
||||||
|
cryptostrom.exe
|
||||||
|
CyberGhost.exe
|
||||||
|
cyberghost.exe
|
||||||
|
cyberghostvpn.exe
|
||||||
|
cyberghostvpnsetup.exe
|
||||||
|
dewvpn.exe
|
||||||
|
encryptme.exe
|
||||||
|
ExpressVPN.exe
|
||||||
|
expressvpn.exe
|
||||||
|
expressvpn-ui.exe
|
||||||
|
f5fpc.exe
|
||||||
|
f5fpclientW.exe
|
||||||
|
fastestvpn.exe
|
||||||
|
fastestvpn.exe
|
||||||
|
FortiClient.exe
|
||||||
|
freedome.exe
|
||||||
|
fsecurefreedomevpn.exe
|
||||||
|
goosevpn.exe
|
||||||
|
hideme.exe
|
||||||
|
hideme.exe
|
||||||
|
hide.me-setup.exe
|
||||||
|
hide.me VPN.exe
|
||||||
|
hidemyass.exe
|
||||||
|
hma-vpn.exe
|
||||||
|
HMA-VPN-Setup.exe
|
||||||
|
HotspotShield.exe
|
||||||
|
hotspotshield.exe
|
||||||
|
HSS-Installer.exe
|
||||||
|
hsswd.exe
|
||||||
|
ipsec.exe
|
||||||
|
ipvanish.exe
|
||||||
|
ipvanish.exe
|
||||||
|
iTopVPN.exe
|
||||||
|
ivacy.exe
|
||||||
|
ivacy.exe
|
||||||
|
IvacySetup.exe
|
||||||
|
IvacyVPN.exe
|
||||||
|
ivpn.exe
|
||||||
|
kscvpn.exe
|
||||||
|
letsvpn.exe
|
||||||
|
limevpn.exe
|
||||||
|
maskvpn.exe
|
||||||
|
mullvad.exe
|
||||||
|
musclevpn.exe
|
||||||
|
nordlayer.exe
|
||||||
|
NordVPN.exe
|
||||||
|
nordvpn.exe
|
||||||
|
NordVPNSetup.exe
|
||||||
|
nortonsecurevpn.exe
|
||||||
|
nortonsecurity.exe
|
||||||
|
openconnect.exe
|
||||||
|
OPenvpn.exe
|
||||||
|
ovpn.exe
|
||||||
|
paladinvpn.exe
|
||||||
|
PanGPA.exe
|
||||||
|
PanGPS.exe
|
||||||
|
perfectprivacy.exe
|
||||||
|
phantomvpn.exe
|
||||||
|
phantomvpn.exe
|
||||||
|
pia-client.exe
|
||||||
|
pia-client.exe
|
||||||
|
pia-installer.exe
|
||||||
|
pritunl.exe
|
||||||
|
privadovpn.exe
|
||||||
|
privateinternetaccess.exe
|
||||||
|
ProtonVPN.exe
|
||||||
|
protonvpn.exe
|
||||||
|
protonvpn.exe
|
||||||
|
ProtonVPN_setup.exe
|
||||||
|
proxygate.exe
|
||||||
|
PulseSecure.exe
|
||||||
|
PureVPN.exe
|
||||||
|
purevpn.exe
|
||||||
|
PureVPN_Windows_Setup.exe
|
||||||
|
safeconnect.exe
|
||||||
|
safervpn.exe
|
||||||
|
shieldvpn.exe
|
||||||
|
shinevpn.exe
|
||||||
|
strongswan.exe
|
||||||
|
StrongVPN.exe
|
||||||
|
strongvpn.exe
|
||||||
|
strongvpn.exe
|
||||||
|
StrongVPN-Windows.exe
|
||||||
|
Surfshark.exe
|
||||||
|
surfshark.exe
|
||||||
|
surfshark.exe
|
||||||
|
SurfsharkSetup.exe
|
||||||
|
swg.exe
|
||||||
|
tailscaled.exe
|
||||||
|
torguard.exe
|
||||||
|
TracSrvWrapper.exe
|
||||||
|
TunnelBear.exe
|
||||||
|
tunnelbear.exe
|
||||||
|
TunnelBear-Installer.exe
|
||||||
|
turbovpn.exe
|
||||||
|
urban-vpn.exe
|
||||||
|
veepn.exe
|
||||||
|
virtualshieldvpn.exe
|
||||||
|
vpnac.exe
|
||||||
|
vpnarea.exe
|
||||||
|
vpnclient.exe
|
||||||
|
vpnclient_x64.exe
|
||||||
|
vpncli.exe
|
||||||
|
vpn.exe
|
||||||
|
vpnhub.exe
|
||||||
|
vpnsecure.exe
|
||||||
|
vpnserver.exe
|
||||||
|
vpnserver_x64.exe
|
||||||
|
vpnui.exe
|
||||||
|
vpn-unlimited.exe
|
||||||
|
vpnunlimited.exe
|
||||||
|
vpn-unlimited-setup.exe
|
||||||
|
vtund
|
||||||
|
VyprVPN.exe
|
||||||
|
vyprvpn.exe
|
||||||
|
vyprvpn.exe
|
||||||
|
VyprVPN-Installer.exe
|
||||||
|
Windscribe.exe
|
||||||
|
windscribe.exe
|
||||||
|
windscribe.exe
|
||||||
|
WindscribeSetup.exe
|
||||||
|
wiresock-client.exe
|
||||||
|
zenmate.exe
|
||||||
|
zenmatevpn.exe
|
||||||
|
ZoogVPN.exe
|
||||||
|
zoogvpn.exe
|
||||||
|
Vpnui.exe
|
||||||
|
vpn.exe
|
||||||
|
vpn
|
||||||
|
nacvpn.exe
|
||||||
|
termius.exe
|
||||||
|
cudavpn_ndis62_x64.sys
|
||||||
|
cudavpn_ndis64_x64.sys
|
||||||
|
cudavpn_ndis65_x64.sys
|
||||||
|
cudavpn_ndis68_arm64.sys
|
||||||
|
cudavpn.sys
|
||||||
|
brave_vpn_helper.exe
|
||||||
|
brave_vpn_wireguard_service.exe
|
||||||
|
anyconnect-win-4.9.04043-core-vpn-webdeploy-k9.exe
|
||||||
|
nacvpn.exe
|
||||||
|
vpnagent.exe
|
||||||
|
vpncli.exe
|
||||||
|
vpndownloader.exe
|
||||||
|
vpnmgmttun.exe
|
||||||
|
vpnui.exe
|
||||||
|
vpnva64-6.sys
|
||||||
|
com.docker.vpnkit.exe
|
||||||
|
vpnkit-bridge.exe
|
||||||
|
vpnkit.exe
|
||||||
|
covpnv64.sys
|
||||||
|
f5fpc.exe
|
||||||
|
f5fpclientW.exe
|
||||||
|
f5vpn_setup (1).exe
|
||||||
|
f5vpn_setup.exe
|
||||||
|
f5vpn.exe
|
||||||
|
FortiClient.exe
|
||||||
|
FortiSSLVPNdaemon.exe
|
||||||
|
FortiSslVpnPluginApp.exe
|
||||||
|
FortiSSLVPNsys.exe
|
||||||
|
FortiVPNSt.exe
|
||||||
|
sslvpn_inst_ZZDAT_Aija_Svede@vc.lm.gov.lv.exe
|
||||||
|
sslvpn_inst_ZZDAT_Ilmars_Urbans@vc.lm.gov.lv.exe
|
||||||
|
sslvpn_inst_ZZDAT_Valda_Branta@vc.lm.gov.lv.exe
|
||||||
|
agilevpn.sys
|
||||||
|
ipsec.exe
|
||||||
|
agent_ovpnconnect.exe
|
||||||
|
openvpn-gui.exe
|
||||||
|
openvpn.exe
|
||||||
|
OpenVPNConnect.exe
|
||||||
|
openvpnserv.exe
|
||||||
|
openvpnserv2.exe
|
||||||
|
ovpn-dco.sys
|
||||||
|
ovpnconnector.exe
|
||||||
|
ovpnhelper_service.exe
|
||||||
|
tap_ovpnconnect.sys
|
||||||
|
ConnectVPN.exe
|
||||||
|
PanGPA.exe
|
||||||
|
PanGPS.exe
|
||||||
|
phionvpn_ndis62_x64.sys
|
||||||
|
phionvpn_ndis62_x86.sys
|
||||||
|
phionvpn_ndis63_x64.sys
|
||||||
|
phionvpn_ndis63_x86.sys
|
||||||
|
phionvpn_ndis64_x64.sys
|
||||||
|
phionvpn_ndis64_x86.sys
|
||||||
|
phionvpn_ndis65_x64.sys
|
||||||
|
phionvpn_ndis65_x86.sys
|
||||||
|
phionvpn.sys
|
||||||
|
scvpn.exe
|
||||||
|
tailscaled.exe
|
||||||
|
tor
|
||||||
52
backend/scripts/parse_tools_usage.py
Normal file
52
backend/scripts/parse_tools_usage.py
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
import csv
|
||||||
|
import re
|
||||||
|
import os
|
||||||
|
from glob import glob
|
||||||
|
|
||||||
|
# 1. Extract tool/process names from the Markdown file
|
||||||
|
def extract_tools(md_path):
|
||||||
|
tools = set()
|
||||||
|
with open(md_path, encoding='utf-8') as f:
|
||||||
|
for line in f:
|
||||||
|
line = line.strip()
|
||||||
|
# Skip headers and empty lines
|
||||||
|
if not line or line.endswith(':') or line.startswith('<!--'):
|
||||||
|
continue
|
||||||
|
# Only keep lines that look like process/tool names
|
||||||
|
if re.match(r'^[\w\-.@]+(\.exe|\.dll|\.sys)?$', line, re.IGNORECASE):
|
||||||
|
tools.add(line.lower())
|
||||||
|
return tools
|
||||||
|
|
||||||
|
# 2. Parse the CSV file and build mapping
|
||||||
|
def parse_csv(csv_path, tools):
|
||||||
|
tool_hosts = {}
|
||||||
|
with open(csv_path, newline='', encoding='utf-8') as csvfile:
|
||||||
|
reader = csv.DictReader(csvfile)
|
||||||
|
for row in reader:
|
||||||
|
host = row.get('host') or row.get('hostname')
|
||||||
|
proc = row.get('process') or row.get('process_name') or row.get('image')
|
||||||
|
if not host or not proc:
|
||||||
|
continue
|
||||||
|
proc = proc.lower()
|
||||||
|
if proc in tools:
|
||||||
|
tool_hosts.setdefault(proc, set()).add(host)
|
||||||
|
return tool_hosts
|
||||||
|
|
||||||
|
# 3. Output the breakdown
|
||||||
|
def main():
|
||||||
|
md_path = r'd:\Dev\ThreatHunt\backend\lists\security-tools.md'
|
||||||
|
upload_dir = r'd:\Dev\ThreatHunt\uploaded'
|
||||||
|
tools = extract_tools(md_path)
|
||||||
|
csv_files = glob(os.path.join(upload_dir, '*.csv'))
|
||||||
|
|
||||||
|
for csv_path in csv_files:
|
||||||
|
print(f"\nResults for: {os.path.basename(csv_path)}")
|
||||||
|
tool_hosts = parse_csv(csv_path, tools)
|
||||||
|
if not tool_hosts:
|
||||||
|
print(" No known tools found.")
|
||||||
|
continue
|
||||||
|
for tool, hosts in sorted(tool_hosts.items()):
|
||||||
|
print(f" {tool}: {', '.join(sorted(hosts))}")
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
912
frontend/package-lock.json
generated
912
frontend/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -14,9 +14,13 @@
|
|||||||
"@mui/material": "^6.4.8",
|
"@mui/material": "^6.4.8",
|
||||||
"@tailwindcss/vite": "^4.1.7",
|
"@tailwindcss/vite": "^4.1.7",
|
||||||
"axios": "^1.10.0",
|
"axios": "^1.10.0",
|
||||||
|
"csv-parser": "^3.2.0",
|
||||||
|
"express": "^5.1.0",
|
||||||
"lucide-react": "^0.515.0",
|
"lucide-react": "^0.515.0",
|
||||||
|
"multer": "^2.0.1",
|
||||||
"react": "^18.0.0",
|
"react": "^18.0.0",
|
||||||
"react-dom": "^18.0.0",
|
"react-dom": "^18.0.0",
|
||||||
|
"react-dropzone": "^14.3.8",
|
||||||
"react-router": "^7.6.0"
|
"react-router": "^7.6.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@@ -27,4 +31,4 @@
|
|||||||
"tailwindcss": "^4.1.10",
|
"tailwindcss": "^4.1.10",
|
||||||
"vite": "^6.3.5"
|
"vite": "^6.3.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
import React, { Suspense, useMemo } from "react";
|
import React, { Suspense, useMemo, lazy } from "react";
|
||||||
import { createTheme, ThemeProvider } from "@mui/material/styles";
|
import { createTheme, ThemeProvider } from "@mui/material/styles";
|
||||||
import { CssBaseline } from "@mui/material";
|
import { CssBaseline } from "@mui/material";
|
||||||
import { BrowserRouter, Routes, Route } from "react-router";
|
import { BrowserRouter, Routes, Route } from "react-router";
|
||||||
|
|
||||||
import Sidebar from "./components/Sidebar";
|
import Sidebar from "./components/Sidebar";
|
||||||
import Baseline from "./components/Baseline";
|
const Baseline = lazy(() => import("./components/Baseline"));
|
||||||
|
const SecurityTools = lazy(() => import("./components/securitytools"));
|
||||||
|
|
||||||
function App() {
|
function App() {
|
||||||
|
|
||||||
@@ -28,6 +29,7 @@ function App() {
|
|||||||
<Suspense fallback={<div>Loading...</div>}>
|
<Suspense fallback={<div>Loading...</div>}>
|
||||||
<Routes>
|
<Routes>
|
||||||
<Route path="/baseline" element={<Baseline />} />
|
<Route path="/baseline" element={<Baseline />} />
|
||||||
|
<Route path="/securitytools" element={<SecurityTools />} />
|
||||||
</Routes>
|
</Routes>
|
||||||
</Suspense>
|
</Suspense>
|
||||||
</BrowserRouter>
|
</BrowserRouter>
|
||||||
|
|||||||
7
frontend/src/components/Applications.js
Normal file
7
frontend/src/components/Applications.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const Applications = () => {
|
||||||
|
return <div>Applications Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Applications;
|
||||||
@@ -33,10 +33,10 @@ const Baseline = () => {
|
|||||||
{/* Summary Cards */}
|
{/* Summary Cards */}
|
||||||
<div className="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
|
<div className="grid grid-cols-2 md:grid-cols-4 gap-4 mb-6">
|
||||||
{[
|
{[
|
||||||
{ label: "Windows", color: "bg-blue-600", pattern: "windows" },
|
{ label: "Windows", color: "bg-blue-700", pattern: "windows" },
|
||||||
{ label: "Linux", color: "bg-green-600", pattern: "ubuntu" },
|
{ label: "Linux", color: "bg-green-700", pattern: "ubuntu" },
|
||||||
{ label: "Servers", color: "bg-red-600", pattern: "server" },
|
{ label: "Servers", color: "bg-red-800", pattern: "server" },
|
||||||
{ label: "Workstations", color: "bg-yellow-500", pattern: "workstation" },
|
{ label: "Workstations", color: "bg-yellow-400", pattern: "workstation" },
|
||||||
].map(({ label, color, pattern }) => (
|
].map(({ label, color, pattern }) => (
|
||||||
<div
|
<div
|
||||||
key={label}
|
key={label}
|
||||||
|
|||||||
7
frontend/src/components/CSVProcessing.js
Normal file
7
frontend/src/components/CSVProcessing.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const CSVProcessing = () => {
|
||||||
|
return <div>CSV Processing Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default CSVProcessing;
|
||||||
7
frontend/src/components/HomePage.js
Normal file
7
frontend/src/components/HomePage.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const HomePage = () => {
|
||||||
|
return <div>Home Page Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default HomePage;
|
||||||
7
frontend/src/components/Networking.js
Normal file
7
frontend/src/components/Networking.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const Networking = () => {
|
||||||
|
return <div>Networking Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default Networking;
|
||||||
7
frontend/src/components/SettingsConfig.js
Normal file
7
frontend/src/components/SettingsConfig.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const SettingsConfig = () => {
|
||||||
|
return <div>Settings & Config Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default SettingsConfig;
|
||||||
@@ -4,6 +4,9 @@ import {
|
|||||||
ChevronDown, ChevronRight, Folder
|
ChevronDown, ChevronRight, Folder
|
||||||
} from 'lucide-react';
|
} from 'lucide-react';
|
||||||
import AddIcon from '@mui/icons-material/Add';
|
import AddIcon from '@mui/icons-material/Add';
|
||||||
|
import BugReportIcon from '@mui/icons-material/BugReport';
|
||||||
|
import EngineeringIcon from '@mui/icons-material/Engineering';
|
||||||
|
|
||||||
|
|
||||||
const SidebarItem = ({ icon: Icon, label, children }) => {
|
const SidebarItem = ({ icon: Icon, label, children }) => {
|
||||||
const [open, setOpen] = useState(false);
|
const [open, setOpen] = useState(false);
|
||||||
@@ -34,7 +37,7 @@ const SidebarItem = ({ icon: Icon, label, children }) => {
|
|||||||
|
|
||||||
const Sidebar = () => (
|
const Sidebar = () => (
|
||||||
<div className="h-screen w-64 shadow-lg p-4 flex flex-col space-y-2">
|
<div className="h-screen w-64 shadow-lg p-4 flex flex-col space-y-2">
|
||||||
<h2 className="text-xl font-bold text-white mb-4">Velo Dashboard</h2>
|
<h2 className="text-xl font-bold text-white mb-4">Threat Hunt Dashboard</h2>
|
||||||
<SidebarItem icon={ShieldCheck} label="HomePage" />
|
<SidebarItem icon={ShieldCheck} label="HomePage" />
|
||||||
<SidebarItem icon={Server} label="Baseline" />
|
<SidebarItem icon={Server} label="Baseline" />
|
||||||
<SidebarItem icon={Bug} label="Networking" />
|
<SidebarItem icon={Bug} label="Networking" />
|
||||||
@@ -45,8 +48,8 @@ const Sidebar = () => (
|
|||||||
<div>Endpoint Detection & Response</div>
|
<div>Endpoint Detection & Response</div>
|
||||||
<div>Virtual Private Networks</div>
|
<div>Virtual Private Networks</div>
|
||||||
</SidebarItem>
|
</SidebarItem>
|
||||||
<SidebarItem icon={Globe} label="Virus Totals" />
|
<SidebarItem icon={BugReportIcon} label="Virus Totals" />
|
||||||
<SidebarItem icon={Globe} label="Configuration & Settings" />
|
<SidebarItem icon={EngineeringIcon} label="Settings & Config" />
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
7
frontend/src/components/VirusTotal.js
Normal file
7
frontend/src/components/VirusTotal.js
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
import React from 'react';
|
||||||
|
|
||||||
|
const VirusTotal = () => {
|
||||||
|
return <div>Virus Total Placeholder</div>;
|
||||||
|
};
|
||||||
|
|
||||||
|
export default VirusTotal;
|
||||||
64
frontend/src/components/securitytools.jsx
Normal file
64
frontend/src/components/securitytools.jsx
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
import React, { useState, useCallback } from "react";
|
||||||
|
import { useDropzone } from "react-dropzone";
|
||||||
|
|
||||||
|
const SecurityTools = () => {
|
||||||
|
const [uploadStatus, setUploadStatus] = useState(null);
|
||||||
|
const [analysisResult, setAnalysisResult] = useState(null);
|
||||||
|
|
||||||
|
const onDrop = useCallback(async (acceptedFiles) => {
|
||||||
|
const formData = new FormData();
|
||||||
|
acceptedFiles.forEach((file) => formData.append("file", file));
|
||||||
|
|
||||||
|
setUploadStatus("Uploading...");
|
||||||
|
try {
|
||||||
|
const res = await fetch("/upload", {
|
||||||
|
method: "POST",
|
||||||
|
body: formData,
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!res.ok) throw new Error("Upload failed");
|
||||||
|
|
||||||
|
const data = await res.json();
|
||||||
|
setAnalysisResult(data);
|
||||||
|
setUploadStatus("Upload and analysis complete");
|
||||||
|
} catch (err) {
|
||||||
|
console.error(err);
|
||||||
|
setUploadStatus("Upload failed");
|
||||||
|
}
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
const { getRootProps, getInputProps, isDragActive } = useDropzone({ onDrop });
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="p-6 text-white">
|
||||||
|
<h1 className="text-3xl font-bold mb-6">Security Tools: File Analysis</h1>
|
||||||
|
|
||||||
|
<div
|
||||||
|
{...getRootProps()}
|
||||||
|
className={`border-dashed border-4 rounded-lg p-10 text-center transition-colors duration-300 ${
|
||||||
|
isDragActive ? "border-cyan-400 bg-zinc-800" : "border-zinc-600 bg-zinc-900"
|
||||||
|
}`}
|
||||||
|
>
|
||||||
|
<input {...getInputProps()} />
|
||||||
|
{isDragActive ? (
|
||||||
|
<p>Drop the files here...</p>
|
||||||
|
) : (
|
||||||
|
<p>Drag and drop files here, or click to browse.</p>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{uploadStatus && <p className="mt-4 text-cyan-400">{uploadStatus}</p>}
|
||||||
|
|
||||||
|
{analysisResult && (
|
||||||
|
<div className="mt-6 bg-zinc-800 p-4 rounded-lg overflow-auto">
|
||||||
|
<h2 className="text-xl font-semibold mb-2">Analysis Result:</h2>
|
||||||
|
<pre className="whitespace-pre-wrap text-sm text-zinc-300">
|
||||||
|
{JSON.stringify(analysisResult, null, 2)}
|
||||||
|
</pre>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
export default SecurityTools;
|
||||||
0
frontend/{
Normal file
0
frontend/{
Normal file
Reference in New Issue
Block a user