metasploit: optional eselect script. It allows to specify one permanent msf path in other tools such as set, sqlmap.

This commit is contained in:
Anton Bolshakov 2012-06-22 12:17:03 +00:00
parent 612b76f85a
commit 372b173d89
3 changed files with 122 additions and 5 deletions

View file

@ -1,5 +1,6 @@
AUX armitage.yml 481 RMD160 d2f742ce1660a4ad43859b2ff6468d33716c2c74 SHA1 731283171a27cb2f4617c73df4ce0da6dcd3aef7 SHA256 2db3df7b05f28aa5ba6d6dedc32d8d1a2e24e020d6fd8aea15b2e76ed0f6ab46
AUX hashdump2_script_6ac6c1d.rb 11382 RMD160 faabc47a80ae4a76f42a6364c08c38b961506555 SHA1 65a2db4982f240767b7e69b694cd900c8f908fa5 SHA256 2535f9d3bac1f559b4e5d827e5847b08fe0477bbcb8585960ad45ff15ab30c63
AUX metasploit.eselect 2651 RMD160 5184fe923041da540bae0164e0c49af6622c6b53 SHA1 49538db933a284e48c64f06918e698d03fc2c1ab SHA256 c9c5ef85060b9ff1f07fb4707a7e476b3207ebc5d98d0ca8b70ca6cd115fb0d5
AUX msfrpcd.confd 443 RMD160 03cafbafba9af1f6a4e70810942f11b7086dc98f SHA1 fb4c3aab4b1e38ddeaeafe69b1e72ce81fba3505 SHA256 8d29b5975f1c91ecd6ec552b04e8fc82e0a6fe2c782d6b214544d9a01f73eeb3
AUX msfrpcd.initd 622 RMD160 d5923c49a9a7a4e6010c2b2e8927d13dfee8e9ef SHA1 9c664a4f8b6df69ec859e5bdcd71908b8f43856d SHA256 d6b7f865ccd3d7795e65886e2e46ce023aa56b519c12a9f41616ff21988579c9
AUX msfweb.confd 273 RMD160 35c10406c74e431aa592c7af6d14f813ad18b984 SHA1 66cff0fe0423baa89ffdd3745b7195ae0f0bf273 SHA256 006040ecd27dc0279c2bea6d69365fe1f0d66f507c039ae43720662abe9f4460
@ -9,4 +10,4 @@ DIST framework-2.7.tar.gz 5800216 RMD160 cfdf2705522c845bb4405413207a7df0f3873b9
DIST jboss_seam_remote_command_rb 3412 RMD160 c577b1bd75943f2ddceea3161bc1037dd0150c2f SHA1 b858c726d3ee26317726635373d5db3b7eeb774d SHA256 c87f1cc1b82ed105c7bf551db7e3bad0a787244c4cdd124015a3ff24cedd23df
DIST vbsmem-1.2.1.patch 69002 RMD160 281461151b0d1e453ee613326f4457eebaddebaa SHA1 883a582552e00102be452a2a0105b9e016b3dccc SHA256 7991a5629c562817919c9bb1c8f0a3bdcd1c63cf9b9f32f322d1d266416589d2
EBUILD metasploit-2.7-r1.ebuild 1689 RMD160 c042574474bb0d98280c87221aaa059e4cd19c1a SHA1 153b6db16f42488af570ebafc466935848f137f0 SHA256 160811ff63adbdad713edf6c74375d4cd8463df5492bb0250f72fe772ee24fa8
EBUILD metasploit-9999.ebuild 9762 RMD160 35ce53d8f37e796cd6f477f1e68bc7690f463d0d SHA1 36caf0ac4a6357f873af5cb728db68be6d8c28e2 SHA256 1178c022ae329a9496f0309ce7ceb9283ffd6cce346ede09ff8bd1da8cdb363c
EBUILD metasploit-9999.ebuild 10023 RMD160 93faff619bae20439824f326d13fdfb11a276e41 SHA1 2774d40c3ac06045ff7ce7fe5dc8a5d1106bcd08 SHA256 e747771ed1719ebcfe3b10fbac0cdd7d421addc1cc7a97cb8c1786897d90afb8

View file

