Compare commits

...

24 commits
v0.3 ... main

Author SHA1 Message Date
xfnw 8ee4519c34 add ghidra 2022-04-24 12:47:20 -04:00
xfnw 99b8613d40 fix building 2022-04-21 15:34:19 -04:00
vulpine 9d1ded2579
Update blix-applications.7 2022-04-21 13:03:06 -04:00
vulpine 6f2e2c805f
add jadx 2022-04-21 13:01:49 -04:00
xfnw a390f2e279 add whatweb 2022-04-09 20:51:15 -04:00
vulpine 1410cee2b2 fix formatting of tmux config
not sure how i managed to not notice the broken timestamps and stuff

this commit also adds pane and window swapping keybinds
2022-03-03 17:41:01 -05:00
xfnw a8d3faea4f fix some broken beef dependencies
this fix depends on some bits of nixpkgs, so it is unlikely to be able
to be merged back with upstream nur
2022-02-26 21:40:14 -05:00
xfnw ee5f457c2f add beef via nur
this commit adds the nur as a git submodule
2022-02-26 20:39:12 -05:00
xfnw b1f3cb0754 add snowman
and jq + jo too
2022-02-26 18:55:08 -05:00
xfnw 43726b8524 add dnschef and clamav 2022-02-26 15:17:43 -05:00
xfnw d1050c7b98 add spyre 2022-02-26 15:10:07 -05:00
xfnw 8009d01ab3 add yara 2022-02-26 15:04:56 -05:00
xfnw 7f0c6ab8cc add more packages 2022-02-19 12:55:10 -05:00
xfnw 64ad87822b remove volitility
temporarily fixes #1

volitility has a broken dependency on python2Packages.distorm3
2022-02-19 11:51:22 -05:00
xfnw aa8683f68d add sleuthkit 2022-02-19 11:41:08 -05:00
xfnw b61201ad48 pyrit and ino are no longer in nixpkgs 2022-02-19 11:29:12 -05:00
xfnw 9d5dbdecb3 add unilicense 2022-01-13 17:09:36 -05:00
xfnw 024a0e5b66 add trufflehog and nuclei 2022-01-13 17:00:00 -05:00
xfnw 514b871cb4 add cupp 2021-07-20 19:12:51 +00:00
xfnw e6d057a6fb list of applications in manual 2021-06-13 16:57:17 +00:00
xfnw 9be7503e94 add minimodem 2021-06-13 16:13:28 +00:00
xfnw 3160b6504f start making manuals! 2021-06-13 15:54:32 +00:00
owen 4829ce4c43
another dns checker because why not 2021-06-11 12:20:23 -04:00
owen 31d66e51c1
add hping and proxychains 2021-06-11 10:19:19 -04:00
15 changed files with 1226 additions and 19 deletions

1
.gitignore vendored
View file

