network/metasploit: Added (The Metasploit Framework)

Signed-off-by: Robby Workman <rworkman@slackbuilds.org>
This commit is contained in:
Andrea Villa 2013-02-17 12:35:10 -06:00 committed by Robby Workman
parent 7ef84b5770
commit c9b228669f
8 changed files with 253 additions and 0 deletions

13
network/metasploit/README Normal file
View file

@ -0,0 +1,13 @@
The Metasploit Framework is a development platform for creating security
tools and exploits. The framework is used by network security professionals
to perform penetration tests, system administrators to verify patch
installations, product vendors to perform regression testing, and security
researchers world-wide. The framework is written in the Ruby programming
language and includes components written in C and assembler.
This is just a repackaged version of the installer you get from the Metasploit
download page. This is an all-in-one installer with Metasploit's own versions
of Ruby, Java, and PostgreSQL.
Take a look at README.SLACKWARE for important build requirements and upgrading
suggestions.

View file

@ -0,0 +1,34 @@
Please run the SlackBuild script as root user.
You will need "postgres" user and group before running the installer, if you
haven't installed SlackBuilds PostgreSQL you should run these commands to be
compatible:
# groupadd -g 209 postgres
# useradd -u 209 -g 209 -d /var/lib/pgsql postgres
otherwise, you're already setup. Also, remember to add something like:
# Start Metasploit Framework PostgreSQL
if [ -x /etc/rc.d/rc.metasploit ]; then
/etc/rc.d/rc.metasploit start
fi
to /etc/rc.d/rc.local to start the shipped PostgreSQL daemon and something
like:
# Stop Metasploit Framework PostgreSQL
if [ -x /etc/rc.d/rc.metasploit ]; then
/etc/rc.d/rc.metasploit stop
fi
to /etc/rc.d/rc.local_shutdown to stop the service.
Default database server listening port is 7175, if you want to use another
port, just export the PG_PORT variable when running the SlackBuild, like this:
# PG_PORT="5454" ./metasploit.SalckBuild
An optional cron script to keep the framework up to date is distributed inside
the /usr/doc/metasploit-${VERSION} directory and it's called "msfupdate.sh",
there also is a logrotate config file called "msfupdate.logrotate" which can
be useful.

View file

@ -0,0 +1,23 @@
config() {
NEW="$1"
OLD="`dirname $NEW`/`basename $NEW .new`"
# If there's no config file by that name, mv it over:
if [ ! -r $OLD ]; then
mv $NEW $OLD
elif [ "`cat $OLD | md5sum`" = "`cat $NEW | md5sum`" ]; then # toss the redundant copy
rm $NEW
fi
# Otherwise, we leave the .new copy for the admin to consider...
}
# Keep same perms on rc.metasploit.new:
if [ -e etc/rc.d/rc.metasploit ]; then
cp -a etc/rc.d/rc.metasploit etc/rc.d/rc.metasploit.new.incoming
cat etc/rc.d/rc.metasploit.new > etc/rc.d/rc.metasploit.new.incoming
mv etc/rc.d/rc.metasploit.new.incoming etc/rc.d/rc.metasploit.new
fi
config etc/rc.d/rc.metasploit.new
# Initialize a msf3 git repo for msfupdate
( cd opt/metasploit/apps/pro/msf3
git init >/dev/null )

View file

