bettercap: 1.6.2 -> 2.4.0

bettercap 2 is a complete reimplementation using go instead of ruby
See: https://www.evilsocket.net/2018/02/27/All-hail-bettercap-2-0-one-tool-to-rule-them-all/
This commit is contained in:
Markus Ankenbrand 2018-04-01 16:39:33 +02:00
parent 7513208cd3
commit c82a648d33
5 changed files with 243 additions and 173 deletions

View File

@ -1,2 +0,0 @@
source 'https://rubygems.org'
gem 'bettercap'

View File

@ -1,42 +0,0 @@
GEM
remote: https://rubygems.org/
specs:
bettercap (1.6.2)
colorize (~> 0.8.0)
em-proxy (~> 0.1, >= 0.1.8)
net-dns (~> 0.8, >= 0.8.0)
network_interface (~> 0.0, >= 0.0.1)
packetfu (~> 1.1, >= 1.1.10)
pcaprub (~> 0.12, >= 0.12.0, <= 1.1.11)
rubydns (~> 1.0, >= 1.0.3)
celluloid (0.16.0)
timers (~> 4.0.0)
celluloid-io (0.16.2)
celluloid (>= 0.16.0)
nio4r (>= 1.1.0)
colorize (0.8.1)
em-proxy (0.1.9)
eventmachine
eventmachine (1.2.5)
hitimes (1.2.6)
net-dns (0.8.0)
network_interface (0.0.2)
nio4r (2.2.0)
packetfu (1.1.13)
pcaprub
pcaprub (0.12.4)
rubydns (1.0.3)
celluloid (= 0.16.0)
celluloid-io (= 0.16.2)
timers (~> 4.0.1)
timers (4.0.4)
hitimes
PLATFORMS
ruby
DEPENDENCIES
bettercap
BUNDLED WITH
1.14.6

View File

