mirror of
https://github.com/mblanke/StrikePackageGPT.git
synced 2026-03-01 06:10:21 -05:00
- Added nmap wrapper to auto-send scan results to Dashboard - Network Map now displays hosts from terminal scans - Scan History tab shows all scans (GUI and terminal) - Load previous scans to Network Map feature - Improved OS detection from nmap output (parses OS details, smb-os-discovery) - Added determine_os_type() with OUI/MAC vendor lookup - Static network map layout (no more jumpy D3 force simulation) - Fixed docker-compose for Ollama connectivity (host.docker.internal) - Added test_services.sh for comprehensive testing
122 lines
4.3 KiB
Bash
122 lines
4.3 KiB
Bash
#!/bin/bash
|
|
# StrikePackageGPT Service Test Script
|
|
|
|
echo "=========================================="
|
|
echo " StrikePackageGPT V2.1 Test Suite"
|
|
echo "=========================================="
|
|
echo ""
|
|
|
|
# Test 1: Health Endpoints
|
|
echo "=== TEST 1: Health Endpoints ==="
|
|
echo "LLM Router:"
|
|
curl -s http://strikepackage-llm-router:8000/health | jq .
|
|
echo ""
|
|
echo "HackGPT API:"
|
|
curl -s http://strikepackage-hackgpt-api:8001/health | jq .
|
|
echo ""
|
|
echo "Kali Executor:"
|
|
curl -s http://strikepackage-kali-executor:8002/health | jq .
|
|
echo ""
|
|
|
|
# Test 2: LLM Router
|
|
echo "=== TEST 2: LLM Router ==="
|
|
echo "Providers:"
|
|
curl -s http://strikepackage-llm-router:8000/providers | jq -r 'keys[]'
|
|
echo ""
|
|
|
|
echo "Chat Test (llama3.1:latest):"
|
|
cat > /tmp/chat.json << 'EOFCHAT'
|
|
{"provider":"ollama","model":"llama3.1:latest","messages":[{"role":"user","content":"Say hello in exactly 3 words"}]}
|
|
EOFCHAT
|
|
RESPONSE=$(curl -s -X POST http://strikepackage-llm-router:8000/chat -H "Content-Type: application/json" -d @/tmp/chat.json)
|
|
echo "$RESPONSE" | jq -r '.response // .content // .message // .' | head -c 200
|
|
echo ""
|
|
echo ""
|
|
|
|
# Test 3: HackGPT API
|
|
echo "=== TEST 3: HackGPT API ==="
|
|
echo "Tools available:"
|
|
curl -s http://strikepackage-hackgpt-api:8001/tools | jq -r '.[].name' 2>/dev/null || curl -s http://strikepackage-hackgpt-api:8001/tools | head -c 300
|
|
echo ""
|
|
|
|
echo "Scans list:"
|
|
curl -s http://strikepackage-hackgpt-api:8001/scans | jq . 2>/dev/null || echo "[]"
|
|
echo ""
|
|
|
|
# Test 4: Kali Executor
|
|
echo "=== TEST 4: Kali Executor ==="
|
|
echo "Tools:"
|
|
curl -s http://strikepackage-kali-executor:8002/tools | jq -r '.tools[:5][]' 2>/dev/null || curl -s http://strikepackage-kali-executor:8002/tools | head -c 200
|
|
echo ""
|
|
|
|
echo "Execute nmap version:"
|
|
cat > /tmp/exec.json << 'EOFEXEC'
|
|
{"command":"nmap --version","timeout":30}
|
|
EOFEXEC
|
|
curl -s -X POST http://strikepackage-kali-executor:8002/execute -H "Content-Type: application/json" -d @/tmp/exec.json | jq -r '.output // .stdout // .' | head -5
|
|
echo ""
|
|
|
|
echo "Jobs:"
|
|
curl -s http://strikepackage-kali-executor:8002/jobs | jq -r 'length' 2>/dev/null || echo "0"
|
|
echo " jobs recorded"
|
|
echo ""
|
|
|
|
# Test 5: Security Scans from Kali
|
|
echo "=== TEST 5: Security Tools in Kali ==="
|
|
echo "nmap scan of llm-router:"
|
|
nmap -sT -p 8000 strikepackage-llm-router 2>&1 | grep -E "PORT|open|closed"
|
|
echo ""
|
|
|
|
echo "nikto quick test:"
|
|
nikto -h http://strikepackage-dashboard:8080 -maxtime 10s 2>&1 | tail -5
|
|
echo ""
|
|
|
|
echo "gobuster test:"
|
|
gobuster dir -u http://strikepackage-hackgpt-api:8001 -w /usr/share/dirb/wordlists/common.txt -t 5 --timeout 5s 2>&1 | grep -E "Status|Found|Finished" | head -10
|
|
echo ""
|
|
|
|
# Test 6: Dashboard APIs
|
|
echo "=== TEST 6: Dashboard APIs ==="
|
|
echo "Status:"
|
|
curl -s http://strikepackage-dashboard:8080/api/status | jq . 2>/dev/null || curl -s http://strikepackage-dashboard:8080/api/status
|
|
echo ""
|
|
|
|
echo "Processes:"
|
|
curl -s http://strikepackage-dashboard:8080/api/processes | jq -r 'length' 2>/dev/null
|
|
echo " processes"
|
|
echo ""
|
|
|
|
# Test 7: End-to-end Chat via Dashboard
|
|
echo "=== TEST 7: Dashboard Chat ==="
|
|
cat > /tmp/dashchat.json << 'EOFDASH'
|
|
{"message":"What is nmap used for? Answer in one sentence."}
|
|
EOFDASH
|
|
CHATRESP=$(curl -s -X POST http://strikepackage-dashboard:8080/api/chat -H "Content-Type: application/json" -d @/tmp/dashchat.json)
|
|
echo "$CHATRESP" | jq -r '.response // .content // .message // .' 2>/dev/null | head -c 300
|
|
echo ""
|
|
echo ""
|
|
|
|
# Test 8: Command Execution via Kali Executor
|
|
echo "=== TEST 8: Command Execution ==="
|
|
cat > /tmp/scanexec.json << 'EOFSCAN'
|
|
{"command":"nmap -sT -p 80,443,8000,8080 strikepackage-dashboard","timeout":60}
|
|
EOFSCAN
|
|
echo "Running: nmap scan of dashboard..."
|
|
EXECRESP=$(curl -s -X POST http://strikepackage-kali-executor:8002/execute -H "Content-Type: application/json" -d @/tmp/scanexec.json)
|
|
echo "$EXECRESP" | jq -r '.output // .stdout // .' 2>/dev/null | grep -E "PORT|open|closed|filtered" | head -10
|
|
echo ""
|
|
|
|
# Test 9: AI-Assisted Scanning
|
|
echo "=== TEST 9: AI Scan Request ==="
|
|
cat > /tmp/aiscan.json << 'EOFAI'
|
|
{"message":"Scan strikepackage-llm-router for web vulnerabilities"}
|
|
EOFAI
|
|
AIRESP=$(curl -s -X POST http://strikepackage-dashboard:8080/api/chat -H "Content-Type: application/json" -d @/tmp/aiscan.json)
|
|
echo "$AIRESP" | jq -r '.response // .content // .' 2>/dev/null | head -c 400
|
|
echo ""
|
|
echo ""
|
|
|
|
echo "=========================================="
|
|
echo " Tests Complete!"
|
|
echo "=========================================="
|