Last active
August 29, 2015 14:21
-
-
Save crmaxx/c01b3ff8b6c4efba59d3 to your computer and use it in GitHub Desktop.
MSF PRO control script with Netscanner
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
# Disabling SELinux if enabled | |
if [ -f "/usr/sbin/getenforce" ] && [ `id -u` = 0 ] ; then | |
selinux_status=`/usr/sbin/getenforce` | |
/usr/sbin/setenforce 0 2> /dev/null | |
fi | |
INSTALLDIR=/opt/metasploit | |
if [ -r "$INSTALLDIR/scripts/setenv.sh" ]; then | |
. "$INSTALLDIR/scripts/setenv.sh" | |
fi | |
ERROR=0 | |
POSTGRESQL_SCRIPT=$INSTALLDIR/postgresql/scripts/ctl.sh | |
PROSVC_SCRIPT=$INSTALLDIR/apps/pro/engine/scripts/ctl.sh | |
METASPLOIT_SCRIPT=$INSTALLDIR/apps/pro/ui/scripts/ctl.sh | |
WORKER_SCRIPT=$INSTALLDIR/apps/pro/ui/scripts/worker_ctl.sh | |
NETSCANNER_SCRIPT=/etc/init.d/unicorn_netscanner_production | |
help() { | |
echo "usage: $0 help" | |
echo " $0 (start|stop|restart|status)" | |
if test -x $POSTGRESQL_SCRIPT; then | |
echo " $0 (start|stop|restart|status) postgresql" | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
echo " $0 (start|stop|restart|status) prosvc" | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
echo " $0 (start|stop|restart|status) metasploit" | |
fi | |
if test -x $WORKER_SCRIPT; then | |
echo " $0 (start|stop|restart|status) worker" | |
fi | |
if test -x $NETSCANNER_SCRIPT; then | |
echo " $0 (start|stop|force-stop|restart|reload|upgrade|reopen-logs) netscanner" | |
fi | |
cat <<EOF | |
help - this screen | |
start - start the service(s) | |
stop - stop the service(s) | |
restart - restart or start the service(s) | |
status - show the status of the service(s) | |
EOF | |
} | |
if [ "x$1" = "xhelp" ] || [ "x$1" = "x" ]; then | |
help | |
elif [ "x$1" = "xstart" ]; then | |
if [ "x$2" = "xpostgresql" ]; then | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT start | |
POSTGRESQL_ERROR=$? | |
fi | |
elif [ "x$2" = "xprosvc" ]; then | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT start | |
PROSVC_ERROR=$? | |
fi | |
elif [ "x$2" = "xmetasploit" ]; then | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT start | |
METASPLOIT_ERROR=$? | |
fi | |
elif [ "x$2" = "xworker" ]; then | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT start | |
WORKER_ERROR=$? | |
fi | |
elif [ "x$2" = "xnetscanner" ]; then | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT start | |
NETSCANNER_ERROR=$? | |
fi | |
else | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT start | |
POSTGRESQL_ERROR=$? | |
sleep 5 | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT start | |
PROSVC_ERROR=$? | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT start | |
METASPLOIT_ERROR=$? | |
fi | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT start | |
WORKER_ERROR=$? | |
fi | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT start | |
NETSCANNER_ERROR=$? | |
fi | |
fi | |
elif [ "x$1" = "xstop" ]; then | |
if [ "x$2" = "xpostgresql" ]; then | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT stop | |
POSTGRESQL_ERROR=$? | |
sleep 5 | |
fi | |
elif [ "x$2" = "xprosvc" ]; then | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT stop | |
PROSVC_ERROR=$? | |
fi | |
elif [ "x$2" = "xmetasploit" ]; then | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT stop | |
METASPLOIT_ERROR=$? | |
fi | |
elif [ "x$2" = "xworker" ]; then | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT stop | |
WORKER_ERROR=$? | |
fi | |
elif [ "x$2" = "xnetscanner" ]; then | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT stop | |
NETSCANNER_ERROR=$? | |
fi | |
else | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT stop | |
NETSCANNER_ERROR=$? | |
fi | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT stop | |
WORKER_ERROR=$? | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT stop | |
METASPLOIT_ERROR=$? | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT stop | |
PROSVC_ERROR=$? | |
fi | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT stop | |
POSTGRESQL_ERROR=$? | |
fi | |
fi | |
elif [ "x$1" = "xrestart" ]; then | |
if [ "x$2" = "xpostgresql" ]; then | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT stop | |
sleep 5 | |
$POSTGRESQL_SCRIPT start | |
POSTGRESQL_ERROR=$? | |
fi | |
elif [ "x$2" = "xprosvc" ]; then | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT stop | |
sleep 2 | |
$PROSVC_SCRIPT start | |
PROSVC_ERROR=$? | |
fi | |
elif [ "x$2" = "xmetasploit" ]; then | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT stop | |
sleep 2 | |
$METASPLOIT_SCRIPT start | |
METASPLOIT_ERROR=$? | |
fi | |
elif [ "x$2" = "xworker" ]; then | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT stop | |
sleep 2 | |
$WORKER_SCRIPT start | |
WORKER_ERROR=$? | |
fi | |
elif [ "x$2" = "xnetscanner" ]; then | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT stop | |
sleep 2 | |
$NETSCANNER_SCRIPT start | |
NETSCANNER_ERROR=$? | |
fi | |
else | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT stop | |
NETSCANNER_ERROR=$? | |
fi | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT stop | |
WORKER_ERROR=$? | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT stop | |
METASPLOIT_ERROR=$? | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT stop | |
PROSVC_ERROR=$? | |
fi | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT stop | |
sleep 2 | |
$POSTGRESQL_SCRIPT start; | |
POSTGRESQL_ERROR=$? | |
sleep 2 | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT start | |
PROSVC_ERROR=$? | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT start | |
METASPLOIT_ERROR=$? | |
fi | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT start | |
WORKER_ERROR=$? | |
fi | |
if test -x $NETSCANNER_SCRIPT; then | |
$NETSCANNER_SCRIPT start | |
NETSCANNER_ERROR=$? | |
fi | |
fi | |
elif [ "x$1" = "xstatus" ]; then | |
if [ "x$2" = "xpostgresql" ]; then | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT status | |
sleep 2 | |
fi | |
elif [ "x$2" = "xprosvc" ]; then | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT status | |
fi | |
elif [ "x$2" = "xmetasploit" ]; then | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT status | |
fi | |
elif [ "x$2" = "xworker" ]; then | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT status | |
fi | |
else | |
if test -x $POSTGRESQL_SCRIPT; then | |
$POSTGRESQL_SCRIPT status | |
fi | |
if test -x $PROSVC_SCRIPT; then | |
$PROSVC_SCRIPT status | |
fi | |
if test -x $METASPLOIT_SCRIPT; then | |
$METASPLOIT_SCRIPT status | |
fi | |
if test -x $WORKER_SCRIPT; then | |
$WORKER_SCRIPT status | |
fi | |
fi | |
fi | |
# Checking for errors | |
for e in $POSTGRESQL_ERROR $PROSVC_ERROR $METASPLOIT_ERROR $WORKER_ERROR $NETSCANNER_ERROR; do | |
if [ $e -gt 0 ]; then | |
ERROR=$e | |
fi | |
done | |
# Restoring SELinux | |
if [ -f "/usr/sbin/getenforce" ] && [ `id -u` = 0 ] ; then | |
/usr/sbin/setenforce $selinux_status 2> /dev/null | |
fi | |
exit $ERROR |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment