Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
citrix-netscaler-triage — Citrix NetScaler 장치용 포렌식 트라이지 툴킷으로, 웹셸, 타임스탬프 변조, 의심스러운 바이너리를 탐지하는 Dissect 기반 IOC 스캐너와 CVE 취약점을 식별하는 원격 버전 스캐너를 갖추고 있습니다. | Kitploit
도구/GitHubGitHub/fox-it/citrix-netscaler-triage
Indicator of Compromise (IOC) ManagementVulnerability ScannersWeb SecurityNetwork SecurityDigital ForensicsIncident Response
GitHubfox-it/citrix-netscaler-triage

citrix-netscaler-triage

Citrix NetScaler 장치용 포렌식 트라이지 툴킷으로, 웹셸, 타임스탬프 변조, 의심스러운 바이너리를 탐지하는 Dissect 기반 IOC 스캐너와 CVE 취약점을 식별하는 원격 버전 스캐너를 갖추고 있습니다.

저장소 보기
7418129개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

Citrix NetScaler 트라이지(Triage)

이 저장소에는 Citrix NetScaler 장치용 트라이지 스크립트가 포함되어 있습니다:

  • iocitrix.py -- Citrix NetScaler 이미지/대상을 트라이지하기 위한 Dissect 스크립트.
  • scan-citrix-netscaler-version.py -- HTTP(s)를 통해 NetScaler 장치의 버전을 스캔하고 핑거프린팅합니다.

scan-citrix-netscaler-version.py

이 스크립트를 사용하여 HTTP(s)를 통해 Citrix NetScaler 장치의 버전을 스캔하고 확인할 수 있습니다. 또한 버전을 기반으로 NetScaler가 특정 CVE에 취약한지 여부도 판별합니다.

scan-citrix-netscaler-version.py 설치하기

pip를 사용하는 경우 다음 단계를 따르세요:

  1. git clone https://github.com/fox-it/citrix-netscaler-triage.git
  2. cd citrix-netscaler-triage
  3. pip install httpx
  4. python3 scan-citrix-netscaler-version.py --help

uv를 사용하는 경우, 다음 명령으로 스크립트를 직접 실행할 수 있습니다:

  1. uv run https://raw.githubusercontent.com/fox-it/citrix-netscaler-triage/refs/heads/main/scan-citrix-netscaler-version.py

사용 예시:

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py 192.168.1.10 192.168.1.12
192.168.1.10 (*.local.domain) is running Citrix NetScaler version 13.1-51.15 (VULNERABLE)
192.168.1.12 (*.local.domain) is running Citrix NetScaler version 12.1-55.330 (NOT VULNERABLE)

또는 JSON 형식으로 결과를 얻을 수 있습니다:

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py https://192.168.1.11 --json | jq
root@kitploit:~
{
  "scanned_at": "2025-09-03T23:11:36.864228+00:00",
  "target": "https://192.168.1.11",
  "tls_names": "my-first-netscaler.local",
  "rdx_en_stamp": 1702886392,
  "rdx_en_dt": "2023-12-18T07:59:52+00:00",
  "version": "12.1-55.302",
  "error": null,
  "vulnerable": {
    "CVE-2025-5349": true,
    "CVE-2025-5777": true,
    "CVE-2025-6543": false,
    "CVE-2025-7775": true,
    "CVE-2025-7776": true,
    "CVE-2025-8424": true
  },
  "is_vulnerable": true
}

--cve 플래그를 사용하여 취약성 상태 확인을 특정 CVE로 제한할 수도 있습니다:

root@kitploit:~
$ python3 scan-citrix-netscaler-version.py https://192.168.1.11 --cve CVE-2025-6543 --json | jq
root@kitploit:~
{
  "scanned_at": "2025-09-03T23:16:36.573016+00:00",
  "target": "https://192.168.1.11",
  "tls_names": "my-first-netscaler.local",
  "rdx_en_stamp": 1702886392,
  "rdx_en_dt": "2023-12-18T07:59:52+00:00",
  "version": "12.1-55.302",
  "error": null,
  "vulnerable": {
    "CVE-2025-6543": false
  },
  "is_vulnerable": false
}

CSV 형식으로 결과를 얻으려면 --csv 플래그를 사용하세요. 더 많은 옵션은 --help를 참조하십시오.

