bettercap 1.1.10 → 1.2.0

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.
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