hidden-hippo 0.1.0 → 0.1.1

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: 723e65ca63ec61202d7e3ba1c8e4097a418ad5c4
4
- data.tar.gz: d60d6875a2378c997e3ec2b68a8cf5637640ea72
3
+ metadata.gz: ccb9f7869a3c37fb7c556f6e0fb4e7e06f5e664b
4
+ data.tar.gz: a17f144d14ce85b30982a3aa0c7a3923346618de
5
5
  SHA512:
6
- metadata.gz: a7a3c6d86d8f8a72ad5880728d5fc8248a914f1c0f2363f52f5fad85d5ec51067752843e8c763afa16c71eff71acd4cdce5c39f0590d0afab2661c21bb3625e0
7
- data.tar.gz: 6235f7eadc6ab0bbcb22ab3f9e24d2165440e195a8c984911988b3d3cf9e90d684ac12bc8106f790df923d2cf21e3e20b055132b129ee73fe6d5b519a5593c08
6
+ metadata.gz: 63fe3e5700e5ee644177a7b1d00232ac21034cc4d632f76d3e10d70517f6449c7324d9b614ace7b651016528e26d2309b02cfcef3b67c71eb6a2b05901594cbc
7
+ data.tar.gz: 30fe38b33df3f9d567196f10dcf544c900fa6183d1659366a8503398cc45601f8bbcd3ee9d6074196ea07c300de8bc5832b2f8a086216fa3a175713f9749be74
@@ -5,8 +5,12 @@
5
5
  <%= erb :possibilities, locals: {name: 'Host name', possibilities: dossier.hostname} %>
6
6
  <%= erb :possibilities, locals: {name: 'User name', possibilities: dossier.username} %>
7
7
  <%= erb :possibilities, locals: {name: 'Email', possibilities: dossier.email} %>
8
- <%= erb :possibilities, locals: {name: 'Device', possibilities: dossier.device} %>
9
8
  <%= erb :possibilities, locals: {name: 'Gender', possibilities: dossier.gender} %>
10
9
  <%= erb :possibilities, locals: {name: 'Age', possibilities: dossier.age} %>
11
10
  <%= erb :possibilities, locals: {name: 'History', possibilities: dossier.history} %>
11
+ <%= erb :possibilities, locals: {name: 'Device Name', possibilities: dossier.device_name} %>
12
+ <%= erb :possibilities, locals: {name: 'Model Number', possibilities: dossier.device_model_number} %>
13
+ <%= erb :possibilities, locals: {name: 'Model Name', possibilities: dossier.device_model_name} %>
14
+ <%= erb :possibilities, locals: {name: 'Device Manufacturer', possibilities: dossier.device_manufacturer} %>
15
+ <%= erb :possibilities, locals: {name: 'OUIs', possibilities: dossier.device_oui} %>
12
16
  </div>
@@ -15,9 +15,13 @@ module HiddenHippo
15
15
  field :hostname, type: Possibilities, default: ->{ Possibilities.new }
16
16
  field :username, type: Possibilities, default: ->{ Possibilities.new }
17
17
  field :email, type: Possibilities, default: ->{ Possibilities.new }
18
- field :device, type: Possibilities, default: ->{ Possibilities.new }
19
18
  field :gender, type: Possibilities, default: ->{ Possibilities.new }
20
19
  field :age, type: Possibilities, default: ->{ Possibilities.new }
21
20
  field :history, type: Possibilities, default: ->{ Possibilities.new }
21
+ field :device_name, type: Possibilities, default: ->{ Possibilities.new }
22
+ field :device_model_number, type: Possibilities, default: ->{ Possibilities.new }
23
+ field :device_model_name, type: Possibilities, default: ->{ Possibilities.new }
24
+ field :device_manufacturer, type: Possibilities, default: ->{ Possibilities.new }
25
+ field :device_oui, type: Possibilities, default: ->{ Possibilities.new }
22
26
  end
23
27
  end
