i run

        spamassassin -V
                SpamAssassin version 4.0.2
                running on Perl version 5.42.2

it's invoked as a milter in my postfix setup.

a phish just snuck by ...
once submitted to Bayes and re-scanned, it *is* pushed over threshhold.

i'm looking at why it snuck by in the first place.
there _is_ a phishing URL, deeply embedded; my current setup fails to 
find/act-on it.

the message structure MIME tree has two parts, nothing suspicious on the 
surface:

  multipart/related
  |-- text/html
  |-- application/octet-stream   base64, filename=DHL_SHIPPING_LETTER.html

the phishing URL is not obviously in that MIME tree.
it's buried inside that octet-stream attachment -- 4 decode steps deep.
my SA missed it.

manually, i can grab it

        (1) base64-decode the attachment
                --> an HTML document
        (2) read its <embed src="data:...pdf;base64,...">
                --> data: URI
        (3) base64-decode that data: URI
                --> a PDF
        (4) read the PDF's /URI link annotation
                --> the phishing URL

i.e., the phising URL sits four layers down:
        MIME part --> base64 --> HTML --> data: URI --> base64 --> PDF --> /URI 
annotation.
SA sees only that first, single opaque attachment.
it never performs the four in-payload decodes.

how to config SA 4.0.x to find/exctract that "deep" URL?

iiuc, neither out-of-the-box ExtractText nor OLEVBMacro are sufficient?

is a custom, multi-step ExtractText extractor script needed? e.g., that:
        decodes the octet-stream HTML
        pulls the data:application/pdf;base64 blob
        base64-decodes it
        extracts the PDF /URI annotation
        emits the URLs as actionable plain text
?

or is there something that already exists?

is chained/recursive extraction configurable in ExtractText, or other?

even once you reach the PDF, running pdftotext via ExtractText doesn't appear 
to emit /URI link annotations.
it can't surface the URL.

i think pdftohtml/mutool could, but pdftohtml emits HTML, which ExtractText 
documents as unsupported output,

        @ 
https://spamassassin.apache.org/full/4.0.x/doc/Mail_SpamAssassin_Plugin_ExtractText.html
        
                "...
                External tool must output plain text, not HTML or other 
non-textual result.
                ..."

Reply via email to