Email Tracing Computer Forensics 252 Thomas Schwarz, S.J. 2006 Email Investigations: Overview Email has become a primary means of communication. Email can easily be forged. Email can be abused Spam Aid in committing a crime … Threatening email, … Email Investigations: Overview Email evidence: Is in the email itself Header Contents In logs: Left behind as the email travels from sender to recipient. Law enforcement uses subpoenas to follow the trace. System ads have some logs under their control. Notice: All fakemailing that you will be learning can be easily traced. Email Fundamentals Email travels from originating computer to the receiving computer through email servers. All email servers add to the header. Use important internet services to interpret and verify data in a header. Email Fundamentals Typical path of an email message: Mail Server Client Mail Server Mail Server Client Email Fundamentals: Important Services Verification of IP addresses: Regional Internet Registry APNIC (Asia Pacific Network Information Centre). ARIN (American Registry of Internet Numbers). LACNIC Latin American and Caribbean IP address Regional Registry. RIPE NCC (Réseau IP Européens Network Coordination Centre). Whois www.samspade.org Numerous other websites. My Favorite. Email Fundamentals: Important Services Domain Name System (DNS) translates between domain names and IP address. Name to address lookup: 1. 2. 3. 4. 5. 6. HOSTS files can be altered. Parses HOSTS file. Asks local nameserver Local nameserver contacts nameserver responsible for domain. If necessary, contact root nameserver. Remote nameserver sends data back to local nameserver. Local nameserver caches info and informs client. You can use this as a low-tech tool to block pop-ups. Local nameservers can/could be tricked into accepting unsolicited data to be cached. “Hilary for Senate” – case. Email Fundamentals: Important Services Domain Name System (DNS) translates between domain names and IP address. MX records in the DNS database specify the host’s or domains mail exchanger Can have multiple MX records, with priority attached: MX 10 cse MX 100 mailhost.soe.uscs.edu Email to user@scu.edu will then be sent to user@cse.scu.edu. If that site is down, then it will be sent to user@mailhost.soe.ucsc.edu. The mailer at both sites needs also be set up to accept the messages. Email Fundamentals IP-Addressing Fundamentals IP Version 4 is slowly replaced by IP Version 6. IPv4: 4 digital numbers between 0 and 255. IPv6: 8 digital numbers between 0000 and 0xffff. Static / dynamic addresses Dynamic addresses assigned by DHCP within a local domain (with same leading portion of IP address). Email Fundamentals: Important Services Many organizations use Network Address Translation. NAT boxes have a single visible IP. Incoming I-packet analyzed according to address and port number. Forwarded to interior network with an internal IP address. Typically in the “private use areas”: 10.0.0.0 – 10.255.255.255 172.16.0.0 – 172.31.255.255 192.168.0.0-192.168.255.255 Private use addresses are not valid addresses externally. Email Protocols: Email program such as outlook or groupwise are a client application. Needs to interact with an email server: Post Office Protocol (POP) Internet Message Access Protocol (IMAP) Microsoft’s Mail API (MAPI) Web-based email uses a web-page as an interface with an email server. Email Protocols: A mail server stores incoming mail and distributes it to the appropriate mail box. Behavior afterwards depends on type of protocol. Accordingly, investigation needs to be done at server or at the workstation. Email Protocols: Post Office Service Protocol Characteristics Stores only incoming messages. POP Investigation must be at the workstation. Stores all messages IMAP Copies of incoming and outgoing messages might be stored on the MS’ MAPI Lotus Notes workstation or on the server or on both. Web-based send and HTTP receive. Incoming and outgoing messages are stored on the server, but there might be archived or copied messages on the workstation. Easy to spoof identity. Email Protocols: SMTP Neither IMAP or POP are involved relaying messages between servers. Simple Mail Transfer Protocol: SMTP Easy. Has several additions. Can be spoofed: By using an unsecured or undersecured email server. By setting up your own smtp server. Email Protocols: SMTP How to spoof email telnet endor.engr.scu.edu 25 220 endor.engr.scu.edu ESMTP Sendmail 8.13.5/8.13.5; Wed, 28 Dec 2005 14:58:49 - 0800 helo 129.210.16.8 250 server8.engr.scu.edu Hello dhcp-19-198.engr.scu.edu [129.210.19.198], please d to meet you mail from: jholliday@engr.scu.edu 250 2.1.0 jholliday@engr.scu.edu... Sender ok rcpt to: tschwarz@scu.edu 250 2.1.5 tschwarz@scu.edu... Recipient ok data 354 Enter mail, end with "." on a line by itself This is a spoofed message. . 250 2.0.0 jBSMwnTd023057 Message accepted for delivery quit 221 2.0.0 endor.engr.scu.edu closing connection Email Protocols: SMTP Return-path: <jholliday@engr.scu.edu> Received: from MGW2.scu.edu [129.210.251.18] This looks very convincing. by gwcl-22.scu.edu; Wed, 28 Dec 2005 15:00:29 -0800 (unverified [129.210.16.1]) by Only hint: receivedReceived: line givesfrom the endor.engr.scu.edu name of my machine. MGW2.scu.edu (Vircom SMTPRS If I were to use a machine without4.2.425.10) a fixed IP,with thenESMTP you id for <tjschwarz@scu.edu>; can determine the <C0066443608@MGW2.scu.edu> DHCP address from the DHCP logs. Wed, 28 Dec 2005 15:00:29 -0800 X-Modus-BlackList: 129.210.16.1=OK;jholliday@engr.scu.edu=OK X-Modus-Trusted: 129.210.16.1=NO Received: from bobadilla.engr.scu.edu (bobadilla.engr.scu.edu [129.210.18.34]) by endor.engr.scu.edu (8.13.5/8.13.5) with SMTP id jBSMwnTd023057 for tjschwarz@scu.edu; Wed, 28 Dec 2005 15:00:54 -0800 Date: Wed, 28 Dec 2005 14:58:49 -0800 From: JoAnne Holliday <jholliday@engr.scu.edu> Message-Id: <200512282300.jBSMwnTd023057@endor.engr.scu.edu> this is a spoofed message. Email Protocols: SMTP How to spoof email Endor will only relay messages from machines that have properly authenticated themselves within the last five minutes. Subject lines etc. are part of the data segment. However, any misspelling will put them into the body of the message. Email Protocols: SMTP How to spoof email telnet endor.engr.scu.edu 25 220 endor.engr.scu.edu ESMTP Sendmail 8.13.5/8.13.5; Wed, 28 Dec 2005 15:36:13 0800 mail from: plocatelli@scu.edu 250 2.1.0 plocatelli@scu.edu... Sender ok rcpt to: tschwarz@scu.edu 250 2.1.5 tschwarz@scu.edu... Recipient ok data 354 Enter mail, end with "." on a line by itself Date: 23 Dec 05 11:22:33 From: plocatelli@scu.edu To: tschwarz@scu.edu Subject: Congrats You are hrby appointed the next president of Santa Clara University, effectively immediately. Best, Paul . 250 2.0.0 jBSNaDlu023813 Message accepted for delivery quit Email Protocols: SMTP How to spoof email Email Protocols: SMTP Things are even easier with Windows XP. Turn on the SMTP service that each WinXP machine runs. Create a file that follows the SMTP protocol. Place the file in Inetpub/mailroot/Pickup Email Protocols: SMTP From HolyFather@vatican.va Tue Dec 23 17:25:50 2003 Return-Path: <HolyFather@vatican.va> To: tschwarz@engr.scu.edu Received: from Xavier (dhcp-19-226.engr.scu.edu [129.210.19.226]) From: HolyFather@vatican.va by server4.engr.scu.edu (8.12.10/8.12.10) with ESMTP id hBO1Plpv027244 for <tschwarz@engr.scu.edu>; Tue, 23 Dec 2003 17:25:50 -0800 Received: from mail pickup service by Xavier with Microsoft SMTPSVC; This is a spoofed message. Tue, 23 Dec 2003 17:25:33 -0800 To: tschwarz@engr.scu.edu From: HolyFather@vatican.va Message-ID: <XAVIERZRTHEQXHcJcKJ00000001@Xavier> X-OriginalArrivalTime: 24 Dec 2003 01:25:33.0942 (UTC) FILETIME=[D3B56160:01C3C9 BC] Date: 23 Dec 2003 17:25:33 -0800 X-Spam-Checker-Version: SpamAssassin 2.60-rc3 (1.202-2003-08-29-exp) on server4.engr.scu.edu X-Spam-Level: X-Spam-Status: No, hits=0.3 required=5.0 tests=NO_REAL_NAME autolearn=no version=2.60-rc3 This is a spoofed message. Email Protocols: SMTP SMTP Headers: Each mail-server adds to headers. Additions are being made at the top of the list. Therefore, read the header from the bottom. To read headers, you usually have to enable them in your mail client. SMTP Headers To enable headers: Eudora: Hotmail: Select message and go to options. Yahoo!: Options Show Headers MS Outlook: Options Preferences Message Headers. Juno: Use the Blah Blah Blah button Mail Options General Preferences Show all headers. Groupwise: Message itself is “attached” to each email. You need to look at it. SMTP Headers Headers consists of header fields Originator fields Destination address fields Message-ID-field is optional, but extremely important for tracing emails through email server logs. Informational Fields To, cc, bcc Identification Fields from, sender, reply-to Subject, comments, keywords Resent Fields Resent fields are strictly speaking optional, but luckily, most servers add them. Resent-date, resent-from, resent-sender, resent-to, resent-cc, resent-bcc, resent-msg-id SMTP Headers Trace Fields Core of email tracing. Regulated in RFC2821. When a SMTP server receives a message for delivery or forwarding, it MUST insert trace information at the beginning of the header. SMTP Headers The FROM field, which must be supplied in an SMTP environment, should contain both (1) the name of the source host as presented in the EHLO command and (2) an address literal containing the IP address of the source, determined from the TCP connection. The ID field may contain an "@" as suggested in RFC 822, but this is not required. The FOR field MAY contain a list of <path> entries when multiple RCPT commands have been given. A server making a final delivery inserts a return-path line. SMTP Header Spotting spoofed messages Contents usually gives a hint. Each SMTP server application adds a different set of headers or structures them in a different way. Use internet services in order to verify header data. A good investigator knows these formats. However, some companies can outsource email or use internal IP addresses. Look for breaks / discrepancies in the “Received” lines. SMTP Header Investigation of spoofed messages Verify all IP addresses Keeping in mind that some addresses might be internal addresses. Make a time-line of events. Change times to universal standard time. Look for strange behavior. Keep clock drift in mind. Server Logs E-mail logs usually identify email messages by: Account received IP address from which they were sent. Time and date (beware of clock drift) IP addresses Server Logs Dec 31 18:26:15 endor sendmail[30597]: k012OV1i030597: from=evil@evil.com, size=147, class=0, nrcpts=1, msgid=<200601010225.k012OV1i030597@endor.engr.scu.edu>, proto=SMTP, daemon=MTA, relay=c-24-12-227-211.hsd1.il.comcast.net [24.12.227.211] Dec 31 18:26:15 endor spamd[28512]: spamd: connection from localhost [127.0.0.1] at port 42865 Dec 31 18:26:15 endor spamd[28512]: spamd: setuid to tschwarz succeeded Dec 31 18:26:15 endor spamd[28512]: spamd: processing message <200601010225.k012OV1i030597@endor.engr.scu.edu> for tschwarz:1875 Dec 31 18:26:15 endor spamd[28512]: spamd: clean message (4.6/5.0) for tschwarz:1875 in 0.2 seconds, 525 bytes. Dec 31 18:26:15 endor spamd[28512]: spamd: result: . 4 MSGID_FROM_MTA_ID,RCVD_IN_NJABL_DUL,RCVD_IN_SORBS_DUL scantime=0.2,size=525,user=tschwarz,uid=1875,required_score=5.0,rhost=localhost,raddr =127.0.0.1,rport=42865,mid=<200601010225.k012OV1i030597@endor.engr.scu.edu>,auto learn=no Dec 31 18:26:15 endor spamd[21352]: prefork: child states: II Dec 31 18:26:15 endor sendmail[30726]: k012OV1i030597: to=tschwarz@engr.scu.edu, delay=00:01:02, xdelay=00:00:00, mailer=local, pri=30464, dsn=2.0.0, stat=Sent Sample log entry at endor. Server Logs Many servers keep copies of emails. Most servers purge logs. Law-enforcement: Vast majority of companies are very cooperative. Don’t wait for the subpoena, instead give system administrator a heads-up of a coming subpoena. Company: Local sys-ad needs early warning. Getting logs at other places can be dicey. Unix Sendmail Configuration file /etc/sendmail.cf and /etc/syslog.conf maillog (often at /var/log/maillog) Gives location of various logs and their rules. Logs SMTP communications Logs POP3 events You can always use: locate *.log to find log files.