Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Authenticated (credentialed) vulnerability scanning uses valid system credentials to log into target hosts and perform deep inspection of installed software, patches, configurations, and security sett
.claude/skills/performing-authenticated-vulnerability-scan/SKILL.md| Model | Eval pass | Runs |
|---|---|---|
| gemini-3.6-flash | 95% | 122 |
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | — | — |
| case-07 | ✗→✓ | ▲ Improved | — | — |
| case-09 | ✗→✓ | ▲ Improved | — | — |
| case-04 | ✗→✓ | ▲ Improved | — | — |
| case-19 | ✗→✓ | ▲ Improved | — | — |
Authenticated (credentialed) vulnerability scanning uses valid system credentials to log into target hosts and perform deep inspection of installed software, patches, configurations, and security settings. Compared to unauthenticated scanning, credentialed scans detect 45-60% more vulnerabilities with significantly fewer false positives because they can directly query installed packages, registry keys, and file system contents.
Unauthenticated scanning can only assess externally visible services and banners, often leading to:
Authenticated scanning resolves these by directly querying the target OS.
bash# Linux: Create scan service account sudo useradd -m -s /bin/bash -c "Vulnerability Scanner Service Account" nessus_svc sudo usermod -aG sudo nessus_svc # Configure sudo for passwordless specific commands echo 'nessus_svc ALL=(ALL) NOPASSWD: /usr/bin/dpkg -l, /usr/bin/rpm -qa, \ /bin/cat /etc/shadow, /usr/sbin/dmidecode, /usr/bin/find' | sudo tee /etc/sudoers.d/nessus_svc # Generate SSH key pair sudo -u nessus_svc ssh-keygen -t ed25519 -f /home/nessus_svc/.ssh/id_ed25519 -N "" # Distribute public key to targets for host in $(cat target_hosts.txt); do ssh-copy-id -i /home/nessus_svc/.ssh/id_ed25519.pub nessus_svc@$host done
powershell# Windows: Create scan service account via PowerShell New-ADUser -Name "SVC_VulnScan" ` -SamAccountName "SVC_VulnScan" ` -UserPrincipalName "SVC_VulnScan@domain.local" ` -Description "Vulnerability Scanner Service Account" ` -PasswordNeverExpires $true ` -CannotChangePassword $true ` -Enabled $true ` -AccountPassword (Read-Host -AsSecureString "Enter Password") # Add to local Administrators group on targets via GPO or: Add-ADGroupMember -Identity "Domain Admins" -Members "SVC_VulnScan" # For least privilege, use a dedicated GPO for local admin rights instead # Enable WinRM on targets Enable-PSRemoting -Force Set-Item WSMan:\localhost\Service\AllowRemote -Value $true winrm set winrm/config/service '@{AllowUnencrypted="false"}'
json{ "credentials": { "add": { "Host": { "SSH": [{ "auth_method": "public key", "username": "nessus_svc", "private_key": "/path/to/id_ed25519", "elevate_privileges_with": "sudo", "escalation_account": "root" }], "Windows": [{ "auth_method": "Password", "username": "DOMAIN\\SVC_VulnScan", "password": "stored_in_vault", "domain": "domain.local" }], "SNMPv3": [{ "username": "nessus_snmpv3", "security_level": "authPriv", "auth_algorithm": "SHA-256", "auth_password": "stored_in_vault", "priv_algorithm": "AES-256", "priv_password": "stored_in_vault" }] } } } }
bash# Test SSH connectivity ssh -i /path/to/key -o ConnectTimeout=10 nessus_svc@target_host "uname -a && sudo dpkg -l | head -5" # Test WinRM connectivity python3 -c " import winrm s = winrm.Session('target_host', auth=('DOMAIN\\\\SVC_VulnScan', 'password'), transport='ntlm') r = s.run_cmd('systeminfo') print(r.std_out.decode()) " # Test SNMP v3 connectivity snmpwalk -v3 -u nessus_snmpv3 -l authPriv -a SHA-256 -A authpass -x AES-256 -X privpass target_host sysDescr.0
Configure and launch the scan using the Nessus API:
bash# Create scan with credentials curl -k -X POST https://nessus:8834/scans \ -H "X-Cookie: token=$TOKEN" \ -H "Content-Type: application/json" \ -d '{ "uuid": "'$TEMPLATE_UUID'", "settings": { "name": "Authenticated Scan - Production", "text_targets": "192.168.1.0/24", "launch": "ON_DEMAND" }, "credentials": { "add": { "Host": { "SSH": [{"auth_method": "public key", "username": "nessus_svc", "private_key": "/keys/id_ed25519"}], "Windows": [{"auth_method": "Password", "username": "DOMAIN\\SVC_VulnScan", "password": "vault_ref"}] } } } }'
After scan completion, check credential verification results:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-05 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-18 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-16 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-12 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-13 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-15 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-14 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-07 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-09 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-11 | pass→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-17 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-01 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-06 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-20 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-04 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-08 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-19 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-03 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-22 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-10 | fail→pass | — | — | — | — | — | — | — | — | — | — | — | — |
case-21 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
case-02 | fail→fail | — | — | — | — | — | — | — | — | — | — | — | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +32 percentage points is the difference between those two pass rates over the 22 comparable cases.
The per-case answers from this run were removed by the retention sweep, so the case table below shows the verdicts without the text either arm produced. The counts above were recorded at the time and are unaffected. Answers are now kept for 180 days.
Other measured skills in the registry, with their headline benchmark lift.