/opt/dedrads/__pycache__
NameSizeModeActions
alp.cpython-313.pyc188170644editdlrm
check_prov.cpython-313.pyc63940644editdlrm
clean_exim.cpython-313.pyc89020644editdlrm
cmspass.cpython-313.pyc63780644editdlrm
cms_check.cpython-313.pyc140790644editdlrm
cms_counter.cpython-313.pyc329480644editdlrm
cpanel_postgres_manager.cpython-313.pyc407620644editdlrm
docroot.cpython-313.pyc54920644editdlrm
envinfo.cpython-313.pyc81840644editdlrm
exclude_rbl.cpython-313.pyc66820644editdlrm
first_setup.cpython-313.pyc204930644editdlrm
fixwpcron.cpython-313.pyc72230644editdlrm
innodb_converter.cpython-313.pyc143470644editdlrm
mail_sources.cpython-313.pyc99690644editdlrm
modsec_disable.cpython-313.pyc158380644editdlrm
mysql_selector.cpython-313.pyc867480644editdlrm
show-conns-adv.cpython-313.pyc684140644editdlrm
sparta.cpython-313.pyc4909030644editdlrm
vhost_data.cpython-313.pyc69830644editdlrm
Edit: /opt/dedrads/__pycache__/mail_sources.cpython-313.pyc (9969B)
}jSrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr SSK J r Sr Sr SSjr SSjrSS jrS rS rS r\S :Xa\"5 gg)z4List sources of email sent by address and directory.N) defaultdict)ArgumentParserzDaniel Kzdanielk@inmotionhosting.comc ## /nU(a[R"S5nUHvn[RRU5(d$[ SU35 [ R "S5 [R"US5nUShvN SSS5 Mx Sn[RRU5(d$[ SU35 [ R "S5 [US S 9nUShvN SSS5 gNy![a1n[ SUSU35 [ R "S5 SnANSnAff=f!,(df  GM3=fN`![a' [ S U35 [ R "S5 N[a0n[ S US 35 [ U5 [ S5 SnANSnAff=f!,(df  g=f7f)z$Return iterable over email log linesz/var/log/exim_mainlog?*zCould not find log file: rNError reading file '': z/var/log/exim_mainlogutf-8encodingzError reading file zReceived decoding error for :z continuing...) globospathexistsprintsysexitgzipopenOSErrorUnicodeDecodeError)all_logslog_listlog_filemail_logerrores /opt/dedrads/mail_sources.py email_linesr szH9967 H77>>(++1(<= 8S)X '''*) !'H 77>>( # # )(45  h )X #   * )( 0 #eWEFHHQKK *)   'z2 3 HHQK! # 0 !< = QCM / " " # * )sBGED  DD A G2G4E9E:E> GD  E'D?:E?EE E  GE.G G G&G;GGG GGc^US:Xag/nSU3n[RRU5(d0[SR X55 [ R "S5 [R"S5n[USS9nUH<nURU5nUcMURURS5S 5 M> S S S 5 S RU5$![a1n[S US U35 [ R "S5 S nANOS nAff=f!,(df  N]=f)zGet domain regex for usernamez[^@ ]+z/var/cpanel/users/zBCould not find domains for {}. Invalid cPanel user? Cannot find {}rz^DNS[0-9]*=(.*)$r r Nrrr |)rrrrformatrrrecompilersearchappendgroupsrjoin)username domain_list user_filedns_rxrline dns_matchrs r get_domainsr18s2~K$XJ/I 77>>) $ $  228&2M   ZZ+ ,F i' *h  "MM$/ (&&y'7'7':1'=>! + 88K    ( 3ug> ? HHQKK  + *s6DC  'C  D*'DDDD D,c[[5n[[5n[[5n[U5nUS:XaSnSnO[S[U5;aUnSnOG[ U[5(dS5eSn[U5n[ R R 5n [R"S5n [R"SRU55n [R"SRU55n [R"SUS 35n [U5GHnUS:waURU5(dM"U RU5(dM:US:a:UW [ R RUS S S 5- R5:dMzU RUR!55nU(aaS RUR#S5UR#S55nUU[%UR#S5R'55-UU'U RUR!55nU(aEUR#S5nUU[%UR#S5R'55-UU'GMlU RU5nU(dGMUR#S5nSU;aGMUUS-UU'GM X4U4$)z(Returns touple of dicts of email sourcesr"r-zTime is not date or numberz#\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}zV(courier|dovecot)_(plain|login):(?P[^@ ]+(@(?P{}))?) .*for (?P.*)$z<= (?P[^@]*@[^@ ]+).*(courier|dovecot)_(plain|login):(?P(?!(?P=sender))[^@ ]+(@(?P{}))?).*for (?P.*)$zcwd=(?P/home/z[^ ]*)Nz%Y-%m-%d %H:%M:%Sz{} as {}loginsenderfor directoryz/usr/local/cpanel/r)rintr1str isinstancedatetimenowr%r&r$r startswithmatchstrptime total_secondsr'lowergrouplensplit)rr+time email_loginsworking_directoriesspoofingdomainsdatedurationtarget datetime_rxlogin_rx spoofing_rx directory_rxr/rx_match logged_inaddressr8s r get_sourcesrUXss#L%c*3H(#G rz D $$$B&BB$t9""&&(**CDKzz $fWoH** %fWo K ::!9(6JKLH% 2:dood33   &&  a< ##,,T#2Y8KLMmo   %%djjl3 "))w')AI#+9"5u%++-9#HY ??4::<0 nnW-G$0$9Cu%++-=%L ! &&t, 8 {3I#y0-@-Ka-O  * Q&T x 88c^[XRS9Hn[XSSU35 M g)z#Print a dictionary sorted by values)keyz>7 N)sortedgetr) dictionaryvalues rprint_sorted_dictr^s0 7 "2&b018rVc [[S9nURSSSSS9 URSS[S S S 9 UR 5nURS S S[SSS9 URSSS[ SSS9 URSSSSS9 UR 5nURnURcSnO URn[R"S5nUR(aSnSnOURS:wa[URUR5(d.[SUR35 [R "S5 URnO!UR"S:aUR"nSnOSnX4U4$)zParse command line aruments) descriptionz-az--all store_truez7Search all email logs, rather than only the recent log.)actionhelpr+USER?z4Search for only email from a specific cPanel account)metavartypenargsrcz-dz--datestorer"zLSearch for entries from a certain date. Must be in the format of YYYY-MM-DD.)rbrgdefaultrcz-sz --secondsrzWSearch entries which were made within the specified number of seconds. Overrides --all.z-rz--recentz\Search recent entries, from the last hour. This is the same as -s 3600. Also overrides --allz\d{4}-\d{2}-\d{2}iFz#Date is not in the correct format: r)r__doc__ add_argumentr:add_mutually_exclusive_groupr9 parse_argsallr+r%r&recentrKr?rrrseconds)parser time_groupargsrr+date_rxrFs rrnrns 0F   F    C 446J   3    2   @     DxxH }}==jj-.G {{ b}}TYY'' 7 {C D HHQKyy  || t ##rVc[5upn[XU5up4n[S5 [U5 [S5 [U5 [S5 [ U5S:Xd [U5 g[S5 g)zMain function for scriptz Email Logins:z Source directories:z Possibly spoofed emails:rz No obvious spoofs foundN)rnrUrr^rD)rr+rFrGrHrIs rmainrwsn",X4?D51\ /l# !")* &' x=A (# )*rV__main__)F)r")Fr"r")rkrrr%rrr< collectionsrargparser __author__ __email__r r1rUr^rnrw__name__rVrrsb: ##  ) $#N!@L9^2Q$h+, zFrV