Unable to get WebVPN Cookie after sfinst failed to download

Adam Brenner adam at aeb.io
Fri Mar 25 21:02:10 PDT 2016


Howdy,

I have been using OpenConnect version 7.06 on linux and after a few 
months of working, I noticed that it stopped. I suspect the crazy tin 
foil hat security folks at my company blocked access which is extremely 
sad. I am hoping someone can offer some insights on how to get this to 
work, if at all.

I use the following command line to connect:

   $ sudo openconnect vpn.company.tld --csf-user=adam --no-xmlpost \
     --csd-user=adam --no-xmlpost \
     --csd-wrapper=/home/adam/.cisco/csd-wrapper.sh

What I get in response is that I am unable to download the Linux binary 
from the server (using --dump-http-traffic we see):

  GET https://vpn.company.tld/CACHE/sdesktop/install/binaries/sfinst
  > GET /CACHE/sdesktop/install/binaries/sfinst HTTP/1.1
  > Host: vpn.company.tld
  > User-Agent: Open AnyConnect VPN Agent v7.06
  > Cookie: webvpnlogin=1
  > Accept: */*
  > Accept-Encoding: identity
  > X-Transcend-Version: 1
  > X-Support-HTTP-Auth: true
  >
  Got HTTP response: HTTP/1.1 404 Not Found (does not exist)
  X-Transcend-Version: 1
  HTTP body http 1.0 (-1)
  Cannot receive HTTP 1.0 body without closing connection
  Failed to obtain WebVPN cookie


Confirming with CURL and WGET the binary does _not_exists. Alright, so 
the crazy fin foil hat security folks removed the binary. Faking the OS 
with --os=win we get:

   GET https://vpn.company.tld/CACHE/sdesktop/install/binaries/inst.exe
   > GET /CACHE/sdesktop/install/binaries/inst.exe HTTP/1.1
   > Host: vpn.company.tld
   > User-Agent: Open AnyConnect VPN Agent v7.06
   > Cookie: webvpnlogin=1
   > Accept: */*
   > Accept-Encoding: identity
   > X-Transcend-Version: 1
   > X-Support-HTTP-Auth: true
   >
   Got HTTP response: HTTP/1.1 200 OK
   Content-Length: 173968
   Content-Type: application/octet-stream
   Cache-Control: max-age=0
   X-Frame-Options: SAMEORIGIN
   X-Transcend-Version: 1
   HTTP body length:  (173968)
   Failed to obtain WebVPN cookie

With --os=win we are able to get passed the download of binary but 
unable to get the webvpn cookie. Trying --os=android leads to the famous 
"Refreshing +CSCOE+/sdesktop/wait.html after 1 second..." screen which 
never loads.

Using the --dump-http-traffic with --os=android and copying, what 
appears to be a cookie,

   GET https://vpn.company.tld/+CSCOE+/sdesktop/wait.html
   > Cookie: webvpnlogin=1; sdesktop=4712CB7D0B02ADD4004BD727

into the last command with --cookie-on-stdin did not work. Gave me a 401 
unauthorized.


Any ideas on how I am able to connect back to work? As a work around I 
have a VM of Windows on my linux laptop which I hatefully use.

thanks,
/adam

-- 
Adam Brenner <adam at aeb.io>



More information about the openconnect-devel mailing list