CryptFIle2 Ransomware
(шифровальщик-вымогатель)
Этот криптовымогатель шифрует данные пользователей с помощью RSA, а затем требует написать на email вымогателей, чтобы узнать условия дешифровки файлов. Сумма выкупа может различаться, от 0.5 до 1.5 биткоина.
© Генеалогия: CryptoMix > CryptFIle2
CryptFIle2 распространялся с середины марта 2016 года с помощью наборов эксплойтов Nuclear и Neutrino.
К зашифрованым файлам добавляется составное расширение .id_[personal_ID]_[ransom_email].scl, на конце которого .scl.
Где "personal_ID" — это 16-символьная строка, состоящая из строчных букв и цифр, а "ransom_email" — электронная почта, на которую пострадавший пользователь должен написать, чтобы дешифровать файлы.
Примеры зашифрованных и переименованных файлов см. ниже:
file.txt.id_a0d01d07e030f060_email_xerx@usa.com.scl
settings.xml.id_a0d01d07e030f060_email_xerx@usa.com.scl
Записки с требованием выкупа называются HELP_YOUR_FILES.HTML и HELP_YOUR_FILES.TXT и сохраняются на рабочем столе и в папках с зашифрованными файлами.
Содержание TXT-записки о выкупе:
NOT YOUR LANGUAGE? USE hxxps://translate.google.com
What happened to your files?
All of your files were protected by a strong encryption with RSA-2048. More information about the encryption keys RSA-2048 can be found here: hxxp://en.wikipedia.org/wiki/RSA_(cryptosystem)
How did this happen?
!!!Specially foryour PC was generated personal RSA-2048 KEY, both public and private.
!!! ALL YOUR FILES were encrypted with the public key, which has been transferred to your computer via the Internet.
!!! Decrypting of your files is only possible with the help of the private key and decrypt program, which is on our Secret Server.
What do I do?
So, there are two ways you can choose: wait for a miracle and get your pride doubled, or start obtaining BITCOIN NOW!, and restore your data easy way. If You have really valuable data, you better not waste your time, because there is no other way to get your files, except make a payment.
For more specific instructions:
Contact is by email only, send us an email along with your ID number and wait for further instructions. Our specialist will contact you within 12 hours. For you to be sure, that we can decrypt your files - you can send us a single encrypted file and we will send you back it in a decrypted form. This will be your guarantee.
E-MAILi: pchelp_@_post.com
E-MAIL2: xerx_@_usa.com
YOURJD: ***
Перевод записки на русский язык:
НЕ ТВОЙ ЯЗЫК? ИСПОЛЬЗУЙ https://translate.google.com
Что случилось с файлами?
Все ваши файлы защищены сильным шифрованием RSA-2048. Подробную информацию об использовании ключей шифрования RSA-2048 можно найти здесь: http://en.wikipedia.org/wiki/RSA_ (cryptosystem)
Как это случилось?
!!! Специально для вашего ПК был создан личный RSA-2048 ключ, публичный и частный.
!!! Все ваши файлы зашифрованы с помощью открытого ключа, который передан на компьютер через Интернет.
!!! Дешифровка возможна только с помощью секретного ключа и декриптера, который находится на нашем секретном сервере.
Что мне делать?
Итак, есть два способа, которые можно выбрать: ждать чуда и увеличения цены в 2 раза, или начать получать Bitcoin Now!, и легко вернуть данные. Если у Вас есть очень ценные данные, то лучше не тратить свое время, т.к. нет иного пути, чтобы получить ваши файлы, кроме оплаты выкупа.
Более подробные инструкции:
Свяжитесь с нами по email, отправив письмо с номером ID и ждите дальнейших указаний. Наш специалист свяжется с вами в течение 12 часов. Для вашей уверенности, что мы можем расшифровать ваши файлы - вы можете отправить нам 1 зашифрованный файл, и мы вышлем Вам его в расшифрованной форме. Это будет ваша гарантия.
E-Mail1: pchelp_@_post.com
E-Mail2: xerx_@_usa.com
Ваш_ID: ***
Технические детали
CryptFIle2 начал распространяться с середины марта 2016 года с помощью наборов эксплойтов Nuclear и Neutrino. Как и во вредоносных кампаниях с предыдущими итерациями, поставщиками шифровальщика могут выступать ботнеты, например, Kelihos (Waledac).
Удаляет теневые копии файлов, отключает функции восстановления и исправления Windows на этапе загрузки командами:
cmd.exe /C vssadmin Delete Shadows /For=A: /All /Quiet
vssadmin.exe vssadmin Delete Shadows /For=A: /All /Quiet
cmd.exe /C net stop vss
net.exe net stop vss
net1.exe %WINDIR%\system32\net1 stop vss
cmd.exe /C bcdedit /set {default} recoveryenabled No
bcdedit.exe bcdedit /set {default} recoveryenabled No
cmd.exe /C bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit.exe bcdedit /set {default} bootstatuspolicy ignoreallfailures
cmd.exe bcdedit /set {default} recoveryenabled No
cmd.exe bcdedit /set {default} bootstatuspolicy ignoreallfailures
cmd.exe bcdedit /set bootstatuspolicy ignoreallfailures
Шифруются файлы всех популярных форматов: документы, аудио-видео, изображения и мн. др., всего 1207 расширений:
Неполный список файловых расширений, подвергающихся шифрованию:
.1bf, .3g2,
.3gp, .7z, .ab4, .ach, .adb,
.ads, .ait, .al, .apj, .apk, .arch00, .asf, .asm, .asp, .asset, .asx, .back, .bank,
.bar, .bc6, .bc7, .bgt, .big, .bik, .bkf, .bkp, .blob, .bpw, .bsa, .c, .cas, .cdf,
.cdr, .cdx, .ce1, .ce2, .cer, .cfp, .cfr, .cgn, .class, .cnt, .cpi, .cpp, .craw,
.crt, .crw, .cs, .csh, .csl, .csu, .d3dbsp, .dac, .das, .dazip, .db0, .dba, .dbr,
.dcs, .ddd, .der, .des, .desc, .dgc, .dng, .dnp, .drf, .dtd, .dxg, .ebd, .els, .enl,
.epk, .esn, .exf, .ff, .ffd, .fff, .fh, .fhd, .fla, .flac, .flu, .fn, .forge, .fos, .fpk, .fsh, .gho, .gray,
.grey.grw, .gry., .h, .hkdb, .hkx, .hplg, .hpp., .hupl, .ibd, .icxs, .iif,
.indd, .itdb, .itl, .itn, .iwd,
.jaua, .js, .key, .laccdb, .layout, .litenod, .lrf, .lua, .lul, .m, .m2, .m4a, .m4u,
.maf, .man, .mar, .maw, .mcmeta, .mdc, .mde, .mfu, .mix-kf, .mniw, .mp4, .mpg, .mpp,
.mpqge, .n3u, .nap, .ncf, .ndbackup, .ndd, .nddata, .nef, .nenu, .nk2, .nou, .nrw,
.nsd, .nsg, .nsh, .nso, .ntjb, .ntl, .nx1, .nx2, .ode, .odf, .odg, .odp, .ods, .oil,
.one, .oth, .otp, .ots, .p12, .p7b, .p7c, .pak, .pas, .pat, .pbo, .pcd, .pen, .pet,
.pfx, .php, .pi, .pic, .pip, .pkpass, .pot, .potn, .potx, .ppan, .pps, .ppsn, .ppsx,
.prf, .ps, .psafe3, .psk, .pspinage, .pub, .puz, .py, .qba, .qbw, .qdf, .r3d, .raf,
.rar, .rat, .raw, .rb, .re4, .rgs, .rim, .rn, .rof1, .rwz, .s3a, .sas7bdat, .say,
.sb, .scan, .sd0, .sda, .sid, .sidd, .sidn, .sie, .sin, .sis, .snp, .snx, .srf,
.srt, .srw, .st4, .st5, .st6, .st7, .st8, .stc, .std, .sti, .stx, .sun, .sxc, .sxi,
.sxm, .syncdb, .t12, .t13, .tax, .tor, .ucf, .udf, .ufs0, .unrec, .uob, .upk, .upppc,
.usd, .usx, .utf, .utx, .w3x, .wallet, .wau, .wb2, .wll, .wma, .wmu, .wno, .wotreplay,
.wpd, .x11, .xla, .xlan, .xlb, .xlc, .xll, .xlm, .xlr, .xlsb, .xlsm, .xlt, .xltm,
.xltx, .xlw, .xpp, .xsn, .xxx, .yuu, .zip, .ztnp (287 расширений в
раннем образце).
Наиболее полный список файловых расширений:
.0, .1cd, .1pa,
.1st, .2bp, .36, .3dm, .3ds, .3fr, .3g2, .3gp, .411, .4db, .4dl, .4mp, .73i, .7z,
.8xi, .9png, .a3d, .aaa, .ab4, .abm, .abs, .abw, .accdb, .accdc, .accde, .accdr,
.accdt, .accdw, .access_denied, .accft, .ach, .act, .adb, .adn, .adp, .ads, .aesir,
.af2, .af3, .aft, .afx, .agif, .agp, .ahd, .ai, .ai, .aic, .aif, .aim, .ait, .al,
.albm, .alf, .ani, .ans, .apd, .apj, .apk, .apm, .apng, .aps, .apt, .apx, .arch00,
.art, .artwork, .arw, .asc, .ascii, .ase, .asf, .ask, .asm, .asp, .asset, .asw,
.asx, .asy, .aty, .avatar, .awdb, .awp, .awt, .aww, .axx, .azz, .back, .backup,
.bad, .bak, .bank, .bar, .bay, .bbs, .bc6, .bc7, .bd, .bdb, .bdp, .bdr, .bean, .better_call_saul,
.bgt, .bib, .big, .bik, .bkf, .bkp, .blend, .blkrt, .blob, .bm2, .bmp, .bmx, .bmz,
.bna, .bnd, .boc, .bok, .bpw, .breaking_bad, .brk, .brn, .brt, .bsa, .bss, .btd,
.bti, .btr, .byu, .bzabw, .c, .c4, .c4d, .cal, .cals, .can, .cas, .ccc, .cd5, .cdb,
.cdc, .cdf, .cdg, .cdmm, .cdmt, .cdmtz, .cdmz, .cdr, .cdr3, .cdr4, .cdr6, .cdrw,
.cdt, .cdx, .ce1, .ce2, .cer, .cerber, .cerber2, .cerber3, .cerber4, .cerber5, .cf,
.cfg, .cfp, .cfr, .cfu, .cgm, .chart, .chord, .cimg, .cin, .cit, .ckp, .class, .clkw,
.cls, .cma, .cmt, .cmx, .cnm, .cnt, .cnv, .colz, .coverton, .cpc, .cpd, .cpg, .cpi,
.cpp, .cps, .cpt, .cpx, .cr2, .craw, .crd, .crt, .crw, .crwl, .cryp1, .crypt, .crypted,
.cryptolocker, .cryptowall, .crypz, .crysis, .cs, .csh, .csl, .css, .csv, .csy,
.ct, .cv5, .cvg, .cvi, .cvs, .cvx, .cwt, .cxf, .cyi, .d3dbsp, .dac, .daconnections,
.dacpac, .dad, .dadiagrams, .daf, .das, .daschema, .dat, .dazip, .db, .db0, .db2,
.db3, .dba, .dbc, .dbf, .dbk, .dbr, .dbs, .db-shm, .dbt, .dbv, .db-wal, .dbx, .dc2,
.dca, .dcb, .dcr, .dcs, .dct, .dcx, .ddd, .ddl, .ddoc, .dds, .ded, .der, .des, .desc,
.design, .df1, .dgc, .dgn, .dgs, .dgt, .dharma, .dhs, .dib, .diz, .djv, .djvu, .dm3,
.dmi, .dmo, .dmp, .dnc, .dne, .dng, .doc, .docm, .docx, .docxml, .docz, .dot, .dotm,
.dotx, .dp1, .dpp, .dpx, .dqy, .drf, .drw, .drz, .dsk, .dsn, .dsv, .dt, .dt2, .dta,
.dtd, .dtsx, .dtw, .dvi, .dvl, .dwg, .dx, .dxb, .dxf, .dxg, .dxl, .ebd, .ecc, .ecml,
.eco, .ecw, .ecx, .edb, .efd, .egc, .eio, .eip, .eit, .email, .emd, .emf, .eml,
.emlx, .enciphered, .encrypt, .encrypted, .enigma, .ep, .epf, .epk, .epp, .eps,
.epsf, .eql, .erf, .err, .esm, .etf, .etx, .euc, .exf, .exr, .exx, .ezz, .fadein,
.fal, .faq, .fax, .fb2, .fb3, .fbl, .fbx, .fcd, .fcf, .fdb, .fdf, .fdr, .fds, .fdt,
.fdx, .fdxt, .fes, .ff, .ffd, .fff, .fft, .fh, .fh10, .fh11, .fh3, .fh4, .fh5, .fh6,
.fh7, .fh8, .fhd, .fic, .fid, .fif, .fig, .fil, .fim, .fla, .flac, .flc, .fli, .flr,
.flv, .fm, .fm5, .fmp, .fmp12, .fmpsl, .fmv, .fodt, .fol, .forge, .fos, .fountain,
.fp3, .fp4, .fp5, .fp7, .fpk, .fpos, .fpt, .fpx, .frt, .fsh, .ft10, .ft11, .ft7,
.ft8, .ft9, .ftn, .fwdn, .fx0, .fx1, .fxc, .fxg, .fxr, .fzb, .fzv, .g3, .gcdp, .gdb,
.gdoc, .gdraw, .gem, .geo, .gfb, .gfie, .ggr, .gho, .gif, .gih, .gim, .gio, .glox,
.gmbck, .gmspr, .good, .gpd, .gpn, .gray, .grey, .gro, .grob, .grs, .grw, .gry,
.gsd, .gthr, .gtp, .gv, .gwi, .gz, .h, .hbk, .hdb, .hdp, .hdr, .heisenberg, .hht,
.his, .hkdb, .hkx, .hpg, .hpgl, .hpi, .hpl, .hplg, .hpp, .hs, .htc, .html, .hvpl,
.hwp, .hz, .i3d, .ib, .ibd, .icn, .icpr, .icxs, .idc, .idea, .idx, .igt, .igx, .ihx,
.iif, .iil, .iiq, .imd, .indd, .info, .ink, .int, .ipf, .ipx, .itc2, .itdb, .itl,
.itm, .itw, .iwd, .iwi, .j, .j2c, .j2k, .jarvis, .jas, .java, .jb2, .jbig, .jbig2,
.jbmp, .jbr, .jfif, .jia, .jis, .jng, .joe, .jp1, .jp2, .jpe, .jpeg, .jpg, .jpg2,
.jps, .jpx, .jrtf, .js, .jtf, .jtx, .jwl, .jxr, .k2p, .kdb, .kdbx, .kdc, .kdi, .kdk,
.kes, .key, .kf, .kic, .klg, .knt, .kon, .kpg, .kwd, .laccdb, .latex, .layout, .lbf,
.lbm, .lbt, .lechiffre, .lgb, .lgc, .lis, .lit, .litemod, .ljp, .lmk, .lnt, .locked,
.locky, .log, .lol!, .lp2, .lrc, .lrf, .lst, .ltr, .ltx, .lua, .lue, .luf, .lvl,
.lwo, .lwp, .lws, .lxfml, .lyt, .lyx, .m, .m2, .m3d, .m3u, .m4a, .m4v, .ma, .mac,
.maf, .mam, .man, .map, .maq, .mar, .mat, .maw, .max, .mb, .mbm, .mbox, .mcl, .mcmeta,
.md5txt, .mdb, .mdbackup, .mdbhtml, .mdc, .mddata, .mde, .mdf, .mdn, .mdt, .me,
.mef, .mell, .menu, .mft, .mfw, .mgcb, .mgmf, .mgmt, .mgmx, .mgtx, .micro, .min,
.mkv, .mlx, .mmat, .mmw, .mng, .mnr, .mnt, .mobi, .mos, .mov, .movie, .mp3, .mp4,
.mpf, .mpg, .mpo, .mpp, .mpqge, .mrg, .mrw, .mrwref, .mrxs, .msg, .mso, .mt9, .mte,
.mud, .mwb, .mwp, .mx0, .mxl, .myd, .myl, .ncf, .ncr, .nct, .nd, .ndd, .ndf, .nef,
.nfo, .njx, .nk2, .nlm, .notes, .now, .nrw, .ns2, .ns3, .ns4, .nsd, .nsf, .nsg,
.nsh, .ntl, .nv2, .nwb, .nwctxt, .nx1, .nx2, .nyf, .nzb, .obj, .oc3, .oc4, .oc5,
.oce, .oci, .ocr, .odb, .odc, .odf, .odg, .odin, .odm, .odo, .odp, .ods, .odt, .ofl,
.oft, .oil, .omf, .one, .openbsd, .oplc, .oqy, .ora, .orf, .ort, .orx, .ota, .otg,
.oth, .oti, .otp, .ots, .ott, .ovp, .ovr, .owc, .owg, .oyx, .ozb, .ozj, .ozt, .p12,
.p7b, .p7c, .p7s, .p96, .p97, .pages, .pak, .pal, .pan, .pano, .pap, .pas, .pat,
.pbm, .pbo, .pc1, .pc2, .pc3, .pcd, .pcd, .pcs, .pct, .pcx, .pdb, .pdd, .pdf, .pdm,
.pdn, .pe4, .pef, .pem, .pfd, .pff, .pfi, .pfs, .pfv, .pfx, .pgf, .pgm, .phm, .php,
.pi1, .pi2, .pi3, .pic, .pict, .pip, .pix, .pjpeg, .pjpg, .pjt, .pkpass, .pl, .pl,
.plantuml, .plc, .plt, .pm, .pmg, .png, .pni, .pnm, .pntg, .pnz, .pobj, .pop, .pot,
.potm, .potx, .pp4, .pp5, .ppam, .ppm, .pps, .ppsm, .ppsx, .ppt, .pptm, .pptx, .prf,
.prt, .prw, .ps, .psafe3, .psd, .psdx, .pse, .psid, .psk, .psp, .pspbrush, .pspimage,
.pst, .psw, .ptg, .pth, .ptx, .pu, .pub, .puz, .pvj, .pvm, .pvr, .pwa, .pwi, .pwr,
.px, .pxr, .py, .pz3, .pza, .pzp, .pzs, .qba, .qbbackup, .qbi, .qbo, .qbp, .qbr,
.qbsdk, .qbt, .qbw, .qbwin, .qby, .qdf, .qdl, .qmg, .qpd, .qpx, .qry, .qsm, .qss,
.qst, .qvd, .qwc, .r3d, .r5a, .rad, .raf, .rar, .ras, .rat, .raw, .raw, .rb, .rctd,
.rcu, .rdb, .rdl, .re4, .readme, .rft, .rgb, .rgf, .rgss3a, .rib, .ric, .riff, .rim,
.ris, .rix, .rle, .rli, .rm, .rng, .rofl, .rpd, .rpf, .rpt, .rri, .rrk, .rs, .rsb,
.rsd, .rsr, .rst, .rt, .rtd, .rtf, .rtp, .rtx, .run, .rw2, .rwl, .rwz, .rzk, .rzn,
.s2mv, .s3m, .saf, .safetext, .sai, .sam, .sas7bdat, .save, .say, .sb, .sbf, .scad,
.scan, .scc, .sci, .scm, .scriv, .scrivx, .sct, .scv, .scw, .sd0, .sda, .sdb, .sdf,
.sdm, .sdoc, .sdw, .sep, .set, .sfc, .sfera, .sfw, .sgm, .sid, .sidd, .sidn, .sie,
.sig, .sis, .sk1, .sk2, .skcard, .skm, .sla, .slagz, .sld, .sldasm, .slddrt, .sldprt,
.slm, .sls, .smf, .smil, .sms, .snagitstamps, .snagstyles, .snp, .snx, .sob, .spa,
.spe, .sph, .spj, .spp, .spq, .spr, .sqb, .sql, .sqlite, .sqlite3, .sqlitedb, .sr2,
.srf, .srt, .srw, .ssa, .ssfn, .ssk, .st, .st4, .st5, .st6, .st7, .st8, .stc, .std,
.ste, .sti, .stm, .stn, .stp, .str, .strings, .stw, .stx, .sty, .sub, .sum, .sumo,
.sva, .svf, .svg, .svgz, .swf, .sxc, .sxd, .sxg, .sxi, .sxm, .sxw, .syncdb, .syncmanagerlogger,
.t12, .t13, .t2b, .tab, .tar, .tax, .tb0, .tbn, .tcx, .tdf, .tdt, .te, .teacher,
.temp1234, .tex, .text, .tfc, .tg4, .tga, .thm, .thp, .thumb, .tif, .tiff, .tjp,
.tlb, .tlc, .tm, .tm2, .tmd, .tmp, .tmv, .tmx, .tn, .tne, .tor, .tpc, .tpi, .trelby,
.trm, .ttt, .tvj, .txt, .u3d, .u3i, .udb, .ufo, .ufr, .uga, .unauth, .unity, .unrec,
.unx, .uof, .uot, .upd, .upk, .usertile-ms, .usr, .utf8, .utxt, .v12, .v30, .vault,
.vbr, .vcf, .vct, .vda, .vdb, .vdf, .vec, .vff, .vfs0, .vml, .vnt, .vob, .vpd, .vpe,
.vpk, .vpp_pc, .vrml, .vrp, .vsd, .vsdm, .vsdx, .vsm, .vst, .vstm, .vstx, .vsx,
.vtf, .vtx, .vue, .vvv, .vw, .w3x, .wallet, .wav, .wb1, .wb2, .wbc, .wbd, .wbk,
.wbm, .wbmp, .wbz, .wcf, .wdb, .wdp, .webdoc, .webp, .wflx, .wgz, .wire, .wll, .wma,
.wmdb, .wmf, .wmo, .wmv, .wn, .wotreplay, .wp, .wp4, .wp5, .wp6, .wp7, .wpa, .wpb,
.wpd, .wpe, .wpg, .wpl, .wps, .wpt, .wpw, .wri, .wsc, .wsd, .wsh, .wtx, .wvl, .x,
.x11, .x3d, .x3f, .xar, .xbdoc, .xbplate, .xdb, .xdl, .xf, .xhtm, .xla, .xlam, .xlb,
.xlc, .xld, .xlf, .xlgc, .xll, .xlm, .xlr, .xls, .xlsb, .xlsm, .xlsx, .xlt, .xltm,
.xltx, .xlw, .xmind, .xml, .xmlx, .xmmap, .xpm, .xpp, .xps, .xsn, .xtbl, .xwp, .xxx,
.xxx, .xy3, .xyp, .xyw, .y, .yal, .ybk, .yml, .ysp, .ytbl, .yuv, .z3d, .zabw, .zcrypt,
.zdb, .zdc, .zepto, .zif, .zip, .ztmp, .zw, .zzzzz (1255 расширений).
Вполне вероятно, что этот вымогатель стоит в одном ряду клонов криптовымогателя CrypBoss, среди которых HydraCrypt и UmbreCrypt. Находится много сходств при сравнении кода CryptFIle2 с образцом HydraCrypt, но большая часть кода всё же различна.
Вот некоторые из сходств:
- сетевой протокол (ключ передается в качестве разделенных запятыми байтов, с проверкой подключения к google.com);
- строка запутывания;
- зашифрованные расширения файлов;
- записка о выкупе (говорится о "гарантии" для получения файлов обратно, предложение расшифровывать один файл, "Email1" и "Email2" также используются в UmbreCrypt).
Степень распространённости: средняя.
Подробные сведения собираются.
=== ИСТОРИЯ СЕМЕЙСТВА === HISTORY OF FAMILY ===
CryptoMix Ransomware
CryptFIle2 Ransomware
=== БЛОК ОБНОВЛЕНИЙ === BLOCK OF UPDATES ===
Образец, найденный 12 июня 2019:
Штамп времени: 1 сентября 2019.
Пост в Твиттере >>
Расширение: .scl
Составное расширение: .id_******_email_enc2@dr.com_.scl
Примеры зашифрованных файлов:
desert.jpg.id_c209caae5e988ade_email_enc2@dr.com_.scl
desktop background.png.id_c23482ca5e988ade_email_enc2@dr.com_.scl
Записки: HELP_DECRYPT_YOUR_FILES.HTML
HELP_DECRYPT_YOUR_FILES.TXT
Email: enc2@dr.com
Результаты анализов: VT + HA + VMR
=== БЛОК ССЫЛОК и СПАСИБОК = BLOCK OF LINKS AND THANKS ===
Read to links:
Tweet on Twitter
ID Ransomware (ID as CryptoMix)
Write-up, Topic of Support
*
Thanks:
Michael Gillespie
Andrew Ivanov (author)
*
to the victims who sent the samples
© Amigo-A (Andrew Ivanov): All blog articles.