librex 0.0.13 → 0.0.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. data/README.markdown +1 -1
  2. data/Rakefile +1 -0
  3. metadata +3 -435
  4. data/lib/rex/LICENSE +0 -29
  5. data/lib/rex/arch.rb +0 -103
  6. data/lib/rex/arch/sparc.rb +0 -75
  7. data/lib/rex/arch/sparc.rb.ut.rb +0 -18
  8. data/lib/rex/arch/x86.rb +0 -513
  9. data/lib/rex/arch/x86.rb.ut.rb +0 -93
  10. data/lib/rex/assembly/nasm.rb +0 -104
  11. data/lib/rex/assembly/nasm.rb.ut.rb +0 -22
  12. data/lib/rex/codepage.map +0 -104
  13. data/lib/rex/compat.rb +0 -311
  14. data/lib/rex/constants.rb +0 -113
  15. data/lib/rex/elfparsey.rb +0 -11
  16. data/lib/rex/elfparsey/elf.rb +0 -123
  17. data/lib/rex/elfparsey/elfbase.rb +0 -258
  18. data/lib/rex/elfparsey/exceptions.rb +0 -27
  19. data/lib/rex/elfscan.rb +0 -12
  20. data/lib/rex/elfscan/scanner.rb +0 -207
  21. data/lib/rex/elfscan/search.rb +0 -46
  22. data/lib/rex/encoder/alpha2.rb +0 -31
  23. data/lib/rex/encoder/alpha2/alpha_mixed.rb +0 -68
  24. data/lib/rex/encoder/alpha2/alpha_upper.rb +0 -79
  25. data/lib/rex/encoder/alpha2/generic.rb +0 -114
  26. data/lib/rex/encoder/alpha2/unicode_mixed.rb +0 -117
  27. data/lib/rex/encoder/alpha2/unicode_upper.rb +0 -129
  28. data/lib/rex/encoder/ndr.rb +0 -89
  29. data/lib/rex/encoder/ndr.rb.ut.rb +0 -44
  30. data/lib/rex/encoder/nonalpha.rb +0 -61
  31. data/lib/rex/encoder/nonupper.rb +0 -64
  32. data/lib/rex/encoder/xdr.rb +0 -106
  33. data/lib/rex/encoder/xdr.rb.ut.rb +0 -29
  34. data/lib/rex/encoder/xor.rb +0 -69
  35. data/lib/rex/encoder/xor/dword.rb +0 -13
  36. data/lib/rex/encoder/xor/dword_additive.rb +0 -13
  37. data/lib/rex/encoders/xor_dword.rb +0 -35
  38. data/lib/rex/encoders/xor_dword_additive.rb +0 -53
  39. data/lib/rex/encoders/xor_dword_additive.rb.ut.rb +0 -12
  40. data/lib/rex/encoding/xor.rb +0 -20
  41. data/lib/rex/encoding/xor.rb.ts.rb +0 -14
  42. data/lib/rex/encoding/xor/byte.rb +0 -15
  43. data/lib/rex/encoding/xor/byte.rb.ut.rb +0 -21
  44. data/lib/rex/encoding/xor/dword.rb +0 -21
  45. data/lib/rex/encoding/xor/dword.rb.ut.rb +0 -15
  46. data/lib/rex/encoding/xor/dword_additive.rb +0 -92
  47. data/lib/rex/encoding/xor/dword_additive.rb.ut.rb +0 -15
  48. data/lib/rex/encoding/xor/exceptions.rb +0 -17
  49. data/lib/rex/encoding/xor/generic.rb +0 -146
  50. data/lib/rex/encoding/xor/generic.rb.ut.rb +0 -120
  51. data/lib/rex/encoding/xor/qword.rb +0 -15
  52. data/lib/rex/encoding/xor/word.rb +0 -21
  53. data/lib/rex/encoding/xor/word.rb.ut.rb +0 -13
  54. data/lib/rex/exceptions.rb +0 -275
  55. data/lib/rex/exceptions.rb.ut.rb +0 -44
  56. data/lib/rex/exploitation/cmdstager.rb +0 -9
  57. data/lib/rex/exploitation/cmdstager/base.rb +0 -175
  58. data/lib/rex/exploitation/cmdstager/debug_asm.rb +0 -142
  59. data/lib/rex/exploitation/cmdstager/debug_write.rb +0 -136
  60. data/lib/rex/exploitation/cmdstager/tftp.rb +0 -63
  61. data/lib/rex/exploitation/cmdstager/vbs.rb +0 -128
  62. data/lib/rex/exploitation/egghunter.rb +0 -277
  63. data/lib/rex/exploitation/egghunter.rb.ut.rb +0 -25
  64. data/lib/rex/exploitation/encryptjs.rb +0 -77
  65. data/lib/rex/exploitation/heaplib.js.b64 +0 -331
  66. data/lib/rex/exploitation/heaplib.rb +0 -94
  67. data/lib/rex/exploitation/javascriptosdetect.rb +0 -897
  68. data/lib/rex/exploitation/obfuscatejs.rb +0 -335
  69. data/lib/rex/exploitation/omelet.rb +0 -320
  70. data/lib/rex/exploitation/omelet.rb.ut.rb +0 -13
  71. data/lib/rex/exploitation/opcodedb.rb +0 -818
  72. data/lib/rex/exploitation/opcodedb.rb.ut.rb +0 -279
  73. data/lib/rex/exploitation/seh.rb +0 -92
  74. data/lib/rex/exploitation/seh.rb.ut.rb +0 -19
  75. data/lib/rex/file.rb +0 -112
  76. data/lib/rex/file.rb.ut.rb +0 -16
  77. data/lib/rex/image_source.rb +0 -12
  78. data/lib/rex/image_source/disk.rb +0 -60
  79. data/lib/rex/image_source/image_source.rb +0 -46
  80. data/lib/rex/image_source/memory.rb +0 -37
  81. data/lib/rex/io/bidirectional_pipe.rb +0 -157
  82. data/lib/rex/io/datagram_abstraction.rb +0 -35
  83. data/lib/rex/io/stream.rb +0 -319
  84. data/lib/rex/io/stream_abstraction.rb +0 -197
  85. data/lib/rex/io/stream_server.rb +0 -211
  86. data/lib/rex/job_container.rb +0 -187
  87. data/lib/rex/logging.rb +0 -4
  88. data/lib/rex/logging/log_dispatcher.rb +0 -179
  89. data/lib/rex/logging/log_sink.rb +0 -42
  90. data/lib/rex/logging/sinks/flatfile.rb +0 -55
  91. data/lib/rex/logging/sinks/stderr.rb +0 -43
  92. data/lib/rex/machparsey.rb +0 -9
  93. data/lib/rex/machparsey/exceptions.rb +0 -34
  94. data/lib/rex/machparsey/mach.rb +0 -209
  95. data/lib/rex/machparsey/machbase.rb +0 -408
  96. data/lib/rex/machscan.rb +0 -9
  97. data/lib/rex/machscan/scanner.rb +0 -217
  98. data/lib/rex/mime.rb +0 -9
  99. data/lib/rex/mime/header.rb +0 -77
  100. data/lib/rex/mime/message.rb +0 -144
  101. data/lib/rex/mime/part.rb +0 -20
  102. data/lib/rex/nop/opty2.rb +0 -108
  103. data/lib/rex/nop/opty2.rb.ut.rb +0 -23
  104. data/lib/rex/nop/opty2_tables.rb +0 -300
  105. data/lib/rex/ole.rb +0 -205
  106. data/lib/rex/ole/clsid.rb +0 -47
  107. data/lib/rex/ole/difat.rb +0 -141
  108. data/lib/rex/ole/directory.rb +0 -231
  109. data/lib/rex/ole/direntry.rb +0 -240
  110. data/lib/rex/ole/docs/dependencies.txt +0 -8
  111. data/lib/rex/ole/docs/references.txt +0 -1
  112. data/lib/rex/ole/fat.rb +0 -99
  113. data/lib/rex/ole/header.rb +0 -204
  114. data/lib/rex/ole/minifat.rb +0 -77
  115. data/lib/rex/ole/propset.rb +0 -144
  116. data/lib/rex/ole/samples/create_ole.rb +0 -27
  117. data/lib/rex/ole/samples/dir.rb +0 -35
  118. data/lib/rex/ole/samples/dump_stream.rb +0 -34
  119. data/lib/rex/ole/samples/ole_info.rb +0 -23
  120. data/lib/rex/ole/storage.rb +0 -395
  121. data/lib/rex/ole/stream.rb +0 -53
  122. data/lib/rex/ole/substorage.rb +0 -49
  123. data/lib/rex/ole/util.rb +0 -157
  124. data/lib/rex/parser/arguments.rb +0 -97
  125. data/lib/rex/parser/arguments.rb.ut.rb +0 -67
  126. data/lib/rex/parser/ini.rb +0 -185
  127. data/lib/rex/parser/ini.rb.ut.rb +0 -29
  128. data/lib/rex/parser/ip360_aspl_xml.rb +0 -102
  129. data/lib/rex/parser/ip360_xml.rb +0 -93
  130. data/lib/rex/parser/nessus_xml.rb +0 -118
  131. data/lib/rex/parser/netsparker_xml.rb +0 -94
  132. data/lib/rex/parser/nexpose_xml.rb +0 -131
  133. data/lib/rex/parser/nmap_xml.rb +0 -121
  134. data/lib/rex/parser/retina_xml.rb +0 -109
  135. data/lib/rex/payloads.rb +0 -1
  136. data/lib/rex/payloads/win32.rb +0 -2
  137. data/lib/rex/payloads/win32/common.rb +0 -26
  138. data/lib/rex/payloads/win32/kernel.rb +0 -53
  139. data/lib/rex/payloads/win32/kernel/common.rb +0 -54
  140. data/lib/rex/payloads/win32/kernel/migration.rb +0 -12
  141. data/lib/rex/payloads/win32/kernel/recovery.rb +0 -50
  142. data/lib/rex/payloads/win32/kernel/stager.rb +0 -194
  143. data/lib/rex/peparsey.rb +0 -12
  144. data/lib/rex/peparsey/exceptions.rb +0 -32
  145. data/lib/rex/peparsey/pe.rb +0 -212
  146. data/lib/rex/peparsey/pe_memdump.rb +0 -63
  147. data/lib/rex/peparsey/pebase.rb +0 -1680
  148. data/lib/rex/peparsey/section.rb +0 -136
  149. data/lib/rex/pescan.rb +0 -13
  150. data/lib/rex/pescan/analyze.rb +0 -309
  151. data/lib/rex/pescan/scanner.rb +0 -206
  152. data/lib/rex/pescan/search.rb +0 -56
  153. data/lib/rex/platforms.rb +0 -1
  154. data/lib/rex/platforms/windows.rb +0 -51
  155. data/lib/rex/poly.rb +0 -132
  156. data/lib/rex/poly/block.rb +0 -477
  157. data/lib/rex/poly/register.rb +0 -100
  158. data/lib/rex/poly/register/x86.rb +0 -40
  159. data/lib/rex/post.rb +0 -8
  160. data/lib/rex/post/dir.rb +0 -51
  161. data/lib/rex/post/file.rb +0 -172
  162. data/lib/rex/post/file_stat.rb +0 -220
  163. data/lib/rex/post/gen.pl +0 -13
  164. data/lib/rex/post/io.rb +0 -182
  165. data/lib/rex/post/meterpreter.rb +0 -4
  166. data/lib/rex/post/meterpreter/channel.rb +0 -445
  167. data/lib/rex/post/meterpreter/channel_container.rb +0 -54
  168. data/lib/rex/post/meterpreter/channels/pool.rb +0 -160
  169. data/lib/rex/post/meterpreter/channels/pools/file.rb +0 -62
  170. data/lib/rex/post/meterpreter/channels/pools/stream_pool.rb +0 -103
  171. data/lib/rex/post/meterpreter/channels/stream.rb +0 -87
  172. data/lib/rex/post/meterpreter/client.rb +0 -364
  173. data/lib/rex/post/meterpreter/client_core.rb +0 -274
  174. data/lib/rex/post/meterpreter/dependencies.rb +0 -3
  175. data/lib/rex/post/meterpreter/extension.rb +0 -32
  176. data/lib/rex/post/meterpreter/extensions/espia/espia.rb +0 -58
  177. data/lib/rex/post/meterpreter/extensions/espia/tlv.rb +0 -16
  178. data/lib/rex/post/meterpreter/extensions/incognito/incognito.rb +0 -94
  179. data/lib/rex/post/meterpreter/extensions/incognito/tlv.rb +0 -21
  180. data/lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb +0 -57
  181. data/lib/rex/post/meterpreter/extensions/networkpug/tlv.rb +0 -15
  182. data/lib/rex/post/meterpreter/extensions/priv/fs.rb +0 -118
  183. data/lib/rex/post/meterpreter/extensions/priv/passwd.rb +0 -61
  184. data/lib/rex/post/meterpreter/extensions/priv/priv.rb +0 -111
  185. data/lib/rex/post/meterpreter/extensions/priv/tlv.rb +0 -28
  186. data/lib/rex/post/meterpreter/extensions/sniffer/sniffer.rb +0 -101
  187. data/lib/rex/post/meterpreter/extensions/sniffer/tlv.rb +0 -26
  188. data/lib/rex/post/meterpreter/extensions/stdapi/constants.rb +0 -333
  189. data/lib/rex/post/meterpreter/extensions/stdapi/fs/dir.rb +0 -282
  190. data/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb +0 -266
  191. data/lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb +0 -103
  192. data/lib/rex/post/meterpreter/extensions/stdapi/fs/io.rb +0 -48
  193. data/lib/rex/post/meterpreter/extensions/stdapi/net/config.rb +0 -144
  194. data/lib/rex/post/meterpreter/extensions/stdapi/net/interface.rb +0 -73
  195. data/lib/rex/post/meterpreter/extensions/stdapi/net/route.rb +0 -56
  196. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket.rb +0 -137
  197. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_client_channel.rb +0 -180
  198. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_server_channel.rb +0 -167
  199. data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/udp_channel.rb +0 -208
  200. data/lib/rex/post/meterpreter/extensions/stdapi/railgun.rb.ts.rb +0 -6
  201. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/api_constants.rb +0 -38106
  202. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/api_constants.rb.ut.rb +0 -31
  203. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/buffer_item.rb +0 -47
  204. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/buffer_item.rb.ut.rb +0 -36
  205. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_advapi32.rb +0 -1818
  206. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_iphlpapi.rb +0 -96
  207. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_kernel32.rb +0 -3848
  208. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_netapi32.rb +0 -26
  209. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ntdll.rb +0 -153
  210. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_shell32.rb +0 -21
  211. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_user32.rb +0 -3169
  212. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ws2_32.rb +0 -599
  213. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb +0 -318
  214. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb +0 -100
  215. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb.ut.rb +0 -42
  216. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_helper.rb +0 -148
  217. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_helper.rb.ut.rb +0 -127
  218. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb +0 -309
  219. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/railgun.rb +0 -204
  220. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/tlv.rb +0 -51
  221. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/util.rb +0 -630
  222. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager.rb +0 -75
  223. data/lib/rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager.rb.ut.rb +0 -103
  224. data/lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb +0 -149
  225. data/lib/rex/post/meterpreter/extensions/stdapi/sys/config.rb +0 -97
  226. data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log.rb +0 -192
  227. data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log_subsystem/event_record.rb +0 -41
  228. data/lib/rex/post/meterpreter/extensions/stdapi/sys/power.rb +0 -61
  229. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process.rb +0 -370
  230. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/image.rb +0 -129
  231. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/io.rb +0 -55
  232. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/memory.rb +0 -336
  233. data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/thread.rb +0 -141
  234. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry.rb +0 -279
  235. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_key.rb +0 -193
  236. data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_value.rb +0 -102
  237. data/lib/rex/post/meterpreter/extensions/stdapi/sys/thread.rb +0 -180
  238. data/lib/rex/post/meterpreter/extensions/stdapi/tlv.rb +0 -211
  239. data/lib/rex/post/meterpreter/extensions/stdapi/ui.rb +0 -227
  240. data/lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb +0 -63
  241. data/lib/rex/post/meterpreter/inbound_packet_handler.rb +0 -30
  242. data/lib/rex/post/meterpreter/object_aliases.rb +0 -83
  243. data/lib/rex/post/meterpreter/packet.rb +0 -688
  244. data/lib/rex/post/meterpreter/packet_dispatcher.rb +0 -431
  245. data/lib/rex/post/meterpreter/packet_parser.rb +0 -94
  246. data/lib/rex/post/meterpreter/packet_response_waiter.rb +0 -83
  247. data/lib/rex/post/meterpreter/ui/console.rb +0 -137
  248. data/lib/rex/post/meterpreter/ui/console/command_dispatcher.rb +0 -62
  249. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb +0 -730
  250. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb +0 -108
  251. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/incognito.rb +0 -241
  252. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/networkpug.rb +0 -231
  253. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv.rb +0 -61
  254. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/elevate.rb +0 -98
  255. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/passwd.rb +0 -51
  256. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/timestomp.rb +0 -132
  257. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/sniffer.rb +0 -187
  258. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb +0 -65
  259. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/fs.rb +0 -442
  260. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/net.rb +0 -298
  261. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb +0 -486
  262. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/ui.rb +0 -315
  263. data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/webcam.rb +0 -157
  264. data/lib/rex/post/meterpreter/ui/console/interactive_channel.rb +0 -95
  265. data/lib/rex/post/permission.rb +0 -26
  266. data/lib/rex/post/process.rb +0 -57
  267. data/lib/rex/post/thread.rb +0 -57
  268. data/lib/rex/post/ui.rb +0 -52
  269. data/lib/rex/proto.rb +0 -13
  270. data/lib/rex/proto.rb.ts.rb +0 -8
  271. data/lib/rex/proto/dcerpc.rb +0 -6
  272. data/lib/rex/proto/dcerpc.rb.ts.rb +0 -9
  273. data/lib/rex/proto/dcerpc/client.rb +0 -361
  274. data/lib/rex/proto/dcerpc/client.rb.ut.rb +0 -491
  275. data/lib/rex/proto/dcerpc/exceptions.rb +0 -150
  276. data/lib/rex/proto/dcerpc/handle.rb +0 -47
  277. data/lib/rex/proto/dcerpc/handle.rb.ut.rb +0 -85
  278. data/lib/rex/proto/dcerpc/ndr.rb +0 -72
  279. data/lib/rex/proto/dcerpc/ndr.rb.ut.rb +0 -41
  280. data/lib/rex/proto/dcerpc/packet.rb +0 -253
  281. data/lib/rex/proto/dcerpc/packet.rb.ut.rb +0 -56
  282. data/lib/rex/proto/dcerpc/response.rb +0 -187
  283. data/lib/rex/proto/dcerpc/response.rb.ut.rb +0 -15
  284. data/lib/rex/proto/dcerpc/uuid.rb +0 -84
  285. data/lib/rex/proto/dcerpc/uuid.rb.ut.rb +0 -46
  286. data/lib/rex/proto/dhcp.rb +0 -7
  287. data/lib/rex/proto/dhcp/constants.rb +0 -33
  288. data/lib/rex/proto/dhcp/server.rb +0 -292
  289. data/lib/rex/proto/drda.rb +0 -5
  290. data/lib/rex/proto/drda.rb.ts.rb +0 -17
  291. data/lib/rex/proto/drda/constants.rb +0 -49
  292. data/lib/rex/proto/drda/constants.rb.ut.rb +0 -23
  293. data/lib/rex/proto/drda/packet.rb +0 -252
  294. data/lib/rex/proto/drda/packet.rb.ut.rb +0 -109
  295. data/lib/rex/proto/drda/utils.rb +0 -123
  296. data/lib/rex/proto/drda/utils.rb.ut.rb +0 -84
  297. data/lib/rex/proto/http.rb +0 -5
  298. data/lib/rex/proto/http.rb.ts.rb +0 -12
  299. data/lib/rex/proto/http/client.rb +0 -821
  300. data/lib/rex/proto/http/client.rb.ut.rb +0 -95
  301. data/lib/rex/proto/http/handler.rb +0 -46
  302. data/lib/rex/proto/http/handler/erb.rb +0 -128
  303. data/lib/rex/proto/http/handler/erb.rb.ut.rb +0 -21
  304. data/lib/rex/proto/http/handler/erb.rb.ut.rb.rhtml +0 -1
  305. data/lib/rex/proto/http/handler/proc.rb +0 -60
  306. data/lib/rex/proto/http/handler/proc.rb.ut.rb +0 -24
  307. data/lib/rex/proto/http/header.rb +0 -161
  308. data/lib/rex/proto/http/header.rb.ut.rb +0 -46
  309. data/lib/rex/proto/http/packet.rb +0 -407
  310. data/lib/rex/proto/http/packet.rb.ut.rb +0 -165
  311. data/lib/rex/proto/http/request.rb +0 -356
  312. data/lib/rex/proto/http/request.rb.ut.rb +0 -214
  313. data/lib/rex/proto/http/response.rb +0 -90
  314. data/lib/rex/proto/http/response.rb.ut.rb +0 -149
  315. data/lib/rex/proto/http/server.rb +0 -369
  316. data/lib/rex/proto/http/server.rb.ut.rb +0 -79
  317. data/lib/rex/proto/ntlm.rb +0 -7
  318. data/lib/rex/proto/ntlm.rb.ut.rb +0 -177
  319. data/lib/rex/proto/ntlm/base.rb +0 -326
  320. data/lib/rex/proto/ntlm/constants.rb +0 -74
  321. data/lib/rex/proto/ntlm/crypt.rb +0 -415
  322. data/lib/rex/proto/ntlm/exceptions.rb +0 -9
  323. data/lib/rex/proto/ntlm/message.rb +0 -533
  324. data/lib/rex/proto/ntlm/utils.rb +0 -763
  325. data/lib/rex/proto/proxy/socks4a.rb +0 -440
  326. data/lib/rex/proto/rfb.rb +0 -19
  327. data/lib/rex/proto/rfb.rb.ut.rb +0 -37
  328. data/lib/rex/proto/rfb/cipher.rb +0 -84
  329. data/lib/rex/proto/rfb/client.rb +0 -207
  330. data/lib/rex/proto/rfb/constants.rb +0 -52
  331. data/lib/rex/proto/smb.rb +0 -7
  332. data/lib/rex/proto/smb.rb.ts.rb +0 -8
  333. data/lib/rex/proto/smb/client.rb +0 -1952
  334. data/lib/rex/proto/smb/client.rb.ut.rb +0 -223
  335. data/lib/rex/proto/smb/constants.rb +0 -1047
  336. data/lib/rex/proto/smb/constants.rb.ut.rb +0 -18
  337. data/lib/rex/proto/smb/crypt.rb +0 -36
  338. data/lib/rex/proto/smb/evasions.rb +0 -66
  339. data/lib/rex/proto/smb/exceptions.rb +0 -858
  340. data/lib/rex/proto/smb/simpleclient.rb +0 -306
  341. data/lib/rex/proto/smb/simpleclient.rb.ut.rb +0 -128
  342. data/lib/rex/proto/smb/utils.rb +0 -103
  343. data/lib/rex/proto/smb/utils.rb.ut.rb +0 -20
  344. data/lib/rex/proto/sunrpc.rb +0 -1
  345. data/lib/rex/proto/sunrpc/client.rb +0 -195
  346. data/lib/rex/proto/tftp.rb +0 -12
  347. data/lib/rex/proto/tftp/constants.rb +0 -39
  348. data/lib/rex/proto/tftp/server.rb +0 -497
  349. data/lib/rex/proto/tftp/server.rb.ut.rb +0 -28
  350. data/lib/rex/script.rb +0 -42
  351. data/lib/rex/script/base.rb +0 -59
  352. data/lib/rex/script/meterpreter.rb +0 -15
  353. data/lib/rex/script/shell.rb +0 -9
  354. data/lib/rex/service.rb +0 -48
  355. data/lib/rex/service_manager.rb +0 -141
  356. data/lib/rex/service_manager.rb.ut.rb +0 -32
  357. data/lib/rex/services/local_relay.rb +0 -423
  358. data/lib/rex/socket.rb +0 -684
  359. data/lib/rex/socket.rb.ut.rb +0 -107
  360. data/lib/rex/socket/comm.rb +0 -119
  361. data/lib/rex/socket/comm/local.rb +0 -412
  362. data/lib/rex/socket/comm/local.rb.ut.rb +0 -75
  363. data/lib/rex/socket/ip.rb +0 -130
  364. data/lib/rex/socket/parameters.rb +0 -345
  365. data/lib/rex/socket/parameters.rb.ut.rb +0 -51
  366. data/lib/rex/socket/range_walker.rb +0 -346
  367. data/lib/rex/socket/range_walker.rb.ut.rb +0 -55
  368. data/lib/rex/socket/ssl_tcp.rb +0 -184
  369. data/lib/rex/socket/ssl_tcp.rb.ut.rb +0 -39
  370. data/lib/rex/socket/ssl_tcp_server.rb +0 -122
  371. data/lib/rex/socket/ssl_tcp_server.rb.ut.rb +0 -61
  372. data/lib/rex/socket/subnet_walker.rb +0 -75
  373. data/lib/rex/socket/subnet_walker.rb.ut.rb +0 -28
  374. data/lib/rex/socket/switch_board.rb +0 -278
  375. data/lib/rex/socket/switch_board.rb.ut.rb +0 -52
  376. data/lib/rex/socket/tcp.rb +0 -76
  377. data/lib/rex/socket/tcp.rb.ut.rb +0 -64
  378. data/lib/rex/socket/tcp_server.rb +0 -67
  379. data/lib/rex/socket/tcp_server.rb.ut.rb +0 -44
  380. data/lib/rex/socket/udp.rb +0 -164
  381. data/lib/rex/socket/udp.rb.ut.rb +0 -44
  382. data/lib/rex/struct2.rb +0 -5
  383. data/lib/rex/struct2/c_struct.rb +0 -181
  384. data/lib/rex/struct2/c_struct_template.rb +0 -39
  385. data/lib/rex/struct2/constant.rb +0 -26
  386. data/lib/rex/struct2/element.rb +0 -44
  387. data/lib/rex/struct2/generic.rb +0 -73
  388. data/lib/rex/struct2/restraint.rb +0 -54
  389. data/lib/rex/struct2/s_string.rb +0 -72
  390. data/lib/rex/struct2/s_struct.rb +0 -111
  391. data/lib/rex/sync.rb +0 -6
  392. data/lib/rex/sync/event.rb +0 -94
  393. data/lib/rex/sync/read_write_lock.rb +0 -176
  394. data/lib/rex/sync/ref.rb +0 -57
  395. data/lib/rex/sync/thread_safe.rb +0 -82
  396. data/lib/rex/test.rb +0 -35
  397. data/lib/rex/text.rb +0 -1149
  398. data/lib/rex/text.rb.ut.rb +0 -190
  399. data/lib/rex/thread_factory.rb +0 -42
  400. data/lib/rex/time.rb +0 -65
  401. data/lib/rex/transformer.rb +0 -115
  402. data/lib/rex/transformer.rb.ut.rb +0 -38
  403. data/lib/rex/ui.rb +0 -21
  404. data/lib/rex/ui/interactive.rb +0 -254
  405. data/lib/rex/ui/output.rb +0 -78
  406. data/lib/rex/ui/output/none.rb +0 -18
  407. data/lib/rex/ui/progress_tracker.rb +0 -96
  408. data/lib/rex/ui/subscriber.rb +0 -149
  409. data/lib/rex/ui/text/color.rb +0 -97
  410. data/lib/rex/ui/text/color.rb.ut.rb +0 -18
  411. data/lib/rex/ui/text/dispatcher_shell.rb +0 -467
  412. data/lib/rex/ui/text/input.rb +0 -117
  413. data/lib/rex/ui/text/input/buffer.rb +0 -75
  414. data/lib/rex/ui/text/input/readline.rb +0 -129
  415. data/lib/rex/ui/text/input/socket.rb +0 -95
  416. data/lib/rex/ui/text/input/stdio.rb +0 -45
  417. data/lib/rex/ui/text/irb_shell.rb +0 -57
  418. data/lib/rex/ui/text/output.rb +0 -80
  419. data/lib/rex/ui/text/output/buffer.rb +0 -61
  420. data/lib/rex/ui/text/output/file.rb +0 -43
  421. data/lib/rex/ui/text/output/socket.rb +0 -43
  422. data/lib/rex/ui/text/output/stdio.rb +0 -40
  423. data/lib/rex/ui/text/progress_tracker.rb +0 -56
  424. data/lib/rex/ui/text/progress_tracker.rb.ut.rb +0 -34
  425. data/lib/rex/ui/text/shell.rb +0 -328
  426. data/lib/rex/ui/text/table.rb +0 -279
  427. data/lib/rex/ui/text/table.rb.ut.rb +0 -55
  428. data/lib/rex/zip.rb +0 -93
  429. data/lib/rex/zip/archive.rb +0 -184
  430. data/lib/rex/zip/blocks.rb +0 -182
  431. data/lib/rex/zip/entry.rb +0 -104
  432. data/lib/rex/zip/samples/comment.rb +0 -32
  433. data/lib/rex/zip/samples/mkwar.rb +0 -138
  434. data/lib/rex/zip/samples/mkzip.rb +0 -19
  435. data/lib/rex/zip/samples/recursive.rb +0 -58
