bettercap 1.5.9 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (91) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +9 -9
  3. data/lib/bettercap.rb +2 -1
  4. data/lib/bettercap/context.rb +1 -1
  5. data/lib/bettercap/discovery/agents/arp.rb +1 -1
  6. data/lib/bettercap/discovery/agents/base.rb +1 -1
  7. data/lib/bettercap/discovery/agents/icmp.rb +1 -1
  8. data/lib/bettercap/discovery/agents/udp.rb +1 -1
  9. data/lib/bettercap/discovery/thread.rb +1 -1
  10. data/lib/bettercap/error.rb +1 -1
  11. data/lib/bettercap/firewalls/base.rb +9 -2
  12. data/lib/bettercap/firewalls/bsd.rb +36 -14
  13. data/lib/bettercap/firewalls/linux.rb +7 -1
  14. data/lib/bettercap/firewalls/redirection.rb +1 -1
  15. data/lib/bettercap/loader.rb +1 -1
  16. data/lib/bettercap/logger.rb +1 -1
  17. data/lib/bettercap/monkey/celluloid/actor.rb +1 -1
  18. data/lib/bettercap/monkey/celluloid/io/udp_socket.rb +1 -1
  19. data/lib/bettercap/monkey/openssl/server.rb +1 -1
  20. data/lib/bettercap/monkey/packetfu/pcap.rb +1 -1
  21. data/lib/bettercap/monkey/packetfu/utils.rb +1 -1
  22. data/lib/bettercap/monkey/system.rb +1 -1
  23. data/lib/bettercap/network/arp_reader.rb +1 -1
  24. data/lib/bettercap/network/hw-prefixes +8826 -7222
  25. data/lib/bettercap/network/network.rb +25 -1
  26. data/lib/bettercap/network/packet_queue.rb +1 -1
  27. data/lib/bettercap/network/protos/base.rb +1 -1
  28. data/lib/bettercap/network/protos/dhcp.rb +1 -1
  29. data/lib/bettercap/network/protos/mysql.rb +1 -1
  30. data/lib/bettercap/network/protos/ntlm.rb +1 -1
  31. data/lib/bettercap/network/protos/snmp.rb +1 -1
  32. data/lib/bettercap/network/protos/teamviewer.rb +1 -1
  33. data/lib/bettercap/network/servers/dnsd.rb +1 -1
  34. data/lib/bettercap/network/servers/httpd.rb +1 -1
  35. data/lib/bettercap/network/target.rb +25 -15
  36. data/lib/bettercap/network/validator.rb +1 -1
  37. data/lib/bettercap/options/core_options.rb +10 -2
  38. data/lib/bettercap/options/options.rb +1 -1
  39. data/lib/bettercap/options/proxy_options.rb +1 -3
  40. data/lib/bettercap/options/server_options.rb +1 -1
  41. data/lib/bettercap/options/sniff_options.rb +1 -1
  42. data/lib/bettercap/options/spoof_options.rb +1 -1
  43. data/lib/bettercap/pluggable.rb +1 -1
  44. data/lib/bettercap/proxy/http/module.rb +1 -1
  45. data/lib/bettercap/proxy/http/modules/injectcss.rb +1 -1
  46. data/lib/bettercap/proxy/http/modules/injecthtml.rb +1 -1
  47. data/lib/bettercap/proxy/http/modules/injectjs.rb +1 -1
  48. data/lib/bettercap/proxy/http/proxy.rb +6 -4
  49. data/lib/bettercap/proxy/http/request.rb +1 -1
  50. data/lib/bettercap/proxy/http/response.rb +1 -1
  51. data/lib/bettercap/proxy/http/ssl/authority.rb +1 -1
  52. data/lib/bettercap/proxy/http/ssl/bettercap-ca.pem +50 -47
  53. data/lib/bettercap/proxy/http/ssl/server.rb +8 -7
  54. data/lib/bettercap/proxy/http/sslstrip/cookiemonitor.rb +1 -1
  55. data/lib/bettercap/proxy/http/sslstrip/strip.rb +1 -1
  56. data/lib/bettercap/proxy/http/streamer.rb +1 -1
  57. data/lib/bettercap/proxy/stream_logger.rb +3 -2
  58. data/lib/bettercap/proxy/tcp/module.rb +1 -1
  59. data/lib/bettercap/proxy/tcp/proxy.rb +2 -2
  60. data/lib/bettercap/shell.rb +1 -1
  61. data/lib/bettercap/sniffer/parsers/base.rb +1 -1
  62. data/lib/bettercap/sniffer/parsers/cookie.rb +43 -2
  63. data/lib/bettercap/sniffer/parsers/custom.rb +1 -1
  64. data/lib/bettercap/sniffer/parsers/dhcp.rb +2 -1
  65. data/lib/bettercap/sniffer/parsers/dict.rb +1 -1
  66. data/lib/bettercap/sniffer/parsers/ftp.rb +1 -1
  67. data/lib/bettercap/sniffer/parsers/httpauth.rb +1 -1
  68. data/lib/bettercap/sniffer/parsers/https.rb +5 -11
  69. data/lib/bettercap/sniffer/parsers/irc.rb +1 -1
  70. data/lib/bettercap/sniffer/parsers/mail.rb +1 -1
  71. data/lib/bettercap/sniffer/parsers/mpd.rb +1 -1
  72. data/lib/bettercap/sniffer/parsers/mysql.rb +1 -1
  73. data/lib/bettercap/sniffer/parsers/ntlmss.rb +1 -1
  74. data/lib/bettercap/sniffer/parsers/pgsql.rb +1 -1
  75. data/lib/bettercap/sniffer/parsers/post.rb +1 -1
  76. data/lib/bettercap/sniffer/parsers/redis.rb +2 -1
  77. data/lib/bettercap/sniffer/parsers/rlogin.rb +2 -1
  78. data/lib/bettercap/sniffer/parsers/snmp.rb +2 -1
  79. data/lib/bettercap/sniffer/parsers/snpp.rb +2 -1
  80. data/lib/bettercap/sniffer/parsers/teamviewer.rb +1 -1
  81. data/lib/bettercap/sniffer/parsers/url.rb +1 -1
  82. data/lib/bettercap/sniffer/parsers/whatsapp.rb +1 -1
  83. data/lib/bettercap/sniffer/sniffer.rb +21 -6
  84. data/lib/bettercap/spoofers/arp.rb +1 -1
  85. data/lib/bettercap/spoofers/base.rb +1 -1
  86. data/lib/bettercap/spoofers/icmp.rb +1 -1
  87. data/lib/bettercap/spoofers/none.rb +1 -1
  88. data/lib/bettercap/update_checker.rb +1 -1
  89. data/lib/bettercap/version.rb +2 -2
  90. metadata +3 -4
  91. data/lib/bettercap/memory.rb +0 -56
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -85,6 +85,30 @@ class << self
85
85
  hw
