Make your computer as tough as a honeybadger. And that is tough. Check this video...
Install the required dependencies:
- Docker: Container runtime (required)
- Lynis: Security auditing tool (required)
- neofetch: System information display (required)
- jq: JSON processor (required)
- curl: HTTP client for API calls (required)
- dmidecode: Hardware information tool (recommended for serial number collection)
- tar, sed: Standard Unix utilities (usually pre-installed)
Note: dmidecode is recommended for hardware serial number collection but not required. On virtual machines or if dmidecode is unavailable, the serial number field will show "Not available".
Debian/Ubuntu:
sudo apt install lynisFedora/RHEL:
sudo dnf install lynisArch Linux:
sudo pacman -S lynismacOS (via Homebrew):
brew install lynisFrom source (latest version):
git clone https://github.com/CISOfy/lynis
cd lynis
sudo ./lynis audit systemTo ensure you have the latest version, check https://github.com/CISOfy/lynis for updates.
Open a terminal and execute the following:
git clone https://github.com/wearetechnative/honeybadger
cd honeybadger
sudo ./RUNME.sh auditNote: The audit requires root privileges to perform a complete system security scan. The script will not run without sudo.
Honeybadger performs a comprehensive security audit and collects the following information:
- Device Serial Number - Collected via dmidecode for hardware asset tracking
- Hostname - System identification
- Model/Description - Hardware model information
- Operating System - OS type, version, and kernel information
- NixOS Metadata (NixOS only) - Nixpkgs commit hash, system generation, last rebuild date
- Disk Encryption - LUKS/dm-crypt detection
- Screen Lock - Auto-lock configuration for GNOME, KDE, Hyprland, Sway
- OS Update Status - Last update date, available updates, EOL checking
- Firewall Status - Active firewall detection
- Malware Scanner - Antivirus/scanner presence
- Lynis Hardening Score - Security hardening rating (0-100)
- Compliance Threshold: ≥65 - Systems must score 65 or higher to be compliant
- Scores are categorized: Excellent (80-100), Good (60-79), Fair (40-59), Poor (0-39)
- Security Findings - Categorized by severity: Critical, High, Medium, Low
- Package Information - Installed software inventory
The audit generates the following reports in output-<hostname>-<user>-<date>/:
final-report.md- Consolidated final audit report with all key information (asset ID, OS/kernel status, security controls, compliance metrics)asset-inventory.txt- Summary of all collected information with compliance statuslynis-report.json- Detailed Lynis security audit datalynis-report-warnings_fails.html- HTML report with color-coded security findingsos-kernel-status.txt- Operating system EOL status and recommendationsos-update-history.txt- OS update history and last update datehardware-serial.txt- Device serial numbernixos-system-info.txt- NixOS-specific metadata (NixOS only)screenlock-info.txt- Screen lock configuration detailsblockdevices.txt- Disk encryption informationinstalled-packages.txt- Complete package listing
Minimum Requirements:
- ✅ Lynis Hardening Score ≥ 65
- ✅ Disk encryption enabled (LUKS or equivalent)
- ✅ Screen lock configured with auto-lock ≤15 minutes
- ✅ OS on supported version (not EOL)
- ✅ Regular updates (within 30 days)
Systems failing these requirements will be flagged in the asset-inventory.txt report with ❌ indicators.
Honeybadger for Windows uses HardeningKitty for security auditing. No additional software installation is required.
Optional: neofetch (automatically installed via winget if missing)
Important: Administrator privileges are required for complete system auditing (BitLocker, Windows Defender, some firewall checks).
Download as ZIP from: https://github.com/wearetechnative/honeybadger/archive/refs/heads/main.zip
Extract to a location like C:\temp\honeybadger-main
Option A: Double-click (Easiest)
- Navigate to
C:\temp\honeybadger-main - Right-click on
RUNME.cmd - Select "Run as administrator"
- Click "Yes" on the UAC prompt
The script will automatically start with the correct settings.
Option B: Command Line
- Press
Windows Key - Type
cmd - Right-click on "Command Prompt"
- Select "Run as administrator"
- Run:
cd C:\temp\honeybadger-main
RUNME.cmdOption C: PowerShell (Advanced)
cd C:\temp\honeybadger-main
.\AUDIT.ps1After the audit completes, you can optionally submit the ZIP file to your compliance server:
.\submit-report.ps1First time: Copy .honeybadger.conf.example to .honeybadger.conf and configure:
SERVER_ENABLED=trueSERVER_URL=https://your-server.com/api/reportsSERVER_TOKEN=hb_token_your_token_here
The audit generates reports in report-<date>/:
honeybadger-<user>-<date>-compliance.md- ISO27001 compliance report with pass/fail statushoneybadger-<user>-<date>-actions.md- Prioritized security remediation itemshardeningkitty.csv- Detailed HardeningKitty audit resultshoneybadger-<hostname>-<user>-<date>.zip- ZIP archive containing all reports (created automatically)
- BitLocker Encryption - Full disk encryption status and protection status (detects suspended BitLocker)
- Screen Lock Settings - Screensaver timeout, power management, lock policies
- Windows Firewall - Domain, Private, and Public profile status
- Windows Update - Last update date and compliance status (<14 days compliant, 14-30 days warning, >30 days non-compliant)
- Windows Defender - Real-time protection status and definition age
- HardeningKitty Security Audit - 300+ Windows security configuration checks against CIS benchmarks and Microsoft security baselines
- Hardware Information - Serial number, system model, OS version
| Control | Threshold | Status |
|---|---|---|
| BitLocker | Encrypted AND Protection On | ✅/❌ |
| Screen Lock | ≤15 minutes + password required | ✅/❌ |
| Firewall | All profiles enabled | ✅/❌ |
| OS Updates | <14 days ✅, 14-30 days |
✅/ |
| Antivirus | Defender enabled + definitions <7 days | ✅/❌ |
The script will run without Administrator privileges but with limited functionality:
- ✅ HardeningKitty audit (works)
- ✅ Firewall check (works)
- ✅ Windows Update check (works)
- ✅ Screen Lock check (works)
- ❌ BitLocker check (requires Administrator)
⚠️ Windows Defender check (may be limited)
The script will warn you which checks are unavailable and continue with remaining checks.
When the script has run successfully, a compressed archive with findings is stored in the same directory:
Linux/macOS: honeybadger-hostname-user-date.tar.bz2 (tarball)
Windows: honeybadger-hostname-user-date.zip (ZIP archive)
Send this file to your CISO or the person who requested the audit.
You can also submit reports directly to a centralized compliance server (see Server Report Submission section below).
Honeybadger can optionally submit audit reports to a centralized honeybadger-server for compliance monitoring and tracking.
Create a configuration file at one of these locations (checked in order):
./.honeybadger.conf(current directory)~/.honeybadger.conf(user home directory)/etc/honeybadger.conf(system-wide)
Example configuration (see .honeybadger.conf.example):
# Enable server submission
SERVER_ENABLED=true
# Server URL
SERVER_URL=http://honeybadger-server:7123/
# Bearer token for authentication (required)
# Example: SERVER_TOKEN=hb_token_faa0c072984086bf2c32055cbbf40c2
SERVER_TOKEN=hb_token_your_token_here
# Connection timeout in seconds
SERVER_TIMEOUT=30
# Number of retry attempts on network failures
SERVER_RETRY_COUNT=3
# Dry-run mode: log what would be submitted without actual HTTP requests
DRY_RUN=falseAfter running an audit, you can submit reports to the server in two ways:
Submit individual report files (neofetch.json, lynis-report.json, etc.):
# Submit the most recent audit reports
./RUNME.sh submit
# Submit reports from a specific directory
./RUNME.sh submit output-hostname-user-17-03-2026Submit the complete audit package as a single tar archive (simpler, single upload):
# Submit the most recent tar archive (auto-discovery)
./RUNME.sh submit-tar
# Submit a specific tar archive
./RUNME.sh submit-tar honeybadger-hostname-user-20-03-2026.tar.gzServer Requirements:
- Individual JSON submission uses endpoint:
SERVER_URL/ - Tar archive submission uses endpoint:
SERVER_URL/submit-tar
Note: Report submission is completely separate from the audit command. The audit generates local reports only. You must explicitly run the submit command to send reports to the server.
To test submission without actually sending data to the server:
# Set DRY_RUN=true in your config file, then run:
./RUNME.sh submit
# Or for tar submission:
./RUNME.sh submit-tarThis will show what would be submitted, including the exact curl commands that would be executed.
No tar files found:
- Run an audit first:
sudo ./RUNME.sh audit - Check if tar files exist:
ls honeybadger-*.tar.gz
Connection timeout:
- Increase
SERVER_TIMEOUTin config (default: 30 seconds) - Large tar files may need longer timeout (e.g., 60-120 seconds)
Server returns 404 on /submit-tar:
- Ensure honeybadger-server supports the
/submit-tarendpoint - Verify
SERVER_URLis correct in configuration
Permission denied:
- Config file:
chmod 600 .honeybadger.conf - Tar files: ensure readable by current user
© Technative 2024-2025
