有这样一个场景:
kali 内网虚拟机
CentOS7.3 阿里云外网机
本机win7 模拟受害者
11月份有爆出过Office的一个关于公式编辑器的漏洞(CVE-2017-11882),参考复现过程可以参考我的另一篇文章,通常为了验证漏洞,我们会在本地测试该漏洞是否确实可以利用。
我们在虚拟机测试的环境局限于内网,如果我想发给外网的一个朋友,他打开这个word文档,我就可以在kali机获取到一个session。
大致流程:
1.我们事先生成恶意word文档,并在kali下打开msf,监听4444端口,等待传入的连接
2.在kali机运行ssh反向连接4444端口到外网的一台阿里云机器1111端口
3.把恶意word文档发给朋友,朋友打开以后触发漏洞,会主动连接阿里云机器的1111端口,然后阿里云机器转发到内网kali的4444端口
4.kali接收到传入的连接,自动建立起了一个session,然后我们就可以session -i ID对朋友主机进行shell命令执行、屏幕截图、键盘记录等操作了
选项:
-R 1111(外网主机端口):localhost:80(本机80端口) USER@外网主机
-L 本地的ssh连接
-R 反向的ssh连接
-N 只连接远程主机,不打开shell
-f SSH连接成功后转入后台运行
-T 不为这个连接分配TTY
反向连接在建立之后只能使用kill命令来杀掉进程PID。
举例:
root@kali:~# systemctr start nginx #先启动一个80端口的nginx测试,没有的话apt-get install nginx安装
root@kali:~# sudo ssh -NfR 1111:localhost:80 root@47.95.xxx.xxx -p 22 #ssh反向连接
root@47.95.xxx.xxx‘s password: #输入密码
#在阿里云机器就会看到一个由sshd监听在1111端口的连接
[root@iz1zdekzlq9sm5c8t43t2uh ~]# netstat -tnlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1123/sshd
tcp 0 0 0.0.0.0:1111 0.0.0.0:* LISTEN 1918/sshd: root
现在在我们真实机器上访问 47.95.xxx.xxx:1111端口,就会访问到kali虚拟机内的nginx服务
http://47.95.xxx.xxx:1111