diff --git a/app-exploits/empire/Manifest b/app-exploits/empire/Manifest index fa819eaa5..698143885 100644 --- a/app-exploits/empire/Manifest +++ b/app-exploits/empire/Manifest @@ -1 +1,2 @@ DIST empire-5.11.5.tar.gz 61936894 BLAKE2B ecefdeebcfa99941ba345b35fd8eed326f6a65a49cd99dbb23b565afe140c0bef0fb3c7afbb84700b18ac596ae63e24dace52a2ec904038d80aabc1d52ea1610 SHA512 cdb08364e5076b27c7a2ca8c5582b55920ec6009fae2e753e21a68639615e11bfe434696c6036cd45aff8acf6697661fc56a1c39c49963d04913027d480fa776 +DIST empire-5.12.2.tar.gz 61940576 BLAKE2B 495a26d311f199260a2605f3105d877e8058482c8fe9ff3592e56a6485dbfe3922be461c50742fc22cef319e8a7f8b3a80fdc77c5e37c0229a31d062291eb2bf SHA512 adbd3e2aac8f9a8cfaa90427ffe6304aa80a02f82410950f20b0e2afc00bd9173be7a3dee6a8686dea83313b66ae47147a64aac668d03e2d0bc369f7258a98ba diff --git a/app-exploits/empire/empire-5.12.2.ebuild b/app-exploits/empire/empire-5.12.2.ebuild new file mode 100644 index 000000000..206090412 --- /dev/null +++ b/app-exploits/empire/empire-5.12.2.ebuild @@ -0,0 +1,145 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{11..13} ) +PYTHON_REQ_USE="sqlite" + +inherit wrapper python-single-r1 + +DESCRIPTION="A post-exploitation framework" +HOMEPAGE="https://github.com/BC-SECURITY/Empire" +SRC_URI="https://github.com/BC-SECURITY/Empire/archive/v${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/Empire-${PV}" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="powershell java" +REQUIRED_USE="powershell? ( !x86 ) + ${PYTHON_REQUIRED_USE}" + +# https://github.com/BC-SECURITY/Empire/issues/196 +RDEPEND="${PYTHON_DEPS} + $(python_gen_cond_dep ' + dev-python/urllib3[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/python-iptools[${PYTHON_USEDEP}] + dev-python/macholib[${PYTHON_USEDEP}] + dev-python/dropbox-sdk[${PYTHON_USEDEP}] + dev-python/pyopenssl[${PYTHON_USEDEP}] + dev-python/zlib_wrapper[${PYTHON_USEDEP}] + dev-python/jinja2[${PYTHON_USEDEP}] + dev-python/xlutils[${PYTHON_USEDEP}] + dev-python/pyparsing[${PYTHON_USEDEP}] + dev-python/pymysql[${PYTHON_USEDEP}] + dev-python/sqlalchemy[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/sqlalchemy_utc[${PYTHON_USEDEP}] + >=dev-python/prompt-toolkit-3.0.9[${PYTHON_USEDEP}] + >=dev-python/terminaltables-3.1.0[${PYTHON_USEDEP}] + >=dev-python/humanize-4.0.0[${PYTHON_USEDEP}] + dev-python/pycryptodome[${PYTHON_USEDEP}] + dev-python/cryptography[${PYTHON_USEDEP}] + >=dev-python/fastapi-0.104.1[${PYTHON_USEDEP}] + >=dev-python/uvicorn-0.22.0[${PYTHON_USEDEP}] + >=dev-python/jq-1.6.0[${PYTHON_USEDEP}] + >=dev-python/aiofiles-23.2.1[${PYTHON_USEDEP}] + >=dev-python/python-multipart-0.0.6[${PYTHON_USEDEP}] + >=dev-python/websockify-0.10.0[${PYTHON_USEDEP}] + >=dev-python/websockets-12.0[${PYTHON_USEDEP}] + >=dev-python/pyperclip-1.8.2[${PYTHON_USEDEP}] + >=dev-python/flask-3.0.2[${PYTHON_USEDEP}] + >=dev-python/python-obfuscator-0.0.2[${PYTHON_USEDEP}] + >=dev-python/pyinstaller-6.2.0[${PYTHON_USEDEP}] + >=dev-python/tabulate-0.9.0[${PYTHON_USEDEP}] + >=dev-python/stix2-3.0.1[${PYTHON_USEDEP}] + >=dev-python/docopt-ng-0.9.0[${PYTHON_USEDEP}] + >=dev-python/packaging-23.2[${PYTHON_USEDEP}] + >=dev-python/bcrypt-4.0.1[${PYTHON_USEDEP}] + + dev-python/pysecretsocks[${PYTHON_USEDEP}] + dev-python/donut-shellcode[${PYTHON_USEDEP}] + + ') + powershell? ( + !x86? ( app-shells/pwsh-bin ) ) + java? ( + || ( virtual/jre:* virtual/jdk:* ) )" + +DEPEND="${RDEPEND}" + +pkg_setup() { + python-single-r1_pkg_setup +} + +src_prepare() { + python_fix_shebang "${S}" + default +} + +#https://github.com/BC-SECURITY/Empire/issues/39 +src_install() { + insinto "/usr/share/${PN}" + doins -r empire/ empire.py + +# python_optimize "${D}/usr/share/${PN}/lib" + + make_wrapper $PN \ + "${PYTHON} /usr/share/${PN}/empire.py" \ + "/usr/share/${PN}" + + dodoc README.md Dockerfile changelog +} + +pkg_config() { + local _yesno_ask + local _em_home="${EROOT}/usr/share/${PN}" + + pushd "${_em_home}" >/dev/null || die + + if [ -f "${_em_home}/data/empire.db" ]; then + ewarn "Drop old database "${_em_home}/data/empire.db" for new configuring ..." + read -r -p " [>] Are you sure? [y/N] " _yesno_ask + + if [[ ${_yesno_ask,,} =~ ^(yes|y)$ ]]; then + rm -f data/empire.db > /dev/null 2>&1 || die + else + return + fi + fi + + ebegin "Press ENTER to create password for database or Control-C to abort now" + python3 setup/setup_database.py + eend ${?} || die + + if [ -f "${_em_home}/data/empire-chain.pem" ] || [ -f "${_em_home}/data/empire-priv.key" ]; then + ewarn "Drop old ${_em_home}/data/empire-chain.pem and generate new cert ..." + read -r -p " [>] Are you sure? [y/N] " _yesno_ask + + if [[ ${_yesno_ask,,} =~ ^(yes|y)$ ]]; then + rm -f data/{empire-chain.pem,empire-priv.key} > /dev/null 2>&1 || die + else + return + fi + fi + + openssl req -newkey rsa:2048 -new -nodes -x509 \ + -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.pentoo.ch" \ + -keyout data/empire-priv.key \ + -out data/empire-chain.pem || die + + popd >/dev/null || die +} + +pkg_postinst() { + ewarn "\nWarning. This software does not support system-wide installation" + ewarn "See the following bug report for more details:" + ewarn "https://github.com/BC-SECURITY/Empire/issues/39" + ewarn + ewarn "You need to run it from /usr/share/${PN} directory under 'root' account" + ewarn "\nPlease configure your installation before using:" + ewarn " emerge --config \"=${CATEGORY}/${PF}\"\n" +}