Tailscale内网穿透利用

admin 2024年11月12日22:57:21评论203 views字数 3449阅读11分29秒阅读模式

前言

Tailscale是一个内网穿透工具,通过将不同的机器在Tailscale控制台组成虚拟局域网,实现机器之间的互通。并且有多种的高级网络功能。

Tailscale 建立在安全网络结构之上,与传统VPN相比,可提供速度、稳定性和简单性。它使用开源WireGuard 协议进行加密的点对点连接,与通过中央网关服务器隧道传输所有网络流量的传统VPN不同,这意味着只有专用网络上的设备才能相互通信。

进入官网注册登录:https://tailscale.com/

登录后,点击Download下载对应的程序,以Windows为例

Tailscale内网穿透利用

下载完毕后对其进行安装。

 Tailscale内网穿透利用

安装完成后程序会出现在C:Program FilesTailscale文件夹中。通过点击tailscale-ipn.exe打开程序。当运行程序后,会以小图标的方式显示在状态栏下方。

 Tailscale内网穿透利用

1、基础使用

Windosw设备接入

点击状态栏的小图标,点击Log in会调用浏览器打开登录窗口,进行登录。登录后,点击连接,当前主机会被接入虚拟局域网。

 Tailscale内网穿透利用

连接后,主机被分配了一个虚拟局域网IP右边的IP是当前主机在虚拟局域网的地址。

Tailscale内网穿透利用

接下来接入第二台设备,第二台设备也是Windows。如下两台机器均已接入并连接到虚拟局域网。

Tailscale内网穿透利用

分别测试两台机器相互的连通性:

 Tailscale内网穿透利用

 Tailscale内网穿透利用

自此两台设备成功进行了组网。当拥有一台虚拟局域网中的主机时,默认可以双向访问虚拟局域网中的其他所有主机。

Linux设备接入

也可以使用Linux机器接入,利用下面的一行命令即可完成对Tailscale的安装

curl -fsSL https://tailscale.com/install.sh | sh

安装完毕后使用命令tailscale up启动,之后会弹出一个地址,在浏览器中打开地址,输入账户进行登录,跟windows一样。

2、内网渗透利用

通过上面的使用介绍,可以发现如果要在渗透测试中使用该程序会出现几个问题。

隐蔽性问题,是在程序的启动过程中,会在右下角状态栏显示出图标,同时一个正常的登录是通过在图标中右键点击log in来进行登录,这在后渗透过程中很难进行操作。另外就是当接入虚拟局域网后,其中的主机可以双向访问,而在渗透测试的过程中,我们仅希望能由安全测试人员,访问到目标主机,而不允许目标直接访问测试人员。最后还存在一个主机网段访问的问题,目前接入虚拟局域网的设备,仅能直接访问其中的设备,不能访问设备中所存在的上层网络。

接下来先介绍一下Tailscale所提供的功能,Tailscale的所有功能都显示在官方的说明文档中,接下来介绍能够解决上面问题的功能。

隐蔽性问题的解决

通过观察安装目录,发现该程序仅由四个文件组成。Tailscale-ipn为主程序。如果了解过softether的使用,可以发现在其中是通过将核心的几个文件保存下来,之后利用命令行的方式进行启动而规避了使用图形化进行操作。

 Tailscale内网穿透利用

tailscale-ipn主程序通过调用tailscale.exe来实现对应的功能。通过直接启动该程序发现,其中支持使用命令行进行操作。

Tailscale内网穿透利用

当我们使用命令行进行启动后,会提示相关的服务没启动。通过查看计算机中的服务发现,该服务是通过tailscaled.exe文件进行启动的。因为该程序后面没有接参数,我们也直接启动。

 Tailscale内网穿透利用

之后出现下面的错误提示,发现是权限问题,需要用管理员权限来启动。

Tailscale内网穿透利用

使用管理员权限之后,服务成功被启动。

Tailscale内网穿透利用

接下来继续启动tailscale.exe 使用up命令启动,发现没有出现报错。tailscaled也在其中产生了一些连接的日志。

 Tailscale内网穿透利用

同时右下角托盘总也没有出现小图标,隐蔽性的问题解决了。

登录问题的解决:

当利用命令行启动的时候会出现一个问题,此时的账户是没有登录的,也就是没有接入到虚拟局域网中,而正常的登录又需要打开浏览器登录,这也是下面要解决的问题。

通过阅读官网提供的文档,发现官方提供了Auth keys的功能,通过使用生成的Auth keys可以直接将目标主机接入到该虚拟局域网中。这样就避免了利用浏览器登录的问题。而可以直接使用命令进行登录。

Tailscale内网穿透利用

生成Auth keys进入Settings标签,点击Generate auth key

