我的组织使用 cisco 提供 vpn 访问任何连接。我使用 Linux 系统,可以使用以下方式连接到 VPN打开连接。我必须使用 openconnect,因为 Linux 上的 anyconnect 与身份验证方法该组织使用,但使用 openconnect。
我是一名管理员,因此拥有自己工作提供的系统的 root 访问权限,但无法访问 vpn 服务器,因为该服务器由其他部门负责。而且我还没有要求更改以使其更适合 Linux。
最近实施了一次扫描,检查某个文本文件和某个二进制文件是否存在。由于我使用 openconnect,因此扫描失败,但文件存在。我使用csd-包装器使用 openconnect 脚本来提供必要的信息。
我的问题是如何更改 csd-wrapper 脚本以告诉远程 vpn 服务器所需的文本文件和二进制文件已到位?
编辑:我有一个部分解决方案,看起来可以满足扫描要求。但是,由于它依赖于从 VPN 服务器下载二进制文件并运行这些文件,而不是自己发布数据,因此不安全。
openconnect 项目提供了一些有用的脚本:
https://gitlab.com/openconnect/openconnect/-/tree/master/trojans
我们需要这个:
https://gitlab.com/openconnect/openconnect/-/blob/master/trojans/csd-wrapper.sh
要连接,请使用--csd 包装器参数来运行脚本并将其指向您下载的位置,它应该是可执行的:
openconnect -c 'XX' --user='username' --authgroup='group' --csd-wrapper=csd-wrapper.sh
这种不安全的原因之一是它下载的二进制文件可能带有木马,或者由于思科引入了错误和安全漏洞而导致不安全:
我的问题依然存在如何找出要发布的内容。我知道:
https://github.com/Gilks/hostscan-bypass
但是当我使用代理 TLS 时,cisco anyconnect 客户端不允许我连接。它坚持认为连接不安全并停止。所以我必须找到另一种方法来找出它需要发布的信息。
值得注意的是,这样做至少尽可能地符合贵组织的规则,因为它所做的与 anyconnect 客户端所做的基本相同。因此,意外违反上述规则的可能性很小甚至不存在(如果有人在意的话)。
最后要说的是,组织选择使用低劣且不安全的 VPN 解决方案,这很奇怪(但很遗憾,这是完全可以预料到的)。只是因为它上面有“企业”的印章。至少对于 Linux 来说,anyconnect 客户端已经多年没有更新了,与 openconnect 相比,它不支持所有身份验证方法(例如智能卡)。有关更多讨论,请参阅:
答案1
要解决 TLS 代理问题,只需使用合法证书即可。您可以通过托管主机扫描绕过在基于云的服务器(例如 digitalocean、AWS 等)上并将 DNS 记录指向它。
AnyConnect 将看到有效的证书并允许您成功拦截 CSD 文件。