网络安全——SSH密码攻击实验

news2024/12/23 19:07:04

一、实验目的要求:

二、实验设备与环境:

三、实验原理:

四、实验步骤:​

五、实验现象、结果记录及整理:

六、分析讨论与思考题解答:


一、实验目的要求:

1、了解SSH密码攻击、FTP密码攻击的原理,了解攻击后的严重后果。

2、掌握SSH密码攻击和FTP密码攻击的方法。

3、具体要求:

        1)学习密码攻击的基本原理,并使用Hydra工具暴力破解密码。

        2)对SSH、FTP应用程序进行强壮密码设置。


二、实验设备与环境:


三、实验原理:

1、根据密码攻击的原理:在不知密钥的情况下,推算出密码明文;

2、根据密码攻击的方法:

1)穷举法:依次遍历所有的密钥对密文进行破解,或用一个确定的密钥对所有明文进行加密。此方法受时间和存储空间的限制。

2)统计分析攻击:通过解析密文和明文的统计规律来破解密码。此方法需人工分析统计,从而找出其中的规律、对应关系等信息。

3)数学分析攻击:结合数学基础、密码学等,对加密解密算法分析分析破解。此方法需要人工参与分析计算。

3、根据Hydra工具的作用:用此工具进行暴力破解,可在线破解多种密码。结合相关攻击协议、模块进行破解,如协议AFP、CVS、FTP等。并提供多种登录机制。此工具操作简单,提供图形化界面。

4、根据SSH、FTP协议的特点,ssh是securety shell(安全外壳协议)的缩写,是一种网络协议,作用是用于计算机之间的加密登录;FTP协议提供交互式的访问,允许客户指定存储文件的类型与格式,具备鉴别控制能力,屏蔽了计算机系统的细节。本实验将使用Hydra对SSH和FTP协议进行密码破解。

四、实验步骤:

(一)破解SSH密码

1、登录主机2,设置被攻击主机SSH服务,执行以下命令配置"sshd_config"文件,"$ sudo vim /etc/ssh/sshd_config"。输入密码"root@openlab",将配置文件中的"PermitRootLogin without-password"注释掉,并加一行命令"PermitRootLogin yes"。注释的目的是为root账号开启ssh登录,防止ssh服务拒绝密码。"PermitRootLogin yes"的作用是允许root登录。

PermitRootLogin可以限定root用户通过ssh的登录方式,如禁止登陆、禁止密码登录、仅允许密钥登录和开放登录。without-password参数类别是允许ssh登录,登录方式除密码以外,交互shell没有限制。

重新启动ssh服务,将以上的设置生效。"$ sudo service ssh restart"。

 2、登录主机1,手动创建用户名字典和密码字典,为后续的破解做准备工作。执行命令"vi user.txt",添加用户名,执行命令"vi password.txt",添加密码。并保存退出。如用户名"root"、"linux"、"user",密码"123"、"admin"、"root@openlab"。

此输入的用户名和密码只为学习破解流程,正在需要实际破解时,要利用密码字典生成器生成强大的字典。

3、启动hydrg-gtk工具,进行破解。

1)在Target选项卡下,设置Single Target地址,即攻击目标系统的地址,30.0.1.4(主机2),设置协议为SSH,勾选Output Options框中Show Attempts的复选框,可以查看密码攻击的过程。

2)在Password选项卡下,添加字典,指定用户名和密码,列表文件勾选“Username List”并单击后面的空框,在弹出框中选择刚刚创建的用户名列表文件。同理,完成密码列表文件的选择,最后勾选"Loop around users"选项,用来循环访问用户。

3)在"Tuning"选项卡下,自定义任务编号、超时时间,Number of Tasks设为16,Timeout设为30,勾选"Exit after first found pair"的复选框,表示找到第一对匹配项时则停止攻击。

4)在"Start"选项卡下,单击"Start"按钮,进行攻击。

破解出的用户名密码为root/root@openlab。

4、强壮密码设置,将主机2的登录密码设置复杂,执行"sudo passwd"命令,重设用户root的密码为"root@openlab123"。返回主机1,启动hydrg-gtk工具,再次破解,可看出,由于字典的限制因素,此次破解失败。暴力破解需要强大的字典库作为支撑。

(二)破解FTP密码

1、登录主机2,执行命令"sudo passwd"命令回复root之前的密码。

2、同SSH配置原理,执行"sudo vi/etc/ftpuser"命令,修改配置文件ftpusers,将文件中的root注释掉,并保存。让ftp允许root登陆,即让root账户从禁止登录的用户列表中排除。并执行命令"sudo service vsftpd restart",重启vsftp服务,生效以上配置。

