diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84d1019 --- /dev/null +++ b/.gitignore @@ -0,0 +1,12 @@ +_site/ +.jekyll-cache/ +.sass-cache/ +.DS_Store +*.swp +*.swo +*~ +.env +.venv +*.pyc +__pycache__/ +node_modules/ diff --git a/README.md b/README.md new file mode 100644 index 0000000..96fea93 --- /dev/null +++ b/README.md @@ -0,0 +1,35 @@ +# Privileged Escalation + +A comprehensive educational resource for understanding privilege escalation techniques, vulnerabilities, and defense strategies. + +## About + +Privileged Escalation is dedicated to helping security professionals, developers, and researchers understand how attackers gain elevated access to systems and how defenders can prevent it. + +## Features + +- **Documentation**: Comprehensive guides on privilege escalation techniques and defense strategies +- **Resources**: Community-contributed tools and utilities for testing vulnerabilities +- **Research**: Academic and practical research materials on system security +- **Community**: A collaborative community focused on responsible disclosure and ethical security practices + +## Getting Started + +This site is built as a static website and is served via GitHub Pages. To build locally: + +1. Ensure you have Ruby and Jekyll installed +2. Run `bundle install` +3. Run `bundle exec jekyll serve` +4. Navigate to `http://localhost:4000` + +## Contributing + +We welcome contributions from the security community. Please ensure all content follows responsible disclosure principles and ethical guidelines. + +## License + +See LICENSE file for details. + +## Contact + +For questions, suggestions, or to get involved, please open an issue or contact the maintainers. diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..693d9fe --- /dev/null +++ b/_config.yml @@ -0,0 +1,18 @@ +title: Privileged Escalation +description: Open-source Headlamp plugins for Kubernetes +baseurl: "" +url: "https://privilegedescalation.com" + +# Build settings +theme: null +markdown: kramdown +permalink: /:year/:month/:day/:title/ + +# Exclude certain files from processing +exclude: + - README.md + - .gitignore + - LICENSE + +# GitHub Pages settings +github: [metadata] \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..5609856 --- /dev/null +++ b/index.html @@ -0,0 +1,94 @@ + + + + + + Privileged Escalation - Open-source Headlamp Plugins + + + + + + +
+
+ +

Open-source Headlamp plugins for Kubernetes

+

We extend Headlamp with plugins for monitoring, security, and storage visibility — built by Privileged Escalation.

+
+
+ +
+
+
+

Plugin Showcase

+

All our plugins integrate directly into Headlamp, the extensible Kubernetes UI by the CNCF. Click any plugin to visit its repository.

+
+
+

headlamp-argocd-plugin

+

ArgoCD visibility — monitors ArgoCD Applications, Rollouts, and health status directly from your Kubernetes cluster.

+ View Repository +
+
+

headlamp-polaris-plugin

+

Fairwinds Polaris security and best-practices auditing — surface configuration issues and compliance gaps in your cluster.

+ View Repository +
+
+

headlamp-rook-plugin

+

Rook-Ceph cluster visibility — monitors CephCluster health, pool status, and CSI driver metrics for your storage infrastructure.

+ View Repository +
+
+

headlamp-kube-vip-plugin

+

kube-vip virtual IP and load balancer visibility — track virtual IP allocations and load balancer endpoints across your clusters.

+ View Repository +
+
+

headlamp-sealed-secrets-plugin

+

Bitnami Sealed Secrets management with client-side encryption — create and manage sealed secrets directly from the Headlamp UI.

+ View Repository +
+
+

headlamp-tns-csi-plugin

+

TrueNAS CSI driver visibility and kbench storage benchmarking — monitor TrueNAS storage resources and run performance benchmarks.

+ View Repository +
+
+

headlamp-intel-gpu-plugin

+

Intel GPU device visibility and resource monitoring — track GPU device status, utilization, and health across your GPU-enabled nodes.

+ View Repository +
+
+
+
+ +
+
+

About Privileged Escalation

+

Privileged Escalation builds open-source plugins for Headlamp, the extensible Kubernetes UI hosted by the Cloud Native Computing Foundation (CNCF). Our plugins add visibility into monitoring, security, and storage tooling commonly deployed in Kubernetes environments.

+

All plugins are open-source and available on our Gitea organization. Contributions are welcome.

