A comprehensive penetration testing platform providing security professionals with a complete toolkit for Red Team operations, C2 frameworks, security assessments, and automated SSL certificate management.
- π₯ Self-Healing Service - Automated monitoring, repair, and recovery system
- ποΈ Database Service - PostgreSQL with multiple databases (rtpi_main, kasm, sysreptor)
- β‘ Cache Service - Redis cluster with multiple instances for different services
- π³ Orchestrator Service - Portainer for container management
- π Proxy Service - Nginx reverse proxy with SSL termination
- π§ Tools Service - Containerized security tools
- π₯οΈ Kasm Workspaces - Browser-based virtual desktops (installed natively)
- π SysReptor - Penetration testing documentation and reporting
- π PowerShell Empire - Command & Control framework (installed natively)
- π¦ Docker Registry - Local container image registry
- π Node.js Service - Additional development/API service
- Network Analysis: Nmap, Wireshark, net-tools
- Exploitation: Metasploit, exploitdb, python3-impacket
- Password Attacks: Hashcat, Hydra, CrackMapExec
- Active Directory: Bloodhound, CrackMapExec, Impacket
- Web Tools: Proxychains, curl, wget
- Development: PowerShell, Python3, Java, Go, Node.js
- Windows Tools: Wine, mingw-w64, PowerSploit
- Frameworks: PowerShell Empire, additional C2 tools
- Operating System: Ubuntu 20.04+ (tested)
- Docker: 20.10+ with Docker Compose v2
- Access Level: Root access required (sudo)
- Minimum: 8GB RAM, 4 CPU cores, 20GB disk space
- Recommended: 16GB+ RAM, 8+ CPU cores, 40GB+ disk space
The fresh installation method provides a complete setup with native Kasm Workspaces, native Empire C2, and containerized supporting services.
- Native Kasm Installation: Installs Kasm Workspaces 1.17.0 directly on the host
- Native Empire C2: Installs PowerShell Empire natively for better performance
- Containerized Services: Supporting services run in Docker containers
- Automated Setup: Complete system configuration and package installation
- Self-Healing: Includes monitoring and repair capabilities
# Clone the repository
git clone https://github.com/attck-nexus/rtpi-pen.git
cd rtpi-pen
# Make the script executable
chmod +x fresh-rtpi-pen.sh
# Run the complete installation (requires root)
sudo ./fresh-rtpi-pen.sh
# After installation, start containerized services
docker compose up -d
The advanced build method includes SSL certificate automation with Let's Encrypt and Cloudflare DNS.
- SSL Certificate Automation: Automatic Let's Encrypt certificate generation
- Cloudflare DNS Management: Automated DNS record creation
- Production Ready: Secure configuration for production environments
- Custom Domain Support: Support for custom organizational domains
# Make the script executable
chmod +x build.sh
# Deploy with SSL certificates for organization "myorg"
sudo ./build.sh --slug myorg --enable-ssl
# Deploy with custom server IP
sudo ./build.sh --slug myorg --enable-ssl --server-ip 192.168.1.100
# Standard deployment (no SSL)
sudo ./build.sh
Generated SSL-enabled domains (example with slug 'myorg'):
myorg.attck-node.net
- Main dashboardmyorg-reports.attck-node.net
- SysReptormyorg-empire.attck-node.net
- Empire C2myorg-mgmt.attck-node.net
- Portainermyorg-kasm.attck-node.net
- Kasm Workspaces
For detailed SSL configuration, see SSL_AUTOMATION_README.md.
Service | Primary URL | Direct URL | Description |
---|---|---|---|
Kasm Workspaces | - | https://localhost:8443 | Virtual desktop environment |
Empire C2 | - | http://localhost:1337 | Command & Control framework |
Portainer | - | https://localhost:9443 | Container management |
SysReptor | - | http://localhost:7777 | Reporting platform |
Self-Healing API | - | http://localhost:8888/health | Health monitoring |
Docker Registry | - | http://localhost:5001 | Local container registry |
Service | SSL URL | Description |
---|---|---|
Main Dashboard | https://[slug].attck-node.net | Unified portal |
SysReptor | https://[slug]-reports.attck-node.net | Reporting platform |
Empire C2 | https://[slug]-empire.attck-node.net | Command & Control |
Portainer | https://[slug]-mgmt.attck-node.net | Container management |
Kasm Workspaces | https://[slug]-kasm.attck-node.net | Virtual desktops |
RTPI-PEN includes a hosts configuration script that provides clean, memorable URLs for all services.
# Add custom hostnames to /etc/hosts
sudo ./setup/configure-hosts.sh add
# Remove custom hostnames
sudo ./setup/configure-hosts.sh remove
# Verify hostname resolution
./setup/configure-hosts.sh verify
# Show current RTPI-PEN entries
./setup/configure-hosts.sh show
# Backup current hosts file
sudo ./setup/configure-hosts.sh backup
# Restore from backup
sudo ./setup/configure-hosts.sh restore
Service | Custom URL | Standard URL |
---|---|---|
Kasm Workspaces | https://kasm.rtpi.local:8443 | https://localhost:8443 |
Empire C2 | http://empire.rtpi.local:1337 | http://localhost:1337 |
Portainer | https://portainer.rtpi.local:9443 | https://localhost:9443 |
SysReptor | http://sysreptor.rtpi.local:7777 | http://localhost:7777 |
Self-Healing API | http://healer.rtpi.local:8888 | http://localhost:8888 |
Docker Registry | http://registry.rtpi.local:5001 | http://localhost:5001 |
The script also configures shorter alternative names:
kasm.local
,empire.local
,portainer.local
,sysreptor.local
admin.rtpi.local
,dashboard.rtpi.local
,tools.rtpi.local
# Check system status
systemctl status kasm empire
# View service logs
journalctl -u kasm -f
journalctl -u empire -f
# Start/stop native services
sudo systemctl start kasm empire
sudo systemctl stop kasm empire
# Restart native services
sudo systemctl restart kasm empire
# View container status
docker compose ps
# View all logs
docker compose logs -f
# View specific service logs
docker compose logs -f rtpi-healer
# Restart specific service
docker compose restart rtpi-proxy
# Stop all containers
docker compose down
# Start all containers
docker compose up -d
# Check self-healing service
curl http://localhost:8888/health
# Check Empire C2 status
curl http://localhost:1337/api/v2/admin/users
# Check Kasm status
curl -k https://localhost:8443/api/public/get_token
# Check database connectivity
docker compose exec rtpi-database pg_isready -U rtpi
rtpi_database_data
- Main PostgreSQL datartpi_cache_data
- Redis cache datartpi_orchestrator_data
- Portainer configurationrtpi_tools_data
- Security tools datartpi_healer_data
- Self-healing service datasysreptor-app-data
- SysReptor application datasysreptor-caddy-data
- Caddy proxy dataempire_data
- Empire C2 framework data (if containerized)registry_data
- Local Docker registry data
- Kasm Workspaces:
/opt/kasm/current/
- Empire C2:
/opt/Empire/
- SSL Certificates:
/opt/rtpi-pen/certs/
# Backup container volumes
docker run --rm -v rtpi_database_data:/data -v $(pwd):/backup alpine tar czf /backup/database-backup.tar.gz -C /data .
# Backup native services
sudo tar czf kasm-backup.tar.gz -C /opt/kasm/current .
sudo tar czf empire-backup.tar.gz -C /opt/Empire .
# Backup SSL certificates (if using advanced build)
sudo tar czf certs-backup.tar.gz -C /opt/rtpi-pen/certs .
- Kasm Workspaces:
admin@kasm.local
/password
(change on first login) - Empire C2:
empireadmin
/password123
(check/opt/Empire/empire/server/config.yaml
)
- Portainer:
admin
/admin
(set on first access) - SysReptor: No default credentials (set during first setup)
- Main Database:
rtpi
/rtpi_secure_password
- SysReptor Database:
sysreptor
/sysreptorpassword
- Redis Cache:
rtpi_redis_password
# Access tools container
docker compose exec rtpi-tools /bin/bash
# Install additional tools
apt update && apt install -y your-tool
# Install Python packages
pip3 install your-package
# Access native Empire installation
cd /opt/Empire
./ps-empire client
# Edit service configuration
nano services/rtpi-proxy/nginx/conf.d/rtpi-pen.conf
# Rebuild and restart service
docker compose build rtpi-proxy
docker compose restart rtpi-proxy
# Edit native service configurations
sudo nano /opt/kasm/current/conf/app/kasmweb.yaml
sudo nano /opt/Empire/empire/server/config.yaml
# Check installation logs
tail -f /var/log/syslog | grep -E "(kasm|empire)"
# Verify native services
systemctl status kasm empire
# Check container status
docker compose ps
# Check for port conflicts
sudo netstat -tlnp | grep -E "(80|443|1337|8443|9443)"
# Check specific service logs
journalctl -u empire -f
journalctl -u kasm -f
# Check container logs
docker compose logs rtpi-healer
# Check file permissions
ls -la /opt/Empire/ps-empire
ls -la /opt/kasm/current/
# Check Docker networks
docker network ls
# Test connectivity
docker compose exec rtpi-proxy ping rtpi-database
# Check firewall rules
sudo ufw status
# Check database connectivity
docker compose exec rtpi-database pg_isready -U rtpi
# Connect to database
docker compose exec rtpi-database psql -U rtpi -d rtpi_main
# Check database logs
docker compose logs rtpi-database
- RAM: 8GB
- CPU: 4 cores
- Disk: 20GB free space
- Network: Internet connectivity for initial setup
- RAM: 16GB+
- CPU: 8+ cores
- Disk: 40GB+ free space
- Network: Dedicated network segment
- Native Services: Kasm and Empire run natively for better performance
- Containerized Services: Supporting services run in isolated containers
- Network: Internal container networks for security
- Storage: Persistent volumes for data retention
This platform includes penetration testing tools and frameworks designed for authorized security testing only.
- Network Segmentation: Services isolated by function
- SSL Support: Automated certificate management
- Access Controls: Role-based access through services
- Container Isolation: Strict isolation between services
- Native Security: Critical services run natively for better control
- Only use in authorized environments
- Isolate from production networks
- Change default passwords immediately
- Keep services updated regularly
- Monitor service logs for anomalies
- Use proper firewall rules
- Implement network segmentation
rtpi-pen/
βββ fresh-rtpi-pen.sh # Main installation script
βββ build.sh # Advanced build with SSL
βββ docker-compose.yml # Container orchestration
βββ README.md # This file
βββ SSL_AUTOMATION_README.md # SSL configuration guide
βββ configs/ # Configuration files
β βββ rtpi-empire/ # Empire C2 configuration
β βββ rtpi-sysreptor/ # SysReptor configuration
βββ services/ # Container service definitions
β βββ rtpi-cache/ # Redis cache service
β βββ rtpi-database/ # PostgreSQL database
β βββ rtpi-healer/ # Self-healing service
β βββ rtpi-orchestrator/ # Portainer service
β βββ rtpi-proxy/ # Nginx reverse proxy
β βββ rtpi-tools/ # Security tools container
β βββ rtpi-web/ # Web dashboard
βββ setup/ # Setup and maintenance scripts
β βββ cert_manager.sh # SSL certificate management
β βββ cert_renewal.sh # Certificate renewal
β βββ cloudflare_dns_manager.sh # DNS management
βββ legacy/ # Legacy deployment methods
βββ repair-scripts/ # Emergency repair scripts
- Check the troubleshooting section above
- Review service logs:
journalctl -u [service]
ordocker compose logs [service]
- Check system requirements and port conflicts
- Verify all services are running:
systemctl status kasm empire
- Fork the repository
- Create a feature branch
- Test your changes thoroughly
- Submit a pull request with detailed description
When reporting issues, please include:
- Operating system and version
- System specifications (RAM, CPU, disk)
- Installation method used
- Output of
systemctl status kasm empire
- Output of
docker compose ps
- Relevant log output
See the LICENSE file for details.
Built for security professionals, by security professionals π΄
sudo ./fresh-rtpi-pen.sh # Fresh installation
sudo ./build.sh --slug myorg --enable-ssl # Advanced with SSL
systemctl status kasm empire # Check native services
docker compose ps # Check containers
docker compose logs -f # View all logs
curl http://localhost:8888/health # Self-healing status
curl -k https://localhost:8443/api/public/get_token # Kasm status
curl http://localhost:1337/api/v2/admin/users # Empire status
For detailed configuration and troubleshooting, refer to the sections above.