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
data/lib/ronin/network/unix.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 'socket'
|
|
21
|
-
require 'timeout'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
module Network
|
|
25
|
-
#
|
|
26
|
-
# Provides helper methods for communicating with UNIX sockets.
|
|
27
|
-
#
|
|
28
|
-
# @since 0.5.0
|
|
29
|
-
#
|
|
30
|
-
module UNIX
|
|
31
|
-
#
|
|
32
|
-
# Tests whether a UNIX socket is open.
|
|
33
|
-
#
|
|
34
|
-
# @param [String] path
|
|
35
|
-
# The path to the socket.
|
|
36
|
-
#
|
|
37
|
-
# @param [Integer] timeout (5)
|
|
38
|
-
# The maximum time to attempt connecting.
|
|
39
|
-
#
|
|
40
|
-
# @return [Boolean, nil]
|
|
41
|
-
# Specifies whether the UNIX socket is open.
|
|
42
|
-
# If the connection was not accepted, `nil` will be returned.
|
|
43
|
-
#
|
|
44
|
-
# @api public
|
|
45
|
-
#
|
|
46
|
-
# @since 0.5.0
|
|
47
|
-
#
|
|
48
|
-
def unix_open?(path,timeout=nil)
|
|
49
|
-
timeout ||= 5
|
|
50
|
-
|
|
51
|
-
begin
|
|
52
|
-
Timeout.timeout(timeout) { unix_session(path) }
|
|
53
|
-
return true
|
|
54
|
-
rescue Timeout::Error
|
|
55
|
-
return nil
|
|
56
|
-
rescue SocketError, SystemCallError
|
|
57
|
-
return false
|
|
58
|
-
end
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
#
|
|
62
|
-
# Connects to a UNIX socket.
|
|
63
|
-
#
|
|
64
|
-
# @param [String] path
|
|
65
|
-
# The path to the UNIX socket.
|
|
66
|
-
#
|
|
67
|
-
# @yield [socket]
|
|
68
|
-
# If a block is given, it will be passed an UNIX socket object.
|
|
69
|
-
#
|
|
70
|
-
# @yieldparam [UNIXSocket] socket
|
|
71
|
-
# The UNIX socket.
|
|
72
|
-
#
|
|
73
|
-
# @return [UNIXSocket]
|
|
74
|
-
# The UNIX socket.
|
|
75
|
-
#
|
|
76
|
-
# @example
|
|
77
|
-
# unix_connect('/tmp/haproxy.stats.socket')
|
|
78
|
-
#
|
|
79
|
-
# @see http://rubydoc.info/stdlib/socket/UNIXSocket
|
|
80
|
-
#
|
|
81
|
-
# @api public
|
|
82
|
-
#
|
|
83
|
-
def unix_connect(path)
|
|
84
|
-
socket = UNIXSocket.new(path)
|
|
85
|
-
|
|
86
|
-
yield socket if block_given?
|
|
87
|
-
return socket
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
#
|
|
91
|
-
# Connects to a UNIX Socket and sends the given data.
|
|
92
|
-
#
|
|
93
|
-
# @param [String] data
|
|
94
|
-
# The data to send to the socket.
|
|
95
|
-
#
|
|
96
|
-
# @param [String] path
|
|
97
|
-
# The path to the socket.
|
|
98
|
-
#
|
|
99
|
-
# @yield [socket]
|
|
100
|
-
# If a block is given, it will be passed the newly created socket.
|
|
101
|
-
#
|
|
102
|
-
# @yieldparam [UNIXSocket] socket
|
|
103
|
-
# The newly created UNIXSocket object.
|
|
104
|
-
#
|
|
105
|
-
# @return [UNIXSocket]
|
|
106
|
-
# The newly created UNIXSocket object.
|
|
107
|
-
#
|
|
108
|
-
# @api public
|
|
109
|
-
#
|
|
110
|
-
def unix_connect_and_send(data,path)
|
|
111
|
-
socket = unix_connect(path)
|
|
112
|
-
socket.write(data)
|
|
113
|
-
|
|
114
|
-
yield socket if block_given?
|
|
115
|
-
return socket
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
#
|
|
119
|
-
# Temporarily connects to a UNIX socket.
|
|
120
|
-
#
|
|
121
|
-
# @param [String] path
|
|
122
|
-
# The path to the UNIX socket.
|
|
123
|
-
#
|
|
124
|
-
# @yield [socket]
|
|
125
|
-
# If a block is given, it will be passed an UNIX socket object.
|
|
126
|
-
#
|
|
127
|
-
# @yieldparam [UNIXSocket] socket
|
|
128
|
-
# The UNIX socket.
|
|
129
|
-
#
|
|
130
|
-
# @example
|
|
131
|
-
# unix_session('/tmp/haproxy.stats.socket') do |socket|
|
|
132
|
-
# # ...
|
|
133
|
-
# end
|
|
134
|
-
#
|
|
135
|
-
# @api public
|
|
136
|
-
#
|
|
137
|
-
def unix_session(path)
|
|
138
|
-
socket = unix_connect(path)
|
|
139
|
-
|
|
140
|
-
yield socket if block_given?
|
|
141
|
-
socket.close
|
|
142
|
-
return nil
|
|
143
|
-
end
|
|
144
|
-
|
|
145
|
-
#
|
|
146
|
-
# Connects to a UNIX socket, sends the given data and then closes the
|
|
147
|
-
# socket.
|
|
148
|
-
#
|
|
149
|
-
# @param [String] data
|
|
150
|
-
# The data to send to the UNIX socket.
|
|
151
|
-
#
|
|
152
|
-
# @param [String] path
|
|
153
|
-
# The UNIX socket to connect to.
|
|
154
|
-
#
|
|
155
|
-
# @return [true]
|
|
156
|
-
# The data was successfully sent.
|
|
157
|
-
#
|
|
158
|
-
# @example
|
|
159
|
-
# buffer = "GET /" + ('A' * 4096) + "\n\r"
|
|
160
|
-
# unix_send(buffer,'/tmp/thin.socket')
|
|
161
|
-
# # => true
|
|
162
|
-
#
|
|
163
|
-
# @api public
|
|
164
|
-
#
|
|
165
|
-
def unix_send(data,path)
|
|
166
|
-
unix_session(path) do |socket|
|
|
167
|
-
socket.write(data)
|
|
168
|
-
end
|
|
169
|
-
|
|
170
|
-
return true
|
|
171
|
-
end
|
|
172
|
-
|
|
173
|
-
#
|
|
174
|
-
# Opens a UNIX socket.
|
|
175
|
-
#
|
|
176
|
-
# @param [String] path
|
|
177
|
-
# The path for the new UNIX socket.
|
|
178
|
-
#
|
|
179
|
-
# @yield [server]
|
|
180
|
-
# If a block is given, it will be passed an UNIX socket object.
|
|
181
|
-
#
|
|
182
|
-
# @yieldparam [UNIXServer] server
|
|
183
|
-
# The new UNIX socket.
|
|
184
|
-
#
|
|
185
|
-
# @return [UNIXServer]
|
|
186
|
-
# The new UNIX socket.
|
|
187
|
-
#
|
|
188
|
-
# @example
|
|
189
|
-
# unix_server('/tmp/test.socket')
|
|
190
|
-
#
|
|
191
|
-
# @see http://rubydoc.info/stdlib/socket/UNIXServer
|
|
192
|
-
#
|
|
193
|
-
# @api public
|
|
194
|
-
#
|
|
195
|
-
def unix_server(path)
|
|
196
|
-
socket = UNIXServer.new(path)
|
|
197
|
-
|
|
198
|
-
yield socket if block_given?
|
|
199
|
-
return socket
|
|
200
|
-
end
|
|
201
|
-
|
|
202
|
-
#
|
|
203
|
-
# Temporarily opens a UNIX socket.
|
|
204
|
-
#
|
|
205
|
-
# @param [String] path
|
|
206
|
-
# The path for the new UNIX socket.
|
|
207
|
-
#
|
|
208
|
-
# @yield [server]
|
|
209
|
-
# If a block is given, it will be passed an UNIX socket object.
|
|
210
|
-
#
|
|
211
|
-
# @yieldparam [UNIXServer] server
|
|
212
|
-
# The new UNIX socket.
|
|
213
|
-
#
|
|
214
|
-
# @example
|
|
215
|
-
# unix_server_session('/tmp/test.socket') do |server|
|
|
216
|
-
# # ...
|
|
217
|
-
# end
|
|
218
|
-
#
|
|
219
|
-
# @api public
|
|
220
|
-
#
|
|
221
|
-
def unix_server_session(path,&block)
|
|
222
|
-
socket = unix_server(path,&block)
|
|
223
|
-
socket.close
|
|
224
|
-
return nil
|
|
225
|
-
end
|
|
226
|
-
|
|
227
|
-
#
|
|
228
|
-
# Opens a UNIX socket, accepts connections in a loop.
|
|
229
|
-
#
|
|
230
|
-
# @param [String] path
|
|
231
|
-
# The path for the new UNIX socket.
|
|
232
|
-
#
|
|
233
|
-
# @yield [client]
|
|
234
|
-
# If a block is given, it will be passed each accepted connection.
|
|
235
|
-
#
|
|
236
|
-
# @yieldparam [UNIXSocket] client
|
|
237
|
-
# An accepted connection to UNIX socket.
|
|
238
|
-
#
|
|
239
|
-
# @example
|
|
240
|
-
# unix_server_loop('/tmp/test.socket') do |client|
|
|
241
|
-
# # ...
|
|
242
|
-
# end
|
|
243
|
-
#
|
|
244
|
-
# @api public
|
|
245
|
-
#
|
|
246
|
-
def unix_server_loop(path)
|
|
247
|
-
unix_server_session(path) do |server|
|
|
248
|
-
loop do
|
|
249
|
-
client = server.accept
|
|
250
|
-
|
|
251
|
-
yield client if block_given?
|
|
252
|
-
client.close
|
|
253
|
-
end
|
|
254
|
-
end
|
|
255
|
-
end
|
|
256
|
-
|
|
257
|
-
#
|
|
258
|
-
# Opens a UNIX socket, accepts a connection, then closes the socket.
|
|
259
|
-
#
|
|
260
|
-
# @param [String] path
|
|
261
|
-
# The path for the new UNIX socket.
|
|
262
|
-
#
|
|
263
|
-
# @yield [client]
|
|
264
|
-
# If a block is given, it will be passed the accepted connection.
|
|
265
|
-
#
|
|
266
|
-
# @yieldparam [UNIXSocket] client
|
|
267
|
-
# The accepted connection to UNIX socket.
|
|
268
|
-
#
|
|
269
|
-
# @example
|
|
270
|
-
# unix_accept('/tmp/test.socket') do |client|
|
|
271
|
-
# # ...
|
|
272
|
-
# end
|
|
273
|
-
#
|
|
274
|
-
# @api public
|
|
275
|
-
#
|
|
276
|
-
def unix_accept(path)
|
|
277
|
-
unix_server_session(path) do |server|
|
|
278
|
-
client = server.accept
|
|
279
|
-
|
|
280
|
-
yield client if block_given?
|
|
281
|
-
client.close
|
|
282
|
-
end
|
|
283
|
-
end
|
|
284
|
-
end
|
|
285
|
-
end
|
|
286
|
-
end
|
data/lib/ronin/network.rb
DELETED
|
@@ -1,31 +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/dns'
|
|
21
|
-
require 'ronin/network/tcp'
|
|
22
|
-
require 'ronin/network/udp'
|
|
23
|
-
require 'ronin/network/ssl'
|
|
24
|
-
require 'ronin/network/unix'
|
|
25
|
-
require 'ronin/network/smtp'
|
|
26
|
-
require 'ronin/network/esmtp'
|
|
27
|
-
require 'ronin/network/pop3'
|
|
28
|
-
require 'ronin/network/imap'
|
|
29
|
-
require 'ronin/network/telnet'
|
|
30
|
-
require 'ronin/network/ftp'
|
|
31
|
-
require 'ronin/network/http'
|
data/lib/ronin/path.rb
DELETED
|
@@ -1,137 +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 'pathname'
|
|
21
|
-
|
|
22
|
-
module Ronin
|
|
23
|
-
#
|
|
24
|
-
# The {Path} class extends `Pathname` to allow representing directory
|
|
25
|
-
# traversal paths.
|
|
26
|
-
#
|
|
27
|
-
class Path < Pathname
|
|
28
|
-
|
|
29
|
-
# The separator to join paths together with
|
|
30
|
-
attr_accessor :separator
|
|
31
|
-
|
|
32
|
-
def initialize(path)
|
|
33
|
-
@separator = File::SEPARATOR
|
|
34
|
-
|
|
35
|
-
super(path)
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
#
|
|
39
|
-
# The root path.
|
|
40
|
-
#
|
|
41
|
-
# @return [Path]
|
|
42
|
-
# The root path.
|
|
43
|
-
#
|
|
44
|
-
# @api public
|
|
45
|
-
#
|
|
46
|
-
def Path.root
|
|
47
|
-
Path.new('/')
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
#
|
|
51
|
-
# Creates a new path object for upward directory traversal.
|
|
52
|
-
#
|
|
53
|
-
# @param [Integer, Array, Range] n
|
|
54
|
-
# The number of directories to go up.
|
|
55
|
-
#
|
|
56
|
-
# @param [String] separator
|
|
57
|
-
# Path separator.
|
|
58
|
-
#
|
|
59
|
-
# @return [Path]
|
|
60
|
-
# The new path object.
|
|
61
|
-
#
|
|
62
|
-
# @raise [ArgumentError]
|
|
63
|
-
# A negative number was given as the first argument.
|
|
64
|
-
#
|
|
65
|
-
# @example Generate a relative path that goes up 7 directories:
|
|
66
|
-
# Path.up(7)
|
|
67
|
-
# # => #<Ronin::Path:../../../../../../..>
|
|
68
|
-
#
|
|
69
|
-
# @example Generate multiple relative paths, going up 1 to 3 directories:
|
|
70
|
-
# Path.up(1..3)
|
|
71
|
-
# # => [#<Ronin::Path:..>, #<Ronin::Path:../..>,
|
|
72
|
-
# #<Ronin::Path:../../..>]
|
|
73
|
-
#
|
|
74
|
-
# @api public
|
|
75
|
-
#
|
|
76
|
-
def self.up(n,separator=File::SEPARATOR)
|
|
77
|
-
case n
|
|
78
|
-
when Integer
|
|
79
|
-
if n == 0
|
|
80
|
-
return separator
|
|
81
|
-
elsif n < 0
|
|
82
|
-
raise(ArgumentError,"negative argument")
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
path = new('..')
|
|
86
|
-
path.separator = separator
|
|
87
|
-
|
|
88
|
-
dirs = (['..'] * (n-1))
|
|
89
|
-
|
|
90
|
-
Path.new(path.join(*dirs))
|
|
91
|
-
when Enumerable
|
|
92
|
-
n.map { |i| up(i) }
|
|
93
|
-
else
|
|
94
|
-
raise(ArgumentError,"The first argument of Path.up must be either an Integer or Enumerable")
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
#
|
|
99
|
-
# Joins directory names together with the path, but does not resolve
|
|
100
|
-
# the resulting path.
|
|
101
|
-
#
|
|
102
|
-
# @param [Array] names
|
|
103
|
-
# The names to join together.
|
|
104
|
-
#
|
|
105
|
-
# @return [Path]
|
|
106
|
-
# The joined path.
|
|
107
|
-
#
|
|
108
|
-
# @example
|
|
109
|
-
# Path.up(7).join('etc/passwd')
|
|
110
|
-
# # => #<Ronin::Path:../../../../../../../etc/passwd>
|
|
111
|
-
#
|
|
112
|
-
# @api public
|
|
113
|
-
#
|
|
114
|
-
def join(*names)
|
|
115
|
-
names.map! { |name| name.to_s }
|
|
116
|
-
|
|
117
|
-
# filter out errant directory separators
|
|
118
|
-
names.reject! { |dir| dir == @separator }
|
|
119
|
-
|
|
120
|
-
# join the path
|
|
121
|
-
sub_path = names.join(@separator)
|
|
122
|
-
|
|
123
|
-
path = if root?
|
|
124
|
-
# prefix the root dir
|
|
125
|
-
self.to_s + sub_path
|
|
126
|
-
else
|
|
127
|
-
# join the path with the sub-path
|
|
128
|
-
[self.to_s, sub_path].join(@separator)
|
|
129
|
-
end
|
|
130
|
-
|
|
131
|
-
return self.class.new(path)
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
alias / join
|
|
135
|
-
|
|
136
|
-
end
|
|
137
|
-
end
|
data/lib/ronin/spec/ui/output.rb
DELETED
|
@@ -1,22 +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'
|
|
21
|
-
|
|
22
|
-
Ronin::UI::Output.silent! unless ENV['DEBUG']
|
|
@@ -1,92 +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 Support
|
|
22
|
-
# The Inflectors supported by ronin-support
|
|
23
|
-
INFLECTORS = {
|
|
24
|
-
:data_mapper => {
|
|
25
|
-
:path => 'dm-core',
|
|
26
|
-
:const => 'DataMapper::Inflector'
|
|
27
|
-
},
|
|
28
|
-
:active_support => {
|
|
29
|
-
:path => 'active_support/inflector',
|
|
30
|
-
:const => 'ActiveSupport::Inflector'
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
#
|
|
35
|
-
# Loads an Inflector library and sets the `Ronin::Support::Inflector`
|
|
36
|
-
# constant.
|
|
37
|
-
#
|
|
38
|
-
# @param [Symbol, String] name
|
|
39
|
-
# The name of the Inflector library to load. May be either
|
|
40
|
-
# `:datamapper` or `:active_support`.
|
|
41
|
-
#
|
|
42
|
-
# @return [true]
|
|
43
|
-
# Specifies that the Inflector library was successfully loaded.
|
|
44
|
-
#
|
|
45
|
-
# @raise [ArgumentError]
|
|
46
|
-
# The Inflector library is not supported.
|
|
47
|
-
#
|
|
48
|
-
# @raise [LoadError]
|
|
49
|
-
# The Inflector library could not be loaded.
|
|
50
|
-
#
|
|
51
|
-
# @raise [NameError]
|
|
52
|
-
# The constant could not be found.
|
|
53
|
-
#
|
|
54
|
-
# @api private
|
|
55
|
-
#
|
|
56
|
-
def Support.load_inflector!(name)
|
|
57
|
-
name = name.to_sym
|
|
58
|
-
|
|
59
|
-
unless (inflector = INFLECTORS[name])
|
|
60
|
-
raise(ArgumentError,"unsupported Inflector: #{name}")
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
begin
|
|
64
|
-
require inflector[:path]
|
|
65
|
-
rescue Gem::LoadError => e
|
|
66
|
-
raise(e)
|
|
67
|
-
rescue ::LoadError
|
|
68
|
-
raise(LoadError,"unable to load #{inflector[:path]}")
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
begin
|
|
72
|
-
const_set('Inflector', eval("::#{inflector[:const]}"))
|
|
73
|
-
rescue NameError
|
|
74
|
-
raise(NameError,"unable to find #{inflector[:const]}")
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
return true
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
[:data_mapper, :active_support].each do |name|
|
|
81
|
-
begin
|
|
82
|
-
Support.load_inflector!(name)
|
|
83
|
-
break
|
|
84
|
-
rescue LoadError
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
unless const_defined?('Inflector')
|
|
89
|
-
raise(LoadError,"unable to load or find any Inflectors")
|
|
90
|
-
end
|
|
91
|
-
end
|
|
92
|
-
end
|
|
@@ -1,42 +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'
|
|
21
|
-
require 'ronin/network'
|
|
22
|
-
|
|
23
|
-
module Ronin
|
|
24
|
-
#
|
|
25
|
-
# The main namespace for `ronin-support`.
|
|
26
|
-
#
|
|
27
|
-
module Support
|
|
28
|
-
include UI::Output::Helpers
|
|
29
|
-
include Network::DNS
|
|
30
|
-
include Network::TCP
|
|
31
|
-
include Network::UDP
|
|
32
|
-
include Network::SSL
|
|
33
|
-
include Network::UNIX
|
|
34
|
-
include Network::SMTP
|
|
35
|
-
include Network::ESMTP
|
|
36
|
-
include Network::POP3
|
|
37
|
-
include Network::IMAP
|
|
38
|
-
include Network::Telnet
|
|
39
|
-
include Network::FTP
|
|
40
|
-
include Network::HTTP
|
|
41
|
-
end
|
|
42
|
-
end
|
data/lib/ronin/templates/erb.rb
DELETED
|
@@ -1,78 +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/templates/template'
|
|
21
|
-
|
|
22
|
-
require 'erb'
|
|
23
|
-
|
|
24
|
-
module Ronin
|
|
25
|
-
module Templates
|
|
26
|
-
#
|
|
27
|
-
# The {Erb} module uses the {Template} module to find and render
|
|
28
|
-
# Embedded Ruby (ERB) templates.
|
|
29
|
-
#
|
|
30
|
-
module Erb
|
|
31
|
-
include Template
|
|
32
|
-
|
|
33
|
-
#
|
|
34
|
-
# Renders the inline ERB template in the scope of the object.
|
|
35
|
-
#
|
|
36
|
-
# @param [String] template
|
|
37
|
-
# Source of the ERB template.
|
|
38
|
-
#
|
|
39
|
-
# @return [String]
|
|
40
|
-
# Result of the rendered template.
|
|
41
|
-
#
|
|
42
|
-
# @example
|
|
43
|
-
# @user = 'lolcats'
|
|
44
|
-
#
|
|
45
|
-
# erb %{
|
|
46
|
-
# USER: <%= @user %>
|
|
47
|
-
# PASSWORD: <%= @user.reverse %>
|
|
48
|
-
# }
|
|
49
|
-
# # => "\nUSER: lolcats\nPASSWORD: staclol\n"
|
|
50
|
-
#
|
|
51
|
-
# @api public
|
|
52
|
-
#
|
|
53
|
-
def erb(template)
|
|
54
|
-
ERB.new(template,nil,'-').result(binding)
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
#
|
|
58
|
-
# Renders an ERB template file in the scope of the object.
|
|
59
|
-
#
|
|
60
|
-
# @param [String] template_path
|
|
61
|
-
# The relative path of the ERB template.
|
|
62
|
-
#
|
|
63
|
-
# @return [String]
|
|
64
|
-
# Result of the rendered template.
|
|
65
|
-
#
|
|
66
|
-
# @example
|
|
67
|
-
# erb_file 'path/to/template.erb'
|
|
68
|
-
#
|
|
69
|
-
# @api public
|
|
70
|
-
#
|
|
71
|
-
def erb_file(template_path)
|
|
72
|
-
read_template(template_path) do |template|
|
|
73
|
-
erb(template)
|
|
74
|
-
end
|
|
75
|
-
end
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
end
|