Sources: {{ net.sources | join(', ') }}
{% endif %} {% if net.dns %}| Request | Type | Answers |
|---|---|---|
| {{ q.request }} | {{ q.type }} | {{ q.answers | map(attribute='data') | join(', ') }} |
| Method | Host | Port | URI |
|---|---|---|---|
| {{ r.method }} | {{ r.host }} | {{ r.port }} | {{ r.uri }} |
| Domain | IP |
|---|---|
| {{ d.domain }} | {{ d.ip }} |
| IP |
|---|
| {{ h.ip }} |
| Source | Destination | Port |
|---|---|---|
| {{ f.src }}{% if f.sport %}:{{ f.sport }}{% endif %} | {{ f.dst }} | {{ f.dport }} |
Decryption unavailable: {{ dec.error }}
{% else %}{{ dec.counts.https_ex }} decrypted, {{ dec.counts.http_ex }} cleartext, {{ dec.counts.smtp_ex }} smtp stream(s) reassembled from {{ dec.secrets }} TLS secret(s). {% if not (dec.counts.https_ex or dec.counts.http_ex or dec.counts.smtp_ex) %} No streams could be reassembled - the capture may lack TLS secrets or be truncated to a fixed frame size. {% endif %}
{% endif %} {% endif %} {# Request/response below are headers only; bodies are stored on disk by sha256. #} {% set http_streams = (net.http_ex or []) + (net.https_ex or []) %} {% if http_streams %}{{ s.src }}:{{ s.sport }} → {{ s.dst }}:{{ s.dport }}
{% if s.request %}{{ s.request | replace('\x00', '') | truncate(8000, True, '\n... [truncated, full body on disk] ...', 0) }}
{% endif %}
{% if s.req %}
request body: {{ s.req.sha256 }} ({{ s.req.size }} bytes){% if s.req.path %} - {{ s.req.path }}{% endif %}
{% endif %} {% if s.response %}{{ s.response | replace('\x00', '') | truncate(8000, True, '\n... [truncated, full body on disk] ...', 0) }}
{% endif %}
{% if s.resp %}
response body: {{ s.resp.sha256 }} ({{ s.resp.size }} bytes){% if s.resp.path %} - {{ s.resp.path }}{% endif %}
{% if s.resp.preview %}{{ s.resp.preview | join('\n') }}
{% endif %}
{% endif %}
{{ s.src }}:{{ s.sport }} → {{ s.dst }}:{{ s.dport }}
{% if r.mail_body %}{{ r.mail_body | string | replace('\x00', '') | truncate(8000, True, '\n... [truncated] ...', 0) }}
{% endif %}