wmap 2.4.4 → 2.4.5
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 +5 -5
- data/README.rdoc +27 -20
- data/bin/RHPG +85 -0
- data/bin/trust +5 -5
- data/bin/trusts +38 -0
- data/bin/updateAll +5 -9
- data/bin/wadds +1 -1
- data/bin/wmaps +24 -0
- data/dicts/tlds.txt +1537 -0
- data/lib/wmap/cidr_tracker.rb +22 -15
- data/lib/wmap/host_tracker/primary_host.rb +1 -1
- data/lib/wmap/host_tracker.rb +6 -6
- data/lib/wmap/site_tracker.rb +7 -7
- data/lib/wmap/url_crawler.rb +17 -17
- data/lib/wmap/utils/domain_root.rb +28 -24
- data/lib/wmap/wp_tracker.rb +302 -0
- data/logs/wmap.log +1516 -17
- data/version.txt +4 -4
- data/wmap.gemspec +20 -5
- metadata +179 -14
- data/data/cidrs +0 -2
- data/data/deactivated_sites +0 -1
- data/data/domains +0 -2
- data/data/hosts +0 -1
- data/data/prime_hosts +0 -1
- data/data/sites +0 -2
- data/data/sub_domains +0 -2
- data/lib/wmap.rb +0 -227
data/version.txt
CHANGED
@@ -3,11 +3,11 @@
|
|
3
3
|
###############################################################################
|
4
4
|
package = wmap
|
5
5
|
# wmap version 2.0 == web_discovery version 1.5.3
|
6
|
-
version = 2.4.
|
7
|
-
date = 2018-
|
6
|
+
version = 2.4.5
|
7
|
+
date = 2018-11-06
|
8
8
|
|
9
|
-
author = Yang Li
|
9
|
+
author = Sam (Yang) Li
|
10
10
|
email = yang.li@owasp.org
|
11
11
|
linkedin = http://www.linkedin.com/in/yangli8/
|
12
|
-
github = https://github.com/yangsec888/wmap
|
12
|
+
github = https://github.com/yangsec888/wmap
|
13
13
|
###############################################################################
|
data/wmap.gemspec
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
#
|
4
4
|
# A pure Ruby library for Internet web application discovery and tracking.
|
5
5
|
#
|
6
|
-
# Copyright (c) 2012-2015 Yang Li <yang.li@owasp.org>
|
6
|
+
# Copyright (c) 2012-2015 Sam (Yang) Li <yang.li@owasp.org>
|
7
7
|
#++
|
8
8
|
|
9
9
|
# -*- encoding: utf-8 -*-
|
@@ -17,7 +17,7 @@ f.each do |line|
|
|
17
17
|
case line
|
18
18
|
when /^(\s)*#/
|
19
19
|
next
|
20
|
-
when /\=/
|
20
|
+
when /\=/
|
21
21
|
entry=line.split("=").map! {|x| x.strip}
|
22
22
|
info[entry[0]]=entry[1]
|
23
23
|
end
|
@@ -36,12 +36,27 @@ 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","distrust","run_tests"]
|
39
|
-
s.files = ["CHANGELOG.md", "TODO", "settings/discovery_ports","settings/google_keywords.txt","settings/google_locator.txt","data/
|
40
|
-
|
39
|
+
s.files = ["CHANGELOG.md", "TODO", "settings/discovery_ports","settings/google_keywords.txt","settings/google_locator.txt","data/","LICENSE.txt",
|
40
|
+
"version.txt","README.rdoc", "wmap.gemspec"]
|
41
|
+
s.files += Dir['lib/wmap/*.rb'] + Dir['lib/wmap/**/*.rb'] + Dir['bin/*'] + Dir['demos/*'] + Dir['test/*'] + Dir['ruby_whois_patches/*'] + Dir['dicts/*'] + Dir['logs/wmap.log']
|
41
42
|
#s.homepage = "none"
|
42
43
|
s.post_install_message = "*"*80 + "\n\nThank you for installing the wmap gem - a pure Ruby library for Internet web application discovery and tracking. Please refer to the README.rdoc for more information of using this gem. \n\n" + "*"*80 + "\n"
|
43
44
|
s.require_paths = ["lib"]
|
44
|
-
s.required_ruby_version = Gem::Requirement.new(">= 1
|
45
|
+
s.required_ruby_version = Gem::Requirement.new(">= 2.1")
|
46
|
+
|
47
|
+
s.add_dependency 'dnsruby', '>= 1.52'
|
48
|
+
s.add_dependency 'geoip', '>= 1.0'
|
49
|
+
s.add_dependency 'minitest', '>= 5.0'
|
50
|
+
s.add_dependency 'net-ping', '>= 2.0'
|
51
|
+
s.add_dependency 'nokogiri', '>= 1.6'
|
52
|
+
s.add_dependency 'css_parser', '>= 1.6'
|
53
|
+
s.add_dependency 'openssl', '>= 2.0'
|
54
|
+
s.add_dependency 'parallel', '>= 1.0'
|
55
|
+
s.add_dependency 'whois', '>= 2.7'
|
56
|
+
s.add_dependency 'httpclient', '~> 2.0'
|
57
|
+
s.add_dependency 'open_uri_redirections', '>= 0.2'
|
58
|
+
s.add_dependency 'netaddr', '~> 1.5'
|
59
|
+
|
45
60
|
s.rubyforge_project = "wmap"
|
46
61
|
s.rubygems_version = "1.8.24"
|
47
62
|
s.summary = "A pure Ruby web application and service discovery API."
|
metadata
CHANGED
@@ -1,15 +1,183 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wmap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.4.
|
4
|
+
version: 2.4.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
- Yang Li
|
7
|
+
- Sam (Yang) Li
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
12
|
-
dependencies:
|
11
|
+
date: 2018-11-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: dnsruby
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.52'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.52'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: geoip
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: minitest
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '5.0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '5.0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: net-ping
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '2.0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '2.0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: nokogiri
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '1.6'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '1.6'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: css_parser
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '1.6'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '1.6'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: openssl
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '2.0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '2.0'
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: parallel
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '1.0'
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '1.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: whois
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.7'
|
132
|
+
type: :runtime
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.7'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: httpclient
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '2.0'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2.0'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: open_uri_redirections
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - ">="
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.2'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - ">="
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.2'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: netaddr
|
169
|
+
requirement: !ruby/object:Gem::Requirement
|
170
|
+
requirements:
|
171
|
+
- - "~>"
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: '1.5'
|
174
|
+
type: :runtime
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - "~>"
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: '1.5'
|
13
181
|
description: wmap is written to perform Internet web application / service discovery.
|
14
182
|
The discovery results are designed to be automatically tracked by the software.
|
15
183
|
email: yang.li@owasp.org
|
@@ -37,6 +205,7 @@ files:
|
|
37
205
|
- LICENSE.txt
|
38
206
|
- README.rdoc
|
39
207
|
- TODO
|
208
|
+
- bin/RHPG
|
40
209
|
- bin/deprime
|
41
210
|
- bin/distrust
|
42
211
|
- bin/googleBot
|
@@ -45,6 +214,7 @@ files:
|
|
45
214
|
- bin/run_tests
|
46
215
|
- bin/spiderBot
|
47
216
|
- bin/trust
|
217
|
+
- bin/trusts
|
48
218
|
- bin/updateAll
|
49
219
|
- bin/wadd
|
50
220
|
- bin/wadds
|
@@ -52,14 +222,8 @@ files:
|
|
52
222
|
- bin/wdel
|
53
223
|
- bin/wdump
|
54
224
|
- bin/wmap
|
225
|
+
- bin/wmaps
|
55
226
|
- bin/wscan
|
56
|
-
- data/cidrs
|
57
|
-
- data/deactivated_sites
|
58
|
-
- data/domains
|
59
|
-
- data/hosts
|
60
|
-
- data/prime_hosts
|
61
|
-
- data/sites
|
62
|
-
- data/sub_domains
|
63
227
|
- demos/bruter.rb
|
64
228
|
- demos/dns_brutes.rb
|
65
229
|
- demos/filter_cidr.rb
|
@@ -88,7 +252,7 @@ files:
|
|
88
252
|
- dicts/gtld.txt
|
89
253
|
- dicts/hostnames-dict.big
|
90
254
|
- dicts/hostnames-dict.txt
|
91
|
-
-
|
255
|
+
- dicts/tlds.txt
|
92
256
|
- lib/wmap/cidr_tracker.rb
|
93
257
|
- lib/wmap/dns_bruter.rb
|
94
258
|
- lib/wmap/domain_tracker.rb
|
@@ -108,6 +272,7 @@ files:
|
|
108
272
|
- lib/wmap/utils/url_magic.rb
|
109
273
|
- lib/wmap/utils/utils.rb
|
110
274
|
- lib/wmap/whois.rb
|
275
|
+
- lib/wmap/wp_tracker.rb
|
111
276
|
- logs/wmap.log
|
112
277
|
- ruby_whois_patches/base_cocca2.rb
|
113
278
|
- ruby_whois_patches/kero.yachay.pe.rb
|
@@ -187,7 +352,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
187
352
|
requirements:
|
188
353
|
- - ">="
|
189
354
|
- !ruby/object:Gem::Version
|
190
|
-
version: 1
|
355
|
+
version: '2.1'
|
191
356
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
192
357
|
requirements:
|
193
358
|
- - ">="
|
@@ -195,7 +360,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
195
360
|
version: '0'
|
196
361
|
requirements: []
|
197
362
|
rubyforge_project: wmap
|
198
|
-
rubygems_version: 2.
|
363
|
+
rubygems_version: 2.7.7
|
199
364
|
signing_key:
|
200
365
|
specification_version: 4
|
201
366
|
summary: A pure Ruby web application and service discovery API.
|
data/data/cidrs
DELETED
data/data/deactivated_sites
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# Local site store created by class Wmap::SiteTracker::DeactivatedSite method save_sites_to_file! at: 2015-04-27 08:43:06 -0400
|
data/data/domains
DELETED
data/data/hosts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# local hosts file created by the Wmap::HostTracker class save_known_hosts_to_file! method at: 2015-04-21 08:59:33 -0400
|
data/data/prime_hosts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# local hosts file created by the Wmap::HostTracker::PrimaryHost class save_known_hosts_to_file! method at: 2015-07-07 12:25:34 -0400
|
data/data/sites
DELETED
data/data/sub_domains
DELETED
data/lib/wmap.rb
DELETED
@@ -1,227 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Wmap
|
3
|
-
#
|
4
|
-
# A pure Ruby library for the Internet web application discovery and tracking.
|
5
|
-
#
|
6
|
-
# Copyright (c) 2012-2015 Yang Li <yang.li@owasp.org>
|
7
|
-
#++
|
8
|
-
require 'wmap/utils/domain_root'
|
9
|
-
require 'wmap/utils/url_magic'
|
10
|
-
require 'wmap/utils/logger'
|
11
|
-
require 'wmap/utils/utils'
|
12
|
-
require 'wmap/cidr_tracker'
|
13
|
-
require 'wmap/domain_tracker'
|
14
|
-
require 'wmap/domain_tracker/sub_domain'
|
15
|
-
require 'wmap/host_tracker'
|
16
|
-
require 'wmap/host_tracker/primary_host'
|
17
|
-
require 'wmap/whois'
|
18
|
-
require 'wmap/url_checker'
|
19
|
-
require 'wmap/network_profiler'
|
20
|
-
require 'wmap/port_scanner'
|
21
|
-
require 'wmap/url_crawler'
|
22
|
-
require 'wmap/dns_bruter'
|
23
|
-
require 'wmap/site_tracker'
|
24
|
-
require 'wmap/site_tracker/deactivated_site'
|
25
|
-
require 'wmap/geoip_tracker'
|
26
|
-
require 'wmap/google_search_scraper'
|
27
|
-
|
28
|
-
module Wmap
|
29
|
-
|
30
|
-
NAME = "Wmap"
|
31
|
-
GEM = "wmap"
|
32
|
-
VERSION = File.dirname(__FILE__) + "/../version.txt"
|
33
|
-
|
34
|
-
class << self
|
35
|
-
attr_accessor :known_internet_domains
|
36
|
-
attr_writer :verbose
|
37
|
-
|
38
|
-
# Simple parser for the project version file
|
39
|
-
def read_ver
|
40
|
-
ver=Hash.new
|
41
|
-
f=File.open(VERSION,'r')
|
42
|
-
f.each do |line|
|
43
|
-
line.chomp!
|
44
|
-
case line
|
45
|
-
when /^(\s)*#/
|
46
|
-
next
|
47
|
-
when /\=/
|
48
|
-
entry=line.split("=").map! {|x| x.strip}
|
49
|
-
ver[entry[0]]=entry[1]
|
50
|
-
end
|
51
|
-
end
|
52
|
-
f.close
|
53
|
-
return ver
|
54
|
-
end
|
55
|
-
|
56
|
-
# Project banner in ASCII Art 'soft' format, courtesy to http://patorjk.com/software/taag/
|
57
|
-
def banner
|
58
|
-
ver=read_ver
|
59
|
-
art=",--. ,--. ,--. ,--. ,--.
|
60
|
-
| | | | ,---. | |-. | `.' | ,--,--. ,---. ,---. ,---. ,--.--.
|
61
|
-
| |.'.| || .-. :| .-. ' | |'.'| |' ,-. || .-. || .-. || .-. :| .--'
|
62
|
-
| ,'. |\ --.| `-' | | | | |\ '-' || '-' '| '-' '\ --.| |
|
63
|
-
'--' '--' `----' `---' `--' `--' `--`--'| |-' | |-' `----'`--'
|
64
|
-
`--' `--' "
|
65
|
-
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
|
66
|
-
end
|
67
|
-
|
68
|
-
# Explorer to discover and inventory web application / service automatically
|
69
|
-
def wmap(seed)
|
70
|
-
cmd="bin/wmap" + " " + seed
|
71
|
-
system(cmd)
|
72
|
-
end
|
73
|
-
|
74
|
-
# Crawler to search url contents for new sites
|
75
|
-
def crawl(url)
|
76
|
-
crawler=Wmap::UrlCrawler.new
|
77
|
-
crawler.crawl(url)
|
78
|
-
end
|
79
|
-
|
80
|
-
# whois query and sort the result into structured data
|
81
|
-
def whois(domain)
|
82
|
-
whois=Wmap::Whois.new(:verbose=>false)
|
83
|
-
whois.query(domain)
|
84
|
-
end
|
85
|
-
|
86
|
-
# Fast tcp port scanner on a single host or IP
|
87
|
-
def scan(host)
|
88
|
-
scanner=Wmap::PortScanner.new
|
89
|
-
scanner.scan(host)
|
90
|
-
end
|
91
|
-
|
92
|
-
# Fast multi-processes tcp port scanner on a list of targets
|
93
|
-
def scans(target_list)
|
94
|
-
scanner=Wmap::PortScanner.new
|
95
|
-
scanner.scans(target_list)
|
96
|
-
end
|
97
|
-
|
98
|
-
# CIDR Tracking - check the host against the local CIDR seed file, return the CIDR tracking path if found
|
99
|
-
def track(host)
|
100
|
-
tracker=Wmap::CidrTracker.new
|
101
|
-
tracker.cidr_worker(host)
|
102
|
-
end
|
103
|
-
|
104
|
-
# GeoIP Tracking - check the host / IP against the GeoIP data repository, return the Geographic information if found
|
105
|
-
def geoip(host)
|
106
|
-
tracker=Wmap::GeoIPTracker.new
|
107
|
-
tracker.query(host)
|
108
|
-
end
|
109
|
-
|
110
|
-
# URL checker - check the status of the remote URL
|
111
|
-
def check(url)
|
112
|
-
checker=Wmap::UrlChecker.new(:verbose=>false)
|
113
|
-
checker.url_worker(url)
|
114
|
-
end
|
115
|
-
|
116
|
-
# Check if the IP is within the range of the known CIDR blocks
|
117
|
-
def ip_trusted?(ip)
|
118
|
-
tracker=Wmap::CidrTracker.new
|
119
|
-
tracker.ip_trusted?(ip)
|
120
|
-
end
|
121
|
-
|
122
|
-
# Domain Tracking - check with the trust domain seed file locally, to determine if it's a new internet domain
|
123
|
-
# NOT to confuse with the Internet 'whois' lookup
|
124
|
-
def domain_known?(domain)
|
125
|
-
tracker=Wmap::DomainTracker.new
|
126
|
-
tracker.domain_known?(domain)
|
127
|
-
end
|
128
|
-
|
129
|
-
# Host Tracking - check local hosts file to see if this is a hostname known from the host seed file
|
130
|
-
# NOT to confuse with a regular DNS lookup over the internet
|
131
|
-
def host_known?(host)
|
132
|
-
tracker=Wmap::HostTracker.new.host_known?(host)
|
133
|
-
end
|
134
|
-
|
135
|
-
# Sub-domain tracking - check local hosts file to see if the sub-domain is already known
|
136
|
-
def sub_domain_known?(host)
|
137
|
-
tracker=Wmap::HostTracker.new.sub_domain_known?(host)
|
138
|
-
end
|
139
|
-
|
140
|
-
# IP Tracking - check local hosts file to see if this is an IP known from the seed file
|
141
|
-
# NOT to confuse with a regular reverse DNS lookup over the internet
|
142
|
-
def ip_known?(ip)
|
143
|
-
tracker=Wmap::HostTracker.new.ip_known?(ip)
|
144
|
-
end
|
145
|
-
|
146
|
-
# DNS Brute Forcer
|
147
|
-
def dns_brute(domain)
|
148
|
-
bruter=Wmap::DnsBruter.new
|
149
|
-
bruter.query(domain)
|
150
|
-
end
|
151
|
-
|
152
|
-
# Retrieve root domain from a host
|
153
|
-
def domain_root(host)
|
154
|
-
Wmap::Utils.get_domain_root(host)
|
155
|
-
end
|
156
|
-
|
157
|
-
# Log the information into file
|
158
|
-
def wlog(msg,agent,log_file)
|
159
|
-
Wmap::Utils.wlog(msg,agent,log_file)
|
160
|
-
end
|
161
|
-
|
162
|
-
# Host-name mutation for catch easily guessable hostname, i.e. "ww1.example.com" => ["ww1,example.com","ww2.example.com",...]
|
163
|
-
def mutation (host)
|
164
|
-
Wmap::DnsBruter.new.hostname_mutation(host)
|
165
|
-
end
|
166
|
-
|
167
|
-
# Check URL/Site response code
|
168
|
-
def response_code(url)
|
169
|
-
checker=Wmap::UrlChecker.new
|
170
|
-
checker.response_code(url)
|
171
|
-
end
|
172
|
-
|
173
|
-
# Search the site repository for all entries that match the pattern
|
174
|
-
def search(pattern)
|
175
|
-
searcher=Wmap::SiteTracker.new
|
176
|
-
searcher.search(pattern)
|
177
|
-
end
|
178
|
-
|
179
|
-
# Dump out the unique sites into a plain file
|
180
|
-
def dump(file)
|
181
|
-
store=Wmap::SiteTracker.new
|
182
|
-
store.save_uniq_sites(file)
|
183
|
-
end
|
184
|
-
|
185
|
-
# Dump out the unique sites into a XML file
|
186
|
-
def dump_xml(file)
|
187
|
-
store=Wmap::SiteTracker.new
|
188
|
-
store.save_uniq_sites_xml(file)
|
189
|
-
end
|
190
|
-
|
191
|
-
# Refresh the site information in the local data repository
|
192
|
-
def refresh(site)
|
193
|
-
store=Wmap::SiteTracker.new
|
194
|
-
store.refresh(site)
|
195
|
-
store.save!
|
196
|
-
end
|
197
|
-
|
198
|
-
# Refresh the site information in the local data repository
|
199
|
-
def refresh_all
|
200
|
-
store=Wmap::SiteTracker.new
|
201
|
-
store.refresh_all
|
202
|
-
store.save!
|
203
|
-
end
|
204
|
-
|
205
|
-
# Search the Google engines and sort out sites known by Google
|
206
|
-
def google
|
207
|
-
sites=Wmap::GoogleSearchScraper.new.workers.keys
|
208
|
-
end
|
209
|
-
|
210
|
-
# Print a site's full information from the repository
|
211
|
-
def print(site)
|
212
|
-
searcher=Wmap::SiteTracker.new
|
213
|
-
searcher.print_site(site)
|
214
|
-
end
|
215
|
-
|
216
|
-
# Print a site's full information from the repository
|
217
|
-
def print_all
|
218
|
-
searcher=Wmap::SiteTracker.new
|
219
|
-
searcher.print_all_sites
|
220
|
-
end
|
221
|
-
|
222
|
-
private
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
end
|
227
|
-
end
|