vectra 0.1.1 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rock.yml +1 -1
- data/README.md +42 -1
- data/lib/vectra.rb +9 -0
- data/lib/vectra/detection_details.rb +27 -0
- data/lib/vectra/dns.rb +27 -0
- data/lib/vectra/relayed_comms.rb +27 -0
- data/lib/vectra/sqli.rb +27 -0
- data/lib/vectra/version.rb +1 -1
- metadata +5 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 80a30a2c4a8f5197d069da6bb592a3184a442a08
|
4
|
+
data.tar.gz: cc1e73c9e4091afa26927ef76308e718586ff2e6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ab0eb156501023f4b4bdcda61e8ce1ccdbc170d88284f4a82ef2076ac0b2e4c487d4785283d987b910f4b7deecc1ee67389a3a550f174c58324aa9e6ee262ce
|
7
|
+
data.tar.gz: 12c2d1f0dfe8875d314513d17a7e41c524ad75fa2829bf8986842bec4b4508035df472fd97188cfb6589ce2e0d357c21a75a888367b538053511e9640651909c
|
data/.rock.yml
CHANGED
data/README.md
CHANGED
@@ -38,7 +38,48 @@ You can also get a detection by ID or by referencing the detection URL:
|
|
38
38
|
Vectra::Detections.get(1)
|
39
39
|
Vectra::Detections.get('https://vectra/detection/1')
|
40
40
|
```
|
41
|
-
|
41
|
+
|
42
|
+
### Detection Details
|
43
|
+
|
44
|
+
Within the response of a detection, you may find Detection Details. You can get more details on these like so:
|
45
|
+
|
46
|
+
```ruby
|
47
|
+
Vectra::Detections.get(1)["detection_detail_set"].each do |d|
|
48
|
+
details = Vectra::DetectionDetails.get(d)
|
49
|
+
puts "--> #{details["destination"]}:#{details["dst_port"]}"
|
50
|
+
end
|
51
|
+
```
|
52
|
+
### Relayed Comms
|
53
|
+
|
54
|
+
Another type of detection detail you may see is the following:
|
55
|
+
|
56
|
+
```ruby
|
57
|
+
Vectra::Detections.get(1)["relayed_comm_set"].each do |r|
|
58
|
+
details = Vectra::RelayComms.get(r)
|
59
|
+
puts "--> #{details['inbound_proto']} #{details["inbound_ip"]}:#{details["inbound_port"]} @ #{details['total_bytes_rcvd']} bytes"
|
60
|
+
end
|
61
|
+
```
|
62
|
+
|
63
|
+
### DNS
|
64
|
+
|
65
|
+
There is also a DNS set:
|
66
|
+
|
67
|
+
```ruby
|
68
|
+
Vectra::Detections.get(1)["dns_set"].each do |d|
|
69
|
+
details = Vectra::DNS.get(r)
|
70
|
+
puts "--> DNS Server: #{details['dns_ip']} resolved #{details['dns_request']} to #{details['resp']}"
|
71
|
+
end
|
72
|
+
```
|
73
|
+
### SQL Injection
|
74
|
+
|
75
|
+
And lastly, an SQL Injection Set
|
76
|
+
|
77
|
+
```ruby
|
78
|
+
Vectra::Detections.get(1)["sqli_set"].each do |s|
|
79
|
+
details = Vectra::SQLi.get(s)
|
80
|
+
puts "Injection Attempted: #{details['ngram']} to #{details['destination']}"
|
81
|
+
end
|
82
|
+
```
|
42
83
|
## Hosts
|
43
84
|
|
44
85
|
Do not use `::Hosts.all` if you are in production. This will be very costly if you have more than 5,000 discovered hosts.
|
data/lib/vectra.rb
CHANGED
@@ -3,13 +3,22 @@ require 'json'
|
|
3
3
|
require 'fattr'
|
4
4
|
require 'cgi'
|
5
5
|
|
6
|
+
# Config
|
6
7
|
require 'vectra/config'
|
8
|
+
|
9
|
+
# Core Functions
|
7
10
|
require 'vectra/api'
|
8
11
|
require 'vectra/hosts'
|
9
12
|
require 'vectra/detections'
|
10
13
|
require 'vectra/sensors'
|
11
14
|
require 'vectra/rules'
|
12
15
|
|
16
|
+
# Detection Sets
|
17
|
+
require 'vectra/relayed_comms'
|
18
|
+
require 'vectra/detection_details'
|
19
|
+
require 'vectra/sqli'
|
20
|
+
require 'vectra/dns'
|
21
|
+
|
13
22
|
module Vectra
|
14
23
|
|
15
24
|
extend self
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Vectra
|
2
|
+
class DetectionDetails
|
3
|
+
|
4
|
+
attr_accessor :target
|
5
|
+
@target = "/detection_details"
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
Vectra::API.pull(@target)
|
9
|
+
end
|
10
|
+
|
11
|
+
def each
|
12
|
+
self.all.each do |host|
|
13
|
+
yield host
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get(id)
|
18
|
+
unless id.is_a? Integer
|
19
|
+
id = id.split("/").last
|
20
|
+
end
|
21
|
+
|
22
|
+
Vectra::API.pull("#{@target}/#{id}")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/vectra/dns.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Vectra
|
2
|
+
class DNS
|
3
|
+
|
4
|
+
attr_accessor :target
|
5
|
+
@target = "/dns"
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
Vectra::API.pull(@target)
|
9
|
+
end
|
10
|
+
|
11
|
+
def each
|
12
|
+
self.all.each do |host|
|
13
|
+
yield host
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get(id)
|
18
|
+
unless id.is_a? Integer
|
19
|
+
id = id.split("/").last
|
20
|
+
end
|
21
|
+
|
22
|
+
Vectra::API.pull("#{@target}/#{id}")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Vectra
|
2
|
+
class RelayedComms
|
3
|
+
|
4
|
+
attr_accessor :target
|
5
|
+
@target = "/relayed_comm"
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
Vectra::API.pull(@target)
|
9
|
+
end
|
10
|
+
|
11
|
+
def each
|
12
|
+
self.all.each do |host|
|
13
|
+
yield host
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get(id)
|
18
|
+
unless id.is_a? Integer
|
19
|
+
id = id.split("/").last
|
20
|
+
end
|
21
|
+
|
22
|
+
Vectra::API.pull("#{@target}/#{id}")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/vectra/sqli.rb
ADDED
@@ -0,0 +1,27 @@
|
|
1
|
+
module Vectra
|
2
|
+
class SQLi
|
3
|
+
|
4
|
+
attr_accessor :target
|
5
|
+
@target = "/sqli"
|
6
|
+
|
7
|
+
def self.all
|
8
|
+
Vectra::API.pull(@target)
|
9
|
+
end
|
10
|
+
|
11
|
+
def each
|
12
|
+
self.all.each do |host|
|
13
|
+
yield host
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
def self.get(id)
|
18
|
+
unless id.is_a? Integer
|
19
|
+
id = id.split("/").last
|
20
|
+
end
|
21
|
+
|
22
|
+
Vectra::API.pull("#{@target}/#{id}")
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
data/lib/vectra/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vectra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Mackintosh
|
@@ -112,10 +112,14 @@ files:
|
|
112
112
|
- lib/vectra.rb
|
113
113
|
- lib/vectra/api.rb
|
114
114
|
- lib/vectra/config.rb
|
115
|
+
- lib/vectra/detection_details.rb
|
115
116
|
- lib/vectra/detections.rb
|
117
|
+
- lib/vectra/dns.rb
|
116
118
|
- lib/vectra/hosts.rb
|
119
|
+
- lib/vectra/relayed_comms.rb
|
117
120
|
- lib/vectra/rules.rb
|
118
121
|
- lib/vectra/sensors.rb
|
122
|
+
- lib/vectra/sqli.rb
|
119
123
|
- lib/vectra/version.rb
|
120
124
|
- spec/spec_helper.rb
|
121
125
|
- spec/vectra/vectra_spec.rb
|