From fdf580a1422bb5ebcbe7a8218eaea67341901d77 Mon Sep 17 00:00:00 2001 From: Zero_Chaos Date: Tue, 21 Aug 2018 02:30:33 +0000 Subject: net-wireless/aircrack-ng: minor airmon-ng fixes Package-Manager: Portage-2.3.47, Repoman-2.3.10 --- net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild | 120 ---------------- net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild | 120 ++++++++++++++++ .../aircrack-ng/files/aircrack-ng-1.3-8812au.patch | 157 +++++++++++++++++++-- 3 files changed, 262 insertions(+), 135 deletions(-) delete mode 100644 net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild create mode 100644 net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild deleted file mode 100644 index e5103942e69c..000000000000 --- a/net-wireless/aircrack-ng/aircrack-ng-1.3-r2.ebuild +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright 1999-2018 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 - -EAPI="6" - -PYTHON_COMPAT=( python2_7 ) -DISTUTILS_OPTIONAL=1 - -inherit toolchain-funcs distutils-r1 flag-o-matic autotools - -DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys" -HOMEPAGE="http://www.aircrack-ng.org" - -if [[ ${PV} == "9999" ]] ; then - inherit git-r3 - EGIT_REPO_URI="https://github.com/aircrack-ng/aircrack-ng.git" - KEYWORDS="amd64 x86" -else - MY_PV=${PV/_/-} - SRC_URI="https://download.aircrack-ng.org/${P}.tar.gz" - KEYWORDS="amd64 ~arm ~ppc x86 ~x86-fbsd ~amd64-linux ~x86-linux" -fi - -LICENSE="GPL-2" -SLOT="0" - -IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD libressl +netlink +pcre +sqlite +experimental" - -DEPEND="net-libs/libpcap - !libressl? ( dev-libs/openssl:0= ) - libressl? ( dev-libs/libressl:0= ) - netlink? ( dev-libs/libnl:3 ) - pcre? ( dev-libs/libpcre ) - airdrop-ng? ( ${PYTHON_DEPS} ) - airgraph-ng? ( ${PYTHON_DEPS} ) - experimental? ( sys-libs/zlib ) - sqlite? ( >=dev-db/sqlite-3.4 )" -RDEPEND="${DEPEND}" -PDEPEND="kernel_linux? ( - net-wireless/iw - net-wireless/wireless-tools - sys-apps/ethtool - sys-apps/usbutils - sys-apps/pciutils ) - sys-apps/hwids - airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )" - -REQUIRED_USE=" - airdrop-ng? ( ${PYTHON_REQUIRED_USE} ) - airgraph-ng? ( ${PYTHON_REQUIRED_USE} ) -" - -PATCHES=( - "${FILESDIR}/${P}-8812au.patch" -) - -src_prepare() { - default - eautoreconf -} - -src_configure() { - econf \ - --disable-asan \ - --enable-shared \ - --disable-static \ - --without-opt \ - $(use_enable netlink libnl) \ - $(use_with experimental) \ - $(use_with sqlite sqlite3) -} - -src_compile() { - if [[ $($(tc-getCC) --version) == clang* ]] ; then - #https://bugs.gentoo.org/show_bug.cgi?id=472890 - filter-flags -frecord-gcc-switches - fi - - default - - if use airgraph-ng; then - cd "${S}/scripts/airgraph-ng" - distutils-r1_src_compile - fi - if use airdrop-ng; then - cd "${S}/scripts/airdrop-ng" - distutils-r1_src_compile - fi -} - -src_install() { - default - - if use airgraph-ng; then - cd "${S}/scripts/airgraph-ng" - distutils-r1_src_install - fi - if use airdrop-ng; then - cd "${S}/scripts/airdrop-ng" - distutils-r1_src_install - fi - - # we don't need aircrack-ng's oui updater, we have our own - rm "${ED}"/usr/sbin/airodump-ng-oui-update -} - -pkg_postinst() { - # Message is (c) FreeBSD - # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5 - if use kernel_FreeBSD ; then - einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor" - einfo "mode of your wireless card. So do not care about what the manpages say about" - einfo "airmon-ng, airodump-ng sets monitor mode automatically." - echo - einfo "To return from monitor mode, issue the following command:" - einfo " ifconfig \${INTERFACE} -mediaopt monitor" - einfo - einfo "For aireplay-ng you need FreeBSD >= 7.0." - fi -} diff --git a/net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild b/net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild new file mode 100644 index 000000000000..e5103942e69c --- /dev/null +++ b/net-wireless/aircrack-ng/aircrack-ng-1.3-r3.ebuild @@ -0,0 +1,120 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI="6" + +PYTHON_COMPAT=( python2_7 ) +DISTUTILS_OPTIONAL=1 + +inherit toolchain-funcs distutils-r1 flag-o-matic autotools + +DESCRIPTION="WLAN tools for breaking 802.11 WEP/WPA keys" +HOMEPAGE="http://www.aircrack-ng.org" + +if [[ ${PV} == "9999" ]] ; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/aircrack-ng/aircrack-ng.git" + KEYWORDS="amd64 x86" +else + MY_PV=${PV/_/-} + SRC_URI="https://download.aircrack-ng.org/${P}.tar.gz" + KEYWORDS="amd64 ~arm ~ppc x86 ~x86-fbsd ~amd64-linux ~x86-linux" +fi + +LICENSE="GPL-2" +SLOT="0" + +IUSE="+airdrop-ng +airgraph-ng kernel_linux kernel_FreeBSD libressl +netlink +pcre +sqlite +experimental" + +DEPEND="net-libs/libpcap + !libressl? ( dev-libs/openssl:0= ) + libressl? ( dev-libs/libressl:0= ) + netlink? ( dev-libs/libnl:3 ) + pcre? ( dev-libs/libpcre ) + airdrop-ng? ( ${PYTHON_DEPS} ) + airgraph-ng? ( ${PYTHON_DEPS} ) + experimental? ( sys-libs/zlib ) + sqlite? ( >=dev-db/sqlite-3.4 )" +RDEPEND="${DEPEND}" +PDEPEND="kernel_linux? ( + net-wireless/iw + net-wireless/wireless-tools + sys-apps/ethtool + sys-apps/usbutils + sys-apps/pciutils ) + sys-apps/hwids + airdrop-ng? ( net-wireless/lorcon[python,${PYTHON_USEDEP}] )" + +REQUIRED_USE=" + airdrop-ng? ( ${PYTHON_REQUIRED_USE} ) + airgraph-ng? ( ${PYTHON_REQUIRED_USE} ) +" + +PATCHES=( + "${FILESDIR}/${P}-8812au.patch" +) + +src_prepare() { + default + eautoreconf +} + +src_configure() { + econf \ + --disable-asan \ + --enable-shared \ + --disable-static \ + --without-opt \ + $(use_enable netlink libnl) \ + $(use_with experimental) \ + $(use_with sqlite sqlite3) +} + +src_compile() { + if [[ $($(tc-getCC) --version) == clang* ]] ; then + #https://bugs.gentoo.org/show_bug.cgi?id=472890 + filter-flags -frecord-gcc-switches + fi + + default + + if use airgraph-ng; then + cd "${S}/scripts/airgraph-ng" + distutils-r1_src_compile + fi + if use airdrop-ng; then + cd "${S}/scripts/airdrop-ng" + distutils-r1_src_compile + fi +} + +src_install() { + default + + if use airgraph-ng; then + cd "${S}/scripts/airgraph-ng" + distutils-r1_src_install + fi + if use airdrop-ng; then + cd "${S}/scripts/airdrop-ng" + distutils-r1_src_install + fi + + # we don't need aircrack-ng's oui updater, we have our own + rm "${ED}"/usr/sbin/airodump-ng-oui-update +} + +pkg_postinst() { + # Message is (c) FreeBSD + # http://www.freebsd.org/cgi/cvsweb.cgi/ports/net-mgmt/aircrack-ng/files/pkg-message.in?rev=1.5 + if use kernel_FreeBSD ; then + einfo "Contrary to Linux, it is not necessary to use airmon-ng to enable the monitor" + einfo "mode of your wireless card. So do not care about what the manpages say about" + einfo "airmon-ng, airodump-ng sets monitor mode automatically." + echo + einfo "To return from monitor mode, issue the following command:" + einfo " ifconfig \${INTERFACE} -mediaopt monitor" + einfo + einfo "For aireplay-ng you need FreeBSD >= 7.0." + fi +} diff --git a/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch b/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch index 6ce0fbc51eba..e5343023aaec 100644 --- a/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch +++ b/net-wireless/aircrack-ng/files/aircrack-ng-1.3-8812au.patch @@ -1,14 +1,28 @@ -commit 3cc9de5e7cbe6565c7e1fe12ebbcf2c6f7413c8d -Author: Rick Farina (Zero_Chaos) -Date: Tue Aug 7 01:27:05 2018 +0000 - - airmon-ng support 8812au - diff --git a/scripts/airmon-ng.linux b/scripts/airmon-ng.linux -index 14e4bdcd..d7328f4b 100755 +index 7f488391..4d0a5e0c 100755 --- a/scripts/airmon-ng.linux +++ b/scripts/airmon-ng.linux -@@ -354,21 +354,21 @@ ifaceIsUp() { +@@ -106,7 +106,18 @@ else + fi + + if [ -d /sys/bus/pci ] || [ -d /sys/bus/pci_express ] || [ -d /proc/bus/pci ]; then +- if [ ! -x "$(command -v lspci 2>&1)" ]; then ++ PCI_DEVICES=0 ++ if [ -d /sys/bus/pci/devices ] && [ "$(ls -1 /sys/bus/pci/devices 2>/dev/null | wc -l)" != '0' ]; then ++ PCI_DEVICES=1 ++ elif [ -r /proc/bus/pci/devices ] && [ -n "$(cat /proc/bus/pci/devices 2>/dev/null)" ]; then ++ PCI_DEVICES=1 ++ elif [ -d /sys/bus/pci_express/devices ] && [ -n "$(ls -1 /sys/bus/pci_express/devices 2>/dev/null | wc -l)" != '0' ]; then ++ PCI_DEVICES=1 ++ fi ++ ++ if [ ${PCI_DEVICES} -eq 0 ]; then ++ LSPCI=0 ++ elif [ ! -x "$(command -v lspci 2>&1)" ]; then + printf "Please install lspci from your distro's package manager.\n" + exit 1 + else +@@ -347,21 +358,21 @@ ifaceIsUp() { # fi #} @@ -45,7 +59,7 @@ index 14e4bdcd..d7328f4b 100755 yesorno() { read input -@@ -426,7 +426,7 @@ startMac80211Iface() { +@@ -419,7 +430,7 @@ startMac80211Iface() { done fi #we didn't bail means we need a monitor interface @@ -54,11 +68,11 @@ index 14e4bdcd..d7328f4b 100755 printf "Interface ${1}mon is too long for linux so it will be renamed to the old style (wlan#) name.\n" findFreeInterface monitor else -@@ -438,10 +438,16 @@ startMac80211Iface() { +@@ -431,10 +442,16 @@ startMac80211Iface() { fi #we didn't bail means our target interface is available setLink ${1} down -+ if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ] || [ "${DRIVER}" = "rtl8812au" ]; then ++ if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ]; then + #grumble grumble, seriously crap vendor driver + startDeprecatedIface ${1} + setChannelMac80211 ${1} @@ -72,7 +86,55 @@ index 14e4bdcd..d7328f4b 100755 setChannelMac80211 ${1}mon else printf "\nNewly created monitor mode interface ${1}mon is *NOT* in monitor mode.\n" -@@ -569,12 +575,12 @@ setChannelMac80211() { +@@ -456,15 +473,12 @@ startMac80211Iface() { + printf "\nPlease run \"airmon-ng check kill\" and/or kill your network manager." + fi + else +- iw ${1} del ++ isRPiWireless && iw ${1} del + printf "\t\t(mac80211 station mode vif disabled for [${PHYDEV}]${1})\n" + fi + } + +-NEXMON_FIRMWARE_DIR=/opt +-NEXMON_DRIVER_DIR=/opt +- +-hasRPiWireless() { ++isRPiWireless() { + local HW_REV=$(grep Revision /proc/cpuinfo | awk '{print $3}') + [ -z "${HW_REV}" ] && return 0 + # http://www.raspberrypi-spy.co.uk/2012/09/checking-your-raspberry-pi-board-version/ +@@ -475,29 +489,6 @@ hasRPiWireless() { + return 0 + } + +-isNexutilPresent() { +- type nexutil >/dev/null 2>/dev/null +- if [ $? -eq 0 ]; then +- return 1 +- fi +- return 0 +-} +- +-startNexmonIface() { +- [ -z $1 ] && return +- +- if [ -n "$(iwconfig $1 | grep 'Mode:Monitor')" ] && [ -n "$(nexutil -m | grep 'monitor: 2')" ]; then +- printf "\n\tInterface $1 is already in monitor mode\n" +- else +- ifconfig $1 up 2>/dev/null +- iwconfig $1 mode monitor 2>/dev/null +- [ "$1" = "wlan0" ] && nexutil -m2 +- [ "$1" = "wlan0" ] || nexutil -m2 -I $1 +- iwconfig $1 channel ${CH} +- printf "\n\t\t(monitor mode enabled for [${PHYDEV}]${1})\n" +- fi +-} +- + startwlIface() { + if [ -f "/proc/brcm_monitor0" ]; then + if [ -r "/proc/brcm_monitor0" ]; then +@@ -587,12 +578,12 @@ setChannelMac80211() { fi } @@ -91,11 +153,11 @@ index 14e4bdcd..d7328f4b 100755 stopMac80211Iface() { if [ -f /sys/class/net/${1}/type ]; then -@@ -587,6 +593,11 @@ stopMac80211Iface() { +@@ -605,6 +596,11 @@ stopMac80211Iface() { printf "please report it.\n" exit 1 else -+ if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ] || [ "${DRIVER}" = "rtl8812au" ]; then ++ if [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ]; then + #grumble grumble, seriously crap vendor driver + stopDeprecatedIface ${1} + return @@ -103,7 +165,48 @@ index 14e4bdcd..d7328f4b 100755 if [ "${ELITE}" = "0" ]; then local need_sta=1 if [ -d /sys/class/ieee80211/${PHYDEV}/device/net ]; then -@@ -1316,8 +1327,10 @@ if [ "$DEBUG" = "1" ]; then +@@ -665,18 +661,6 @@ stopMac80211Iface() { + fi + } + +-stopNexmonIface() { +- [ -z $1 ] && return +- ifconfig $1 down +- # Running nexutil is not necessary, it gets reset when putting interface down +- [ "$1" = "wlan0" ] && nexutil -m0 +- [ "$1" = "wlan0" ] || nexutil -m0 -I $1 +- ifconfig $1 down +- ifconfig $1 up 2> /dev/null +- iwconfig $1 mode managed 2> /dev/null +- printf "\n\t\t(monitor mode disabled for [${PHYDEV}]${1})\n" +-} +- + stopwlIface() { + if [ -f "/proc/brcm_monitor0" ]; then + if [ -r "/proc/brcm_monitor0" ]; then +@@ -751,6 +735,12 @@ getDriver() { + if [ "$DRIVER" = "rtl8187" ] && [ "$STACK" = "ieee80211" ]; then + DRIVER="r8187" + fi ++ if [ "$DRIVER" = "rtl88xxau" ]; then ++ DRIVER="88XXau" ++ fi ++ if [ "$DRIVER" = "rtl8812au" ]; then ++ DRIVER="8812au" ++ fi + + #Here we will catch the broken lying drivers not caught above + #currently this only functions for pci devices and not usb since lsusb has no -k option +@@ -795,6 +785,8 @@ getFrom() { + FROM="V" + elif [ "$DRIVER" = "rt5390sta" ]; then + FROM="V" ++ elif [ "${DRIVER}" = "8812au" ] || [ "${DRIVER}" = "8814au" ]; then ++ FROM="V" + fi + elif modinfo -F filename $DRIVER 2>&1 | grep -q 'updates/drivers' + then +@@ -1346,8 +1338,10 @@ if [ "$DEBUG" = "1" ]; then fi fi if [ "$VERBOSE" = "1" ]; then @@ -116,3 +219,27 @@ index 14e4bdcd..d7328f4b 100755 uname -a checkvm +@@ -1493,23 +1487,6 @@ for iface in $(printf "${iface_list}"); do + if [ "$1" = "stop" ] && [ "$2" = "$iface" ]; then + stopwlIface $iface + fi +- elif [ "${CHIPSET}" = 'Broadcom 43430' ] || [ "${CHIPSET}" = 'Broadcom 43455' ]; then +- hasRPiWireless +- if [ $? -eq 0 ]; then +- printf "\n\tNot a Raspberry Pi 3, 3B+ or Zero Wireless, cannot put in monitor mode.\n" +- else +- isNexutilPresent +- if [ $? -eq 0 ]; then +- printf "\n\tMissing nexutil, cannot switch to monitor mode.\n" +- else +- if [ "$1" = "start" ] && [ "$2" = "$iface" ]; then +- startNexmonIface $iface +- fi +- if [ "$1" = "stop" ] && [ "$2" = "$iface" ]; then +- stopNexmonIface $iface +- fi +- fi +- fi + elif [ "$MAC80211" = "1" ]; then + if [ "$1" = "start" ] && [ "$2" = "$iface" ]; then + startMac80211Iface $iface -- cgit v1.2.3-65-gdbad