wmap 2.6.8 → 2.6.9
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 +4 -4
- data/lib/wmap.rb +72 -7
- data/lib/wmap/site_tracker.rb +6 -1
- data/version.txt +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c1fcf909fd9549bdc0c1339d986ec7812563474ef4c9e6b1aa76ca3790b038a5
|
4
|
+
data.tar.gz: 2098e60fc667bf8ba02fa852242ffb2a515ebe04374177f4bf1a50bdb69a05ef
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ea7e49f2b0913ad1159226268355ea9e339468929b614fff99e24b4e1b43fc4225560466930023f2691deb5b3547eaf9a41ada8cdc9128401389e96a5ef2865a
|
7
|
+
data.tar.gz: ba6d2efe7f4ebf1b9bd761b5d4235744ddbdde8a398cefc07af7465a2c5c974e0f6c91c3dbf573659a6de2eca1b01af8434439e63c3a1b125de7b241e7d0feab
|
data/lib/wmap.rb
CHANGED
@@ -67,9 +67,17 @@ module Wmap
|
|
67
67
|
string = "-"*80 + "\n" + art + "\n" + "Version: " + ver["version"] + "\tRelease Date: " + ver["date"] + "\nDesigned and developed by: " + ver["author"] + "\nEmail: " + ver["email"] + "\tLinkedIn: " + ver["linkedin"] + "\n" + "-"*80
|
68
68
|
end
|
69
69
|
|
70
|
+
def data_dir(data_path)
|
71
|
+
@data_dir=data_path.to_s
|
72
|
+
end
|
73
|
+
|
70
74
|
# Explorer to discover and inventory web application / service automatically
|
71
75
|
def wmap(seed)
|
72
|
-
|
76
|
+
if @data_dir
|
77
|
+
cmd = "bin/wmap" + " -d " + @data_dir + " -t " + seed
|
78
|
+
else
|
79
|
+
cmd="bin/wmap" + " -t " + seed
|
80
|
+
end
|
73
81
|
system(cmd)
|
74
82
|
end
|
75
83
|
|
@@ -118,6 +126,11 @@ module Wmap
|
|
118
126
|
# Check if the IP is within the range of the known CIDR blocks
|
119
127
|
def ip_trusted?(ip)
|
120
128
|
tracker=Wmap::CidrTracker.new
|
129
|
+
if @data_dir
|
130
|
+
tracker.data_dir=@data_dir
|
131
|
+
tracker.cidr_seeds=tracker.data_dir + "/" + "cidrs"
|
132
|
+
tracker.load_cidr_blks_from_file(tracker.cidr_seeds)
|
133
|
+
end
|
121
134
|
tracker.ip_trusted?(ip)
|
122
135
|
end
|
123
136
|
|
@@ -125,24 +138,47 @@ module Wmap
|
|
125
138
|
# NOT to confuse with the Internet 'whois' lookup
|
126
139
|
def domain_known?(domain)
|
127
140
|
tracker=Wmap::DomainTracker.instance
|
141
|
+
if @data_dir
|
142
|
+
tracker.data_dir=@data_dir
|
143
|
+
tracker.domains_file=tracker.data_dir + "/" + "domains"
|
144
|
+
tracker.load_domains_from_file(tracker.domains_file)
|
145
|
+
end
|
128
146
|
tracker.domain_known?(domain)
|
129
147
|
end
|
130
148
|
|
131
149
|
# Host Tracking - check local hosts file to see if this is a hostname known from the host seed file
|
132
150
|
# NOT to confuse with a regular DNS lookup over the internet
|
133
151
|
def host_known?(host)
|
134
|
-
tracker=Wmap::HostTracker.instance
|
152
|
+
tracker=Wmap::HostTracker.instance
|
153
|
+
if @data_dir
|
154
|
+
tracker.data_dir = data_dir
|
155
|
+
tracker.hosts_file = tracker.data_dir + "/" + "hosts"
|
156
|
+
tracker.load_known_hosts_from_file(tracker.hosts_file)
|
157
|
+
end
|
158
|
+
tracker.host_known?(host)
|
135
159
|
end
|
136
160
|
|
137
161
|
# Sub-domain tracking - check local hosts file to see if the sub-domain is already known
|
138
162
|
def sub_domain_known?(host)
|
139
|
-
tracker=Wmap::HostTracker.instance
|
163
|
+
tracker=Wmap::HostTracker.instance
|
164
|
+
if @data_dir
|
165
|
+
tracker.data_dir = data_dir
|
166
|
+
tracker.hosts_file = tracker.data_dir + "/" + "hosts"
|
167
|
+
tracker.load_known_hosts_from_file(tracker.hosts_file)
|
168
|
+
end
|
169
|
+
tracker.sub_domain_known?(host)
|
140
170
|
end
|
141
171
|
|
142
172
|
# IP Tracking - check local hosts file to see if this is an IP known from the seed file
|
143
173
|
# NOT to confuse with a regular reverse DNS lookup over the internet
|
144
174
|
def ip_known?(ip)
|
145
|
-
tracker=Wmap::HostTracker.instance
|
175
|
+
tracker=Wmap::HostTracker.instance
|
176
|
+
if @data_dir
|
177
|
+
tracker.data_dir = data_dir
|
178
|
+
tracker.hosts_file = tracker.data_dir + "/" + "hosts"
|
179
|
+
tracker.load_known_hosts_from_file(tracker.hosts_file)
|
180
|
+
end
|
181
|
+
tracker.ip_known?(ip)
|
146
182
|
end
|
147
183
|
|
148
184
|
# DNS Brute Forcer
|
@@ -175,25 +211,44 @@ module Wmap
|
|
175
211
|
# Search the site repository for all entries that match the pattern
|
176
212
|
def search(pattern)
|
177
213
|
searcher=Wmap::SiteTracker.instance
|
214
|
+
if @data_dir
|
215
|
+
searcher.data_dir = @data_dir
|
216
|
+
searcher.sites_file = searcher.data_dir + "/" + "sites"
|
217
|
+
searcher.load_site_stores_from_file(searcher.sites_file)
|
218
|
+
end
|
178
219
|
searcher.search(pattern)
|
179
220
|
end
|
180
221
|
|
181
222
|
# Dump out the unique sites into a plain file
|
182
223
|
def dump(file)
|
183
224
|
store=Wmap::SiteTracker.instance
|
184
|
-
|
225
|
+
if @data_dir
|
226
|
+
store.data_dir = @data_dir
|
227
|
+
store.sites_file = searcher.data_dir + "/" + "sites"
|
228
|
+
store.load_site_stores_from_file(searcher.sites_file)
|
229
|
+
end
|
185
230
|
store.save_uniq_sites(file)
|
186
231
|
end
|
187
232
|
|
188
233
|
# Dump out the unique sites into a XML file
|
189
234
|
def dump_xml(file)
|
190
235
|
store=Wmap::SiteTracker.instance
|
191
|
-
|
236
|
+
if @data_dir
|
237
|
+
store.data_dir = @data_dir
|
238
|
+
store.sites_file = searcher.data_dir + "/" + "sites"
|
239
|
+
store.load_site_stores_from_file(searcher.sites_file)
|
240
|
+
end
|
241
|
+
store.save_uniq_sites_xml(file)
|
192
242
|
end
|
193
243
|
|
194
244
|
# Refresh the site information in the local data repository
|
195
245
|
def refresh(site)
|
196
246
|
store=Wmap::SiteTracker.instance
|
247
|
+
if @data_dir
|
248
|
+
store.data_dir = @data_dir
|
249
|
+
store.sites_file = searcher.data_dir + "/" + "sites"
|
250
|
+
store.load_site_stores_from_file(searcher.sites_file)
|
251
|
+
end
|
197
252
|
store.refresh(site)
|
198
253
|
store.save!
|
199
254
|
end
|
@@ -201,6 +256,11 @@ module Wmap
|
|
201
256
|
# Refresh the site information in the local data repository
|
202
257
|
def refresh_all
|
203
258
|
store=Wmap::SiteTracker.instance
|
259
|
+
if @data_dir
|
260
|
+
store.data_dir = @data_dir
|
261
|
+
store.sites_file = searcher.data_dir + "/" + "sites"
|
262
|
+
store.load_site_stores_from_file(searcher.sites_file)
|
263
|
+
end
|
204
264
|
store.refresh_all
|
205
265
|
store.save!
|
206
266
|
end
|
@@ -219,7 +279,12 @@ module Wmap
|
|
219
279
|
# Print a site's full information from the repository
|
220
280
|
def print_all
|
221
281
|
searcher=Wmap::SiteTracker.instance
|
222
|
-
|
282
|
+
if @data_dir
|
283
|
+
searcher.data_dir = @data_dir
|
284
|
+
searcher.sites_file = searcher.data_dir + "/" + "sites"
|
285
|
+
searcher.load_site_stores_from_file(searcher.sites_file)
|
286
|
+
end
|
287
|
+
searcher.print_all_sites
|
223
288
|
end
|
224
289
|
|
225
290
|
private
|
data/lib/wmap/site_tracker.rb
CHANGED
@@ -554,7 +554,8 @@ class Wmap::SiteTracker
|
|
554
554
|
sites=Hash.new
|
555
555
|
#uniqueness=Hash.new
|
556
556
|
host_tracker=Wmap::HostTracker.instance
|
557
|
-
host_tracker.
|
557
|
+
host_tracker.data_dir=@data_dir
|
558
|
+
host_tracker.hosts_file=host_tracker.data_dir + '/' + 'hosts'
|
558
559
|
host_tracker.load_known_hosts_from_file
|
559
560
|
@known_sites.keys.map do |key|
|
560
561
|
port=url_2_port(key).to_s
|
@@ -649,6 +650,8 @@ class Wmap::SiteTracker
|
|
649
650
|
sites=get_ip_sites
|
650
651
|
host_tracker=Wmap::HostTracker.instance
|
651
652
|
host_tracker.data_dir=@data_dir
|
653
|
+
host_tracker.hosts_file = host_tracker.data_dir + "/" + "hosts"
|
654
|
+
host_tracker.load_known_hosts_from_file
|
652
655
|
sites.map do |site|
|
653
656
|
puts "Work on resolve the IP site: #{site}" if @verbose
|
654
657
|
ip=url_2_host(site)
|
@@ -804,6 +807,8 @@ class Wmap::SiteTracker
|
|
804
807
|
host_tracker.data_dir=@data_dir
|
805
808
|
primary_host_tracker=Wmap::HostTracker::PrimaryHost.instance
|
806
809
|
primary_host_tracker.data_dir=@data_dir
|
810
|
+
primary_host_tracker.hosts_file = primary_host_tracker.data_dir + "/" + "prime_hosts"
|
811
|
+
primary_host_tracker.known_hosts=primary_host_tracker.load_known_hosts_from_file(@hosts_file)
|
807
812
|
# Step 1. Retrieve the unique site list first
|
808
813
|
sites=get_uniq_sites
|
809
814
|
prim_uniq_sites=Array.new
|
data/version.txt
CHANGED
@@ -3,8 +3,8 @@
|
|
3
3
|
###############################################################################
|
4
4
|
package = wmap
|
5
5
|
# wmap version 2.0 == web_discovery version 1.5.3
|
6
|
-
version = 2.6.
|
7
|
-
date = 2019-
|
6
|
+
version = 2.6.9
|
7
|
+
date = 2019-12-02
|
8
8
|
|
9
9
|
author = Sam (Yang) Li
|
10
10
|
email = yang.li@owasp.org
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.6.
|
4
|
+
version: 2.6.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam (Yang) Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: dnsruby
|