3、同SSH破解原理,启动hydra-gtk工具,设置Target、Password、Tuning、Start选项卡下的相关信息,此处选择的协议是FTP协议。设置完成后,进行第一次破解,可看出,正常破解。同理,再次提高密码的健壮性,进行第二次破解,可看出,破解失败。


五、实验现象、结果记录及整理:

1、对SSH、FTP进行破解时,在字典弱,密码弱的情况下,可轻松破解;在字典弱,密码强的情况下,破解失败。可得出,若要破解强密码,就要有强字典。

2、在使用hydra-gtk工具时,可看出,此工具用户体验好、方便快捷、功能强大,可则需使用。

3、在配置相关协议文件时,一个文件包含了很多的信息,应读懂相关参数的作用,根据所需进行相应配置,以免配置错误,影响结果。


六、分析讨论与思考题解答:

1、sshd_config中有哪些常用的指令?

1)AcceptEnv,指定客户端发送的哪些环境变量将会被传递到会话环境中。

2)AddressFamily,指定 sshd(8) 应当使用哪种地址族。

3)AllowGroups,这个指令后面跟着一串用空格分隔的组名列表(其中可以使用"*"和"?"通配符)。默认允许所有组登录。

4)AllowTcpForwarding,是否允许TCP转发,默认值为"yes"。

5)AllowUsers,这个指令后面跟着一串用空格分隔的用户名列表(其中可以使用"*"和"?"通配符)。默认允许所有用户登录。

2、ftpusers文件的作用是什么?

ftpusers不受任何配制项的影响,它总是有效,即一个黑名单,该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。

3、还有哪些攻击可破解密码?

击键记录、屏幕记录、网络钓鱼、Sniffer(嗅探器)、Password Reminder、远程控制、分析推理、密码心理学等

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1303308.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【小白专用】MySQL查询数据库所有表名及表结构其注释

一、先了解下INFORMATION_SCHEMA 1、在MySQL中,把INFORMATION_SCHEMA看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权 限等。在INF…

YOLOv8改进 | 2023主干篇 | EfficientViT替换Backbone(高效的视觉变换网络)

一、本文介绍 本文给大家带来的改进机制是EfficientViT(高效的视觉变换网络),EfficientViT的核心是一种轻量级的多尺度线性注意力模块,能够在只使用硬件高效操作的情况下实现全局感受野和多尺度学习。本文带来是2023年的最新版本…

无线且列窄图片如何转excel?

写此文原因:图片要转excel,这放以前,是不能实现的功能,但随着人工智能的蓬勃发展,人们已克服了这一难题,但是,我们知道,要将图片识别成excel,识别程序首先要先识别图片中…

Django讲课笔记02:Django环境搭建

文章目录 一、学习目标二、相关概念(一)Python(二)Django 三、环境搭建(一)安装Python1. 从官方网站下载最新版本的Python2. 运行安装程序并按照安装向导进行操作3. 勾选添加到路径复选框4. 完成安装过程5.…

分布式之raft一致性算法

1.CAP定理 在一个分布式系统中,CAP三者不可兼得,最多只有两者可以满足,正所谓鱼和熊掌不可兼得 一致性 Consistency:所有的节点在同一时间的数据一致可用性 Availability:服务在正常响应时间内可用分区容错性 Partit…

〖大前端 - 基础入门三大核心之JS篇(51)〗- 面向对象之认识上下文与上下文规则

说明:该文属于 大前端全栈架构白宝书专栏,目前阶段免费,如需要项目实战或者是体系化资源,文末名片加V!作者:哈哥撩编程,十余年工作经验, 从事过全栈研发、产品经理等工作,目前在公司…

UnoCSS 原子化开发初体验

UnoCSS 是一个即时的原子化 CSS 引擎,旨在灵活和可扩展。核心是不拘一格的,所有的 CSS 工具类都是通过预设提供的。再也不用为了取一个 classname 类名而烦恼了。 一、UnoCSS 特点 完全可定制:无核心工具,所有功能都通过预设提供…

DevEco Studio IDE 创建项目时候配置环境

DevEco Studio IDE 创建项目时候配置环境 一、安装环境 操作系统: Windows 10 专业版 IDE:DevEco Studio 3.1 SDK:HarmonyOS 3.1 二、在配置向导的时候意外关闭配置界面该如何二次配置IDE环境。 打开IDE的界面是这样的。 点击Create Project进行环境配置。 点击OK后出现如…