+
+
+
+ + + + \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 0000000..0fc5b71 --- /dev/null +++ b/style.css @@ -0,0 +1,289 @@ +:root { + --primary-color: #1a73e8; + --secondary-color: #3d5a80; + --accent-color: #00a896; + --light-bg: #f8f9fa; + --text-color: #202124; + --border-color: #dadce0; + --card-bg: #ffffff; + --card-shadow: 0 1px 3px rgba(0,0,0,0.08); +} + +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html { + scroll-behavior: smooth; +} + +body { + font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.6; + color: var(--text-color); + background-color: #ffffff; +} + +.container { + max-width: 1200px; + margin: 0 auto; + padding: 0 20px; +} + +/* Navigation */ +.navbar { + background-color: var(--primary-color); + color: white; + padding: 1rem 0; + position: sticky; + top: 0; + box-shadow: 0 2px 4px rgba(0,0,0,0.1); + z-index: 100; +} + +.navbar .container { + display: flex; + justify-content: space-between; + align-items: center; +} + +.logo-section { + display: flex; + align-items: center; + gap: 15px; +} + +.logo { + height: 50px; + width: auto; + border-radius: 4px; +} + +.navbar h1 { + font-size: 1.8rem; + font-weight: 600; +} + +.nav-links { + display: flex; + list-style: none; + gap: 2rem; +} + +.nav-links a { + color: white; + text-decoration: none; + transition: opacity 0.2s ease; + font-weight: 500; +} + +.nav-links a:hover { + opacity: 0.8; +} + +/* Hero Section */ +.hero { + background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); + color: white; + padding: 80px 0; + text-align: center; +} + +.hero-logo { + height: 80px; + width: auto; + border-radius: 8px; + margin-bottom: 1.5rem; +} + +.hero h2 { + font-size: 2.2rem; + margin-bottom: 1rem; + font-weight: 600; +} + +.hero p { + font-size: 1.15rem; + opacity: 0.95; + max-width: 600px; + margin: 0 auto; +} + +/* Sections */ +.section { + padding: 60px 0; +} + +.section-title { + font-size: 2rem; + margin-bottom: 1rem; + color: var(--primary-color); + border-bottom: 3px solid var(--accent-color); + padding-bottom: 0.5rem; + display: inline-block; +} + +.section-intro { + font-size: 1.05rem; + margin-bottom: 2.5rem; + color: #5f6368; + max-width: 700px; +} + +.section p { + font-size: 1rem; + margin-bottom: 1rem; + line-height: 1.8; +} + +.section a { + color: var(--primary-color); + text-decoration: none; +} + +.section a:hover { + text-decoration: underline; +} + +.alternate { + background-color: var(--light-bg); +} + +/* Plugin Grid */ +.plugin-grid { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); + gap: 1.5rem; + margin-top: 2rem; +} + +.plugin-card { + background: var(--card-bg); + padding: 1.75rem; + border-radius: 8px; + border: 1px solid var(--border-color); + box-shadow: var(--card-shadow); + transition: box-shadow 0.2s ease, transform 0.2s ease; +} + +.plugin-card:hover { + box-shadow: 0 4px 12px rgba(0,0,0,0.12); + transform: translateY(-2px); +} + +.plugin-card h3 { + color: var(--primary-color); + margin-bottom: 0.75rem; + font-size: 1.15rem; + font-weight: 600; +} + +.plugin-card p { + font-size: 0.95rem; + color: #5f6368; + line-height: 1.6; + margin-bottom: 1rem; +} + +.plugin-link { + display: inline-block; + color: var(--accent-color); + font-weight: 600; + font-size: 0.9rem; +} + +.plugin-link:hover { + text-decoration: underline; +} + +/* Footer */ +footer { + background-color: var(--secondary-color); + color: white; + text-align: center; + padding: 2rem 0; +} + +footer p { + margin-bottom: 0.5rem; +} + +footer a { + color: white; + text-decoration: none; +} + +footer a:hover { + text-decoration: underline; +} + +/* Responsive Design */ +@media (max-width: 768px) { + .navbar .container { + flex-direction: column; + gap: 1rem; + } + + .nav-links { + flex-direction: column; + gap: 1rem; + text-align: center; + } + + .hero { + padding: 60px 0; + } + + .hero h2 { + font-size: 1.75rem; + } + + .hero p { + font-size: 1rem; + } + + .section-title { + font-size: 1.5rem; + } + + .plugin-grid { + grid-template-columns: 1fr; + } + + .logo-section { + flex-direction: column; + text-align: center; + } + + .navbar h1 { + font-size: 1.5rem; + } + + .hero-logo { + height: 60px; + } +} + +@media (max-width: 480px) { + .hero { + padding: 40px 0; + } + + .section { + padding: 40px 0; + } + + .hero h2 { + font-size: 1.5rem; + } + + .logo { + height: 40px; + } + + .hero-logo { + height: 50px; + } +} \ No newline at end of file