bettercap 1.1.10 → 1.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/TODO.md +8 -7
  3. data/bin/bettercap +8 -2
  4. data/lib/bettercap.rb +5 -4
  5. data/lib/bettercap/context.rb +54 -8
  6. data/lib/bettercap/discovery/agents/arp.rb +17 -4
  7. data/lib/bettercap/discovery/agents/base.rb +16 -52
  8. data/lib/bettercap/discovery/agents/icmp.rb +25 -17
  9. data/lib/bettercap/discovery/agents/udp.rb +9 -20
  10. data/lib/bettercap/discovery/{discovery.rb → thread.rb} +10 -9
  11. data/lib/bettercap/error.rb +1 -2
  12. data/lib/bettercap/factories/{firewall_factory.rb → firewall.rb} +11 -7
  13. data/lib/bettercap/factories/{parser_factory.rb → parser.rb} +13 -3
  14. data/lib/bettercap/factories/{spoofer_factory.rb → spoofer.rb} +10 -3
  15. data/lib/bettercap/firewalls/base.rb +76 -0
  16. data/lib/bettercap/firewalls/linux.rb +26 -16
  17. data/lib/bettercap/firewalls/osx.rb +22 -13
  18. data/lib/bettercap/firewalls/redirection.rb +15 -1
  19. data/lib/bettercap/httpd/server.rb +5 -0
  20. data/lib/bettercap/logger.rb +29 -8
  21. data/lib/bettercap/network.rb +105 -105
  22. data/lib/bettercap/options.rb +99 -41
  23. data/lib/bettercap/packet_queue.rb +92 -0
  24. data/lib/bettercap/proxy/certstore.rb +49 -43
  25. data/lib/bettercap/proxy/module.rb +4 -2
  26. data/lib/bettercap/proxy/proxy.rb +7 -2
  27. data/lib/bettercap/proxy/request.rb +28 -16
  28. data/lib/bettercap/proxy/response.rb +23 -2
  29. data/lib/bettercap/proxy/stream_logger.rb +6 -0
  30. data/lib/bettercap/proxy/streamer.rb +13 -5
  31. data/lib/bettercap/proxy/thread_pool.rb +6 -14
  32. data/lib/bettercap/shell.rb +5 -3
  33. data/lib/bettercap/sniffer/parsers/base.rb +7 -1
  34. data/lib/bettercap/sniffer/parsers/custom.rb +6 -1
  35. data/lib/bettercap/sniffer/parsers/ftp.rb +8 -5
  36. data/lib/bettercap/sniffer/parsers/httpauth.rb +4 -1
  37. data/lib/bettercap/sniffer/parsers/https.rb +4 -1
  38. data/lib/bettercap/sniffer/parsers/irc.rb +8 -5
  39. data/lib/bettercap/sniffer/parsers/mail.rb +8 -5
  40. data/lib/bettercap/sniffer/parsers/ntlmss.rb +21 -18
  41. data/lib/bettercap/sniffer/parsers/post.rb +4 -1
  42. data/lib/bettercap/sniffer/parsers/url.rb +4 -1
  43. data/lib/bettercap/sniffer/sniffer.rb +7 -3
  44. data/lib/bettercap/spoofers/arp.rb +69 -94
  45. data/lib/bettercap/spoofers/base.rb +132 -0
  46. data/lib/bettercap/spoofers/icmp.rb +200 -0
  47. data/lib/bettercap/spoofers/none.rb +8 -2
  48. data/lib/bettercap/target.rb +117 -90
  49. data/lib/bettercap/update_checker.rb +6 -0
  50. data/lib/bettercap/version.rb +3 -1
  51. metadata +24 -8
  52. data/lib/bettercap/base/ifirewall.rb +0 -46
  53. data/lib/bettercap/base/ispoofer.rb +0 -32
@@ -16,7 +16,11 @@ require 'net/http'
16
16
  require 'json'
17
17
 
18
18
  module BetterCap
19
+ # This class is responsible for fetching the latest version of
20
+ # bettercap and check if a new one is available.
19
21
  class UpdateChecker
22
+ # Check if a new version is available, printing the results
23
+ # in human readable form.
20
24
  def self.check
21
25
  ver = self.get_latest_version
22
26
  if self.vton( BetterCap::VERSION ) < self.vton( ver )
@@ -28,6 +32,7 @@ class UpdateChecker
28
32
  Logger.error("Error '#{e.class}' while checking for updates: #{e.message}")
29
33
  end
30
34
 
35
+ # Convert a version string +v+ to a number to be used for comparation.
31
36
  def self.vton v
32
37
  vi = 0.0
33
38
  v.split('.').reverse.each_with_index do |e,i|
@@ -36,6 +41,7 @@ class UpdateChecker
36
41
  vi
37
42
  end
38
43
 
44
+ # Fetch the latest program version from rubygems.org API.
39
45
  def self.get_latest_version
40
46
  Logger.info 'Checking for updates ...'
41
47
 
@@ -10,6 +10,8 @@ This project is released under the GPL 3 license.
10
10
 
11
11
  =end
12
12
  module BetterCap
