{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import configparser\n", "import imaplib\n", "import email\n", "import io\n", "import zipfile\n", "import xml.etree.ElementTree\n", "import psycopg2\n", "import re\n", "import datetime\n", "import socket" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "['dmarc.ini']" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "config = configparser.ConfigParser()\n", "config.read('dmarc.ini')" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'pass', 'pass', '2607:f8b0:400d:c04::22a'),\n", " 'mail-qg0-x22a.google.com'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '54.84.192.51'), 'mail1.keybase.io'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.149'), 'mailex.mailcore.me'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::232'),\n", " 'mail-wm0-x232.google.com'),\n", " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::231'),\n", " 'mail-wm0-x231.google.com'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n", " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n", " (('google.com', 'pass', 'pass', '82.109.184.9'), 'clublloyds.com'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk')]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "conn = psycopg2.connect(host=config['database']['server'],\n", " database=config['database']['database'], \n", " user=config['database']['username'], \n", " password=config['database']['password'])\n", "with conn:\n", " with conn.cursor() as cur:\n", " cur.execute(\"\"\"\n", " select report_metadata_org_name, auth_results_spf_result, auth_results_dkim_result, source_ip \n", " from reports, report_items\n", " where report_items.report_id = reports.id and\n", " source_ip <> inet '212.69.55.62'\"\"\")\n", " results = cur.fetchall()\n", "[(r, socket.gethostbyaddr(r[3])[0]) for r in results]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[(('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '54.84.192.51'), 'mail1.keybase.io'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.149'), 'mailex.mailcore.me'),\n", " (('google.com', 'softfail', 'pass', '94.136.40.147'), 'mailex.mailcore.me'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::232'),\n", " 'mail-wm0-x232.google.com'),\n", " (('google.com', 'softfail', 'pass', '2a00:1450:400c:c09::231'),\n", " 'mail-wm0-x231.google.com'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n", " (('google.com', 'softfail', 'pass', '146.185.136.235'), 'new.realms.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk'),\n", " (('Yahoo! Inc.', 'softfail', 'pass', '65.20.0.12'), 'lb.lon5.cpcloud.co.uk')]" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with conn:\n", " with conn.cursor() as cur:\n", " cur.execute(\"\"\"\n", " select report_metadata_org_name, auth_results_spf_result, auth_results_dkim_result, source_ip \n", " from reports, report_items\n", " where report_items.report_id = reports.id and\n", " auth_results_spf_result <> 'pass'\"\"\")\n", " results = cur.fetchall()\n", "[(r, socket.gethostbyaddr(r[3])[0]) for r in results]" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "'lb.lon5.cpcloud.co.uk'" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "socket.gethostbyaddr('65.20.0.12')[0]" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": false }, "outputs": [ { "data": { "text/plain": [ "[('02aca4c6bb144bb6b54773374c14a43a@hotmail.com',),\n", " ('10356602625290246518',),\n", " ('10491829640821461358',),\n", " ('10706879170593875813',),\n", " ('10744929815548178249',),\n", " ('11019573554877343650',),\n", " ('1102163566627474204',),\n", " ('11743474449139138027',),\n", " ('1178c4fe34364ff39cb6e24a51219093@hotmail.com',),\n", " ('1207168150882246442',),\n", " ('12137203242660163862',),\n", " ('121bb39637c14847a40669dd3e7cdf49@hotmail.com',),\n", " ('1233953228184721030',),\n", " ('12434676377746978866',),\n", " ('12700770160536483846',),\n", " ('129a9dc3ff2e40ae8a3890ecc1c291d9@hotmail.com',),\n", " ('13032699446207263761',),\n", " ('13702792868066092542',),\n", " ('13959504937502303973',),\n", " ('13f28e952d67451281b90d55eee9c7c3@hotmail.com',),\n", " ('14089985608998676943',),\n", " ('14217880258295310962',),\n", " ('14416654486328871570',),\n", " ('1448246712.259522',),\n", " ('1448419746.206772',),\n", " ('1448592471.754446',),\n", " ('1448851661.602960',),\n", " ('1448938177.97045',),\n", " ('1449024342.601561',),\n", " ('1449110875.443288',),\n", " ('1449197294.177690',),\n", " ('1449283514.868026',),\n", " ('1449542804.259788',),\n", " ('1449629119.120001',),\n", " ('1449888489.668429',),\n", " ('1449974899.615312',),\n", " ('1450234735.690828',),\n", " ('1451184218.12383',),\n", " ('1451443783.692950',),\n", " ('1451616408.476341',),\n", " ('1452134765.308922',),\n", " ('1452393953.83099',),\n", " ('1452480188.666644',),\n", " ('1452566814.805501',),\n", " ('1452653275.294149',),\n", " ('1452741832.342075',),\n", " ('1452826445.971145',),\n", " ('1452912512.114840',),\n", " ('1453084984.369330',),\n", " ('1453171440.157305',),\n", " ('1453258067.440890',),\n", " ('1453344550.144698',),\n", " ('1453517236.399019',),\n", " ('1453689981.768611',),\n", " ('1453776417.898739',),\n", " ('1453862958.482897',),\n", " ('1454381343.228960',),\n", " ('1454467952.258012',),\n", " ('1454640482.903992',),\n", " ('1454986282.636073',),\n", " ('1455072659.49250',),\n", " ('1455418081.446180',),\n", " ('1455679107.469767',),\n", " ('1455763965.140751',),\n", " ('1456109267.60200',),\n", " ('1456282325.455667',),\n", " ('1456455410.661669',),\n", " ('1456541727.873510',),\n", " ('1456713880.905762',),\n", " ('1456800606.884839',),\n", " ('1456886761.643377',),\n", " ('1457059537.625770',),\n", " ('1457146943.63077',),\n", " ('1457232742.472142',),\n", " ('1457318880.887129',),\n", " ('1457491692.793016',),\n", " ('1457750956.253773',),\n", " ('1457919850.989656',),\n", " ('1458006833.731671',),\n", " ('1458093082.193350',),\n", " ('1458353823.362308',),\n", " ('1458524834.32161',),\n", " ('1458611429.595569',),\n", " ('1458784545.303847',),\n", " ('1458957186.548175',),\n", " ('1459129809.695034',),\n", " ('1459216304.582931',),\n", " ('1459302353.261157',),\n", " ('14593873841710243963',),\n", " ('14661842628106423589',),\n", " ('14662396456930987863',),\n", " ('15111277194568576101',),\n", " ('15185964531645951164',),\n", " ('15410706527896810898',),\n", " ('15497495941279624940',),\n", " ('15974729567081493290',),\n", " ('16143280651570354241',),\n", " ('16409503372348966326',),\n", " ('164180405175632647',),\n", " ('16520810497197721925',),\n", " ('16824795799639390032',),\n", " ('17044038014166863505',),\n", " ('17071564483265101388',),\n", " ('17659080448126516391',),\n", " ('17880573400612806781',),\n", " ('17984785070730076605',),\n", " ('18203685646345145151',),\n", " ('1862812391966551302',),\n", " ('18c9a966da81401e80ca2a22310ffee6@hotmail.com',),\n", " ('1922265692629464594',),\n", " ('1bcc49be66744cc7a70ae1cc53515bbf@hotmail.com',),\n", " ('1fadaaf3d9d544568a41042a1f42df05@hotmail.com',),\n", " ('2002148329698541727',),\n", " ('20246ec4a70041caa276560032fdc595@hotmail.com',),\n", " ('2150510829392606201',),\n", " ('2273327349069127175',),\n", " ('271c80b9234a4c99bb9608abc5470c99@hotmail.com',),\n", " ('2884439811958006165',),\n", " ('2cfe3d0ec75b43f89a6a7ae57777e25c@hotmail.com',),\n", " ('30d5ef78d6d746a4a777c56e7ca6f1c6@hotmail.com',),\n", " ('3188090359734380692',),\n", " ('3267388508667988463',),\n", " ('3508955360705645678',),\n", " ('3544432548848738700',),\n", " ('3584764172722215181',),\n", " ('3689737760348689620',),\n", " ('36dd4e2b3f424bb6919d2d5d4c77c8dd@hotmail.com',),\n", " ('3eba8b9e31724809aaf8d517e5656c4b@hotmail.com',),\n", " ('4158049796460953654',),\n", " ('4226319448276355598',),\n", " ('43e7b5e2e0fb400aa914058360c8aaab@hotmail.com',),\n", " ('456ffff78456494fbaed47b465259d46@hotmail.com',),\n", " ('4654132158287507198',),\n", " ('511d6fbb8484454b916ad8d799938390@hotmail.com',),\n", " ('5164714352250096219',),\n", " ('543258397004515473',),\n", " ('580ca0a74948493ba8b7c6e62b8c81d9@hotmail.com',),\n", " ('594749737641304465',),\n", " ('6110291457768008366',),\n", " ('641b4cc500334a7eb3f649b21af003ca@hotmail.com',),\n", " ('6474240574237085621',),\n", " ('6505353761044749597',),\n", " ('6876229717666715946',),\n", " ('68aad5080a774e2c997d159b546569b9@hotmail.com',),\n", " ('6996084840178215735',),\n", " ('7006513620611789399',),\n", " ('724976339745122723',),\n", " ('726a3261dfab4b4590b5fc898c561b08@hotmail.com',),\n", " ('730219275619457',),\n", " ('75eef2128eb84e9ca8e4837f3d4e31bd@hotmail.com',),\n", " ('7773a696f4a54f1e8c01f4644fbb94ee@hotmail.com',),\n", " ('77b6c2aa32bf440aa240195db229cd4a@hotmail.com',),\n", " ('7815164892280952980',),\n", " ('7834597727856283739',),\n", " ('840fc02d5cb847ec9f007fb236c0c190@hotmail.com',),\n", " ('8426152571808739514',),\n", " ('85136d21c514431e9f5cf9d36faa4a22@hotmail.com',),\n", " ('8986675713054039362',),\n", " ('8c177254c3cb41869dc3afab59f74c76@hotmail.com',),\n", " ('9037150256193522538',),\n", " ('9138782308848375092',),\n", " ('9594298247075547297',),\n", " ('a6b6aec1af1647eb8c6fd83baaed6bbe@hotmail.com',),\n", " ('b6d15133598b4e00b21c8e2b7cbec05e@hotmail.com',),\n", " ('ba1e9c35eec5428b8c3d6a32d25daa46@hotmail.com',),\n", " ('ba64911adb0743d0b926588647ec5dcf@hotmail.com',),\n", " ('c8e4fe772ae3434594e8396a8abf77b1@hotmail.com',),\n", " ('c8f339f8f3364d78820dd03a84d11daa@hotmail.com',),\n", " ('d1019291012e4f4589f59f1dacef31a3@hotmail.com',),\n", " ('d71792d8afc246e9a4756bd13e600b59@hotmail.com',),\n", " ('d77c5b90344149f5bb7b50ff69400aeb@hotmail.com',),\n", " ('dbe2f49dbea947428b179e0ecec5f813@hotmail.com',),\n", " ('de651cefbc0749a3aa3d91cdc5084f5a@hotmail.com',),\n", " ('e245ef81f05b4697bea34bed977d8286@hotmail.com',),\n", " ('e327753089e04950906848d104a93695@hotmail.com',),\n", " ('ea3a96df66a845c5a666068ef8ca1368@hotmail.com',),\n", " ('eda16c25bbdb48b2bae0d18eab13f736@hotmail.com',),\n", " ('f94f00dee713479fb8bfdbcad539da88@hotmail.com',),\n", " ('fc0750780e0d4b1395c4c9f41cb9791f@hotmail.com',)]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "with conn:\n", " with conn.cursor() as cur:\n", " cur.execute(\"\"\"\n", " select report_metadata_report_id\n", " from reports\"\"\")\n", " results = cur.fetchall()\n", "sorted(results)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "collapsed": true }, "outputs": [], "source": [ "conn.close()" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.3+" } }, "nbformat": 4, "nbformat_minor": 0 }