一、简介
- 在取得一台机器后,我们希望扩大战果,此时就需要将目标机器作为网络枢纽,以此实现内网漫游的目的。
二、方式
2.1 SSH
2.1.1 前言
SSH
我们一般用于Linux
之间的连接,但实际上却也是可以利用SSH
进行端口转发,以此实现内网漫游的目的。- 使用
SSH
来进行端口代理,可以绕过防火墙策略的限制,而且因为使用的是正常的服务进行,所以无需再于目标主机使用第三方软件,因而不会因为代理的缘故被杀软检测,是一种安全的代理方式!
2.1.2 使用
2.1.2.1 正向端口转发
ssh -L 1234:<remote_ip>:3306 ubuntu@10.129.202.64 -Nv
-L
:本地端口监听转发-N
选项表示不执行远程命令,只用于端口转发-v
:显示详细的调试信息,以便跟踪连接和数据传输的细节- 通过
Ubuntu
主机连接,转发本地端口1234
流量到远程主机的3306
端口
2.1.2.2 反向端口转发
-
ssh -R 1234:<remote_ip>:3306 ubuntu@10.129.202.64 -Nv
-
-R
:远程端口监听转发 -
通过
Ubuntu
主机连接,转发远程端口1234
流量到远程主机的3306
端口
-
2.1.2.3 动态端口转发
ssh -D 1080 ubuntu@10.129.202.64 -Nv
-D 1080
:在本地主机的1080
端口上创建一个SOCKS
代理服务器- 在本地主机上创建一个
SOCKS
代理服务器,监听在本地的1080
端口。所有经过这个代理服务器发送的流量将通过SSH
连接发送到远程主机,并由远程主机转发
2.1.2.4 多端口转发
- 示例:
ssh -L 1234:localhost:3306 -L 8080:localhost:80 ubuntu@10.129.202.64
2.1.3 补充
Windows
也是可以开启SSH服务,即也适用于一下的方式利用Windows进行端口代理
# Windows主机安装SSH
https://github.com/PowerShell/Win32-OpenSSH/releases
安装软件:
msiexec /i OpenSSH-Win64-v9.5.0.0.msi /qn
开启服务:
net start sshd
开机自启:
sc config sshd start= auto
添加防火墙规则(Powershell):
New-NetFirewallRule -Name sshd -DisplayName 'OpenSSH Server (sshd)' -Enabled True -Direction Inbound -Protocol TCP -Action Allow -LocalPort 22
2.2 Meterpreter
2.2.1 前言
Meterpreter
是Metasploit
中的一种攻击载荷模式,其采用多重加载的形式,使得原本的Payload
体积变小且功能更强,可以在执行RCE
之额外加载其他的功能,诸如端口转发。
2.2.2 使用
2.2.2.1 生成攻击载荷:
- 参考:传送门
2.2.2.2 端口转发
portfwd
portfwd add -l 3300 -p 3389 -r remote_ip
- 通过
Meterpreter
将攻击机本地端口3300
转发到远程主机的3389
端口
2.3 Cobalt Strike
2.3.1 前言
CS
是一款商业版的C2
,也因为其强大功能,因而是常年被安全厂商格外照顾的对象。其尤为出彩的是团队协作渗透以及后渗透能力。
2.3.2 使用
GUI
使用,建立Socks代理后,可直接于Server
上使用proxychains
进行进一步使用
2.4 WEB
2.5 DNS
2.6 ICMP
2.7 RDP
三、代理工具
Linux
:proxychainskali
默认安装,使用需要修改配置文件/etc/proxychains4.conf
- 默认代理:
9050:socks5
- 使用示例:
proxychains curl ifconfig.me
- Windows:Proxifier
- 支持代理链,多级代理
- 支持自定义配置规则,允许对windows主机内任意程序进行代理使用
四、其他拓展
4.1 Powershell安全应用
- 关闭
WindowsDefender
实时监控:
Set-MpPreference -DisableRealtimeMonitoring $true
- 关闭防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
4.2 原生命令主机探活
Linux
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
1..254 | % {"172.16.5.$($_): $(Test-Connection -count 1 -comp 172.15.5.$($_) -quiet)"}