blix

nixos-based pentesting iso
git clone https://xfnw.ttm.sh/git/blix.git
Log | Files | Refs | README

blix.nix (3145B)


      1 # This module defines a small blix live enviorment
      2 
      3 {config, pkgs, lib, ...}:
      4 
      5 with lib;
      6 {
      7   imports = [
      8     <nixpkgs/nixos/modules/installer/cd-dvd/iso-image.nix>
      9     <nixpkgs/nixos/modules/installer/cd-dvd/channel.nix>
     10 
     11     <nixpkgs/nixos/modules/profiles/clone-config.nix>
     12     <nixpkgs/nixos/modules/profiles/all-hardware.nix>
     13     <nixpkgs/nixos/modules/profiles/base.nix>
     14   ];
     15   
     16   # ISO naming.
     17   isoImage.isoName = "blix-${config.system.nixos.label}-${pkgs.stdenv.system}.iso";
     18 
     19   isoImage.volumeID = substring 0 11 "BLIX_ISO";
     20 
     21   # EFI booting
     22   isoImage.makeEfiBootable = true;
     23 
     24   # USB booting
     25   isoImage.makeUsbBootable = true;
     26 
     27   # Add Memtest86+ to the CD.
     28   boot.loader.grub.memtest86.enable = true;
     29  
     30   networking.hostName = "blix";
     31   networking.wireless.enable = true;
     32   networking.useDHCP = true;
     33 
     34   i18n.defaultLocale = "en_US.UTF-8";
     35   
     36 
     37   documentation.nixos.enable = true;
     38 
     39   services.getty.autologinUser = "fops";
     40 
     41   users.users.fops = {
     42     isNormalUser = true;
     43     extraGroups = [ "wheel" "networkmanager" "video" "libvirt" "docker" ];
     44     
     45     openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1N
     46 TE5AAAAIDBUk5IjB3+trnVO6pncivFbOetUL8BPTl3CwAtk4532 xfnw@raven" ];
     47   };
     48   security.sudo.wheelNeedsPassword = false;
     49 
     50   services.xserver.enable = true;
     51   services.xserver.desktopManager.xfce.enable = true;
     52   services.xserver.displayManager.autoLogin.enable = true;
     53   services.xserver.displayManager.autoLogin.user = "fops";
     54 
     55 
     56 
     57   nixpkgs.config.allowUnfree = true;
     58   environment.systemPackages = with pkgs; [
     59     wget vim tmux gnupg ncdu mosh
     60     git curl rsync wireguard-tools
     61     w3m lynx elinks ungoogled-chromium
     62     inetutils dnsutils whois
     63 
     64     # network analysis
     65     nmap masscan wireshark termshark netsniff-ng argus bettercap
     66     stress-ng multimon-ng aircrack-ng mfcuk pixiewps
     67     hcxtools dirb sslsplit whsniff sniffglue pwnat
     68     subfinder zap 
     69     gnirehtet # reverse android tethering
     70 
     71     # research
     72     theharvester tor
     73 
     74     # disk analysis
     75     testdisk squashfs-tools-ng ddrescue volatility
     76     stegseek apktool adbfs-rootless ursadb android-udev-rules
     77     valgrind dos2unix file exiftool foremost pngcheck steghide
     78     docker
     79 
     80     # exploit
     81     doona metasploit twa wifite2 burpsuite wpscan wfuzz
     82     sqlmap thc-hydra (callPackage ./pkgs/routersploit.nix { })
     83     #dsniff 
     84 
     85     # crack
     86     hashcat mfoc pyrit john crunch diceware crowbar
     87     cowpatty bully deepsea reaverwps amass
     88 
     89     # security scan
     90     lynis chkrootkit
     91 
     92     # development
     93     arduino python3Packages.pip ino
     94 
     95     # python3 packages
     96     python3 python3Packages.bluepy python3Packages.future
     97     python3Packages.requests python3Packages.paramiko python3Packages.pysnmp
     98     python3Packages.pycryptodome python3Packages.setuptools
     99     python3Packages.binwalk
    100 
    101     # disclosure
    102     cherrytree (callPackage ./pkgs/catgirl.nix { })
    103   ];
    104 
    105   environment.variables.GC_INITIAL_HEAP_SIZE = "1M";
    106   boot.kernel.sysctl."vm.overcommit_memory" = "1";
    107   boot.consoleLogLevel = 7;
    108   networking.firewall.logRefusedConnections = false;
    109   system.extraDependencies = with pkgs; [ stdenv stdenvNoCC busybox jq ];
    110 
    111   services.openssh.enable = true;
    112 }