wmap 2.8.1 → 2.8.2

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
  SHA256:
3
- metadata.gz: 0430d7df339ee9c4f6099e1175b6cdef5ee0a453c2a5340e72e897e92a24ecfd
4
- data.tar.gz: bb4aef610f1f71c992a25c41e0bcd1601039a224a250c251a4fc6b64bc2c362c
3
+ metadata.gz: 2dee2577809daef8231ddc3d97a7e0abab5312700f36ab2233366ff6729ae388
4
+ data.tar.gz: 5dee805b28f88e2ae320e6afd9b4ef7d6f25bff99a34cf46b42c32249bf7eaad
5
5
  SHA512:
6
- metadata.gz: 371d69e9e72145befa5589a79ca7a7ac541c022881fc4a7ebf2c0ccedd3ab92962557487f7195f216427e1cc3f876efcbcae7cd00adf6ea4e55fec72ec94c5fe
7
- data.tar.gz: f3e2245e00a680240b8c0b9f41a2074aff46f5b5ae7cd71ace31be71456a7ee0b909f95223b49dc846cd2f40bdd71cb26f815553943b2b1e78e9b2b567a8008c
6
+ metadata.gz: c78742dad1d356b88d2b45a0773527fd8f4e54cbff13c0ccb5f9fd9a228fac56cc2c26a705e8c5ce068b4d2bdf50d1fd190060501a1fc17e0a1040e583080db6
7
+ data.tar.gz: 7eea2eaa6ee45e9ac7857eaa603177b00424a6842cdd89a200062bdcd737c1a66fa2310645e80272fce71d0193fb9ca8044f232e0dabdf20c2da453e436c84cc
data/bin/wmap CHANGED
@@ -13,7 +13,7 @@ parser = OptionParser.new do|opts|
13
13
  opts.on('-d', '--data_dir data_dir', 'Web Mapper local cache data directory') do |data_dir|
14
14
  options[:data_dir] = data_dir;
15
15
  end
16
- opts.on('-t', '--target target', 'Web Mapper target') do |target|
16
+ opts.on('-t', '--target target', 'Web Mapper target / seed for discovery') do |target|
17
17
  options[:target] = target;
18
18
  end
19
19
  opts.on("-v", "--[no-]verbose", "Run verbosely") do |v|
@@ -133,6 +133,10 @@ Wmap.wlog(dis_urls.keys, "wmap", Log_dir+"discovered_urls.log") unless dis_urls.
133
133
  Wmap.wlog(dis_sites.keys, "wmap", Log_dir+"discovered_sites.log") unless dis_sites.empty?
134
134
  #crawler.wlog(c_start.keys,Log_dir+"crawler.log")
135
135
  #crawler.wlog(c_done.keys,Log_dir+"crawler.log")
136
+
137
+
138
+ # Save the current disovery urls only to a specific file, patched 07/23/2021
139
+ crawler.save_discovered_urls(Log_dir+"cur_urls.log")
136
140
  crawler=nil
137
141
 
138
142
 
@@ -43,7 +43,7 @@ class Wmap::UrlCrawler
43
43
  @crawl_start=Hash.new
44
44
  @crawl_done=Hash.new
45
45
  Dir.mkdir(@data_dir) unless Dir.exist?(@data_dir)
46
- @log_dir=@data_dir + "/../logs/"
46
+ @log_dir=@data_dir + "/logs/"
47
47
  Dir.mkdir(@log_dir) unless Dir.exist?(@log_dir)
48
48
  @log_file=@log_dir + "crawler.log"
49
49
  end
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.8.1
7
- date = 2020-05-08
6
+ version = 2.8.2
7
+ date = 2021-07-23
8
8
 
9
9
  author = Sam (Yang) Li
10
10
  email = yang.li@owasp.org
data/wmap.gemspec CHANGED
@@ -36,7 +36,7 @@ Gem::Specification.new do |s|
36
36
  s.description = "wmap is written to perform Internet web application / service discovery. The discovery results are designed to be automatically tracked by the software."
37
37
  s.email = info["email"]
38
38
  s.executables = ["wmap","wscan","wadd","wadds","wdel","wcheck","wdump","spiderBot","googleBot","updateAll","prime","deprime","refresh","trust","trusts","distrust","run_tests"]
