|
1 | 1 | import argparse |
2 | 2 | import getpass |
3 | 3 | import re |
| 4 | +import warnings |
4 | 5 |
|
5 | 6 | from .listener import WsshuttleListener |
6 | 7 |
|
7 | 8 |
|
8 | 9 |
|
9 | 10 | def main() -> int: |
10 | 11 | parser = argparse.ArgumentParser(prog="wsshuttle") |
11 | | - parser.add_argument("-u", "--username", required=True) |
12 | | - parser.add_argument("-p", "--password", default=None) |
| 12 | + parser.add_argument("-u", "--username", required=True, help="Target username") |
| 13 | + parser.add_argument("-p", "--password", default=None, help="Target user's password") |
13 | 14 | parser.add_argument("-b", "--host", required=True, help="IP of this machine to backconnect to") |
14 | 15 | parser.add_argument("-i", "--dest", required=True, help="Host to connect to") |
15 | | - parser.add_argument("-H", "--hash", default=None) |
16 | | - parser.add_argument("-m", "--mask", required=True) |
| 16 | + parser.add_argument("-H", "--hash", default=None, help="NTLM hash") |
| 17 | + parser.add_argument("-m", "--mask", required=True, help="Subnet mask to tunnel into") |
17 | 18 | args = parser.parse_args() |
18 | 19 |
|
19 | 20 | if args.hash and args.password: |
20 | 21 | print("Only one of --hash and --password may be specified") |
21 | 22 | return -1 |
22 | 23 |
|
23 | 24 | if args.hash is not None: |
| 25 | + print("WARNING: Using hash authentication currently requires installing an extra dependency - \n" |
| 26 | + "pip3 install git+https://github.com/clubby789/requests-ntlm@pyspnego") |
24 | 27 | ntlm = args.hash.lower() |
25 | | - if re.match("[a-z0-9]{32}"): |
| 28 | + if re.match("[a-z0-9]{32}", ntlm): |
26 | 29 | args.password = "0" * 32 + ":" + ntlm |
27 | | - elif re.match(":[a-z0-9]{32}"): |
| 30 | + elif re.match(":[a-z0-9]{32}", ntlm): |
28 | 31 | args.password = "0" * 32 + ntlm |
29 | | - elif re.match("[a-z0-9]{32}:[a-z0-9]{32}"): |
| 32 | + elif re.match("[a-z0-9]{32}:[a-z0-9]{32}", ntlm): |
30 | 33 | args.password = ntlm |
31 | 34 | else: |
32 | 35 | print("Invalid hash format") |
|
0 commit comments