Initial commit

This commit is contained in:
bad 2022-05-10 18:54:42 +02:00
commit 3a7e6ddda1
4 changed files with 41 additions and 0 deletions

12
Dockerfile Normal file
View file

@ -0,0 +1,12 @@
FROM ubuntu:latest
RUN mkdir /PWD
RUN apt-get -y update
RUN apt-get -y upgrade
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get -y install gdb gdbserver python3 python3-pip python-is-python3 libc6-i386
RUN pip install pwntools
ADD spawn-on-host-tmux.sh /bin/spawn-on-host-tmux.sh
RUN chmod +x /bin/spawn-on-host-tmux.sh
RUN ln -s /bin/spawn-on-host-tmux.sh /bin/pwntools-terminal
WORKDIR /PWD
ENTRYPOINT ["bash"]

1
README.md Normal file
View file

@ -0,0 +1 @@
A small utility to spawn a podman container with pwntools and ability to spawn terminal tabs on the host terminal

2
spawn-on-host-tmux.sh Normal file
View file

@ -0,0 +1,2 @@
#!/usr/bin/env sh
echo $@ > /tmux-sock

26
spawn.sh Executable file
View file

@ -0,0 +1,26 @@
#!/usr/bin/env bash
set -eou pipefail
pipe="$(mktemp -u)"
trap "rm -f $pipe" EXIT
mkfifo "$pipe"
label="tmux-host-container-id"="$(head -c 32 /dev/urandom | base64)"
function interact() {
# Wait for the container to start
container_id=""
while [ -p "$pipe" ] && [ -z $container_id ]; do
container_id="$(podman container ps -f label="$label" --format "{{ .ID }}")"
done
while [ -p "$pipe" ]; do
if read line; then
echo $line
tmux split podman exec -it "$container_id" $line
fi
done <"$pipe"
}
interact &
container_name="pwntools"
podman run --rm --security-opt seccomp=unconfined --cap-add=SYS_PTRACE --label="$label" -v $PWD:/PWD -v "$pipe":"/tmux-sock" -it "$container_name" $@