anycoder-db702622 / index.html
wethepe's picture
Upload folder using huggingface_hub
8ec74f3 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SigPloit - SS7 Security Testing Framework</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
:root {
--bg-primary: #0a0e1a;
--bg-secondary: #141925;
--bg-tertiary: #1e2433;
--accent-primary: #00ff88;
--accent-secondary: #00a8ff;
--accent-danger: #ff3366;
--accent-warning: #ffaa00;
--text-primary: #e0e6ed;
--text-secondary: #8892b0;
--border-color: #2a3441;
--success: #00d4aa;
--danger: #ff4757;
}
body {
font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
background: linear-gradient(135deg, var(--bg-primary) 0%, var(--bg-secondary) 100%);
color: var(--text-primary);
min-height: 100vh;
overflow-x: hidden;
}
/* Header */
.header {
background: rgba(20, 25, 37, 0.95);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--border-color);
padding: 1rem 2rem;
position: sticky;
top: 0;
z-index: 1000;
box-shadow: 0 2px 20px rgba(0, 0, 0, 0.3);
}
.header-content {
max-width: 1400px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.logo {
display: flex;
align-items: center;
gap: 1rem;
font-size: 1.5rem;
font-weight: bold;
color: var(--accent-primary);
}
.logo-icon {
width: 40px;
height: 40px;
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
border-radius: 8px;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: var(--bg-primary);
}
.header-links {
display: flex;
gap: 2rem;
align-items: center;
}
.header-links a {
color: var(--text-secondary);
text-decoration: none;
transition: color 0.3s;
}
.header-links a:hover {
color: var(--accent-primary);
}
.status-indicator {
display: flex;
align-items: center;
gap: 0.5rem;
padding: 0.5rem 1rem;
background: rgba(0, 255, 136, 0.1);
border: 1px solid var(--accent-primary);
border-radius: 20px;
}
.status-dot {
width: 8px;
height: 8px;
background: var(--accent-primary);
border-radius: 50%;
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.5; }
}
/* Main Layout */
.main-container {
max-width: 1400px;
margin: 2rem auto;
padding: 0 2rem;
display: grid;
grid-template-columns: 250px 1fr;
gap: 2rem;
}
/* Sidebar */
.sidebar {
background: rgba(30, 36, 51, 0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
padding: 1.5rem;
border: 1px solid var(--border-color);
height: fit-content;
position: sticky;
top: 100px;
}
.sidebar-section {
margin-bottom: 2rem;
}
.sidebar-title {
font-size: 0.85rem;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 1rem;
}
.nav-item {
display: flex;
align-items: center;
gap: 0.75rem;
padding: 0.75rem 1rem;
margin-bottom: 0.5rem;
border-radius: 8px;
cursor: pointer;
transition: all 0.3s;
color: var(--text-secondary);
}
.nav-item:hover {
background: rgba(0, 255, 136, 0.1);
color: var(--accent-primary);
transform: translateX(5px);
}
.nav-item.active {
background: rgba(0, 255, 136, 0.2);
color: var(--accent-primary);
border-left: 3px solid var(--accent-primary);
}
.nav-icon {
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
/* Content Area */
.content {
background: rgba(30, 36, 51, 0.3);
backdrop-filter: blur(10px);
border-radius: 12px;
padding: 2rem;
border: 1px solid var(--border-color);
}
.content-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 2rem;
padding-bottom: 1rem;
border-bottom: 1px solid var(--border-color);
}
.content-title {
font-size: 1.8rem;
font-weight: 600;
display: flex;
align-items: center;
gap: 1rem;
}
.badge {
padding: 0.25rem 0.75rem;
background: rgba(0, 255, 136, 0.2);
color: var(--accent-primary);
border-radius: 20px;
font-size: 0.85rem;
font-weight: 500;
}
/* Modules Grid */
.modules-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 1.5rem;
margin-bottom: 2rem;
}
.module-card {
background: rgba(20, 25, 37, 0.6);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 1.5rem;
transition: all 0.3s;
cursor: pointer;
position: relative;
overflow: hidden;
}
.module-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 2px;
background: linear-gradient(90deg, var(--accent-primary), var(--accent-secondary));
transform: translateX(-100%);
transition: transform 0.3s;
}
.module-card:hover {
transform: translateY(-5px);
box-shadow: 0 10px 30px rgba(0, 255, 136, 0.2);
}
.module-card:hover::before {
transform: translateX(0);
}
.module-icon {
width: 50px;
height: 50px;
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
margin-bottom: 1rem;
}
.module-title {
font-size: 1.2rem;
font-weight: 600;
margin-bottom: 0.5rem;
}
.module-description {
color: var(--text-secondary);
font-size: 0.9rem;
margin-bottom: 1rem;
}
.module-status {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.85rem;
}
.status-badge {
padding: 0.2rem 0.5rem;
border-radius: 4px;
font-size: 0.75rem;
font-weight: 600;
}
.status-ready {
background: rgba(0, 212, 170, 0.2);
color: var(--success);
}
.status-warning {
background: rgba(255, 170, 0, 0.2);
color: var(--accent-warning);
}
/* Terminal Section */
.terminal {
background: #0a0e1a;
border-radius: 12px;
padding: 1.5rem;
border: 1px solid var(--border-color);
font-family: 'Courier New', monospace;
margin-top: 2rem;
}
.terminal-header {
display: flex;
align-items: center;
gap: 0.5rem;
margin-bottom: 1rem;
}
.terminal-dot {
width: 12px;
height: 12px;
border-radius: 50%;
}
.terminal-dot.red { background: #ff5f56; }
.terminal-dot.yellow { background: #ffbd2e; }
.terminal-dot.green { background: #27c93f; }
.terminal-content {
color: var(--accent-primary);
font-size: 0.9rem;
line-height: 1.6;
max-height: 300px;
overflow-y: auto;
}
.terminal-line {
margin-bottom: 0.5rem;
opacity: 0;
animation: fadeIn 0.5s forwards;
}
@keyframes fadeIn {
to { opacity: 1; }
}
/* Config Panel */
.config-panel {
background: rgba(20, 25, 37, 0.6);
border-radius: 12px;
padding: 1.5rem;
border: 1px solid var(--border-color);
margin-top: 2rem;
}
.config-group {
margin-bottom: 1.5rem;
}
.config-label {
display: block;
margin-bottom: 0.5rem;
color: var(--text-secondary);
font-size: 0.9rem;
}
.config-input {
width: 100%;
padding: 0.75rem;
background: var(--bg-primary);
border: 1px solid var(--border-color);
border-radius: 8px;
color: var(--text-primary);
transition: all 0.3s;
}
.config-input:focus {
outline: none;
border-color: var(--accent-primary);
box-shadow: 0 0 0 3px rgba(0, 255, 136, 0.1);
}
/* Buttons */
.btn {
padding: 0.75rem 1.5rem;
border: none;
border-radius: 8px;
font-weight: 600;
cursor: pointer;
transition: all 0.3s;
display: inline-flex;
align-items: center;
gap: 0.5rem;
}
.btn-primary {
background: linear-gradient(135deg, var(--accent-primary), var(--accent-secondary));
color: var(--bg-primary);
}
.btn-primary:hover {
transform: translateY(-2px);
box-shadow: 0 5px 20px rgba(0, 255, 136, 0.4);
}
.btn-danger {
background: var(--accent-danger);
color: white;
}
.btn-secondary {
background: transparent;
border: 1px solid var(--border-color);
color: var(--text-primary);
}
.btn-group {
display: flex;
gap: 1rem;
margin-top: 1.5rem;
}
/* Stats Grid */
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 1rem;
margin-bottom: 2rem;
}
.stat-card {
background: rgba(20, 25, 37, 0.6);
border: 1px solid var(--border-color);
border-radius: 12px;
padding: 1.5rem;
text-align: center;
}
.stat-value {
font-size: 2rem;
font-weight: bold;
color: var(--accent-primary);
margin-bottom: 0.5rem;
}
.stat-label {
color: var(--text-secondary);
font-size: 0.9rem;
}
/* Responsive */
@media (max-width: 768px) {
.main-container {
grid-template-columns: 1fr;
}
.sidebar {
position: static;
margin-bottom: 2rem;
}
.header-content {
flex-direction: column;
gap: 1rem;
}
.modules-grid {
grid-template-columns: 1fr;
}
}
/* Footer */
.footer {
text-align: center;
padding: 2rem;
color: var(--text-secondary);
border-top: 1px solid var(--border-color);
margin-top: 3rem;
}
.footer a {
color: var(--accent-primary);
text-decoration: none;
}
</style>
</head>
<body>
<header class="header">
<div class="header-content">
<div class="logo">
<div class="logo-icon">S7</div>
<span>SigPloit</span>
</div>
<div class="header-links">
<a href="#dashboard">Dashboard</a>
<a href="#modules">Modules</a>
<a href="#targets">Targets</a>
<a href="#logs">Logs</a>
<div class="status-indicator">
<div class="status-dot"></div>
<span>Connected</span>
</div>
</div>
</div>
</header>
<main class="main-container">
<aside class="sidebar">
<div class="sidebar-section">
<div class="sidebar-title">Attack Modules</div>
<div class="nav-item active" onclick="selectModule('location')">
<span class="nav-icon">📍</span>
<span>Location Tracking</span>
</div>
<div class="nav-item" onclick="selectModule('sms')">
<span class="nav-icon">💬</span>
<span>SMS Interception</span>
</div>
<div class="nav-item" onclick="selectModule('call')">
<span class="nav-icon">📞</span>
<span>Call Interception</span>
</div>
<div class="nav-item" onclick="selectModule('dos')">
<span class="nav-icon"></span>
<span>DoS Attack</span>
</div>
<div class="nav-item" onclick="selectModule('fraud')">
<span class="nav-icon">💳</span>
<span>SMS Fraud</span>
</div>
<div class="nav-item" onclick="selectModule('ussd')">
<span class="nav-icon">🔧</span>
<span>USSD Attack</span>
</div>
</div>
<div class="sidebar-section">
<div class="sidebar-title">Configuration</div>
<div class="nav-item" onclick="selectModule('network')">
<span class="nav-icon">🌐</span>
<span>Network Settings</span>
</div>
<div class="nav-item" onclick="selectModule('security')">
<span class="nav-icon">🔒</span>
<span>Security</span>
</div>
</div>
</aside>
<div class="content">
<div class="content-header">
<h1 class="content-title">
SS7 Security Testing Framework
<span class="badge">v2.0</span>
</h1>
<div class="btn-group">
<button class="btn btn-secondary" onclick="refreshDashboard()">
<span>🔄</span> Refresh
</button>
<button class="btn btn-primary" onclick="startScan()">
<span></span> Start Scan
</button>
</div>
</div>
<div class="stats-grid">
<div class="stat-card">
<div class="stat-value" id="activeTargets">12</div>
<div class="stat-label">Active Targets</div>
</div>
<div class="stat-card">
<div class="stat-value" id="runningAttacks">3</div>
<div class="stat-label">Running Attacks</div>
</div>
<div class="stat-card">
<div class="stat-value" id="successRate">87%</div>
<div class="stat-label">Success Rate</div>
</div>
<div class="stat-card">
<div class="stat-value" id="uptime">24h</div>
<div class="stat-label">Uptime</div>
</div>
</div>
<div class="modules-grid">
<div class="module-card" onclick="openModule('location')">
<div class="module-icon">📍</div>
<h3 class="module-title">Location Tracking</h3>
<p class="module-description">Track real-time location of mobile subscribers using SS7 location services</p>
<div class="module-status">
<span class="status-badge status-ready">Ready</span>
<span>• 5 targets</span>
</div>
</div>
<div class="module-card" onclick="openModule('sms')">
<div class="module-icon">💬</div>
<h3 class="module-title">SMS Interception</h3>
<p class="module-description">Intercept and monitor SMS messages including 2FA codes</p>
<div class="module-status">
<span class="status-badge status-ready">Ready</span>
<span>• 3 targets</span>
</div>
</div>
<div class="module-card" onclick="openModule('call')">
<div class="module-icon">📞</div>
<h3 class="module-title">Call Interception</h3>
<p class="module-description">Redirect and monitor voice calls in real-time</p>
<div class="module-status">
<span class="status-badge status-warning">Warning</span>
<span>• 1 active</span>
</div>
</div>
<div class="module-card" onclick="openModule('dos')">
<div class="module-icon"></div>
<h3 class="module-title">DoS Attack</h3>
<p class="module-description">Denial of Service attack on mobile network infrastructure</p>
<div class="module-status">
<span class="status-badge status-ready">Ready</span>
<span>• 0 targets</span>
</div>
</div>
<div class="module-card" onclick="openModule('fraud')">
<div class="module-icon">💳</div>
<h3 class="module-title">SMS Fraud</h3>
<p class="module-description">Execute SMS-based fraud attacks and premium number exploitation</p>
<div class="module-status">
<span class="status-badge status-ready">Ready</span>
<span>• 2 targets</span>
</div>
</div>
<div class="module-card" onclick="openModule('ussd')">
<div class="module-icon">🔧</div>
<h3 class="module-title">USSD Attack</h3>
<p class="module-description">Execute USSD commands and manipulate mobile services</p>
<div class="module-status">
<span class="status-badge status-ready">Ready</span>
<span>• 4 targets</span>
</div>
</div>
</div>
<div class="config-panel">
<h3 style="margin-bottom: 1.5rem; color: var(--accent-primary);">Quick Configuration</h3>
<div class="config-group">
<label class="config-label">Target MSISDN</label>
<input type="text" class="config-input" id="targetMsisdn" placeholder="+1234567890">
</div>
<div class="config-group">
<label class="config-label">Global Title (GT)</label>
<input type="text" class="config-input" id="globalTitle" placeholder="1234567890">
</div>
<div class="config-group">
<label class="config-label">SS7 Point Code</label>
<input type="text" class="config-input" id="pointCode" placeholder="1-2-3">
</div>
<div class="btn-group">
<button class="btn btn-primary" onclick="executeAttack()">
<span></span> Execute Attack
</button>
<button class="btn btn-danger" onclick="stopAttack()">
<span></span> Stop All
</button>
<button class="btn btn-secondary" onclick="exportResults()">
<span>📥</span> Export Results
</button>
</div>
</div>
<div class="terminal">
<div class="terminal-header">
<div class="terminal-dot red"></div>
<div class="terminal-dot yellow"></div>
<div class="terminal-dot green"></div>
<span style="margin-left: 1rem; color: var(--text-secondary);">Terminal Output</span>
</div>
<div class="terminal-content" id="terminal">
<div class="terminal-line">$ Initializing SigPloit Framework...</div>
<div class="terminal-line">$ Connecting to SS7 Network...</div>
<div class="terminal-line">$ Connection established: 192.168.1.100:5000</div>
<div class="terminal-line">$ Loading attack modules...</div>
<div class="terminal-line">$ All modules loaded successfully</div>
<div class="terminal-line">$ System ready for operations</div>
</div>
</div>
</div>
</main>
<footer class="footer">
<p>Built with <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank">anycoder</a></p>
</footer>
<script>
let selectedModule = 'location';
let attackRunning = false;
let terminalLines = 0;
function selectModule(module) {
selectedModule = module;
document.querySelectorAll('.nav-item').forEach(item => {
item.classList.remove('active');
});
event.currentTarget.classList.add('active');
addTerminalLine(`$ Selected module: ${module.toUpperCase()}`);
}
function openModule(module) {
addTerminalLine(`$ Opening ${module.toUpperCase()} module configuration...`);
setTimeout(() => {
addTerminalLine(`$ Module ${module.toUpperCase()} loaded successfully`);
}, 1000);
}
function startScan() {
if (attackRunning) return;
attackRunning = true;
addTerminalLine('$ Starting network scan...');
setTimeout(() => {
addTerminalLine('$ Discovering SS7 nodes...');
updateStat('activeTargets', Math.floor(Math.random() * 20) + 10);
}, 1500);
setTimeout(() => {
addTerminalLine('$ Analyzing network topology...');
}, 2500);
setTimeout(() => {
addTerminalLine('$ Scan completed. Found vulnerable nodes.');
attackRunning = false;
}, 4000);
}
function executeAttack() {
const target = document.getElementById('targetMsisdn').value;
const gt = document.getElementById('globalTitle').value;
const pc = document.getElementById('pointCode').value;
if (!target || !gt || !pc) {
addTerminalLine('$ Error: Please fill all configuration fields', 'error');
return;
}
addTerminalLine(`$ Executing ${selectedModule.toUpperCase()} attack...`);
addTerminalLine(`$ Target: ${target}`);
addTerminalLine(`$ GT: ${gt}`);
addTerminalLine(`$ PC: ${pc}`);
updateStat('runningAttacks', parseInt(document.getElementById('runningAttacks').textContent) + 1);
setTimeout(() => {
addTerminalLine('$ Attack vector deployed successfully');
addTerminalLine('$ Monitoring for responses...');
}, 2000);
setTimeout(() => {
addTerminalLine('$ Response received from target node');
addTerminalLine('$ Attack completed successfully');
updateStat('runningAttacks', parseInt(document.getElementById('runningAttacks').textContent) - 1);
}, 5000);
}
function stopAttack() {
addTerminalLine('$ Stopping all active attacks...');
document.getElementById('runningAttacks').textContent = '0';
setTimeout(() => {
addTerminalLine('$ All attacks stopped successfully');
}, 1000);
}
function exportResults() {
addTerminalLine('$ Exporting results to CSV...');
setTimeout(() => {
addTerminalLine('$ Results exported: sigploit_results_' + Date.now() + '.csv');
}, 1500);
}
function refreshDashboard() {
addTerminalLine('$ Refreshing dashboard...');
// Randomize stats for demo
updateStat('activeTargets', Math.floor(Math.random() * 20) + 5);
updateStat('runningAttacks', Math.floor(Math.random() * 5));
updateStat('successRate', Math.floor(Math.random() * 30) + 70 + '%');
setTimeout(() => {
addTerminalLine('$ Dashboard refreshed successfully');
}, 1000);
}
function updateStat(id, value) {
const element = document.getElementById(id);
element.style.transform = 'scale(1.2)';
element.textContent = value;
setTimeout(() => {
element.style.transform = 'scale(1)';
}, 300);
}
function addTerminalLine(text, type = 'info') {
const terminal = document.getElementById('terminal');
const line = document.createElement('div');
line.className = 'terminal-line';
line.textContent = text;
if (type === 'error') {
line.style.color = 'var(--accent-danger)';
}
terminal.appendChild(line);
terminal.scrollTop = terminal.scrollHeight;
// Remove old lines if too many
if (terminal.children.length > 10) {
terminal.removeChild(terminal.firstChild);
}
}
// Simulate real-time updates
setInterval(() => {
const messages = [
'$ Monitoring network traffic...',
'$ Checking for new targets...',
'$ System status: OK',
'$ Network latency: 12ms',
'$ Active connections: 24'
];
if (Math.random() > 0.7) {
addTerminalLine(messages[Math.floor(Math.random() * messages.length)]);
}
}, 10000);
// Initialize
document.addEventListener('DOMContentLoaded', () => {
addTerminalLine('$ SigPloit Framework initialized');
addTerminalLine('$ Ready for SS7 security testing');
});
</script>
</body>
</html>