86
86
  end
87
87
 
88
+ def ip2name( address )
89
+ begin
90
+ names = Resolv.getnames(address)
91
+ hostname = names[0]
92
+ names.each do |name|
93
+ unless name.nil? or name.end_with?('.') or name.strip.empty?
94
+ hostname = name
95
+ end
96
+ end
97
+ unless hostname.empty?
98
+ return hostname
99
+ end
100
+ rescue; end
101
+
102
+ begin
103
+ hostname = Resolv.getname(address)
104
+ unless hostname.empty?
105
+ return hostname
106
+ end
107
+ rescue; end
108
+
109
+ address.to_s
110
+ end
111
+
88
112
  private
89
113
 
90
114
  # Start discovery agents and wait for +ctx.timeout+ seconds for them to
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  SNMP network protos:
11
11
  Author : Matteo Cantoni
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -97,7 +97,7 @@ class Target
97
97
 
98
98
  # Return a compact string representation of this object.
99
99
  def to_s_compact
100
- return "#{@name}/#{@ip}" if @name
100
+ return "#{@name.light_blue}/#{@ip}" if @name
101
101
  @ip
102
102
  end
103
103
 
@@ -122,21 +122,31 @@ private
122
122
 
123
123
  # Attempt to perform a NBNS name resolution for this target.
