Mail.app Automator / Sript-Aktion für verdächtige E-Mails


1

Ich bin satt mit den überraschend professionell aussehenden Betrügern, die in meinem Posteingang ankommen.

Ich wollte eine Automator-Aktion erstellen, die mir sagt, wer der tatsächliche Absender ist, indem er die IP-Adresse nachschlägt, von der er gekommen ist.

Wenn ich misstrauisch werde, würde ich normalerweise:

1-Vollständige Kopfzeile der E-Mail anzeigen (unter Verwendung aller Kopfzeilen)

2-Finden Sie die Ursprungs-IP-Adresse und suchen Sie sie mit Wer ist

3- Entscheiden Sie anhand des tatsächlichen IP-Standorts und des Eigentümers, was zu tun ist.

--Diese IP stammt aus Italien? Man kann also mit Sicherheit sagen, dass AMEX in Italien keinen Server verwendet, um mir eine solche E-Mail zu senden.

Ich kann etwas Hilfe verwenden, um die Schritte 1 und 2 (und 2.1) in der Mail zu automatisieren.

Hier sind die Beispiele; Die Email the scam email

Die Kopfzeile

the email header

Das Beispiel des Inhalts der HTML-Datei

html content

ich habe das gefunden Kann ich Mail.app Search Received: headers durchführen lassen? das ist auf dem Weg, aber es beantwortet die Frage nicht.

PS: Ich weiß, ich könnte es einfach löschen und weiterleben, aber: Ich würde es vermissen, unschuldigen Menschen zu helfen, sie darüber zu informieren, dass ihr Server gehackt wurde, und von Kriminellen benutzt zu werden, da ich es schon einige Male erfolgreich getan habe, um sie zu schließen. Es war einmal eine Wells Fago-Website auf einem Server eines Reiseveranstalters in Russland. Ein anderes Mal war es eine Visa-Website auf einem Restaurant-Server in Island. Und jetzt das hier.

UPDATE..UPDATE ... UPDATE ...

Ich fand das, was nahe kommt, was ich will, aber es müsste ein bisschen nachbearbeitet werden. Leider geht es weit über meine Skriptfähigkeiten hinaus, daher wird jede Hilfe geschätzt:

modified May 27, 2003 by M. Kluskens

? parse out all Received headers (important if mail passes through several trusted email servers)
? parse out the IP address from Eudora Internet mail Server headers (EIMS)
? added trusted IP address list
*)

on perform_mail_action(info)

(* Prompt levels: 0=no dialog boxes, 1=show dialog boxes when Spam is found, 2=show all dialog boxes, 3 =debug/verbose *)
set ShowPrompts to 0

-- list of trusted IP addresses not to look up
set TrustedIPlist to {"127.0.0.1", "203.97.196.98", "219.88.68.80"}

set BlackListsToCheck to {"bl.spamcop.net", "relays.osirusoft.com", "relays.ordb.org", "blackholes.wirehub.net", "list.dsbl.org", "dynablock.wirehub.net", "dialups.visi.com"}

(* Perform a nslookup against various RBL blacklists as DNS queries by executing the following: *)
(* nslookup IP4.IP3.IP2.IP1.[blacklist], a result of 127.0.0.2 is ususlly indicative of a positive match *)
(* Some Blacklists: bl.spamcop.net, relays.ordb.org, orbs.dorkslayers.com, dev.null.dk, relays.visi.com
relays.osirusoft.com (a.k.a. SPEWS uses 127.0.0.4 as a positive match) *)

tell application "Mail"
(* Process messages in the IN Box *)

set NewMail to |SelectedMessages| of info
repeat with CurrentMessage in NewMail
set RawSource to source of CurrentMessage
-- separate out different headers to check more than just the first [] pair
set HeaderName to "Start" as string
set ResolvedIP to "Cleared" as string
set loopCount to 1
-- checking complete when Subject, Date, From, or To header encountered
repeat until (HeaderName = "Subject:" or HeaderName = "Date:" or HeaderName = "From:" or HeaderName = "To:")
set Header to paragraph loopCount of RawSource
set Headerstart to the (offset of ":" in Header)
if (Headerstart > 0) then
set HeaderName to (characters 1 thru Headerstart of Header) as string
-- append the rest of the header text to the header (plus any uninteresting headers)
repeat
set Header2 to paragraph (loopCount + 1) of RawSource
set HeaderStart2 to the (offset of ":" in Header2)
if (HeaderStart2 ? 0) then
set HeaderName2 to (characters 1 thru HeaderStart2 of Header2) as string
if (HeaderName2 = "Received:" or HeaderName2 = "Subject:" or HeaderName2 = "Date:" or HeaderName2 = "From:" or HeaderName2 = "To:") then exit repeat
end if
set loopCount to loopCount + 1
set Header to (Header & Header2)
end repeat

if (HeaderName = "Received:") then
(* Locate the Originating IP Address in the raw E-Mail header *)
-- Sendmail and others
set start to the (offset of "[" in Header) + 1
set finish to the (offset of "]" in Header) - 1
-- Eudora Internet Mail Server
if (start = 1 or finish = -1) then
set start to the (offset of "(" in Header) + 1
set finish to the (offset of ")" in Header) - 1
end if

if (start < finish) then

set IPAddress to (characters start thru finish of Header) as string
if (ShowPrompts > 2) then
display dialog " Relay's IP " & IPAddress
end if