(企业 / 公司项目) 企业项目如何使用jwt?

按照企业的项目然后写的小demo, 自己搞一个登录接口然后调用jwtUtil工具类 后端实现 创建一个通用模块common来实现jwt生成token 登录注册的基本实现逻辑思路 面试| ProcessOn免费在线作图,在线流程图,在线思维导图 注释挺详细的jwtUtil工具类, 封装的…

基于OpenCV+CNN+IOT+微信小程序智能果实采摘指导系统——深度学习算法应用(含python、JS工程源码)+数据集+模型(五)

目录 前言总体设计系统整体结构图系统流程图 运行环境Python环境TensorFlow 环境Jupyter Notebook环境Pycharm 环境微信开发者工具OneNET云平台 模块实现1. 数据预处理2. 创建模型并编译3. 模型训练及保存4. 上传结果5. 小程序开发1)查询图片2)查询识别结…

文献速递:多模态影像组学文献分享多模态放射组学预测直肠癌患者放疗引发的早期直肠炎和膀胱炎:一项机器学习研究

文献速递:多模态影像组学文献分享:多模态放射组学预测直肠癌患者放疗引发的早期直肠炎和膀胱炎:一项机器学习研究 01 文献速递介绍 Rectal cancer is the second most prevalent form of cancer in the large intestine, and its primary treatment …

Android---Kotlin 学习002

声明变量 在 Kotlin 中定义一个变量,通过关键字 var 开始。然后是变量名,在“:”后紧跟变量类型。 示例1:声明一个 int 类型的变量 var num:Int 1 示例2:声明一个 String 类型的变量 var str:String "Hello world&quo…

C# OpenCvSharp DNN 部署FastestDet

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN 部署FastestDet 效果 模型信息 Inputs ------------------------- name:input.1 tensor:Float[1, 3, 512, 512] --------------------------------------------------------------- Outpu…

QT----第二天QMainWindow,各种控件

目录 第二天1 QMainWindow1.1 菜单栏1.2工具栏1.3 状态栏1.4 铆接(浮动窗口)和中心部件(只能由一个)2 资源文件添加 3、对话框Qdialog3.2 模态和非模态对话框3.2 消息对话框3.3 其他对话框 4 登陆界面5 按钮组控件5.1QToolButton5…

机器学习中的 Transformation Pipelines(Machine Learning 研习之十)

Transformation Pipelines 有许多数据转换步骤需要以正确的顺序执行。幸运的是,Scikit-Learn提供了Pipeline类来帮助处理这样的转换序列。下面是一个用于数值属性的小管道,它首先对输入特性进行归并,然后对输入特性进行缩放: from sklearn.…

Nginx访问FTP服务器文件的时效性/安全校验

背景 FTP文件服务器在我们日常开发中经常使用,在项目中我们经常把FTP文件下载到内存中,然后转为base64给前端进行展示。如果excel中也需要导出图片,数据量大的情况下会直接返回一个后端的开放接口地址,然后在项目中对接口的参数进…

微信小程序 ios 手机底部安全区适配

在开发微信小程序中,遇到 IOS 全面屏手机,底部小黑条会遮挡页面按钮或内容,因此需要做适配处理。 解决方案 通过 wx.getSystemInfo() 获取手机系统信息,需要拿到:screenHeight(屏幕高度)&#…

持续集成交付CICD:GitLabCI上传Nexus制品

目录 一、实验 1.GitLabCI上传Nexus制品 2.优化GitLabCI(引用系统变量) 3.添加if条件判断项目类型 4.优化GitLabCI(模板类) 二、问题 1.GitLabCI获取jar文件失败 2. GitLabCI获取流水线项目命名空间失败 3.GItLab Packag…

学习pytorch19 pytorch使用GPU训练2

pytorch使用GPU训练2 第二种使用gpu方式核心代码代码 macbook pro m1/m2 用mps , 是苹果arm芯片的gpu 第二种使用gpu方式核心代码 # 设置设备 device torch.device(cpu) # 使用cpu device torch.device(cuda) # 单台gpu device torch.device(cuda:0) # 使…

基于大语言模型的复杂任务认知推理算法CogTree

近日,阿里云人工智能平台PAI与华东师范大学张伟教授团队合作在自然语言处理顶级会议EMNLP2023上发表了基于认知理论所衍生的CogTree认知树生成式语言模型。通过两个系统:直觉系统和反思系统来模仿人类产生认知的过程。直觉系统负责产生原始问题的多个分解…