124
124
  def resolve!
125
- resp, sock = nil, nil
126
- begin
127
- sock = UDPSocket.open
128
- sock.send( NBNS_REQUEST, 0, @ip, NBNS_PORT )
129
- resp = if select([sock], nil, nil, NBNS_TIMEOUT)
130
- sock.recvfrom(NBNS_BUFSIZE)
125
+ hostname = Network.ip2name(@ip)
126
+ if hostname == @ip
127
+ resp, sock = nil, nil
128
+ begin
129
+ sock = UDPSocket.open
130
+ sock.send( NBNS_REQUEST, 0, @ip, NBNS_PORT )
131
+ resp = if select([sock], nil, nil, NBNS_TIMEOUT)
132
+ sock.recvfrom(NBNS_BUFSIZE)
133
+ end
134
+ if resp
135
+ @name = parse_nbns_response resp
136
+ Logger.info "Found NetBIOS name '#{@name}' for address #{@ip}"
137
+ end
138
+ rescue Exception => e
139
+ Logger.debug e
140
+ ensure
141
+ sock.close if sock
131
142
  end
132
- if resp
133
- @name = parse_nbns_response resp
134
- Logger.info "Found NetBIOS name '#{@name}' for address #{@ip}"
143
+ else
144
+ if not Network::Validator.is_ip?(hostname) and hostname.include?('.')
145
+ @name = hostname.split('.')[0]
146
+ else
147
+ @name = hostname
135
148
  end
136
- rescue Exception => e
137
- Logger.debug e
138
- ensure
139
- sock.close if sock
149
+ Logger.info "Found hostname #{@name.green} for address #{@ip}"
140
150
  end
141
151
  end
142
152
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -105,10 +105,18 @@ class CoreOptions
105
105
  opts.on( '--check-updates', 'Will check if any update is available and then exit.' ) do
106
106
  @check_updates = true
107
107
  end
108
+
109
+ opts.on( '-R', '--rainbows', 'Rainbow output, because that\'s a really helpful thing to have (requires the "lolize" gem to be installed).' ) do
110
+ begin
111
+ require 'lolize/auto'
112
+ rescue LoadError
113
+ raise BetterCap::Error, "GEM lolize not found, please install it in order to use this option"
114
+ end
115
+ end
108
116
 
109
117
  opts.on( '-h', '--help', 'Display the available options.') do
110
118
  puts opts
111
- puts "\nFor examples & docs please visit " + "http://bettercap.org/docs/".bold
119
+ puts "\nFor examples & docs please visit " + "https://bettercap.org/docs/".bold
112
120
  exit
113
121
  end
114
122
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -181,7 +181,6 @@ class ProxyOptions
181
181
 
182
182
  opts.on( '--http-ports PORT1,PORT2', "Comma separated list of HTTP ports to redirect to the proxy, default to #{@http_ports.map{|x| x.to_s.yellow }.join(', ')}." ) do |v|
183
183
  @http_ports = ProxyOptions.parse_ports( v )
184
- @proxy = true
185
184
  end
186
185
 
187
186
  opts.on( '--proxy-upstream-address ADDRESS', 'If set, only requests coming from this server address will be redirected to the HTTP/HTTPS proxies.' ) do |v|
@@ -210,7 +209,6 @@ class ProxyOptions
210
209
 
211
210
  opts.on( '--https-ports PORT1,PORT2', "Comma separated list of HTTPS ports to redirect to the proxy, default to #{@https_ports.map{|x| x.to_s.yellow }.join(', ')}." ) do |v|
212
211
  @https_ports = ProxyOptions.parse_ports( v )
213
- @proxy_https = true
214
212
  end
215
213
 
216
214
  opts.separator ""
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -20,13 +20,15 @@ class Proxy
20
20
  # Initialize the transparent proxy, making it listen on +address+:+port+.
21
21
  # If +is_https+ is true a HTTPS proxy will be created, otherwise a HTTP one.