@@ -0,0 +1,23 @@
1
+ require 'hidden_hippo/update'
2
+
3
+ module HiddenHippo
4
+ module Extractors
5
+ class WpsExtractor
6
+ def initialize(queue)
7
+ @queue = queue
8
+ end
9
+
10
+ def call(packet)
11
+ fields = {
12
+ device_name: packet.device_name,
13
+ device_model_name: packet.device_model_number,
14
+ device_model_number: packet.device_model_number,
15
+ device_manufacturer: packet.device_manufacturer,
16
+ device_oui: packet.device_oui
17
+ }
18
+
19
+ @queue << Update.new(packet.mac_src, fields.delete_if{|_, v| v.nil?})
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,15 @@
1
+ require 'hidden_hippo/packets/packet'
2
+
3
+ module HiddenHippo
4
+ module Packets
5
+ class Wps < Packet
6
+ filter 'wps.device_name!="" and wps.device_name!=" " and wps.model_number!="" and wps.model_number != " " and wps.manufacturer!="" and wps.manufacturer != " " and wlan_mgt.ssid==""'
7
+
8
+ field :device_model_number, tshark: 'wps.model_number'
9
+ field :device_model_name, tshark: 'wps.model_name'
10
+ field :device_manufacturer, tshark: 'wps.manufacturer'
11
+ field :device_name, tshark: 'wps.device_name'
12
+ field :device_oui, tshark: 'wlan_mgt.tag.oui'
13
+ end
14
+ end
15
+ end
@@ -4,11 +4,14 @@ require 'hidden_hippo/updator'
4
4
  require 'hidden_hippo/packets/dns'
5
5
  require 'hidden_hippo/packets/dhcp'
6
6
  require 'hidden_hippo/packets/http'
7
+ require 'hidden_hippo/packets/wps'
7
8
 
8
9
  require 'hidden_hippo/extractors/mdns_hostname_extractor'
9
10
  require 'hidden_hippo/extractors/dhcp_hostname_extractor'
10
11
  require 'hidden_hippo/extractors/http_request_url_extractor'
11
12
  require 'hidden_hippo/extractors/dns_llmnr_extractor'
13
+ require 'hidden_hippo/extractors/dns_history_extractor'
14
+ require 'hidden_hippo/extractors/wps_extractor'
12
15
  require 'thread'
13
16
 
14
17
  module HiddenHippo
@@ -20,11 +23,14 @@ module HiddenHippo
20
23
  @scanners = []
21
24
  @scanners << Scanner.new(file, Packets::Dns,
22
25
  Extractors::MdnsHostnameExtractor.new(updator_queue),
26
+ Extractors::DnsHistoryExtractor.new(updator_queue),
23
27
  Extractors::DnsLlmnrExtractor.new(updator_queue))
24
28
  @scanners << Scanner.new(file, Packets::Dhcp,
25
29
  Extractors::DhcpHostnameExtractor.new(updator_queue))
26
30
  @scanners << Scanner.new(file, Packets::Http,
27
31
  Extractors::HttpRequestUrlExtractor.new(updator_queue))
32
+ @scanners << Scanner.new(file, Packets::Wps,
33
+ Extractors::WpsExtractor.new(updator_queue))
28
34
  end
29
35
 
30
36
  def call
@@ -30,7 +30,9 @@ module HiddenHippo
30
30
  next
31
31
  end
32
32
 
33
- split_line = line.chomp.split("\t").map {|f| f.empty? ? nil : f}
33
+ split_line = line.chomp.split("\t")
34
+ .map(&:rstrip).map(&:lstrip)
35
+ .map {|f| f.empty? ? nil : f}
34
36
 
35
37
  assoc = tshark_fields.zip split_line
36
38
  packet = @packet_class.parse Hash[*assoc.flatten]
@@ -48,4 +50,4 @@ module HiddenHippo
48
50
  end
49
51
  end
50
52
  end
51
- end
53
+ end
@@ -1,3 +1,3 @@
1
1
  module HiddenHippo
2
- VERSION = '0.1.0'
2
+ VERSION = '0.1.1'
3
3
  end
@@ -38,4 +38,4 @@ describe 'HiddenHippo::Scanner(Dns)' do
38
38
  scanner.call
39
39
  end
40
40
  end
