From 7496e6bbc5d1fe5cb14046b9d90c201ced797b8f Mon Sep 17 00:00:00 2001 From: qhdwight Date: Sat, 22 Oct 2022 14:02:10 -0400 Subject: [PATCH 1/4] Add Vagrantfile --- {docker => containers}/Dockerfile | 0 containers/Vagrantfile | 114 ++++++++++++++++++++++++++++++ {docker => containers}/build.sh | 0 3 files changed, 114 insertions(+) rename {docker => containers}/Dockerfile (100%) create mode 100644 containers/Vagrantfile rename {docker => containers}/build.sh (100%) diff --git a/docker/Dockerfile b/containers/Dockerfile similarity index 100% rename from docker/Dockerfile rename to containers/Dockerfile diff --git a/containers/Vagrantfile b/containers/Vagrantfile new file mode 100644 index 0000000..2d28a1d --- /dev/null +++ b/containers/Vagrantfile @@ -0,0 +1,114 @@ +# -*- mode: ruby -*- +# vi: set ft=ruby : + +Vagrant.configure("2") do |config| + config.vm.box = "debian/bullseye64" + + config.vm.provider "virtualbox" do |v| + v.memory = 4096 + v.cpus = 2 + v.name = "wolvsec" + end + + config.vm.hostname = "wolvsec" + + config.ssh.forward_agent = true + config.ssh.forward_x11 = true + + config.vm.provision "shell", inline: <<-SHELL + ## Install base packages + apt-get update + apt-get -y upgrade + + apt-get install -y apt-transport-https + apt-get install -y \ + openjdk-11-jdk build-essential cmake pkg-config \ + unzip curl wget gcc zsh vim gdb git strace netcat \ + procps python3 python3-pip python3-dev file binutils sudo locales + + apt-get install -y task-gnome-desktop + + ## Add wolvsec user and give sudo permission + useradd --create-home --groups sudo --shell /bin/zsh wolvsec + echo "wolvsec:wolvsec" | chpasswd + echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers + + pip3 install pwntools numpy ipython + + ## Install GEF for better GDB experience + wget -O /home/wolvsec/.gdbinit-gef.py -q https://gef.blah.cat/py + echo source /home/wolvsec/.gdbinit-gef.py >> /home/wolvsec/.gdbinit + + ## Install Ghidra static reverse engineering tool + wget "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_10.1.5_build/ghidra_10.1.5_PUBLIC_20220726.zip" -O /tmp/ghidra.zip + unzip /tmp/ghidra.zip -d /opt/ghidra/ + rm -f /tmp/ghidra.zip + chown -hR wolvsec:wolvsec /opt/ghidra/ + # Create launcher for desktop + cat <> /usr/share/applications/ghidra.desktop +[Desktop Entry] +Categories=Application;Development; +Comment[en_US]=Ghidra Software Reverse Engineering Suite +Comment=Ghidra Software Reverse Engineering Suite +Exec=/opt/ghidra/ghidra_10.1.5_PUBLIC/ghidraRun +GenericName[en_US]=Ghidra Software Reverse Engineering Suite +GenericName=Ghidra Software Reverse Engineering Suite +Icon=/opt/ghidra/ghidra_10.1.5_PUBLIC/support/ghidra.ico +MimeType= +Name[en_US]=Ghidra 10.1.5 +Name=Ghidra 10.1.5 +Path=/opt/ghidra/ghidra_10.1.5_PUBLIC/ +StartupNotify=false +Terminal=false +TerminalOptions= +Type=Application +Version=1.0 +X-DBUS-ServiceName= +X-DBUS-StartupType=none +X-KDE-SubstituteUID=false +X-KDE-Username= +EOT + + # Install IDA + sudo apt-get install -y libxcb-xinerama0 + wget "https://out7.hex-rays.com/files/idafree81_linux.run" -O /tmp/idafree_installer.run + chmod +x /tmp/idafree_installer.run + /tmp/idafree_installer.run --mode unattended --prefix /opt/idafree/idafree-8.1 + rm -f /tmp/idafree_installer.run + chown -hR wolvsec:wolvsec /opt/idafree/ + cat <> /usr/share/applications/idafree.desktop +[Desktop Entry] +Categories=Application;Development; +Comment[en_US]=IDA Freeware +Comment=IDA Freeware +Exec=/opt/idafree/idafree-8.1/ida64 +GenericName[en_US]=IDA Freeware +GenericName=IDA Freeware +Icon=/opt/idafree/idafree-8.1/appico64.png +MimeType= +Name[en_US]=IDA Freeware 8.1 +Name=IDA Freeware 8.1 +Path=/opt/idafree/idafree-8.1/ +StartupNotify=false +Terminal=false +TerminalOptions= +Type=Application +Version=1.0 +X-DBUS-ServiceName= +X-DBUS-StartupType=none +X-KDE-SubstituteUID=false +X-KDE-Username= +EOT + + ## Install VSCode + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > /tmp/packages.microsoft.gpg + install -D -o root -g root -m 644 /tmp/packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg + sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list' + rm -f /tmp/packages.microsoft.gpg + apt-get update + apt-get install -y code + + # Dark mode :) + runuser -l wolvsec 'gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark' + SHELL +end \ No newline at end of file diff --git a/docker/build.sh b/containers/build.sh similarity index 100% rename from docker/build.sh rename to containers/build.sh From f3513c54184aff4532eb09d28a5cd25e9a3332e5 Mon Sep 17 00:00:00 2001 From: qhdwight Date: Sat, 22 Oct 2022 14:53:07 -0400 Subject: [PATCH 2/4] Add some more packages --- containers/Dockerfile | 7 ++++--- containers/Vagrantfile | 11 ++++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/containers/Dockerfile b/containers/Dockerfile index 35bf767..d26a591 100644 --- a/containers/Dockerfile +++ b/containers/Dockerfile @@ -5,9 +5,10 @@ RUN apt-get update -y RUN apt-get install -y apt-transport-https RUN apt-get install -y \ - build-essential gdbserver cmake pkg-config \ - strace curl wget gcc zsh vim gdb git netcat tmux \ - procps python3 python3-pip python3-dev file binutils sudo locales \ + build-essential gdb gdbserver cmake pkg-config libc6-dbg nasm libtool-bin clang \ + procps strace binutils file \ + unzip curl wget zsh vim git netcat tmux htop ascii xz-utils ripgrep dnsutils \ + python3 python3-pip python3-dev sudo locales \ ruby-standalone RUN gem install one_gadget diff --git a/containers/Vagrantfile b/containers/Vagrantfile index 2d28a1d..3d6a17e 100644 --- a/containers/Vagrantfile +++ b/containers/Vagrantfile @@ -22,9 +22,10 @@ Vagrant.configure("2") do |config| apt-get install -y apt-transport-https apt-get install -y \ - openjdk-11-jdk build-essential cmake pkg-config \ - unzip curl wget gcc zsh vim gdb git strace netcat \ - procps python3 python3-pip python3-dev file binutils sudo locales + openjdk-11-jdk gcc build-essential gdb cmake pkg-config libc6-dbg nasm libtool-bin clang \ + unzip curl wget zsh neovim git htop tmux file binutils sudo locales ascii xz-utils ripgrep \ + strace ltrace netcat procps dnsutils \ + python3 python3-pip python3-dev apt-get install -y task-gnome-desktop @@ -33,7 +34,7 @@ Vagrant.configure("2") do |config| echo "wolvsec:wolvsec" | chpasswd echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers - pip3 install pwntools numpy ipython + pip3 install pwntools numpy ipython z3-solver ## Install GEF for better GDB experience wget -O /home/wolvsec/.gdbinit-gef.py -q https://gef.blah.cat/py @@ -109,6 +110,6 @@ EOT apt-get install -y code # Dark mode :) - runuser -l wolvsec 'gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark' + runuser -l wolvsec -c 'gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark' SHELL end \ No newline at end of file From 310ff055853c11e093ef1b48044a94a8c945abb9 Mon Sep 17 00:00:00 2001 From: qhdwight Date: Sat, 22 Oct 2022 15:47:36 -0400 Subject: [PATCH 3/4] Build Z3 from source --- containers/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/containers/Dockerfile b/containers/Dockerfile index d26a591..3ef93d3 100644 --- a/containers/Dockerfile +++ b/containers/Dockerfile @@ -26,7 +26,7 @@ USER wolvsec ENV PATH="${PATH}:/home/wolvsec/.local/bin" -RUN pip3 install pwntools numpy ipython z3-solver +RUN pip3 install pwntools numpy ipython RUN bash -c "$(curl -fsSL https://gef.blah.cat/sh)" From dc6f2029451e372c01ab961acd22fa1da83ed8cd Mon Sep 17 00:00:00 2001 From: qhdwight Date: Mon, 20 Feb 2023 11:37:16 -0500 Subject: [PATCH 4/4] Update docker and vagrant --- containers/Dockerfile | 2 +- containers/Vagrantfile | 40 +++++++++++++++++++++------------------- 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/containers/Dockerfile b/containers/Dockerfile index 3ef93d3..d26a591 100644 --- a/containers/Dockerfile +++ b/containers/Dockerfile @@ -26,7 +26,7 @@ USER wolvsec ENV PATH="${PATH}:/home/wolvsec/.local/bin" -RUN pip3 install pwntools numpy ipython +RUN pip3 install pwntools numpy ipython z3-solver RUN bash -c "$(curl -fsSL https://gef.blah.cat/sh)" diff --git a/containers/Vagrantfile b/containers/Vagrantfile index 3d6a17e..f5add1d 100644 --- a/containers/Vagrantfile +++ b/containers/Vagrantfile @@ -22,10 +22,12 @@ Vagrant.configure("2") do |config| apt-get install -y apt-transport-https apt-get install -y \ - openjdk-11-jdk gcc build-essential gdb cmake pkg-config libc6-dbg nasm libtool-bin clang \ - unzip curl wget zsh neovim git htop tmux file binutils sudo locales ascii xz-utils ripgrep \ - strace ltrace netcat procps dnsutils \ - python3 python3-pip python3-dev + openjdk-11-jdk \ + build-essential gdb gdbserver cmake pkg-config libc6-dbg nasm libtool-bin clang \ + procps strace binutils file \ + unzip curl wget zsh vim git netcat tmux htop ascii xz-utils ripgrep dnsutils \ + python3 python3-pip python3-dev sudo locales \ + ruby-standalone apt-get install -y task-gnome-desktop @@ -41,7 +43,7 @@ Vagrant.configure("2") do |config| echo source /home/wolvsec/.gdbinit-gef.py >> /home/wolvsec/.gdbinit ## Install Ghidra static reverse engineering tool - wget "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_10.1.5_build/ghidra_10.1.5_PUBLIC_20220726.zip" -O /tmp/ghidra.zip + wget "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_10.2.3_build/ghidra_10.2.3_PUBLIC_20230208.zip" -O /tmp/ghidra.zip unzip /tmp/ghidra.zip -d /opt/ghidra/ rm -f /tmp/ghidra.zip chown -hR wolvsec:wolvsec /opt/ghidra/ @@ -51,19 +53,19 @@ Vagrant.configure("2") do |config| Categories=Application;Development; Comment[en_US]=Ghidra Software Reverse Engineering Suite Comment=Ghidra Software Reverse Engineering Suite -Exec=/opt/ghidra/ghidra_10.1.5_PUBLIC/ghidraRun +Exec=/opt/ghidra/ghidra_10.2.3_PUBLIC/ghidraRun GenericName[en_US]=Ghidra Software Reverse Engineering Suite GenericName=Ghidra Software Reverse Engineering Suite -Icon=/opt/ghidra/ghidra_10.1.5_PUBLIC/support/ghidra.ico +Icon=/opt/ghidra/ghidra_10.2.3_PUBLIC/support/ghidra.ico MimeType= -Name[en_US]=Ghidra 10.1.5 -Name=Ghidra 10.1.5 -Path=/opt/ghidra/ghidra_10.1.5_PUBLIC/ +Name[en_US]=Ghidra 10.2.3 +Name=Ghidra 10.2.3 +Path=/opt/ghidra/ghidra_10.2.3_PUBLIC/ StartupNotify=false Terminal=false TerminalOptions= Type=Application -Version=1.0 +Version=10.2.3 X-DBUS-ServiceName= X-DBUS-StartupType=none X-KDE-SubstituteUID=false @@ -72,9 +74,9 @@ EOT # Install IDA sudo apt-get install -y libxcb-xinerama0 - wget "https://out7.hex-rays.com/files/idafree81_linux.run" -O /tmp/idafree_installer.run + wget "https://out7.hex-rays.com/files/idafree82_linux.run" -O /tmp/idafree_installer.run chmod +x /tmp/idafree_installer.run - /tmp/idafree_installer.run --mode unattended --prefix /opt/idafree/idafree-8.1 + /tmp/idafree_installer.run --mode unattended --prefix /opt/idafree/idafree-8.2 rm -f /tmp/idafree_installer.run chown -hR wolvsec:wolvsec /opt/idafree/ cat <> /usr/share/applications/idafree.desktop @@ -82,19 +84,19 @@ EOT Categories=Application;Development; Comment[en_US]=IDA Freeware Comment=IDA Freeware -Exec=/opt/idafree/idafree-8.1/ida64 +Exec=/opt/idafree/idafree-8.2/ida64 GenericName[en_US]=IDA Freeware GenericName=IDA Freeware -Icon=/opt/idafree/idafree-8.1/appico64.png +Icon=/opt/idafree/idafree-8.2/appico64.png MimeType= -Name[en_US]=IDA Freeware 8.1 -Name=IDA Freeware 8.1 -Path=/opt/idafree/idafree-8.1/ +Name[en_US]=IDA Freeware 8.2 +Name=IDA Freeware 8.2 +Path=/opt/idafree/idafree-8.2/ StartupNotify=false Terminal=false TerminalOptions= Type=Application -Version=1.0 +Version=8.2 X-DBUS-ServiceName= X-DBUS-StartupType=none X-KDE-SubstituteUID=false