diff --git a/tests/test_sniffers.py b/tests/test_sniffers.py index cab9ef6..cb4e576 100644 --- a/tests/test_sniffers.py +++ b/tests/test_sniffers.py @@ -47,6 +47,7 @@ ('viavpn.luther.edu', sn.aruba_via), ('vpn.wdc.softlayer.com', sn.array_networks), ('166.111.32.74:10443', sn.h3c), # no DNS? tsinghua.edu.cn + ('tlslink.com:4433', sn.anylink), ] unmatched_vpns = ['vpn.{}.edu'.format(d) for d in ( diff --git a/what_vpn/sniffers.py b/what_vpn/sniffers.py index 7e9d825..eefb4d1 100644 --- a/what_vpn/sniffers.py +++ b/what_vpn/sniffers.py @@ -361,6 +361,17 @@ def huawei(sess, server): confidence = 0.4 + (0.2 if parse_qs(final_url.query).get('ReloginCause') else 0) + (0.4 if bizarre_cookie else 0)) +def anylink(sess, server): + '''AnyLink''' + r = sess.get('https://{}'.format(server) + , headers={'user-agent': 'SSLVPN-Client/3.0'} + ) + server = r.headers.get('server') + if server == 'AnyLinkOpenSource': + return Hit(name='AnyLink', + confidence = 0.8 + (0.2 if r.text.startswith('AnyLink') else 0)) + + sniffers = [ anyconnect, juniper_pulse, @@ -377,4 +388,5 @@ def huawei(sess, server): aruba_via, h3c, huawei, + anylink, ]