amarck commited on
Commit
121c5ee
·
verified ·
1 Parent(s): d08bad2

Add 2 files

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +937 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Sitetest
3
- emoji: 🌍
4
- colorFrom: purple
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: sitetest
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: blue
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,937 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Cerberus Gate - Internal Access Broker (Legitimate Use Only)</title>
7
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
8
+ <style>
9
+ :root {
10
+ --primary: #2c3e50;
11
+ --secondary: #34495e;
12
+ --accent: #3498db;
13
+ --danger: #e74c3c;
14
+ --success: #2ecc71;
15
+ --warning: #f39c12;
16
+ --text: #ecf0f1;
17
+ --dark-text: #2c3e50;
18
+ --light-bg: #ecf0f1;
19
+ }
20
+
21
+ * {
22
+ margin: 0;
23
+ padding: 0;
24
+ box-sizing: border-box;
25
+ font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
26
+ }
27
+
28
+ body {
29
+ background-color: #f5f7fa;
30
+ color: var(--dark-text);
31
+ line-height: 1.6;
32
+ }
33
+
34
+ .security-banner {
35
+ background-color: var(--warning);
36
+ color: var(--dark-text);
37
+ padding: 10px;
38
+ text-align: center;
39
+ font-weight: bold;
40
+ font-size: 14px;
41
+ }
42
+
43
+ header {
44
+ background-color: var(--primary);
45
+ color: var(--text);
46
+ padding: 1rem 2rem;
47
+ display: flex;
48
+ justify-content: space-between;
49
+ align-items: center;
50
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
51
+ }
52
+
53
+ .logo {
54
+ display: flex;
55
+ align-items: center;
56
+ gap: 10px;
57
+ }
58
+
59
+ .logo i {
60
+ font-size: 1.8rem;
61
+ color: var(--accent);
62
+ }
63
+
64
+ .logo h1 {
65
+ font-size: 1.5rem;
66
+ }
67
+
68
+ nav ul {
69
+ display: flex;
70
+ list-style: none;
71
+ gap: 1.5rem;
72
+ }
73
+
74
+ nav a {
75
+ color: var(--text);
76
+ text-decoration: none;
77
+ font-weight: 500;
78
+ transition: color 0.3s;
79
+ display: flex;
80
+ align-items: center;
81
+ gap: 5px;
82
+ }
83
+
84
+ nav a:hover {
85
+ color: var(--accent);
86
+ }
87
+
88
+ .user-actions {
89
+ display: flex;
90
+ gap: 1rem;
91
+ }
92
+
93
+ .btn {
94
+ padding: 0.5rem 1rem;
95
+ border-radius: 4px;
96
+ cursor: pointer;
97
+ font-weight: 600;
98
+ transition: all 0.3s;
99
+ border: none;
100
+ display: flex;
101
+ align-items: center;
102
+ gap: 5px;
103
+ }
104
+
105
+ .btn-primary {
106
+ background-color: var(--accent);
107
+ color: white;
108
+ }
109
+
110
+ .btn-primary:hover {
111
+ background-color: #2980b9;
112
+ }
113
+
114
+ .btn-outline {
115
+ background-color: transparent;
116
+ border: 1px solid var(--text);
117
+ color: var(--text);
118
+ }
119
+
120
+ .btn-outline:hover {
121
+ background-color: rgba(255, 255, 255, 0.1);
122
+ }
123
+
124
+ .breadcrumb {
125
+ padding: 1rem 2rem;
126
+ background-color: var(--light-bg);
127
+ font-size: 0.9rem;
128
+ }
129
+
130
+ .breadcrumb a {
131
+ color: var(--accent);
132
+ text-decoration: none;
133
+ }
134
+
135
+ .breadcrumb a:hover {
136
+ text-decoration: underline;
137
+ }
138
+
139
+ .container {
140
+ padding: 2rem;
141
+ max-width: 1400px;
142
+ margin: 0 auto;
143
+ }
144
+
145
+ .info-boxes {
146
+ display: grid;
147
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
148
+ gap: 1.5rem;
149
+ margin-bottom: 2rem;
150
+ }
151
+
152
+ .info-box {
153
+ background-color: white;
154
+ border-radius: 8px;
155
+ padding: 1.5rem;
156
+ box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05);
157
+ border-left: 4px solid var(--accent);
158
+ }
159
+
160
+ .info-box h3 {
161
+ margin-bottom: 0.75rem;
162
+ color: var(--primary);
163
+ display: flex;
164
+ align-items: center;
165
+ gap: 8px;
166
+ }
167
+
168
+ .info-box i {
169
+ color: var(--accent);
170
+ }
171
+
172
+ .dashboard-stats {
173
+ display: grid;
174
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
175
+ gap: 1.5rem;
176
+ margin-bottom: 2rem;
177
+ }
178
+
179
+ .stat-card {
180
+ background-color: white;
181
+ border-radius: 8px;
182
+ padding: 1.5rem;
183
+ box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05);
184
+ text-align: center;
185
+ }
186
+
187
+ .stat-card .value {
188
+ font-size: 2rem;
189
+ font-weight: bold;
190
+ color: var(--primary);
191
+ margin: 0.5rem 0;
192
+ }
193
+
194
+ .stat-card .label {
195
+ font-size: 0.9rem;
196
+ color: #7f8c8d;
197
+ }
198
+
199
+ .section-title {
200
+ margin: 2rem 0 1rem;
201
+ color: var(--primary);
202
+ padding-bottom: 0.5rem;
203
+ border-bottom: 2px solid var(--light-bg);
204
+ display: flex;
205
+ align-items: center;
206
+ gap: 10px;
207
+ }
208
+
209
+ .filter-bar {
210
+ display: flex;
211
+ flex-wrap: wrap;
212
+ gap: 1rem;
213
+ margin-bottom: 1.5rem;
214
+ align-items: center;
215
+ }
216
+
217
+ .filter-group {
218
+ background-color: white;
219
+ padding: 0.5rem 1rem;
220
+ border-radius: 4px;
221
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
222
+ }
223
+
224
+ select, input {
225
+ padding: 0.5rem;
226
+ border: 1px solid #ddd;
227
+ border-radius: 4px;
228
+ min-width: 200px;
229
+ }
230
+
231
+ .access-table {
232
+ width: 100%;
233
+ border-collapse: collapse;
234
+ background-color: white;
235
+ box-shadow: 0 2px 15px rgba(0, 0, 0, 0.05);
236
+ border-radius: 8px;
237
+ overflow: hidden;
238
+ }
239
+
240
+ .access-table th, .access-table td {
241
+ padding: 1rem;
242
+ text-align: left;
243
+ border-bottom: 1px solid #eee;
244
+ }
245
+
246
+ .access-table th {
247
+ background-color: var(--primary);
248
+ color: var(--text);
249
+ font-weight: 600;
250
+ }
251
+
252
+ .access-table tr:hover {
253
+ background-color: #f9f9f9;
254
+ }
255
+
256
+ .status-badge {
257
+ display: inline-block;
258
+ padding: 0.25rem 0.75rem;
259
+ border-radius: 50px;
260
+ font-size: 0.8rem;
261
+ font-weight: 600;
262
+ }
263
+
264
+ .status-active {
265
+ background-color: rgba(46, 204, 113, 0.1);
266
+ color: var(--success);
267
+ }
268
+
269
+ .status-expired {
270
+ background-color: rgba(231, 76, 60, 0.1);
271
+ color: var(--danger);
272
+ }
273
+
274
+ .status-pending {
275
+ background-color: rgba(241, 196, 15, 0.1);
276
+ color: var(--warning);
277
+ }
278
+
279
+ .action-btn {
280
+ padding: 0.25rem 0.5rem;
281
+ border-radius: 4px;
282
+ cursor: pointer;
283
+ font-size: 0.85rem;
284
+ transition: all 0.3s;
285
+ border: none;
286
+ display: inline-flex;
287
+ align-items: center;
288
+ gap: 5px;
289
+ margin-right: 0.5rem;
290
+ }
291
+
292
+ .action-btn.view {
293
+ background-color: rgba(52, 152, 219, 0.1);
294
+ color: var(--accent);
295
+ }
296
+
297
+ .action-btn.request {
298
+ background-color: rgba(46, 204, 113, 0.1);
299
+ color: var(--success);
300
+ }
301
+
302
+ .action-btn.revoke {
303
+ background-color: rgba(231, 76, 60, 0.1);
304
+ color: var(--danger);
305
+ }
306
+
307
+ .action-btn:hover {
308
+ opacity: 0.8;
309
+ }
310
+
311
+ .pagination {
312
+ display: flex;
313
+ justify-content: center;
314
+ gap: 0.5rem;
315
+ margin-top: 2rem;
316
+ }
317
+
318
+ .pagination-btn {
319
+ padding: 0.5rem 1rem;
320
+ border-radius: 4px;
321
+ cursor: pointer;
322
+ background-color: white;
323
+ border: 1px solid #ddd;
324
+ transition: all 0.3s;
325
+ }
326
+
327
+ .pagination-btn.active {
328
+ background-color: var(--accent);
329
+ color: white;
330
+ border-color: var(--accent);
331
+ }
332
+
333
+ .pagination-btn:hover:not(.active) {
334
+ background-color: #f9f9f9;
335
+ }
336
+
337
+ footer {
338
+ background-color: var(--primary);
339
+ color: var(--text);
340
+ padding: 2rem;
341
+ margin-top: 3rem;
342
+ }
343
+
344
+ .footer-content {
345
+ max-width: 1400px;
346
+ margin: 0 auto;
347
+ display: grid;
348
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
349
+ gap: 2rem;
350
+ }
351
+
352
+ .footer-section h3 {
353
+ margin-bottom: 1rem;
354
+ font-size: 1.2rem;
355
+ }
356
+
357
+ .footer-section ul {
358
+ list-style: none;
359
+ }
360
+
361
+ .footer-section ul li {
362
+ margin-bottom: 0.5rem;
363
+ }
364
+
365
+ .footer-section a {
366
+ color: var(--text);
367
+ text-decoration: none;
368
+ transition: color 0.3s;
369
+ }
370
+
371
+ .footer-section a:hover {
372
+ color: var(--accent);
373
+ }
374
+
375
+ .copyright {
376
+ text-align: center;
377
+ margin-top: 2rem;
378
+ padding-top: 1rem;
379
+ border-top: 1px solid rgba(255, 255, 255, 0.1);
380
+ font-size: 0.9rem;
381
+ }
382
+
383
+ /* Modal styles */
384
+ .modal {
385
+ display: none;
386
+ position: fixed;
387
+ top: 0;
388
+ left: 0;
389
+ width: 100%;
390
+ height: 100%;
391
+ background-color: rgba(0, 0, 0, 0.5);
392
+ z-index: 1000;
393
+ justify-content: center;
394
+ align-items: center;
395
+ }
396
+
397
+ .modal-content {
398
+ background-color: white;
399
+ border-radius: 8px;
400
+ width: 90%;
401
+ max-width: 600px;
402
+ max-height: 80vh;
403
+ overflow-y: auto;
404
+ box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
405
+ animation: modalFadeIn 0.3s;
406
+ }
407
+
408
+ @keyframes modalFadeIn {
409
+ from {
410
+ opacity: 0;
411
+ transform: translateY(-20px);
412
+ }
413
+ to {
414
+ opacity: 1;
415
+ transform: translateY(0);
416
+ }
417
+ }
418
+
419
+ .modal-header {
420
+ padding: 1.5rem;
421
+ border-bottom: 1px solid #eee;
422
+ display: flex;
423
+ justify-content: space-between;
424
+ align-items: center;
425
+ background-color: var(--primary);
426
+ color: white;
427
+ border-radius: 8px 8px 0 0;
428
+ }
429
+
430
+ .modal-header h2 {
431
+ font-size: 1.25rem;
432
+ }
433
+
434
+ .close-btn {
435
+ background: none;
436
+ border: none;
437
+ font-size: 1.5rem;
438
+ cursor: pointer;
439
+ color: white;
440
+ }
441
+
442
+ .modal-body {
443
+ padding: 1.5rem;
444
+ }
445
+
446
+ .form-group {
447
+ margin-bottom: 1.5rem;
448
+ }
449
+
450
+ .form-group label {
451
+ display: block;
452
+ margin-bottom: 0.5rem;
453
+ font-weight: 600;
454
+ }
455
+
456
+ .form-group input, .form-group select, .form-group textarea {
457
+ width: 100%;
458
+ padding: 0.75rem;
459
+ border: 1px solid #ddd;
460
+ border-radius: 4px;
461
+ font-size: 1rem;
462
+ }
463
+
464
+ .form-group textarea {
465
+ min-height: 120px;
466
+ resize: vertical;
467
+ }
468
+
469
+ .modal-footer {
470
+ padding: 1.5rem;
471
+ border-top: 1px solid #eee;
472
+ display: flex;
473
+ justify-content: flex-end;
474
+ gap: 1rem;
475
+ }
476
+
477
+ /* Responsive adjustments */
478
+ @media (max-width: 768px) {
479
+ header {
480
+ flex-direction: column;
481
+ gap: 1rem;
482
+ }
483
+
484
+ nav ul {
485
+ flex-wrap: wrap;
486
+ justify-content: center;
487
+ }
488
+
489
+ .access-table {
490
+ display: block;
491
+ overflow-x: auto;
492
+ }
493
+
494
+ .filter-bar {
495
+ flex-direction: column;
496
+ align-items: stretch;
497
+ }
498
+
499
+ .filter-group {
500
+ width: 100%;
501
+ }
502
+
503
+ select, input {
504
+ width: 100%;
505
+ min-width: auto;
506
+ }
507
+ }
508
+ </style>
509
+ </head>
510
+ <body>
511
+ <div class="security-banner">
512
+ <i class="fas fa-shield-alt"></i> WARNING: This system is for authorized internal red team use only. All activity is monitored and logged.
513
+ </div>
514
+
515
+ <header>
516
+ <div class="logo">
517
+ <i class="fas fa-shield-virus"></i>
518
+ <h1>Cerberus Gate</h1>
519
+ </div>
520
+ <nav>
521
+ <ul>
522
+ <li><a href="#"><i class="fas fa-home"></i> Dashboard</a></li>
523
+ <li><a href="#"><i class="fas fa-database"></i> Access Catalog</a></li>
524
+ <li><a href="#"><i class="fas fa-history"></i> Activity Log</a></li>
525
+ <li><a href="#"><i class="fas fa-file-alt"></i> Reports</a></li>
526
+ <li><a href="#"><i class="fas fa-cog"></i> Settings</a></li>
527
+ </ul>
528
+ </nav>
529
+ <div class="user-actions">
530
+ <button class="btn btn-outline"><i class="fas fa-bell"></i></button>
531
+ <button class="btn btn-primary"><i class="fas fa-user-shield"></i> Admin</button>
532
+ </div>
533
+ </header>
534
+
535
+ <div class="breadcrumb">
536
+ <a href="#">Home</a> / <a href="#">Access Broker</a> / <span>Catalog</span>
537
+ </div>
538
+
539
+ <div class="container">
540
+ <div class="info-boxes">
541
+ <div class="info-box">
542
+ <h3><i class="fas fa-info-circle"></i> About This System</h3>
543
+ <p>Cerberus Gate provides controlled access to compromised infrastructure for authorized red team operations. All access must be justified and logged according to internal policy.</p>
544
+ </div>
545
+ <div class="info-box">
546
+ <h3><i class="fas fa-exclamation-triangle"></i> Rules of Engagement</h3>
547
+ <p>1. Never access production data. 2. Document all activities. 3. Obtain approval before provisioning. 4. Review the acceptable use policy monthly.</p>
548
+ </div>
549
+ <div class="info-box">
550
+ <h3><i class="fas fa-calendar-check"></i> Scheduled Maintenance</h3>
551
+ <p>Next rotation: 2023-08-15 02:00 UTC (All access tokens will be automatically revoked during this window)</p>
552
+ </div>
553
+ </div>
554
+
555
+ <div class="dashboard-stats">
556
+ <div class="stat-card">
557
+ <i class="fas fa-key" style="color: var(--accent);"></i>
558
+ <div class="value">247</div>
559
+ <div class="label">Active Access Points</div>
560
+ </div>
561
+ <div class="stat-card">
562
+ <i class="fas fa-user-clock" style="color: var(--warning);"></i>
563
+ <div class="value">12</div>
564
+ <div class="label">Pending Requests</div>
565
+ </div>
566
+ <div class="stat-card">
567
+ <i class="fas fa-users" style="color: var(--success);"></i>
568
+ <div class="value">24</div>
569
+ <div class="label">Authorized Operators</div>
570
+ </div>
571
+ <div class="stat-card">
572
+ <i class="fas fa-stopwatch" style="color: var(--danger);"></i>
573
+ <div class="value">3:42:15</div>
574
+ <div class="label">Avg. Session Duration</div>
575
+ </div>
576
+ </div>
577
+
578
+ <h2 class="section-title"><i class="fas fa-database"></i> Access Catalog</h2>
579
+
580
+ <div class="filter-bar">
581
+ <div class="filter-group">
582
+ <label for="environment">Environment</label>
583
+ <select id="environment">
584
+ <option value="all">All Environments</option>
585
+ <option value="prod">Production</option>
586
+ <option value="staging">Staging</option>
587
+ <option value="dev">Development</option>
588
+ </select>
589
+ </div>
590
+ <div class="filter-group">
591
+ <label for="asset-type">Asset Type</label>
592
+ <select id="asset-type">
593
+ <option value="all">All Types</option>
594
+ <option value="server">Server</option>
595
+ <option value="network">Network Device</option>
596
+ <option value="api">API Endpoint</option>
597
+ <option value="db">Database</option>
598
+ </select>
599
+ </div>
600
+ <div class="filter-group">
601
+ <label for="status">Status</label>
602
+ <select id="status">
603
+ <option value="all">All Statuses</option>
604
+ <option value="active">Active</option>
605
+ <option value="pending">Pending</option>
606
+ <option value="expired">Expired</option>
607
+ </select>
608
+ </div>
609
+ <div class="filter-group">
610
+ <label for="search"><i class="fas fa-search"></i> Search</label>
611
+ <input type="text" id="search" placeholder="IP, Hostname, or Description">
612
+ </div>
613
+ <button class="btn btn-primary" onclick="openNewAccessModal()"><i class="fas fa-plus"></i> New Access Request</button>
614
+ </div>
615
+
616
+ <table class="access-table">
617
+ <thead>
618
+ <tr>
619
+ <th>ID</th>
620
+ <th>Asset Name</th>
621
+ <th>Type</th>
622
+ <th>Environment</th>
623
+ <th>Access Method</th>
624
+ <th>Status</th>
625
+ <th>Expires</th>
626
+ <th>Actions</th>
627
+ </tr>
628
+ </thead>
629
+ <tbody>
630
+ <tr>
631
+ <td>#RED-4829</td>
632
+ <td>prod-web-srv-01</td>
633
+ <td>Web Server</td>
634
+ <td>Production</td>
635
+ <td>SSH Key</td>
636
+ <td><span class="status-badge status-active">Active</span></td>
637
+ <td>2023-08-14</td>
638
+ <td>
639
+ <button class="action-btn view"><i class="fas fa-eye"></i> View</button>
640
+ <button class="action-btn revoke"><i class="fas fa-ban"></i> Revoke</button>
641
+ </td>
642
+ </tr>
643
+ <tr>
644
+ <td>#RED-5731</td>
645
+ <td>payment-api-gateway</td>
646
+ <td>API Endpoint</td>
647
+ <td>Staging</td>
648
+ <td>API Token</td>
649
+ <td><span class="status-badge status-active">Active</span></td>
650
+ <td>2023-08-12</td>
651
+ <td>
652
+ <button class="action-btn view"><i class="fas fa-eye"></i> View</button>
653
+ <button class="action-btn revoke"><i class="fas fa-ban"></i> Revoke</button>
654
+ </td>
655
+ </tr>
656
+ <tr>
657
+ <td>#RED-6194</td>
658
+ <td>internal-db-02</td>
659
+ <td>Database</td>
660
+ <td>Development</td>
661
+ <td>Credentials</td>
662
+ <td><span class="status-badge status-pending">Pending</span></td>
663
+ <td>N/A</td>
664
+ <td>
665
+ <button class="action-btn view"><i class="fas fa-eye"></i> View</button>
666
+ <button class="action-btn request"><i class="fas fa-check"></i> Approve</button>
667
+ </td>
668
+ </tr>
669
+ <tr>
670
+ <td>#RED-5023</td>
671
+ <td>vpn-edge-router</td>
672
+ <td>Network Device</td>
673
+ <td>Production</td>
674
+ <td>SSH Key</td>
675
+ <td><span class="status-badge status-expired">Expired</span></td>
676
+ <td>2023-07-29</td>
677
+ <td>
678
+ <button class="action-btn view"><i class="fas fa-eye"></i> View</button>
679
+ <button class="action-btn request"><i class="fas fa-sync"></i> Renew</button>
680
+ </td>
681
+ </tr>
682
+ <tr>
683
+ <td>#RED-6921</td>
684
+ <td>auth-service</td>
685
+ <td>API Endpoint</td>
686
+ <td>Staging</td>
687
+ <td>API Token</td>
688
+ <td><span class="status-badge status-active">Active</span></td>
689
+ <td>2023-08-18</td>
690
+ <td>
691
+ <button class="action-btn view"><i class="fas fa-eye"></i> View</button>
692
+ <button class="action-btn revoke"><i class="fas fa-ban"></i> Revoke</button>
693
+ </td>
694
+ </tr>
695
+ </tbody>
696
+ </table>
697
+
698
+ <div class="pagination">
699
+ <button class="pagination-btn"><i class="fas fa-angle-left"></i></button>
700
+ <button class="pagination-btn active">1</button>
701
+ <button class="pagination-btn">2</button>
702
+ <button class="pagination-btn">3</button>
703
+ <button class="pagination-btn"><i class="fas fa-angle-right"></i></button>
704
+ </div>
705
+ </div>
706
+
707
+ <footer>
708
+ <div class="footer-content">
709
+ <div class="footer-section">
710
+ <h3>Cerberus Gate</h3>
711
+ <p>Controlled access platform for authorized red team operations and security research.</p>
712
+ </div>
713
+ <div class="footer-section">
714
+ <h3>Quick Links</h3>
715
+ <ul>
716
+ <li><a href="#">Documentation</a></li>
717
+ <li><a href="#">Training Materials</a></li>
718
+ <li><a href="#">Incident Response</a></li>
719
+ <li><a href="#">Acceptable Use Policy</a></li>
720
+ </ul>
721
+ </div>
722
+ <div class="footer-section">
723
+ <h3>Support</h3>
724
+ <ul>
725
+ <li><a href="#"><i class="fas fa-envelope"></i> [email protected]</a></li>
726
+ <li><a href="#"><i class="fas fa-phone"></i> (555) SEC-REDS</a></li>
727
+ <li><a href="#"><i class="fas fa-calendar"></i> Schedule Rotation</a></li>
728
+ </ul>
729
+ </div>
730
+ </div>
731
+ <div class="copyright">
732
+ <p>&copy; 2023 Cerberus Gate Internal Red Team. All rights reserved. Unauthorized access prohibited.</p>
733
+ </div>
734
+ </footer>
735
+
736
+ <!-- New Access Request Modal -->
737
+ <div id="newAccessModal" class="modal">
738
+ <div class="modal-content">
739
+ <div class="modal-header">
740
+ <h2><i class="fas fa-plus-circle"></i> New Access Request</h2>
741
+ <button class="close-btn" onclick="closeModal()">&times;</button>
742
+ </div>
743
+ <div class="modal-body">
744
+ <div class="form-group">
745
+ <label for="target-asset">Target Asset</label>
746
+ <select id="target-asset">
747
+ <option value="">Select an asset...</option>
748
+ <option value="prod-web-srv-01">prod-web-srv-01</option>
749
+ <option value="payment-api-gateway">payment-api-gateway</option>
750
+ <option value="internal-db-02">internal-db-02</option>
751
+ <option value="vpn-edge-router">vpn-edge-router</option>
752
+ <option value="auth-service">auth-service</option>
753
+ </select>
754
+ </div>
755
+ <div class="form-group">
756
+ <label for="access-type">Access Type</label>
757
+ <select id="access-type">
758
+ <option value="">Select access type...</option>
759
+ <option value="ssh">SSH Key</option>
760
+ <option value="api">API Token</option>
761
+ <option value="credentials">User Credentials</option>
762
+ <option value="session">Temporary Session</option>
763
+ </select>
764
+ </div>
765
+ <div class="form-group">
766
+ <label for="duration">Duration</label>
767
+ <select id="duration">
768
+ <option value="6">6 hours</option>
769
+ <option value="12">12 hours</option>
770
+ <option value="24" selected>24 hours</option>
771
+ <option value="48">48 hours</option>
772
+ <option value="72">72 hours</option>
773
+ <option value="custom">Custom</option>
774
+ </select>
775
+ </div>
776
+ <div class="form-group">
777
+ <label for="justification">Justification (Required)</label>
778
+ <textarea id="justification" placeholder="Describe why you need this access and how it will be used..."></textarea>
779
+ </div>
780
+ <div class="form-group">
781
+ <label for="ticket-ref">Ticket/Reference #</label>
782
+ <input type="text" id="ticket-ref" placeholder="ITSM-XXXXXX or SECOPS-XXXXXX">
783
+ </div>
784
+ </div>
785
+ <div class="modal-footer">
786
+ <button class="btn btn-outline" onclick="closeModal()">Cancel</button>
787
+ <button class="btn btn-primary">Submit Request</button>
788
+ </div>
789
+ </div>
790
+ </div>
791
+
792
+ <!-- View Access Modal -->
793
+ <div id="viewAccessModal" class="modal">
794
+ <div class="modal-content">
795
+ <div class="modal-header">
796
+ <h2><i class="fas fa-eye"></i> Access Details</h2>
797
+ <button class="close-btn" onclick="closeModal()">&times;</button>
798
+ </div>
799
+ <div class="modal-body">
800
+ <div style="display: flex; justify-content: space-between; margin-bottom: 1.5rem;">
801
+ <div>
802
+ <h3>prod-web-srv-01</h3>
803
+ <span class="status-badge status-active">Active</span>
804
+ </div>
805
+ <div style="text-align: right;">
806
+ <p><strong>ID:</strong> #RED-4829</p>
807
+ <p><strong>Expires:</strong> 2023-08-14 23:59 UTC</p>
808
+ </div>
809
+ </div>
810
+
811
+ <div class="info-box" style="margin-bottom: 1.5rem;">
812
+ <h4><i class="fas fa-info-circle"></i> Connection Details</h4>
813
+ <p><strong>Access Method:</strong> SSH Key</p>
814
+ <p><strong>Host:</strong> 192.168.10.15</p>
815
+ <p><strong>Port:</strong> 2222</p>
816
+ <p><strong>Username:</strong> redteam-4829</p>
817
+ <div style="margin-top: 1rem;">
818
+ <button class="btn btn-primary" style="width: 100%;">
819
+ <i class="fas fa-key"></i> Download SSH Key (encrypted)
820
+ </button>
821
+ </div>
822
+ </div>
823
+
824
+ <div class="form-group">
825
+ <h4><i class="fas fa-history"></i> Activity Log</h4>
826
+ <div style="background: #f9f9f9; padding: 1rem; border-radius: 4px; max-height: 200px; overflow-y: auto;">
827
+ <p><small>2023-08-10 14:32 - Access granted to operatord</small></p>
828
+ <p><small>2023-08-10 14:45 - First login detected from 10.20.30.45</small></p>
829
+ <p><small>2023-08-10 15:12 - Session established for vulnerability scan</small></p>
830
+ <p><small>2023-08-11 09:15 - Second login from 10.20.30.45</small></p>
831
+ </div>
832
+ </div>
833
+ </div>
834
+ <div class="modal-footer">
835
+ <button class="btn btn-outline">Extend Access</button>
836
+ <button class="btn btn-danger" onclick="showConfirmationModal()">Revoke Access</button>
837
+ </div>
838
+ </div>
839
+ </div>
840
+
841
+ <!-- Confirmation Modal -->
842
+ <div id="confirmModal" class="modal">
843
+ <div class="modal-content" style="max-width: 500px;">
844
+ <div class="modal-header" style="background-color: var(--danger);">
845
+ <h2><i class="fas fa-exclamation-triangle"></i> Confirm Action</h2>
846
+ <button class="close-btn" onclick="closeModal()">&times;</button>
847
+ </div>
848
+ <div class="modal-body">
849
+ <p>Are you sure you want to revoke access to <strong>prod-web-srv-01 (RED-4829)</strong>?</p>
850
+ <p>This action cannot be undone. All active sessions will be terminated immediately.</p>
851
+ <div class="form-group" style="margin-top: 1rem;">
852
+ <label for="revoke-reason">Reason for Revocation (Required)</label>
853
+ <textarea id="revoke-reason" placeholder="Provide a reason for revoking this access..."></textarea>
854
+ </div>
855
+ </div>
856
+ <div class="modal-footer">
857
+ <button class="btn btn-outline" onclick="closeModal()">Cancel</button>
858
+ <button class="btn btn-danger">Confirm Revocation</button>
859
+ </div>
860
+ </div>
861
+ </div>
862
+
863
+ <script>
864
+ // Modal functions
865
+ function openNewAccessModal() {
866
+ document.getElementById('newAccessModal').style.display = 'flex';
867
+ }
868
+
869
+ function openViewAccessModal() {
870
+ document.getElementById('viewAccessModal').style.display = 'flex';
871
+ }
872
+
873
+ function showConfirmationModal() {
874
+ closeModal();
875
+ document.getElementById('confirmModal').style.display = 'flex';
876
+ }
877
+
878
+ function closeModal() {
879
+ document.querySelectorAll('.modal').forEach(modal => {
880
+ modal.style.display = 'none';
881
+ });
882
+ }
883
+
884
+ // Close modal when clicking outside content
885
+ window.onclick = function(event) {
886
+ if (event.target.classList.contains('modal')) {
887
+ closeModal();
888
+ }
889
+ }
890
+
891
+ // Table row click handler (for view modal)
892
+ document.querySelectorAll('.access-table tbody tr').forEach(row => {
893
+ row.addEventListener('click', function(e) {
894
+ // Don't open if clicking on a button
895
+ if (!e.target.closest('button')) {
896
+ openViewAccessModal();
897
+ }
898
+ });
899
+ });
900
+
901
+ // Filter functionality
902
+ document.getElementById('search').addEventListener('input', function() {
903
+ const searchTerm = this.value.toLowerCase();
904
+ filterTable(searchTerm);
905
+ });
906
+
907
+ function filterTable(searchTerm) {
908
+ const rows = document.querySelectorAll('.access-table tbody tr');
909
+
910
+ rows.forEach(row => {
911
+ const textContent = row.textContent.toLowerCase();
912
+ if (textContent.includes(searchTerm)) {
913
+ row.style.display = '';
914
+ } else {
915
+ row.style.display = 'none';
916
+ }
917
+ });
918
+ }
919
+
920
+ // Status filter
921
+ document.getElementById('status').addEventListener('change', function() {
922
+ const status = this.value;
923
+ const rows = document.querySelectorAll('.access-table tbody tr');
924
+
925
+ rows.forEach(row => {
926
+ const rowStatus = row.querySelector('.status-badge').textContent.toLowerCase();
927
+
928
+ if (status === 'all' || rowStatus.includes(status)) {
929
+ row.style.display = '';
930
+ } else {
931
+ row.style.display = 'none';
932
+ }
933
+ });
934
+ });
935
+ </script>
936
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <a href="https://enzostvs-deepsite.hf.space" style="color: #fff;" target="_blank" >DeepSite</a> <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;"></p></body>
937
+ </html>