mirror of
https://github.com/pentoo/pentoo-overlay
synced 2026-04-27 01:03:18 +02:00
eselect-metasploit fixed and functional, shiny and new
This commit is contained in:
parent
338a4a071d
commit
bf6332ea38
5 changed files with 31 additions and 233 deletions
|
|
@ -1,4 +1,2 @@
|
|||
AUX metasploit.eselect-0.1 4629 SHA256 71159ab40077f05d099294b26e7bd40b9d36bca35d26b30d76b5fa016e3b64fe SHA512 ea26e8f4319fde16cc55d0fa26d2f6d39dcc75cfb9b78c14a7367ea7aaa5b678606a5adac7c4ac9194f4b9483c2a72f779a6aa744b0fd3493b8168e063df7a1a WHIRLPOOL 6e6d785a05726d2891a8975d6b0080deb9934d35853d2fa5ea5feeb6626cf9a112301318c33dcaea9c7145e92b96b7a01a3bc13cae61f99eea5041a80f4013b1
|
||||
AUX metasploit.eselect-0.2 4698 SHA256 3013a9c2a5274e871fa663a04e925fc30fb95d4fdd04ad0bd05f071696b4e553 SHA512 0c978eb70f7cd51394d0f5074705497628ba4d4729af9762fd2eedcdef2ba90b93e3d1ddd61c2c2000f03e90ebdef391501f36244a765a25730baa0c729b5686 WHIRLPOOL 527abbf95e6e82b78af1a2c162c92cf36f8960250df15d458dc80d4c17c670e16335b0b097bab35a71bfef904e985ce7e231bca5d03879b5955989c27edd820d
|
||||
EBUILD eselect-metasploit-0.1.ebuild 650 SHA256 410adea739a778c037d5d91172d623d315808f62d31b72f2cfa62b98c39fa7cc SHA512 fbb0d87cc71a0c81334b900d2c2450f7c1408a70e19df744c414b8f2ebb57eb3eb74c53d4cfd6b390fe64e3e2b278151b6ef87dc826c17e8608edf9d0e356bd7 WHIRLPOOL c80c81113e0b926d865807df248e8034e2fd87d7c8ec5203b054e6866982664eee18e73dd1e4dbdb64711e320edce75cf9e687e80580ffe95a93974f2c780d64
|
||||
EBUILD eselect-metasploit-0.2.ebuild 650 SHA256 410adea739a778c037d5d91172d623d315808f62d31b72f2cfa62b98c39fa7cc SHA512 fbb0d87cc71a0c81334b900d2c2450f7c1408a70e19df744c414b8f2ebb57eb3eb74c53d4cfd6b390fe64e3e2b278151b6ef87dc826c17e8608edf9d0e356bd7 WHIRLPOOL c80c81113e0b926d865807df248e8034e2fd87d7c8ec5203b054e6866982664eee18e73dd1e4dbdb64711e320edce75cf9e687e80580ffe95a93974f2c780d64
|
||||
AUX metasploit.eselect-1.0 5151 SHA256 4aefdeff8b266c1340466c6802334857e3842548340bb5903aa8757a211d3fb6 SHA512 592cb69435cf622a3d81851d9bb81030f4e76e8a595eea5fea53c0b4e76cfdd75eb6cbe7258acca8bb60f8f56a6579d865af6f386973a63f59c3841c344612ac WHIRLPOOL ef645ffd938141785465408b24f60b0883bb2dcf4b4864e6317e56d3abdc627c815f33d25d60f63c288440b61c6fdda5f4144dd1d60ab4d65d5ed821668617ef
|
||||
EBUILD eselect-metasploit-1.0.ebuild 650 SHA256 410adea739a778c037d5d91172d623d315808f62d31b72f2cfa62b98c39fa7cc SHA512 fbb0d87cc71a0c81334b900d2c2450f7c1408a70e19df744c414b8f2ebb57eb3eb74c53d4cfd6b390fe64e3e2b278151b6ef87dc826c17e8608edf9d0e356bd7 WHIRLPOOL c80c81113e0b926d865807df248e8034e2fd87d7c8ec5203b054e6866982664eee18e73dd1e4dbdb64711e320edce75cf9e687e80580ffe95a93974f2c780d64
|
||||
|
|
|
|||
|
|
@ -1,29 +0,0 @@
|
|||
# Copyright 1999-2012 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
# $Header: $
|
||||
|
||||
EAPI=4
|
||||
|
||||
DESCRIPTION="eselect module for metasploit"
|
||||
HOMEPAGE="http://www.pentoo.ch/"
|
||||
SRC_URI=""
|
||||
|
||||
LICENSE="GPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~x86"
|
||||
IUSE=""
|
||||
|
||||
DEPEND="app-admin/eselect"
|
||||
RDEPEND="${DEPEND}"
|
||||
|
||||
S=${WORKDIR}
|
||||
|
||||
src_install() {
|
||||
insinto /usr/share/eselect/modules
|
||||
newins "${FILESDIR}/metasploit.eselect-${PV}" metasploit.eselect
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "To switch between installed slots, execute as root:"
|
||||
elog " # eselect metasploit set [slot number]"
|
||||
}
|
||||
|
|
@ -1,190 +0,0 @@
|
|||
# -*-eselect-*- vim: ft=eselect
|
||||
# Copyright 2005-2011 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2 or later
|
||||
# $
|
||||
|
||||
DESCRIPTION="Control which metaploit version is active"
|
||||
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}")
|
||||
|
||||
###WARNING: don't even think of using this insanity for a reference (but it works)
|
||||
#base idea from kernel.eselect, get_libdir from php.eselect with --use-old from opencl.eselect
|
||||
#all modified randomly until it worked
|
||||
###/WARNING
|
||||
|
||||
inherit multilib
|
||||
|
||||
get_libdir() {
|
||||
local dir
|
||||
if has lib64 $(list_libdirs); then
|
||||
echo lib64
|
||||
return
|
||||
fi
|
||||
echo lib
|
||||
}
|
||||
|
||||
MSFPATH="/usr/$(get_libdir)/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() {
|
||||
for i in $(qlist metasploit | grep $(canonicalise "${EROOT}${MSFPATH}")/msf) "${EROOT}${MSFPATH}"/armitage
|
||||
do
|
||||
unlink /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
unlink "${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!"
|
||||
#this stanza doesn't appear to be needed...
|
||||
elif [[ -d ${EROOT}/usr/$(get_libdir)/${target} ]]; then
|
||||
ln -s "${target}" "${EROOT}${MSFPATH}"
|
||||
for i in $(qlist metasploit | grep /usr/$(get_libdir)/${target}/msf) /usr/$(get_libdir)/${target}/armitage
|
||||
do
|
||||
ln -s ${i} /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
elif [[ -d ${EROOT}${MSFPATH}${target} ]]; then
|
||||
ln -s "metasploit${target}" "${EROOT}${MSFPATH}"
|
||||
for i in $(qlist metasploit | grep /usr/$(get_libdir)/${target}/msf) /usr/$(get_libdir)/${target}/armitage
|
||||
do
|
||||
ln -s ${i} /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
else
|
||||
die -q "Target \"$1\" doesn't appear to be valid!"
|
||||
fi
|
||||
}
|
||||
|
||||
# wrapper to safely set the symlink
|
||||
set_symlink_safe() {
|
||||
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
|
||||
}
|
||||
|
||||
### 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)"
|
||||
echo "--use-old : If an implementation is already set, use that one instead"
|
||||
}
|
||||
|
||||
do_set() {
|
||||
local action="error"
|
||||
local current=$(canonicalise "${EROOT}${MSFPATH}")
|
||||
local available=( $(find_targets) )
|
||||
local new
|
||||
local opt
|
||||
|
||||
while [[ ${#@} -gt 0 ]] ; do
|
||||
opt=$1
|
||||
shift
|
||||
case ${opt} in
|
||||
--use-old)
|
||||
if [[ -n ${current} ]] && has ${current} ${available}; then
|
||||
action="old-implementation"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [[ ${action} != "old-implementation" ]] ; then
|
||||
action="set-implementation"
|
||||
fi
|
||||
|
||||
if is_number ${opt} ; then
|
||||
new=${available[$(( ${opt} - 1 ))]}
|
||||
if [[ -z ${new} ]] ; then
|
||||
die -q "Unrecognized option: ${opt}"
|
||||
fi
|
||||
elif has ${opt} ${available}; then
|
||||
new="${opt}"
|
||||
else
|
||||
die -q "Unrecognized option: ${opt}"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
case ${action} in
|
||||
old-implementation)
|
||||
set_symlink_safe ${current}
|
||||
return $?
|
||||
;;
|
||||
set-implementation)
|
||||
if [[ -n ${new} ]] ; then
|
||||
set_symlink_safe ${new}
|
||||
return $?
|
||||
else
|
||||
die -q "Please specify an implementation to set"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
die -q "Invalid usage of set action."
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
|
@ -10,7 +10,7 @@ VERSION=$(svn_date_to_version "${SVN_DATE}")
|
|||
|
||||
###WARNING: don't even think of using this insanity for a reference (but it works)
|
||||
#base idea from kernel.eselect, get_libdir from php.eselect with --use-old from opencl.eselect
|
||||
#all modified randomly until it worked
|
||||
#all modified randomly until it worked, entropy is wonderful
|
||||
###/WARNING
|
||||
|
||||
inherit multilib
|
||||
|
|
@ -40,7 +40,12 @@ remove_symlink() {
|
|||
do
|
||||
unlink /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
unlink "${EROOT}${MSFPATH}"
|
||||
if [ -e ${EROOT}${MSFPATH} ]; then
|
||||
unlink "${EROOT}${MSFPATH}"
|
||||
fi
|
||||
if [ -L /usr/bin/armitage ]; then
|
||||
unlink /usr/bin/armitage
|
||||
fi
|
||||
}
|
||||
|
||||
# set the metasploit symlink
|
||||
|
|
@ -54,19 +59,24 @@ set_symlink() {
|
|||
|
||||
if [[ -z ${target} ]]; then
|
||||
die -q "Target \"$1\" doesn't appear to be valid!"
|
||||
#this stanza doesn't appear to be needed...
|
||||
elif [[ -d ${EROOT}/usr/$(get_libdir)/${target} ]]; then
|
||||
ln -s "${target}" "${EROOT}${MSFPATH}"
|
||||
for i in $(qlist metasploit | grep /usr/$(get_libdir)/${target}/msf)
|
||||
do
|
||||
ln -s ${i} /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
if [ -e /usr/$(get_libdir)/${target}/armitage ]; then
|
||||
ln -s /usr/$(get_libdir)/${target}/armitage /usr/bin/armitage
|
||||
fi
|
||||
elif [[ -d ${EROOT}${MSFPATH}${target} ]]; then
|
||||
ln -s "metasploit${target}" "${EROOT}${MSFPATH}"
|
||||
for i in $(qlist metasploit | grep /usr/$(get_libdir)/${target}/msf)
|
||||
do
|
||||
ln -s ${i} /usr/bin/$(echo ${i} | awk -F'/' '{print $5}')
|
||||
done
|
||||
if [ -e /usr/$(get_libdir)/${target}/armitage ]; then
|
||||
ln -s /usr/$(get_libdir)/${target}/armitage /usr/bin/armitage
|
||||
fi
|
||||
else
|
||||
die -q "Target \"$1\" doesn't appear to be valid!"
|
||||
fi
|
||||
|
|
@ -137,8 +147,8 @@ describe_set_options() {
|
|||
|
||||
do_set() {
|
||||
local action="error"
|
||||
local current=$(canonicalise "${EROOT}${MSFPATH}")
|
||||
local available=$(find_targets)
|
||||
local current=$(basename "$(canonicalise "${EROOT}${MSFPATH}")")
|
||||
local available=( $(find_targets) )
|
||||
local new
|
||||
local opt
|
||||
|
||||
|
|
@ -147,23 +157,32 @@ do_set() {
|
|||
shift
|
||||
case ${opt} in
|
||||
--use-old)
|
||||
if [[ -n ${current} ]] && has ${current} ${available}; then
|
||||
if [[ -n "${current}" ]] && has "${current}" "${available[@]}"; then
|
||||
action="old-implementation"
|
||||
fi
|
||||
;;
|
||||
metasploit*)
|
||||
if [[ "${action}" != "old-implementation" ]] ; then
|
||||
action="set-implementation"
|
||||
fi
|
||||
|
||||
if has ${opt} ${available[@]}; then
|
||||
new="${opt}"
|
||||
else
|
||||
echo "You need to emerge ${opt} before you try to eselect it"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
if [[ ${action} != "old-implementation" ]] ; then
|
||||
if [[ "${action}" != "old-implementation" ]] ; then
|
||||
action="set-implementation"
|
||||
fi
|
||||
|
||||
if is_number ${opt} ; then
|
||||
#targets=( $(get_implementations) )
|
||||
new=${available[$(( ${opt} - 1 ))]}
|
||||
new=${available[opt - 1]}
|
||||
if [[ -z ${new} ]] ; then
|
||||
die -q "Unrecognized option: ${opt}"
|
||||
fi
|
||||
elif has ${opt} ${available}; then
|
||||
new="${opt}"
|
||||
else
|
||||
die -q "Unrecognized option: ${opt}"
|
||||
fi
|
||||
Loading…
Reference in a new issue