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

一、实验目的要求:

二、实验设备与环境:

三、实验原理:

四、实验步骤:​

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

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


一、实验目的要求:

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.mzph.cn/news/214544.shtml

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

相关文章

Jmeter 请求签名api接口-BeanShell

Jmeter 请求签名api接口-BeanShell 项目签名说明编译扩展jar包jmeter 使用 BeanShell 调用jar包中的签名方法 项目签名说明 有签名算法的api接口本地不好测试,使用BeanShell 扩展jar 包对参数进行签名,接口签名算法使用 sha512Hex 算法。签名的说明如下…

Mybatis是如何进行分页的?

程序员的公众号:源1024,获取更多资料,无加密无套路! 最近整理了一份大厂面试资料《史上最全大厂面试题》,Springboot、微服务、算法、数据结构、Zookeeper、Mybatis、Dubbo、linux、Kafka、Elasticsearch、数据库等等 …

Django系列之Celery异步框架+RabbitMQ使用

在Django项目中,如何集成使用Celery框架来完成一些异步任务以及定时任务呢? 1. 安装 pip install celery # celery框架 pip install django-celery-beat # celery定时任务使用 pip install django-celery-results # celery存储结果使用2. Django集成…

gin投票系统3

对应视频v1版本 1.优化登陆接口 将同步改为异步 原login前端代码&#xff1a; <!doctype html> <html lang"en"> <head><meta charset"utf-8"><title>香香编程-投票项目</title> </head> <body> <m…

开关量防抖滤波器(梯形图和SCL源代码)

模拟量防抖超限报警功能块请查看下面文章链接: https://rxxw-control.blog.csdn.net/article/details/133969425https://rxxw-control.blog.csdn.net/article/details/133969425 1、开关量防抖滤波器 2、防抖滤波 3、梯形图代码

2.Feign使用、上下文隔离及源码阅读

目录 概述使用配置pom.xmlfeign 接口编写controller 测试降级处理pom.xmlapplication.yml代码 Feign如何初始化及调用源码阅读初始化调用 feign的上下文隔离机制源码 结束 概述 阅读此文&#xff0c;可以知晓 feign 使用、上下文隔离及源码阅读。源码涉及两方面&#xff1a;fe…

课后作业7.3.1:构造一个自己的小操作系统

构造一个自己的 mini 操作系统 任务描述 请实现如下功能&#xff1a; 1.写一个命令解释器程序 mysh.c &#xff0c;其功能是接收用户输入的命令并给出反馈。要求该程序既支持内部命令 cd、sync、exit &#xff1b;也支持外部命令&#xff0c;即可以接收 cat、ls 等命令&#x…

数据结构与算法-Rust 版读书笔记-2线性数据结构-双端队列

数据结构与算法-Rust 版读书笔记-2线性数据结构-双端队列 1、双端队列 deque又称为双端队列&#xff0c;双端队列是与队列类似的项的有序集合。deque有两个端部&#xff1a;首端和尾端。deque不同于队列的地方就在于项的添加和删除是不受限制的&#xff0c;既可以从首尾两端添…

vue3封装接口

在src下面创建一个文件夹任意名称 我拿这个名字举例子了apiService 相当于创建一个新的文件 // 封装接口 // apiService.js import axios from axios;// 接口前缀 const API_BASE_URL 前缀;接口后缀export const registerUser async (fileData) > {try {const response …

透析跳跃游戏

关卡名 理解与贪心有关的高频问题 我会了✔️ 内容 1.理解跳跃游戏问题如何判断是否能到达终点 ✔️ 2.如果能到终点&#xff0c;如何确定最少跳跃次数 ✔️ 1. 跳跃游戏 leetCode 55 给定一个非负整数数组&#xff0c;你最初位于数组的第一个位置。数组中的每个元素代表…

微信商家收款码扣多少手续费

