介绍:

OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机中,在复现过程中遇到了很多坑,这里我就把遇到坑和解决方法告诉大家!!!

漏洞环境:

靶机:Ubuntu(vulhub)

IP:192.168.0.103

攻击机:kali

IP:192.168.0.104

漏洞复现:

1.开启环境

#cd vulhub-master/openssh/CVE-2018-15473     //进入目录
#docker-compose build
#docker-compose up -d //开启环境

环境启动后,我们在kali执行ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null root@192.168.0.103 -p20022,输入密码vulhub,即可登录到容器中,这里我就不在演示了。

2.工具下载

使用 CVE-2018-15473-Exploit 工具进行用户名枚举。

其中在kali里面下载

#wget http://github.com/Rhynorater/CVE-2018-15473-Exploit/archive/refs/heads/master.zip      //使用wget下载
#unzip master.zip //解压

其中注意!在复制下载压缩包连接到kali下载时复制是https,可能会下载失败,这里解决方法是改成http,如果还是下载失败,建议本机下载复制到kali里。

 3.漏洞复现

首先进入解压好的文件夹里,通过运行pip install -r requirements.txt安装依赖。

可能会出现一下报错信息

WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv 

提示以“root”用户身份运行 pip 可能会导致权限损坏和冲突,因此我们需要创造一个虚拟的环境区执行它。

#python3 -m venv tutorial-env    //创建一个虚拟环境
#source tutorial-env/bin/activate //激活环境 #pip install -r requirements.txt //再次安装依赖

添加几个用户名到exampleInput.txt里

root
example
vulhub
nobody
rootInvalid
user
phithon
123
321

运行命令进行用户名枚举

#python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt 192.168.0.103

会发现有报错

Traceback (most recent call last):
  File "/root/桌面/CVE-2018-15473-Exploit-master/sshUsernameEnumExploit.py", line 33, in <module>
    old_parse_service_accept = paramiko.auth_handler.AuthHandler._handler_table[paramiko.common.MSG_SERVICE_ACCEPT]
                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'property' object is not subscriptable

这里要修改的有三处地方,都是在_handler_table换成_client_handler_table。

第一处在sshUsernameEnumExploit.py脚本的33行

第二处在124行

第三处在125行

在运行脚本

#python3 sshUsernameEnumExploit.py --port 20022 --userList exampleInput.txt 192.168.0.103

可以看到成功枚举出用户名

可见,rootexamplevulhubnobody是存在的用户,rootInvaliduserphithon、123、321是不存在的用户。

