dstruct 0.0.1
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.
- checksums.yaml +15 -0
- data/README.markdown +23 -0
- data/examples/smb_example.rb +35 -0
- data/lib/rex.rb +108 -0
- data/lib/rex/LICENSE +29 -0
- data/lib/rex/arch.rb +104 -0
- data/lib/rex/arch/sparc.rb +75 -0
- data/lib/rex/arch/x86.rb +524 -0
- data/lib/rex/assembly/nasm.rb +104 -0
- data/lib/rex/codepage.map +104 -0
- data/lib/rex/compat.rb +389 -0
- data/lib/rex/constants.rb +124 -0
- data/lib/rex/elfparsey.rb +9 -0
- data/lib/rex/elfparsey/elf.rb +121 -0
- data/lib/rex/elfparsey/elfbase.rb +256 -0
- data/lib/rex/elfparsey/exceptions.rb +25 -0
- data/lib/rex/elfscan.rb +10 -0
- data/lib/rex/elfscan/scanner.rb +226 -0
- data/lib/rex/elfscan/search.rb +44 -0
- data/lib/rex/encoder/alpha2.rb +31 -0
- data/lib/rex/encoder/alpha2/alpha_mixed.rb +68 -0
- data/lib/rex/encoder/alpha2/alpha_upper.rb +79 -0
- data/lib/rex/encoder/alpha2/generic.rb +90 -0
- data/lib/rex/encoder/alpha2/unicode_mixed.rb +116 -0
- data/lib/rex/encoder/alpha2/unicode_upper.rb +123 -0
- data/lib/rex/encoder/bloxor/bloxor.rb +327 -0
- data/lib/rex/encoder/ndr.rb +90 -0
- data/lib/rex/encoder/nonalpha.rb +61 -0
- data/lib/rex/encoder/nonupper.rb +64 -0
- data/lib/rex/encoder/xdr.rb +107 -0
- data/lib/rex/encoder/xor.rb +69 -0
- data/lib/rex/encoder/xor/dword.rb +13 -0
- data/lib/rex/encoder/xor/dword_additive.rb +13 -0
- data/lib/rex/encoders/xor_dword.rb +35 -0
- data/lib/rex/encoders/xor_dword_additive.rb +53 -0
- data/lib/rex/encoding/xor.rb +20 -0
- data/lib/rex/encoding/xor/byte.rb +15 -0
- data/lib/rex/encoding/xor/dword.rb +21 -0
- data/lib/rex/encoding/xor/dword_additive.rb +92 -0
- data/lib/rex/encoding/xor/exceptions.rb +17 -0
- data/lib/rex/encoding/xor/generic.rb +146 -0
- data/lib/rex/encoding/xor/qword.rb +15 -0
- data/lib/rex/encoding/xor/word.rb +21 -0
- data/lib/rex/exceptions.rb +275 -0
- data/lib/rex/exploitation/cmdstager.rb +10 -0
- data/lib/rex/exploitation/cmdstager/base.rb +190 -0
- data/lib/rex/exploitation/cmdstager/bourne.rb +105 -0
- data/lib/rex/exploitation/cmdstager/debug_asm.rb +140 -0
- data/lib/rex/exploitation/cmdstager/debug_write.rb +134 -0
- data/lib/rex/exploitation/cmdstager/echo.rb +164 -0
- data/lib/rex/exploitation/cmdstager/printf.rb +122 -0
- data/lib/rex/exploitation/cmdstager/tftp.rb +71 -0
- data/lib/rex/exploitation/cmdstager/vbs.rb +126 -0
- data/lib/rex/exploitation/egghunter.rb +425 -0
- data/lib/rex/exploitation/encryptjs.rb +78 -0
- data/lib/rex/exploitation/heaplib.js.b64 +331 -0
- data/lib/rex/exploitation/heaplib.rb +107 -0
- data/lib/rex/exploitation/js.rb +6 -0
- data/lib/rex/exploitation/js/detect.rb +69 -0
- data/lib/rex/exploitation/js/memory.rb +81 -0
- data/lib/rex/exploitation/js/network.rb +84 -0
- data/lib/rex/exploitation/js/utils.rb +33 -0
- data/lib/rex/exploitation/jsobfu.rb +513 -0
- data/lib/rex/exploitation/obfuscatejs.rb +336 -0
- data/lib/rex/exploitation/omelet.rb +321 -0
- data/lib/rex/exploitation/opcodedb.rb +819 -0
- data/lib/rex/exploitation/powershell.rb +62 -0
- data/lib/rex/exploitation/powershell/function.rb +63 -0
- data/lib/rex/exploitation/powershell/obfu.rb +98 -0
- data/lib/rex/exploitation/powershell/output.rb +151 -0
- data/lib/rex/exploitation/powershell/param.rb +23 -0
- data/lib/rex/exploitation/powershell/parser.rb +183 -0
- data/lib/rex/exploitation/powershell/psh_methods.rb +70 -0
- data/lib/rex/exploitation/powershell/script.rb +99 -0
- data/lib/rex/exploitation/ropdb.rb +190 -0
- data/lib/rex/exploitation/seh.rb +93 -0
- data/lib/rex/file.rb +160 -0
- data/lib/rex/image_source.rb +10 -0
- data/lib/rex/image_source/disk.rb +58 -0
- data/lib/rex/image_source/image_source.rb +44 -0
- data/lib/rex/image_source/memory.rb +35 -0
- data/lib/rex/io/bidirectional_pipe.rb +161 -0
- data/lib/rex/io/datagram_abstraction.rb +35 -0
- data/lib/rex/io/ring_buffer.rb +369 -0
- data/lib/rex/io/stream.rb +312 -0
- data/lib/rex/io/stream_abstraction.rb +209 -0
- data/lib/rex/io/stream_server.rb +221 -0
- data/lib/rex/job_container.rb +200 -0
- data/lib/rex/logging.rb +4 -0
- data/lib/rex/logging/log_dispatcher.rb +180 -0
- data/lib/rex/logging/log_sink.rb +43 -0
- data/lib/rex/logging/sinks/flatfile.rb +56 -0
- data/lib/rex/logging/sinks/stderr.rb +44 -0
- data/lib/rex/mac_oui.rb +16581 -0
- data/lib/rex/machparsey.rb +9 -0
- data/lib/rex/machparsey/exceptions.rb +34 -0
- data/lib/rex/machparsey/mach.rb +209 -0
- data/lib/rex/machparsey/machbase.rb +408 -0
- data/lib/rex/machscan.rb +9 -0
- data/lib/rex/machscan/scanner.rb +217 -0
- data/lib/rex/mime.rb +10 -0
- data/lib/rex/mime/encoding.rb +17 -0
- data/lib/rex/mime/header.rb +78 -0
- data/lib/rex/mime/message.rb +150 -0
- data/lib/rex/mime/part.rb +50 -0
- data/lib/rex/nop/opty2.rb +109 -0
- data/lib/rex/nop/opty2_tables.rb +301 -0
- data/lib/rex/ole.rb +202 -0
- data/lib/rex/ole/clsid.rb +44 -0
- data/lib/rex/ole/difat.rb +138 -0
- data/lib/rex/ole/directory.rb +228 -0
- data/lib/rex/ole/direntry.rb +237 -0
- data/lib/rex/ole/docs/dependencies.txt +8 -0
- data/lib/rex/ole/docs/references.txt +1 -0
- data/lib/rex/ole/fat.rb +96 -0
- data/lib/rex/ole/header.rb +201 -0
- data/lib/rex/ole/minifat.rb +74 -0
- data/lib/rex/ole/propset.rb +141 -0
- data/lib/rex/ole/samples/create_ole.rb +27 -0
- data/lib/rex/ole/samples/dir.rb +35 -0
- data/lib/rex/ole/samples/dump_stream.rb +34 -0
- data/lib/rex/ole/samples/ole_info.rb +23 -0
- data/lib/rex/ole/storage.rb +392 -0
- data/lib/rex/ole/stream.rb +50 -0
- data/lib/rex/ole/substorage.rb +46 -0
- data/lib/rex/ole/util.rb +154 -0
- data/lib/rex/parser/acunetix_nokogiri.rb +406 -0
- data/lib/rex/parser/apple_backup_manifestdb.rb +132 -0
- data/lib/rex/parser/appscan_nokogiri.rb +367 -0
- data/lib/rex/parser/arguments.rb +108 -0
- data/lib/rex/parser/burp_session_nokogiri.rb +291 -0
- data/lib/rex/parser/ci_nokogiri.rb +193 -0
- data/lib/rex/parser/foundstone_nokogiri.rb +342 -0
- data/lib/rex/parser/fusionvm_nokogiri.rb +109 -0
- data/lib/rex/parser/group_policy_preferences.rb +185 -0
- data/lib/rex/parser/ini.rb +186 -0
- data/lib/rex/parser/ip360_aspl_xml.rb +103 -0
- data/lib/rex/parser/ip360_xml.rb +98 -0
- data/lib/rex/parser/mbsa_nokogiri.rb +256 -0
- data/lib/rex/parser/nessus_xml.rb +121 -0
- data/lib/rex/parser/netsparker_xml.rb +109 -0
- data/lib/rex/parser/nexpose_raw_nokogiri.rb +686 -0
- data/lib/rex/parser/nexpose_simple_nokogiri.rb +330 -0
- data/lib/rex/parser/nexpose_xml.rb +172 -0
- data/lib/rex/parser/nmap_nokogiri.rb +394 -0
- data/lib/rex/parser/nmap_xml.rb +166 -0
- data/lib/rex/parser/nokogiri_doc_mixin.rb +233 -0
- data/lib/rex/parser/openvas_nokogiri.rb +172 -0
- data/lib/rex/parser/outpost24_nokogiri.rb +240 -0
- data/lib/rex/parser/retina_xml.rb +110 -0
- data/lib/rex/parser/unattend.rb +171 -0
- data/lib/rex/parser/wapiti_nokogiri.rb +105 -0
- data/lib/rex/payloads.rb +2 -0
- data/lib/rex/payloads/win32.rb +3 -0
- data/lib/rex/payloads/win32/common.rb +27 -0
- data/lib/rex/payloads/win32/kernel.rb +54 -0
- data/lib/rex/payloads/win32/kernel/common.rb +55 -0
- data/lib/rex/payloads/win32/kernel/migration.rb +13 -0
- data/lib/rex/payloads/win32/kernel/recovery.rb +51 -0
- data/lib/rex/payloads/win32/kernel/stager.rb +195 -0
- data/lib/rex/peparsey.rb +10 -0
- data/lib/rex/peparsey/exceptions.rb +30 -0
- data/lib/rex/peparsey/pe.rb +210 -0
- data/lib/rex/peparsey/pe_memdump.rb +61 -0
- data/lib/rex/peparsey/pebase.rb +1662 -0
- data/lib/rex/peparsey/section.rb +128 -0
- data/lib/rex/pescan.rb +11 -0
- data/lib/rex/pescan/analyze.rb +366 -0
- data/lib/rex/pescan/scanner.rb +230 -0
- data/lib/rex/pescan/search.rb +68 -0
- data/lib/rex/platforms.rb +2 -0
- data/lib/rex/platforms/windows.rb +52 -0
- data/lib/rex/poly.rb +134 -0
- data/lib/rex/poly/block.rb +480 -0
- data/lib/rex/poly/machine.rb +13 -0
- data/lib/rex/poly/machine/machine.rb +830 -0
- data/lib/rex/poly/machine/x86.rb +509 -0
- data/lib/rex/poly/register.rb +101 -0
- data/lib/rex/poly/register/x86.rb +41 -0
- data/lib/rex/post.rb +7 -0
- data/lib/rex/post/dir.rb +51 -0
- data/lib/rex/post/file.rb +172 -0
- data/lib/rex/post/file_stat.rb +220 -0
- data/lib/rex/post/gen.pl +13 -0
- data/lib/rex/post/io.rb +182 -0
- data/lib/rex/post/meterpreter.rb +5 -0
- data/lib/rex/post/meterpreter/channel.rb +446 -0
- data/lib/rex/post/meterpreter/channel_container.rb +54 -0
- data/lib/rex/post/meterpreter/channels/pool.rb +160 -0
- data/lib/rex/post/meterpreter/channels/pools/file.rb +62 -0
- data/lib/rex/post/meterpreter/channels/pools/stream_pool.rb +103 -0
- data/lib/rex/post/meterpreter/channels/stream.rb +87 -0
- data/lib/rex/post/meterpreter/client.rb +483 -0
- data/lib/rex/post/meterpreter/client_core.rb +352 -0
- data/lib/rex/post/meterpreter/dependencies.rb +3 -0
- data/lib/rex/post/meterpreter/extension.rb +32 -0
- data/lib/rex/post/meterpreter/extensions/android/android.rb +128 -0
- data/lib/rex/post/meterpreter/extensions/android/tlv.rb +40 -0
- data/lib/rex/post/meterpreter/extensions/espia/espia.rb +58 -0
- data/lib/rex/post/meterpreter/extensions/espia/tlv.rb +17 -0
- data/lib/rex/post/meterpreter/extensions/extapi/adsi/adsi.rb +71 -0
- data/lib/rex/post/meterpreter/extensions/extapi/clipboard/clipboard.rb +169 -0
- data/lib/rex/post/meterpreter/extensions/extapi/extapi.rb +45 -0
- data/lib/rex/post/meterpreter/extensions/extapi/service/service.rb +104 -0
- data/lib/rex/post/meterpreter/extensions/extapi/tlv.rb +77 -0
- data/lib/rex/post/meterpreter/extensions/extapi/window/window.rb +56 -0
- data/lib/rex/post/meterpreter/extensions/extapi/wmi/wmi.rb +75 -0
- data/lib/rex/post/meterpreter/extensions/incognito/incognito.rb +94 -0
- data/lib/rex/post/meterpreter/extensions/incognito/tlv.rb +22 -0
- data/lib/rex/post/meterpreter/extensions/kiwi/kiwi.rb +361 -0
- data/lib/rex/post/meterpreter/extensions/kiwi/tlv.rb +76 -0
- data/lib/rex/post/meterpreter/extensions/lanattacks/dhcp/dhcp.rb +78 -0
- data/lib/rex/post/meterpreter/extensions/lanattacks/lanattacks.rb +43 -0
- data/lib/rex/post/meterpreter/extensions/lanattacks/tftp/tftp.rb +49 -0
- data/lib/rex/post/meterpreter/extensions/lanattacks/tlv.rb +17 -0
- data/lib/rex/post/meterpreter/extensions/mimikatz/mimikatz.rb +128 -0
- data/lib/rex/post/meterpreter/extensions/mimikatz/tlv.rb +16 -0
- data/lib/rex/post/meterpreter/extensions/networkpug/networkpug.rb +57 -0
- data/lib/rex/post/meterpreter/extensions/networkpug/tlv.rb +16 -0
- data/lib/rex/post/meterpreter/extensions/priv/fs.rb +118 -0
- data/lib/rex/post/meterpreter/extensions/priv/passwd.rb +61 -0
- data/lib/rex/post/meterpreter/extensions/priv/priv.rb +109 -0
- data/lib/rex/post/meterpreter/extensions/priv/tlv.rb +29 -0
- data/lib/rex/post/meterpreter/extensions/sniffer/sniffer.rb +117 -0
- data/lib/rex/post/meterpreter/extensions/sniffer/tlv.rb +27 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/constants.rb +396 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/fs/dir.rb +284 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/fs/file.rb +399 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/fs/file_stat.rb +104 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/fs/io.rb +48 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/arp.rb +59 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/config.rb +256 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/interface.rb +129 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/netstat.rb +97 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/resolve.rb +106 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/route.rb +67 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/socket.rb +139 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_client_channel.rb +180 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/tcp_server_channel.rb +168 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/net/socket_subsystem/udp_channel.rb +209 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/api_constants.rb +38146 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/buffer_item.rb +48 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_advapi32.rb +2102 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_crypt32.rb +32 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_iphlpapi.rb +97 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_kernel32.rb +3852 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_netapi32.rb +100 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ntdll.rb +168 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_psapi.rb +32 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_shell32.rb +32 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_user32.rb +3170 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_version.rb +41 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_wlanapi.rb +87 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_wldap32.rb +128 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/def/def_ws2_32.rb +613 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll.rb +388 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_function.rb +111 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_helper.rb +149 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/dll_wrapper.rb +27 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/mock_magic.rb +515 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/multicall.rb +319 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/platform_util.rb +23 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/railgun.rb +301 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/tlv.rb +56 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/type/pointer_util.rb +106 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/util.rb +676 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/railgun/win_const_manager.rb +96 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/stdapi.rb +151 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/config.rb +128 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log.rb +192 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/event_log_subsystem/event_record.rb +41 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/power.rb +60 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/process.rb +408 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/image.rb +129 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/io.rb +55 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/memory.rb +336 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/process_subsystem/thread.rb +141 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry.rb +328 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_key.rb +193 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/registry_value.rb +102 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/registry_subsystem/remote_registry_key.rb +188 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/sys/thread.rb +180 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/tlv.rb +236 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/ui.rb +259 -0
- data/lib/rex/post/meterpreter/extensions/stdapi/webcam/webcam.rb +201 -0
- data/lib/rex/post/meterpreter/inbound_packet_handler.rb +30 -0
- data/lib/rex/post/meterpreter/object_aliases.rb +83 -0
- data/lib/rex/post/meterpreter/packet.rb +709 -0
- data/lib/rex/post/meterpreter/packet_dispatcher.rb +543 -0
- data/lib/rex/post/meterpreter/packet_parser.rb +94 -0
- data/lib/rex/post/meterpreter/packet_response_waiter.rb +83 -0
- data/lib/rex/post/meterpreter/ui/console.rb +142 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher.rb +86 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/android.rb +383 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/core.rb +939 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/espia.rb +109 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi.rb +65 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/adsi.rb +198 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/clipboard.rb +444 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/service.rb +199 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/window.rb +118 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/extapi/wmi.rb +108 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/incognito.rb +242 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/kiwi.rb +509 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/lanattacks.rb +60 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/lanattacks/dhcp.rb +254 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/lanattacks/tftp.rb +159 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/mimikatz.rb +182 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/networkpug.rb +232 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv.rb +62 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/elevate.rb +97 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/passwd.rb +52 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/priv/timestomp.rb +133 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/sniffer.rb +204 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi.rb +66 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/fs.rb +527 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/net.rb +448 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/sys.rb +906 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/ui.rb +318 -0
- data/lib/rex/post/meterpreter/ui/console/command_dispatcher/stdapi/webcam.rb +343 -0
- data/lib/rex/post/meterpreter/ui/console/interactive_channel.rb +99 -0
- data/lib/rex/post/permission.rb +26 -0
- data/lib/rex/post/process.rb +57 -0
- data/lib/rex/post/thread.rb +57 -0
- data/lib/rex/post/ui.rb +52 -0
- data/lib/rex/proto.rb +15 -0
- data/lib/rex/proto/addp.rb +218 -0
- data/lib/rex/proto/dcerpc.rb +7 -0
- data/lib/rex/proto/dcerpc/client.rb +362 -0
- data/lib/rex/proto/dcerpc/exceptions.rb +151 -0
- data/lib/rex/proto/dcerpc/handle.rb +48 -0
- data/lib/rex/proto/dcerpc/ndr.rb +73 -0
- data/lib/rex/proto/dcerpc/packet.rb +264 -0
- data/lib/rex/proto/dcerpc/response.rb +188 -0
- data/lib/rex/proto/dcerpc/uuid.rb +85 -0
- data/lib/rex/proto/dcerpc/wdscp.rb +3 -0
- data/lib/rex/proto/dcerpc/wdscp/constants.rb +89 -0
- data/lib/rex/proto/dcerpc/wdscp/packet.rb +94 -0
- data/lib/rex/proto/dhcp.rb +7 -0
- data/lib/rex/proto/dhcp/constants.rb +34 -0
- data/lib/rex/proto/dhcp/server.rb +334 -0
- data/lib/rex/proto/drda.rb +6 -0
- data/lib/rex/proto/drda/constants.rb +50 -0
- data/lib/rex/proto/drda/packet.rb +253 -0
- data/lib/rex/proto/drda/utils.rb +124 -0
- data/lib/rex/proto/http.rb +7 -0
- data/lib/rex/proto/http/client.rb +722 -0
- data/lib/rex/proto/http/client_request.rb +472 -0
- data/lib/rex/proto/http/handler.rb +47 -0
- data/lib/rex/proto/http/handler/erb.rb +129 -0
- data/lib/rex/proto/http/handler/proc.rb +61 -0
- data/lib/rex/proto/http/header.rb +173 -0
- data/lib/rex/proto/http/packet.rb +414 -0
- data/lib/rex/proto/http/request.rb +354 -0
- data/lib/rex/proto/http/response.rb +151 -0
- data/lib/rex/proto/http/server.rb +385 -0
- data/lib/rex/proto/iax2.rb +2 -0
- data/lib/rex/proto/iax2/call.rb +326 -0
- data/lib/rex/proto/iax2/client.rb +218 -0
- data/lib/rex/proto/iax2/codecs.rb +5 -0
- data/lib/rex/proto/iax2/codecs/alaw.rb +16 -0
- data/lib/rex/proto/iax2/codecs/g711.rb +2176 -0
- data/lib/rex/proto/iax2/codecs/mulaw.rb +17 -0
- data/lib/rex/proto/iax2/constants.rb +262 -0
- data/lib/rex/proto/ipmi.rb +57 -0
- data/lib/rex/proto/ipmi/channel_auth_reply.rb +89 -0
- data/lib/rex/proto/ipmi/open_session_reply.rb +36 -0
- data/lib/rex/proto/ipmi/rakp2.rb +36 -0
- data/lib/rex/proto/ipmi/utils.rb +125 -0
- data/lib/rex/proto/natpmp.rb +7 -0
- data/lib/rex/proto/natpmp/constants.rb +19 -0
- data/lib/rex/proto/natpmp/packet.rb +45 -0
- data/lib/rex/proto/ntlm.rb +8 -0
- data/lib/rex/proto/ntlm/base.rb +327 -0
- data/lib/rex/proto/ntlm/constants.rb +75 -0
- data/lib/rex/proto/ntlm/crypt.rb +412 -0
- data/lib/rex/proto/ntlm/exceptions.rb +17 -0
- data/lib/rex/proto/ntlm/message.rb +534 -0
- data/lib/rex/proto/ntlm/utils.rb +765 -0
- data/lib/rex/proto/ntp.rb +3 -0
- data/lib/rex/proto/ntp/constants.rb +12 -0
- data/lib/rex/proto/ntp/modes.rb +130 -0
- data/lib/rex/proto/pjl.rb +31 -0
- data/lib/rex/proto/pjl/client.rb +163 -0
- data/lib/rex/proto/proxy/socks4a.rb +441 -0
- data/lib/rex/proto/rfb.rb +13 -0
- data/lib/rex/proto/rfb/cipher.rb +82 -0
- data/lib/rex/proto/rfb/client.rb +205 -0
- data/lib/rex/proto/rfb/constants.rb +50 -0
- data/lib/rex/proto/sip.rb +4 -0
- data/lib/rex/proto/sip/response.rb +61 -0
- data/lib/rex/proto/smb.rb +8 -0
- data/lib/rex/proto/smb/client.rb +2064 -0
- data/lib/rex/proto/smb/constants.rb +1064 -0
- data/lib/rex/proto/smb/crypt.rb +37 -0
- data/lib/rex/proto/smb/evasions.rb +67 -0
- data/lib/rex/proto/smb/exceptions.rb +867 -0
- data/lib/rex/proto/smb/simpleclient.rb +173 -0
- data/lib/rex/proto/smb/simpleclient/open_file.rb +106 -0
- data/lib/rex/proto/smb/simpleclient/open_pipe.rb +57 -0
- data/lib/rex/proto/smb/utils.rb +104 -0
- data/lib/rex/proto/sunrpc.rb +2 -0
- data/lib/rex/proto/sunrpc/client.rb +196 -0
- data/lib/rex/proto/tftp.rb +13 -0
- data/lib/rex/proto/tftp/client.rb +344 -0
- data/lib/rex/proto/tftp/constants.rb +39 -0
- data/lib/rex/proto/tftp/server.rb +497 -0
- data/lib/rex/random_identifier_generator.rb +177 -0
- data/lib/rex/registry.rb +14 -0
- data/lib/rex/registry/hive.rb +132 -0
- data/lib/rex/registry/lfkey.rb +51 -0
- data/lib/rex/registry/nodekey.rb +54 -0
- data/lib/rex/registry/regf.rb +25 -0
- data/lib/rex/registry/valuekey.rb +67 -0
- data/lib/rex/registry/valuelist.rb +29 -0
- data/lib/rex/ropbuilder.rb +8 -0
- data/lib/rex/ropbuilder/rop.rb +271 -0
- data/lib/rex/script.rb +42 -0
- data/lib/rex/script/base.rb +61 -0
- data/lib/rex/script/meterpreter.rb +16 -0
- data/lib/rex/script/shell.rb +10 -0
- data/lib/rex/service.rb +49 -0
- data/lib/rex/service_manager.rb +154 -0
- data/lib/rex/services/local_relay.rb +424 -0
- data/lib/rex/socket.rb +788 -0
- data/lib/rex/socket/comm.rb +120 -0
- data/lib/rex/socket/comm/local.rb +526 -0
- data/lib/rex/socket/ip.rb +132 -0
- data/lib/rex/socket/parameters.rb +363 -0
- data/lib/rex/socket/range_walker.rb +470 -0
- data/lib/rex/socket/ssl_tcp.rb +345 -0
- data/lib/rex/socket/ssl_tcp_server.rb +188 -0
- data/lib/rex/socket/subnet_walker.rb +76 -0
- data/lib/rex/socket/switch_board.rb +289 -0
- data/lib/rex/socket/tcp.rb +79 -0
- data/lib/rex/socket/tcp_server.rb +67 -0
- data/lib/rex/socket/udp.rb +165 -0
- data/lib/rex/sslscan/result.rb +201 -0
- data/lib/rex/sslscan/scanner.rb +206 -0
- data/lib/rex/struct2.rb +5 -0
- data/lib/rex/struct2/c_struct.rb +181 -0
- data/lib/rex/struct2/c_struct_template.rb +39 -0
- data/lib/rex/struct2/constant.rb +26 -0
- data/lib/rex/struct2/element.rb +44 -0
- data/lib/rex/struct2/generic.rb +73 -0
- data/lib/rex/struct2/restraint.rb +54 -0
- data/lib/rex/struct2/s_string.rb +72 -0
- data/lib/rex/struct2/s_struct.rb +111 -0
- data/lib/rex/sync.rb +6 -0
- data/lib/rex/sync/event.rb +85 -0
- data/lib/rex/sync/read_write_lock.rb +177 -0
- data/lib/rex/sync/ref.rb +58 -0
- data/lib/rex/sync/thread_safe.rb +83 -0
- data/lib/rex/text.rb +1813 -0
- data/lib/rex/thread_factory.rb +43 -0
- data/lib/rex/time.rb +66 -0
- data/lib/rex/transformer.rb +116 -0
- data/lib/rex/ui.rb +22 -0
- data/lib/rex/ui/interactive.rb +304 -0
- data/lib/rex/ui/output.rb +85 -0
- data/lib/rex/ui/output/none.rb +19 -0
- data/lib/rex/ui/progress_tracker.rb +97 -0
- data/lib/rex/ui/subscriber.rb +160 -0
- data/lib/rex/ui/text/color.rb +98 -0
- data/lib/rex/ui/text/dispatcher_shell.rb +538 -0
- data/lib/rex/ui/text/input.rb +119 -0
- data/lib/rex/ui/text/input/buffer.rb +79 -0
- data/lib/rex/ui/text/input/readline.rb +129 -0
- data/lib/rex/ui/text/input/socket.rb +96 -0
- data/lib/rex/ui/text/input/stdio.rb +46 -0
- data/lib/rex/ui/text/irb_shell.rb +62 -0
- data/lib/rex/ui/text/output.rb +86 -0
- data/lib/rex/ui/text/output/buffer.rb +62 -0
- data/lib/rex/ui/text/output/buffer/stdout.rb +26 -0
- data/lib/rex/ui/text/output/file.rb +44 -0
- data/lib/rex/ui/text/output/socket.rb +44 -0
- data/lib/rex/ui/text/output/stdio.rb +53 -0
- data/lib/rex/ui/text/output/tee.rb +56 -0
- data/lib/rex/ui/text/progress_tracker.rb +57 -0
- data/lib/rex/ui/text/shell.rb +403 -0
- data/lib/rex/ui/text/table.rb +346 -0
- data/lib/rex/zip.rb +96 -0
- data/lib/rex/zip/archive.rb +130 -0
- data/lib/rex/zip/blocks.rb +184 -0
- data/lib/rex/zip/entry.rb +122 -0
- data/lib/rex/zip/jar.rb +283 -0
- data/lib/rex/zip/samples/comment.rb +32 -0
- data/lib/rex/zip/samples/mkwar.rb +138 -0
- data/lib/rex/zip/samples/mkzip.rb +19 -0
- data/lib/rex/zip/samples/recursive.rb +58 -0
- metadata +536 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
# -*- coding: binary -*-
|
|
2
|
+
module Rex
|
|
3
|
+
module Proto
|
|
4
|
+
module IAX2
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
IAX2_DEFAULT_PORT = 4569
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
IAX_TYPE_VOICE = 2
|
|
11
|
+
IAX_TYPE_CONTROL = 4
|
|
12
|
+
IAX_TYPE_IAX = 6
|
|
13
|
+
IAX_TYPE_DTMF_BEGIN = 1
|
|
14
|
+
IAX_TYPE_DTMF_END = 12
|
|
15
|
+
|
|
16
|
+
IAX_CTRL_HANGUP = 1
|
|
17
|
+
IAX_CTRL_RINGING = 3
|
|
18
|
+
IAX_CTRL_ANSWER = 4
|
|
19
|
+
IAX_CTRL_BUSY = 5
|
|
20
|
+
IAX_CTRL_PROGRESS = 14
|
|
21
|
+
IAX_CTRL_PROCEED = 15
|
|
22
|
+
|
|
23
|
+
=begin
|
|
24
|
+
+-------------+---------------+-------------------------------------+
|
|
25
|
+
| VALUE | Name | Description |
|
|
26
|
+
+-------------+---------------+-------------------------------------+
|
|
27
|
+
| 0x01 | Hangup | The call has been hungup at the |
|
|
28
|
+
| | | remote end |
|
|
29
|
+
| | | |
|
|
30
|
+
| 0x02 | Reserved | Reserved for future use |
|
|
31
|
+
| | | |
|
|
32
|
+
| 0x03 | Ringing | Remote end is ringing (ring-back) |
|
|
33
|
+
| | | |
|
|
34
|
+
| 0x04 | Answer | Remote end has answered |
|
|
35
|
+
| | | |
|
|
36
|
+
| 0x05 | Busy | Remote end is busy |
|
|
37
|
+
| | | |
|
|
38
|
+
| 0x06 | Reserved | Reserved for future use |
|
|
39
|
+
| | | |
|
|
40
|
+
| 0x07 | Reserved | Reserved for future use |
|
|
41
|
+
| | | |
|
|
42
|
+
| 0x08 | Congestion | The call is congested |
|
|
43
|
+
| | | |
|
|
44
|
+
| 0x09 | Flash Hook | Flash hook |
|
|
45
|
+
| | | |
|
|
46
|
+
| 0x0a | Reserved | Reserved for future use |
|
|
47
|
+
| | | |
|
|
48
|
+
| 0x0b | Option | Device-specific options are being |
|
|
49
|
+
| | | transmitted |
|
|
50
|
+
| | | |
|
|
51
|
+
| 0x0c | Key Radio | Key Radio |
|
|
52
|
+
| | | |
|
|
53
|
+
| 0x0d | Unkey Radio | Unkey Radio |
|
|
54
|
+
| | | |
|
|
55
|
+
| 0x0e | Call Progress | Call is in progress |
|
|
56
|
+
| | | |
|
|
57
|
+
| 0x0f | Call | Call is proceeding |
|
|
58
|
+
| | Proceeding | |
|
|
59
|
+
| | | |
|
|
60
|
+
| 0x10 | Hold | Call is placed on hold |
|
|
61
|
+
| | | |
|
|
62
|
+
| 0x11 | Unhold | Call is taken off hold |
|
|
63
|
+
+-------------+---------------+-------------------------------------+
|
|
64
|
+
=end
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
IAX_SUBTYPE_NEW = 1
|
|
68
|
+
IAX_SUBTYPE_PING = 2
|
|
69
|
+
IAX_SUBTYPE_PONG = 3
|
|
70
|
+
IAX_SUBTYPE_ANSWER = 4
|
|
71
|
+
IAX_SUBTYPE_ACK = 4
|
|
72
|
+
IAX_SUBTYPE_HANGUP = 5
|
|
73
|
+
IAX_SUBTYPE_REJECT = 6
|
|
74
|
+
IAX_SUBTYPE_ACCEPT = 7
|
|
75
|
+
IAX_SUBTYPE_AUTHREQ = 8
|
|
76
|
+
IAX_SUBTYPE_AUTHREP = 9
|
|
77
|
+
IAX_SUBTYPE_INVAL = 10
|
|
78
|
+
IAX_SUBTYPE_LAGRQ = 11
|
|
79
|
+
IAX_SUBTYPE_LAGRP = 12
|
|
80
|
+
IAX_SUBTYPE_REGREQ = 13
|
|
81
|
+
IAX_SUBTYPE_REGAUTH = 14
|
|
82
|
+
IAX_SUBTYPE_REGACK = 15
|
|
83
|
+
IAX_SUBTYPE_REGREJ = 16
|
|
84
|
+
IAX_SUBTYPE_REGREL = 17
|
|
85
|
+
IAX_SUBTYPE_VNAK = 18
|
|
86
|
+
|
|
87
|
+
=begin
|
|
88
|
+
+------+-----------+-----------------------------------------+
|
|
89
|
+
| Hex | Name | Description |
|
|
90
|
+
+------+-----------+-----------------------------------------+
|
|
91
|
+
| 0x01 | NEW | Initiate a new call |
|
|
92
|
+
| | | |
|
|
93
|
+
| 0x02 | PING | Ping request |
|
|
94
|
+
| | | |
|
|
95
|
+
| 0x03 | PONG | Ping or poke reply |
|
|
96
|
+
| | | |
|
|
97
|
+
| 0x04 | ACK | Explicit acknowledgment |
|
|
98
|
+
| | | |
|
|
99
|
+
| 0x05 | HANGUP | Initiate call tear-down |
|
|
100
|
+
| | | |
|
|
101
|
+
| 0x06 | REJECT | Reject a call |
|
|
102
|
+
| | | |
|
|
103
|
+
| 0x07 | ACCEPT | Accept a call |
|
|
104
|
+
| | | |
|
|
105
|
+
| 0x08 | AUTHREQ | Authentication request |
|
|
106
|
+
| | | |
|
|
107
|
+
| 0x09 | AUTHREP | Authentication reply |
|
|
108
|
+
| | | |
|
|
109
|
+
| 0x0a | INVAL | Invalid message |
|
|
110
|
+
| | | |
|
|
111
|
+
| 0x0b | LAGRQ | Lag request |
|
|
112
|
+
| | | |
|
|
113
|
+
| 0x0c | LAGRP | Lag reply |
|
|
114
|
+
| | | |
|
|
115
|
+
| 0x0d | REGREQ | Registration request |
|
|
116
|
+
| | | |
|
|
117
|
+
| 0x0e | REGAUTH | Registration authentication |
|
|
118
|
+
| | | |
|
|
119
|
+
| 0x0f | REGACK | Registration acknowledgement |
|
|
120
|
+
| | | |
|
|
121
|
+
| 0x10 | REGREJ | Registration reject |
|
|
122
|
+
| | | |
|
|
123
|
+
| 0x11 | REGREL | Registration release |
|
|
124
|
+
| | | |
|
|
125
|
+
| 0x12 | VNAK | Video/Voice retransmit request |
|
|
126
|
+
| | | |
|
|
127
|
+
| 0x13 | DPREQ | Dialplan request |
|
|
128
|
+
| | | |
|
|
129
|
+
| 0x14 | DPREP | Dialplan reply |
|
|
130
|
+
| | | |
|
|
131
|
+
| 0x15 | DIAL | Dial |
|
|
132
|
+
| | | |
|
|
133
|
+
| 0x16 | TXREQ | Transfer request |
|
|
134
|
+
| | | |
|
|
135
|
+
| 0x17 | TXCNT | Transfer connect |
|
|
136
|
+
| | | |
|
|
137
|
+
| 0x18 | TXACC | Transfer accept |
|
|
138
|
+
| | | |
|
|
139
|
+
| 0x19 | TXREADY | Transfer ready |
|
|
140
|
+
| | | |
|
|
141
|
+
| 0x1a | TXREL | Transfer release |
|
|
142
|
+
| | | |
|
|
143
|
+
| 0x1b | TXREJ | Transfer reject |
|
|
144
|
+
| | | |
|
|
145
|
+
| 0x1c | QUELCH | Halt audio/video [media] transmission |
|
|
146
|
+
| | | |
|
|
147
|
+
| 0x1d | UNQUELCH | Resume audio/video [media] transmission |
|
|
148
|
+
| | | |
|
|
149
|
+
| 0x1e | POKE | Poke request |
|
|
150
|
+
| | | |
|
|
151
|
+
| 0x1f | Reserved | Reserved for future use |
|
|
152
|
+
| | | |
|
|
153
|
+
| 0x20 | MWI | Message waiting indication |
|
|
154
|
+
| | | |
|
|
155
|
+
| 0x21 | UNSUPPORT | Unsupported message |
|
|
156
|
+
| | | |
|
|
157
|
+
| 0x22 | TRANSFER | Remote transfer request |
|
|
158
|
+
| | | |
|
|
159
|
+
| 0x23 | Reserved | Reserved for future use |
|
|
160
|
+
| | | |
|
|
161
|
+
| 0x24 | Reserved | Reserved for future use |
|
|
162
|
+
| | | |
|
|
163
|
+
| 0x25 | Reserved | Reserved for future use |
|
|
164
|
+
+------+-----------+-----------------------------------------+
|
|
165
|
+
=end
|
|
166
|
+
|
|
167
|
+
IAX_IE_CALLED_NUMBER = 1
|
|
168
|
+
IAX_IE_CALLING_NUMBER = 2
|
|
169
|
+
IAX_IE_AUTH_METHODS = 3
|
|
170
|
+
IAX_IE_CALLING_NAME = 4
|
|
171
|
+
IAX_IE_USERNAME = 6
|
|
172
|
+
IAX_IE_DESIRED_CODEC = 9
|
|
173
|
+
IAX_IE_ORIGINAL_DID = 10
|
|
174
|
+
IAX_IE_ACTUAL_CODECS = 8
|
|
175
|
+
IAX_IE_PROTO_VERSION = 11
|
|
176
|
+
IAX_IE_REG_REFRESH = 19
|
|
177
|
+
IAX_IE_CHALLENGE_DATA = 15
|
|
178
|
+
IAX_IE_CHALLENGE_RESP = 16
|
|
179
|
+
IAX_IE_APPARENT_ADDR = 18
|
|
180
|
+
IAX_IE_REGREJ_CAUSE = 22
|
|
181
|
+
IAX_IE_HANGUP_CAUSE = 42
|
|
182
|
+
|
|
183
|
+
=begin
|
|
184
|
+
+------+----------------+-------------------------------------------+
|
|
185
|
+
| HEX | NAME | DESCRIPTION |
|
|
186
|
+
+------+----------------+-------------------------------------------+
|
|
187
|
+
| HEX | NAME | DESCRIPTION |
|
|
188
|
+
| 0x01 | CALLED NUMBER | Number/extension being called |
|
|
189
|
+
| 0x02 | CALLING NUMBER | Calling number |
|
|
190
|
+
| 0x03 | CALLING ANI | Calling number ANI for billing |
|
|
191
|
+
| 0x04 | CALLING NAME | Name of caller |
|
|
192
|
+
| 0x05 | CALLED CONTEXT | Context for number |
|
|
193
|
+
| 0x06 | USERNAME | Username (peer or user) for |
|
|
194
|
+
| | | authentication |
|
|
195
|
+
| 0x07 | PASSWORD | Password for authentication |
|
|
196
|
+
| 0x08 | CAPABILITY | Actual CODEC capability |
|
|
197
|
+
| 0x09 | FORMAT | Desired CODEC format |
|
|
198
|
+
| 0x0a | LANGUAGE | Desired language |
|
|
199
|
+
| 0x0b | VERSION | Protocol version |
|
|
200
|
+
| 0x0c | ADSICPE | CPE ADSI capability |
|
|
201
|
+
| 0x0d | DNID | Originally dialed DNID |
|
|
202
|
+
| 0x0e | AUTHMETHODS | Authentication method(s) |
|
|
203
|
+
| 0x0f | CHALLENGE | Challenge data for MD5/RSA |
|
|
204
|
+
| 0x10 | MD5 RESULT | MD5 challenge result |
|
|
205
|
+
| 0x11 | RSA RESULT | RSA challenge result |
|
|
206
|
+
| 0x12 | APPARENT ADDR | Apparent address of peer |
|
|
207
|
+
| 0x13 | REFRESH | When to refresh registration |
|
|
208
|
+
| 0x14 | DPSTATUS | Dialplan status |
|
|
209
|
+
| 0x15 | CALLNO | Call number of peer |
|
|
210
|
+
| 0x16 | CAUSE | Cause |
|
|
211
|
+
| 0x17 | IAX UNKNOWN | Unknown IAX command |
|
|
212
|
+
| 0x18 | MSGCOUNT | How many messages waiting |
|
|
213
|
+
| 0x19 | AUTOANSWER | Request auto-answering |
|
|
214
|
+
| 0x1a | MUSICONHOLD | Request musiconhold with QUELCH |
|
|
215
|
+
| 0x1b | TRANSFERID | Transfer Request Identifier |
|
|
216
|
+
| 0x1c | RDNIS | Referring DNIS |
|
|
217
|
+
| 0x1d | Reserved | Reserved for future use |
|
|
218
|
+
| 0x1e | Reserved | Reserved for future use |
|
|
219
|
+
| 0x1f | DATETIME | Date/Time |
|
|
220
|
+
| 0x20 | Reserved | Reserved for future use |
|
|
221
|
+
| 0x21 | Reserved | Reserved for future use |
|
|
222
|
+
| 0x22 | Reserved | Reserved for future use |
|
|
223
|
+
| 0x23 | Reserved | Reserved for future use |
|
|
224
|
+
| 0x24 | Reserved | Reserved for future use |
|
|
225
|
+
| 0x25 | Reserved | Reserved for future use |
|
|
226
|
+
| 0x26 | CALLINGPRES | Calling presentation |
|
|
227
|
+
| 0x27 | CALLINGTON | Calling type of number |
|
|
228
|
+
| 0x28 | CALLINGTNS | Calling transit network select |
|
|
229
|
+
| 0x29 | SAMPLINGRATE | Supported sampling rates |
|
|
230
|
+
| 0x2a | CAUSECODE | Hangup cause |
|
|
231
|
+
| 0x2b | ENCRYPTION | Encryption format |
|
|
232
|
+
| 0x2c | ENCKEY | Reserved for future Use |
|
|
233
|
+
| 0x2d | CODEC PREFS | CODEC Negotiation |
|
|
234
|
+
| 0x2e | RR JITTER | Received jitter, as in RFC 3550 |
|
|
235
|
+
| 0x2f | RR LOSS | Received loss, as in RFC 3550 |
|
|
236
|
+
| 0x30 | RR PKTS | Received frames |
|
|
237
|
+
| 0x31 | RR DELAY | Max playout delay for received frames in |
|
|
238
|
+
| | | ms |
|
|
239
|
+
| 0x32 | RR DROPPED | Dropped frames (presumably by jitter |
|
|
240
|
+
| | | buffer) |
|
|
241
|
+
| 0x33 | RR OOO | Frames received Out of Order |
|
|
242
|
+
| 0x34 | OSPTOKEN | OSP Token Block |
|
|
243
|
+
+------+----------------+-------------------------------------------+
|
|
244
|
+
=end
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
# Codecs
|
|
248
|
+
IAX_CODEC_G711_MULAW = 0x00000004
|
|
249
|
+
IAX_CODEC_G711_ALAW = 0x00000008
|
|
250
|
+
IAX_CODEC_LINEAR_PCM = 0x00000040
|
|
251
|
+
|
|
252
|
+
# Supported
|
|
253
|
+
IAX_SUPPORTED_CODECS = IAX_CODEC_G711_MULAW | IAX_CODEC_G711_ALAW | IAX_CODEC_LINEAR_PCM
|
|
254
|
+
|
|
255
|
+
# Default timings
|
|
256
|
+
IAX_DEFAULT_REG_REFRESH = 60
|
|
257
|
+
IAX_DEFAULT_TIMEOUT = 10
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
end
|
|
261
|
+
end
|
|
262
|
+
end
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# -*- coding: binary -*-
|
|
2
|
+
|
|
3
|
+
require 'rex/proto/ipmi/utils'
|
|
4
|
+
|
|
5
|
+
module Rex
|
|
6
|
+
module Proto
|
|
7
|
+
module IPMI
|
|
8
|
+
require 'bit-struct'
|
|
9
|
+
require 'rex/proto/ipmi/channel_auth_reply'
|
|
10
|
+
require 'rex/proto/ipmi/open_session_reply'
|
|
11
|
+
require 'rex/proto/ipmi/rakp2'
|
|
12
|
+
|
|
13
|
+
#
|
|
14
|
+
# Move these into an IPMI stack or mixin at some point
|
|
15
|
+
#
|
|
16
|
+
|
|
17
|
+
#
|
|
18
|
+
# Payload types were identified from xCAT-server source code (IPMI.pm)
|
|
19
|
+
#
|
|
20
|
+
PAYLOAD_IPMI = 0
|
|
21
|
+
PAYLOAD_SOL = 1
|
|
22
|
+
PAYLOAD_RMCPPLUSOPEN_REQ = 0x10
|
|
23
|
+
PAYLOAD_RMCPPLUSOPEN_REP = 0x11
|
|
24
|
+
PAYLOAD_RAKP1 = 0x12
|
|
25
|
+
PAYLOAD_RAKP2 = 0x13
|
|
26
|
+
PAYLOAD_RAKP3 = 0x14
|
|
27
|
+
PAYLOAD_RAKP4 = 0x15
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
#
|
|
31
|
+
# Payload types were copied from xCAT-server source code (IPMI.pm)
|
|
32
|
+
#
|
|
33
|
+
RMCP_ERRORS = {
|
|
34
|
+
1 => "Insufficient resources to create new session (wait for existing sessions to timeout)",
|
|
35
|
+
2 => "Invalid Session ID", #this shouldn't occur...
|
|
36
|
+
3 => "Invalid payload type",#shouldn't occur..
|
|
37
|
+
4 => "Invalid authentication algorithm", #if this happens, we need to enhance our mechanism for detecting supported auth algorithms
|
|
38
|
+
5 => "Invalid integrity algorithm", #same as above
|
|
39
|
+
6 => "No matching authentication payload",
|
|
40
|
+
7 => "No matching integrity payload",
|
|
41
|
+
8 => "Inactive Session ID", #this suggests the session was timed out while trying to negotiate, shouldn't happen
|
|
42
|
+
9 => "Invalid role",
|
|
43
|
+
0xa => "Unauthorised role or privilege level requested",
|
|
44
|
+
0xb => "Insufficient resources to create a session at the requested role",
|
|
45
|
+
0xc => "Invalid username length",
|
|
46
|
+
0xd => "Unauthorized name",
|
|
47
|
+
0xe => "Unauthorized GUID",
|
|
48
|
+
0xf => "Invalid integrity check value",
|
|
49
|
+
0x10 => "Invalid confidentiality algorithm",
|
|
50
|
+
0x11 => "No cipher suite match with proposed security algorithms",
|
|
51
|
+
0x12 => "Illegal or unrecognized parameter", #have never observed this, would most likely mean a bug in xCAT or IPMI device
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
# -*- coding: binary -*-
|
|
2
|
+
|
|
3
|
+
module Rex
|
|
4
|
+
module Proto
|
|
5
|
+
module IPMI
|
|
6
|
+
|
|
7
|
+
class Channel_Auth_Reply < BitStruct
|
|
8
|
+
unsigned :rmcp_version, 8, "RMCP Version"
|
|
9
|
+
unsigned :rmcp_padding, 8, "RMCP Padding"
|
|
10
|
+
unsigned :rmcp_sequence, 8, "RMCP Sequence"
|
|
11
|
+
unsigned :rmcp_mtype, 1, "RMCP Message Type"
|
|
12
|
+
unsigned :rmcp_class, 7, "RMCP Message Class"
|
|
13
|
+
|
|
14
|
+
unsigned :session_auth_type, 8, "Session Auth Type"
|
|
15
|
+
unsigned :session_sequence, 32, "Session Sequence Number"
|
|
16
|
+
unsigned :session_id, 32, "Session ID"
|
|
17
|
+
unsigned :message_length, 8, "Message Length"
|
|
18
|
+
|
|
19
|
+
unsigned :ipmi_tgt_address, 8, "IPMI Target Address"
|
|
20
|
+
unsigned :ipmi_tgt_lun, 8, "IPMI Target LUN"
|
|
21
|
+
unsigned :ipmi_header_checksum, 8, "IPMI Header Checksum"
|
|
22
|
+
unsigned :ipmi_src_address, 8, "IPMI Source Address"
|
|
23
|
+
unsigned :ipmi_src_lun, 8, "IPMI Source LUN"
|
|
24
|
+
unsigned :ipmi_command, 8, "IPMI Command"
|
|
25
|
+
unsigned :ipmi_completion_code, 8, "IPMI Completion Code"
|
|
26
|
+
|
|
27
|
+
unsigned :ipmi_channel, 8, "IPMI Channel"
|
|
28
|
+
|
|
29
|
+
unsigned :ipmi_compat_20, 1, "IPMI Version Compatibility: IPMI 2.0+"
|
|
30
|
+
unsigned :ipmi_compat_reserved1, 1, "IPMI Version Compatibility: Reserved 1"
|
|
31
|
+
unsigned :ipmi_compat_oem_auth, 1, "IPMI Version Compatibility: OEM Authentication"
|
|
32
|
+
unsigned :ipmi_compat_password, 1, "IPMI Version Compatibility: Straight Password"
|
|
33
|
+
unsigned :ipmi_compat_reserved2, 1, "IPMI Version Compatibility: Reserved 2"
|
|
34
|
+
unsigned :ipmi_compat_md5, 1, "IPMI Version Compatibility: MD5"
|
|
35
|
+
unsigned :ipmi_compat_md2, 1, "IPMI Version Compatibility: MD2"
|
|
36
|
+
unsigned :ipmi_compat_none, 1, "IPMI Version Compatibility: None"
|
|
37
|
+
|
|
38
|
+
unsigned :ipmi_user_reserved1, 2, "IPMI User Compatibility: Reserved 1"
|
|
39
|
+
unsigned :ipmi_user_kg, 1, "IPMI User Compatibility: KG Set to Default"
|
|
40
|
+
unsigned :ipmi_user_disable_message_auth, 1, "IPMI User Compatibility: Disable Per-Message Authentication"
|
|
41
|
+
unsigned :ipmi_user_disable_user_auth, 1, "IPMI User Compatibility: Disable User-Level Authentication"
|
|
42
|
+
unsigned :ipmi_user_non_null, 1, "IPMI User Compatibility: Non-Null Usernames Enabled"
|
|
43
|
+
unsigned :ipmi_user_null, 1, "IPMI User Compatibility: Null Usernames Enabled"
|
|
44
|
+
unsigned :ipmi_user_anonymous, 1, "IPMI User Compatibility: Anonymous Login Enabled"
|
|
45
|
+
|
|
46
|
+
unsigned :ipmi_conn_reserved1, 6, "IPMI Connection Compatibility: Reserved 1"
|
|
47
|
+
unsigned :ipmi_conn_20, 1, "IPMI Connection Compatibility: 2.0"
|
|
48
|
+
unsigned :ipmi_conn_15, 1, "IPMI Connection Compatibility: 1.5"
|
|
49
|
+
|
|
50
|
+
unsigned :ipmi_oem_id, 24, "IPMI OEM ID", :endian => 'little'
|
|
51
|
+
|
|
52
|
+
rest :ipm_oem_data, "IPMI OEM Data + Checksum Byte"
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
def to_banner
|
|
56
|
+
info = self
|
|
57
|
+
banner = "#{(info.ipmi_compat_20 == 1) ? "IPMI-2.0" : "IPMI-1.5"} "
|
|
58
|
+
|
|
59
|
+
pass_info = []
|
|
60
|
+
pass_info << "oem_auth" if info.ipmi_compat_oem_auth == 1
|
|
61
|
+
pass_info << "password" if info.ipmi_compat_password == 1
|
|
62
|
+
pass_info << "md5" if info.ipmi_compat_md5 == 1
|
|
63
|
+
pass_info << "md2" if info.ipmi_compat_md2 == 1
|
|
64
|
+
pass_info << "null" if info.ipmi_compat_none == 1
|
|
65
|
+
|
|
66
|
+
user_info = []
|
|
67
|
+
user_info << "kg_default" if (info.ipmi_compat_20 == 1 and info.ipmi_user_kg == 1)
|
|
68
|
+
user_info << "auth_msg" unless info.ipmi_user_disable_message_auth == 1
|
|
69
|
+
user_info << "auth_user" unless info.ipmi_user_disable_user_auth == 1
|
|
70
|
+
user_info << "non_null_user" if info.ipmi_user_non_null == 1
|
|
71
|
+
user_info << "null_user" if info.ipmi_user_null == 1
|
|
72
|
+
user_info << "anonymous_user" if info.ipmi_user_anonymous == 1
|
|
73
|
+
|
|
74
|
+
conn_info = []
|
|
75
|
+
conn_info << "1.5" if info.ipmi_conn_15 == 1
|
|
76
|
+
conn_info << "2.0" if info.ipmi_conn_20 == 1
|
|
77
|
+
|
|
78
|
+
if info.ipmi_oem_id != 0
|
|
79
|
+
banner << "OEMID:#{info.ipmi_oem_id} "
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
banner << "UserAuth(#{user_info.join(", ")}) PassAuth(#{pass_info.join(", ")}) Level(#{conn_info.join(", ")}) "
|
|
83
|
+
banner
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# -*- coding: binary -*-
|
|
2
|
+
|
|
3
|
+
module Rex
|
|
4
|
+
module Proto
|
|
5
|
+
module IPMI
|
|
6
|
+
|
|
7
|
+
class Open_Session_Reply < BitStruct
|
|
8
|
+
unsigned :rmcp_version, 8, "RMCP Version"
|
|
9
|
+
unsigned :rmcp_padding, 8, "RMCP Padding"
|
|
10
|
+
unsigned :rmcp_sequence, 8, "RMCP Sequence"
|
|
11
|
+
unsigned :rmcp_mtype, 1, "RMCP Message Type"
|
|
12
|
+
unsigned :rmcp_class, 7, "RMCP Message Class"
|
|
13
|
+
|
|
14
|
+
unsigned :session_auth_type, 8, "Authentication Type"
|
|
15
|
+
|
|
16
|
+
unsigned :session_payload_encrypted, 1, "Session Payload Encrypted"
|
|
17
|
+
unsigned :session_payload_authenticated, 1, "Session Payload Authenticated"
|
|
18
|
+
unsigned :session_payload_type, 6, "Session Payload Type", :endian => 'little'
|
|
19
|
+
|
|
20
|
+
unsigned :session_id, 32, "Session ID"
|
|
21
|
+
unsigned :session_sequence, 32, "Session Sequence Number"
|
|
22
|
+
unsigned :message_length, 16, "Message Length", :endian => "little"
|
|
23
|
+
|
|
24
|
+
unsigned :ignored1, 8, "Ignored"
|
|
25
|
+
unsigned :error_code, 8, "RMCP Error Code"
|
|
26
|
+
unsigned :ignored2, 16, "Ignored"
|
|
27
|
+
char :console_session_id, 32, "Console Session ID"
|
|
28
|
+
char :bmc_session_id, 32, "BMC Session ID"
|
|
29
|
+
|
|
30
|
+
rest :stuff, "The Rest of the Stuff"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|