You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+21-5Lines changed: 21 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,5 @@
1
1
# VHostScan
2
-
A virtual host scanner that can pivot over hosts, detect catch-all scenarios, aliases and dynamic default pages.
2
+
A virtual host scanner that can pivot over hosts, detect catch-all scenarios, aliases and dynamic default pages. First presented at SecTalks BNE in September 2017 ().
@@ -27,16 +32,27 @@ A virtual host scanner that can pivot over hosts, detect catch-all scenarios, al
27
32
| --unique-depth UNIQUE_DEPTH | Show likely matches of page content that is found x times (default 1). |
28
33
| --ssl | If set then connections will be made over HTTPS instead of HTTP. |
29
34
30
-
## Examples
31
-
35
+
## Usage Examples
36
+
### Quick Example
32
37
The most straightforward example runs the default wordlist against example.com using the default of port 80:
33
38
34
39
```bash
35
40
$ VHostScan.py -t example.com
36
41
```
37
-
42
+
### Port forwarding
38
43
Say you have an SSH port forward listening on port 4444 fowarding traffic to port 80 on example.com's development machine. You could use the following to make VHostScan connect through your SSH tunnel via localhost:4444 but format the header requests to suit connecting straight to port 80:
parser.add_argument("-t", dest="target_hosts", required=True, help="Set a target range of addresses to target. Ex 10.11.1.1-255" )
20
-
parser.add_argument("-w", dest="wordlist", required=False, type=str, help="Set the wordlist to use (default ./wordlists/virtual-host-scanning.txt)", default="./wordlists/virtual-host-scanning.txt")
21
+
parser.add_argument("-w", dest="wordlist", required=False, type=str, help="Set the wordlist to use (default ./wordlists/virtual-host-scanning.txt)")
21
22
parser.add_argument("-b", dest="base_host", required=False, help="Set host to be used during substitution in wordlist (default to TARGET).", default=False)
22
23
parser.add_argument("-p", dest="port", required=False, help="Set the port to use (default 80).", default=80)
23
24
parser.add_argument("-r", dest="real_port", required=False, help="The real port of the webserver to use in headers when not 80 (see RFC2616 14.23), useful when pivoting through ssh/nc etc (default to PORT).", default=False)
@@ -27,26 +28,50 @@ def main():
27
28
parser.add_argument('--unique-depth', dest='unique_depth', type=int, help='Show likely matches of page content that is found x times (default 1).', default=1)
28
29
parser.add_argument("--ssl", dest="ssl", action="store_true", help="If set then connections will be made over HTTPS instead of HTTP (default http).", default=False)
29
30
parser.add_argument("--fuzzy_logic", dest="fuzzy_logic", action="store_true", help="If set then fuzzy match will be performed against unique hosts (default off).", default=False)
31
+
parser.add_argument("--waf", dest="add_waf_bypass_headers", action="store_true", help="If set then simple WAF bypass headers will be sent.", default=False)
30
32
parser.add_argument("-oN", dest="output_normal", help="Normal output printed to a file when the -oN option is specified with a filename argument." )
print("[+] Starting virtual host scan for %s using port %s and wordlist %s"% (arguments.target_hosts,
38
-
str(arguments.port),
39
-
arguments.wordlist))
33
+
parser.add_argument("-", dest="stdin", action="store_true", help="By passing a blank '-' you tell VHostScan to expect input from stdin (pipe).", default=False)
0 commit comments