-
Notifications
You must be signed in to change notification settings - Fork 33
/
Copy pathbuild-nmap-scripts-index.sh
executable file
·37 lines (37 loc) · 1.59 KB
/
build-nmap-scripts-index.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/bash
CDIR=$(pwd)
INDEX_FILE="$CDIR/docs/6-NMAP_SCRIPTS_INDEX.md"
NMAP_REPO="/tmp/nmap"
NMAP_GITHUB="https://github.com/nmap/nmap.git"
NMAP_GITHUB_BASE="https://github.com/nmap/nmap/blob/master/scripts"
echo "[+] Init the index..."
echo "# 💼 Index of the Nmap built-in scripts" > $INDEX_FILE
echo "" >> $INDEX_FILE
echo "<!-- markdown-link-check-disable -->" >> $INDEX_FILE
echo "" >> $INDEX_FILE
echo "> **Note**: 🕒 Updated on $(date +'%Y-%m-%d at %T')." >> $INDEX_FILE
echo "" >> $INDEX_FILE
echo "🏡 [Back to home](README.md)." >> $INDEX_FILE
echo "" >> $INDEX_FILE
echo "[+] Clone nmap GH repo..."
rm -rf $NMAP_REPO 2>/dev/null
git clone --quiet --depth 1 $NMAP_GITHUB $NMAP_REPO
echo "[+] Build the index based on present NSE scripts..."
cd "$NMAP_REPO/scripts"
export CDE='```'
for script in $(ls | sort)
do
script_name=$script
script_descr=$(cat $script_name | tr -d '\0' | tr '\n' ' ' | grep -Po 'description\s*=\s*(?:\[\[|").*?(?:\]\]|")' | tr -d '[' | tr -d ']' | cut -d '=' -f2 | awk '{print substr($0, 1, 100)}' | xargs -0 )
script_categories=$(cat $script_name | grep -Pzo 'categories\s*=\s*[{"a-z,\n,\s]+' | cut -d'=' -f2 | tr -d '\0' | tr -d '{' | tr -d ' ' | tr -d '"' | tr '\n' ' ' | tr ',' '/')
echo "## ${script_name%%.*}" >> $INDEX_FILE
echo "" >> $INDEX_FILE
echo "* 📝 [Source]($NMAP_GITHUB_BASE/$script_name)." >> $INDEX_FILE
echo "* 📂 $script_categories." >> $INDEX_FILE
echo "" >> $INDEX_FILE
echo "$CDE" >> $INDEX_FILE
echo "$script_descr..." >> $INDEX_FILE
echo "$CDE" >> $INDEX_FILE
echo "" >> $INDEX_FILE
done
echo "[V] Index built."