13
- VERSION = '1.1.10'
13
+ # Current version of bettercap.
14
+ VERSION = '1.2.0'
15
+ # Program banner.
14
16
  BANNER = File.read( File.dirname(__FILE__) + '/banner' ).gsub( '#VERSION#', "v#{VERSION}")
15
17
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bettercap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.10
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Margaritelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-01-03 00:00:00.000000000 Z
11
+ date: 2016-01-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize
@@ -66,6 +66,20 @@ dependencies:
66
66
  - - ~>
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.0.1
69
+ - !ruby/object:Gem::Dependency
70
+ name: net-dns
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 0.8.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.8.0
69
83
  description: A complete, modular, portable and easily extensible MITM framework.
70
84
  email: evilsocket@gmail.com
71
85
  executables:
@@ -78,18 +92,17 @@ files:
78
92
  - README.md
79
93
  - TODO.md
80
94
  - lib/bettercap/banner
81
- - lib/bettercap/base/ifirewall.rb
82
- - lib/bettercap/base/ispoofer.rb
83
95
  - lib/bettercap/context.rb
84
96
  - lib/bettercap/discovery/agents/arp.rb
85
97
  - lib/bettercap/discovery/agents/base.rb
86
98
  - lib/bettercap/discovery/agents/icmp.rb
87
99
  - lib/bettercap/discovery/agents/udp.rb
88
- - lib/bettercap/discovery/discovery.rb
100
+ - lib/bettercap/discovery/thread.rb
89
101
  - lib/bettercap/error.rb
90
- - lib/bettercap/factories/firewall_factory.rb
91
- - lib/bettercap/factories/parser_factory.rb
92
- - lib/bettercap/factories/spoofer_factory.rb
102
+ - lib/bettercap/factories/firewall.rb
103
+ - lib/bettercap/factories/parser.rb
104
+ - lib/bettercap/factories/spoofer.rb
105
+ - lib/bettercap/firewalls/base.rb
93
106
  - lib/bettercap/firewalls/linux.rb
94
107
  - lib/bettercap/firewalls/osx.rb
95
108
  - lib/bettercap/firewalls/redirection.rb
@@ -99,6 +112,7 @@ files:
99
112
  - lib/bettercap/monkey/packetfu/utils.rb
100
113
  - lib/bettercap/network.rb
101
114
  - lib/bettercap/options.rb
115
+ - lib/bettercap/packet_queue.rb
102
116
  - lib/bettercap/proxy/certstore.rb
103
117
  - lib/bettercap/proxy/module.rb
104
118
  - lib/bettercap/proxy/proxy.rb
@@ -120,6 +134,8 @@ files:
120
134
  - lib/bettercap/sniffer/parsers/url.rb
121
135
  - lib/bettercap/sniffer/sniffer.rb
122
136
  - lib/bettercap/spoofers/arp.rb
137
+ - lib/bettercap/spoofers/base.rb
138
+ - lib/bettercap/spoofers/icmp.rb
123
139
  - lib/bettercap/spoofers/none.rb
124
140
  - lib/bettercap/target.rb
125
141
  - lib/bettercap/update_checker.rb
@@ -1,46 +0,0 @@
1
- =begin
2
-
3
- BETTERCAP
4
-
5
- Author : Simone 'evilsocket' Margaritelli
6
- Email : evilsocket@gmail.com
7
- Blog : http://www.evilsocket.net/
8
-
9
- This project is released under the GPL 3 license.
10
-
11
- =end
12
- module BetterCap
13
- class IFirewall
14
- def initialize
15
- @frwd_initial_state = forwarding_enabled?
16
- end
17
-
18
- def enable_forwarding(enabled)
19
- not_implemented_method!
20
- end
21
-
22
- def forwarding_enabled?
23
- not_implemented_method!
24
- end
25
-
26
- def add_port_redirection( r )
27
- not_implemented_method!
28
- end
29
-
30
- def del_port_redirection( r )
31
- not_implemented_method!
32
- end
33
-
34
- def restore
35
- if forwarding_enabled? != @frwd_initial_state
36
- enable_forwarding @frwd_initial_state
37
- end
38
- end
39
-
40
- private
41
-
42
- def not_implemented_method!
43
- raise NotImplementedError, 'IFirewall: Unimplemented method!'
44
- end
45
- end
46
- end
@@ -1,32 +0,0 @@
1
- =begin
2
-
3
- BETTERCAP
4
-
5
- Author : Simone 'evilsocket' Margaritelli
6
- Email : evilsocket@gmail.com
7
- Blog : http://www.evilsocket.net/
8
-
9
- This project is released under the GPL 3 license.
10
-
11
- =end
12
- module BetterCap
13
- class ISpoofer
14
- def initialize
15
- not_implemented_method!
16
- end
17
-
18
- def start
19
- not_implemented_method!
20
- end
21
-
22
- def stop
23
- not_implemented_method!
24
- end
25
-
26
- private
27
-
28
- def not_implemented_method!
29
- raise NotImplementedError, 'ISpoofer: Unimplemented method!'
30
- end
31
- end
32
- end