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

一、实验目的要求:

二、实验设备与环境:

三、实验原理:

四、实验步骤:​

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

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


 网络安全-SSH密码攻击实验效果截图:

https://download.csdn.net/download/qq_42603841/88619926?spm=1001.2014.3001.5503icon-default.png?t=N7T8https://download.csdn.net/download/qq_42603841/88619926?spm=1001.2014.3001.5503


一、实验目的要求:

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、远程控制、分析推理、密码心理学等

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设计模式(3)--对象结构(3)--组合

1. 意图 将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2. 三种角色 抽象组件(Component)、组合式节点(Composite)、叶节点(Leaf) 3. 优点 3.1 定义了包含基本对象和组合对象的类层次结构。 客户代码中&…

openwrt中taiscale自动安装脚本详解

openwrt中taiscale自动安装脚本详解 一、代码仓库地址 https://github.com/adyanth/openwrt-tailscale-enabler 二、代码仓库中脚本文件详解 主要包含三个脚本分别是etc/init.d/tailscale、usr/bin/tailscale、usr/bin/tailscaled ,接下来逐个分析一下脚本中的具…

【Redis】AOF 基础

因为 Redis AOF 的实现有些绕, 就分成 2 篇进行分析, 本篇主要是介绍一下 AOF 的一些特性和依赖的其他函数的逻辑,为下一篇 (Redis AOF 源码) 源码分析做一些铺垫。 AOF 全称: Append Only File, 是 Redis 提供了一种数据保存模式, Redis 默认不开启。 AOF 采用日志的形式来记…

Go标准包之flag命令行参数解析

1.介绍 在 Go中,如果要接收命令行参数,需要使用 flag 包进行解析。不同的参数类型可以通过不同的方法接收。 2.参数接受 2.1 接受方式 使用flag接收参数,可以由以下三种方式接受: 方式一: flag.Type(name,defaultVal,desc)方…

Linux上使用HTTP协议进行数据获取的实战示例

嗨,Linux爱好者们,今天我们要一起探讨一下如何在Linux上进行HTTP协议的数据获取。这不是一项简单的任务,但放心,我会以最简单的语言,结合实例来给大家讲解。 首先,我们需要一个工具,那就是curl…

Python生成器(Generator)(继续更新...)

学习网页: Welcome to Python.orghttps://www.python.org/https://www.python.org/ Python生成器 生成器(Generator)是 Python 的一种特殊类型的迭代器。生成器允许你创建自己的数据流,每次从数据流中获取一个元素,…

医保电子凭证在项目中的集成应用

随着医保电子凭证使用普及,医疗行业的各个场景都要求支持医保码一码通办,在此分享一下,在C#和js中集成医保电子凭证的demo 供有需要的小伙伴参考。 一、项目效果图 在c#中集成医保电子凭证效果 在js中集成医保电子凭证效果 二、主要代码 c#…

Linux_Docker图形化工具Portainer如何安装并结合内网穿透实现远程访问

文章目录 前言1. 部署Portainer2. 本地访问Portainer3. Linux 安装cpolar4. 配置Portainer 公网访问地址5. 公网远程访问Portainer6. 固定Portainer公网地址 前言 本文主要介绍如何本地安装Portainer并结合内网穿透工具实现任意浏览器远程访问管理界面。Portainer 是一个轻量级…

算法竞赛备赛进阶之树形DP训练

目录 1.树的最长路径 2.树的中心 3.数字转换 4.二叉苹果树 5.战略游戏 6.皇宫守卫 树形DP是一种动态规划方法,主要用于解决树形结构的问题。在树形DP中,通常会使用动态规划的思想来求解最优化问题。其核心在于通过不断地分解问题和优化子问题来解决…

【理论篇】SaTokenException: 非Web上下文无法获取Request问题解决 -理论篇

在我们使用sa-token安全框架的时候,有时候会提示:SaTokenException:非Web上下文无法获取Request 错误截图: 在官方网站中,查看常见问题排查: 错误追踪: 跟着源码可以看到如下代码: 从源码中&a…

01 整体代码运行流程

文章目录 01 整体代码运行流程1.1 运行官方 Demo1.2 变量命名规则1.3 多线程1.4 线程锁1.5 SLAM 主类 System 01 整体代码运行流程 1.1 运行官方 Demo 以 stereo_kitti 为例,执行 ./stereo_kitti path_to_vocabulary path_to_settings path_to_sequence./stereo_…

大创项目推荐 深度学习 python opencv 实现人脸年龄性别识别

文章目录 0 前言1 项目课题介绍2 关键技术2.1 卷积神经网络2.2 卷积层2.3 池化层2.4 激活函数:2.5 全连接层 3 使用tensorflow中keras模块实现卷积神经网络4 Keras介绍4.1 Keras深度学习模型4.2 Keras中重要的预定义对象4.3 Keras的网络层构造 5 数据集处理训练5.1 …

W25Q64(模拟SPI)读写数据的简单应用

文章目录 一、W25Q64是什么?二、使用步骤1.硬件1.引脚说明2.硬件连接3.设备ID4.内部框架5.指令集指令集1指令集2 2.软件1.W25Q64引脚定义代码如下(示例):2.W25Q64初始化代码如下(示例):3.W25Q64…

在排序数组中查找元素的第一个和最后一个位置(Java详解)

一、题目描述 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示…

Android开发——组合函数、注解与连接Android设备

1、JetPack Compose、组合函数与注解和文本修改 1、JetPack Compose:Jetpack Compose 是由 Google 推出的用于构建 Android 用户界面的现代化工具包。它是一个声明式的 UI 工具包,用于简化 Android 应用程序的用户界面设计和开发。Jetpack Compose 采用…

02.Git常用基本操作

一、基本配置 (1)打开Git Bash (2)配置姓名和邮箱 git config --global user.name "Your Name" git config --global user.email "Your email" 因为Git是分布式版本控制工具,所以每个用户都需要…

02-分组查询group by和having的使用

分组查询 MySQL中默认是对整张表的数据进行操作即整张表为一组, 如果想对每一组的数据进行操作,这个时候我们需要使用分组查询 分组函数的执行顺序: 先根据where条件筛选数据,然后对查询到的数据进行分组,最后也可以采用having关键字过滤取得正确的数据 group by子句 在一条…

【STM32】STM32学习笔记-EXTI外部中断(11)

00. 目录 文章目录 00. 目录01. 中断系统02. 中断执行流程03. STM32中断04. NVIC基本结构05. NVIC优先级分组06. EXTI简介07. EXTI基本结构08. AFIO复用IO口09. EXTI框图10. 计数器模块11. 旋转编码器简介12. 附录 01. 中断系统 中断:在主程序运行过程中&#xff0…

easy贪吃蛇

之前承诺给出一个贪吃蛇项目。 1.EasyX库认知 有关EasyX库的相关信息,您可以看一下官方的文档:EasyX官方文档。 这里我做几点总结: EasyX库就和名字一样,可以让用户调用一些简单的函数来绘制图像和几何图形利用EasyX库可以制作…

ES6 面试题 | 15.精选 ES6 面试题

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…