前言
我边在渗透测试中,拿到 webshell 后执行命令总会碰到很多不便,而使用 ssh 登录则会方便许多。相比使用 webshell 工具执行命令,ssh 连接可以有命令提示、路径补全、支持二次交互等优势,本文记录一个从 WEB RCE 漏洞到 SSH 登录的姿势。
过程
getshell
首先通过 Shiro 550 得到一个 shell
因为网站不出网,所以不能直接反弹 shell,通过 base64 写入 webshell 到 web 目录
1 |
echo <base64 webshell> |base64 -d > webapps/uploadImg/shell.jsp;ls -lah |
架设代理
网站不出网,所以需要架设 socks 代理访问 ssh 端口及内网主机,这里使用 Neo-reGeorg。首次使用,先生成自己密码的 neoreg 服务端代码
1 |
python3 neoreg.py generate -k <your-password> |
执行后在 neoreg_servers
找到对应服务端语言的文件,这里是 tunnel.js
p
,然后通过上面的 shell 上传到目标服务器 web 目录上,再通过 neoreg 连接
1 |
# -k 指定连接密码,就是生成时用的密码 |
写入 ssh 公钥
为了尽量少修改服务器配置,通过写入 ssh 公钥可以不修改密码或者破解密码的情况下连接上 ssh。
这里使用 xshell 生成秘钥对,默认选项生成就可以了,shell 会自动保存秘钥对,当然使用 ssh-keygen 也是可以的
然后把生成的公钥文件,复制到目标主机的 ~/.ssh/authorized_keys
文件中,如果不存在可以创建
连接 ssh
配置 ssh 连接 127.0.0.2
配置用户名及公钥连接,公钥选择前面生成那个
配置代理,使用上面 neoreg 构建的代理
成功连接 ssh
为什么连接 127.0.0.2
经过实践发现,通过代理连接目标主机的内网 ip 172.xx.xx.33 连接不上,而连接 127.0.0.1
时则提示主机指纹改变的问题,需要重新写入指纹到目标主机才能连接,然而非 root 用户无法写入,连接 127.0.0.2
则完美避开问题
作者:r0yanx
原文地址:https://r0yanx.com/
星球的最近主题一些展示
欢迎加入星球!
推荐阅读
原文始发于微信公众号(渗透安全团队):渗透测试从 RCE 到 SSH 登录 | 新情报
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论