22
22
  def initialize( address, port, is_https )
23
+ opts = Context.get.options.proxies
24
+
23
25
  @socket = nil
24
26
  @address = address
25
27
  @port = port
26
28
  @is_https = is_https
27
29
  @type = is_https ? 'HTTPS' : 'HTTP'
28
- @upstream_port = is_https ? 443 : 80
29
- @allow_local = Context.get.options.proxies.allow_local_connections
30
+ @upstream_port = is_https ? opts.https_ports[0] : opts.http_ports[0]
31
+ @allow_local = opts.allow_local_connections
30
32
  @server = nil
31
33
  @sslserver = nil
32
34
  @main_thread = nil
@@ -63,7 +65,7 @@ class Proxy
63
65
  @socket = TCPServer.new( @address, @port )
64
66
 
65
67
  if @is_https
66
- @sslserver = SSL::Server.new( @socket )
68
+ @sslserver = SSL::Server.new( @socket, @upstream_port )
67
69
  @server = @sslserver.io
68
70
  else
69
71
  @server = @socket
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -5,7 +5,7 @@ BETTERCAP
5
5
 
6
6
  Author : Simone 'evilsocket' Margaritelli
7
7
  Email : evilsocket@gmail.com
8
- Blog : http://www.evilsocket.net/
8
+ Blog : https://www.evilsocket.net/
9
9
 
10
10
  This project is released under the GPL 3 license.
11
11
 