41
- end
41
+ end
@@ -0,0 +1,30 @@
1
+ require 'hidden_hippo/scanner'
2
+
3
+ describe HiddenHippo::Scanner do
4
+ let(:extractor) {double 'extractor', call: nil}
5
+ let(:packet_class) {double 'packet_class', filter: '', tshark_fields: []}
6
+
7
+ def make_scanner(file)
8
+ HiddenHippo::Scanner.new file, packet_class, extractor
9
+ end
10
+
11
+ describe '#call' do
12
+ it 'should ignore fields that are only whitespace' do
13
+ scanner = make_scanner 'spec/fixtures/blank_wps.pcap'
14
+
15
+ allow(packet_class).to receive(:tshark_fields).and_return(%w{wps.device_name})
16
+ expect(packet_class).to receive(:parse).with({'wps.device_name' => nil})
17
+
18
+ scanner.call
19
+ end
20
+
21
+ it 'should ignore empty fields' do
22
+ scanner = make_scanner 'spec/fixtures/tcp_noise.pcap'
23
+
24
+ allow(packet_class).to receive(:tshark_fields).and_return(%w{udp.srcport})
25
+ expect(packet_class).to receive(:parse).with({'udp.srcport' => nil}).at_least(:once)
26
+
27
+ scanner.call
28
+ end
29
+ end
30
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hidden-hippo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Boris Bera
@@ -11,7 +11,7 @@ authors:
11
11
  autorequire:
12
12
  bindir: bin
13
13
  cert_chain: []
14
- date: 2015-03-28 00:00:00.000000000 Z
14
+ date: 2015-04-09 00:00:00.000000000 Z
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
17
17
  name: bundler
@@ -198,11 +198,13 @@ files:
198
198
  - lib/hidden_hippo/extractors/dns_llmnr_extractor.rb
199
199
  - lib/hidden_hippo/extractors/http_request_url_extractor.rb
200
200
  - lib/hidden_hippo/extractors/mdns_hostname_extractor.rb
201
+ - lib/hidden_hippo/extractors/wps_extractor.rb
201
202
  - lib/hidden_hippo/gui.rb
202
203
  - lib/hidden_hippo/packets/dhcp.rb
203
204
  - lib/hidden_hippo/packets/dns.rb
204
205
  - lib/hidden_hippo/packets/http.rb
205
206
  - lib/hidden_hippo/packets/packet.rb
207
+ - lib/hidden_hippo/packets/wps.rb
206
208
  - lib/hidden_hippo/paths.rb
207
209
  - lib/hidden_hippo/possibilities.rb
208
210
  - lib/hidden_hippo/reader.rb
@@ -218,6 +220,7 @@ files:
218
220
  - spec/extractors/dns_llmnr_extractor_spec.rb
219
221
  - spec/extractors/http_request_url_extractor_spec.rb
220
222
  - spec/extractors/mdns_hostname_extractor_spec.rb
223
+ - spec/fixtures/blank_wps.pcap
221
224
  - spec/fixtures/dns_elise.pcap
222
225
  - spec/fixtures/dns_reddit_eth.pcap
223
226
  - spec/fixtures/tcp_noise.pcap
@@ -225,6 +228,7 @@ files:
225
228
  - spec/hidden_hippo_spec.rb
226
229
  - spec/packet_spec.rb
227
230
  - spec/possibilities_spec.rb
231
+ - spec/scanner_spec.rb
228
232
  - spec/spec_helper.rb
229
233
  - spec/support/cli_controller_examples.rb
230
234
  - spec/updator_spec.rb
@@ -262,6 +266,7 @@ test_files:
262
266
  - spec/extractors/dns_llmnr_extractor_spec.rb
263
267
  - spec/extractors/http_request_url_extractor_spec.rb
264
268
  - spec/extractors/mdns_hostname_extractor_spec.rb
269
+ - spec/fixtures/blank_wps.pcap
265
270
  - spec/fixtures/dns_elise.pcap
266
271
  - spec/fixtures/dns_reddit_eth.pcap
267
272
  - spec/fixtures/tcp_noise.pcap
@@ -269,6 +274,7 @@ test_files:
269
274
  - spec/hidden_hippo_spec.rb
270
275
  - spec/packet_spec.rb
271
276
  - spec/possibilities_spec.rb
277
+ - spec/scanner_spec.rb
272
278
  - spec/spec_helper.rb
273
279
  - spec/support/cli_controller_examples.rb
274
280
  - spec/updator_spec.rb