bettercap 1.1.6 → 1.1.7

Sign up to get free protection for your applications and to get access to all the features.
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