Skip to content

Instantly share code, notes, and snippets.

@crmaxx
Last active August 29, 2015 14:21
Show Gist options
  • Save crmaxx/c01b3ff8b6c4efba59d3 to your computer and use it in GitHub Desktop.
Save crmaxx/c01b3ff8b6c4efba59d3 to your computer and use it in GitHub Desktop.
MSF PRO control script with Netscanner
#!/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