ronin-support 0.5.1 → 1.0.0.beta1
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 +7 -0
- data/.editorconfig +11 -0
- data/.github/workflows/ruby.yml +27 -0
- data/.gitignore +7 -6
- data/.mailmap +1 -0
- data/.ruby-version +1 -0
- data/.yardopts +1 -2
- data/ChangeLog.md +533 -137
- data/Gemfile +20 -20
- data/README.md +137 -61
- data/Rakefile +29 -10
- data/data/text/homoglyphs/ascii.txt +8 -0
- data/data/text/homoglyphs/cyrillic.txt +33 -0
- data/data/text/homoglyphs/full_width.txt +81 -0
- data/data/text/homoglyphs/greek.txt +21 -0
- data/data/text/homoglyphs/latin_numbers.txt +14 -0
- data/data/text/homoglyphs/punctuation.txt +7 -0
- data/data/text/patterns/network/public_suffix.rb.erb +44 -0
- data/examples/ssl_proxy.rb +38 -0
- data/examples/tcp_proxy.rb +41 -0
- data/gemspec.yml +25 -15
- data/lib/ronin/support/archive/core_ext/file.rb +118 -0
- data/lib/ronin/{formatting/sql.rb → support/archive/core_ext.rb} +6 -7
- data/lib/ronin/support/archive/mixin.rb +213 -0
- data/lib/ronin/support/archive/tar/reader.rb +135 -0
- data/lib/ronin/support/archive/tar/writer.rb +197 -0
- data/lib/ronin/support/archive/tar.rb +155 -0
- data/lib/ronin/support/archive/zip/reader/entry.rb +134 -0
- data/lib/ronin/support/archive/zip/reader/statistics.rb +76 -0
- data/lib/ronin/support/archive/zip/reader.rb +273 -0
- data/lib/ronin/support/archive/zip/writer.rb +175 -0
- data/lib/ronin/support/archive/zip.rb +105 -0
- data/lib/ronin/support/archive.rb +211 -0
- data/lib/ronin/support/binary/array.rb +255 -0
- data/lib/ronin/support/binary/bit_flip.rb +147 -0
- data/lib/ronin/support/binary/buffer.rb +2027 -0
- data/lib/ronin/support/binary/byte_slice.rb +324 -0
- data/lib/ronin/support/binary/core_ext/array.rb +75 -0
- data/lib/ronin/support/binary/core_ext/float.rb +80 -0
- data/lib/ronin/support/binary/core_ext/integer.rb +305 -0
- data/lib/ronin/support/binary/core_ext/io.rb +38 -0
- data/lib/ronin/support/binary/core_ext/string.rb +115 -0
- data/lib/ronin/{formatting/extensions/text.rb → support/binary/core_ext.rb} +9 -9
- data/lib/ronin/support/binary/cstring.rb +259 -0
- data/lib/ronin/support/binary/ctypes/aggregate_type.rb +98 -0
- data/lib/ronin/support/binary/ctypes/arch/arm/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64/big_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/arm64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64/little_endian.rb +77 -0
- data/lib/ronin/support/binary/ctypes/arch/mips64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/ppc64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch/x86_64.rb +75 -0
- data/lib/ronin/support/binary/ctypes/arch.rb +30 -0
- data/lib/ronin/support/binary/ctypes/array_object_type.rb +164 -0
- data/lib/ronin/support/binary/ctypes/array_type.rb +232 -0
- data/lib/ronin/support/binary/ctypes/big_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/char_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/char_types.rb +39 -0
- data/lib/ronin/support/binary/ctypes/enum_type.rb +181 -0
- data/lib/ronin/support/binary/ctypes/float32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/float_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/int16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/int8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/int_type.rb +62 -0
- data/lib/ronin/support/binary/ctypes/little_endian.rb +195 -0
- data/lib/ronin/support/binary/ctypes/mixin.rb +135 -0
- data/lib/ronin/support/binary/ctypes/native.rb +205 -0
- data/lib/ronin/support/binary/ctypes/network.rb +29 -0
- data/lib/ronin/support/binary/ctypes/object_type.rb +55 -0
- data/lib/ronin/support/binary/ctypes/os/bsd.rb +65 -0
- data/lib/ronin/support/binary/ctypes/os/freebsd.rb +215 -0
- data/lib/ronin/support/binary/ctypes/os/linux.rb +193 -0
- data/lib/ronin/support/binary/ctypes/os/macos.rb +151 -0
- data/lib/ronin/support/binary/ctypes/os/netbsd.rb +147 -0
- data/lib/ronin/support/binary/ctypes/os/openbsd.rb +168 -0
- data/lib/ronin/support/binary/ctypes/os/unix.rb +78 -0
- data/lib/ronin/support/binary/ctypes/os/windows.rb +125 -0
- data/lib/ronin/support/binary/ctypes/os.rb +125 -0
- data/lib/ronin/support/binary/ctypes/scalar_type.rb +200 -0
- data/lib/ronin/support/binary/ctypes/string_type.rb +143 -0
- data/lib/ronin/support/binary/ctypes/struct_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/struct_type.rb +359 -0
- data/lib/ronin/support/binary/ctypes/type.rb +193 -0
- data/lib/ronin/support/binary/ctypes/type_resolver.rb +206 -0
- data/lib/ronin/support/binary/ctypes/uint16_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint32_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint64_type.rb +50 -0
- data/lib/ronin/support/binary/ctypes/uint8_type.rb +41 -0
- data/lib/ronin/support/binary/ctypes/uint_type.rb +59 -0
- data/lib/ronin/support/binary/ctypes/unbounded_array_type.rb +258 -0
- data/lib/ronin/support/binary/ctypes/union_object_type.rb +173 -0
- data/lib/ronin/support/binary/ctypes/union_type.rb +261 -0
- data/lib/ronin/support/binary/ctypes.rb +462 -0
- data/lib/ronin/support/binary/hexdump/core_ext/file.rb +118 -0
- data/lib/ronin/support/binary/hexdump/core_ext/string.rb +115 -0
- data/lib/ronin/support/binary/hexdump/core_ext.rb +20 -0
- data/lib/ronin/support/binary/hexdump/parser.rb +492 -0
- data/lib/ronin/support/binary/hexdump.rb +20 -0
- data/lib/ronin/support/binary/memory.rb +268 -0
- data/lib/ronin/support/binary/packet.rb +33 -0
- data/lib/ronin/support/binary/stack.rb +256 -0
- data/lib/ronin/support/binary/stream/methods.rb +1755 -0
- data/lib/ronin/support/binary/stream.rb +151 -0
- data/lib/ronin/support/binary/struct/member.rb +86 -0
- data/lib/ronin/support/binary/struct.rb +830 -0
- data/lib/ronin/support/binary/template.rb +284 -0
- data/lib/ronin/support/binary/union.rb +162 -0
- data/lib/ronin/support/binary.rb +26 -0
- data/lib/ronin/support/cli/ansi.rb +330 -0
- data/lib/ronin/support/cli/io_shell/core_ext/io.rb +67 -0
- data/lib/ronin/{fuzzing/extensions.rb → support/cli/io_shell/core_ext.rb} +6 -7
- data/lib/ronin/support/cli/io_shell.rb +161 -0
- data/lib/ronin/support/cli/printing.rb +216 -0
- data/lib/ronin/support/cli.rb +20 -0
- data/lib/ronin/support/compression/core_ext/file.rb +70 -0
- data/lib/ronin/support/compression/core_ext/string.rb +101 -0
- data/lib/ronin/{formatting/html.rb → support/compression/core_ext.rb} +6 -7
- data/lib/ronin/support/compression/gzip/reader.rb +70 -0
- data/lib/ronin/support/compression/gzip/writer.rb +74 -0
- data/lib/ronin/support/compression/gzip.rb +105 -0
- data/lib/ronin/support/compression/mixin.rb +180 -0
- data/lib/ronin/{network/extensions/esmtp/net.rb → support/compression/zlib.rb} +9 -10
- data/lib/ronin/support/compression.rb +174 -0
- data/lib/ronin/{extensions → support/core_ext}/enumerable.rb +5 -6
- data/lib/ronin/{extensions → support/core_ext}/file.rb +11 -34
- data/lib/ronin/support/core_ext/integer.rb +37 -0
- data/lib/ronin/support/core_ext/ipaddr.rb +65 -0
- data/lib/ronin/{extensions → support/core_ext}/kernel.rb +10 -9
- data/lib/ronin/{extensions → support/core_ext}/resolv.rb +5 -28
- data/lib/ronin/{extensions → support/core_ext}/string.rb +117 -57
- data/lib/ronin/support/core_ext.rb +33 -0
- data/lib/ronin/support/crypto/cert.rb +522 -0
- data/lib/ronin/support/crypto/cert_chain.rb +204 -0
- data/lib/ronin/support/crypto/cipher/aes.rb +71 -0
- data/lib/ronin/support/crypto/cipher/aes128.rb +54 -0
- data/lib/ronin/support/crypto/cipher/aes256.rb +54 -0
- data/lib/ronin/support/crypto/cipher.rb +194 -0
- data/lib/ronin/support/crypto/core_ext/file.rb +660 -0
- data/lib/ronin/support/crypto/core_ext/string.rb +548 -0
- data/lib/ronin/{binary.rb → support/crypto/core_ext.rb} +7 -8
- data/lib/ronin/support/crypto/hmac.rb +48 -0
- data/lib/ronin/support/crypto/key/dh.rb +122 -0
- data/lib/ronin/support/crypto/key/dsa.rb +103 -0
- data/lib/ronin/support/crypto/key/ec.rb +99 -0
- data/lib/ronin/support/crypto/key/methods.rb +163 -0
- data/lib/ronin/support/crypto/key/rsa.rb +169 -0
- data/lib/ronin/support/crypto/key.rb +105 -0
- data/lib/ronin/support/crypto/mixin.rb +620 -0
- data/lib/ronin/{network/extensions/http/net.rb → support/crypto/openssl.rb} +9 -10
- data/lib/ronin/support/crypto.rb +779 -0
- data/lib/ronin/support/encoding/base16/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base16/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base16.rb +82 -0
- data/lib/ronin/support/encoding/base32/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/base32/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base32.rb +164 -0
- data/lib/ronin/support/encoding/base64/core_ext/string.rb +76 -0
- data/lib/ronin/support/encoding/base64/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/base64.rb +78 -0
- data/lib/ronin/support/encoding/c/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/c/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/c/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/c.rb +277 -0
- data/lib/ronin/support/encoding/core_ext/string.rb +107 -0
- data/lib/ronin/support/encoding/core_ext.rb +33 -0
- data/lib/ronin/support/encoding/hex/core_ext/integer.rb +82 -0
- data/lib/ronin/support/encoding/hex/core_ext/string.rb +133 -0
- data/lib/ronin/support/encoding/hex/core_ext.rb +22 -0
- data/lib/ronin/support/encoding/hex.rb +248 -0
- data/lib/ronin/support/encoding/html/core_ext/integer.rb +106 -0
- data/lib/ronin/support/encoding/html/core_ext/string.rb +130 -0
- data/lib/ronin/support/encoding/html/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/html.rb +233 -0
- data/lib/ronin/support/encoding/http/core_ext/integer.rb +95 -0
- data/lib/ronin/support/encoding/http/core_ext/string.rb +129 -0
- data/lib/ronin/support/encoding/http/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/http.rb +241 -0
- data/lib/ronin/support/encoding/js/core_ext/integer.rb +67 -0
- data/lib/ronin/support/encoding/js/core_ext/string.rb +125 -0
- data/lib/ronin/support/encoding/js/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/js.rb +279 -0
- data/lib/ronin/support/encoding/powershell/core_ext/integer.rb +87 -0
- data/lib/ronin/support/encoding/powershell/core_ext/string.rb +145 -0
- data/lib/ronin/support/encoding/powershell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/powershell.rb +297 -0
- data/lib/ronin/support/encoding/punycode/core_ext/string.rb +63 -0
- data/lib/ronin/support/encoding/punycode/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/punycode.rb +76 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext/string.rb +75 -0
- data/lib/ronin/support/encoding/quoted_printable/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/quoted_printable.rb +102 -0
- data/lib/ronin/support/encoding/ruby/core_ext/string.rb +129 -0
- data/lib/ronin/{formatting/binary.rb → support/encoding/ruby/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/ruby.rb +235 -0
- data/lib/ronin/support/encoding/shell/core_ext/integer.rb +89 -0
- data/lib/ronin/support/encoding/shell/core_ext/string.rb +134 -0
- data/lib/ronin/support/encoding/shell/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/shell.rb +293 -0
- data/lib/ronin/{network/extensions → support/encoding}/smtp.rb +7 -7
- data/lib/ronin/support/encoding/sql/core_ext/string.rb +114 -0
- data/lib/ronin/{formatting/http.rb → support/encoding/sql/core_ext.rb} +6 -7
- data/lib/ronin/support/encoding/sql.rb +124 -0
- data/lib/ronin/support/encoding/uri/core_ext/integer.rb +149 -0
- data/lib/ronin/support/encoding/uri/core_ext/string.rb +195 -0
- data/lib/ronin/support/encoding/uri/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/uri.rb +424 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext/string.rb +73 -0
- data/lib/ronin/support/encoding/uuencoding/core_ext.rb +19 -0
- data/lib/ronin/support/encoding/uuencoding.rb +70 -0
- data/lib/ronin/support/encoding/xml/core_ext/integer.rb +100 -0
- data/lib/ronin/support/encoding/xml/core_ext/string.rb +124 -0
- data/lib/ronin/support/encoding/xml/core_ext.rb +20 -0
- data/lib/ronin/support/encoding/xml.rb +328 -0
- data/lib/ronin/support/encoding.rb +46 -0
- data/lib/ronin/support/home.rb +88 -0
- data/lib/ronin/support/mixin.rb +42 -0
- data/lib/ronin/support/network/asn/dns_record.rb +112 -0
- data/lib/ronin/support/network/asn/list.rb +269 -0
- data/lib/ronin/support/network/asn/record.rb +164 -0
- data/lib/ronin/support/network/asn/record_set.rb +226 -0
- data/lib/ronin/support/network/asn.rb +88 -0
- data/lib/ronin/{binary/hexdump.rb → support/network/core_ext.rb} +6 -7
- data/lib/ronin/support/network/dns/idn.rb +38 -0
- data/lib/ronin/support/network/dns/mixin.rb +941 -0
- data/lib/ronin/support/network/dns/resolver.rb +707 -0
- data/lib/ronin/support/network/dns.rb +1109 -0
- data/lib/ronin/support/network/domain.rb +70 -0
- data/lib/ronin/support/network/email_address.rb +574 -0
- data/lib/ronin/support/network/esmtp/mixin.rb +115 -0
- data/lib/ronin/support/network/exceptions.rb +43 -0
- data/lib/ronin/support/network/ftp/mixin.rb +106 -0
- data/lib/ronin/support/network/host.rb +1473 -0
- data/lib/ronin/support/network/http/cookie.rb +245 -0
- data/lib/ronin/support/network/http/core_ext/uri/http.rb +63 -0
- data/lib/ronin/support/network/http/core_ext.rb +19 -0
- data/lib/ronin/support/network/http/mixin.rb +890 -0
- data/lib/ronin/support/network/http/request.rb +215 -0
- data/lib/ronin/support/network/http/set_cookie.rb +210 -0
- data/lib/ronin/support/network/http/user_agents.rb +115 -0
- data/lib/ronin/support/network/http.rb +2582 -0
- data/lib/ronin/support/network/imap/mixin.rb +133 -0
- data/lib/ronin/support/network/ip/mixin.rb +114 -0
- data/lib/ronin/support/network/ip.rb +540 -0
- data/lib/ronin/support/network/ip_range/cidr.rb +252 -0
- data/lib/ronin/support/network/ip_range/glob.rb +309 -0
- data/lib/ronin/support/network/ip_range/range.rb +249 -0
- data/lib/ronin/support/network/ip_range.rb +284 -0
- data/lib/ronin/support/network/mixin.rb +58 -0
- data/lib/ronin/support/network/packet.rb +27 -0
- data/lib/ronin/support/network/pop3/mixin.rb +113 -0
- data/lib/ronin/support/network/proxy.rb +602 -0
- data/lib/ronin/support/network/public_suffix/list.rb +339 -0
- data/lib/ronin/support/network/public_suffix/suffix.rb +118 -0
- data/lib/ronin/support/network/public_suffix/suffix_set.rb +150 -0
- data/lib/ronin/support/network/public_suffix.rb +41 -0
- data/lib/ronin/support/network/smtp/email.rb +190 -0
- data/lib/ronin/support/network/smtp/mixin.rb +290 -0
- data/lib/ronin/{extensions/meta.rb → support/network/smtp.rb} +6 -7
- data/lib/ronin/support/network/ssl/local_cert.rb +114 -0
- data/lib/ronin/support/network/ssl/local_key.rb +84 -0
- data/lib/ronin/support/network/ssl/mixin.rb +740 -0
- data/lib/ronin/{network/extensions/imap/net.rb → support/network/ssl/openssl.rb} +9 -10
- data/lib/ronin/support/network/ssl/proxy.rb +296 -0
- data/lib/ronin/support/network/ssl.rb +173 -0
- data/lib/ronin/support/network/tcp/mixin.rb +400 -0
- data/lib/ronin/support/network/tcp/proxy.rb +435 -0
- data/lib/ronin/support/network/tcp.rb +443 -0
- data/lib/ronin/support/network/telnet/mixin.rb +150 -0
- data/lib/ronin/support/network/telnet.rb +90 -0
- data/lib/ronin/support/network/tld/list.rb +266 -0
- data/lib/ronin/support/network/tld.rb +41 -0
- data/lib/ronin/support/network/tls/mixin.rb +670 -0
- data/lib/ronin/support/network/tls/proxy.rb +135 -0
- data/lib/ronin/support/network/tls.rb +53 -0
- data/lib/ronin/support/network/udp/mixin.rb +389 -0
- data/lib/ronin/support/network/udp/proxy.rb +192 -0
- data/lib/ronin/support/network/udp.rb +435 -0
- data/lib/ronin/support/network/unix/mixin.rb +273 -0
- data/lib/ronin/support/network.rb +37 -0
- data/lib/ronin/support/path.rb +136 -0
- data/lib/ronin/{network/extensions/dns/net.rb → support/text/core_ext/regexp.rb} +8 -9
- data/lib/ronin/support/text/core_ext/string.rb +46 -0
- data/lib/ronin/support/text/core_ext.rb +23 -0
- data/lib/ronin/support/text/entropy/core_ext/string.rb +45 -0
- data/lib/ronin/support/text/entropy/core_ext.rb +19 -0
- data/lib/ronin/support/text/entropy.rb +66 -0
- data/lib/ronin/support/text/erb/mixin.rb +44 -0
- data/lib/ronin/support/text/erb.rb +19 -0
- data/lib/ronin/support/text/homoglyph/core_ext/string.rb +108 -0
- data/lib/ronin/{formatting/digest.rb → support/text/homoglyph/core_ext.rb} +6 -7
- data/lib/ronin/{network/http/exceptions/unknown_request.rb → support/text/homoglyph/exceptions.rb} +10 -9
- data/lib/ronin/support/text/homoglyph/table.rb +228 -0
- data/lib/ronin/support/text/homoglyph.rb +142 -0
- data/lib/ronin/support/text/mixin.rb +31 -0
- data/lib/ronin/support/text/patterns/credentials.rb +75 -0
- data/lib/ronin/support/text/patterns/crypto.rb +67 -0
- data/lib/ronin/support/text/patterns/file_system.rb +93 -0
- data/lib/ronin/support/text/patterns/language.rb +37 -0
- data/lib/ronin/support/text/patterns/network/public_suffix.rb +44 -0
- data/lib/ronin/support/text/patterns/network.rb +140 -0
- data/lib/ronin/support/text/patterns/numeric.rb +52 -0
- data/lib/ronin/support/text/patterns/pii.rb +105 -0
- data/lib/ronin/support/text/patterns/source_code.rb +148 -0
- data/lib/ronin/support/text/patterns.rb +25 -0
- data/lib/ronin/support/text/random/mixin.rb +437 -0
- data/lib/ronin/support/text/random.rb +419 -0
- data/lib/ronin/support/text/typo/core_ext/string.rb +123 -0
- data/lib/ronin/support/text/typo/core_ext.rb +19 -0
- data/lib/ronin/support/text/typo/exceptions.rb +28 -0
- data/lib/ronin/support/text/typo/generator.rb +161 -0
- data/lib/ronin/support/text/typo.rb +260 -0
- data/lib/ronin/support/text.rb +26 -0
- data/lib/ronin/support/version.rb +6 -7
- data/lib/ronin/support.rb +20 -15
- data/ronin-support.gemspec +3 -1
- metadata +462 -369
- data/.gemtest +0 -0
- data/lib/ronin/binary/hexdump/parser.rb +0 -403
- data/lib/ronin/binary/struct.rb +0 -567
- data/lib/ronin/binary/template.rb +0 -454
- data/lib/ronin/extensions/ip_addr.rb +0 -217
- data/lib/ronin/extensions/meta/object.rb +0 -24
- data/lib/ronin/extensions/regexp.rb +0 -157
- data/lib/ronin/extensions.rb +0 -29
- data/lib/ronin/formatting/extensions/binary/array.rb +0 -61
- data/lib/ronin/formatting/extensions/binary/base64.rb +0 -106
- data/lib/ronin/formatting/extensions/binary/file.rb +0 -77
- data/lib/ronin/formatting/extensions/binary/float.rb +0 -65
- data/lib/ronin/formatting/extensions/binary/integer.rb +0 -180
- data/lib/ronin/formatting/extensions/binary/string.rb +0 -345
- data/lib/ronin/formatting/extensions/binary.rb +0 -26
- data/lib/ronin/formatting/extensions/digest/file.rb +0 -129
- data/lib/ronin/formatting/extensions/digest/string.rb +0 -86
- data/lib/ronin/formatting/extensions/digest.rb +0 -21
- data/lib/ronin/formatting/extensions/html/integer.rb +0 -142
- data/lib/ronin/formatting/extensions/html/string.rb +0 -194
- data/lib/ronin/formatting/extensions/html.rb +0 -21
- data/lib/ronin/formatting/extensions/http/integer.rb +0 -69
- data/lib/ronin/formatting/extensions/http/string.rb +0 -110
- data/lib/ronin/formatting/extensions/http.rb +0 -21
- data/lib/ronin/formatting/extensions/sql/string.rb +0 -128
- data/lib/ronin/formatting/extensions/sql.rb +0 -20
- data/lib/ronin/formatting/extensions/text/array.rb +0 -137
- data/lib/ronin/formatting/extensions/text/string.rb +0 -297
- data/lib/ronin/formatting/extensions.rb +0 -24
- data/lib/ronin/formatting/text.rb +0 -20
- data/lib/ronin/formatting.rb +0 -25
- data/lib/ronin/fuzzing/extensions/string.rb +0 -209
- data/lib/ronin/fuzzing/fuzzer.rb +0 -110
- data/lib/ronin/fuzzing/fuzzing.rb +0 -360
- data/lib/ronin/fuzzing/mutator.rb +0 -161
- data/lib/ronin/fuzzing/repeater.rb +0 -81
- data/lib/ronin/fuzzing/template.rb +0 -133
- data/lib/ronin/fuzzing.rb +0 -21
- data/lib/ronin/mixin.rb +0 -89
- data/lib/ronin/network/dns.rb +0 -201
- data/lib/ronin/network/esmtp.rb +0 -113
- data/lib/ronin/network/extensions/dns.rb +0 -20
- data/lib/ronin/network/extensions/esmtp.rb +0 -20
- data/lib/ronin/network/extensions/http/uri/http.rb +0 -228
- data/lib/ronin/network/extensions/http.rb +0 -21
- data/lib/ronin/network/extensions/imap.rb +0 -20
- data/lib/ronin/network/extensions/pop3/net.rb +0 -24
- data/lib/ronin/network/extensions/pop3.rb +0 -20
- data/lib/ronin/network/extensions/smtp/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl/net.rb +0 -24
- data/lib/ronin/network/extensions/ssl.rb +0 -20
- data/lib/ronin/network/extensions/tcp/net.rb +0 -24
- data/lib/ronin/network/extensions/tcp.rb +0 -20
- data/lib/ronin/network/extensions/telnet/net.rb +0 -24
- data/lib/ronin/network/extensions/telnet.rb +0 -20
- data/lib/ronin/network/extensions/udp/net.rb +0 -24
- data/lib/ronin/network/extensions/udp.rb +0 -20
- data/lib/ronin/network/extensions.rb +0 -29
- data/lib/ronin/network/ftp.rb +0 -149
- data/lib/ronin/network/http/exceptions.rb +0 -20
- data/lib/ronin/network/http/http.rb +0 -1127
- data/lib/ronin/network/http/proxy.rb +0 -330
- data/lib/ronin/network/http.rb +0 -22
- data/lib/ronin/network/imap.rb +0 -158
- data/lib/ronin/network/mixins/dns.rb +0 -55
- data/lib/ronin/network/mixins/esmtp.rb +0 -164
- data/lib/ronin/network/mixins/ftp.rb +0 -155
- data/lib/ronin/network/mixins/http.rb +0 -227
- data/lib/ronin/network/mixins/imap.rb +0 -156
- data/lib/ronin/network/mixins/mixin.rb +0 -58
- data/lib/ronin/network/mixins/pop3.rb +0 -149
- data/lib/ronin/network/mixins/smtp.rb +0 -159
- data/lib/ronin/network/mixins/ssl.rb +0 -148
- data/lib/ronin/network/mixins/tcp.rb +0 -368
- data/lib/ronin/network/mixins/telnet.rb +0 -208
- data/lib/ronin/network/mixins/udp.rb +0 -381
- data/lib/ronin/network/mixins/unix.rb +0 -279
- data/lib/ronin/network/mixins.rb +0 -29
- data/lib/ronin/network/network.rb +0 -45
- data/lib/ronin/network/pop3.rb +0 -124
- data/lib/ronin/network/proxy.rb +0 -578
- data/lib/ronin/network/smtp/email.rb +0 -174
- data/lib/ronin/network/smtp/smtp.rb +0 -230
- data/lib/ronin/network/smtp.rb +0 -22
- data/lib/ronin/network/ssl.rb +0 -186
- data/lib/ronin/network/tcp/proxy.rb +0 -417
- data/lib/ronin/network/tcp/tcp.rb +0 -443
- data/lib/ronin/network/tcp.rb +0 -21
- data/lib/ronin/network/telnet.rb +0 -264
- data/lib/ronin/network/udp/proxy.rb +0 -191
- data/lib/ronin/network/udp/udp.rb +0 -450
- data/lib/ronin/network/udp.rb +0 -21
- data/lib/ronin/network/unix.rb +0 -286
- data/lib/ronin/network.rb +0 -31
- data/lib/ronin/path.rb +0 -137
- data/lib/ronin/spec/ui/output.rb +0 -22
- data/lib/ronin/support/inflector.rb +0 -92
- data/lib/ronin/support/support.rb +0 -42
- data/lib/ronin/templates/erb.rb +0 -78
- data/lib/ronin/templates/template.rb +0 -169
- data/lib/ronin/templates.rb +0 -21
- data/lib/ronin/ui/output/helpers.rb +0 -296
- data/lib/ronin/ui/output/output.rb +0 -146
- data/lib/ronin/ui/output/terminal/color.rb +0 -124
- data/lib/ronin/ui/output/terminal/raw.rb +0 -103
- data/lib/ronin/ui/output/terminal.rb +0 -21
- data/lib/ronin/ui/output.rb +0 -21
- data/lib/ronin/ui/shell.rb +0 -286
- data/lib/ronin/wordlist.rb +0 -287
- data/spec/binary/hexdump/helpers/hexdumps/ascii.bin +0 -0
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/hexdump_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_decimal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_doubles.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_floats.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_hex_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_named_chars.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_bytes.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_ints.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_quads.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_octal_shorts.txt +0 -17
- data/spec/binary/hexdump/helpers/hexdumps/od_repeated.txt +0 -6
- data/spec/binary/hexdump/helpers/hexdumps/repeated.bin +0 -1
- data/spec/binary/hexdump/helpers/hexdumps.rb +0 -13
- data/spec/binary/hexdump/parser_spec.rb +0 -302
- data/spec/binary/struct_spec.rb +0 -496
- data/spec/binary/template_spec.rb +0 -414
- data/spec/extensions/enumerable_spec.rb +0 -24
- data/spec/extensions/file_spec.rb +0 -63
- data/spec/extensions/ip_addr_spec.rb +0 -203
- data/spec/extensions/kernel_spec.rb +0 -30
- data/spec/extensions/regexp_spec.rb +0 -482
- data/spec/extensions/resolv_spec.rb +0 -18
- data/spec/extensions/string_spec.rb +0 -179
- data/spec/formatting/binary/array_spec.rb +0 -26
- data/spec/formatting/binary/base64_spec.rb +0 -50
- data/spec/formatting/binary/float_spec.rb +0 -34
- data/spec/formatting/binary/integer_spec.rb +0 -166
- data/spec/formatting/binary/string_spec.rb +0 -197
- data/spec/formatting/digest/string_spec.rb +0 -82
- data/spec/formatting/html/integer_spec.rb +0 -66
- data/spec/formatting/html/string_spec.rb +0 -103
- data/spec/formatting/http/integer_spec.rb +0 -42
- data/spec/formatting/http/string_spec.rb +0 -76
- data/spec/formatting/sql/string_spec.rb +0 -75
- data/spec/formatting/text/array_spec.rb +0 -105
- data/spec/formatting/text/string_spec.rb +0 -162
- data/spec/fuzzing/extensions/string_spec.rb +0 -87
- data/spec/fuzzing/fuzzer_spec.rb +0 -109
- data/spec/fuzzing/fuzzing_spec.rb +0 -24
- data/spec/fuzzing/mutator_spec.rb +0 -112
- data/spec/fuzzing/repeater_spec.rb +0 -57
- data/spec/fuzzing/template_spec.rb +0 -54
- data/spec/mixin_spec.rb +0 -53
- data/spec/network/dns_spec.rb +0 -201
- data/spec/network/ftp_spec.rb +0 -81
- data/spec/network/http/http_spec.rb +0 -466
- data/spec/network/http/proxy_spec.rb +0 -148
- data/spec/network/network_spec.rb +0 -8
- data/spec/network/proxy_spec.rb +0 -121
- data/spec/network/shared/unix_server.rb +0 -31
- data/spec/network/smtp/email_spec.rb +0 -100
- data/spec/network/ssl_spec.rb +0 -70
- data/spec/network/tcp/proxy_spec.rb +0 -116
- data/spec/network/tcp/tcp_spec.rb +0 -273
- data/spec/network/telnet_spec.rb +0 -67
- data/spec/network/udp/udp_spec.rb +0 -271
- data/spec/network/unix_spec.rb +0 -183
- data/spec/path_spec.rb +0 -86
- data/spec/spec_helper.rb +0 -9
- data/spec/support/inflector_spec.rb +0 -22
- data/spec/support_spec.rb +0 -8
- data/spec/templates/classes/example_erb.rb +0 -11
- data/spec/templates/classes/example_template.rb +0 -35
- data/spec/templates/erb_spec.rb +0 -21
- data/spec/templates/helpers/data/includes/_relative.erb +0 -1
- data/spec/templates/helpers/data/templates/example.erb +0 -1
- data/spec/templates/helpers/data.rb +0 -9
- data/spec/templates/template_spec.rb +0 -54
- data/spec/ui/classes/test_shell.rb +0 -22
- data/spec/ui/output_spec.rb +0 -32
- data/spec/ui/shell_spec.rb +0 -83
- data/spec/wordlist_spec.rb +0 -151
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
module Ronin
|
|
21
|
-
module UI
|
|
22
|
-
module Output
|
|
23
|
-
module Terminal
|
|
24
|
-
#
|
|
25
|
-
# The handler for color output to the terminal.
|
|
26
|
-
#
|
|
27
|
-
class Color
|
|
28
|
-
|
|
29
|
-
# ANSI Green code
|
|
30
|
-
GREEN = "\e[32m"
|
|
31
|
-
|
|
32
|
-
# ANSI Cyan code
|
|
33
|
-
CYAN = "\e[36m"
|
|
34
|
-
|
|
35
|
-
# ANSI Yellow code
|
|
36
|
-
YELLOW = "\e[33m"
|
|
37
|
-
|
|
38
|
-
# ANSI Red code
|
|
39
|
-
RED = "\e[31m"
|
|
40
|
-
|
|
41
|
-
# ANSI Bright code
|
|
42
|
-
BRIGHT = "\e[1m"
|
|
43
|
-
|
|
44
|
-
# ANSI Bright-Off code
|
|
45
|
-
BRIGHT_OFF = "\e[21m"
|
|
46
|
-
|
|
47
|
-
# ANSI Clear code
|
|
48
|
-
CLEAR = "\e[0m"
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
# Writes data to `STDOUT`.
|
|
52
|
-
#
|
|
53
|
-
# @param [String] data
|
|
54
|
-
# The data to write.
|
|
55
|
-
#
|
|
56
|
-
# @since 1.0.0
|
|
57
|
-
#
|
|
58
|
-
# @api private
|
|
59
|
-
#
|
|
60
|
-
def self.write(data)
|
|
61
|
-
$stdout.write(data)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
# Prints an `info` message.
|
|
66
|
-
#
|
|
67
|
-
# @param [String] message
|
|
68
|
-
# The message to print.
|
|
69
|
-
#
|
|
70
|
-
# @since 1.0.0
|
|
71
|
-
#
|
|
72
|
-
# @api private
|
|
73
|
-
#
|
|
74
|
-
def self.print_info(message)
|
|
75
|
-
$stdout.puts "#{GREEN}#{BRIGHT}[-]#{BRIGHT_OFF} #{message}#{CLEAR}"
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
#
|
|
79
|
-
# Prints a `debug` message.
|
|
80
|
-
#
|
|
81
|
-
# @param [String] message
|
|
82
|
-
# The message to print.
|
|
83
|
-
#
|
|
84
|
-
# @since 1.0.0
|
|
85
|
-
#
|
|
86
|
-
# @api private
|
|
87
|
-
#
|
|
88
|
-
def self.print_debug(message)
|
|
89
|
-
$stdout.puts "#{CYAN}#{BRIGHT}[=]#{BRIGHT_OFF} #{message}#{CLEAR}"
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
#
|
|
93
|
-
# Prints a `warning` message.
|
|
94
|
-
#
|
|
95
|
-
# @param [String] message
|
|
96
|
-
# The message to print.
|
|
97
|
-
#
|
|
98
|
-
# @since 1.0.0
|
|
99
|
-
#
|
|
100
|
-
# @api private
|
|
101
|
-
#
|
|
102
|
-
def self.print_warning(message)
|
|
103
|
-
$stdout.puts "#{YELLOW}#{BRIGHT}[*]#{BRIGHT_OFF} #{message}#{CLEAR}"
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
#
|
|
107
|
-
# Prints an `error` message.
|
|
108
|
-
#
|
|
109
|
-
# @param [String] message
|
|
110
|
-
# The message to print.
|
|
111
|
-
#
|
|
112
|
-
# @since 1.0.0
|
|
113
|
-
#
|
|
114
|
-
# @api private
|
|
115
|
-
#
|
|
116
|
-
def self.print_error(message)
|
|
117
|
-
$stdout.puts "#{RED}#{BRIGHT}[!]#{BRIGHT_OFF} #{message}#{CLEAR}"
|
|
118
|
-
end
|
|
119
|
-
|
|
120
|
-
end
|
|
121
|
-
end
|
|
122
|
-
end
|
|
123
|
-
end
|
|
124
|
-
end
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
module Ronin
|
|
21
|
-
module UI
|
|
22
|
-
module Output
|
|
23
|
-
module Terminal
|
|
24
|
-
#
|
|
25
|
-
# The handler for raw output to the terminal.
|
|
26
|
-
#
|
|
27
|
-
class Raw
|
|
28
|
-
|
|
29
|
-
#
|
|
30
|
-
# Writes data to `STDOUT`.
|
|
31
|
-
#
|
|
32
|
-
# @param [String] data
|
|
33
|
-
# The data to write.
|
|
34
|
-
#
|
|
35
|
-
# @since 1.0.0
|
|
36
|
-
#
|
|
37
|
-
# @api private
|
|
38
|
-
#
|
|
39
|
-
def self.write(data)
|
|
40
|
-
$stdout.write(data)
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
#
|
|
44
|
-
# Prints an `info` message.
|
|
45
|
-
#
|
|
46
|
-
# @param [String] message
|
|
47
|
-
# The message to print.
|
|
48
|
-
#
|
|
49
|
-
# @since 1.0.0
|
|
50
|
-
#
|
|
51
|
-
# @api private
|
|
52
|
-
#
|
|
53
|
-
def self.print_info(message)
|
|
54
|
-
$stdout.puts "[-] #{message}"
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
#
|
|
58
|
-
# Prints a `debug` message.
|
|
59
|
-
#
|
|
60
|
-
# @param [String] message
|
|
61
|
-
# The message to print.
|
|
62
|
-
#
|
|
63
|
-
# @since 1.0.0
|
|
64
|
-
#
|
|
65
|
-
# @api private
|
|
66
|
-
#
|
|
67
|
-
def self.print_debug(message)
|
|
68
|
-
$stdout.puts "[=] #{message}"
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
# Prints a `warning` message.
|
|
73
|
-
#
|
|
74
|
-
# @param [String] message
|
|
75
|
-
# The message to print.
|
|
76
|
-
#
|
|
77
|
-
# @since 1.0.0
|
|
78
|
-
#
|
|
79
|
-
# @api private
|
|
80
|
-
#
|
|
81
|
-
def self.print_warning(message)
|
|
82
|
-
$stdout.puts "[*] #{message}"
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
#
|
|
86
|
-
# Prints an `error` messages.
|
|
87
|
-
#
|
|
88
|
-
# @param [String] message
|
|
89
|
-
# The message to print.
|
|
90
|
-
#
|
|
91
|
-
# @since 1.0.0
|
|
92
|
-
#
|
|
93
|
-
# @api private
|
|
94
|
-
#
|
|
95
|
-
def self.print_error(message)
|
|
96
|
-
$stdout.puts "[!] #{message}"
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/ui/output/terminal/raw'
|
|
21
|
-
require 'ronin/ui/output/terminal/color'
|
data/lib/ronin/ui/output.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/ui/output/output'
|
|
21
|
-
require 'ronin/ui/output/helpers'
|
data/lib/ronin/ui/shell.rb
DELETED
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/ui/output/helpers'
|
|
21
|
-
|
|
22
|
-
require 'set'
|
|
23
|
-
|
|
24
|
-
module Ronin
|
|
25
|
-
module UI
|
|
26
|
-
#
|
|
27
|
-
# Spawns a ReadLine powered interactive Shell.
|
|
28
|
-
#
|
|
29
|
-
# ## Simple Shell
|
|
30
|
-
#
|
|
31
|
-
# require 'ronin/ui/shell'
|
|
32
|
-
# require 'ronin/network/tcp'
|
|
33
|
-
#
|
|
34
|
-
# include Ronin::Network::TCP
|
|
35
|
-
#
|
|
36
|
-
# tcp_session('victim.com',1337) do |socket|
|
|
37
|
-
# UI::Shell.new(:name => 'bind_shell') do |shell,line|
|
|
38
|
-
# socket.puts "#{line}; echo 'EOC'"
|
|
39
|
-
#
|
|
40
|
-
# socket.each_line do |output|
|
|
41
|
-
# puts output
|
|
42
|
-
#
|
|
43
|
-
# break if output.chomp == 'EOC'
|
|
44
|
-
# end
|
|
45
|
-
# end
|
|
46
|
-
# end
|
|
47
|
-
#
|
|
48
|
-
# ## Shell with Commands
|
|
49
|
-
#
|
|
50
|
-
# require 'ronin/ui/shell'
|
|
51
|
-
# require 'ronin/network/http'
|
|
52
|
-
#
|
|
53
|
-
# class HTTPShell < Ronin::UI::Shell
|
|
54
|
-
#
|
|
55
|
-
# include Ronin::Network::HTTP
|
|
56
|
-
#
|
|
57
|
-
# def initialize(host)
|
|
58
|
-
# super(:name => host)
|
|
59
|
-
#
|
|
60
|
-
# @host = host
|
|
61
|
-
# end
|
|
62
|
-
#
|
|
63
|
-
# protected
|
|
64
|
-
#
|
|
65
|
-
# def get(path)
|
|
66
|
-
# print_response http_get(:host => @host, :path => path)
|
|
67
|
-
# end
|
|
68
|
-
#
|
|
69
|
-
# def post(path,*params)
|
|
70
|
-
# print_response http_post(
|
|
71
|
-
# :host => @host,
|
|
72
|
-
# :path => path,
|
|
73
|
-
# :post_data => Hash[params.map { |param| param.split('=') }]
|
|
74
|
-
# )
|
|
75
|
-
# end
|
|
76
|
-
#
|
|
77
|
-
# private
|
|
78
|
-
#
|
|
79
|
-
# def print_response(response)
|
|
80
|
-
# response.canonical_each do |name,value|
|
|
81
|
-
# puts "#{name}: #{value}"
|
|
82
|
-
# end
|
|
83
|
-
#
|
|
84
|
-
# puts
|
|
85
|
-
#
|
|
86
|
-
# puts response.body
|
|
87
|
-
# end
|
|
88
|
-
#
|
|
89
|
-
# end
|
|
90
|
-
#
|
|
91
|
-
# @api semipublic
|
|
92
|
-
#
|
|
93
|
-
class Shell
|
|
94
|
-
|
|
95
|
-
include Output::Helpers
|
|
96
|
-
|
|
97
|
-
# Default shell prompt
|
|
98
|
-
DEFAULT_PROMPT = '>'
|
|
99
|
-
|
|
100
|
-
# The shell name
|
|
101
|
-
attr_accessor :name
|
|
102
|
-
|
|
103
|
-
# The shell prompt
|
|
104
|
-
attr_accessor :prompt
|
|
105
|
-
|
|
106
|
-
# The commands available for the shell
|
|
107
|
-
attr_reader :commands
|
|
108
|
-
|
|
109
|
-
#
|
|
110
|
-
# Creates a new shell.
|
|
111
|
-
#
|
|
112
|
-
# @param [Hash] options
|
|
113
|
-
# Additional options.
|
|
114
|
-
#
|
|
115
|
-
# @option options [String] :name ('')
|
|
116
|
-
# The shell-name to use before the prompt.
|
|
117
|
-
#
|
|
118
|
-
# @option options [String] :prompt (DEFAULT_PROMPT)
|
|
119
|
-
# The prompt to use for the shell.
|
|
120
|
-
#
|
|
121
|
-
# @yield [shell, line]
|
|
122
|
-
# The block that will be passed every command entered.
|
|
123
|
-
#
|
|
124
|
-
# @yieldparam [Shell] shell
|
|
125
|
-
# The shell to use for output.
|
|
126
|
-
#
|
|
127
|
-
# @yieldparam [String] line
|
|
128
|
-
# The command entered into the shell.
|
|
129
|
-
#
|
|
130
|
-
# @api semipublic
|
|
131
|
-
#
|
|
132
|
-
# @since 0.3.0
|
|
133
|
-
#
|
|
134
|
-
def initialize(options={},&block)
|
|
135
|
-
@name = options[:name]
|
|
136
|
-
@prompt = options.fetch(:prompt,DEFAULT_PROMPT)
|
|
137
|
-
|
|
138
|
-
@commands = Set['help', 'exit']
|
|
139
|
-
|
|
140
|
-
self.class.ancestors.each do |subclass|
|
|
141
|
-
if subclass < Shell
|
|
142
|
-
subclass.protected_instance_methods(false).each do |name|
|
|
143
|
-
@commands << name.to_s
|
|
144
|
-
end
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
@input_handler = block
|
|
150
|
-
end
|
|
151
|
-
|
|
152
|
-
#
|
|
153
|
-
# Creates a new Shell object and starts it.
|
|
154
|
-
#
|
|
155
|
-
# @param [Array] arguments
|
|
156
|
-
# Arguments for {#initialize}.
|
|
157
|
-
#
|
|
158
|
-
# @yield [shell, line]
|
|
159
|
-
# The block that will be passed every command entered.
|
|
160
|
-
#
|
|
161
|
-
# @yieldparam [Shell] shell
|
|
162
|
-
# The shell to use for output.
|
|
163
|
-
#
|
|
164
|
-
# @yieldparam [String] line
|
|
165
|
-
# The command entered into the shell.
|
|
166
|
-
#
|
|
167
|
-
# @return [nil]
|
|
168
|
-
#
|
|
169
|
-
# @example
|
|
170
|
-
# Shell.start(:prompt => '$') { |shell,line| system(line) }
|
|
171
|
-
#
|
|
172
|
-
def self.start(*arguments,&block)
|
|
173
|
-
new(*arguments,&block).start
|
|
174
|
-
end
|
|
175
|
-
|
|
176
|
-
#
|
|
177
|
-
# Starts the shell.
|
|
178
|
-
#
|
|
179
|
-
# @since 0.3.0
|
|
180
|
-
#
|
|
181
|
-
def start
|
|
182
|
-
history_rollback = 0
|
|
183
|
-
|
|
184
|
-
loop do
|
|
185
|
-
unless (raw_line = Readline.readline("#{name}#{prompt} "))
|
|
186
|
-
break # user exited the shell
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
line = raw_line.strip
|
|
190
|
-
|
|
191
|
-
if (line == 'exit' || line == 'quit')
|
|
192
|
-
exit
|
|
193
|
-
break
|
|
194
|
-
elsif !(line.empty?)
|
|
195
|
-
Readline::HISTORY << raw_line
|
|
196
|
-
history_rollback += 1
|
|
197
|
-
|
|
198
|
-
begin
|
|
199
|
-
call(line)
|
|
200
|
-
rescue => e
|
|
201
|
-
print_error "#{e.class.name}: #{e.message}"
|
|
202
|
-
end
|
|
203
|
-
end
|
|
204
|
-
end
|
|
205
|
-
|
|
206
|
-
history_rollback.times { Readline::HISTORY.pop }
|
|
207
|
-
return nil
|
|
208
|
-
end
|
|
209
|
-
|
|
210
|
-
#
|
|
211
|
-
# Handles input for the shell.
|
|
212
|
-
#
|
|
213
|
-
# @param [String] line
|
|
214
|
-
# A line of input received by the shell.
|
|
215
|
-
#
|
|
216
|
-
# @since 0.3.0
|
|
217
|
-
#
|
|
218
|
-
def call(line)
|
|
219
|
-
if @input_handler
|
|
220
|
-
@input_handler.call(self,line)
|
|
221
|
-
else
|
|
222
|
-
arguments = line.split(/\s+/)
|
|
223
|
-
command = arguments.shift
|
|
224
|
-
|
|
225
|
-
# ignore empty lines
|
|
226
|
-
return false unless command
|
|
227
|
-
|
|
228
|
-
# no explicitly calling handler
|
|
229
|
-
return false if command == 'handler'
|
|
230
|
-
|
|
231
|
-
unless @commands.include?(command)
|
|
232
|
-
print_error "Invalid command: #{command}"
|
|
233
|
-
return false
|
|
234
|
-
end
|
|
235
|
-
|
|
236
|
-
return send(command,*arguments)
|
|
237
|
-
end
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
alias << write
|
|
241
|
-
|
|
242
|
-
protected
|
|
243
|
-
|
|
244
|
-
#
|
|
245
|
-
# Method which is called before exiting the shell.
|
|
246
|
-
#
|
|
247
|
-
# @since 0.3.0
|
|
248
|
-
#
|
|
249
|
-
def exit
|
|
250
|
-
end
|
|
251
|
-
|
|
252
|
-
#
|
|
253
|
-
# @see #exit
|
|
254
|
-
#
|
|
255
|
-
# @since 0.3.0
|
|
256
|
-
#
|
|
257
|
-
def quit
|
|
258
|
-
exit
|
|
259
|
-
end
|
|
260
|
-
|
|
261
|
-
#
|
|
262
|
-
# Prints the available commands and their arguments.
|
|
263
|
-
#
|
|
264
|
-
# @since 0.3.0
|
|
265
|
-
#
|
|
266
|
-
def help
|
|
267
|
-
puts "Available commands:"
|
|
268
|
-
puts
|
|
269
|
-
|
|
270
|
-
@commands.sort.each do |name|
|
|
271
|
-
command_method = method(name)
|
|
272
|
-
arguments = command_method.parameters.map do |param|
|
|
273
|
-
case param[0]
|
|
274
|
-
when :opt then "[#{param[1]}]"
|
|
275
|
-
when :rest then "[#{param[1]} ...]"
|
|
276
|
-
else param[1]
|
|
277
|
-
end
|
|
278
|
-
end
|
|
279
|
-
|
|
280
|
-
puts " #{name} #{arguments.join(' ')}"
|
|
281
|
-
end
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
end
|
|
285
|
-
end
|
|
286
|
-
end
|