@@ -1,49 +1,52 @@
1
- -----BEGIN PRIVATE KEY-----
2
- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCaoeZj2x7hY4RV
3
- L4S6F6GfsEAye1/rTivXQCBsEMdBifPFCWz4i1s5v1CbxO4x4dfgtJiVniGyMsnQ
4
- pWOsZ/kjt74FIzgA2A7RTsz6+jvxFnw8uNH2UvHAlXerpghBw7F46HTKb7fPGlXI
5
- eMrXd7SQ9fonNM1fQ0L37+ILAaZIIXjm3bM7KWuM7+8qr2bxLxP9A1ud5ruOLNF+
6
- jxcCykm6ir/eo3M+4Yo9pOwsIvg9foOw7ahEVSB7nAZB9J2ohbCFfG7sFhKKgWFT
7
- xKBiEHny8qaD1/16FID/SZVXhFjjK2n8Gd87cIk104392H/MQVWui9rkocwszCov
8
- jFVOnlhjAgMBAAECggEAAM/Ivc1wpA45q5jMQY3OM2BhdeJf5oRKhp63jNmpshZf
9
- STF7ePKCUBNJAQhPl8NvtqY8Bs0FsEHD/Wxg0Y7aJ+3W+X/t01NPAJpBSS/3EJTl
10
- ogv2TiyxSCmAr033zSCR1eiidE2R0Wx59strhSYDtJ8V6Q7F5TIdL9/6d8RScx53
11
- xT/efogV3ebmXNhOOG6FrjQ5uCW7KZUXRaL3nozhEldFpzjak1XKVgKLv7OBaLwI
12
- tCgVGkfJpZbTYV2sht32JAwkEyTPtS8/49A4RRu5c62pLiDK5TkQGxtBLBpBTFoi
13
- f95LeqyApRDR5zTeP8uvHyK/Of5YBLJljkx+YDYugQKBgQDJN4KXOhV4DGVvriwA
14
- RBEd5nNJ/t/MATcGrFX4uqApdsMux9cpRaNa1hRxn2icm/whHrOFaBROAB7L6Zd4
15
- uLnrzpwFTq9YMH4AXe+sPphAtuk7ZULj1qkZ3yOjiKAJcJ4LWUxQ3H32KU6GIu+e
16
- x/e+B95pmk+s9XKajMSkKaMkWwKBgQDEu4fzhRyVvntq1s6D5R9du9eRV/6E5hLs
17
- gylMx8smzHQ46Ef5df5uEJUfkzyCJmOMGpKAW5czsLgKkx05Xw97xwn++/9lhHas
18
- E4SFArrIkAvBmiM44fZSKY3sVUWAHKYJy+Lg/7SR4cFVOxRyYhrFLjeXb9mOEdTo
19
- a6xmM3M6mQKBgDRpqDOaJqN5nyaDGOUM1eSS9a7tm//4xQuQ8mfyvOtwCxFxbqNK
20
- h22O3A5otogsvXUnGR4D6V4T+/GjrBf/DjbVP6DGSThQkVGpJlgYifI5cvFMxCqy
21
- 7KNXk2HyobUzx4cvQIjDlm/7fH/GM+KJNggi5pVdY6mq2apWRpZ4Xg2HAoGBAJOs
22
- WQ6Yuq5Ev4uhFn+2+2Z23AeDz8+ejFHw2o2B46KKEiutYGmHAqdH10hOUzs26b5/
23
- K70iA0uPuXZmm6c3Df5Rl9VI/5sKZbIhLHZTaDWouspmk03df/KIsrnWAEd8Ob5c
24
- xz8xci+XEHKT2HNL5OBiIuSP1vRnujOEr3I/6JzxAoGBAJlu4gjm8StuL5ALy43a
25
- K62Nrsio/RhPjVUKXMtzTOgf2f2mRn04YibRNbB5Gzum4oWkjyue7qhBjIt/FX1Z
26
- kecFhr5JG4u/yyR6R2BMw4Jvh9kV6Y/GnDpSga8sK2P3QKFD01Qtw72x5xCj94CL
27
- kWqGcTRdiMAWQsRKvndzWAMc
28
- -----END PRIVATE KEY-----
1
+ -----BEGIN RSA PRIVATE KEY-----
2
+ MIIEogIBAAKCAQEAruvJ65uOclbgx1V+lNS0n1dtRj8V3iK4oYfFm6zk+bYVQgnh
3
+ NL2+S5PyWdP0XdqsQHC/c4DLkMGjkLIt4KSr78Z5odAozg/6Qk3xHyNanM4GfCrk
4
+ RIm/2jqEY2LlDVagDVBWmpw8KHOOl5FhOx0sgMlr1BNZ5OCmD0XUyAvAVc+8X0fD
5
+ YWZMhPZFNHBQL2H5u1esRHlC7xIBy0JRiJZw7sf3owBLlz5KNpOVtw/LVtZUii6R
6
+ ODS+rMHlqvmoqckqV/7XvxvcoTIpU6I7SH75NxsxoltmbfrdTF/iOoxhQoQBM1Hq
7
+ dEUaXsiuM/cc3+QspnVUDImRAJ1sEWKVSsBu1QIDAQABAoIBAAxR/z7hDf9vrxVb
8
+ KDdDZBV1CvVPrDKhL2/xKDH204njEUw9dedJFgYsvX0mOKgDpu5DArkX8T6Y5PRk
9
+ GGciMhoJWLfU+YrKBU52Pu16h/9TY5GLU9if+ytbw8dcR9XQrCVD61Woe3Q972Ut
10
+ kDOhsmi/xyCA3GwKhqe8u2f7q+hfQ3xoSOAtqODQrMq3fahhYwJHj447wxc6i4Jb
11
+ tkuR/zkSyfwauoZisJsQCz1ajq17Z2hsm/7LqO/KNUxSvHn+kWFVdZU6EtvXXz2P
12
+ DAByb+jhKK/UiCE1+wDV2CZIeCLJf2ng8tsVLBS785dNrG10/sQkAdvQapTs3tia
13
+ BJ07+QECgYEA4n//r/GE3FV6hiFwIUtqPBJ8cxp0V9gXZChjwQYH809V3opmYjRR
14
+ gtG+k2mtgyCvkN/OQn2xBTwtZpOfl3Lc9fLFwMsf9pjmB6vrboWyIXUAl0uPb0vo
15
+ gI6TohwFSk7u0UIbYTpMNWV26kbE+WZBP1mUpgGRgF1GZy8z8DJ7zTkCgYEAxbQJ
16
+ OZE8xslaKOybcsegJinSsRQYXdXj1ieSN18L5UW2QRaQq6dnu4oQjjQ3dz0igAPG
17
+ jRkJSP+2YI8kVpvpWwAhMPsaEEwOSjMfa5/WI+LgZQsVLH/Ksm+qCG5az1bgC9E/
18
+ lzNQyc3WZ+fNN7XlsAKhWGxzftERmMRoehmRCn0CgYA3/PvvOfxlmpuW3F0jXcj8
19
+ 4HTy3u8zZ68givtdk2gTtOC9CekVDWm4tLAvMEg7ybCcVzZdKUTAzodKe+NPRI1q
20
+ HoDTj2JvSoxSCSVBRLsrmghzXbIvCMyIOrYztEl6fNh70aOC/S4pZNNoReYa4DPw
21
+ vOwJvQmCeYwVpY1pKpF/wQKBgHTEH4qrmBzEQYbYL/t7ob/IhdLmTnnlYRpT5szj
22
+ SxBPuxP4MtvfFKo0IhELEBNRvTWkhTlCpzRBK0MeZ9TrYsjHa9MVC1DCytHSHeWf
23
+ 0ocBcYzcHdZZZ6s5vlAadXHuGoeAP7GaskVuWAqoYpFb0lvBQfAKpbAp5N24awhq
24
+ Xzq1AoGAOCJL1NcVLjr85BOC0VNKNC/SZ5gLe4oE+wQCTvU4VU5q9cob6qCxKQ+8
25
+ NILnnfoW4JNPgyvoo7Vd3lLzBVbJtuAeAeqEM7ekTVvdbjHtLtuOYQBfM+vNmzMw
26
+ MKJmB1zChrDOK9brZUijtaGruggwZ7tswpG8Y4FYA5T6Vt7CgIc=
27
+ -----END RSA PRIVATE KEY-----
29
28
  -----BEGIN CERTIFICATE-----