39
- s.files = ["CHANGELOG.md", "TODO", "settings/discovery_ports","data/","LICENSE.txt",
39
+ s.files = ["CHANGELOG.md", "TODO", "settings/discovery_ports", "LICENSE.txt",
40
40
  "version.txt","README.md", "wmap.gemspec"]
41
41
  s.files += Dir['lib/*.rb'] + Dir['lib/wmap/*.rb'] + Dir['lib/wmap/**/*'] + Dir['bin/*'] + Dir['settings/*'] + Dir['demos/*'] + Dir['test/*'] + Dir['dicts/*']
42
42
  #s.homepage = "none"
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.8.1
4
+ version: 2.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam (Yang) Li
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-08 00:00:00.000000000 Z
11
+ date: 2021-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dnsruby
@@ -234,7 +234,6 @@ files:
234
234
  - LICENSE.txt
235
235
  - README.md
236
236
  - TODO
237
- - bin/RHPG
238
237
  - bin/deprime
239
238
  - bin/distrust
240
239
  - bin/googleBot
@@ -251,7 +250,6 @@ files:
251
250
  - bin/wdel
252
251
  - bin/wdump
253
252
  - bin/wmap
254
- - bin/wmaps
255
253
  - bin/wscan
256
254
  - demos/bruter.rb
257
255
  - demos/dns_brutes.rb
@@ -308,7 +306,6 @@ files:
308
306
  - settings/discovery_ports
309
307
  - settings/google_keywords.txt
310
308
  - settings/google_locator.txt
311
- - settings/tag_signatures
312
309
  - test/cidr_tracker_test.rb
313
310
  - test/domain_tracker_test.rb
314
311
  - test/utils_test.rb
@@ -336,9 +333,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
336
333
  - !ruby/object:Gem::Version
337
334
  version: '0'
338
335
  requirements: []
339
- rubyforge_project: wmap
340
- rubygems_version: 2.7.10
341
- signing_key:
336
+ rubygems_version: 3.0.9
337
+ signing_key:
342
338
  specification_version: 4
343
339
  summary: A pure Ruby web application and service discovery API.
344
340
  test_files: []
data/bin/RHPG DELETED
@@ -1,107 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # Executable to lookup then merge site tech details into the RHPG asset spreadsheet in CSV format only
3
- #
4
- ## Usage: RHPG [RHPG.csv]
5
- require "wmap"
6
- require "csv"
7
- include Wmap::Utils
8
-
9
- def print_usage
10
- puts "Program to lookup then merge the site details into RHPG asset spreadsheet. \nUsage: RHPG [RHPG.csv]"
11
- end
12
-
13
- # Lookup the site store for a domain; then return the fingger print info of the site
14
- def site_tracker_lookup(domain)
15
- tracker=Wmap::SiteTracker.instance
16
- tracker.verbose=false
17
- #first order search
18
- tracker.known_sites.each do |key,val|
19
- if key.include?(domain.strip.downcase) && key.include?("https")
20
- tracker=nil
21
- return [key] + val.values
22
- end
23
- end
24
- #second order search
25
- tracker.known_sites.each do |key,val|
26
- if key.include?(domain.strip.downcase)
27
- tracker=nil
28
- return [key] + val.values
29
- end
30
- end
31
- tracker=nil
32
- return [nil]*9
33
- end
34
-
35
- # look up the wp site data store for a domain; then return the wp finger print info: [is_wp?,wp_ver]
36
- def wp_tracker_lookup(domain)
37
- tracker=Wmap::WpTracker.new(:verbose=>false)
38
- # first order
39
- tracker.known_wp_sites.each do |key,val|
40
- if key.include?(domain.strip.downcase) && val
41
- ver=tracker.wp_ver(key)
42
- tracker=nil
43
- return [val,ver]
44
- end
45
- end
46
- # second order
47
- tracker.known_wp_sites.each do |key,val|
48
- if key.include?(domain.strip.downcase) && key.include?("https") && val
49
- tracker=nil
50
- return [val,nil]
51
- end
52
- end
53
- # third order
54
- tracker.known_wp_sites.each do |key,val|
55
- if key.include?(domain.strip.downcase)
56
- tracker=nil
57
- return [val,nil]
58
- end
59
- end
60
- tracker=nil
61
- return [nil,nil]
62
- end
63
-
64
- # perform the wpscan on a site
65
- def wpscan(domain)
66
- url=site_tracker_lookup(domain)[0]
67
- return nil if url.nil?
68
- if url.include?("https")
69
- command="wpscan --disable-tls-checks --ignore-main-redirect --url=" + url + " -o " + domain + ".wpscan"
70
- else
71
- command="wpscan --ignore-main-redirect --url=" + url + " -o " + domain + ".wpscan"
72
- end
73
- system(command)
74
- end
75
-
76
- puts Wmap.banner
77
- print_usage
78
-
79
- # open output file to write
80
- CSV.open("output.csv", "wb") do |csv|
81
- cnt=1
82
- # open RHPG input file to read
83
- CSV.foreach(ARGV[0]) do |row|
84
- puts "Processing row #{cnt}"
85
- #puts row.inspect
86
- my_row=Array.new
87
- if cnt > 1
88
- if is_domain?(row[0])
89
- =begin
90
- if row[3] =~ /Keep/i && row[3] != /Redirect/i
91
- unless File.exist?(row[0]+".wpscan")
92
- wpscan(row[0])
93
- end
94
- end
95
- =end
96
- my_row = row + site_tracker_lookup(row[0]) + wp_tracker_lookup(row[0])
97
- else
98
- my_row = row + [nil]*10
99
- end
100
- else
101
- my_row = row + ["Website","Primary IP","Port","Hosting Status","Server","Response Code","MD5 Finger-print","Redirection","Timestamp", "WordPress", "WordPress Version"]
102
- end
103
- cnt+=1
104
- csv << my_row
105
- end
106
- puts "All done. "
107
- end
data/bin/wmaps DELETED
@@ -1,23 +0,0 @@
1
- #!/usr/bin/env ruby
2
- # script to automate the new site discovery through by crawling all unique sites in the site store
3
- require "wmap"
4
- require "parallel"
5
-
6
- def wmap_worker(domain)
7
- cmd = "wmap " + domain
8
- puts "wmap discovery on domain: ", domain
9
- system(cmd)
10
- end
11
-
12
-
13
- tracker=Wmap::DomainTracker.instance
14
- Parallel.map(tracker.known_internet_domains.keys, :in_processes => 10) { |target|
15
- puts "Working on #{target} ..." if @verbose
16
- wmap_worker(target)
17
- }
18
- =begin
19
- tracker.known_internet_domains.keys.map do |domain|
20
- wmap_worker(domain)
21
- end
22
- =end
23
- tracker=nil
@@ -1,6 +0,0 @@
1
- # Adware signature file: signture string, description
2
- gtag.js, Google / DoubleClick Floodlight Tag
3
- analytics.js, Google Universal Analytics Tag
4
- ga.js, Google Analytics Tag
5
- utag.js, Tealium Tag
6
- all.js, Facebook Tag