@ -3,4 +3,5 @@
result
result/*
Gemfile.lock

3
.gitmodules vendored Normal file
View file

@ -0,0 +1,3 @@
[submodule "nur-packages"]
path = nur-packages
url = https://github.com/makefu/nur-packages

24
LICENSE Normal file
View file

@ -0,0 +1,24 @@
This is free and unencumbered software released into the public domain.
Anyone is free to copy, modify, publish, use, compile, sell, or
distribute this software, either in source code form or as a compiled
binary, for any purpose, commercial or non-commercial, and by any
means.
In jurisdictions that recognize copyright laws, the author or authors
of this software dedicate any and all copyright interest in the
software to the public domain. We make this dedication for the benefit
of the public at large and to the detriment of our heirs and
successors. We intend this dedication to be an overt act of
relinquishment in perpetuity of all present and future rights to this
software under copyright law.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.
For more information, please refer to <http://unlicense.org/>

101
blix.nix
View file

@ -42,8 +42,7 @@ with lib;
isNormalUser = true;
extraGroups = [ "wheel" "networkmanager" "video" "libvirt" "docker" ];
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1N
TE5AAAAIDBUk5IjB3+trnVO6pncivFbOetUL8BPTl3CwAtk4532 xfnw@raven" ];
openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDBUk5IjB3+trnVO6pncivFbOetUL8BPTl3CwAtk4532 xfnw@raven" ];
};
security.sudo.wheelNeedsPassword = false;
@ -56,52 +55,118 @@ TE5AAAAIDBUk5IjB3+trnVO6pncivFbOetUL8BPTl3CwAtk4532 xfnw@raven" ];
nixpkgs.config.allowUnfree = true;
environment.systemPackages = with pkgs; [
(callPackage ./manuals.nix { })
wget vim tmux gnupg ncdu mosh
git curl rsync wireguard-tools
w3m lynx elinks ungoogled-chromium
inetutils dnsutils whois
inetutils dnsutils dnsx whois jo jq
# network analysis
nmap masscan wireshark termshark netsniff-ng argus bettercap
stress-ng multimon-ng aircrack-ng mfcuk pixiewps
hcxtools dirb sslsplit whsniff sniffglue pwnat
subfinder zap
gnirehtet # reverse android tethering
nmap masscan wireshark wireshark-qt termshark netsniff-ng argus
bettercap stress-ng multimon-ng aircrack-ng mfcuk pixiewps nuclei
hcxtools dirb sslsplit whsniff sniffglue pwnat cutecom minicom
subfinder zap hping proxychains minimodem macchanger testssl
gnirehtet whatweb # cadaver
# research
theharvester tor
# disk analysis
testdisk squashfs-tools-ng ddrescue volatility
testdisk squashfs-tools-ng ddrescue yara yarGen yallback
stegseek apktool adbfs-rootless ursadb android-udev-rules
valgrind dos2unix file exiftool foremost pngcheck
docker xcd
valgrind dos2unix file exiftool foremost pngcheck ccrypt
docker xcd trufflehog sleuthkit radare2 radare2-cutter
clamav spyre snowman jadx ghidra # volatility
# exploit
doona metasploit twa wifite2 burpsuite wpscan wfuzz
sqlmap thc-hydra (callPackage ./pkgs/routersploit.nix { })
#dsniff
dsniff (callPackage ./pkgs/beef { }) dnschef
# crack
hashcat mfoc pyrit john crunch diceware crowbar
cowpatty bully deepsea reaverwps amass medusa
hashcat mfoc john crunch diceware crowbar # pyrit
cowpatty bully deepsea reaverwps amass medusa nasty
(callPackage ./pkgs/cupp.nix { })
# security scan
lynis chkrootkit
lynis chkrootkit aflplusplus
# development
arduino python3Packages.pip ino
arduino python3Packages.pip # ino
# python3 packages
python3 python3Packages.bluepy python3Packages.future
python3Packages.requests python3Packages.paramiko python3Packages.pysnmp
python3Packages.pycryptodome python3Packages.setuptools
python3Packages.binwalk
python3Packages.binwalk python3Packages.sqlmap
# disclosure
catgirl
catgirl tmate
];
environment.etc = {
"tmux.conf" = {
text = ''
set-option -g default-terminal "tmux-256color"
set-option -g history-limit 20000
set-option -g focus-events on
set-option -g xterm-keys on
set-option -g set-titles on
set-option -g set-titles-string "tmux - #T"
set-option -g escape-time 25
set-option -g status-left-style "fg=colour10"
set-option -g status-right-style "fg=colour10"
set-option -g status-style "bg=default,fg=colour10"
set-option -g pane-active-border-style "bg=default,fg=colour10"
set-option -g window-status-activity-style "bg=default,fg=colour235,bold,reverse"
set-option -g window-status-bell-style "bg=default,fg=white,bold,reverse"
set-option -g window-status-current-style "bg=default,fg=colour10,bold,reverse"
set-option -g window-status-style "bg=default,fg=colour10"
set-option -g status on
set-option -g status-interval 5
set-option -g status-position top
set-option -g status-justify left
set-option -g window-status-format " #I #W "
set-option -g window-status-separator ""
set-option -g window-status-current-format " #I #W "
set-option -g status-left ""
set-option -g status-right "#h %I:%M %p"
set-option -g status-left-length 0
set-option -g monitor-activity on
set-option -g visual-activity on
set-option -g renumber-windows on
set-option -g focus-events on
bind N swap-window -t +1 -d
bind P swap-window -t -1 -d
bind S-Left swap-pane -s '{left-of}'
bind S-Right swap-pane -s '{right-of}'
bind S-Up swap-pane -s '{up-of}'
bind S-Down swap-pane -s '{down-of}'
'';
};
"vimrc" = {
text = ''
set number
set relativenumber
syntax on
color pablo
set nocompatible
filetype plugin indent on
set showcmd
set showmatch
set ignorecase
set smartcase
set incsearch
set autowrite
set hidden
set mouse=a
set textwidth=60
set formatoptions-=t
'';
};
};
environment.variables.GC_INITIAL_HEAP_SIZE = "1M";
boot.kernel.sysctl."vm.overcommit_memory" = "1";
boot.consoleLogLevel = 7;

12
manuals.nix Normal file
View file

@ -0,0 +1,12 @@
{ stdenv, man }:
stdenv.mkDerivation rec {
name = "blix-manuals";
src = ./manuals;
buildInputs = [ man ];
installPhase = ''
install -D * -t $out/share/man/man7/
'';
}

240
manuals/blix-applications.7 Normal file
View file

@ -0,0 +1,240 @@
.Dd June 11, 2021
.Dt blix-applications 7
.Os
.
.Sh NAME
.Nm blix-applications
.Nd list of preinstalled blix applications
.
.Sh DESCRIPTION
.Nm
includes some
.Ql base
packages not described in this document, including
.Bd -literal -offset indent
wget vim tmux gnupg ncdu mosh
git curl rsync wireguard-tools
w3m lynx elinks ungoogled-chromium
inetutils dnsutils dnsx whois
.Ed
.
.Pp
the
.Ql manuals
psudopackage contains this manual and various
.Xr blix 7
documentation.
.
.Ss Network Analysis
.Bl -tag -width Ds
.It nmap
portscanning, can check if hosts are up and has various software detection
.It masscan
portscan massive subnets quickly
.It wireshark
capture packets and inspect them
.It termshark
similar to
.Cm wireshark ,
however works in a terminal
.It netsniff-ng
network analizer toolkit
.It argus
audit network packets and look at activity
.It bettercap
man in the middle tool
.It stress-ng
stress test a computer system
.It multimon-ng
digital baseband audio protocol decoder
.It aircrack-ng
wireless encryption cracking toolkit
.It mfcuk
NFC cracking toolkit
.It pixiewps
offline WPS bruteforcer
.It nuclei
fast vulnerabily scanner
.It hcxtools
capture wlan traffic and convert to
.Cm hashcat
and
.Cm john
compatable formats
.It dirb
web content scanner
.It sslsplit
transparent ssl/tls interception
.It whsniff
packet sniffer for 802.15.4 wireless networks
.It sniffglue
multithreaded packet sniffer
.It pwnat
ICMP NAT to NAT client-server communication
.It subfinder
find subdomains
.It zap
web penetration testing
.It hping
craft packets and possibly flood them
.It proxychains
chain some proxies
.It minimodem
brrr, time for some dialup
.It gnirehtet
reverse android tethering
.It whatweb
fingerprint http services
.El
.
.Ss Research
.Bl -tag -width Ds
.It theharvester
gather information from public sources
.It tor
anonymize your traffic
.El
.
.Ss Disk Analysis
.Bl -tag -width Ds
.It testdisk
recover deleted innodes, recover data
.It squashfs-tools-ng
manipulate a squashfs
.It ddrescue
copy data from dying disk
.It yara
identify and classify malware
.It spyre
IOC scanner
.It snowman
C/C++ decompiler
.\".It volatility
.\"memory forsenics framework
.It stegseek
seek for stegnografy in images
.It apktool
inspect apk files
.It jadx
decompile dex (the stuff in apks) files to java
.It adbfs-rootless
mount android phones on linux
.It ghidra
reverse engineering suite made by the NSA
.It ursadb
database for indexing malware
.It android-udev-rules
usb stuff for android
.It valgrind
framework for building analysis tools
.It dos2unix
convert those pesky line endings
.It file
inspect file metadata
.It exiftool
look at exif image metadata
.It foremost
recover files based on their contents
.It pngcheck
check if png is really an image
.It docker
run containers and stuff
.It xcd
lovely hexdump utility
.It trufflehog
search through git histories
.It sleuthkit
a collection of digital forensics tools
.It clamav
antivirus engine
.El
.
.Ss Exploits
.Bl -tag -width Ds
.It doona
bruteforce exploit detector
.It metasploit
big database of known exploits
.It twa
tiny web auditor
.It wifite2
wireless network auditor
.It burpsuite
security testing of web applications
.It wpscan
wordpress vulnerability scanner
.It wfuzz
web content fuzzer
.It sqlmap
automatic sql injection and database takeover
.It thc-hydra
fast network login cracker
.It routersploit
test for common router vulnerabilities. needs to be run in a
.Cm nix-shell -p
.It dsniff
network auditing and penetration testing
.It dnschef
DNS proxy for penetration testing
.El
.
.Ss Crackers
.Bl -tag -width Ds
.It john
john the ripper, very nice hash cracker
.It hashcat
another hash cracker
.It mfoc
mifare classic offline cracker
.\".It pyrit
.\"gpu WPA/WPA2 hash cracker
.It crunch
generate wordlists
.It diceware
generate passwords using wordlists
.It crowbar
bruteforcing tool
.It cowpatty
offline dictionary attack against WPA/WPA2
.It bully
retreive WPA/WPA2 passphrase from WPS
.It deepsea
phishing tool
.It reaverwps
bruteforce wifi
.It amass
dns enumeration and network mapping
.It medusa
speedy login bruteforcer
.It cupp.py
Common User Password Profiler
.El
.
.Ss Security Scan
.Bl -tag -width Ds
.It lynis
scan your computer for vulnerabilities and hardening tips
.It chkrootkit
search for rootkits
.El
.
.Ss Development
.Bl -tag -width Ds
.It arudino
arduino ide
.It python3Packages.pip
install python packages from pypi
.\".It ino
.\"command line arduino toolkit
.El
.
.Ss Disclosure
.Bl -tag -width Ds
.It catgirl
lovely irc client
.It tmate
terminal screen sharing
.El
.
.Sh AUTHORS
.An xfnw Aq Mt xfnw@riseup.net

13
manuals/blix.7 Normal file
View file

@ -0,0 +1,13 @@
.Dd June 11, 2021
.Dt blix 7
.Os
.
.Sh NAME
.Nm blix
.Nd nixos-based pentesting distro
.
.Sh SEE ALSO
.Xr blix-applications 7
.
.Sh AUTHORS
.An xfnw Aq Mt xfnw@riseup.net

1
nur-packages Submodule

@ -0,0 +1 @@
Subproject commit 272cf1ad3b3da0e30b5435f2425f39bed616b080

105
pkgs/beef/Gemfile Normal file
View file

@ -0,0 +1,105 @@
# BeEF's Gemfile
#
# Copyright (c) 2006-2018 Wade Alcorn - wade@bindshell.net
# Browser Exploitation Framework (BeEF) - http://beefproject.com
# See the file 'doc/COPYING' for copying permission
#
gem 'eventmachine'
gem 'thin'
gem 'sinatra', '~> 2.0'
gem 'rack', '~> 2.0'
gem 'rack-protection', '~> 2.0'
gem 'em-websocket' # WebSocket support
gem 'uglifier'
gem 'mime-types'
gem 'execjs'
gem 'ansi'
gem 'term-ansicolor', :require => 'term/ansicolor'
gem 'dm-core'
gem 'json'
gem 'data_objects'
gem 'rubyzip', '>= 1.2.1'
gem 'espeak-ruby', '>= 1.0.4' # Text-to-Voice
gem 'nokogiri', '>= 1.7'
gem 'rake'
# SQLite support
group :sqlite do
gem 'dm-sqlite-adapter'
end
# PostgreSQL support
group :postgres do
#gem dm-postgres-adapter
end
# MySQL support
group :mysql do
#gem dm-mysql-adapter
end
# Geolocation support
group :geoip do
gem 'geoip'
end
gem 'parseconfig'
gem 'erubis'
gem 'dm-migrations'
# Metasploit Integration extension
group :ext_msf do
gem 'msfrpc-client'
gem 'xmlrpc'
end
# Notifications extension
group :ext_notifications do
# Pushover
gem 'rushover'
# Slack
gem 'slack-notifier'
# Twitter
gem 'twitter', '>= 5.0.0'
end
# DNS extension
group :ext_dns do
gem 'rubydns', '~> 0.7.3'
end
# network extension
group :ext_network do
gem 'dm-serializer'
end
# QRcode extension
group :ext_qrcode do
gem 'qr4r'
end
# For running unit tests
group :test do
if ENV['BEEF_TEST']
gem 'test-unit'
gem 'test-unit-full'
gem 'rspec'
# curb gem requires curl libraries
# sudo apt-get install libcurl4-openssl-dev
gem 'curb'
# selenium-webdriver 3.x is incompatible with Firefox version 48 and prior
gem 'selenium'
gem 'selenium-webdriver', '~> 2.53.4'
# nokogirl is needed by capybara which may require one of the below commands
# sudo apt-get install libxslt-dev libxml2-dev
# sudo port install libxml2 libxslt
gem 'capybara'
# RESTful API tests/generic command module tests
gem 'rest-client', '>= 2.0.1'
gem 'byebug'
end
end
source 'https://rubygems.org'

View file

@ -0,0 +1,39 @@
--- /beef 2018-08-16 19:03:55.199437566 +0200
+++ /beef 2018-08-16 19:27:34.735985233 +0200
@@ -110,9 +110,20 @@
#
# @note Database setup - use DataMapper::Logger.new($stdout, :debug) for development debugging
#
+
+#
+# @note Create ~/.beef/
+#
+begin
+ FileUtils.mkdir_p($home_dir) unless File.directory?($home_dir)
+rescue => e
+ print_error "Could not create '#{$home_dir}': #{e.message}"
+end
+
case config.get("beef.database.driver")
when "sqlite"
- DataMapper.setup(:default, "sqlite3://#{$root_dir}/#{config.get("beef.database.db_file")}")
+ print_info "Using Database #{$home_dir}/#{config.get("beef.database.db_file")}"
+ DataMapper.setup(:default, "sqlite3://#{$home_dir}/#{config.get("beef.database.db_file")}")
when "mysql", "postgres"
DataMapper.setup(:default,
:adapter => config.get("beef.database.driver"),
@@ -162,14 +173,6 @@
BeEF::Core::Console::Banners.print_network_interfaces_count
BeEF::Core::Console::Banners.print_network_interfaces_routes
-#
-# @note Create ~/.beef/
-#
-begin
- FileUtils.mkdir_p($home_dir) unless File.directory?($home_dir)
-rescue => e
- print_error "Could not create '#{$home_dir}': #{e.message}"
-end
#
# @note Check whether we load the Console Shell or not

45
pkgs/beef/default.nix Normal file
View file

@ -0,0 +1,45 @@
{ pkgs, stdenv, bundlerEnv, ruby, fetchFromGitHub, nodejs }:
# nix-shell --command "bundler install && bundix" in the clone, copy gemset.nix, Gemfile and Gemfile.lock
let
gems = bundlerEnv {
name = "beef-env";
inherit ruby;
gemdir = ./.;
};
in stdenv.mkDerivation {
name = "beef-2018-09-21";
src = fetchFromGitHub {
owner = "beefproject";
repo = "beef";
rev = "d237c95";
sha256 = "1mykbjwjcbd2a18wycaf35hi3b9rmvqz1jnk2v55sd4c39f0jpf2";
};
prePatch = ''
ls -alhtr
'';
patches = [ ./db-in-homedir.patch ];
buildInputs = [gems pkgs.rubyPackages.nokogiri ruby];
installPhase = ''
mkdir -p $out/{bin,share/beef}
cp -r * $out/share/beef
# set the default db path, unfortunately setting to /tmp does not seem to work
# sed -i 's#db_file: .*#db_file: "/tmp/beef.db"#' $out/share/beef/config.yaml
bin=$out/bin/beef
cat > $bin <<EOF
#!/bin/sh -e
PATH=$PATH:${nodejs}/bin/
exec ${gems}/bin/bundle exec ${ruby}/bin/ruby $out/share/beef/beef "\$@"
EOF
chmod +x $bin
'';
#meta = with stdenv.lib; {
# homepage = https://beefproject.com/;
# description = "The Browser Exploitation Framework";
# platforms = platforms.linux;
# maintainers = with maintainers; [ makefu ];
#};
}

608
pkgs/beef/gemset.nix Normal file
View file

@ -0,0 +1,608 @@
{
addressable = {
dependencies = ["public_suffix"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0viqszpkggqi8hq87pqp0xykhvz60g99nwmkwsb0v45kc2liwxvk";
type = "gem";
};
version = "2.5.2";
};
ansi = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "14ims9zfal4gs2wpx2m5rd8zsrl2k794d359shkrsgg3fhr2a22l";
type = "gem";
};
version = "1.5.0";
};
buftok = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rzsy1vy50v55x9z0nivf23y0r9jkmq6i130xa75pq9i8qrn1mxs";
type = "gem";
};
version = "0.2.0";
};
chunky_png = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "05g2xli9wbjylkmblln3bhvjalziwb92q452q8ibjagmb853424w";
type = "gem";
};
version = "1.3.10";
};
daemons = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0lxqq6dgb8xhliywar2lvkwqy2ssraf9dk4b501pb4ixc2mvxbp2";
type = "gem";
};
version = "1.2.6";
};
data_objects = {
dependencies = ["addressable"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19fw1ckqc5f1wc4r72qrymy2k6cmd8azbxpn61ksbsjqhzc2bgqd";
type = "gem";
};
version = "0.10.17";
};
dm-core = {
dependencies = ["addressable"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "09x67ka6f1lxh4iwrg87iama0haq0d0z35gavvnvzpx9kn9pfbnw";
type = "gem";
};
version = "1.2.1";
};
dm-do-adapter = {
dependencies = ["data_objects" "dm-core"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1v84lsmsq8kawl8k4qz2h87xqc1sr10c08wwasrxbcgrkvp7qk4q";
type = "gem";
};
version = "1.2.0";
};
dm-migrations = {
dependencies = ["dm-core"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "04hr8qgm4j1z5fg0cfpr8r6apvk5xykad0d0xqfg48rjv5rdwc0i";
type = "gem";
};
version = "1.2.0";
};
dm-serializer = {
dependencies = ["dm-core" "fastercsv" "json" "json_pure" "multi_json"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mvpb2d4cniysw45d3c9xidjpdb3wmfl7x5lgvnsfm69wq24v5y4";
type = "gem";
};
version = "1.2.2";
};
dm-sqlite-adapter = {
dependencies = ["dm-do-adapter" "do_sqlite3"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0mq9xrw4jwb753sy8902rq9sfv62mzss2n3875g51i9acqy475hc";
type = "gem";
};
version = "1.2.0";
};
do_sqlite3 = {
dependencies = ["data_objects"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gxz54qjgwg6a2mkqpai28m0i5swbyxpr4qmh9x1nwf20lysrgcf";
type = "gem";
};
version = "0.10.17";
};
domain_name = {
dependencies = ["unf"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0abdlwb64ns7ssmiqhdwgl27ly40x2l27l8hs8hn0z4kb3zd2x3v";
type = "gem";
};
version = "0.5.20180417";
};
em-websocket = {
dependencies = ["eventmachine" "http_parser.rb"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1bsw8vjz0z267j40nhbmrvfz7dvacq4p0pagvyp17jif6mj6v7n3";
type = "gem";
};
version = "0.5.1";
};
equalizer = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kjmx3fygx8njxfrwcmn7clfhjhb6bvv3scy2lyyi0wqyi3brra4";
type = "gem";
};
version = "0.0.11";
};
erubis = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3";
type = "gem";
};
version = "2.7.0";
};
espeak-ruby = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0d658zr53jibyrs5qnic7bfl6h69k5987s8asncsbnxwbzzilj6y";
type = "gem";
};
version = "1.0.4";
};
eventmachine = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "17jr1caa3ggg696dd02g2zqzdjqj9x9q2nl7va82l36f7c5v6k4z";
type = "gem";
};
version = "1.0.9.1";
};
execjs = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1yz55sf2nd3l666ms6xr18sm2aggcvmb8qr3v53lr4rir32y1yp1";
type = "gem";
};
version = "2.7.0";
};
fastercsv = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1df3vfgw5wg0s405z0pj0rfcvnl9q6wak7ka8gn0xqg4cag1k66h";
type = "gem";
};
version = "1.5.5";
};
filesize = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "061qmg82mm9xnmnq3b7gbi24g28xk62w0b0nw86gybd07m1jn989";
type = "gem";
};
version = "0.1.1";
};
geoip = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1if16n4pjl2kshc0cqg7i03m55fspmlca6p9f4r66rpzw0v4d6jc";
type = "gem";
};
version = "1.6.4";
};
http = {
dependencies = ["addressable" "http-cookie" "http-form_data" "http_parser.rb"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jlm5prw437wqpfxcigh88lfap3m7g8mnmj5as7qw6dzqnvrxwmc";
type = "gem";
};
version = "3.3.0";
};
http-cookie = {
dependencies = ["domain_name"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "004cgs4xg5n6byjs7qld0xhsjq3n6ydfh897myr2mibvh6fjc49g";
type = "gem";
};
version = "1.0.3";
};
http-form_data = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "15lpn604byf7cyxnw949xz4rvpcknqp7a48q73nm630gqxsa76f3";
type = "gem";
};
version = "2.1.1";
};
"http_parser.rb" = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "15nidriy0v5yqfjsgsra51wmknxci2n2grliz78sf9pga3n0l7gi";
type = "gem";
};
version = "0.6.0";
};
jsobfu = {
dependencies = ["rkelly-remix"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hchns89cfj0gggm2zbr7ghb630imxm2x2d21ffx2jlasn9xbkyk";
type = "gem";
};
version = "0.4.2";
};
json = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0qmj7fypgb9vag723w1a49qihxrcf5shzars106ynw2zk352gbv5";
type = "gem";
};
version = "1.8.6";
};
json_pure = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1vllrpm2hpsy5w1r7000mna2mhd7yfrmd8hi713lk0n9mv27bmam";
type = "gem";
};
version = "1.8.6";
};
memoizable = {
dependencies = ["thread_safe"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0v42bvghsvfpzybfazl14qhkrjvx0xlmxz0wwqc960ga1wld5x5c";
type = "gem";
};
version = "0.4.2";
};
metasm = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gss57q4lv6l0jkih77zffrpjjzgkdcsy7b9nvvawyzknis9w4s5";
type = "gem";
};
version = "1.0.3";
};
mime-types = {
dependencies = ["mime-types-data"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fjxy1jm52ixpnv3vg9ld9pr9f35gy0jp66i1njhqjvmnvq0iwwk";
type = "gem";
};
version = "3.2.2";
};
mime-types-data = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "07wvp0aw2gjm4njibb70as6rh5hi1zzri5vky1q6jx95h8l56idc";
type = "gem";
};
version = "3.2018.0812";
};
mini_portile2 = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "13d32jjadpjj6d2wdhkfpsmy68zjx90p49bgf8f7nkpz86r1fr11";
type = "gem";
};
version = "2.3.0";
};
mojo_magick = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1n4hzdyvaggzasxb55iqjd8sg6g84yc2dbaip0zzy7nwr5j5h8sm";
type = "gem";
};
version = "0.5.6";
};
msfrpc-client = {
dependencies = ["msgpack" "rex"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0q1x0xy857qm3sdxynp5p8kk7f6j25qjw1p28jh0y2qivc5ksik8";
type = "gem";
};
version = "1.1.1";
};
msgpack = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "09xy1wc4wfbd1jdrzgxwmqjzfdfxbz0cqdszq2gv6rmc3gv1c864";
type = "gem";
};
version = "1.2.4";
};
multi_json = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1rl0qy4inf1mp8mybfk56dfga0mvx97zwpmq5xmiwl5r770171nv";
type = "gem";
};
version = "1.13.1";
};
multipart-post = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "09k0b3cybqilk1gwrwwain95rdypixb2q9w65gd44gfzsd84xi1x";
type = "gem";
};
version = "2.0.0";
};
mustermann = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "07sb7fckrraqh48fjnqf6yl7vxxabfx0qrsrhfdz67pd838g4k8g";
type = "gem";
};
version = "1.0.2";
};
naught = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1wwjx35zgbc0nplp8a866iafk4zsrbhwwz4pav5gydr2wm26nksg";
type = "gem";
};
version = "1.1.0";
};
netrc = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gzfmcywp1da8nzfqsql2zqi648mfnx6qwkig3cv36n9m0yy676y";
type = "gem";
};
version = "0.11.0";
};
parseconfig = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0br2g9k6zc4ygah52aa8cwvpnnkszia29bnvnr8bhpk3rdzi2vmq";
type = "gem";
};
version = "1.0.8";
};
public_suffix = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "08q64b5br692dd3v0a9wq9q5dvycc6kmiqmjbdxkxbfizggsvx6l";
type = "gem";
};
version = "3.0.3";
};
qr4r = {
dependencies = ["mojo_magick" "rqrcode"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ya71fxhmx2zfsmflmqh6xm9jwgjxamsj9d3h1kjp21w4vca0s30";
type = "gem";
};
version = "0.4.1";
};
rack = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "158hbn7rlc3czp2vivvam44dv6vmzz16qrh5dbzhfxbfsgiyrqw1";
type = "gem";
};
version = "2.0.5";
};
rack-protection = {
dependencies = ["rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1z5598qipilmnf45428jnxi63ykrgvnyywa5ckpr52zv2vpd8jdp";
type = "gem";
};
version = "2.0.3";
};
rainbow = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bb2fpjspydr6x0s8pn1pqkzmxszvkfapv0p4627mywl7ky4zkhk";
type = "gem";
};
version = "3.0.0";
};
rake = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1idi53jay34ba9j68c3mfr9wwkg3cd9qh0fn9cg42hv72c6q8dyg";
type = "gem";
};
version = "12.3.1";
};
rb-readline = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "14w79a121czmvk1s953qfzww30mqjb2zc0k9qhi0ivxxk3hxg6wy";
type = "gem";
};
version = "0.5.5";
};
rest-client = {
dependencies = ["http-cookie" "mime-types" "netrc"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1hzcs2r7b5bjkf2x2z3n8z6082maz0j8vqjiciwgg3hzb63f958j";
type = "gem";
};
version = "2.0.2";
};
rex = {
dependencies = ["filesize" "jsobfu" "json" "metasm" "rb-readline" "robots"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0kxacxq4l1gcqbw1izg2qqvdhxl6b5779a2qa2jk24f6x96bpi68";
type = "gem";
};
version = "2.0.11";
};
rexec = {
dependencies = ["rainbow"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1ihc0a6gj4i3287fjm86cn2ax4hlznyk5aqxrhjxkf4y9kabc3in";
type = "gem";
};
version = "1.6.3";
};
rkelly-remix = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1g7hjl9nx7f953y7lncmfgp0xgxfxvgfm367q6da9niik6rp1y3j";
type = "gem";
};
version = "0.0.7";
};
robots = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "141gvihcr2c0dpzl3dqyh8kqc9121prfdql2iamaaw0mf9qs3njs";
type = "gem";
};
version = "0.10.1";
};
rqrcode = {
dependencies = ["chunky_png"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0h1pnnydgs032psakvg3l779w3ghbn08ajhhhw19hpmnfhrs8k0a";
type = "gem";
};
version = "0.10.1";
};
rubydns = {
dependencies = ["eventmachine" "rexec"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mav6589kpqh37wlipkh1nww6ipbw4kzja2crz216v25wwjrbpx2";
type = "gem";
};
version = "0.7.3";
};
rubyzip = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "06js4gznzgh8ac2ldvmjcmg9v1vg9llm357yckkpylaj6z456zqz";
type = "gem";
};
version = "1.2.1";
};
rushover = {
dependencies = ["json" "rest-client"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0j6x61drcdfnbvgmkmrc92zw67acpfcz5h1a29sdf884zkwd1444";
type = "gem";
};
version = "0.3.0";
};
simple_oauth = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0dw9ii6m7wckml100xhjc6vxpjcry174lbi9jz5v7ibjr3i94y8l";
type = "gem";
};
version = "0.3.1";
};
sinatra = {
dependencies = ["mustermann" "rack" "rack-protection" "tilt"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1kyi55q4k4idv31h7l53hw0mnh50dwwrrsfm35j52jy7fc993m9r";
type = "gem";
};
version = "2.0.3";
};
slack-notifier = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1pkfn99dhy5s526r6k8d87fwwb6j287ga9s7lxqmh60z28xqh3bv";
type = "gem";
};
version = "2.3.2";
};
term-ansicolor = {
dependencies = ["tins"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1b1wq9ljh7v3qyxkk8vik2fqx2qzwh5lval5f92llmldkw7r7k7b";
type = "gem";
};
version = "1.6.0";
};
thin = {
dependencies = ["daemons" "eventmachine" "rack"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nagbf9pwy1vg09k6j4xqhbjjzrg5dwzvkn4ffvlj76fsn6vv61f";
type = "gem";
};
version = "1.7.2";
};
thread_safe = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0nmhcgq6cgz44srylra07bmaw99f5271l0dpsvl5f75m44l0gmwy";
type = "gem";
};
version = "0.3.6";
};
tilt = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0020mrgdf11q23hm1ddd6fv691l51vi10af00f137ilcdb2ycfra";
type = "gem";
};
version = "2.0.8";
};
tins = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0g95xs4nvx5n62hb4fkbkd870l9q3y9adfc4h8j21phj9mxybkb8";
type = "gem";
};
version = "1.16.3";
};
twitter = {
dependencies = ["addressable" "buftok" "equalizer" "http" "http-form_data" "http_parser.rb" "memoizable" "multipart-post" "naught" "simple_oauth"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0fjyz3viabz3xs5d9aad18zgdbhfwm51jsnzigc8kxk77p1x58n5";
type = "gem";
};
version = "6.2.0";
};
uglifier = {
dependencies = ["execjs"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "14r283lkhisq2sdccv8ngf10f2f18ly4nc3chz3kliw5nylbgznw";
type = "gem";
};
version = "4.1.18";
};
unf = {
dependencies = ["unf_ext"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0bh2cf73i2ffh4fcpdn9ir4mhq8zi50ik0zqa1braahzadx536a9";
type = "gem";
};
version = "0.1.4";
};
unf_ext = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "06p1i6qhy34bpb8q8ms88y6f2kz86azwm098yvcc0nyqk9y729j1";
type = "gem";
};
version = "0.0.7.5";
};
xmlrpc = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1s744iwblw262gj357pky3d9fcx9hisvla7rnw29ysn5zsb6i683";
type = "gem";
};
version = "0.3.0";
};
}

16
pkgs/beef/shell.nix Normal file
View file

@ -0,0 +1,16 @@
# Env to update Gemfile.lock / gemset.nix
with import <nixpkgs> {};
stdenv.mkDerivation {
name = "env";
buildInputs = [
ruby.devEnv
git
sqlite
libpcap
postgresql
libxml2
libxslt
pkgconfig
bundix
];
}

34
pkgs/cupp.nix Normal file
View file

@ -0,0 +1,34 @@
{lib, stdenv, pkgs, fetchFromGitHub, python3 }:
stdenv.mkDerivation rec {
pname = "cupp";
version = "56547fd";
src = fetchFromGitHub {
owner = "Mebus";
repo = "cupp";
rev = version;
sha256 = "1np468jlabc6xkffbp2hdbmkhc8ln4nhfdqlh7h1c9pv1a4i8h4y";
};
buildInputs = [ python3 ];
strictDeps = true;
buildPhase = ''
true
'';
installPhase = ''
chmod 755 cupp.py
mkdir -p $out/bin
cp -r cupp.cfg cupp.py $out/bin
'';
meta = with lib; {
homepage = "https://git.causal.agency/catgirl/about/";
license = licenses.bsd3;
description = "Exploitation framework for embedded devices";
platforms = platforms.unix;
maintainers = with maintainers; [ xfnw ];
};
}

View file

@ -11,9 +11,10 @@ stdenv.mkDerivation rec {
sha256 = "0j1c6xl5nws8r81847a7jhwjc88aafkq9yby6rczym0mpnyg8i10";
};
propagatedBuildInputs = with pkgs.python3Packages; [
buildInputs = with pkgs.python3Packages; [
pkgs.python3 bluepy future requests paramiko pysnmp pycryptodome setuptools
];
strictDeps = true;
buildPhase = ''
true