bettercap 1.1.6 → 1.1.7

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bf6cb814001171e091631b3082e258cd807d0462
4
- data.tar.gz: de972dee2ca398ac9911c62e4c45b94cdda64bc1
3
+ metadata.gz: 99ec69d1a1e157a94b36b3f9162d807a2dea9238
4
+ data.tar.gz: 616717ef0f681792c14ba6ff5dd4341462f175c2
5
5
  SHA512:
6
- metadata.gz: 4f92ecfd53401918b86eb687ab998063480d2ede0130a87df395381eb25e7d5f92524d5da9f33f4c8e57744bb26af355b22b6f640fdf6d5700b9a75bd90c2259
7
- data.tar.gz: ace7626589c3c9b307c463320f227d0a52a6c9472132b201fe77be22d5d73c05a3f702dc69ebd5d7309974d8dc05cdc83768880b698c7a0656ce14ec0042161c
6
+ metadata.gz: f0cfae6e9605ffe0226b3d5bb3a85dafb2d808fd9e1ca3f3f020961769b3ba10fb5d87c9c7747de0fa2e4c3fc3a7a03fd3c0eca3f4710f9b19c1ffd9e5171fdf
7
+ data.tar.gz: 62981206dccd1fbaa956db5f2316dfe29f2a5e05dd495334f740c408adaf64ab1eb64da925cebe171f16ba00691131135cb26c0f3cffaec1abd967882a341b56
data/TODO.md CHANGED
@@ -2,20 +2,14 @@ This is a list of TODOs I use to keep track of tasks and upcoming features.
2
2
 
3
3
  ---
4
4
 
