Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
1N3
GitHub Repository: 1N3/Sn1per
Path: blob/master/modes/vulnscan.sh
4036 views
1
# FULLPORTONLY MODE
2
if [[ "$MODE" = "vulnscan" ]]; then
3
if [[ "$REPORT" = "1" ]]; then
4
args="-t $TARGET"
5
if [[ ! -z "$WORKSPACE" ]]; then
6
args="$args -w $WORKSPACE"
7
LOOT_DIR=$INSTALL_DIR/loot/workspace/$WORKSPACE
8
echo -e "$OKBLUE[*]$RESET Saving loot to $LOOT_DIR [$RESET${OKGREEN}OK${RESET}$OKBLUE]$RESET"
9
mkdir -p $LOOT_DIR 2> /dev/null
10
mkdir $LOOT_DIR/domains 2> /dev/null
11
mkdir $LOOT_DIR/screenshots 2> /dev/null
12
mkdir $LOOT_DIR/nmap 2> /dev/null
13
mkdir $LOOT_DIR/notes 2> /dev/null
14
mkdir $LOOT_DIR/reports 2> /dev/null
15
mkdir $LOOT_DIR/scans 2> /dev/null
16
mkdir $LOOT_DIR/output 2> /dev/null
17
fi
18
args="$args --noreport -m vulnscan"
19
echo "$TARGET $MODE `date +"%Y-%m-%d %H:%M"`" 2> /dev/null >> $LOOT_DIR/scans/tasks.txt 2> /dev/null
20
echo "sniper -t $TARGET -m $MODE --noreport $args" >> $LOOT_DIR/scans/$TARGET-vulnscan.txt
21
sniper $args | tee $LOOT_DIR/output/sniper-$TARGET-$MODE-`date +"%Y%m%d%H%M"`.txt 2>&1
22
exit
23
fi
24
logo
25
26
echo "[sn1persecurity.com] •?((¯°·._.• Started Sn1per scan: $TARGET [$MODE] (`date +"%Y-%m-%d %H:%M"`) •._.·°¯))؟•" >> $LOOT_DIR/scans/notifications_new.txt
27
if [[ "$SLACK_NOTIFICATIONS" == "1" ]]; then
28
/bin/bash "$INSTALL_DIR/bin/slack.sh" "[sn1persecurity.com] •?((¯°·._.• Started Sn1per scan: $TARGET [$MODE] (`date +"%Y-%m-%d %H:%M"`) •._.·°¯))؟•"
29
fi
30
echo "$TARGET" >> $LOOT_DIR/domains/targets.txt
31
echo "sniper -t $TARGET -m $MODE --noreport $args" >> $LOOT_DIR/scans/running_${TARGET}_${MODE}.txt 2> /dev/null
32
ls -lh $LOOT_DIR/scans/running_*.txt 2> /dev/null | wc -l 2> /dev/null > $LOOT_DIR/scans/tasks-running.txt
33
if [[ "$NESSUS" = "1" ]]; then
34
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
35
echo -e "$OKRED RUNNING NESSUS VULNERABILITY SCAN $RESET"
36
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
37
bash /usr/share/sniper/bin/nessus.sh $TARGET $NESSUS_KEY $NESSUS_HOST $NESSUS_USERNAME $NESSUS_PASSWORD $NESSUS_POLICY_ID $LOOT_DIR
38
fi
39
if [[ "$OPENVAS" = "1" ]]; then
40
sudo openvas-start 2> /dev/null > /dev/null
41
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
42
echo -e "$OKRED RUNNING OPENVAS VULNERABILITY SCAN $RESET"
43
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
44
echo "Scanning target: $TARGET "
45
echo ""
46
echo "-----------------------------------------------"
47
echo "Listing OpenVAS version..."
48
echo "-----------------------------------------------"
49
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -O
50
echo ""
51
echo "Listing OpenVAS targets..."
52
echo "-----------------------------------------------"
53
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -T
54
echo ""
55
echo "Listing OpenVAS tasks..."
56
echo "-----------------------------------------------"
57
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -G
58
echo ""
59
echo "Creating scan task..."
60
echo "-----------------------------------------------"
61
ASSET_ID=$(omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml="<create_target><name>$TARGET</name><hosts>$TARGET</hosts></create_target>" | xmlstarlet sel -t -v /create_target_response/@id) && echo "ASSET_ID: $ASSET_ID"
62
if [[ "$ASSET_ID" == "" ]]; then
63
ASSET_ID_ERROR=$(omp -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml="<create_target><name>$TARGET</name><hosts>$TARGET</hosts></create_target>")
64
if [[ "$ASSET_ID_ERROR" == *"Target exists already"* ]]; then
65
ASSET_ID=$(omp -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -T | grep " $TARGET" | awk '{print $1}')
66
echo "ASSET_ID: $ASSET_ID"
67
fi
68
fi
69
TASK_ID=$(omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml "<create_task><name>$TARGET</name><preferences><preference><scanner_name>source_iface</scanner_name><value>eth0</value></preference></preferences><config id=\"74db13d6-7489-11df-91b9-002264764cea\"/><target id=\"$ASSET_ID\"/></create_task>" | xmlstarlet sel -t -v /create_task_response/@id) && echo "TASK_ID: $TASK_ID"
70
if [[ "TASK_ID" == "" ]]; then
71
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml "<create_task><name>$TARGET</name><preferences><preference><scanner_name>source_iface</scanner_name><value>eth0</value></preference></preferences><config id=\"74db13d6-7489-11df-91b9-002264764cea\"/><target id=\"$ASSET_ID\"/></create_task>"
72
fi
73
REPORT_ID=$(omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml "<start_task task_id=\"$TASK_ID\"/>" | cut -d\> -f3 | cut -d\< -f1) && echo "REPORT_ID: $REPORT_ID"
74
if [[ "$REPORT_ID" == "" ]]; then
75
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml "<start_task task_id=\"$TASK_ID\"/>"
76
fi
77
echo ""
78
resp=""
79
while [[ $resp != "Done" && $REPORT_ID != "" ]]
80
do
81
omp -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -G | grep $TASK_ID
82
resp=$(omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -G | grep "$TASK_ID" | awk '{print $2}')
83
sleep 60
84
done
85
if [[ $REPORT_ID != "" ]]; then
86
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD --xml "<get_reports report_id=\"$REPORT_ID\" format_id=\"6c248850-1f62-11e1-b082-406186ea4fc5\"/>" | cut -d\> -f3 | cut -d\< -f1 | base64 -d > "$LOOT_DIR/output/openvas-$TARGET.html"
87
88
echo "Report saved to $LOOT_DIR/output/openvas-$TARGET.html"
89
cat $LOOT_DIR/output/openvas-$TARGET.html 2> /dev/null
90
else
91
echo "No report ID found. Listing scan tasks:"
92
omp -h $OPENVAS_HOST -p $OPENVAS_PORT -u $OPENVAS_USERNAME -w $OPENVAS_PASSWORD -G | grep $TARGET
93
fi
94
fi
95
if [[ "$SC0PE_VULNERABLITY_SCANNER" == "1" ]]; then
96
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
97
echo -e "$OKRED RUNNING SC0PE WEB VULNERABILITY SCAN $RESET"
98
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
99
SSL="false"
100
PORT="80"
101
source $INSTALL_DIR/modes/sc0pe-passive-webscan.sh
102
source $INSTALL_DIR/modes/sc0pe-active-webscan.sh
103
SSL="true"
104
PORT="443"
105
source $INSTALL_DIR/modes/sc0pe-passive-webscan.sh
106
source $INSTALL_DIR/modes/sc0pe-active-webscan.sh
107
108
for file in `ls $INSTALL_DIR/templates/passive/web/recursive/*.sh 2> /dev/null`; do
109
source $file
110
done
111
112
source $INSTALL_DIR/modes/sc0pe-network-scan.sh
113
fi
114
115
source $INSTALL_DIR/modes/sc0pe.sh
116
117
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
118
echo -e "$OKRED SCAN COMPLETE! $RESET"
119
echo -e "${OKGREEN}====================================================================================${RESET}•x${OKGREEN}[`date +"%Y-%m-%d](%H:%M)"`${RESET}x•"
120
echo "$TARGET" >> $LOOT_DIR/scans/updated.txt
121
rm -f $LOOT_DIR/scans/running_${TARGET}_${MODE}.txt 2> /dev/null
122
ls -lh $LOOT_DIR/scans/running_*.txt 2> /dev/null | wc -l 2> /dev/null > $LOOT_DIR/scans/tasks-running.txt
123
if [[ "$SLACK_NOTIFICATIONS_NMAP" == "1" ]]; then
124
/bin/bash "$INSTALL_DIR/bin/slack.sh" postfile "$LOOT_DIR/nmap/nmap-$TARGET.txt"
125
/bin/bash "$INSTALL_DIR/bin/slack.sh" postfile "$LOOT_DIR/nmap/nmap-$TARGET-udp.txt"
126
fi
127
128
echo "[sn1persecurity.com] •?((¯°·._.• Finished Sn1per scan: $TARGET [$MODE] (`date +"%Y-%m-%d %H:%M"`) •._.·°¯))؟•" >> $LOOT_DIR/scans/notifications_new.txt
129
if [[ "$SLACK_NOTIFICATIONS" == "1" ]]; then
130
/bin/bash "$INSTALL_DIR/bin/slack.sh" "[sn1persecurity.com] •?((¯°·._.• Finished Sn1per scan: $TARGET [$MODE] (`date +"%Y-%m-%d %H:%M"`) •._.·°¯))؟•"
131
fi
132
loot
133
exit
134
fi
135
136