很多人想申请低手续费率的收款码不知从何下手&#xff0c;在参考了大量博客教学之后&#xff0c;终于搞懂了详细流程以及注意事项。在此记录一下。我申请的是一个只需要0.2%费率的微信收款码&#xff0c;申请时间是2022年2月12日。申请之前只需要准备营业执照和法人身份z&#…

验证二叉搜索树[中等]

优质博文&#xff1a;IT-BLOG-CN 一、题目 给你一个二叉树的根节点root&#xff0c;判断其是否是一个有效的二叉搜索树。有效 二叉搜索树定义如下&#xff1a; 【1】节点的左子树只包含 小于 当前节点的数。 【2】节点的右子树只包含 大于 当前节点的数。 【3】所有左子树和右…

Leetcode 40 组合总和 II

题意理解&#xff1a; 每个数字在每个组合中只能使用 一次 数字可以重复——>难点&#xff08;如何去重&#xff09; 每个组合和target 求组合&#xff0c;对合限制&#xff0c;考虑回溯的方法。——将其抽象为树结构。 树的宽度——分支大小 树的深度——最…

Spring IoC和DI

目录 一. Spring是什么 IoC DI 二. IoC&DI的使用 IoC 1.Controller&#xff08;控制器存储&#xff09; 2.Service&#xff08;服务存储&#xff09; 3.Repository&#xff08;仓库存储&#xff09; 4.Componemt&#xff08;组件存储&#xff09; 5.Configuratio…

解决Could not establish connection to : XHR failed

解决Could not establish connection to : XHR failed 问题描述 用vscode用远程连接服务器时总报上面的错误&#xff0c;用xshell和Xftp和vscode终端都可以连上&#xff0c;但是用vscode的ssh连接缺总报错&#xff0c;导致无法连接服务器进行代码调试 一、原因 原因可能是在…

Go json 差异比较 json-diff(RFC6902)

Go json 差异比较 json-diff(RFC 6902) 毕业设计中过程中为了比较矢量图的差异而依据 RFC 6902 编写的一个包&#xff0c;现已开源&#xff1a; Json-diff 使用 go get -u github.com/520MianXiangDuiXiang520/json-diff序列化与反序列化 与官方 json 包的序列化和反序列化不…

AcWing 95. 费解的开关(递推)

题目链接 活动 - AcWing 本活动组织刷《算法竞赛进阶指南》&#xff0c;系统学习各种编程算法。主要面向有一定编程基础的同学。https://www.acwing.com/problem/content/97/ 题解 只要第一行开关的状态确定&#xff0c;则所有开关的状态都可以被推出来。第一行开关总共有种操…

jemeter,同一线程组内,调用cookie实现接口关联

取cookie方式参考上一篇&#xff1a;jemeter&#xff0c;取“临时重定向的登录接口”响应头中的cookie-CSDN博客 元件结构 登录后要执行的接口为“api/get_event_list/”&#xff0c;在该HTTP请求下创建HTTP信息头管理器&#xff0c;配置如下&#xff1a; 执行测试后&#xff0…

【ensp实践】eNSP实战篇(4)用eNSP实验来认识什么是OSPF及OSPF配置?

OSPF目录 写在前面涉及知识一、什么是OSPF&#xff1f;二、OSPF特性&#xff08;优缺点&#xff09;2.1 OSPF优点2.2 OSPF缺点 三、OSPF实验3.1 打开ensp&#xff0c;添加设备3.2 建立连线3.3 配置及ospf命令【核心】3.3.1 配置PC机3.3.2 设置命令 3.4 验证效果3.4.1、验证OSPF…

使用JLink仿真器实现调试打印的N种方法

方法一&#xff1a;使用MCU的串口 这是最古老也是最简单的方法。 电脑上面插一个USB转TTL&#xff0c;然后与MCU的UART_RX/UART_TX/GND连接起来。PC端再打开一个串口调试助手。两边的波特率一致&#xff0c;就可以收到MCU发过来的打印信息了。 方法二&#xff1a;使用JLink仿…