@@ -1,114 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rex/text'
4
-
5
- module Rex
6
- module Encoder
7
- module Alpha2
8
-
9
- class Generic
10
-
11
- def Generic.default_accepted_chars ; ('a' .. 'z').to_a + ('B' .. 'Z').to_a + ('0' .. '9').to_a ; end
12
-
13
- def Generic.gen_decoder_prefix(reg, offset)
14
- # Should never happen - have to pick a specifc
15
- # encoding:
16
- # alphamixed, alphaupper, unicodemixed, unicodeupper
17
- ''
18
- end
19
-
20
- def Generic.gen_decoder(reg, offset)
21
- # same as above
22
- return ''
23
- end
24
-
25
- def Generic.gen_base_set(ignored_max=0x0f)
26
- # 0xf is max for XOR encodings - non-unicode
27
- max = 0x0f
28
- Rex::Text.shuffle_a(
29
- [* ( (0..(max)).map { |i| i *= 0x10 } ) ]
30
- )
31
- end
32
-
33
- def Generic.gen_second(block, base)
34
- # XOR encoder for ascii - unicode uses additive
35
- (block^base)
36
- end
37
-
38
- def Generic.encode_byte(block, badchars)
39
- accepted_chars = default_accepted_chars.dup
40
-
41
-
42
- # Remove bad chars from the accepted_chars list. Sadly 'A' must be
43
- # an accepted char or we'll certainly fail at this point. This could
44
- # be fixed later maybe with some recalculation of the encoder stubs...
45
- # - Puss
46
- (badchars || '').unpack('C*').map { |c| accepted_chars.delete([c].pack('C')) }
47
-
48
- first = 0
49
- second = 1
50
- randbase = 0
51
- found = nil
52
-
53
-
54
- gen_base_set(block).each do |randbase_|
55
- second = gen_second(block, randbase_)
56
- next if second < 0
57
- if accepted_chars.include?([second].pack('C'))
58
- found = second
59
- randbase = randbase_
60
- break
61
- end
62
- end
63
-
64
- if not found
65
- msg = "No valid base found for #{"0x%.2x" % block}"
66
- if not accepted_chars.include?([second].pack('C'))
67
- msg << ": BadChar to #{second}"
68
- elsif second < 1
69
- msg << ": Negative"
70
- end
71
- raise RuntimeError, msg
72
- end
73
-
74
- if (randbase > 0xa0)
75
- # first num must be 4
76
- first = (randbase/0x10) + 0x40
77
- elsif (randbase == 0x00) || (randbase == 0x10)
78
- # first num must be 5
79
- first = (randbase/0x10) + 0x50
80
- else
81
- # pick one at "random"
82
- first = (randbase/0x10)
83
- if (first % 2) > 0
84
- first += 0x40
85
- else
86
- first += 0x50
87
- end
88
- end
89
-
90
- # now add our new bytes :)
91
- [first.to_i, second].pack('CC')
92
- end
93
-
94
- def Generic.encode(buf, reg, offset, badchars = '')
95
- encoded = gen_decoder(reg, offset)
96
-
97
- buf.each_byte {
98
- |block|
99
-
100
- encoded += encode_byte(block, badchars)
101
- }
102
-
103
- encoded += add_terminator()
104
-
105
- return encoded
106
- end
107
-
108
- # 'A' signifies the end of the encoded shellcode
109
- def Generic.add_terminator()
110
- 'AA'
111
- end
112
-
113
- end end end end
114
-
@@ -1,117 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rex/encoder/alpha2/generic'
4
-
5
- module Rex
6
- module Encoder
7
- module Alpha2
8
-
9
- class UnicodeMixed < Generic
10
-
11
- def self.gen_base_set(max)
12
- Rex::Text.shuffle_a(
13
- [* ( (0..(max-1)).map { |i| i *= 0x10 } ) ]
14
- )
15
- end
16
-
17
- def self.gen_second(block, base)
18
- # unicode uses additive encoding
19
- (block - base)
20
- end
21
-
22
- def self.gen_decoder_prefix(reg, offset)
23
- if (offset > 28)
24
- raise "Critical: Offset is greater than 28"
25
- end
26
-
27
- # offset untested for unicode :(
28
- if (offset <= 14)
29
- nop = 'CP' * offset
30
- mod = 'IA' * (14 - offset) + nop # dec ecx,,, push ecx, pop edx
31
- else
32
- mod = 'AA' * (offset - 14) # inc ecx
33
- nop = 'CP' * (14 - mod.length)
34
- mod += nop
35
- end
36
- regprefix = { # nops ignored below
37
- 'EAX' => 'PPYA' + mod, # push eax, pop ecx
38
- 'ECX' => mod + "4444", # dec ecx
39
- 'EDX' => 'RRYA' + mod, # push edx, pop ecx
40
- 'EBX' => 'SSYA' + mod, # push ebx, pop ecx
41
- 'ESP' => 'TUYA' + mod, # push esp, pop ecx
42
- 'EBP' => 'UUYA' + mod, # push ebp, pop ecx
43
- 'ESI' => 'VVYA' + mod, # push esi, pop ecx
44
- 'EDI' => 'WWYA' + mod, # push edi, pop edi
45
- }
46
-
47
- return regprefix[reg]
48
- end
49
-
50
- def self.gen_decoder(reg, offset)
51
- decoder =
52
- gen_decoder_prefix(reg, offset) +
53
- "j" + # push 0
54
- "XA" + # pop eax, NOP
55
- "QA" + # push ecx, NOP
56
- "DA" + # inc esp, NOP
57
- "ZA" + # pop edx, NOP
58
- "BA" + # inc edx, NOP
59
- "RA" + # push edx, NOP
60
- "LA" + # dec esp, NOP
61
- "YA" + # pop ecx, NOP
62
- "IA" + # dec ecx, NOP
63
- "QA" + # push ecx, NOP
64
- "IA" + # dec ecx, NOP
65
- "QA" + # push ecx, NOP
66
- "IA" + # dec ecx, NOP
67
- "hAAA" + # push 00410041, NOP
68
- "Z" + # pop edx
69
- "1A" + # add [ecx], dh NOP
70
- "IA" + # dec ecx, NOP
71
- "IA" + # dec ecx, NOP
72
- "J" + # dec edx
73
- "1" + # add [ecx], dh
74
- "1A" + # add [ecx], dh NOP
75
- "IA" + # dec ecx, NOP
76
- "IA" + # dec ecx, NOP
77
- "BA" + # inc edx, NOP
78
- "BA" + # inc edx, NOP
79
- "B" + # inc edx
80
- "Q" + # add [ecx], dl
81
- "I" + # dec ecx
82
- "1A" + # add [ecx], dh NOP
83
- "I" + # dec ecx
84
- "Q" + # add [ecx], dl
85
- "IA" + # dec ecx, NOP
86
- "I" + # dec ecx
87
- "Q" + # add [ecx], dh
88
- "I" + # dec ecx
89
- "1" + # add [ecx], dh
90
- "1" + # add [ecx], dh
91
- "1A" + # add [ecx], dh NOP
92
- "IA" + # dec ecx, NOP
93
- "J" + # dec edx
94
- "Q" + # add [ecx], dl
95
- "YA" + # pop ecx, NOP
96
- "Z" + # pop edx
97
- "B" + # add [edx], al
98
- "A" + # inc ecx <-------
99
- "B" + # add [edx], al |
100
- "A" + # inc ecx |
101
- "B" + # add [edx], al |
102
- "A" + # inc ecx |
103
- "B" + # add [edx], al |
104
- "A" + # inc ecx |
105
- "B" + # add [edx], al |
106
- "kM" + # imul eax, [eax], 10 * |
107
- "A" + # add [edx], al |
108
- "G" + # inc edi |
109
- "B" + # add [edx], al |
110
- "9" + # cmp [eax], eax |
111
- "u" + # jnz ------------------
112
- "4JB"
113
-
114
- return decoder
115
- end
116
-
117
- end end end end
@@ -1,129 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'rex/encoder/alpha2/generic'
4
-
5
- module Rex
6
- module Encoder
7
- module Alpha2
8
-
9
- class UnicodeUpper < Generic
10
- def self.default_accepted_chars ; ('B' .. 'Z').to_a + ('0' .. '9').to_a ; end
11
-
12
- def self.gen_base_set(max)
13
- Rex::Text.shuffle_a(
14
- [* ( (0..(max-1)).map { |i| i *= 0x10 } ) ]
15
- )
16
- end
17
-
18
- def self.gen_second(block, base)
19
- # unicode uses additive encoding
20
- (block - base)
21
- end
22
-
23
- def self.gen_decoder_prefix(reg, offset)
24
- if (offset > 8)
25
- raise "Critical: Offset is greater than 8"
26
- end
27
-
28
- # offset untested for unicode :(
29
- if (offset <= 4)
30
- nop = 'CP' * offset
31
- mod = 'IA' * (4 - offset) + nop # dec ecx,,, push ecx, pop edx
32
- else
33
- mod = 'AA' * (offset - 4) # inc ecx
34
- nop = 'CP' * (4 - mod.length)
35
- mod += nop
36
- end
37
-
38
- regprefix = { # nops ignored below
39
- 'EAX' => 'PPYA' + mod, # push eax, pop ecx
40
- 'ECX' => mod + '4444', # dec ecx
41
- 'EDX' => 'RRYA' + mod, # push edx, pop ecx
42
- 'EBX' => 'SSYA' + mod, # push ebx, pop ecx
43
- 'ESP' => 'TUYA' + mod, # push esp, pop ecx
44
- 'EBP' => 'UUYA' + mod, # push ebp, pop ecx
45
- 'ESI' => 'VVYA' + mod, # push esi, pop ecx
46
- 'EDI' => 'WWYA' + mod, # push edi, pop edi
47
- '[ESP]' => 'YA' + mod + '44', #
48
- '[ESP+4]' => 'YUYA' + mod, #
49
- }
50
-
51
- return regprefix[reg]
52
- end
53
-
54
- def self.gen_decoder(reg, offset)
55
- decoder =
56
- gen_decoder_prefix(reg, offset) +
57
- "QA" + # push ecx, NOP
58
- "TA" + # push esp, NOP
59
- "XA" + # pop eax, NOP
60
- "ZA" + # pop edx, NOP
61
- "PU" + # push eax, NOP
62
- "3" + # xor eax, [eax]
63
- "QA" + # push ecx, NOP
64
- "DA" + # inc esp, NOP
65
- "ZA" + # pop edx, NOP
66
- "BA" + # inc edx, NOP
67
- "RA" + # push edx, NOP
68
- "LA" + # dec esp, NOP
69
- "YA" + # pop ecx, NOP
70
- "IA" + # dec ecx, NOP
71
- "QA" + # push ecx, NOP
72
- "IA" + # dec ecx, NOP
73
- "QA" + # push ecx, NOP
74
- "PA" + # push eax, NOP
75
- "5AAA" + # xor eax, 41004100 - NOP
76
- "PA" + # push eax, NOP
77
- "Z" + # pop edx
78
- "1A" + # add [ecx], dh - NOP
79
- "I" + # dec ecx
80
- "1A" + # add [ecx], dh - NOP
81
- "IA" + # dec ecx, NOP
82
- "IA" + # dec ecx, NOP
83
- "J" + # dec edx
84
- "1" + # add [ecx], dh
85
- "1A" + # add [ecx], dh - NOP
86
- "IA" + # dec ecx, NOP
87
- "IA" + # dec ecx, NOP
88
- "XA" + # pop eax, NOP
89
- "58AA" + # xor eax, 41003800 - NOP
90
- "PA" + # push eax, NOP
91
- "ZA" + # pop edx, NOP
92
- "BA" + # inc edx, NOP
93
- "B" + # inc edx
94
- "Q" + # add [ecx], dl
95
- "I" + # dec ecx
96
- "1A" + # add [ecx], dh - NOP
97
- "I" + # dec ecx
98
- "Q" + # add [ecx], dl
99
- "IA" + # dec ecx, NOP
100
- "I" + # dec ecx
101
- "Q" + # add [ecx], dl
102
- "I" + # dec ecx
103
- "1" + # add [ecx], dh
104
- "1" + # add [ecx], dh
105
- "1" + # add [ecx], dh
106
- "1A" + # add [ecx], dh - NOP
107
- "IA" + # dec ecx, NOP
108
- "J" + # dec edx
109
- "Q" + # add [ecx], dl
110
- "I" + # dec edx
111
- "1A" + # add [ecx], dh - NOP
112
- "YA" + # pop ecx, NOP
113
- "ZB" + # pop edx, NOP
114
- "AB" + # inc ecx, NOP <-------
115
- "AB" + # inc ecx, NOP |
116
- "AB" + # inc ecx, NOP |
117
- "AB" + # inc ecx, NOP |
118
- "30" + # imul eax, [ecx], 10 * |
119
- "A" + # add al, [ecx+2] * |
120
- "P" + # mov [edx], al * |
121
- "B" + # inc edx |
122
- "9" + # cmp [ecx], 41 * |
123
- "4" + # jnz --------------------
124
- "4JB"
125
-
126
- return decoder
127
- end
128
-
129
- end end end end
@@ -1,89 +0,0 @@
1
- require "rex/text"
2
-
3
- module Rex
4
- module Encoder
5
- module NDR
6
-
7
- # Provide padding to align the string to the 32bit boundary
8
- def NDR.align(string)
9
- return "\x00" * ((4 - (string.length & 3)) & 3)
10
- end
11
-
12
- # Encode a 4 byte long
13
- # use to encode:
14
- # long element_1;
15
- def NDR.long(string)
16
- return [string].pack('V')
17
- end
18
-
19
- # Encode a 2 byte short
20
- # use to encode:
21
- # short element_1;
22
- def NDR.short(string)
23
- return [string].pack('v')
24
- end
25
-
26
- # Encode a single byte
27
- # use to encode:
28
- # byte element_1;
29
- def NDR.byte(string)
30
- return [string].pack('c')
31
- end
32
-
33
- # Encode a byte array
34
- # use to encode:
35
- # char element_1
36
- def NDR.UniConformantArray(string)
37
- return long(string.length) + string + align(string)
38
- end
39
-
40
- # Encode a string
41
- # use to encode:
42
- # char *element_1;
43
- def NDR.string(string)
44
- string << "\x00" # null pad
45
- return long(string.length) + long(0) + long(string.length) + string + align(string)
46
- end
47
-
48
- # Encode a string
49
- # use to encode:
50
- # w_char *element_1;
51
- def NDR.wstring(string)
52
- string = string + "\x00" # null pad
53
- return long(string.length) + long(0) + long(string.length) + Rex::Text.to_unicode(string) + align(Rex::Text.to_unicode(string))
54
- end
55
-
56
- # Encode a string and make it unique
57
- # use to encode:
58
- # [unique] w_char *element_1;
59
- def NDR.uwstring(string)
60
- string = string + "\x00" # null pad
61
- return long(rand(0xffffffff))+long(string.length) + long(0) + long(string.length) + Rex::Text.to_unicode(string) + align(Rex::Text.to_unicode(string))
62
- end
63
-
64
- # Encode a string that is already unicode encoded
65
- # use to encode:
66
- # w_char *element_1;
67
- def NDR.wstring_prebuilt(string)
68
- # if the string len is odd, thats bad!
69
- if string.length % 2 > 0
70
- string = string + "\x00"
71
- end
72
- len = string.length / 2;
73
- return long(len) + long(0) + long(len) + string + align(string)
74
- end
75
-
76
- # alias to wstring, going away soon
77
- def NDR.UnicodeConformantVaryingString(string)
78
- NDR.wstring(string)
79
- end
80
-
81
- # alias to wstring_prebuilt, going away soon
82
- def NDR.UnicodeConformantVaryingStringPreBuilt(string)
83
- NDR.wstring_prebuilt(string)
84
- end
85
-
86
- end
87
- end
88
- end
89
-