From e6a40d925417bdcbb8f9ee6367fb8fbbe1ec87ce Mon Sep 17 00:00:00 2001 From: Random936 Date: Mon, 23 Sep 2024 19:53:23 -0700 Subject: [PATCH] Switched back to unstable; fixed evil-winrm package --- config/headful.nix | 10 +- config/media.nix | 4 +- config/omen.nix | 10 +- dotfiles/.config/i3/config | 8 +- flake.lock | 16 +-- flake.nix | 4 +- home/hacking.nix | 17 ++- packages/all-packages.nix | 1 + packages/evil-winrm/Gemfile | 7 ++ packages/evil-winrm/Gemfile.lock | 51 +++++++++ packages/evil-winrm/default.nix | 46 ++++++++ packages/evil-winrm/gemset.nix | 187 +++++++++++++++++++++++++++++++ 12 files changed, 333 insertions(+), 28 deletions(-) create mode 100644 packages/evil-winrm/Gemfile create mode 100644 packages/evil-winrm/Gemfile.lock create mode 100644 packages/evil-winrm/default.nix create mode 100644 packages/evil-winrm/gemset.nix diff --git a/config/headful.nix b/config/headful.nix index 4ec115e..fc0ae28 100644 --- a/config/headful.nix +++ b/config/headful.nix @@ -10,8 +10,14 @@ }; # Enable sound - sound.enable = true; - hardware.pulseaudio.enable = true; + security.rtkit.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + alsa.support32Bit = true; + pulse.enable = true; + jack.enable = true; + }; # Enable CUPS to print documents. services.printing.enable = true; diff --git a/config/media.nix b/config/media.nix index 0da7ab8..885b45b 100644 --- a/config/media.nix +++ b/config/media.nix @@ -35,9 +35,9 @@ nvidiaSettings = true; }; - opengl = { + graphics = { enable = true; - driSupport32Bit = true; + enable32Bit = true; }; }; diff --git a/config/omen.nix b/config/omen.nix index 935b72f..263a7d7 100644 --- a/config/omen.nix +++ b/config/omen.nix @@ -1,4 +1,4 @@ -{ ... }: { +{ lib, ... }: { imports = [ ../hardware/omen.nix @@ -16,6 +16,9 @@ networking.hostName = "randomctf"; users.users.random = import ./user.nix; + # Temporary fix for service failure. + systemd.services.NetworkManager-wait-online.enable = lib.mkForce false; + # Enable Nvidia drivers services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia = { @@ -43,10 +46,9 @@ environment.variables.GDK_SCALE = "0.5"; # Install OpenGL - hardware.opengl = { + hardware.graphics = { enable = true; - driSupport = true; - driSupport32Bit = true; + enable32Bit = true; }; # Ignore laptop lid closing when connected to power. diff --git a/dotfiles/.config/i3/config b/dotfiles/.config/i3/config index 22b5346..f544d89 100644 --- a/dotfiles/.config/i3/config +++ b/dotfiles/.config/i3/config @@ -5,10 +5,10 @@ font pango:monospace 8 # Use pactl to adjust volume in PulseAudio. set $refresh_i3status killall -SIGUSR1 i3status -bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status -bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status -bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status -bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status +bindsym XF86AudioRaiseVolume exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ 5%+ && $refresh_i3status +bindsym XF86AudioLowerVolume exec --no-startup-id wpctl set-volume @DEFAULT_SINK@ 5%- && $refresh_i3status +bindsym XF86AudioMute exec --no-startup-id wpctl set-mute @DEFAULT_SINK@ toggle && $refresh_i3status +bindsym XF86AudioMicMute exec --no-startup-id pactl set-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status # Use Mouse+$mod to drag floating windows to their wanted position floating_modifier $mod diff --git a/flake.lock b/flake.lock index b9ac50b..8e37454 100644 --- a/flake.lock +++ b/flake.lock @@ -7,16 +7,16 @@ ] }, "locked": { - "lastModified": 1717527182, - "narHash": "sha256-vWSkg6AMok1UUQiSYVdGMOXKD2cDFnajITiSi0Zjd1A=", + "lastModified": 1727111745, + "narHash": "sha256-EYLvFRoTPWtD+3uDg2wwQvlz88OrIr3zld+jFE5gDcY=", "owner": "nix-community", "repo": "home-manager", - "rev": "845a5c4c073f74105022533907703441e0464bc3", + "rev": "21c021862fa696c8199934e2153214ab57150cb6", "type": "github" }, "original": { "owner": "nix-community", - "ref": "release-24.05", + "ref": "master", "repo": "home-manager", "type": "github" } @@ -43,16 +43,16 @@ }, "nixpkgs": { "locked": { - "lastModified": 1717696253, - "narHash": "sha256-1+ua0ggXlYYPLTmMl3YeYYsBXDSCqT+Gw3u6l4gvMhA=", + "lastModified": 1726937504, + "narHash": "sha256-bvGoiQBvponpZh8ClUcmJ6QnsNKw0EMrCQJARK3bI1c=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9b5328b7f761a7bbdc0e332ac4cf076a3eedb89b", + "rev": "9357f4f23713673f310988025d9dc261c20e70c6", "type": "github" }, "original": { "owner": "nixos", - "ref": "nixos-24.05", + "ref": "nixos-unstable", "repo": "nixpkgs", "type": "github" } diff --git a/flake.nix b/flake.nix index b699f28..9567558 100644 --- a/flake.nix +++ b/flake.nix @@ -2,9 +2,9 @@ description = "Configuration flake for RandomCTF"; inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { - url = "github:nix-community/home-manager/release-24.05"; + url = "github:nix-community/home-manager/master"; inputs.nixpkgs.follows = "nixpkgs"; }; diff --git a/home/hacking.nix b/home/hacking.nix index c11fd12..e7d06bb 100644 --- a/home/hacking.nix +++ b/home/hacking.nix @@ -1,7 +1,11 @@ -{ pkgs, ... }: { - +{ lib, config, pkgs, ... }: +let + mypkgs = import ../packages/all-packages.nix { + inherit pkgs lib config; + }; +in { # Hacking specific packages. - home.packages = with pkgs; [ + home.packages = (with pkgs; [ yara nmap john @@ -12,20 +16,21 @@ wpscan openssl remmina + netexec inetutils thc-hydra exploitdb responder burpsuite - evil-winrm feroxbuster - crackmapexec (wordlists.override { lists = with pkgs; [ rockyou seclists ]; }) - ]; + ]) ++ (with mypkgs; [ + evil-winrm + ]); } diff --git a/packages/all-packages.nix b/packages/all-packages.nix index 302b0b7..7c11d72 100644 --- a/packages/all-packages.nix +++ b/packages/all-packages.nix @@ -1,3 +1,4 @@ { pkgs, lib, config, ... }: rec { tpm = pkgs.callPackage ./tpm {}; + evil-winrm = pkgs.callPackage ./evil-winrm {}; } diff --git a/packages/evil-winrm/Gemfile b/packages/evil-winrm/Gemfile new file mode 100644 index 0000000..ebdf6f5 --- /dev/null +++ b/packages/evil-winrm/Gemfile @@ -0,0 +1,7 @@ +source 'https://rubygems.org' + +gem 'winrm' +gem 'winrm-fs' +gem 'stringio' +gem 'logger' +gem 'fileutils' diff --git a/packages/evil-winrm/Gemfile.lock b/packages/evil-winrm/Gemfile.lock new file mode 100644 index 0000000..edbda34 --- /dev/null +++ b/packages/evil-winrm/Gemfile.lock @@ -0,0 +1,51 @@ +GEM + remote: https://rubygems.org/ + specs: + builder (3.2.3) + erubis (2.7.0) + ffi (1.11.1) + fileutils (0.7.2) + gssapi (1.3.0) + ffi (>= 1.0.1) + gyoku (1.3.1) + builder (>= 2.1.2) + httpclient (2.8.3) + little-plugger (1.1.4) + logger (1.4.3) + logging (2.2.2) + little-plugger (~> 1.1) + multi_json (~> 1.10) + multi_json (1.14.1) + nori (2.6.0) + rexml (3.2.5) + rubyntlm (0.6.2) + rubyzip (1.3.0) + stringio (0.0.2) + winrm (2.3.2) + builder (>= 2.1.2) + erubis (~> 2.7) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rexml (>= 3.2.3.1) + rubyntlm (~> 0.6.0, >= 0.6.1) + winrm-fs (1.3.2) + erubis (~> 2.7) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 1.1) + winrm (~> 2.0) + +PLATFORMS + ruby + +DEPENDENCIES + fileutils + logger + stringio + winrm + winrm-fs + +BUNDLED WITH + 2.2.24 \ No newline at end of file diff --git a/packages/evil-winrm/default.nix b/packages/evil-winrm/default.nix new file mode 100644 index 0000000..b8e88e1 --- /dev/null +++ b/packages/evil-winrm/default.nix @@ -0,0 +1,46 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, bundlerEnv +}: + +stdenv.mkDerivation rec { + pname = "evil-winrm"; + version = "3.5"; + + src = fetchFromGitHub { + owner = "Hackplayers"; + repo = "evil-winrm"; + rev = "refs/tags/v${version}"; + hash = "sha256-8Lyo7BgypzrHMEcbYlxo/XWwOtBqs2tczYnc3+XEbeA="; + }; + + env = bundlerEnv { + name = pname; + gemfile = ./Gemfile; + lockfile = ./Gemfile.lock; + gemset = ./gemset.nix; + }; + + nativeBuildInputs = [ + makeWrapper + ]; + + buildInputs = [ + env.wrappedRuby + ]; + + installPhase = '' + mkdir -p $out/bin + cp evil-winrm.rb $out/bin/evil-winrm + ''; + + meta = with lib; { + description = "WinRM shell for hacking/pentesting"; + mainProgram = "evil-winrm"; + homepage = "https://github.com/Hackplayers/evil-winrm"; + changelog = "https://github.com/Hackplayers/evil-winrm/blob/v${version}/CHANGELOG.md"; + license = licenses.lgpl3Plus; + }; +} diff --git a/packages/evil-winrm/gemset.nix b/packages/evil-winrm/gemset.nix new file mode 100644 index 0000000..413b8f1 --- /dev/null +++ b/packages/evil-winrm/gemset.nix @@ -0,0 +1,187 @@ +{ + builder = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0qibi5s67lpdv1wgcj66wcymcr04q6j4mzws6a479n0mlrmh5wr1"; + type = "gem"; + }; + version = "3.2.3"; + }; + erubis = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1fj827xqjs91yqsydf0zmfyw9p4l2jz5yikg3mppz6d7fi8kyrb3"; + type = "gem"; + }; + version = "2.7.0"; + }; + ffi = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06mvxpjply8qh4j3fj9wh08kdzwkbnvsiysh0vrhlk5cwxzjmblh"; + type = "gem"; + }; + version = "1.11.1"; + }; + fileutils = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "173z4dsqp9khcsl7x93dq1qj9d7rd378a7yfg53b1s6mczlkvh2k"; + type = "gem"; + }; + version = "0.7.2"; + }; + gssapi = { + dependencies = ["ffi"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "13l6pqbfrx3vv7cw26nq9p8rnyp9br31gaz85q32wx6hnzfcriwh"; + type = "gem"; + }; + version = "1.3.0"; + }; + gyoku = { + dependencies = ["builder"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1wn0sl14396g5lyvp8sjmcb1hw9rbyi89gxng91r7w4df4jwiidh"; + type = "gem"; + }; + version = "1.3.1"; + }; + httpclient = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19mxmvghp7ki3klsxwrlwr431li7hm1lczhhj8z4qihl2acy8l99"; + type = "gem"; + }; + version = "2.8.3"; + }; + little-plugger = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1frilv82dyxnlg8k1jhrvyd73l6k17mxc5vwxx080r4x1p04gwym"; + type = "gem"; + }; + version = "1.1.4"; + }; + logger = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1ihvvl2im9qii31d42c9kfscdg2flfqajs6ycbpslznclmfc71gc"; + type = "gem"; + }; + version = "1.4.3"; + }; + logging = { + dependencies = ["little-plugger" "multi_json"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "06j6iaj89h9jhkx1x3hlswqrfnqds8br05xb1qra69dpvbdmjcwn"; + type = "gem"; + }; + version = "2.2.2"; + }; + multi_json = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0xy54mjf7xg41l8qrg1bqri75agdqmxap9z466fjismc1rn2jwfr"; + type = "gem"; + }; + version = "1.14.1"; + }; + nori = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "066wc774a2zp4vrq3k7k8p0fhv30ymqmxma1jj7yg5735zls8agn"; + type = "gem"; + }; + version = "2.6.0"; + }; + rexml = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; + type = "gem"; + }; + version = "3.2.5"; + }; + rubyntlm = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1p6bxsklkbcqni4bcq6jajc2n57g0w5rzn4r49c3lb04wz5xg0dy"; + type = "gem"; + }; + version = "0.6.2"; + }; + rubyzip = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "1qxc2zxwwipm6kviiar4gfhcakpx1jdcs89v6lvzivn5hq1xk78l"; + type = "gem"; + }; + version = "1.3.0"; + }; + stringio = { + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "sha256-U0VuFBdcWU4OjrIgahvjPzl01P4hwTHmKJCLBcjCrh4="; + type = "gem"; + }; + version = "3.1.1"; + }; + winrm = { + dependencies = ["builder" "erubis" "gssapi" "gyoku" "httpclient" "logging" "nori" "rexml" "rubyntlm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "19vxrclxc5l8n2agwvv291740s6gna2phg3lkybjb0ldkmpi3sj2"; + type = "gem"; + }; + version = "2.3.2"; + }; + winrm-fs = { + dependencies = ["erubis" "logging" "rubyzip" "winrm"]; + groups = ["default"]; + platforms = []; + source = { + remotes = ["https://rubygems.org"]; + sha256 = "0fy4yj52kssrm5hchq7l2mbry6w6yvi736p1wjpyv8m19rx7k0c3"; + type = "gem"; + }; + version = "1.3.2"; + }; +}