Tailscale在红蓝攻防中的使用

在进行内网渗透探测时,鉴于内网环境的多元性和复杂性,需要构建多个代理隧道,以确保可以轻松地访问到内网资源。为了建立这种隧道,使用的工具应当既复杂又多样,例如reGeorg、Frp和stotwawy等工具。本文研究公用软件建设隧道相关功能的可行性,禁止将该技术用于未经授权的渗透测试行为。

Tailscale介绍

Tailscale是一个使用WireGuard协议的用于构建安全网络连接的工具。基本上,它是一个私人网络,能让你的设备就像在同一个WiFi网络下一样相互连接。它可以在网络中的任何地方连接你的设备,无论是在家里、在办公室,还是在咖啡店,只要设备上运行Tailscale,所有的设备都能维持互联互通。Tailscale使用多种技术建立隧道,如服务器中继,NAT, P2P对点传输等,为了确认最适合的连接方式,优先级是直接连接> NAT穿透>中继连接。以上每种模式的工作原理都基于WireGuard协议,这样可以确保整个连接过程的安全性和效率。

Tailscale的工作主要基于两个基础原理:

1.WireGuard VPN协议: Tailscale使用WireGuard这个新型VPN协议为基础。WireGuard比传统的VPN协议更简单、更安全、更高效。WireGuard使用最新的加密技术,提供最优的安全性。而且,由于这项协议独特的设计,它在网络连接中实现了高效的性能优化。无论你处于何处,只要有网络连接,Tailscale能让你的所有设备都像同处一个局域网中一样进行交互。

2.身份识别和授权: Tailscale让你通过你的Google、GSuite或Office365帐户来进行身份验证,也可以通过OpenID或SAML进行身份验证。当设备通过身份验证后,它会在Tailscale网络中被授权。每个设备的公钥和IP地址都会被记住,并限制只有经过验证的设备可以加入网络。

3.设备兼容性

Tailscale兼容Windows,Linux,Android,iOS ,Mac OS,群辉等主流操作系统

4.免杀方面

得益于Tailscale的用户基础,在杀软检测方面几乎不会被查杀,可以做到一定的免杀效果,但是在流量检测方面,少数安全设备会对其传输的流量进行识别。而本文主要研究能否利用一些正常用途的工具,在官方提供的功能基础上完成对内网渗透的测试。从而能够让网络安全从业者更顺畅的完成测试工作。

5.注册与使用

用户注册使用方面,Tailscale提供了免费方案,3个用户与100台设备,简单的ACL访问策勒供使用,这里不在多说,重点介绍使用方面。

在攻防中使用

客户端下载地址:

https://tailscale.com/download/

这里使用Windows客户端介绍,其他操作系统参照官方的安装方法

下载Windows客户端,安装后观察目录发现该程序仅由四个文件组成

其中tailscale.exe为命令行主程序,支持使用命令行进行操作,tailscale-ipn为GUI程序,在渗透过程中一般不使用,tailscaled.exe为服务守护进程,wintun为虚拟网卡驱动,所以,在渗透过程中,只需要三个文件上传到宿主机tailscale.exe,tailscaled.exe,wintun.dll

tailscale.exe命令行选项

USAGE
  tailscale [flags] <subcommand> [command flags]

For help on subcommands, add --help after: "tailscale status --help".

This CLI is still under active development. Commands and flags will
change in the future.

SUBCOMMANDS
  up         Connect to Tailscale, logging in if needed
  down       Disconnect from Tailscale
  set        Change specified preferences
  login      Log in to a Tailscale account
  logout     Disconnect from Tailscale and expire current node key
  switch     Switches to a different Tailscale account
  configure  [ALPHA] Configure the host to enable more Tailscale features
  netcheck   Print an analysis of local network conditions
  ip         Show Tailscale IP addresses
  status     Show state of tailscaled and its connections
  ping       Ping a host at the Tailscale layer, see how it routed
  nc         Connect to a port on a host, connected to stdin/stdout
  ssh        SSH to a Tailscale machine
  funnel     Turn on/off Funnel service
  serve      Serve content and local servers
  version    Print Tailscale version
  web        Run a web server for controlling Tailscale
  file       Send or receive files
  bugreport  Print a shareable identifier to help diagnose issues
  cert       Get TLS certs
  lock       Manage tailnet lock
  licenses   Get open source license information
  exit-node

FLAGS
  --socket string
        path to tailscaled socket

我在最开始的尝试中,使用命令行tailscale up想直接启用,发现提示了错误

猜测是没有后台守护造成的,于是使用以下命令行创建并启用服务(这代表使用tailscale必须拥有管理员权限)

shell sc create "tailscale" binpath= "D:/dbbak/tailscaled.exe"

shell sc config "tailscale" start= auto 

shell net start "tailscale" 

在启用服务后,发现再次使用tailscale up已经能够正常使用了

这里会返回一个连接,在浏览器里面打开这个连接,即可将设备加入到私有网络,到https://login.tailscale.com/admin/machines查看设备,即可获取到目标设备的IP,如何访问这个设备呢?你需要下载tailscale,安装到你的主机(由于Taliscale用于多地组网,所以他们之间的关系是相互的,当他与一个设备进行连接的时候,他们之间可以进行相互通信,所以,这里建议使用虚拟机,以防止对方反制,虽然有ACL规则可以设置访问规则,但是配置相对麻烦,不建议开启),加入到私有网络,即可访问到目标主机

在使用过程中发现使用D:/dbbak/tailscale.exe up,进程会一段时间后退出,添加–unattended可后台运行,添加参数–advertise-routes=后,即可访问宿主机的子网网络,命令行如下

启动/登录tailscale
shell D:/dbbak/tailscale.exe up / shell D:/dbbak/tailscale.exe login

在后台运行
shell D:/dbbak/tailscale.exe up --unattended 

添加子网访问
shell D:/dbbak/tailscale.exe up --unattended --advertise-routes=200.100.0.0/20

添加多个网段
shell D:/dbbak/tailscale.exe up --unattended --advertise-routes=200.100.0.0/20,10.0.1.0/24

添加子网后,需要在web页面中打开

在你安装客户端的设备中,即可直接访问目标子网的子网设备,由于走的是VPN协议,所以默认支持扫描,ICMP等,十分方便

进阶使用

使用Auth keys登录

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

打开https://login.tailscale.com/admin/settings/keys添加key

利用Auth key注册机器

tailscale up --authkey [authkey]

这样,运行之后即可将设备加入到私有网络

ACL访问限制

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

通过查看文档,发现官方为这个问题提供了ACL策略表,通过这个表,我们可以为每台设备制定不同的访问策略。官方使用的默认策略是拒绝,也就是说,没有明确的ACL规则的话,默认是拒绝的,参考默认规则

可以看到,上面的规则是默认所有的设备都可以互联,假设目标机器IP为100.125.216.60,我们简单添加一个策略,只允许访问目标机器,而不允许目标机器访问我们,这样可以避免被反制

此时由于默认策略是拒绝,100.125.216.60 想访问其他机器就会被拒,可以避免被反制,更多ACL规则参考官方文档:https://tailscale.com/kb/1018/acls/

如果没有将清楚的地方,可在文章底部评论,或直接联系我

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