30
- MIIDZzCCAk+gAwIBAgIJANKD84I3l13QMA0GCSqGSIb3DQEBCwUAMEoxCzAJBgNV
31
- BAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQKDAliZXR0ZXJjYXAx
32
- EjAQBgNVBAMMCWJldHRlcmNhcDAeFw0xNjAyMjMwMTAxNTlaFw0xNzAyMjIwMTAx
33
- NTlaMEoxCzAJBgNVBAYTAlVTMRMwEQYDVQQIDApTb21lLVN0YXRlMRIwEAYDVQQK
34
- DAliZXR0ZXJjYXAxEjAQBgNVBAMMCWJldHRlcmNhcDCCASIwDQYJKoZIhvcNAQEB
35
- BQADggEPADCCAQoCggEBAJqh5mPbHuFjhFUvhLoXoZ+wQDJ7X+tOK9dAIGwQx0GJ
36
- 88UJbPiLWzm/UJvE7jHh1+C0mJWeIbIyydClY6xn+SO3vgUjOADYDtFOzPr6O/EW
37
- fDy40fZS8cCVd6umCEHDsXjodMpvt88aVch4ytd3tJD1+ic0zV9DQvfv4gsBpkgh
38
- eObdszspa4zv7yqvZvEvE/0DW53mu44s0X6PFwLKSbqKv96jcz7hij2k7Cwi+D1+
39
- g7DtqERVIHucBkH0naiFsIV8buwWEoqBYVPEoGIQefLypoPX/XoUgP9JlVeEWOMr
40
- afwZ3ztwiTXTjf3Yf8xBVa6L2uShzCzMKi+MVU6eWGMCAwEAAaNQME4wHQYDVR0O
41
- BBYEFBspFbBsNWr57dZicWMDjOaRxQoPMB8GA1UdIwQYMBaAFBspFbBsNWr57dZi
42
- cWMDjOaRxQoPMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJXGBH8H
43
- DKttB8KIbFzVRVcBQ5Wvw+3oFVlmnotQuxz17fGr2ZXEPiY8/P89MgAUqVkiaIS5
44
- EZOnIfPu7icGWvT0N3eoxnLaTdCFy0NOHXJh2+zrav5FWsULsmSxOBxItvkxq0fN
45
- yk1P/5kLmrJKnKUJKH7QDjNeEqJdfSx+dg2435a5pcvrVfjCGrd8F8CIED6sYd0n
46
- pibpJXi8TILiPrjNhTWT2Y5XflfV3Ho/+jIbeY3wzsApwsBINy0ticABdPhtEGHk
47
- nkR6dqDv1rSuzify5OdYeLy/UX4R/vv1BS0PLScE1lUB16ybzJ2imWJgOQs6J4E6
48
- hHakJaVPVAPFWUU=
29
+ MIIEPTCCAyWgAwIBAgIJANs3OdOm704WMA0GCSqGSIb3DQEBCwUAMIG0MQswCQYD
30
+ VQQGEwJVUzEQMA4GA1UECAwHQXJpem9uYTETMBEGA1UEBwwKU2NvdHRzZGFsZTEa
31
+ MBgGA1UECgwRR29EYWRkeS5jb20sIEluYy4xLTArBgNVBAsMJGh0dHA6Ly9jZXJ0
32
+ cy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5LzEzMDEGA1UEAwwqR28gRGFkZHkgU2Vj
33
+ dXJlIENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTE2MTIyMzE4NDQyNFoX
34
+ DTE3MDEyMjE4NDQyNFowgbQxCzAJBgNVBAYTAlVTMRAwDgYDVQQIDAdBcml6b25h
35
+ MRMwEQYDVQQHDApTY290dHNkYWxlMRowGAYDVQQKDBFHb0RhZGR5LmNvbSwgSW5j
36
+ LjEtMCsGA1UECwwkaHR0cDovL2NlcnRzLmdvZGFkZHkuY29tL3JlcG9zaXRvcnkv
37
+ MTMwMQYDVQQDDCpHbyBEYWRkeSBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
38
+ IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCu68nrm45yVuDH
39
+ VX6U1LSfV21GPxXeIrihh8WbrOT5thVCCeE0vb5Lk/JZ0/Rd2qxAcL9zgMuQwaOQ
40
+ si3gpKvvxnmh0CjOD/pCTfEfI1qczgZ8KuREib/aOoRjYuUNVqANUFaanDwoc46X
41
+ kWE7HSyAyWvUE1nk4KYPRdTIC8BVz7xfR8NhZkyE9kU0cFAvYfm7V6xEeULvEgHL
42
+ QlGIlnDux/ejAEuXPko2k5W3D8tW1lSKLpE4NL6sweWq+aipySpX/te/G9yhMilT
43
+ ojtIfvk3GzGiW2Zt+t1MX+I6jGFChAEzUep0RRpeyK4z9xzf5CymdVQMiZEAnWwR
44
+ YpVKwG7VAgMBAAGjUDBOMB0GA1UdDgQWBBQc3wugFWxNWEKBJRzprSIA82S6gDAf
45
+ BgNVHSMEGDAWgBQc3wugFWxNWEKBJRzprSIA82S6gDAMBgNVHRMEBTADAQH/MA0G
46
+ CSqGSIb3DQEBCwUAA4IBAQCDZANKvSa7NX36jDMtQa95aDwTSnEo+AOKQ5lnG5Oa
47
+ ztYnfqD49BwJUoZzO8J5nHqpSWjmssTOrQ0jc3KR/UjnJ73Gw+nppqr9UeHWSqvW
48
+ kuCPxj5/zo+DB0rrMcIZVBqKgkiM5g4CHC+N743PnocmwZtB+uvGjNfaIFknV4Ee
49
+ JKSFGmAtUk1sJn5E3052aDQR7TO7cXPwu8AL9OHYPCd4XmT59cH1pl/ULvJ1Isve
50
+ aY/qcWypMMlsh46UoJooepIbrTPXYWKA2cdPQ9N5vNeg6SYbkwSuZdbgB84ibA9r
51
+ rtNOmsdL7Dbr0FGINHhzhKlS60bVrmEAbyAMVljCC8s6
49
52
  -----END CERTIFICATE-----