2018年十大远程利用(RCE)漏洞原创复现

时间:2019-09-11 06:15:01 来源:榆林汽车网 当前位置:扶苏云说三农 > 教程 > 手机阅读


圈子社区漏洞复现原创奖励计划优秀作品

漏洞复现由社区成员@无心、@silh0uette、@Si1ence、@blankmi、@neversec、@littleheary、@浪子莫回头

提供

所涉及课程和靶机已加入人人大佬实战靶场,欢迎来搞


因为本文过长,所以把全文做成了PDF,后台回复“漏洞”即可得下载链接。


1.CVE-2018-15473

漏洞介绍

该漏洞涉及到多个OpenSSH中的身份验证函数,通过向OpenSSH服务器发送一个错误格式的公钥认证请求,根据服务器的响应情况判断是否存在特定的用户名。

如果用户名存在,服务器会因为解析失败,不返回任何信息,直接中断通讯,反之,服务器会给客户端发送一个验证失败的消息。

漏洞影响

OpenSSH 7.7及其以前版本

漏洞复现

环境搭建

虚拟机使用Nat方式进行通信

漏洞主机Ubuntu 18.04Service: OpenSSH 7.6p1 IP: 192.168.153.130User: root breezy

自动安装

Ubuntu中默认自带有OpenSSH-client,可以通过ssh user@host进行远程连接,而如果提供远程连接,则需要安装并开启OpenSSH-Server服务。

查看是否安装OpenSSH-Server

在回显的内容中如果没有sshd则表明没有安装一般情况下可以通过sudo apt-get install openssh-server=version进行安装

查看版本号sudo apt-cache madison openssh-server sudo apt-cache policy open-ssh-server

安装后重启服务即可/etc/init.d/ssh restart

具体的还需要看更新源的内容,有符合的版本则可以直接安装,但是因为漏洞已经被爆出来很长时间了,很多更新源为了避免漏洞造成的危害,一般都换成了官方最新发布的版本,直接安装的版本无法复现漏洞,这时就要手动安装受影响版本。

手动安装

wget http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/openssh-7.6p1.tar.gztar -zxvf openssh-7.6p1.tar.gzcd openssh-7.6p1./configure --prefix=/usr --sysconfdir=/etc/ssh --with-zlib --with-md5-passwordsmakesudo make install/etc/init.d/ssh restart

注意

configure的过程中可能会出现如下错误

checking OpenSSL library version... configure: error: OpenSSL >= 1.1.0 is not yet supported (have "1010007f (OpenSSL 1.1.0g 2 Nov 2017)")这是由于openssl版本太高造成可以尝试卸载掉原来的旧版本并安装低版本

sudo apt-get remove opensslwget https://www.openssl.org/source/openssl-1.0.2p.tar.gztar zxf openssl-1.0.2p.tar.gzcd openssl-1.0.2p/./configmake && sudo make install

重新进行configure的时候,如果仍然出现同样错误

sudo apt-get remove libssl-dev --purge

攻击机Kali LinuxPython paramiko(2.40) IP: 192.168.153.132

Kali已经自带了2.4.0版本的paramiko库,执行exp的时候刚好不会报错如果是高版本,可能会提示

php TypeError: 'property' object has no attribute '__getitem__'解决方法是

php pip install paramiko==2.0.8或者将_handler_table改为_client_handler_tableEXP:https://github.com/Rhynorater/CVE-2018-15473-Exploit

默认漏洞主机的OpenSSH-server服务已开启

git clone https://github.com/Rhynorater/CVE-2018-15473-Exploitpip install -r requirements.txtpython3 sshUsernameEnumExploit.py --port xx(默认为22) --userList xxx.txt ip

将存在和不存在的用户名写入到user.txt中,通过exp进行测试后能够看到,识别出了漏洞主机的用户调试模式运行OpenSSH-Server

service ssh stop  关闭ssh服务器 否则会由于端口已使用而冲突sudo /usr/sbin/sshd -dd 如果出现Missing Privileges Sepration directory: /run/sshd则需要 创建这个文件夹sudo mkdir /run/sshd 

此时在攻击机执行脚本查看请求情况

由于github的脚本会报错,我们在这里使用Openwall的脚本:https://bugfuzz.com/stuff/ssh-check-username.py

能够看到提示了不合法的用户名

当测试合法用户的时候,会弹出imcomplete message错误提示

2.CVE-2018-10933

漏洞介绍

libssh 0.6 及以上的版本,在服务端的代码实现中存在身份认证绕过漏洞。在向服务端认证的流程中,攻击者通过将 SSH2_MSG_USERAUTH_REQUEST 消息替换为 SSH2_MSG_USERAUTH_SUCCESS,即可在无需任何有效凭证的情况下认证成功,从而进行一些恶意操作。

漏洞影响

libssh 0.8.x – 0.8.3

libssh 0.7.x – 0.7.5

libssh 0.6.x

漏洞复现

环境搭建

1、安装依赖包

apt-get updateapt-get install makeapt-get install gcc g++apt-get install zlib1g zlib1g-devapt-get install openssl libssl-dev

上一篇【地牢猎手5】:动作流畅打击感强的ARPG手游,刷怪刷装备!

下一篇东北朋克RPG?《冰汽时代》官方将开发同世界观新作

相关文章:

教程本月排行

教程精选