避坑版-OpenSSH 用户名枚举漏洞(CVE-2018-15473)的更多相关文章

  1. 漏洞分析:OpenSSH用户枚举漏洞(CVE-2018-15473)分析

    漏洞分析:OpenSSH用户枚举漏洞(CVE-2018-15473)分析 漏洞分析:OpenSSH用户枚举漏洞(CVE-2018-15473)分析 - FreeBuf互联网安全新媒体平台 https: ...

  2. 【推荐】CentOS修复OpenSSH用户枚举漏洞

    注:以下所有操作均在CentOS 6.8 x86_64位系统下完成. #漏洞说明# OpenSSH(OpenBSD Secure Shell)是OpenBSD计划组所维护的一套用于安全访问远程计算机的 ...

  3. Android工程导入Unity3D(避坑版)

    最近与各种牛逼的项目管理软件打交道,比如SourceTree,要看英文版的才看得懂,中文反而不会用!... 这篇博客适合没怎么接触过安卓的小伙伴们,网上也有很多相关的教程,但是大多都没有具体的操作或则 ...

  4. 漏洞复现-CVE-2018-15473-ssh用户枚举漏洞

          0x00 实验环境 攻击机:Win 10 0x01 影响版本 OpenSSH 7.7前存在一个用户名枚举漏洞,通过该漏洞,攻击者可以判断某个用户名是否存在于目标主机 0x02 漏洞复现 针 ...

  5. Openssh版本升级修复漏洞

    一.由于openssh版本过低当用扫描软件检测时会出现以下漏洞: 二.解决方案是升级高版本,下面是升级的步凑. 1.安装telnet工具,因为升级过程中怕失败或者重启ssh失败.我们直接yun安装即可 ...

  6. SSH用户枚举漏洞(CVE-2018-15473)原理学习

    一.漏洞简介 1.漏洞编号和类型 CVE-2018-15473 SSH 用户名(USERNAME)暴力枚举漏洞 2.漏洞影响范围 OpenSSH 7.7及其以前版本 3.漏洞利用方式 由于SSH本身的 ...

  7. electron 编译 sqlite3避坑指南---尾部链接有已经编译成功的sqlite3

    electron 编译 sqlite3避坑指南(尾部链接有已经编译成功的sqlite3) sqlite很好用,不需要安装,使用electron开发桌面程序,sqlite自然是存储数据的不二之选,奈何编 ...

  8. CEF避坑指南(一)——下载并编译第一个示例

    CEF即Chromium Embedded Framework,Chrome浏览器嵌入式框架.它提供了接口供程序员们把Chrome放到自己的程序中.许多大型公司,如网易.腾讯都开始使用CEF进行前端开 ...

  9. 15. Go 语言“避坑”与技巧

    Go 语言"避坑"与技巧 任何编程语言都不是完美的,Go 语言也是如此.Go 语言的某些特性在使用时如果不注意,也会造成一些错误,我们习惯上将这些造成错误的设计称为"坑& ...

  10. 聊聊Spring事务控制策略以及@Transactional失效问题避坑

    大家好,又见面了. 在大部分涉及到数据库操作的项目里面,事务控制.事务处理都是一个无法回避的问题.比如,需要对SQL执行过程进行事务的控制与处理的时候,其整体的处理流程会是如下的示意: 首先是要开启事 ...

随机推荐

  1. Masa Framework源码解读-02缓存模块(分布式缓存进阶之多级缓存)

    序言 ​ 今天这篇文章来看看Masa Framework的缓存设计,上一篇文章中说到的MasaFactory的应用也会在这章节出现.文章中如有错误之处还请指点,咱们话不多说,直入主题. Masa Fr ...

  2. Linux基础知识归纳

    1.Linux:Linux is not Unix.主要用于企业的服务器端.Windows不开源(系统价格大概2000左右,安装软件也特别贵,例如Offers就6000左右等).基于内核的操作系统(r ...

  3. MyBatis 分页(前后端插件)实现

    一.后端使用 PageHelper插件 [1]引入 PageHelper jar包(Maven项目) 1 <dependency> 2 <groupId>com.github. ...

  4. 器学习算法(六)基于天气数据集的XGBoost分类预测

    1.机器学习算法(六)基于天气数据集的XGBoost分类预测 1.1 XGBoost的介绍与应用 XGBoost是2016年由华盛顿大学陈天奇老师带领开发的一个可扩展机器学习系统.严格意义上讲XGBo ...

  5. ACM-刷题记录-14届NEFU校赛

    P2031凯撒密码 #include<bits/stdc++.h> using namespace std; int main(){ string s; int d; while(cin& ...

  6. 集合-TreeMap源码分析

    一.简介 TreeMap最早出现在JDK 1.2中,是 Java 集合框架中比较重要一个的实现.TreeMap 底层基于红黑树实现,可保证在log(n)时间复杂度内完成 containsKey.get ...

  7. 二进制安装k8s v1.25.4 IPv4/IPv6双栈

    二进制安装k8s v1.25.4 IPv4/IPv6双栈 https://github.com/cby-chen/Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes( ...

  8. kubernetes核心实战(九)

    14.Ingress 检查是否有安装 [root@k8s-master-node1 ~/yaml/test]# kubectl get pod,svc -n ingress-nginx NAME RE ...

  9. QT实现可拖动自定义控件

    使用QT实现自定义类卡牌控件Card,使其能在父类窗口上使用鼠标进行拖动. 控件类头文件card.h #ifndef CARD_H #define CARD_H #include <QWidge ...

  10. Go语言基础: JSON序列化

    JSON 是一种轻量级的数据交换格式.简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言. 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率. 首先得熟悉结构体: pack ...