5
- - [x] Replace PacketFu::Utils::whoami? with something else.
6
- - [x] Capture to .pcap file.
7
- - [x] BPF filters.
8
- - [x] BeEF proxy module ( [BeefBOX](https://github.com/evilsocket/bettercap-proxy-modules/blob/master/beefbox.rb) ).
9
- - [x] Use raw file arp parsing instead of "arp -a" to improve speed. ( Solved with arp -a -n )
10
- - [x] sslmitm
11
- - [x] Implement --custom-proxy option to redirect traffic to [3rd party tools such as Burp](https://twitter.com/c3c/status/670335125662601216).
5
+ - [x] Implement `--ignore ADDR,ADDR,ADDR` option to filter out specific addresses from the targets list.
6
+ - [ ] Rewrite proxy class using [em-proxy](https://github.com/igrigorik/em-proxy) library.
7
+ - [ ] [Active packet filtering/injection/etc](https://github.com/evilsocket/bettercap/issues/75) ( maybe using [this](https://github.com/gdelugre/ruby-nfqueue) ).
12
8
  - [ ] *BSD Support.
13
9
  - [ ] HTTP/2 Support.
14
- - [ ] [Active packet filtering/injection/etc](https://github.com/evilsocket/bettercap/issues/75) ( maybe using [this](https://github.com/gdelugre/ruby-nfqueue) ).
15
10
 
16
11
  **Maybe**
17
12
 
18
- - [ ] Replace webrick with thin ( proxy too? )
19
13
  - [ ] ICMP Redirect ? ( only half duplex and filtered by many firewalls anyway ... dunno ).
20
14
  - [ ] DNS Spoofing ( not sure if it actually makes any sense ).
21
15
  - [ ] Windows Support? ( OMG PLZ NO! )
data/bin/bettercap CHANGED
@@ -40,6 +40,10 @@ begin
40
40
  ctx.options[:target] = v
41
41
  end
42
42
 
43
+ opts.on( '--ignore ADDRESS1,ADDRESS2', 'Ignore these addresses if found while searching for targets.' ) do |v|
44
+ ctx.options[:ignore] = v
45
+ end
46
+
43
47
  opts.on( '-O', '--log LOG_FILE', 'Log all messages into a file, if not specified the log messages will be only print into the shell.' ) do |v|
44
48
  ctx.options[:logfile] = v
45
49
  end
@@ -205,6 +209,22 @@ begin
205
209
  ctx.targets = valid_targets.map { |target| Target.new(target) }
206
210
  end
207
211
 
212
+ unless ctx.options[:ignore].nil?
213
+ ignore = ctx.options[:ignore].split(",")
214
+ valid = ignore.select { |target| Network.is_ip?(target) }
215
+
216
+ raise BetterCap::Error, "Invalid ignore addresses specified." if valid.empty?
217
+
218
+ invalid = ignore - valid
219
+ invalid.each do |target|
220
+ Logger.warn "Not a valid address: #{target}"
221
+ end
222
+
223
+ ctx.options[:ignore] = valid
224
+
225
+ Logger.warn "Ignoring #{valid.join(", ")} ."
226
+ end
227
+
208
228
  ctx.spoofer = []
209
229
  spoofer_modules_names = ctx.options[:spoofer].split(",")
210
230
  spoofer_modules_names.each do |module_name|
@@ -45,6 +45,8 @@ class Context
45
45
  debug: false,
46
46
  arpcache: false,
47
47
 
48
+ ignore: nil,
49
+
48
50
  sniffer: false,
49
51
  sniffer_pcap: nil,
50
52
  sniffer_filter: nil,
@@ -28,9 +28,13 @@ class ArpAgent < BaseAgent
28
28
  m = /[^\s]+\s+\(([0-9\.]+)\)\s+at\s+([a-f0-9:]+).+#{ctx.ifconfig[:iface]}.*/i.match(line)
29
29
  if !m.nil?
30
30
  if m[1] != ctx.gateway and m[1] != ctx.ifconfig[:ip_saddr] and m[2] != 'ff:ff:ff:ff:ff:ff'
31
- target = Target.new( m[1], m[2] )
32
- targets << target
33
- Logger.debug "FOUND #{target}"
31
+ if !ctx.options[:ignore].nil? and ctx.options[:ignore].include?( m[1] )
32
+ Logger.debug "Ignoring #{m[1]} ..."
33
+ else
34
+ target = Target.new( m[1], m[2] )
35
+ targets << target
36
+ Logger.debug "FOUND #{target}"
37
+ end
34
38
  end
35
39
  end
36
40
  end
@@ -31,14 +31,14 @@ class LinuxFirewall < IFirewall
31
31
  # accept all
32
32
  shell.execute('iptables -P FORWARD ACCEPT')
33
33
  # add redirection
34
- shell.execute("iptables -t nat -A PREROUTING -i #{iface} -p #{proto} --dport #{from} -j REDIRECT --to #{addr}:#{to}")
34
+ shell.execute("iptables -t nat -A PREROUTING -i #{iface} -p #{proto} --dport #{from} -j DNAT --to #{addr}:#{to}")
35
35
  end
36
36
 
37
37
  def del_port_redirection( iface, proto, from, addr, to )
38
38
  # remove post route
39
39
  shell.execute('iptables -t nat -D POSTROUTING -s 0/0 -j MASQUERADE')
40
40
  # remove redirection
41
- shell.execute("iptables -t nat -D PREROUTING -i #{iface} -p #{proto} --dport #{from} -j REDIRECT --to #{addr}:#{to}")
41
+ shell.execute("iptables -t nat -D PREROUTING -i #{iface} -p #{proto} --dport #{from} -j DNAT --to #{addr}:#{to}")
42
42
  end
43
43
 
44
44
  private
@@ -10,6 +10,6 @@ This project is released under the GPL 3 license.
10
10
 
11
11
  =end
12
12
  module BetterCap
13
- VERSION = '1.1.6'
13
+ VERSION = '1.1.7'
14
14
  BANNER = File.read( File.dirname(__FILE__) + '/banner' ).gsub( '#VERSION#', "v#{VERSION}")
15
15
  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.6
4
+ version: 1.1.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Simone Margaritelli
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-11-29 00:00:00.000000000 Z
11
+ date: 2015-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize