diff --git a/net-analyzer/metasploit/Manifest b/net-analyzer/metasploit/Manifest index 7c03a1485..deaa5d4f2 100644 --- a/net-analyzer/metasploit/Manifest +++ b/net-analyzer/metasploit/Manifest @@ -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 diff --git a/net-analyzer/metasploit/files/metasploit.eselect b/net-analyzer/metasploit/files/metasploit.eselect new file mode 100644 index 000000000..2d48fc2c1 --- /dev/null +++ b/net-analyzer/metasploit/files/metasploit.eselect @@ -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 "" +} + +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 +} diff --git a/net-analyzer/metasploit/metasploit-9999.ebuild b/net-analyzer/metasploit/metasploit-9999.ebuild index dc6f0b37c..5bc168fc6 100644 --- a/net-analyzer/metasploit/metasploit-9999.ebuild +++ b/net-analyzer/metasploit/metasploit-9999.ebuild @@ -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 }