iocitrix.py

iocitrix.py를 사용하여 NetScaler Dissect 대상에서 알려진 침해 지표(IOC)를 확인할 수 있습니다. 다음 항목을 확인합니다:

  • 웹쉘에 사용되는 알려진 문자열
  • 타임스탬프가 조작된 파일(Timestomped files)
  • 의심스러운 크론잡
  • 알 수 없는 SUID 바이너리

이 스크립트는 Citrix NetScaler 장치 자체가 아닌 포렌식 디스크 이미지에서 실행하도록 설계되었습니다. Citrix NetScaler의 포렌식 디스크 이미지를 만드는 방법은 Citrix NetScaler 디스크 이미지 생성 섹션을 참조하십시오.

최신 버전의 Dissect가 설치되어 있는지 확인하세요. Citrix NetScaler 지원은 다음 PR에서 추가되었습니다: https://github.com/fox-it/dissect.target/pull/357

면책 조항: 이 도구는 정확성을 위해 노력하지만, 오탐(false positive) 또는 미탐(false negative)이 발생할 수 있습니다. 사용자는 결과를 교차 검증하고 이 도구의 출력을 기반으로 결정을 내리기 전에 자신의 판단을 사용하는 것이 좋습니다.

iocitrix.py 설치하기

다음 단계를 따르세요:

  1. git clone https://github.com/fox-it/citrix-netscaler-triage.git
  2. cd citrix-netscaler-triage
  3. pip install -r requirements.txt
  4. pip install --upgrade --pre dissect.volume dissect.target

4단계에서 다음 오류가 출력되지만 무시해도 됩니다:

root@kitploit:~
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.

그런 다음 iocitrix.py <TARGETS>를 실행하여 하나 이상의 포렌식 이미지에 대해 IOC 검사를 시작할 수 있습니다. 이 스크립트는 dissect가 Target으로 읽을 수 있는 모든 입력(예: .VMDK 또는 원시 디스크 이미지)을 허용합니다. 몇 가지 예시는 아래에 제공됩니다.

root@kitploit:~
python3 iocitrix.py image.vmx
python3 iocitrix.py image.vmdk

RAM 디스크의 포렌식 이미지도 생성한 경우, 다음과 같이 iocitrix.py를 사용하여 휘발성 데이터를 트라이지에 포함할 수 있습니다:

root@kitploit:~
python3 iocitrix.py md0.img+image.vmx
python3 iocitrix.py md0.img+image.vmdk
python3 iocitrix.py md0.img+da0.img

+(더하기) 기호는 두 디스크 이미지를 단일 Dissect Target으로 로드합니다.

Citrix NetScaler 디스크 이미지 생성

Citrix NetScaler는 오프라인 포렌식 분석을 위해 이미징할 수 있는 두 개의 중요한 블록 장치를 노출합니다. 이러한 블록 장치 파일은 다음 경로에서 찾을 수 있습니다:

  • /dev/md0: 루트(/) 디렉터리를 보유하는 디스크. 이는 RAM 디스크입니다.
  • /dev/da0: /var 및 /flash 디렉터리를 보유하는 디스크. 이는 영구 디스크입니다.

Citrix NetScaler의 루트 디렉터리(/)는 RAM 디스크이므로 휘발성 디스크입니다. 이 디스크는 NetScaler가 전원이 켜져 실행 중일 때 /dev/md0에서 찾을 수 있으며, NetScaler가 전원이 꺼지면 사용할 수 없게 됩니다. /var 및 /flash 디렉터리는 /dev/da0 디스크에 두 개의 별도 파티션으로 존재하며 영구적입니다.

다음 명령을 로컬 Linux 머신에서 사용하여 SSH를 통해 NetScaler의 디스크를 생성할 수 있습니다:

/dev/da0 디스크의 디스크 이미지를 로컬 머신으로 생성

root@kitploit:~
local ~ $ ssh nsroot@<YOUR-NETSCALER-IP> shell dd if=/dev/da0 bs=10M | tail -c +7 | head -c -6 > da0.img

이 작업은 완료하는 데 시간이 걸릴 수 있습니다. dd 사용 시 진행 상황이 표시되지 않습니다. 프롬프트로 제어권을 되찾을 때까지 기다리는 것이 좋습니다. 이는 dd가 완료되었음을 나타냅니다.

