Identify servers running various SSL VPNs
Project description
what-vpn
Identifies servers running various SSL VPNs. (They should really be called "TLS-based" VPNs, but "SSL VPN" has become the de facto standard jargon.) Currently it can recognize…
- Cisco AnyConnect and OpenConnect (ocserv)
- Juniper Network Connect/Pulse
- PAN GlobalProtect
- Barracuda Networks
- Check Point
- Microsoft SSTP
- OpenVPN
- Fortinet
- Array Networks
- F5 BigIP
- SonicWall NX (spin-off from Dell)
- Aruba VIA
- H3C
Install
Requires Python 3, pip
, and requests
:
$ pip3 install https://github.com/dlenski/what-vpn/archive/master.zip
...
$ what-vpn
usage: what-vpn [-h] [-k] [-t SEC] [-v | -c] server [server ...]
what-vpn: error: the following arguments are required: server
Examples
$ what-vpn vpn.colorado.edu vpn.northeastern.edu \
vpn.tnstate.edu vpn.smith.edu vpn.caltech.edu \
vpn.yale.edu vpn.drew.edu vpn.uca.edu vpn.simmons.edu \
vpn.nl.edu cpvpn.its.hawaii.edu ssl-vpn.***.com \
viavpn.luther.edu
vpn.colorado.edu: AnyConnect/OpenConnect (Cisco)
vpn.northeastern.edu: PAN GlobalProtect (portal)
vpn.tnstate.edu: PAN GlobalProtect (portal+gateway)
vpn.smith.edu: Juniper Network Connect
vpn.caltech.edu: AnyConnect/OpenConnect (Cisco, ASA (9.1(6)6))
vpn.yale.edu: AnyConnect/OpenConnect (Cisco, ASA (8.4(5)))
vpn.uca.edu: Barracuda (2017)
vpn.simmons.edu: Check Point (2015, 20%)
vpn.nl.edu: Check Point
cpvpn.its.hawaii.edu: Check Point
vpn.***.com: Array Networks (40%)
ssl-vpn.***.com: no match
viavpn.luther.edu Aruba VIA (80%)
$ what-vpn -kv vpn.***.com
Sniffing ***.***.com ...
Is it AnyConnect/OpenConnect? ocserv, 0.8.0-0.11.6
Is it Juniper Network Connect? no match
Is it PAN GlobalProtect? no match
Is it Barracuda? no match
Is it Check Point? no match
Is it SSTP? no match
Is it OpenVPN? no match
=> AnyConnect/OpenConnect (ocserv, 0.8.0-0.11.6)
Interesting results
An interesting question for the open source community, including the indispensable OpenConnect (which I also contribute to) is…
What are the most commonly-used SSL VPN protocols in the real world?
2019 results
In April 2019, I took a list of major universities and companies in the USA, and
generated some guesses for the hostnames of their VPN endpoints
(e.g. {vpn,ssl-vpn,sslvpn}.*.{edu,com}
). I then used what-vpn
to probe them all
and looked at the subset of the results that matched to an identifiable SSL
VPN protocol:
1 Check Point
1 Citrix (manually inspected, don't know how to reliably autodetect)
1 OpenVPN
5 Dell or SonicWall (manually inspected, didn't know how to reliably autodetect at the time
7 Fortinet
7 Barracuda
8 F5 (manually inspected, didn't know how to reliably autodetect at this time)
14 SSTP
53 PAN GlobalProtect (portal and/or gateway)
72 Juniper Network Connect (or Junos/Pulse, hard to distinguish)
243 Cisco AnyConnect (including 1 ocserv)
Assuming these results are roughly representative of “SSL VPN” deployments
in general (at least in the USA), they show that OpenConnect already supports
the top 3 most commonly-encountered SSL VPN protocols, or about 80% of SSL VPNs.
Additionally Microsoft SSTP is supported by the open-source
sstp-client
,
and of course OpenVPN is well-supported by open-source clients as well.
(Excerpted from this post on the OpenConnect mailing list)
2021 results
I repeated this analysis in February 2021 (after having implemented F5, SonicWall NX, and Array Networks sniffers, and
having improved several others). This time, I expanded the pool of names to include
{vpn,ssl-vpn,sslvpn,remote,vpn2,new.vpn,access}.*.{edu,com}
. Here are the 2021 results for servers that matched to
an identifiable SSL VPN protocol:
1 Array Networks
4 Barracuda
4 Check Point
6 SonicWall NX
8 OpenVPN
14 SSTP
21 F5 BigIP
29 Fortinet
83 Pulse Secure (most also support the older Juniper protocol)
103 PAN GlobalProtect (includes 7 servers that behave in a slightly odd way)
298 Cisco AnyConnect (no ocserv found this time)
We've recently added support in OpenConnect for Fortinet and F5 BigIP (with support for SonicWall NX coming soon). Combined with AnyConnect, GlobalProtect, and Pulse/Juniper, this means that OpenConnect now supports 5 of the most highly-used SSL VPN protocols.
Assuming again that these results are roughly representative of “SSL VPN” deployments in general (at least in the USA). That means that OpenConnect now supports almost 93% of SSL VPNs in real-world use.
TODO
- Identify non-SSL/TLS-based VPNs? (e.g. IPSEC, à la ike-scan)
- Identify more SSL VPNs: Citrix… any others?
- Fix apparent false-negatives for some SonicWall/Dell servers
- Identify specific versions or flavors of VPN servers?
- Better confidence levels?
License
GPLv3 or later
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file what-vpn-0.7.tar.gz
.
File metadata
- Download URL: what-vpn-0.7.tar.gz
- Upload date:
- Size: 13.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84ee86a71f08f973b77125acde13f50b485c8dc207773dbf2e9af7896866f40c |
|
MD5 | 56203c3a43441cb3932118204d5f2eed |
|
BLAKE2b-256 | 55bcc255e0dfd2c6a8b23d3e6ccb81ecac8061379e36c11360317106de85f2b5 |
File details
Details for the file what_vpn-0.7-py3-none-any.whl
.
File metadata
- Download URL: what_vpn-0.7-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e394d58bed9d9d589f907754b52963c7c64268d1b3d00b86f0a72ec04603d309 |
|
MD5 | ecfc1291f44c5c20a4c72f5d3c57000d |
|
BLAKE2b-256 | 135f4f0397daccadd3ea5d82cb803fa241371ab889b9e8b88a5c02ae80353c26 |