@ -0,0 +1,108 @@
# -*-eselect-*- vim: ft=eselect
# Copyright 2005-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2 or later
# $
DESCRIPTION="Manage the /usr/lib/metasploit"
MAINTAINER="zerochaos@pentoo.ch"
SVN_DATE='$Date: 2011-09-25 15:27:36 +0200 (Sun, 25 Sep 2011) $'
VERSION=$(svn_date_to_version "${SVN_DATE}")
MSFPATH="/usr/lib/metasploit"
# find a list of metasploit symlink targets and sort them
find_targets() {
local f
for f in "${EROOT}${MSFPATH}"[[:digit:]]*; do
[[ -d ${f} ]] && basename "${f}"
done | LC_ALL=C sort
}
# remove the metasploit symlink
remove_symlink() {
rm "${EROOT}${MSFPATH}"
}
# set the metasploit symlink
set_symlink() {
local target=$1
if is_number "${target}"; then
local targets=( $(find_targets) )
target=${targets[target-1]}
fi
if [[ -z ${target} ]]; then
die -q "Target \"$1\" doesn't appear to be valid!"
elif [[ -d ${EROOT}/usr/lib/${target} ]]; then
ln -s "${target}" "${EROOT}${MSFPATH}"
elif [[ -d ${EROOT}${MSFPATH}${target} ]]; then
ln -s "metasploit${target}" "${EROOT}${MSFPATH}"
else
die -q "Target \"$1\" doesn't appear to be valid!"
fi
}
### show action ###
describe_show() {
echo "Show the current metasploit symlink"
}
do_show() {
write_list_start "Current metasploit symlink:"
if [[ -L ${EROOT}${MSFPATH} ]]; then
local metasploit=$(canonicalise "${EROOT}${MSFPATH}")
write_kv_list_entry "${metasploit%/}" ""
else
write_kv_list_entry "(unset)" ""
fi
}
### list action ###
describe_list() {
echo "List available metasploit symlink targets"
}
do_list() {
local i targets=( $(find_targets) )
write_list_start "Available metasploit symlink targets:"
for (( i = 0; i < ${#targets[@]}; i++ )); do
[[ ${targets[i]} = \
$(basename "$(canonicalise "${EROOT}${MSFPATH}")") ]] \
&& targets[i]=$(highlight_marker "${targets[i]}")
done
write_numbered_list -m "(none found)" "${targets[@]}"
}
### set action ###
describe_set() {
echo "Set a new metasploit symlink target"
}
describe_set_parameters() {
echo "<target>"
}
describe_set_options() {
echo "target : Target name or number (from 'list' action)"
}
do_set() {
[[ -z $1 ]] && die -q "You didn't tell me what to set the symlink to"
[[ $# -gt 1 ]] && die -q "Too many parameters"
if [[ -L ${EROOT}${MSFPATH} ]]; then
# existing symlink
remove_symlink || die -q "Couldn't remove existing symlink"
set_symlink "$1" || die -q "Couldn't set a new symlink"
elif [[ -e ${EROOT}${MSFPATH} ]]; then
# we have something strange
die -q "${EROOT}${MSFPATH} exists but is not a symlink"
else
set_symlink "$1" || die -q "Couldn't set a new symlink"
fi
}

View file

@ -18,7 +18,7 @@ HOMEPAGE="http://www.metasploit.org/"
SLOT="9999"
LICENSE="BSD"
KEYWORDS="~amd64 ~arm ~x86"
IUSE="+armitage +kissfft unstable lorcon lorcon2 +pcaprub +postgres serialport"
IUSE="+armitage eselect +kissfft unstable lorcon lorcon2 +pcaprub +postgres serialport"
REQUIRED_USE="armitage? ( postgres )"
@ -97,7 +97,6 @@ src_install() {
cp -R "${S}"/{documentation,README.md,THIRD-PARTY.md} "${ED}"/usr/share/doc/${PF} || die
dosym /usr/share/doc/${PF}/documentation /usr/$(get_libdir)/${PN}${SLOT}/documentation
dodir /usr/bin/
for file in msf*; do
dosym /usr/$(get_libdir)/${PN}${SLOT}/${file} /usr/bin/${file}
@ -164,8 +163,7 @@ src_install() {
#unbundle johntheripper, it makes me sick to have to do this...
rm -rf "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/data/john/run.*
dodir /usr/$(get_libdir)/${PN}${SLOT}/data/john/run.linux.x86.any
for i in $(ls -1 ${ROOT}/etc/john)
do
for i in $(ls -1 "${ROOT}"/etc/john); do
dosym /etc/john/${i} /usr/$(get_libdir)/${PN}${SLOT}/data/john/run.linux.x86.any/${i}
done
dosym /usr/sbin/unique /usr/$(get_libdir)/${PN}${SLOT}/data/john/run.linux.x86.any/unique
@ -198,6 +196,11 @@ src_install() {
echo "echo \"[*]\"" >> "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/msfupdate
echo "echo \"\"" >> "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/msfupdate
echo "ESVN_REVISION=HEAD emerge --oneshot \"=${CATEGORY}/${PF}\"" >> "${ED}"/usr/$(get_libdir)/${PN}${SLOT}/msfupdate
if use eselect; then
insinto /usr/share/eselect/modules
newins "${FILESDIR}/metasploit.eselect" metasploit.eselect
fi
}
pkg_postinst() {
if use postgres; then
@ -226,4 +229,9 @@ pkg_postinst() {
elog "You can do similar things in paludis using /etc/paludis/bashrc."
elog
elog "Adjust /usr/$(get_libdir)/${PN}${SLOT}/armitage.yml and /etc/conf.d/msfrpcd${PV} files if necessary"
if use eselect; then
elog
elog "Use the following commend to manage metasploit links:"
elog " # eselect metasploit"
fi
}