또한 /dev/da0가 없는 경우 대부분 /dev/ada0일 가능성이 높습니다. mount 또는 gpart show 명령으로 확인할 수 있습니다.

/dev/md0 디스크의 디스크 이미지를 로컬 머신으로 생성

root@kitploit:~
local ~ $ ssh nsroot@<YOUR-NETSCALER-IP> shell dd if=/dev/md0 bs=10M | tail -c +7 | head -c -6 > md0.img

참고: /dev/md0와 /dev/da0 모두의 디스크 이미지를 생성하는 것이 권장됩니다. /dev/md0의 디스크 이미지 생성은 선택 사항입니다. 이 단계를 건너뛸 수 있지만, 이 경우 iocitrix.py가 특정 침해 지표를 놓칠 수 있습니다.

이미지에서 iocitrix.py 실행

로컬 머신에서 이전 명령을 실행한 후 da0.img 및 md0.img 파일이 생성됩니다. iocitrix에 이러한 파일을 지정하여 이미지 트라이지를 시작할 수 있습니다. 다음 명령을 사용하세요:

root@kitploit:~
local ~ $ python3 iocitrix.py md0.img+da0.img

출력 예시:

root@kitploit:~
(venv) user@dissect:/data/netscaler/image$ python3 iocitrix.py md0.img+da0.img
<Target md0.img+da0.img>

Disks
- <RawContainer size=555745286 vs=None>
- <RawContainer size=21474836486 vs=<DissectVolumeSystem serial=None>>

Volumes
- <Volume name=None size=555745286 fs=<FfsFilesystem>>
- <Volume name='part_00000000' size=1717567488 fs=<FfsFilesystem>>
- <Volume name='part_66600000' size=4401922048 fs=<FfsFilesystem>>
- <Volume name='part_16cc00000' size=2097152 fs=<FfsFilesystem>>
- <Volume name='part_16ce00000' size=15353200128 fs=<FfsFilesystem>>

Hostname      : None
Domain        : None
IPs           : 10.164.0.39, 10.164.0.10
OS family     : citrix-netscaler (CitrixBsdPlugin)
OS version    : NetScaler 13.1 build 30 (ns-13.1-30.52)
Architecture  : x86_64-citrix-netscaler
Language(s)   :
Timezone      : None
Install date  : 2023-08-08 13:59:38.228043+00:00
Last activity : 2023-08-11 08:51:13.979536+00:00


*** Checking for webshells ***

<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php'>
<ioc/hit type='php-file-contents' alert="Suspicious PHP code 'b'array_filter(''" confidence='high' path='/var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php'>
<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/vpn/config.php'>
<ioc/hit type='php-file-contents' alert="Suspicious PHP code 'b'array_filter(''" confidence='high' path='/var/vpn/config.php'>
<ioc/hit type='php-file-permission' alert='Suspicious php permission 0o644' confidence='high' path='/var/vpn/themes/config.php'>

*** Checking for timestomped files ***


*** Checking for suspicious cronjobs ***


*** Checking for SUID Binaries (this takes a while) ***

<ioc/hit type='binary/suid' alert='Binary with SUID bit set Observed' confidence='medium' path='/tmp/python/bash'>

********************************************************************************
***                                                                          ***
*** There were findings for Indicators of Compromise.                        ***
*** Please consider performing further forensic investigation of the system. ***
***                                                                          ***
********************************************************************************

Confidence    Type                 Alert                                       Artefact Location
------------  -------------------  ------------------------------------------  ---------------------------------------------------------------
high          php-file-permission  Suspicious php permission 0o644             /var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php
high          php-file-contents    Suspicious PHP code 'b'array_filter(''      /var/netscaler/logon/LogonPoint/uiareas/linux/adminupevents.php
high          php-file-permission  Suspicious php permission 0o644             /var/vpn/config.php
high          php-file-contents    Suspicious PHP code 'b'array_filter(''      /var/vpn/config.php
high          php-file-permission  Suspicious php permission 0o644             /var/vpn/themes/config.php
medium        binary/suid          Binary with SUID bit set Observed           /tmp/python/bash

All targets analyzed.
도구 다운로드