@ -0,0 +1,142 @@
#!/bin/sh
# Slackware build script for Metasploit Framework
# Copyright 2013 Andrea Villa <andreakarimodm@gmail.com>
# Copyright 2010-2011 Marco Bonetti <sid77@slackware.it>
# All rights reserved.
#
# Redistribution and use of this script, with or without modification, is
# permitted provided that the following conditions are met:
#
# 1. Redistributions of this script must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
PRGNAM=metasploit
VERSION=${VERSION:-4.5.2}
BUILD=${BUILD:-1}
TAG=${TAG:-_SBo}
# Automatically determine the architecture we're building on:
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
i?86) ARCH=i486 ;;
arm*) ARCH=arm ;;
# Unless $ARCH is already set, use uname -m for all other archs:
*) ARCH=$( uname -m ) ;;
esac
fi
CWD=$(pwd)
TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
BASEINSTDIR="opt"
INSTDIR="$BASEINSTDIR/metasploit"
# PostgreSQL user and group
PG_UID=${PG_UID:-209}
PG_GID=${PG_GID:-209}
# On which port is PostgreSQL listening to?
# Default is 7175, set PG_PORT to any other value if you want to customize it.
PG_PORT=${PG_PORT:-7175}
# Bail out if user or group isn't valid on your system
# For slackbuilds.org, assigned postgres uid/gid are 209/209
# See http://slackbuilds.org/uid_gid.txt
# Other popular choice is 26/26
if ! grep ^postgres: /etc/group 2>&1 > /dev/null; then
echo " You must have a postgres group to run this script."
echo " # groupadd -g $PG_GID postgres"
exit 1
elif ! grep ^postgres: /etc/passwd 2>&1 > /dev/null; then
echo " You must have a postgres user to run this script."
echo " # useradd -u $PG_UID -g $PG_GID -d /var/lib/pgsql postgres"
exit 1
fi
if [ "$ARCH" = "i486" ]; then
INSTALLERARCH=""
elif [ "$ARCH" = "i686" ]; then
INSTALLERARCH=""
elif [ "$ARCH" = "x86_64" ]; then
INSTALLERARCH="-x64"
fi
set -e
rm -rf $PKG
mkdir -p $TMP $PKG $OUTPUT
# Install Metasploit Framework DIRECTLY under /opt/metasploit (sorry!)
echo "Installing the Metasploit Framework..."
chown root:root $CWD/metasploit-$VERSION-linux$INSTALLERARCH-installer.run
chmod 755 $CWD/metasploit-$VERSION-linux$INSTALLERARCH-installer.run
$CWD/metasploit-$VERSION-linux$INSTALLERARCH-installer.run \
--mode unattended \
--unattendedmodeui none \
--postgres_port $PG_PORT
# Stop Metasploit Framework PostgreSQL
echo "Stopping Metasploit Framework..."
INITSCRIPT=metasploit
/etc/init.d/$INITSCRIPT stop
# Move install dir
mkdir -p $PKG/$BASEINSTDIR
mv /$INSTDIR $PKG/$BASEINSTDIR/
# Fix init script and move it to the right directory
# This script is not handled by the uninstaller and the user should not call
# the uninstall script anyway, so no problem if we made it more Slackware-ish
echo "Fixing Metasploit Framework init script..."
mkdir -p $PKG/etc/rc.d
mv /etc/init.d/$INITSCRIPT $PKG/etc/rc.d/rc.$INITSCRIPT.new
chown root:root $PKG/etc/rc.d/rc.$INITSCRIPT.new
chmod 755 $PKG/etc/rc.d/rc.$INITSCRIPT.new
# Default installation makes pro stuff, starting metasploit_SCRIPT and PROSVC_SCRIPT. Disable this...
# We want only to start framework's PostgresSQL
chmod -x $PKG/$INSTDIR/apps/pro/ui/scripts/ctl.sh
chmod -x $PKG/$INSTDIR/apps/pro/engine/scripts/ctl.sh
# Install /usr/bin links
mkdir -p $PKG/usr/bin
echo "Installing links into /usr/bin..."
( cd $PKG/usr/bin
for file in $(ls ../../$INSTDIR/app/msf*); do
ln -sf $file $(basename $file)
done
# also links armitage
ln -sf ../../$INSTDIR/app/armitage armitage
)
# Every useful doc is included inside the framework folder, just copy over the
# README which contains the important copyright disclaimer and the cron script
mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION
cp -a $PKG/$INSTDIR/apps/pro/msf3/README.md $PKG/usr/doc/$PRGNAM-$VERSION
cat $CWD/msfupdate.sh > $PKG/usr/doc/$PRGNAM-$VERSION/msfupdate.sh
cat $CWD/msfupdate.logrotate > $PKG/usr/doc/$PRGNAM-$VERSION/msfupdate.logrotate
cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild
cat $CWD/README.SLACKWARE > $PKG/usr/doc/$PRGNAM-$VERSION/README.SLACKWARE
mkdir -p $PKG/install
cat $CWD/slack-desc > $PKG/install/slack-desc
cat $CWD/doinst.sh > $PKG/install/doinst.sh
# Do NOT chown -R root:root or it will bork the shipped PostgreSQL
# installation: the bitrock installer should have taken care of permissions
cd $PKG
/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz}

View file

@ -0,0 +1,10 @@
PRGNAM="metasploit"
VERSION="4.5.2"
HOMEPAGE="http://www.metasploit.com/"
DOWNLOAD="http://downloads.metasploit.com/data/releases/archive/metasploit-4.5.2-linux-installer.run"
MD5SUM="ae927cd94b7140c9ee559951f18941e5"
DOWNLOAD_x86_64="http://downloads.metasploit.com/data/releases/archive/metasploit-4.5.2-linux-x64-installer.run"
MD5SUM_x86_64="2472c672951d6a1171c3c352a6577301"
REQUIRES=""
MAINTAINER="Andrea Villa"
EMAIL="andreakarimodm@gmail.com"

View file

@ -0,0 +1,10 @@
/var/log/msfupdate.log {
daily
rotate 5
compress
delaycompress
missingok
notifempty
create 0644 root root
}

View file

@ -0,0 +1,2 @@
#!/bin/sh
/usr/bin/msfupdate >> /var/log/msfupdate.log 2>&1

View file

@ -0,0 +1,19 @@
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.
# Line up the first '|' above the ':' following the base package name, and
# the '|' on the right side marks the last column you can put a character in.
# You must make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':' except on otherwise blank lines.
|-----handy-ruler------------------------------------------------------|
metasploit: The Metasploit Framework (http://www.metasploit/)
metasploit:
metasploit: The Metasploit Framework is a development platform for creating
metasploit: security tools and exploits. The framework is used by network
metasploit: security professionals to perform penetration tests, system
metasploit: administrators to verify patch installations, product vendors to
metasploit: perform regression testing, and security researchers world-wide.
metasploit: The framework is written in the Ruby programming language and
metasploit: includes components written in C and assembler.
metasploit:
metasploit: