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,450 +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 using the UDP protocol.
|
|
27
|
-
#
|
|
28
|
-
module UDP
|
|
29
|
-
#
|
|
30
|
-
# Tests whether a remote UDP port is open.
|
|
31
|
-
#
|
|
32
|
-
# @param [String] host
|
|
33
|
-
# The host to connect to.
|
|
34
|
-
#
|
|
35
|
-
# @param [Integer] port
|
|
36
|
-
# The port to connect to.
|
|
37
|
-
#
|
|
38
|
-
# @param [String] local_host (nil)
|
|
39
|
-
# The local host to bind to.
|
|
40
|
-
#
|
|
41
|
-
# @param [Integer] local_port (nil)
|
|
42
|
-
# The local port to bind to.
|
|
43
|
-
#
|
|
44
|
-
# @param [Integer] timeout (5)
|
|
45
|
-
# The maximum time to attempt connecting.
|
|
46
|
-
#
|
|
47
|
-
# @return [Boolean, nil]
|
|
48
|
-
# Specifies whether the remote UDP port is open.
|
|
49
|
-
# If no data or ICMP error were received, `nil` will be returned.
|
|
50
|
-
#
|
|
51
|
-
# @example
|
|
52
|
-
# udp_open?('4.2.2.1',53)
|
|
53
|
-
# # => true
|
|
54
|
-
#
|
|
55
|
-
# @example Using a timeout:
|
|
56
|
-
# udp_open?('example.com',1111,nil,nil,5)
|
|
57
|
-
# # => nil
|
|
58
|
-
#
|
|
59
|
-
# @api public
|
|
60
|
-
#
|
|
61
|
-
# @since 0.5.0
|
|
62
|
-
#
|
|
63
|
-
def udp_open?(host,port,local_host=nil,local_port=nil,timeout=nil)
|
|
64
|
-
timeout ||= 5
|
|
65
|
-
|
|
66
|
-
begin
|
|
67
|
-
Timeout.timeout(timeout) do
|
|
68
|
-
udp_session(host,port,local_host,local_port) do |socket|
|
|
69
|
-
# send an empty UDP packet, just like nmap
|
|
70
|
-
socket.syswrite('')
|
|
71
|
-
|
|
72
|
-
# send junk data, to elicit an error message
|
|
73
|
-
socket.syswrite("\0" * 64)
|
|
74
|
-
|
|
75
|
-
# test if we've received any data
|
|
76
|
-
socket.sysread(1)
|
|
77
|
-
end
|
|
78
|
-
end
|
|
79
|
-
|
|
80
|
-
return true
|
|
81
|
-
rescue Timeout::Error
|
|
82
|
-
return nil
|
|
83
|
-
rescue SocketError, SystemCallError
|
|
84
|
-
return false
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
#
|
|
89
|
-
# Creates a new UDPSocket object connected to a given host and port.
|
|
90
|
-
#
|
|
91
|
-
# @param [String] host
|
|
92
|
-
# The host to connect to.
|
|
93
|
-
#
|
|
94
|
-
# @param [Integer] port
|
|
95
|
-
# The port to connect to.
|
|
96
|
-
#
|
|
97
|
-
# @param [String] local_host (nil)
|
|
98
|
-
# The local host to bind to.
|
|
99
|
-
#
|
|
100
|
-
# @param [Integer] local_port (nil)
|
|
101
|
-
# The local port to bind to.
|
|
102
|
-
#
|
|
103
|
-
# @yield [socket]
|
|
104
|
-
# If a block is given, it will be passed the newly created socket.
|
|
105
|
-
#
|
|
106
|
-
# @yieldparam [UDPsocket] socket
|
|
107
|
-
# The newly created UDPSocket object.
|
|
108
|
-
#
|
|
109
|
-
# @return [UDPSocket]
|
|
110
|
-
# The newly created UDPSocket object.
|
|
111
|
-
#
|
|
112
|
-
# @example
|
|
113
|
-
# udp_connect('www.hackety.org',80)
|
|
114
|
-
# # => UDPSocket
|
|
115
|
-
#
|
|
116
|
-
# @example
|
|
117
|
-
# udp_connect('www.wired.com',80) do |socket|
|
|
118
|
-
# puts socket.readlines
|
|
119
|
-
# end
|
|
120
|
-
#
|
|
121
|
-
# @see http://rubydoc.info/stdlib/socket/UDPSocket
|
|
122
|
-
#
|
|
123
|
-
# @api public
|
|
124
|
-
#
|
|
125
|
-
def udp_connect(host,port,local_host=nil,local_port=nil)
|
|
126
|
-
host = host.to_s
|
|
127
|
-
port = port.to_i
|
|
128
|
-
local_host = (local_host || '0.0.0.0').to_s
|
|
129
|
-
local_port = local_port.to_i
|
|
130
|
-
|
|
131
|
-
socket = UDPSocket.new
|
|
132
|
-
socket.bind(local_host,local_port) if (local_host && local_port)
|
|
133
|
-
socket.connect(host,port)
|
|
134
|
-
|
|
135
|
-
yield socket if block_given?
|
|
136
|
-
return socket
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
#
|
|
140
|
-
# Creates a new UDPSocket object, connected to a given host and port.
|
|
141
|
-
# The given data will then be written to the newly created UDPSocket.
|
|
142
|
-
#
|
|
143
|
-
# @param [String] data
|
|
144
|
-
# The data to send through the connection.
|
|
145
|
-
#
|
|
146
|
-
# @param [String] host
|
|
147
|
-
# The host to connect to.
|
|
148
|
-
#
|
|
149
|
-
# @param [Integer] port
|
|
150
|
-
# The port to connect to.
|
|
151
|
-
#
|
|
152
|
-
# @param [String] local_host (nil)
|
|
153
|
-
# The local host to bind to.
|
|
154
|
-
#
|
|
155
|
-
# @param [Integer] local_port (nil)
|
|
156
|
-
# The local port to bind to.
|
|
157
|
-
#
|
|
158
|
-
# @yield [socket]
|
|
159
|
-
# If a block is given, it will be passed the newly created socket.
|
|
160
|
-
#
|
|
161
|
-
# @yieldparam [UDPsocket] socket
|
|
162
|
-
# The newly created UDPSocket object.
|
|
163
|
-
#
|
|
164
|
-
# @return [UDPSocket]
|
|
165
|
-
# The newly created UDPSocket object.
|
|
166
|
-
#
|
|
167
|
-
# @api public
|
|
168
|
-
#
|
|
169
|
-
def udp_connect_and_send(data,host,port,local_host=nil,local_port=nil)
|
|
170
|
-
socket = udp_connect(host,port,local_host,local_port)
|
|
171
|
-
socket.write(data)
|
|
172
|
-
|
|
173
|
-
yield socket if block_given?
|
|
174
|
-
return socket
|
|
175
|
-
end
|
|
176
|
-
|
|
177
|
-
#
|
|
178
|
-
# Creates a new temporary UDPSocket object, connected to the given host
|
|
179
|
-
# and port.
|
|
180
|
-
#
|
|
181
|
-
# @param [String] host
|
|
182
|
-
# The host to connect to.
|
|
183
|
-
#
|
|
184
|
-
# @param [Integer] port
|
|
185
|
-
# The port to connect to.
|
|
186
|
-
#
|
|
187
|
-
# @param [String] local_host (nil)
|
|
188
|
-
# The local host to bind to.
|
|
189
|
-
#
|
|
190
|
-
# @param [Integer] local_port (nil)
|
|
191
|
-
# The local port to bind to.
|
|
192
|
-
#
|
|
193
|
-
# @yield [socket]
|
|
194
|
-
# If a block is given, it will be passed the newly created socket.
|
|
195
|
-
# After the block has returned, the socket will then be closed.
|
|
196
|
-
#
|
|
197
|
-
# @yieldparam [UDPsocket] socket
|
|
198
|
-
# The newly created UDPSocket object.
|
|
199
|
-
#
|
|
200
|
-
# @return [nil]
|
|
201
|
-
#
|
|
202
|
-
# @api public
|
|
203
|
-
#
|
|
204
|
-
def udp_session(host,port,local_host=nil,local_port=nil)
|
|
205
|
-
socket = udp_connect(host,port,local_host,local_port)
|
|
206
|
-
|
|
207
|
-
yield socket if block_given?
|
|
208
|
-
socket.close
|
|
209
|
-
return nil
|
|
210
|
-
end
|
|
211
|
-
|
|
212
|
-
#
|
|
213
|
-
# Connects to a specified host and port, sends the given data and then
|
|
214
|
-
# closes the connection.
|
|
215
|
-
#
|
|
216
|
-
# @param [String] data
|
|
217
|
-
# The data to send through the connection.
|
|
218
|
-
#
|
|
219
|
-
# @param [String] host
|
|
220
|
-
# The host to connect to.
|
|
221
|
-
#
|
|
222
|
-
# @param [Integer] port
|
|
223
|
-
# The port to connect to.
|
|
224
|
-
#
|
|
225
|
-
# @param [String] local_host (nil)
|
|
226
|
-
# The local host to bind to.
|
|
227
|
-
#
|
|
228
|
-
# @param [Integer] local_port (nil)
|
|
229
|
-
# The local port to bind to.
|
|
230
|
-
#
|
|
231
|
-
# @return [true]
|
|
232
|
-
# The data was successfully sent.
|
|
233
|
-
#
|
|
234
|
-
# @example
|
|
235
|
-
# buffer = "GET /" + ('A' * 4096) + "\n\r"
|
|
236
|
-
# udp_send(buffer,'victim.com',80)
|
|
237
|
-
# # => true
|
|
238
|
-
#
|
|
239
|
-
# @api public
|
|
240
|
-
#
|
|
241
|
-
# @since 0.4.0
|
|
242
|
-
#
|
|
243
|
-
def udp_send(data,host,port,local_host=nil,local_port=nil)
|
|
244
|
-
udp_session(host,port,local_host,local_port) do |socket|
|
|
245
|
-
socket.write(data)
|
|
246
|
-
end
|
|
247
|
-
|
|
248
|
-
return true
|
|
249
|
-
end
|
|
250
|
-
|
|
251
|
-
#
|
|
252
|
-
# Reads the banner from the service running on the given host and port.
|
|
253
|
-
#
|
|
254
|
-
# @param [String] host
|
|
255
|
-
# The host to connect to.
|
|
256
|
-
#
|
|
257
|
-
# @param [Integer] port
|
|
258
|
-
# The port to connect to.
|
|
259
|
-
#
|
|
260
|
-
# @param [String] local_host (nil)
|
|
261
|
-
# The local host to bind to.
|
|
262
|
-
#
|
|
263
|
-
# @param [Integer] local_port (nil)
|
|
264
|
-
# The local port to bind to.
|
|
265
|
-
#
|
|
266
|
-
# @yield [banner]
|
|
267
|
-
# If a block is given, it will be passed the grabbed banner.
|
|
268
|
-
#
|
|
269
|
-
# @yieldparam [String] banner
|
|
270
|
-
# The grabbed banner.
|
|
271
|
-
#
|
|
272
|
-
# @return [String]
|
|
273
|
-
# The grabbed banner.
|
|
274
|
-
#
|
|
275
|
-
# @api public
|
|
276
|
-
#
|
|
277
|
-
def udp_banner(host,port,local_host=nil,local_port=nil)
|
|
278
|
-
banner = nil
|
|
279
|
-
|
|
280
|
-
udp_session(host,port,local_host,local_port) do |socket|
|
|
281
|
-
banner = socket.readline
|
|
282
|
-
end
|
|
283
|
-
|
|
284
|
-
yield banner if block_given?
|
|
285
|
-
return banner
|
|
286
|
-
end
|
|
287
|
-
|
|
288
|
-
#
|
|
289
|
-
# Creates a new UDPServer listening on a given host and port.
|
|
290
|
-
#
|
|
291
|
-
# @param [Integer] port
|
|
292
|
-
# The local port to listen on.
|
|
293
|
-
#
|
|
294
|
-
# @param [String] host ('0.0.0.0')
|
|
295
|
-
# The host to bind to.
|
|
296
|
-
#
|
|
297
|
-
# @return [UDPServer]
|
|
298
|
-
# The new UDP server.
|
|
299
|
-
#
|
|
300
|
-
# @example
|
|
301
|
-
# udp_server(1337)
|
|
302
|
-
#
|
|
303
|
-
# @see http://rubydoc.info/stdlib/socket/UDPSocket
|
|
304
|
-
#
|
|
305
|
-
# @api public
|
|
306
|
-
#
|
|
307
|
-
def udp_server(port=nil,host=nil)
|
|
308
|
-
port = port.to_i
|
|
309
|
-
host = (host || '0.0.0.0').to_s
|
|
310
|
-
|
|
311
|
-
server = UDPSocket.new
|
|
312
|
-
server.bind(host,port)
|
|
313
|
-
|
|
314
|
-
yield server if block_given?
|
|
315
|
-
return server
|
|
316
|
-
end
|
|
317
|
-
|
|
318
|
-
#
|
|
319
|
-
# Creates a new temporary UDPServer listening on a given host and port.
|
|
320
|
-
#
|
|
321
|
-
# @param [Integer] port
|
|
322
|
-
# The local port to bind to.
|
|
323
|
-
#
|
|
324
|
-
# @param [String] host ('0.0.0.0')
|
|
325
|
-
# The host to bind to.
|
|
326
|
-
#
|
|
327
|
-
# @yield [server]
|
|
328
|
-
# The block which will be called after the server has been created.
|
|
329
|
-
# After the block has finished, the server will be closed.
|
|
330
|
-
#
|
|
331
|
-
# @yieldparam [UDPServer] server
|
|
332
|
-
# The newly created UDP server.
|
|
333
|
-
#
|
|
334
|
-
# @return [nil]
|
|
335
|
-
#
|
|
336
|
-
# @example
|
|
337
|
-
# udp_server_session(1337) do |server|
|
|
338
|
-
# data, sender = server.recvfrom(1024)
|
|
339
|
-
# end
|
|
340
|
-
#
|
|
341
|
-
# @api public
|
|
342
|
-
#
|
|
343
|
-
def udp_server_session(port=nil,host=nil,&block)
|
|
344
|
-
server = udp_server(port,host,&block)
|
|
345
|
-
server.close()
|
|
346
|
-
return nil
|
|
347
|
-
end
|
|
348
|
-
|
|
349
|
-
#
|
|
350
|
-
# Creates a new UDPServer listening on a given host and port,
|
|
351
|
-
# accepting messages from clients in a loop.
|
|
352
|
-
#
|
|
353
|
-
# @param [Integer] port
|
|
354
|
-
# The port the UDPServer will listen on.
|
|
355
|
-
#
|
|
356
|
-
# @param [String] host
|
|
357
|
-
# The optional host the UDPServer will bind to.
|
|
358
|
-
#
|
|
359
|
-
# @yield [server, (client_host, client_port), mesg]
|
|
360
|
-
# The given block will be passed the client host/port and the received
|
|
361
|
-
# message.
|
|
362
|
-
#
|
|
363
|
-
# @yieldparam [UDPServer] server
|
|
364
|
-
# The UDPServer.
|
|
365
|
-
#
|
|
366
|
-
# @yieldparam [String] client_host
|
|
367
|
-
# The source host of the message.
|
|
368
|
-
#
|
|
369
|
-
# @yieldparam [Integer] client_port
|
|
370
|
-
# The source port of the message.
|
|
371
|
-
#
|
|
372
|
-
# @yieldparam [String] mesg
|
|
373
|
-
# The received message.
|
|
374
|
-
#
|
|
375
|
-
# @return [nil]
|
|
376
|
-
#
|
|
377
|
-
# @example
|
|
378
|
-
# udp_server_loop(1337) do |server,(host,port),mesg|
|
|
379
|
-
# server.send('hello',host,port)
|
|
380
|
-
# end
|
|
381
|
-
#
|
|
382
|
-
# @api public
|
|
383
|
-
#
|
|
384
|
-
# @since 0.5.0
|
|
385
|
-
#
|
|
386
|
-
def udp_server_loop(port=nil,host=nil)
|
|
387
|
-
udp_server_session(port,host) do |server|
|
|
388
|
-
loop do
|
|
389
|
-
mesg, addrinfo = server.recvfrom(4096)
|
|
390
|
-
|
|
391
|
-
yield server, [addrinfo[3], addrinfo[1]], mesg if block_given?
|
|
392
|
-
end
|
|
393
|
-
end
|
|
394
|
-
end
|
|
395
|
-
|
|
396
|
-
#
|
|
397
|
-
# Creates a new UDPServer listening on a given host and port,
|
|
398
|
-
# accepts only one message from a client.
|
|
399
|
-
#
|
|
400
|
-
# @param [Integer] port
|
|
401
|
-
# The port the UDPServer will listen on.
|
|
402
|
-
#
|
|
403
|
-
# @param [String] host
|
|
404
|
-
# The optional host the UDPServer will bind to.
|
|
405
|
-
#
|
|
406
|
-
# @yield [server, (client_host, client_port), mesg]
|
|
407
|
-
# The given block will be passed the client host/port and the received
|
|
408
|
-
# message.
|
|
409
|
-
#
|
|
410
|
-
# @yieldparam [UDPServer] server
|
|
411
|
-
# The UDPServer.
|
|
412
|
-
#
|
|
413
|
-
# @yieldparam [String] client_host
|
|
414
|
-
# The source host of the message.
|
|
415
|
-
#
|
|
416
|
-
# @yieldparam [Integer] client_port
|
|
417
|
-
# The source port of the message.
|
|
418
|
-
#
|
|
419
|
-
# @yieldparam [String] mesg
|
|
420
|
-
# The received message.
|
|
421
|
-
#
|
|
422
|
-
# @return [nil]
|
|
423
|
-
#
|
|
424
|
-
# @example
|
|
425
|
-
# udp_recv(1337) do |server,(host,port),mesg|
|
|
426
|
-
# server.send('hello',host,port)
|
|
427
|
-
# end
|
|
428
|
-
#
|
|
429
|
-
# @api public
|
|
430
|
-
#
|
|
431
|
-
# @since 0.5.0
|
|
432
|
-
#
|
|
433
|
-
def udp_recv(port=nil,host=nil)
|
|
434
|
-
udp_server_session(port,host) do |server|
|
|
435
|
-
mesg, addrinfo = server.recvfrom(4096)
|
|
436
|
-
|
|
437
|
-
yield server, [addrinfo[3], addrinfo[1]], mesg if block_given?
|
|
438
|
-
end
|
|
439
|
-
end
|
|
440
|
-
|
|
441
|
-
#
|
|
442
|
-
# @deprecated
|
|
443
|
-
# Deprecated as of 0.5.0. Use {#udp_recv} instead.
|
|
444
|
-
#
|
|
445
|
-
def udp_single_server(port=nil,host=nil)
|
|
446
|
-
udp_recv(port,host)
|
|
447
|
-
end
|
|
448
|
-
end
|
|
449
|
-
end
|
|
450
|
-
end
|
data/lib/ronin/network/udp.rb
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# Copyright (c) 2006-2012 Hal Brodigan (postmodern.mod3 at gmail.com)
|
|
3
|
-
#
|
|
4
|
-
# This file is part of Ronin Support.
|
|
5
|
-
#
|
|
6
|
-
# Ronin Support is free software: you can redistribute it and/or modify
|
|
7
|
-
# it under the terms of the GNU Lesser General Public License as published
|
|
8
|
-
# by the Free Software Foundation, either version 3 of the License, or
|
|
9
|
-
# (at your option) any later version.
|
|
10
|
-
#
|
|
11
|
-
# Ronin Support is distributed in the hope that it will be useful,
|
|
12
|
-
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
13
|
-
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
14
|
-
# GNU Lesser General Public License for more details.
|
|
15
|
-
#
|
|
16
|
-
# You should have received a copy of the GNU Lesser General Public License
|
|
17
|
-
# along with Ronin Support. If not, see <http://www.gnu.org/licenses/>.
|
|
18
|
-
#
|
|
19
|
-
|
|
20
|
-
require 'ronin/network/udp/udp'
|
|
21
|
-
require 'ronin/network/udp/proxy'
|