mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-01-10 06:55:10 +00:00
ff1a94e523
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
169 lines
3.7 KiB
Nix
169 lines
3.7 KiB
Nix
{ lib
|
|
, stdenv
|
|
, fetchFromGitHub
|
|
, makeWrapper
|
|
# Required
|
|
, aircrack-ng
|
|
, bash
|
|
, coreutils-full
|
|
, gawk
|
|
, gnugrep
|
|
, gnused
|
|
, iproute2
|
|
, iw
|
|
, pciutils
|
|
, procps
|
|
, tmux
|
|
# X11 Front
|
|
, xterm
|
|
, xorg
|
|
# what the author calls "Internals"
|
|
, usbutils
|
|
, wget
|
|
, ethtool
|
|
, util-linux
|
|
, ccze
|
|
# Optionals
|
|
# Missing in nixpkgs: beef, hostapd-wpe
|
|
, asleap
|
|
, bettercap
|
|
, bully
|
|
, crunch
|
|
, dnsmasq
|
|
, ettercap
|
|
, hashcat
|
|
, hcxdumptool
|
|
, hcxtools
|
|
, hostapd
|
|
, john
|
|
, lighttpd
|
|
, mdk4
|
|
, nftables
|
|
, openssl
|
|
, pixiewps
|
|
, reaverwps-t6x # Could be the upstream version too
|
|
, wireshark-cli
|
|
# Undocumented requirements (there is also ping)
|
|
, apparmor-bin-utils
|
|
, curl
|
|
, glibc
|
|
, ncurses
|
|
, networkmanager
|
|
, systemd
|
|
# Support groups
|
|
, supportWpaWps ? true # Most common use-case
|
|
, supportHashCracking ? false
|
|
, supportEvilTwin ? false
|
|
, supportX11 ? false # Allow using xterm instead of tmux, hard to test
|
|
}:
|
|
let
|
|
deps = [
|
|
aircrack-ng
|
|
bash
|
|
coreutils-full
|
|
curl
|
|
gawk
|
|
glibc
|
|
gnugrep
|
|
gnused
|
|
iproute2
|
|
iw
|
|
networkmanager
|
|
ncurses
|
|
pciutils
|
|
procps
|
|
tmux
|
|
usbutils
|
|
wget
|
|
ethtool
|
|
util-linux
|
|
ccze
|
|
systemd
|
|
] ++ lib.optionals supportWpaWps [
|
|
bully
|
|
pixiewps
|
|
reaverwps-t6x
|
|
] ++ lib.optionals supportHashCracking [
|
|
asleap
|
|
crunch
|
|
hashcat
|
|
hcxdumptool
|
|
hcxtools
|
|
john
|
|
wireshark-cli
|
|
] ++ lib.optionals supportEvilTwin [
|
|
bettercap
|
|
dnsmasq
|
|
ettercap
|
|
hostapd
|
|
lighttpd
|
|
openssl
|
|
mdk4
|
|
nftables
|
|
apparmor-bin-utils
|
|
] ++ lib.optionals supportX11 [
|
|
xterm
|
|
xorg.xset
|
|
xorg.xdpyinfo
|
|
];
|
|
in
|
|
stdenv.mkDerivation rec {
|
|
pname = "airgeddon";
|
|
version = "11.11";
|
|
|
|
src = fetchFromGitHub {
|
|
owner = "v1s1t0r1sh3r3";
|
|
repo = "airgeddon";
|
|
rev = "refs/tags/v${version}";
|
|
hash = "sha256-3Rx1tMRIpSk+IEJGOs+t+kDlvGHYOx1IOSi+663uzrw=";
|
|
};
|
|
|
|
strictDeps = true;
|
|
nativeBuildInputs = [ makeWrapper ];
|
|
|
|
# What these replacings do?
|
|
# - Disable the auto-updates (we'll run from a read-only directory);
|
|
# - Silence the checks (NixOS will enforce the PATH, it will only see the tools as we listed);
|
|
# - Use "tmux", we're not patching XTerm commands;
|
|
# - Remove PWD and $0 references, forcing it to use the paths from store;
|
|
# - Force our PATH to all tmux sessions.
|
|
postPatch = ''
|
|
patchShebangs airgeddon.sh
|
|
sed -i '
|
|
s|AIRGEDDON_AUTO_UPDATE=true|AIRGEDDON_AUTO_UPDATE=false|
|
|
s|AIRGEDDON_SILENT_CHECKS=false|AIRGEDDON_SILENT_CHECKS=true|
|
|
s|AIRGEDDON_WINDOWS_HANDLING=xterm|AIRGEDDON_WINDOWS_HANDLING=tmux|
|
|
' .airgeddonrc
|
|
|
|
sed -Ei '
|
|
s|\$\(pwd\)|${placeholder "out"}/share/airgeddon;scriptfolder=${placeholder "out"}/share/airgeddon/|
|
|
s|\$\{0\}|${placeholder "out"}/bin/airgeddon|
|
|
s|tmux send-keys -t "([^"]+)" "|tmux send-keys -t "\1" "export PATH=\\"$PATH\\"; |
|
|
' airgeddon.sh
|
|
'';
|
|
|
|
# ATTENTION: No need to chdir around, we're removing the occurrences of "$(pwd)"
|
|
postInstall = ''
|
|
wrapProgram $out/bin/airgeddon --prefix PATH : ${lib.makeBinPath deps}
|
|
'';
|
|
|
|
# Install only the interesting files
|
|
installPhase = ''
|
|
runHook preInstall
|
|
install -Dm 755 airgeddon.sh "$out/bin/airgeddon"
|
|
install -dm 755 "$out/share/airgeddon"
|
|
cp -dr .airgeddonrc known_pins.db language_strings.sh plugins/ "$out/share/airgeddon/"
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Multi-use TUI to audit wireless networks";
|
|
mainProgram = "airgeddon";
|
|
homepage = "https://github.com/v1s1t0r1sh3r3/airgeddon";
|
|
changelog = "https://github.com/v1s1t0r1sh3r3/airgeddon/blob/v${version}/CHANGELOG.md";
|
|
license = licenses.gpl3Plus;
|
|
maintainers = with maintainers; [ ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|