Skip to content

Commit 391b9f6

Browse files
author
tatanus
committed
updates to fix errors in nessus install
1 parent 3b3619f commit 391b9f6

2 files changed

Lines changed: 60 additions & 3 deletions

File tree

lib/common_core

modules/tools/nessus.sh

Lines changed: 59 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,55 @@ set -uo pipefail
1616
TOOL_CATEGORY_MAP["nessus"]="exploitation"
1717
APP_TESTS["nessus"]="/opt/nessus/bin/nasl -h"
1818

19+
###############################################################################
20+
# wait_for_nessus_ready
21+
#==============================
22+
# Wait until Nessus service is fully initialized and ready for CLI actions
23+
#————————————————————
24+
# Usage:
25+
# wait_for_nessus_ready <timeout_seconds>
26+
#
27+
# Example:
28+
# wait_for_nessus_ready 120 # waits up to two minutes
29+
#
30+
# Return Values:
31+
# 0 = success (ready)
32+
# 1 = timeout
33+
# 2 = service not running
34+
###############################################################################
35+
function wait_for_nessus_ready() {
36+
local timeout="${1:-120}" # default: 120 seconds max
37+
local log_file="/opt/nessus/var/nessus/logs/nessusd.messages"
38+
local db_file="/opt/nessus/var/nessus/global.db"
39+
40+
echo "[*] Checking Nessus service status..."
41+
if ! systemctl is-active --quiet nessusd.service; then
42+
echo "[!] Nessus service is NOT running."
43+
return 2
44+
fi
45+
46+
echo "[*] Waiting up to ${timeout}s for Nessus to become ready..."
47+
local elapsed=0
48+
local interval=2
49+
50+
while ((elapsed < timeout)); do
51+
# Check DB existence and minimum expected size
52+
if [[ -f "${db_file}" ]] && [[ $(stat -c%s "${db_file}" 2> /dev/null) -gt 200000 ]]; then
53+
# Look for "Nessus is ready" in log
54+
if grep -q "Nessus is ready" "${log_file}" 2> /dev/null; then
55+
echo "[+] Nessus is ready after ${elapsed}s!"
56+
return 0
57+
fi
58+
fi
59+
60+
sleep "${interval}"
61+
((elapsed += interval))
62+
done
63+
64+
echo "[!] Timeout reached. Nessus did not report ready."
65+
return 1
66+
}
67+
1968
function install_nessus() {
2069
# Check required environment variables
2170
check_env_var "INSTALL_NESSUS" || return "${FAIL}"
@@ -56,14 +105,22 @@ function install_nessus() {
56105
fi
57106
if ${SETUP_NESSUS}; then
58107
systemctl start nessusd.service
59-
# Add a new user (automated user addition)
60-
/opt/nessus/sbin/nessuscli adduser "${NESSUS_USER}" << EOF
108+
109+
if wait_for_nessus_ready 180; then
110+
# Add a new user (automated user addition)
111+
info "[+] Proceeding with Nessus CLI actions..."
112+
/opt/nessus/sbin/nessuscli adduser << EOF
61113
${NESSUSPASSWORD}
62114
${NESSUSPASSWORD}
63115
y
64116
65117
y
66118
EOF
119+
else
120+
warn "[!] Aborting — Nessus never initialized fully."
121+
return
122+
fi
123+
67124
# Make Nessus listen only on 127.0.0.1
68125
/opt/nessus/sbin/nessuscli fix --set listen_address=127.0.0.1
69126
# Register Nessus

0 commit comments

Comments
 (0)