@ -1,16 +1,23 @@
{ lib, bundlerEnv, ruby, libpcap}:
{ stdenv, buildGoPackage, fetchFromGitHub, pkgconfig, libpcap, libnfnetlink, libnetfilter_queue }:
bundlerEnv rec {
buildGoPackage rec {
name = "bettercap-${version}";
version = "2.4";
version = (import gemset).bettercap.version;
inherit ruby;
gemdir = ./.;
gemset = ./gemset.nix;
goPackagePath = "github.com/bettercap/bettercap";
buildInputs = [ libpcap ruby ];
src = fetchFromGitHub {
owner = "bettercap";
repo = "bettercap";
rev = "v${version}";
sha256 = "1k1ank8z9sr3vxm86dfcrn1y3qa3gfwyb2z0fvkvi38gc88pfljb";
};
meta = with lib; {
buildInputs = [libpcap libnfnetlink libnetfilter_queue pkgconfig];
goDeps = ./deps.nix;
meta = with stdenv.lib; {
description = "A man in the middle tool";
longDescription = ''
BetterCAP is a powerful, flexible and portable tool created to perform various types of MITM attacks against a network, manipulate HTTP, HTTPS and TCP traffic in realtime, sniff for credentials and much more.

228
pkgs/tools/security/bettercap/deps.nix generated Normal file
View File

@ -0,0 +1,228 @@
# file generated from Gopkg.lock using dep2nix (https://github.com/nixcloud/dep2nix)
[
{
goPackagePath = "github.com/adrianmo/go-nmea";
fetch = {
type = "git";
url = "https://github.com/adrianmo/go-nmea";
rev = "22095aa1b48050243d3eb9a001ca80eb91a0c6fa";
sha256 = "0hgjfmnff794j537kbrjcsxzr9xyggm09rw3wp2xrzahh9pxdlm5";
};
}
{
goPackagePath = "github.com/bettercap/gatt";
fetch = {
type = "git";
url = "https://github.com/bettercap/gatt";
rev = "6475b946a0bff32e906c25d861f2b1c6d2056baa";
sha256 = "0f2n35yz6fcbmswy1wyv2z72d3iia7xxapjkvwkbj2zqfxxwn26s";
};
}
{
goPackagePath = "github.com/bettercap/readline";
fetch = {
type = "git";
url = "https://github.com/bettercap/readline";
rev = "9cec905dd29109b64e6752507fba73474c2efd46";
sha256 = "1lsnyckg2l78hz4la8dhwvjsyff706khw10nxds5afzl4mrih3vn";
};
}
{
goPackagePath = "github.com/chifflier/nfqueue-go";
fetch = {
type = "git";
url = "https://github.com/chifflier/nfqueue-go";
rev = "61ca646babef3bd4dea1deb610bfb0005c0a1298";
sha256 = "1i1q2xl86f3s9x3j2ffxprwqhcrkh4w23hh4ib7jksxvaq36v33l";
};
}
{
goPackagePath = "github.com/dustin/go-humanize";
fetch = {
type = "git";
url = "https://github.com/dustin/go-humanize";
rev = "bb3d318650d48840a39aa21a027c6630e198e626";
sha256 = "1lqd8ix3cb164j5iazjby2jpa6bdsflhy0h9mi4yldvvcvrc194c";
};
}
{
goPackagePath = "github.com/elazarl/goproxy";
fetch = {
type = "git";
url = "https://github.com/elazarl/goproxy";
rev = "a96fa3a318260eab29abaf32f7128c9eb07fb073";
sha256 = "0grm4n28mkj2w4c42ghl797svxykv1z3hsdi1ihnrvq6pr08xky4";
};
}
{
goPackagePath = "github.com/google/go-github";
fetch = {
type = "git";
url = "https://github.com/google/go-github";
rev = "437797734d06eec5394734a84cb5b59c82a66ee6";
sha256 = "09ajj73rwsxc03dmm39g8b0qaz88h6gnraw2xn8h7z57qqv6ikcx";
};
}
{
goPackagePath = "github.com/google/go-querystring";
fetch = {
type = "git";
url = "https://github.com/google/go-querystring";
rev = "53e6ce116135b80d037921a7fdd5138cf32d7a8a";
sha256 = "0lkbm067nhmxk66pyjx59d77dbjjzwyi43gdvzyx2f8m1942rq7f";
};
}
{
goPackagePath = "github.com/google/gopacket";
fetch = {
type = "git";
url = "https://github.com/google/gopacket";
rev = "1d3841317373a001d49e2abcc5be4e442211d454";
sha256 = "1jffnrvrma3rm5zxmig52145y9bxc3b4ys4jr1nwmq43jk15s3kp";
};
}
{
goPackagePath = "github.com/gorilla/context";
fetch = {
type = "git";
url = "https://github.com/gorilla/context";
rev = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42";
sha256 = "03p4hn87vcmfih0p9w663qbx9lpsf7i7j3lc7yl7n84la3yz63m4";
};
}
{
goPackagePath = "github.com/gorilla/mux";
fetch = {
type = "git";
url = "https://github.com/gorilla/mux";
rev = "4dbd923b0c9e99ff63ad54b0e9705ff92d3cdb06";
sha256 = "02d5c3vh81v2j6g6fnca87ksxjx0xrgp7x7iivfw5x92q1l5h254";
};
}
{
goPackagePath = "github.com/gorilla/websocket";
fetch = {
type = "git";
url = "https://github.com/gorilla/websocket";
rev = "eb925808374e5ca90c83401a40d711dc08c0c0f6";
sha256 = "0swncxnl97pmsl78q1p4npx9jghnrzj7alkxab89jy9cza5w165x";
};
}
{
goPackagePath = "github.com/inconshreveable/go-vhost";
fetch = {
type = "git";
url = "https://github.com/inconshreveable/go-vhost";
rev = "06d84117953b22058c096b49a429ebd4f3d3d97b";
sha256 = "0wliilsybm7xf5h685a23rsm8bnlhkr332pkdkhf32q16sr1a9rk";
};
}
{
goPackagePath = "github.com/jpillora/go-tld";
fetch = {
type = "git";
url = "https://github.com/jpillora/go-tld";
rev = "a31ae10e978ab5f352c5dad2cfbd60546dcea75f";
sha256 = "1gfxnbr1xsnlja2qpqxis8ynnk1lrz9c65aah7vc2c44g8vyy78x";
};
}
{
goPackagePath = "github.com/malfunkt/iprange";
fetch = {
type = "git";
url = "https://github.com/malfunkt/iprange";
rev = "3a31f5ed42d2d8a1fc46f1be91fd693bdef2dd52";
sha256 = "0gv5w678r74jval675xp0y1hzpf7mm5m9apa1rz9krxc9zd0ycr8";
};
}
{
goPackagePath = "github.com/mattn/go-colorable";
fetch = {
type = "git";
url = "https://github.com/mattn/go-colorable";
rev = "efa589957cd060542a26d2dd7832fd6a6c6c3ade";
sha256 = "0kshi4hvm0ayrsxqxy0599iv81kryhd2fn9lwjyczpj593cq069r";
};
}
{
goPackagePath = "github.com/mattn/go-isatty";
fetch = {
type = "git";
url = "https://github.com/mattn/go-isatty";
rev = "6ca4dbf54d38eea1a992b3c722a76a5d1c4cb25c";
sha256 = "0zs92j2cqaw9j8qx1sdxpv3ap0rgbs0vrvi72m40mg8aa36gd39w";
};
}
{
goPackagePath = "github.com/mdlayher/dhcp6";
fetch = {
type = "git";
url = "https://github.com/mdlayher/dhcp6";
rev = "e26af0688e455a82b14ebdbecf43f87ead3c4624";
sha256 = "0fvw8zz2yhla03jfb79bby9vg4rbmaj39v00ypb8yl4fb696zfip";
};
}
{
goPackagePath = "github.com/mgutz/ansi";
fetch = {
type = "git";
url = "https://github.com/mgutz/ansi";
rev = "9520e82c474b0a04dd04f8a40959027271bab992";
sha256 = "00bz22314j26736w1f0q4jy9d9dfaml17vn890n5zqy3cmvmww1j";
};
}
{
goPackagePath = "github.com/mgutz/logxi";
fetch = {
type = "git";
url = "https://github.com/mgutz/logxi";
rev = "aebf8a7d67ab4625e0fd4a665766fef9a709161b";
sha256 = "1f8sqibkzz9wfplvvblz9s0xvvmhkd2af8ghcsmjw8818gcrzsqx";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "816c9085562cd7ee03e7f8188a1cfd942858cded";
sha256 = "1ws5crb7c70wdicavl6qr4g03nn6m92zd6wwp9n2ygz5c8rmxh8k";
};
}
{
goPackagePath = "github.com/robertkrimen/otto";
fetch = {
type = "git";
url = "https://github.com/robertkrimen/otto";
rev = "6c383dd335ef8dcccef05e651ce1eccfe4d0f011";
sha256 = "1n6h7c8gi6wv4nklqd7ygzx2afvh7ddxbml9w9x0jxwcfb3bdy17";
};
}
{
goPackagePath = "github.com/tarm/serial";
fetch = {
type = "git";
url = "https://github.com/tarm/serial";
rev = "eaafced92e9619f03c72527efeab21e326f3bc36";
sha256 = "09pii3q72bygv40v9xsh3nzj821iwqwa0b14wvkagid8mfnl3a7k";
};
}
{
goPackagePath = "golang.org/x/sys";
fetch = {
type = "git";
url = "https://go.googlesource.com/sys";
rev = "378d26f46672a356c46195c28f61bdb4c0a781dd";
sha256 = "1d02saysx8lh2wv8s915k4shiqicg4j1fh6sxmcxy6bvywax2q9c";
};
}
{
goPackagePath = "gopkg.in/sourcemap.v1";
fetch = {
type = "git";
url = "https://github.com/go-sourcemap/sourcemap";
rev = "b019cc30c1eaa584753491b0d8f8c1534bf1eb44";
sha256 = "03k44fdrnknba05f7cd58lq4rzk7jdpiqksmc0wxrdzwschrbgw8";
};
}
]

View File

@ -1,121 +0,0 @@
{
bettercap = {
dependencies = ["colorize" "em-proxy" "net-dns" "network_interface" "packetfu" "pcaprub" "rubydns"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1mns96yfyfnksk720p8k83qkwwsid4sicwgrzxaa9gbc53aalll0";
type = "gem";
};
version = "1.6.2";
};
celluloid = {
dependencies = ["timers"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "044xk0y7i1xjafzv7blzj5r56s7zr8nzb619arkrl390mf19jxv3";
type = "gem";
};
version = "0.16.0";
};
celluloid-io = {
dependencies = ["celluloid" "nio4r"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1l1x0p6daa5vskywrvaxdlanwib3k5pps16axwyy4p8d49pn9rnx";
type = "gem";
};
version = "0.16.2";
};
colorize = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "133rqj85n400qk6g3dhf2bmfws34mak1wqihvh3bgy9jhajw580b";
type = "gem";
};
version = "0.8.1";
};
em-proxy = {
dependencies = ["eventmachine"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1yzkg6jkmcg859b5mf13igpf8q2bjhsmqjsva05948fi733w5n2j";
type = "gem";
};
version = "0.1.9";
};
eventmachine = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "075hdw0fgzldgss3xaqm2dk545736khcvv1fmzbf1sgdlkyh1v8z";
type = "gem";
};
version = "1.2.5";
};
hitimes = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "06222h9236jw9jgmdlpi0q7psac1shvxqxqx905qkvabmxdxlfar";
type = "gem";
};
version = "1.2.6";
};
net-dns = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "12nal6vhdyg0pbcqpsxqr59h7mbgdhcqp3v0xnzvy167n40gabf9";
type = "gem";
};
version = "0.8.0";
};
network_interface = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "1xh4knfq77ii4pjzsd2z1p3nd6nrcdjhb2vi5gw36jqj43ffw0zp";
type = "gem";
};
version = "0.0.2";
};
nio4r = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0jjrj7vs29w6dfgsxq08226jfbi2j0x62lf4p9zmvyp19dj4z00a";
type = "gem";
};
version = "2.2.0";
};
packetfu = {
dependencies = ["pcaprub"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "16ppq9wfxq4x2hss61l5brs3s6fmi8gb50mnp1nnnzb1asq4g8ll";
type = "gem";
};
version = "1.1.13";
};
pcaprub = {
source = {
remotes = ["https://rubygems.org"];
sha256 = "0pl4lqy7308185pfv0197n8b4v20fhd0zb3wlpz284rk8ssclkvz";
type = "gem";
};
version = "0.12.4";
};
rubydns = {
dependencies = ["celluloid" "celluloid-io" "timers"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1cvj8li8shz7zn1rc5hdrkqmvr9j187g4y28mvkfvmv1j9hdln62";
type = "gem";
};
version = "1.0.3";
};
timers = {
dependencies = ["hitimes"];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1jx4wb0x182gmbcs90vz0wzfyp8afi1mpl9w5ippfncyk4kffvrz";
type = "gem";
};
version = "4.0.4";
};
}