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,164 +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/network/mixins/mixin'
|
|
21
|
-
require 'ronin/network/esmtp'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
module Network
|
|
25
|
-
module Mixins
|
|
26
|
-
#
|
|
27
|
-
# Adds ESMTP convenience methods and connection parameters to a class.
|
|
28
|
-
#
|
|
29
|
-
# Defines the following parameters:
|
|
30
|
-
#
|
|
31
|
-
# * `host` (`String`) - ESMTP host.
|
|
32
|
-
# * `port` (`Integer`) - ESMTP port.
|
|
33
|
-
# * `esmtp_login` (`String`) - ESMTP authentication method to use.
|
|
34
|
-
# * `esmtp_user` (`String`) - ESMTP user to login as.
|
|
35
|
-
# * `esmtp_password` (`String`) - ESMTP password to login with.
|
|
36
|
-
#
|
|
37
|
-
module ESMTP
|
|
38
|
-
include Mixin, Network::ESMTP
|
|
39
|
-
|
|
40
|
-
# ESMTP host
|
|
41
|
-
parameter :host, :type => String,
|
|
42
|
-
:description => 'ESMTP host'
|
|
43
|
-
|
|
44
|
-
# ESMTP port
|
|
45
|
-
parameter :port, :type => Integer,
|
|
46
|
-
:description => 'ESMTP port'
|
|
47
|
-
|
|
48
|
-
# ESMTP authentication method to use
|
|
49
|
-
parameter :esmtp_login, :type => String,
|
|
50
|
-
:description => 'ESMTP authentication method to use'
|
|
51
|
-
|
|
52
|
-
# ESMTP user to login as
|
|
53
|
-
parameter :esmtp_user, :type => String,
|
|
54
|
-
:description => 'ESMTP user to login as'
|
|
55
|
-
|
|
56
|
-
# ESMTP password to login with
|
|
57
|
-
parameter :esmtp_password, :type => String,
|
|
58
|
-
:description => 'ESMTP password to login with'
|
|
59
|
-
|
|
60
|
-
protected
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
# Creates a connection to the ESMTP server. The `host`, `port`,
|
|
64
|
-
# `esmtp_login`, `esmtp_user` and `esmtp_password` parameters
|
|
65
|
-
# will also be used to connect to the ESMTP server.
|
|
66
|
-
#
|
|
67
|
-
# @param [Hash] options
|
|
68
|
-
# Additional options.
|
|
69
|
-
#
|
|
70
|
-
# @option options [Integer] :port (Ronin::Network::SMTP.default_port)
|
|
71
|
-
# The port to connect to.
|
|
72
|
-
#
|
|
73
|
-
# @option options [String] :helo
|
|
74
|
-
# The HELO domain.
|
|
75
|
-
#
|
|
76
|
-
# @option options [Symbol] :auth
|
|
77
|
-
# The type of authentication to use.
|
|
78
|
-
# Can be either `:login`, `:plain`, or `:cram_md5`.
|
|
79
|
-
#
|
|
80
|
-
# @option options [String] :user
|
|
81
|
-
# The user-name to authenticate with.
|
|
82
|
-
#
|
|
83
|
-
# @option options [String] :password
|
|
84
|
-
# The password to authenticate with.
|
|
85
|
-
#
|
|
86
|
-
# @yield [session]
|
|
87
|
-
# If a block is given, it will be passed an ESMTP enabled
|
|
88
|
-
# session object.
|
|
89
|
-
#
|
|
90
|
-
# @yieldparam [Net::SMTP] session
|
|
91
|
-
# The ESMTP session.
|
|
92
|
-
#
|
|
93
|
-
# @return [Net::SMTP]
|
|
94
|
-
# The ESMTP enabled session.
|
|
95
|
-
#
|
|
96
|
-
# @see Network::ESMTP#esmtp_connect
|
|
97
|
-
#
|
|
98
|
-
# @api public
|
|
99
|
-
#
|
|
100
|
-
def esmtp_connect(options={},&block)
|
|
101
|
-
print_info "Connecting to #{host_port} ..."
|
|
102
|
-
|
|
103
|
-
return super(self.host,esmtp_merge_options(options),&block)
|
|
104
|
-
end
|
|
105
|
-
|
|
106
|
-
#
|
|
107
|
-
# Starts a session with the ESMTP server. The `host`, `port`,
|
|
108
|
-
# `esmtp_login`, `esmtp_user` and `esmtp_password` parameters
|
|
109
|
-
# will also be used to connect to the ESMTP server.
|
|
110
|
-
#
|
|
111
|
-
# @param [Hash] options
|
|
112
|
-
# Additional options.
|
|
113
|
-
#
|
|
114
|
-
# @yield [session]
|
|
115
|
-
# If a block is given, it will be passed an ESMTP enabled
|
|
116
|
-
# session object. After the block has returned, the session
|
|
117
|
-
# will be closed.
|
|
118
|
-
#
|
|
119
|
-
# @yieldparam [Net::SMTP] session
|
|
120
|
-
# The ESMTP session.
|
|
121
|
-
#
|
|
122
|
-
# @see Network::ESMTP#esmtp_session
|
|
123
|
-
#
|
|
124
|
-
# @api public
|
|
125
|
-
#
|
|
126
|
-
def esmtp_session(options={})
|
|
127
|
-
super(esmtp_merge_options(options)) do |sess|
|
|
128
|
-
yield sess if block_given?
|
|
129
|
-
|
|
130
|
-
print_info "Logging out ..."
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
print_info "Disconnected from #{host_port}"
|
|
134
|
-
return nil
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
private
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
# Merges the ESMTP parameters into the options for {Network::ESMTP}
|
|
141
|
-
# methods.
|
|
142
|
-
#
|
|
143
|
-
# @param [Hash] options
|
|
144
|
-
# The original options.
|
|
145
|
-
#
|
|
146
|
-
# @return [Hash]
|
|
147
|
-
# The merged options.
|
|
148
|
-
#
|
|
149
|
-
# @since 0.4.0
|
|
150
|
-
#
|
|
151
|
-
# @api private
|
|
152
|
-
#
|
|
153
|
-
def esmtp_merge_options(options={})
|
|
154
|
-
options[:port] ||= self.port
|
|
155
|
-
options[:login] ||= self.esmtp_login
|
|
156
|
-
options[:user] ||= self.esmtp_user
|
|
157
|
-
options[:password] ||= self.esmtp_password
|
|
158
|
-
|
|
159
|
-
return options
|
|
160
|
-
end
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
end
|
|
@@ -1,155 +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/network/mixins/mixin'
|
|
21
|
-
require 'ronin/network/ftp'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
module Network
|
|
25
|
-
module Mixins
|
|
26
|
-
#
|
|
27
|
-
# Adds FTP convenience methods and connection parameters to a class.
|
|
28
|
-
#
|
|
29
|
-
# Defines the following parameters:
|
|
30
|
-
#
|
|
31
|
-
# * `host` (`String`) - FTP host.
|
|
32
|
-
# * `port` (`Integer`) - FTP port.
|
|
33
|
-
# * `ftp_user` (`String`) - FTP user to login as.
|
|
34
|
-
# * `ftp_password` (`String`) - FTP password to login with.
|
|
35
|
-
# * `ftp_account` (`String`) - FTP account information to send.
|
|
36
|
-
#
|
|
37
|
-
# @since 0.5.0
|
|
38
|
-
#
|
|
39
|
-
module FTP
|
|
40
|
-
include Mixin, Network::FTP
|
|
41
|
-
|
|
42
|
-
# FTP host
|
|
43
|
-
parameter :host, :type => String,
|
|
44
|
-
:description => 'FTP host'
|
|
45
|
-
|
|
46
|
-
# FTP port
|
|
47
|
-
parameter :port, :type => Integer,
|
|
48
|
-
:description => 'FTP port'
|
|
49
|
-
|
|
50
|
-
# FTP user to login as
|
|
51
|
-
parameter :ftp_user, :type => String,
|
|
52
|
-
:description => 'FTP user to login as'
|
|
53
|
-
|
|
54
|
-
# FTP password to login with
|
|
55
|
-
parameter :ftp_password, :type => String,
|
|
56
|
-
:description => 'FTP password to login with'
|
|
57
|
-
|
|
58
|
-
# FTP account information to send
|
|
59
|
-
parameter :ftp_password, :type => String,
|
|
60
|
-
:description => 'FTP account information'
|
|
61
|
-
|
|
62
|
-
protected
|
|
63
|
-
|
|
64
|
-
#
|
|
65
|
-
# Creates a connection to the FTP server. The `host`, `port`,
|
|
66
|
-
# `ftp_user`, `ftp_password` and `ftp_account` parameters
|
|
67
|
-
# will also be used to connect to the server.
|
|
68
|
-
#
|
|
69
|
-
# @param [Hash] options
|
|
70
|
-
# Additional options.
|
|
71
|
-
#
|
|
72
|
-
# @option options [Integer] :port (Network::FTP.default_port)
|
|
73
|
-
# The port to connect to.
|
|
74
|
-
#
|
|
75
|
-
# @option options [String] :user
|
|
76
|
-
# The username to authenticate with.
|
|
77
|
-
#
|
|
78
|
-
# @option options [String] :password
|
|
79
|
-
# The password to authenticate with.
|
|
80
|
-
#
|
|
81
|
-
# @option options [String] :account
|
|
82
|
-
# The account information to send via the FTP `ACCT` command.
|
|
83
|
-
#
|
|
84
|
-
# @yield [session]
|
|
85
|
-
# If a block is given, it will be passed an FTP session object.
|
|
86
|
-
#
|
|
87
|
-
# @yieldparam [Net::FTP] session
|
|
88
|
-
# The FTP session.
|
|
89
|
-
#
|
|
90
|
-
# @return [Net::FTP]
|
|
91
|
-
# The FTP session.
|
|
92
|
-
#
|
|
93
|
-
# @see Network::FTP#ftp_connect
|
|
94
|
-
#
|
|
95
|
-
# @api public
|
|
96
|
-
#
|
|
97
|
-
def ftp_connect(options={},&block)
|
|
98
|
-
print_info "Connecting to #{host_port} ..."
|
|
99
|
-
|
|
100
|
-
return super(self.host,ftp_merge_options(options),&block)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
#
|
|
104
|
-
# Starts a session with the FTP server. The `host`, `port`,
|
|
105
|
-
# `ftp_login`, `ftp_user` and `ftp_password` parameters
|
|
106
|
-
# will also be used to connect to the server.
|
|
107
|
-
#
|
|
108
|
-
# @yield [session]
|
|
109
|
-
# If a block is given, it will be passed an FTP session object.
|
|
110
|
-
# After the block has returned, the session will be closed.
|
|
111
|
-
#
|
|
112
|
-
# @yieldparam [Net::FTP] session
|
|
113
|
-
# The FTP session.
|
|
114
|
-
#
|
|
115
|
-
# @see Network::FTP#ftp_session
|
|
116
|
-
#
|
|
117
|
-
# @api public
|
|
118
|
-
#
|
|
119
|
-
def ftp_session(options={},&block)
|
|
120
|
-
super(ftp_merge_options(options)) do |sess|
|
|
121
|
-
yield sess if block_given?
|
|
122
|
-
|
|
123
|
-
print_info "Logging out ..."
|
|
124
|
-
end
|
|
125
|
-
|
|
126
|
-
print_info "Disconnected to #{host_port}"
|
|
127
|
-
return nil
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
private
|
|
131
|
-
|
|
132
|
-
#
|
|
133
|
-
# Merges the FTP parameters into the options for {Network::FTP}
|
|
134
|
-
# methods.
|
|
135
|
-
#
|
|
136
|
-
# @param [Hash] options
|
|
137
|
-
# The original options.
|
|
138
|
-
#
|
|
139
|
-
# @return [Hash]
|
|
140
|
-
# The merged options.
|
|
141
|
-
#
|
|
142
|
-
# @api private
|
|
143
|
-
#
|
|
144
|
-
def ftp_merge_options(options={})
|
|
145
|
-
options[:port] ||= self.port
|
|
146
|
-
options[:user] ||= self.ftp_user
|
|
147
|
-
options[:password] ||= self.ftp_password
|
|
148
|
-
options[:account] ||= self.ftp_account
|
|
149
|
-
|
|
150
|
-
return options
|
|
151
|
-
end
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
end
|
|
@@ -1,227 +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/network/mixins/mixin'
|
|
21
|
-
require 'ronin/network/http'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
module Network
|
|
25
|
-
module Mixins
|
|
26
|
-
#
|
|
27
|
-
# Adds HTTP convenience methods and connection parameters to a class.
|
|
28
|
-
#
|
|
29
|
-
# Defines the following parameters:
|
|
30
|
-
#
|
|
31
|
-
# * `host` (`String`) - HTTP host.
|
|
32
|
-
# * `port` (`Integer`) - HTTP port. Defaults to `Net::HTTP.default_port`.
|
|
33
|
-
# * `http_vhost` (`String`) - HTTP Host header to send.
|
|
34
|
-
# * `http_user` (`String`) - HTTP user to authenticate as.
|
|
35
|
-
# * `http_password` (`String`) - HTTP password to authenticate with.
|
|
36
|
-
# * `http_proxy` - HTTP proxy information.
|
|
37
|
-
# * `http_user_agent` (`String`) - HTTP User-Agent header to send.
|
|
38
|
-
#
|
|
39
|
-
module HTTP
|
|
40
|
-
include Mixin, Network::HTTP
|
|
41
|
-
|
|
42
|
-
# HTTP host
|
|
43
|
-
parameter :host, :type => String,
|
|
44
|
-
:description => 'HTTP host'
|
|
45
|
-
|
|
46
|
-
# HTTP port
|
|
47
|
-
parameter :port, :default => Net::HTTP.default_port,
|
|
48
|
-
:description => 'HTTP port'
|
|
49
|
-
|
|
50
|
-
# HTTP `Host` header to send
|
|
51
|
-
parameter :http_vhost, :type => String,
|
|
52
|
-
:description => 'HTTP Host header to send'
|
|
53
|
-
|
|
54
|
-
# HTTP user to authenticate as
|
|
55
|
-
parameter :http_user, :type => String,
|
|
56
|
-
:description => 'HTTP user to authenticate as'
|
|
57
|
-
|
|
58
|
-
# HTTP password to authenticate with
|
|
59
|
-
parameter :http_password, :type => String,
|
|
60
|
-
:description => 'HTTP password to authenticate with'
|
|
61
|
-
|
|
62
|
-
# HTTP proxy information
|
|
63
|
-
parameter :http_proxy, :description => 'HTTP proxy information'
|
|
64
|
-
|
|
65
|
-
# HTTP `User-Agent` header to send
|
|
66
|
-
parameter :http_user_agent, :type => String,
|
|
67
|
-
:description => 'HTTP User-Agent header to send'
|
|
68
|
-
|
|
69
|
-
protected
|
|
70
|
-
|
|
71
|
-
#
|
|
72
|
-
# Resets the HTTP proxy settings.
|
|
73
|
-
#
|
|
74
|
-
# @api public
|
|
75
|
-
#
|
|
76
|
-
def disable_http_proxy
|
|
77
|
-
@http_proxy = nil
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
#
|
|
81
|
-
# Starts a HTTP connection with the server.
|
|
82
|
-
#
|
|
83
|
-
# @param [Hash] options
|
|
84
|
-
# Additional options
|
|
85
|
-
#
|
|
86
|
-
# @option options [String, URI::HTTP] :url
|
|
87
|
-
# The full URL to request.
|
|
88
|
-
#
|
|
89
|
-
# @option options [String] :host
|
|
90
|
-
# The host the HTTP server is running on.
|
|
91
|
-
#
|
|
92
|
-
# @option options [Integer] :port (Net::HTTP.default_port)
|
|
93
|
-
# The port the HTTP server is listening on.
|
|
94
|
-
#
|
|
95
|
-
# @option options [String, Hash] :proxy (HTTP.proxy)
|
|
96
|
-
# A Hash of proxy settings to use when connecting to the HTTP server.
|
|
97
|
-
#
|
|
98
|
-
# @option options [String] :user
|
|
99
|
-
# The user to authenticate with when connecting to the HTTP server.
|
|
100
|
-
#
|
|
101
|
-
# @option options [String] :password
|
|
102
|
-
# The password to authenticate with when connecting to the HTTP
|
|
103
|
-
# server.
|
|
104
|
-
#
|
|
105
|
-
# @option options [Boolean, Hash] :ssl
|
|
106
|
-
# Enables SSL for the HTTP connection.
|
|
107
|
-
#
|
|
108
|
-
# @option :ssl [Symbol] :verify
|
|
109
|
-
# Specifies the SSL certificate verification mode.
|
|
110
|
-
#
|
|
111
|
-
# @yield [http]
|
|
112
|
-
# If a block is given, it will be passed the newly created HTTP
|
|
113
|
-
# session object.
|
|
114
|
-
#
|
|
115
|
-
# @yieldparam [Net::HTTP] http
|
|
116
|
-
# The newly created HTTP session.
|
|
117
|
-
#
|
|
118
|
-
# @return [Net::HTTP]
|
|
119
|
-
# The HTTP session object.
|
|
120
|
-
#
|
|
121
|
-
# @see Network::HTTP#http_connect
|
|
122
|
-
#
|
|
123
|
-
# @api public
|
|
124
|
-
#
|
|
125
|
-
# @since 0.5.0
|
|
126
|
-
#
|
|
127
|
-
def http_connect(options={},&block)
|
|
128
|
-
super(http_merge_options(options),&block)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
#
|
|
132
|
-
# Connects to the HTTP server and sends an HTTP Request.
|
|
133
|
-
#
|
|
134
|
-
# @param [Hash] options
|
|
135
|
-
# Additional options.
|
|
136
|
-
#
|
|
137
|
-
# @option options [Hash{String,Symbol => Object}] :headers
|
|
138
|
-
# The Hash of the HTTP headers to send with the request.
|
|
139
|
-
# May contain either Strings or Symbols, lower-case or
|
|
140
|
-
# camel-case keys.
|
|
141
|
-
#
|
|
142
|
-
# @yield [request, (options)]
|
|
143
|
-
# If a block is given, it will be passed the HTTP request object.
|
|
144
|
-
# If the block has an arity of 2, it will also be passed the
|
|
145
|
-
# expanded version of the given options.
|
|
146
|
-
#
|
|
147
|
-
# @yieldparam [Net::HTTP::Request] request
|
|
148
|
-
# The HTTP request object to use in the request.
|
|
149
|
-
#
|
|
150
|
-
# @yieldparam [Hash] options
|
|
151
|
-
# The expanded version of the given options.
|
|
152
|
-
#
|
|
153
|
-
# @return [Net::HTTP::Response]
|
|
154
|
-
# The response of the HTTP request.
|
|
155
|
-
#
|
|
156
|
-
# @see Network::HTTP#http_request
|
|
157
|
-
#
|
|
158
|
-
# @api public
|
|
159
|
-
#
|
|
160
|
-
def http_request(options={},&block)
|
|
161
|
-
response = super(options) do |request,expanded_options|
|
|
162
|
-
if block
|
|
163
|
-
if block.arity == 2
|
|
164
|
-
block.call(request,expanded_options)
|
|
165
|
-
else
|
|
166
|
-
block.call(request)
|
|
167
|
-
end
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
host = options.fetch(:host,self.host)
|
|
171
|
-
port = options.fetch(:port,self.port)
|
|
172
|
-
|
|
173
|
-
print_info "HTTP #{request.method} #{host}:#{port} #{request.path}"
|
|
174
|
-
|
|
175
|
-
request.each_capitalized do |name,value|
|
|
176
|
-
print_debug " #{name}: #{value}"
|
|
177
|
-
end
|
|
178
|
-
end
|
|
179
|
-
|
|
180
|
-
print_info "HTTP #{response.code} #{response.message}"
|
|
181
|
-
|
|
182
|
-
response.each_capitalized do |name,value|
|
|
183
|
-
print_debug " #{name}: #{value}"
|
|
184
|
-
end
|
|
185
|
-
|
|
186
|
-
return response
|
|
187
|
-
end
|
|
188
|
-
|
|
189
|
-
private
|
|
190
|
-
|
|
191
|
-
#
|
|
192
|
-
# Merges the HTTP parameters into the HTTP options.
|
|
193
|
-
#
|
|
194
|
-
# @param [Hash] options
|
|
195
|
-
# The HTTP options to merge into.
|
|
196
|
-
#
|
|
197
|
-
# @return [Hash]
|
|
198
|
-
# The merged HTTP options.
|
|
199
|
-
#
|
|
200
|
-
# @since 1.0.0
|
|
201
|
-
#
|
|
202
|
-
# @api private
|
|
203
|
-
#
|
|
204
|
-
def http_merge_options(options={})
|
|
205
|
-
options = options.dup
|
|
206
|
-
|
|
207
|
-
options[:proxy] ||= self.http_proxy if self.http_proxy
|
|
208
|
-
options[:host] ||= self.host if self.host
|
|
209
|
-
options[:port] ||= self.port if self.port
|
|
210
|
-
|
|
211
|
-
if (self.http_vhost || self.http_user_agent)
|
|
212
|
-
headers = (options[:headers] ||= {})
|
|
213
|
-
|
|
214
|
-
headers[:host] ||= self.http_vhost if self.http_vhost
|
|
215
|
-
headers[:user_agent] ||= self.http_user_agent if self.http_user_agent
|
|
216
|
-
end
|
|
217
|
-
|
|
218
|
-
options[:user] ||= self.http_user if self.http_user
|
|
219
|
-
options[:password] ||= self.http_password if self.http_password
|
|
220
|
-
|
|
221
|
-
return options
|
|
222
|
-
end
|
|
223
|
-
|
|
224
|
-
end
|
|
225
|
-
end
|
|
226
|
-
end
|
|
227
|
-
end
|
|
@@ -1,156 +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/network/mixins/mixin'
|
|
21
|
-
require 'ronin/network/imap'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
module Network
|
|
25
|
-
module Mixins
|
|
26
|
-
#
|
|
27
|
-
# Adds IMAP convenience methods and connection parameters to a class.
|
|
28
|
-
#
|
|
29
|
-
# Defines the following parameters:
|
|
30
|
-
#
|
|
31
|
-
# * `host` (`String`) - IMAP host.
|
|
32
|
-
# * `port` (`Integer`) - IMAP port.
|
|
33
|
-
# * `imap_auth` (`String`) - IMAP authentication method.
|
|
34
|
-
# * `imap_user` (`String`) - IMAP user to login as.
|
|
35
|
-
# * `imap_password` (`String`) - IMAP password to login with.
|
|
36
|
-
#
|
|
37
|
-
module IMAP
|
|
38
|
-
include Mixin, Network::IMAP
|
|
39
|
-
|
|
40
|
-
# IMAP host
|
|
41
|
-
parameter :host, :type => String,
|
|
42
|
-
:description => 'IMAP host'
|
|
43
|
-
|
|
44
|
-
# IMAP port
|
|
45
|
-
parameter :port, :type => Integer,
|
|
46
|
-
:description => 'IMAP port'
|
|
47
|
-
|
|
48
|
-
# IMAP auth
|
|
49
|
-
parameter :imap_auth, :type => String,
|
|
50
|
-
:description => 'IMAP authentication method'
|
|
51
|
-
|
|
52
|
-
# IMAP user to login as
|
|
53
|
-
parameter :imap_user, :type => String,
|
|
54
|
-
:description => 'IMAP user to login as'
|
|
55
|
-
|
|
56
|
-
# IMAP password to login with
|
|
57
|
-
parameter :imap_password, :type => String,
|
|
58
|
-
:description => 'IMAP password to login with'
|
|
59
|
-
|
|
60
|
-
protected
|
|
61
|
-
|
|
62
|
-
#
|
|
63
|
-
# Creates a connection to the IMAP server. The `host`, `port`,
|
|
64
|
-
# `imap_auth`, `imap_user` and `imap_password` parameters
|
|
65
|
-
# will also be used to make the connection.
|
|
66
|
-
#
|
|
67
|
-
# @param [Hash] options
|
|
68
|
-
# Additional options.
|
|
69
|
-
#
|
|
70
|
-
# @option options [Integer] :port (IMAP.default_port)
|
|
71
|
-
# The port the IMAP server is running on.
|
|
72
|
-
#
|
|
73
|
-
# @option options [String] :certs
|
|
74
|
-
# The path to the file containing CA certs of the server.
|
|
75
|
-
#
|
|
76
|
-
# @option options [Symbol] :auth
|
|
77
|
-
# The type of authentication to perform when connecting to the
|
|
78
|
-
# server. May be either `:login` or `:cram_md5`.
|
|
79
|
-
#
|
|
80
|
-
# @option options [String] :user
|
|
81
|
-
# The user to authenticate as when connecting to the server.
|
|
82
|
-
#
|
|
83
|
-
# @option options [String] :password
|
|
84
|
-
# The password to authenticate with when connecting to the
|
|
85
|
-
# server.
|
|
86
|
-
#
|
|
87
|
-
# @option options [Boolean]
|
|
88
|
-
# Indicates wether or not to use SSL when connecting to the
|
|
89
|
-
# server.
|
|
90
|
-
#
|
|
91
|
-
# @see Network::IMAP#imap_connect
|
|
92
|
-
#
|
|
93
|
-
# @api public
|
|
94
|
-
#
|
|
95
|
-
def imap_connect(options={},&block)
|
|
96
|
-
print_info "Connecting to #{host_port} ..."
|
|
97
|
-
|
|
98
|
-
return super(self.host,imap_merge_options(options),&block)
|
|
99
|
-
end
|
|
100
|
-
|
|
101
|
-
#
|
|
102
|
-
# Starts a session with the IMAP server. The `host`, `port`,
|
|
103
|
-
# `imap_auth`, `imap_user` and `imap_password` parameters
|
|
104
|
-
# will also be used to make the connection.
|
|
105
|
-
#
|
|
106
|
-
# @yield [session]
|
|
107
|
-
# If a block is given, it will be passed the newly created
|
|
108
|
-
# IMAP session. After the block has returned, the session will
|
|
109
|
-
# be closed.
|
|
110
|
-
#
|
|
111
|
-
# @yieldparam [Net::IMAP] session
|
|
112
|
-
# The newly created IMAP session object.
|
|
113
|
-
#
|
|
114
|
-
# @see Network::IMAP#imap_session
|
|
115
|
-
#
|
|
116
|
-
# @api public
|
|
117
|
-
#
|
|
118
|
-
def imap_session(options={})
|
|
119
|
-
super(imap_merge_options(options)) do |sess|
|
|
120
|
-
yield sess if block_given?
|
|
121
|
-
|
|
122
|
-
print_info "Logging out ..."
|
|
123
|
-
end
|
|
124
|
-
|
|
125
|
-
print_info "Disconnected from #{host_port}"
|
|
126
|
-
return il
|
|
127
|
-
end
|
|
128
|
-
|
|
129
|
-
private
|
|
130
|
-
|
|
131
|
-
#
|
|
132
|
-
# Merges the IMAP parameters into the options for {Network::IMAP}
|
|
133
|
-
# methods.
|
|
134
|
-
#
|
|
135
|
-
# @param [Hash] options
|
|
136
|
-
# The original options.
|
|
137
|
-
#
|
|
138
|
-
# @return [Hash]
|
|
139
|
-
# The merged options.
|
|
140
|
-
#
|
|
141
|
-
# @since 0.4.0
|
|
142
|
-
#
|
|
143
|
-
# @api private
|
|
144
|
-
#
|
|
145
|
-
def imap_merge_options(options={})
|
|
146
|
-
options[:port] ||= self.port
|
|
147
|
-
options[:auth] ||= self.imap_auth
|
|
148
|
-
options[:user] ||= self.imap_user
|
|
149
|
-
options[:password] ||= self.imap_password
|
|
150
|
-
|
|
151
|
-
return options
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
end
|