if (IPAddress is not in TrustedIPlist) then
(* Parse the IPAddress text into its IP1.IP2.IP3.IP4 fields, starting from the end IP4 to IP1 *)
copy text (((length of IPAddress) + 2) - ((offset of "." in (reverse of characters of IPAddress) as string))) thru (length of IPAddress) of IPAddress to IP4
copy text 1 thru ((length of IPAddress) - ((offset of "." in (reverse of characters of IPAddress) as string))) of IPAddress to IPAddress

copy text (((length of IPAddress) + 1) - ((offset of "." in (reverse of characters of IPAddress) as string))) thru (length of IPAddress) of IPAddress to IP3
copy text 1 thru ((length of IPAddress) - ((offset of "." in (reverse of characters of IPAddress) as string))) of IPAddress to IPAddress

copy text (((length of IPAddress) + 1) - ((offset of "." in (reverse of characters of IPAddress) as string))) thru (length of IPAddress) of IPAddress to IP2
copy text 1 thru ((length of IPAddress) - ((offset of "." in (reverse of characters of IPAddress) as string))) of IPAddress to IP1

repeat with BlackList in BlackListsToCheck
set LookUpResult to do shell script ("nslookup " & IP4 & IP3 & IP2 & "." & IP1 & "." & BlackList)

(* Parse the tail end of the last line looking for a match *)

set resultoffset to (((length of LookUpResult) + 1) - (offset of ":" in (((reverse of characters of LookUpResult)) as string)))
copy text (resultoffset + 3) thru (resultoffset + 10) of LookUpResult to ResolvedIP

if ResolvedIP = "127.0.0." then
set ResolvedIP to "SPAM!!!" as string
else
set ResolvedIP to "Cleared" as string
end if

if (ResolvedIP = "SPAM!!!") then exit repeat
end repeat
end if -- ( IPAddress is not is TrustedIPlist)
end if -- ( start < finish )
end if -- ( Headername = "Received:" )
end if -- ( Headerstart > 0 )
set loopCount to loopCount + 1
if (ResolvedIP = "SPAM!!!") then exit repeat
end repeat -- until

(* If it was listed in the RBL Move message to Junk folder and mark as Junk mail *)
if (ResolvedIP = "SPAM!!!") then
if (ShowPrompts > 0) then
display dialog "Found SPAM listed on " & BlackList & "
Move Message to Junk Mail" & "

From: " & (sender of CurrentMessage) & "

Subject: " & (subject of CurrentMessage)
end if

set is junk mail of CurrentMessage to true
-- change this line to match your junk/spam mailbox
set mailbox of CurrentMessage to mailbox "Junk"

else
if (ShowPrompts > 1) then
display dialog ResolvedIP & " Sender's IP " & IP1 & IP2 & IP3 & "." & IP4 & "

From: " & (sender of CurrentMessage) & "

Subject: " & (subject of CurrentMessage)
end if
end if

end repeat
end tell
end perform_mail_action
[/code]

Ich habe Ihre Frage abgelehnt, da Sie bereit sind, unschuldigen Menschen zu helfen. Und ich würde gerne selbst die Antwort wissen. - Header zeigt Hotmail.com & lt; - AMEX würde weder NOR verwenden, noch ein solches HTML-Formular verwenden :)
Rob

Der schwierige Teil bestand darin, den HTML-Anhang zu öffnen oder nicht, da er eine automatisierte Aktion enthalten könnte, die mir schaden könnte. Schließlich fand ich es heraus, den Quick Look zu verwenden, der die Datei auf meinem Computer nicht öffnet. Aber zu wissen, woher die IP stammt, reicht mir normalerweise aus.
Buscar웃

1
Öffnen Sie es mit NotePad ++ oder ähnlichem und es wird nicht ausgeführt.
Rob

Antworten:


1

Es scheint nicht so, als hätte Automator selbst genug Vokabular, um diese Aufgabe auszuführen.

Wenn Sie ein Upgrade auf Mavericks durchgeführt haben, können Sie ein Bibliothek, um reguläre Ausdrücke der ICU hinzuzufügen zu Ihrem Skript, aber awk, sed und Perl geben Ihnen viel Kraft, ohne sie zu analysieren.

Ich führe Applescript auf meinem System mit FastScripts oder Keyboard Maestro aus. Ein Automator-Dienst sollte jedoch ebenfalls funktionieren.

Beachten Sie, dass dieses Skript keine vollständige Antwort auf Ihr Problem ist, sondern die meisten Tools enthält, die Sie zur Lösung benötigen.

-ccs

try

    set lookUpAgent to "http://www.lookip.net/whois/"

    tell application "Mail"
        set selMsgList to selection
        if selMsgList ≠ {} then
            set selMsg to item 1 of selMsgList
            tell selMsg
                set headerText to all headers
            end tell
        else
            error "No messages were selected!"
        end if
    end tell

    # Parse the header-text to your heart's content.
    # A simple example:
    set parsedText to do shell script "egrep -i ^received: <<< " & quoted form of headerText

    # Let's say the IP address you parse out is:
    set ipAdrs to "17.172.224.47"

    set lookUpUrl to lookUpAgent & ipAdrs

    tell application "Safari"
        activate
        make new document with properties {URL:lookUpUrl}
    end tell

on error e number n
    set e to e & return & return & "Num: " & n
    tell me to set dDlg to display dialog e with title ¬
        "ERROR!" buttons {"Cancel", "Copy", "OK"} default button "OK"
    if button returned of dDlg = "Copy" then set the clipboard to e
end try
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.