在 Linux 中横向移动

在 Linux 中的操作多年来变化不大。通常,如果你使用的是 dnscat2 或 Meterpreter,它们都支持自己的转发。

  • dnscat2:
    • listen 127.0.0.1:9999 :22
  • Metasploit
    • post/windows/manage/autoroute
  • Metasploit Socks Proxy + Proxychains
    • use auxiliary/server/socks4a
  • Meterpreter:
    • portfwd add –l 3389 –p 3389 –r

如果你幸运地获得了一个 SSH shell,那么我们可以通过该系统进行渗透。我们如何获得 SSH shell 呢?在许多情况下,一旦我们可以实现本地文件包含(LFI)或远程代码执行(RCE),我们可以尝试权限升级以读取 /etc/shadow 文件(和密码破解),或者我们可以利用一些 Mimikatz 风格的方法。

与 Windows 和 Mimikatz 一样,Linux 系统也有同样的问题,密码以明文形式存储。@huntergregal 编写的工具可以转储特定进程,这些进程很可能以明文形式包含用户的密码。尽管迄今为止,这只适用于有限版本的 Linux 系统,但这个相同的概念可以在整个系统中使用。你可以在这里准确地看到哪些系统以及从何处获取密码:

在 Linux 中横向移动 - 图1

一旦我们在被入侵的主机上获得了凭证,并且可以通过 SSH 反弹 shell,我们就可以通过这个隧道传输流量,并在机器之间进行数据隐藏。在 SSH 中,有一些很好的特性可以让我们执行这个操作过程:

  • 设置动态 Sock Proxy 以使用 proxychains 通过主机隐藏我们的所有流量:
    • ssh -D 127.0.0.1:8888 -p 22 @
  • 单个端口的基本端口转发:
    • ssh @ -L 127.0.0.1:55555::80
  • 通过 SSH 的 VPN。这是一个非常棒的特性,使得可以通过 SSH 隧道隐蔽传输第3层网络流量。