Tailscale内网穿透利用

进入生成Auth Key 页面,其中有一些内容可以进行设置

Tailscale内网穿透利用

标识
内容
Reusable
Key是否允许重复使用

Expiration

Key过期的时间

Ephemeral

临时的设备,即设备如果离线,则从这个虚拟局域网中删除该设备

Tags

标签用作标识一般配合ACL 策略表使用

复制下生成的Auth key

Tailscale内网穿透利用

利用Auth key使机器接入虚拟局域网,后面的参数是为了防止程序自动退出。

tailscale up --authkey [authkey]--unattended

可以看到启动服务的窗口产生了一些连接日志。

Tailscale内网穿透利用

设备成功上线,登录的问题也被解决了。

Tailscale内网穿透利用

权限控制问题的解决

由于Taliscale用于多地组网,所以机器之间的关系是相互的,当攻击机与一个设备进行连接的时候,它们之间可以进行相互通信。所以需要失陷仅能由攻击测试人员发起请求,被攻击的机器不能向发起请求。

通过查看文档,发现官方为这个问题提供了ACL策略表,通过这个表,我们可以为每台设备制定不同的访问策略。

Tailscale内网穿透利用

这里简单进行一下设置,如果需要建立更复杂的ACL策略可以参考官方文档。

建立策略:允许desktop-mpf5vje(100.89.24.71)访问win10(100.84.52.52),但是不允许从win10主机访问desktop-mpf5vje主机。

Tailscale内网穿透利用

ACLS设置点击Access controls 标签,当前acls列表中的意思是允许所有用户访问所有主机的所有端口。

Tailscale内网穿透利用

这里我们设置一条策略,只允许所有机器访问win10(100.84.52.52)以及它的所有端口,当点击保存时,这个策略会实时生效。

 Tailscale内网穿透利用

之后我们利用win10主机访问desktop-mpf5vje主机,可以发现已经不能访问了,而反之可以访问。因为上面的策略,只允许其他机器访问win10主机到这里就解决了双向连接的问题。

 Tailscale内网穿透利用

 Tailscale内网穿透利用

主机网段问题的解决

现在还存在最后一个问题,现在仅允许对目标主机进行访问,但是无法访问某主机中某个网段的其他主机。

这里接入了另一台主机NC04,这台主机中运行着一台虚拟机,其中的网络模式为nat,作为演示。

Tailscale内网穿透利用

Tailscale内网穿透利用

NC04的虚拟机网段为192.168.18.0/24在虚拟机中通过python起了一个http服务,用来进行测试。

Tailscale内网穿透利用

针对这种问题,官网允许将主机设置为Subnet routes(子网路由)。通过对其进行配置允许访问子网路由中的网段

Tailscale内网穿透利用

 Tailscale内网穿透利用

配置子网路由

1windows

tailscale up --advertise-routes=192.168.18.0/24

NC04设置为子网路由,并设置可以访问它的网段为192.168.18.0/24

Tailscale内网穿透利用

点击edit route settings,勾选上192.168.18.0/24.

 Tailscale内网穿透利用

 Tailscale内网穿透利用

子网路由设置完毕后虚拟局域网中的其他主机就可以直接访问NC04机器中192.168.18.0/24网段的所有主机,ALC策略改回默认之后(之前设置了只允许其他机器访问win10),使用win10机器来访问NC04的虚拟机192.168.18.133,已经能成功访问。

Tailscale内网穿透利用

2Linux

Linux也可以设置为子网路由,只是相比较与windows需要多设置一个端口转发。具体操作可以参考官方文档。

3攻击过程模拟

获取到shell或session后,通过上传Tailscale相关文件,之后利用命令行建立隧道。
上传tailscale.exe tailscaled.exe wintun.dll 等文件。

Tailscale内网穿透利用

生成auth keys

 Tailscale内网穿透利用

启动tailscaled.exe

Tailscale内网穿透利用

启动tailscale.exe 程序在后面加上--unattended ,不然程序会自动退出。

tailscale.exe up --authkey [authkey] --unattended

Tailscale内网穿透利用

目标机器ybts-4153成功进入虚拟局域网

Tailscale内网穿透利用

之后配置ACL禁止对方ybts-4153(100.93.230.231)访问攻击机器win10(100.84.52.52)

 Tailscale内网穿透利用

之后就可以使用与目标主机在同一虚拟局域网的攻击机进行进一步的内网渗透了,也可以判断是否有其他的网段,然后建立子网路由对目标主机的内网进行近一步的渗透。

Tailscale内网穿透利用

原文始发于微信公众号(红蓝攻防研究实验室):Tailscale内网穿透利用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月12日22:57:21
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Tailscale内网穿透利用https://cn-sec.com/archives/1942893.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息