V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
2le
V2EX  ›  信息安全

ToDesk 存在安全漏洞,可无密码远程控制设备,请谨慎使用

  2le · 2021-07-09 00:46:11 +08:00 · 32168 次点击
这是一个创建于 1268 天前的主题,其中的信息可能已经有所发展或是发生改变。

这个情况是偶然间发现的,具体情况如下:

测试环境

  • 被控端 X 是 MacOS,安装了 ToDesk 官网最新版。
  • 控制端 A 是 MacOS,安装了 ToDesk 官网最新版。(使用密码连接过被控端 X,后正常断开)
  • 控制端 B 是 MacOS,安装了 ToDesk 官网最新版。(从未连接过被控端 X )
  • 控制端 B-VM 是 Win10 虚拟机,运行在 B 上,安装了 ToDesk 官网最新版。(从未连接过被控端 X )
  • 被控端 X 、控制端 A 、控制端 B 都不在一个网络。

测试结果

  • 控制端 B 无需密码即可连接,多次验证都可以。
  • 控制端 B-VM 需要密码才能连接。

测试结果录屏

GIF

题外话

从现象来看连接密码似乎并没有作为端到端加密密钥的一部分(这种设计真的没问题么?),当认证节点出现问题时直接允许控制端与被控端建立连接。当然这些只是我的猜测,并没有深入分析,虽然从事的是信息安全方向,但术业有专攻嘛,就留给感兴趣的小伙伴了~

第 1 条附言  ·  2021-07-09 07:58:07 +08:00

看到评论说可能是 icloud 钥匙串同步 导致的,我这里再补充一些信息:

  • X、A、B 三台设备都登陆了同一个 AppleID
  • X、A、B 三台设备的 ToDesk 均未登录账号
  • 回想了一下昨天的情形,设备 A 连接被控端 X 时,每次都是需要输入密码的(连接成功后,断开)。为谨慎起见,我用设备 B 连接 B-VM 又做了几次测试,可以确定:第一次连接成功后,下一次连接仍需要密码。
第 2 条附言  ·  2021-07-09 12:09:41 +08:00

本来发这个贴也是为了探讨出现这个问题的可能性,结果倒好,直接一上来扣帽子。 既然如此,都是搞信息安全的,我就不说废话了。

本人对以下内容负责:

  • 视频未经过剪辑,使用的是 MacOS 自带的录屏功能(MOV已保存),上传的 GIF 图片使用的是 Ruby 脚本转的。
  • 昨天偶然发现这个情况后,想分析下通信协议,所以对该过程进行了抓包,PCAP 已经保存。
  • 至于“自动保存上次连接记录”这个功能,此前不清楚,看到评论里说了后,我再次确认了设备 A、设备 B、设备B-VM “未开启该功能”。(很遗憾,这部分没能在视频中体现出来)

其他的,既然你们(特指开发者)你们都有数据,建议好好看看相关日志记录。 同理,我也保留追究你们恶意中伤/诬陷我的权利;)

第 3 条附言  ·  2021-07-09 15:04:10 +08:00
再次补充:

首先自我检讨下,之前言语太武断,现修改为 ToDesk "可能"存在安全漏洞。再说明下,我至始至终都没有在设备 B 上输入过连接密码,在这种情况下,不需要密码就可以连接,且多次复现,把这定义为安全漏洞,我不认为有何不妥当。

其次,今天中午又成功复现,吸取了上次"恶心剪辑"的教训,这次录屏过程中把 ToDesk 的设置界面(未开启记录历史连接密码)也进行了展示。
如果有必要的话,我会把新的录屏内容放出 。(CNVD 也行,不太想暴露我的 ID)

最后,正如 V 友说的,日志有时候不一定可信。再次建议开发者"先"好好排查,不管是客户端侧还是服务侧,内部排查完,再来说我是不是在"黑"你们产品。

最后的最后,不要再说我是友商派来的、利益相关啥的,我就是个路人甲,谢谢。
第 4 条附言  ·  2021-07-10 10:10:26 +08:00

看到开发者发的联系信息,我尝试在和对方联系了。后续如果有任何进展,不管是误会还是BUG,我都会附言。

顺便解答某些 V 友的一些质疑:

Q1:为什么在 V 站发帖?

常在 V 站上看到 ToDesk 官方宣传贴,我亦是从 V 站上了解到这款软件并开始使用的,自然认为在此处发帖最容易被官方开发者看到。

Q2:不充分的测试就下结论,想搞个大新闻?

并没有。如果你仔细看过帖子详情,我是尽量用客观的语言描述复现场景以及测试上下文,也是期望尽可能帮助官方发现并定位问题所在的。常规情况下的漏洞测试流程我很清楚,如果一个通用型漏洞,没有稳定的POC,我是不敢妄下结论和提报 CVE 的。但是 ToDesk 的这个情况不太一样,如果只是误会还好,一旦是真的偶发性漏洞,那就是大事。虽然可以在我的某台设备上可以稳定复现,但在其他设备上又无法复现,所以我猜测这个问题的触发一定是比较苛刻的(可能和设备、网络节点、服务器缓存节点等有关),所以发帖到信息安全节点,一方面是给正在使用 ToDesk 的 V 友提个醒注意到这个情况,另一方面也是希望在降低影响面的情况下借百家之长来补充完善相关细节(能不能复现、复现概率有多大等等)。如果我是想搞个大新闻,我有必要在 V 站发么?直白点,我拍个抖音,你猜那些技术水平稍微低一些的用户(非歧视),会怎么评价?会怎么转发?

第 5 条附言  ·  2021-07-10 16:51:09 +08:00

后续:

通过论坛和 ToDesk 团队负责人取得联系后,我们进行了深度测试和本地验证,发现的确是一次乌龙事件。具体事实如下:

  • ToDesk 使用 chacha20 and Poly 1305 端到端加密,不存在无密码就可以连接的情况
  • ToDesk 连接设备时,会优先查找保存的历史连接记录
  • ToDesk 早期版本的“记住历史连接密码”密码是默认勾选的
  • ToDesk 新版本去掉了这个默认选项
  • ToDesk 新版本无法在 UI 下拉菜单列表中显示老版本的数据库连接记录

本次产生乌龙的原因是:我使用了 ToDesk 旧版本(默认配置),在升级新版本后,软件 UI 并没有把老版本的连接记录显示在下拉菜单中,因此产生了误会。

后续及其开发者附言详见: https://v2ex.com/t/788723

170 条回复    2022-11-08 09:41:30 +08:00
1  2  
xysech
    101
xysech  
   2021-07-09 20:45:37 +08:00
看到 18 楼说的,顺手看了下后台,发现 ToDesk 在未运行的状态下,后台还存有两个进程,其中一个还是以 root 用户运行,卸载~

![iShot2021-07-09 20.38.44.png]( https://i.loli.net/2021/07/09/wBSaHGd1mRiycPv.png)
beyondex
    102
beyondex  
   2021-07-09 20:51:35 +08:00
看了上面 ToDesk 工作人员的回复,还觉得也许只是公关人员个人的问题,再看到上面 Livid 的发言,发邮件的人也不靠谱。基本可以完全 pass 掉了。
xeathen
    103
xeathen  
   2021-07-09 21:02:09 +08:00   ❤️ 2
@Livid 我笑了,没有大厂的命,得了大厂的病
shadowfish0
    104
shadowfish0  
   2021-07-09 21:22:49 +08:00
@Livid 看到你这里,决定卸载 todesk,并永不再用。
bigwhite
    105
bigwhite  
   2021-07-09 21:52:42 +08:00
吃波瓜。看到过很多推广 todesk 的文章,一直作为备选远程软件,如今考虑要拉黑了。。。
mosliu
    106
mosliu  
   2021-07-09 22:11:10 +08:00
@Livid 看到大大的回复,终于下决心删掉 Todesk 了。。

公关的素质侧面也反应了公司的价值观。 用这样的东西真不放心。

用了,出了问题就成了要被解决掉的了。
可怜我之前觉得挺好,还帮它推荐了不少人。。
我 too young too simple 了。。
lzsadam
    107
lzsadam  
   2021-07-09 22:57:49 +08:00
这垃圾软件之前直接给我电脑整去维修了,装上就蓝屏。安全模式都没法进,想格式化发现硬盘都被搞坏了
最后寄去换了个硬盘,来回一个多月,影响正常使用,之后就再没敢用了
PUBG98k
    108
PUBG98k  
   2021-07-09 23:10:21 +08:00   ❤️ 1
楼主您好,因为论坛注册需要好长时间后才可以回复,借号上来回个帖
首先很抱歉,今天研发总监看到这个帖子标题的时候觉得对他有很大的打击.所以发言不当.
其次,我们安排了测试员测了好久并没有复现这个问题,也反复查阅了密码验证部分的代码,代码很严谨.
能否留个联系方式我尝试跟您这边进行更深层的测试,已确保安全.安全无小事.
非常感谢
我的联系方式:(base64)
UVExMzAxMzg0Mzg=
labulaka521
    109
labulaka521  
   2021-07-09 23:13:21 +08:00 via iPhone   ❤️ 1
笑死 研发总监来背锅
yitingbai
    110
yitingbai  
   2021-07-09 23:27:10 +08:00   ❤️ 1
@PUBG98k 最好的做法就是别回复了, V2EX 的帖子一天之后就沉下去了, 其实大多数人并不关心 bug 还是非 bug, 微软苹果还天天修 bug 呢, 主要就是个态度问题, 动不动就律师含, 好大的官威. 既然话已经说出去了, 就默默的等待事件平息比较稳妥, 否则越描越黑, 把产品做好, 比说什么都管用, 没人会记得这个帖子
Livid
    111
Livid  
MOD
   2021-07-09 23:27:56 +08:00   ❤️ 19
@PUBG98k 让你们那位姓钟的同事不要再发邮件给我了行不?

北京时间 11:23 PM 还在发邮件要我禁止这个主题的回复。

我们的小破论坛系统没有这种功能。
PUBG98k
    112
PUBG98k  
   2021-07-09 23:32:28 +08:00
@Livid 抱歉,今天下午跟运营提了一嘴,说希望能把这个事协商下降低影响.
没有想到这个点还发邮件.抱歉.我跟他们说下
thisismr2
    113
thisismr2  
   2021-07-09 23:48:05 +08:00 via iPhone
🍉
minami
    114
minami  
   2021-07-10 00:04:38 +08:00
@PUBG98k #108 除了研发总监背锅,能不能解释下前面那个水军账号的问题啊,是不是你们的员工
0o0O0o0O0o
    115
0o0O0o0O0o  
   2021-07-10 00:06:38 +08:00 via iPhone
@yitingbai #110 V2EX 特殊在于这类主题不会被删除,而 google 对于 V2EX 的收录相当快速和优先,搜 “ToDesk 漏洞”已经在第一条,搜 "ToDesk 安全" 也在第一页靠前,所以官方接下来处理这件事的方式方法其实也很重要

@PUBG98k
goodniuniu
    116
goodniuniu  
   2021-07-10 00:09:13 +08:00
关注一下,用户注重安全的需求无可厚非,动辄就是用户抹黑的判断不应是做安全产品厂家应有之态度。
billlee
    117
billlee  
   2021-07-10 00:14:39 +08:00
咦,对非登录用户返回 404 了?
ThreeBody
    118
ThreeBody  
   2021-07-10 00:36:58 +08:00 via Android
看完所有回复,我真的是擦,我还买的 10 年 vip,还推荐公司两位同事买了 VIP,没想到 todesk 你们就是这样对待用户的
DeWjjj
    119
DeWjjj  
   2021-07-10 00:37:17 +08:00
@2le 虚拟机不能作为测试条件,尤其是 mac 的虚拟机,mac 的虚拟机做不到完全隔离,第二不是双网卡设备也不要去测。或者测的时候开启两台虚拟机,避免极大可能是由于残留在了本地运行环境内导致的问题。
而做安全你应该也知道,不防本地。
DeWjjj
    120
DeWjjj  
   2021-07-10 00:39:43 +08:00   ❤️ 1
@2le 测一波大的,然后给他干趴下,还嘴硬。
ThreeBody
    121
ThreeBody  
   2021-07-10 00:43:09 +08:00 via Android
@PUBG98k 请问买了 10 年会员的可以退款吗?
yujiang
    122
yujiang  
   2021-07-10 01:59:04 +08:00 via Android
公关迷惑行为大赏,大晚上还给站长发邮件,真敬业
wunonglin
    123
wunonglin  
   2021-07-10 02:11:48 +08:00
@PUBG98k #112 这已经不是你们产品有没有 bug 的事了,是你们对待用户的态度
c0xt30a
    124
c0xt30a  
   2021-07-10 03:05:34 +08:00
@PUBG98k 前面站长说不会删贴,你们给他的私信里面是不是也威胁要拿起法律武器?
miaomiao888
    125
miaomiao888  
   2021-07-10 05:11:41 +08:00
我比较好奇,ToDesk 自身有提供 BUG 反馈渠道,为什么不优先使用而是到 V2 发工单?
有些问题私下沟通通常很容易解决,而直接发到公共空间讨论很容易产生误解就很难控制了。
xingshu1990
    126
xingshu1990  
   2021-07-10 08:10:59 +08:00
顶一下贴,增加一下帖子权重。
Tink
    127
Tink  
   2021-07-10 08:16:24 +08:00 via Android   ❤️ 1
好像真的不是 bug,感觉没必要这样发帖,会把这产品搞崩的
djs
    128
djs  
   2021-07-10 08:34:40 +08:00 via iPhone
现在的论坛的调调跟国内自媒体差不多
opentrade
    129
opentrade  
   2021-07-10 08:42:44 +08:00
@xysech 这个比较冤,这俩后台服务进程,是为了等待连接请求。安装的时候,应该会有提示安装后台服务。
opentrade
    130
opentrade  
   2021-07-10 08:43:16 +08:00
@djs 一样一样的
Meiyun
    131
Meiyun  
   2021-07-10 08:54:46 +08:00 via Android
@ThreeBody 我感觉挺好用 没啥隐私 半价出不
2le
    132
2le  
OP
   2021-07-10 09:05:49 +08:00
@PUBG98k 👌
aitaii
    133
aitaii  
   2021-07-10 09:23:04 +08:00
google 已经收录了,还是换个方式公关吧
QinZhaoHH
    134
QinZhaoHH  
   2021-07-10 09:38:57 +08:00   ❤️ 1
我从老版本升级上来也是这样,一连就连上了。不过我是在老版本发起连接过,会不会是这个缘故?
breezeFP
    135
breezeFP  
   2021-07-10 09:40:21 +08:00
@aitaii #133 我这在 Google 才能看到
microka
    136
microka  
   2021-07-10 09:48:55 +08:00
@no1xsyzy 你的结论过于武断了吧,楼主说了「控制端 B 从未连接过被控端 X 」,好家伙到了你这就成了:B 以前连接过 X,只是因为勾选了「保存历史连接密码」,所以才出现后续的 B 不需要输入密码也能直接控制 X 。
除非你是质疑楼主以前在控制端 B 输入过密码连接被控端 X
microka
    137
microka  
   2021-07-10 10:11:14 +08:00   ❤️ 6
爬完楼,感觉事情存在两个可能性:一是真如楼主所述,B 从未输过密码连接 X,软件存在严重安全漏洞;二是楼主此前在 B 端输入过密码成功连过 X,同时软件的「保存历史连接密码」选项为开启,因此才会出现后续的无密码直接远控 X 的情况。

就我本人瞎猜,第一种的可能性不太大,可能是第二种情况。(利申:ToDesk Win + iOS 免费用户)

PS. 个人认为,用户发现软件漏洞可优先尝试同官方进行反馈,反馈渠道有官网论坛以及 QQ 群,我本人也在上述渠道反馈过自己使用 ToDesk 中遇到过的问题。
我认为楼主这样发帖会有什么问题呢,就是说你把问题描述了出来,要是大家也不好复现的话,然后发帖人、产品方、以及围观群众各执一词,这样产生的讨论效果是很不理想的。
要是说这个问题在一台全新部署的 Mac 上也能实现无密码直接远控 X,那就是 100%实锤,那这样发帖出来锤 ToDesk 没有任何问题。

说了这么多,并不是想为 ToDesk 产品方在此次的事件处理上做任何维护,只想做个理性讨论,如今网络讨论环境真的不太好,人的情绪很容易被带进去。
opentrade
    138
opentrade  
   2021-07-10 10:17:37 +08:00
@microka 就我写远程桌面程序的经验来看,bug 的可能性不大,这些很早就确定下来了,要是 bug 应该很早就暴漏了。
zushi000
    139
zushi000  
   2021-07-10 10:18:07 +08:00
楼主有点武断了,这种标题小心吃官司啊.现在流行的是在肯定句后面打问号.或者加上可能,疑似之类的词语.todesk 这公关能力也太差了.如果对方是竞争对手,哈哈,你们公关水平真的被吊打啊.
Suuuummer
    140
Suuuummer  
   2021-07-10 10:25:08 +08:00
感觉不是 bug 吧,可能是 mac 问题,可以在 win 上试试能不能复现
luckbbs
    141
luckbbs  
   2021-07-10 10:45:35 +08:00
后面连续这么多质疑楼主的贴子
liprais
    142
liprais  
   2021-07-10 10:47:02 +08:00 via iPhone
@luckbbs 都是那公司的呗,不是水军就是员工,谁拿钱发帖谁心里明白
luckbbs
    143
luckbbs  
   2021-07-10 10:47:20 +08:00
这是另一种公关么
zhengfan2016
    144
zhengfan2016  
   2021-07-10 10:59:57 +08:00
@angkimi 老哥,为什么你的历史回复有 8 成是回复给 todesk 的呢
oisadfo
    145
oisadfo  
   2021-07-10 11:01:49 +08:00
最新版 ,也是有个版本号的。一句 “最新版”,一竿子打死人家后续所有版本。
muzuiget
    146
muzuiget  
   2021-07-10 11:03:11 +08:00
笑死,公关灾难。
2le
    147
2le  
OP
   2021-07-10 11:11:27 +08:00 via Android
@QinZhaoHH 我也是从老版本升级上来的
QinZhaoHH
    148
QinZhaoHH  
   2021-07-10 11:18:29 +08:00
@2le 那你在老版本上有连接过 X 吗。还有我看你说你在三台机器上都登录了同一个 Apple ID,会不会 Apple ID 会有云同步功能,把你其他设备上的数据同步到 B 上了。
microka
    149
microka  
   2021-07-10 11:48:02 +08:00
@2le 所以你 B-Mac 端的 ToDesk 的从老版本升级上来的?此前的老版本有无连接过 X ?
40EaE5uJO3Xt1VVa
    150
40EaE5uJO3Xt1VVa  
   2021-07-10 11:54:39 +08:00   ❤️ 1
把这两个帖子都保存成了 pdf 文档,可以给站外人看看,什么叫 欲盖弥彰?

https://www.cowtransfer.com/s/c72391a31e2b4e

https://www.cowtransfer.com/s/c3f483011ea648
ragnaroks
    151
ragnaroks  
   2021-07-10 11:59:10 +08:00
歪个楼,无公网 IP 的情况下,免费的 anydesk,收费的 teamview,应该满足 95%用户需求了,再没有达到 anydesk 的情况下就贸然收费,非常不合适
dswyzx
    152
dswyzx  
   2021-07-10 12:05:07 +08:00   ❤️ 1
吃瓜看戏. 主题不能禁止回复,可以下沉,move to 水深火热.
我的账号现在这个时间访问水深火热 https://v2ex.com/go/flamewar 是 302 了
站长拱火水平不错.涉事方公关水平堪忧
看戏者基本上一边倒的偏向用户.这很正常.但有人要是给我扣帽子的话请先结个帐
zhw2590582
    153
zhw2590582  
   2021-07-10 12:05:12 +08:00
哈哈,既然没有其他人能复现,感觉不像是 bug,哪怕官方给一个书面一点的回应,都比 @PUBG98k 这个强
yutou527
    154
yutou527  
   2021-07-10 12:05:50 +08:00
神了,本来就不是什么大问题,官方承认下,修复了就得了,硬是闹成这样。
FS1P7dJz
    155
FS1P7dJz  
   2021-07-10 12:33:46 +08:00   ❤️ 3
笑死
终于开始公关了?

1:反馈方式不对,应该直接联系客服 /技术,不应该发帖

2:过于武断,不是 bug,是用户使用不正确


好家伙好家伙
开始浑水摸鱼了
initdrv
    156
initdrv  
   2021-07-10 13:52:25 +08:00
鄙人来个抛砖引玉:

安装电信宽带,然后申请公网 IP,光猫上开启端口转发

自建 DDNS,搭配 FRP,Enable Remote Desktop (Windows) & Turn on Screen Sharing (macOS)

可以满足 自己的远程需求

至于细节,HE.NET 的 DDNS,脚本自动更新 IP

NSSM 将 FRP 注册成自启服务(建议 delayed-auto 类型)( Windows )

Launchctl 将 FRP 设置成自启(建议 plist 放在 /Library/LaunchDaemons 目录下)( macOS )
ThreeBody
    157
ThreeBody  
   2021-07-10 14:38:16 +08:00 via Android
@Meiyun 半价肯定不行
4 月初开通的,4 设备,买的时候 791,你再开个价,合适就卖给你
falcon05
    158
falcon05  
   2021-07-10 14:42:11 +08:00 via iPhone
@initdrv 有公网 ip 了用 frp 做什么
initdrv
    159
initdrv  
   2021-07-10 14:53:30 +08:00
@falcon05 #158

自个用 FRP 来远程机器
429463267
    160
429463267  
   2021-07-10 15:37:19 +08:00
花生壳内网穿透+微软自带远程桌面
DavidLeeMr
    161
DavidLeeMr  
   2021-07-10 15:50:59 +08:00
@zhengfan2016 不,是全部都是给 todesk 的,333 天前的唯一一条还是推荐 todesk 的
irainsoft
    162
irainsoft  
   2021-07-10 16:10:05 +08:00
昨天这贴还没回复时就感觉是有问题的,主楼有这么长过程描述的 bug 基本都是有问题。没想到这公关文直接把这贴带起飞了😂 34 楼的那个官文文风都溢出来了😂简直是教科书级的公关反面案例
miaomiao888
    163
miaomiao888  
   2021-07-10 23:58:31 +08:00
@FS1P7dJz 安全漏洞首先提交厂商,这没毛病吧?如果在厂商解决问题前公开讨论有没可能导致被人恶意利用漏洞?和公关没半毛钱关系。
有些人就是不会动脑还喜欢跟风要么叫嚣卸载要么攻击人品 。。。
no1xsyzy
    164
no1xsyzy  
   2021-07-11 01:41:04 +08:00
@microka 是我没看清……
陷入了一种 赶忙表示『你们太弱了我一眼就看出来了我真聪明』的状态
FS1P7dJz
    165
FS1P7dJz  
   2021-07-11 21:21:29 +08:00
@miaomiao888 没毛病
但是也并没听说这是一个必须的操作
公开讨论也是一个可以的操作

何况 V 站本来就有一个全球工单节点,为什么会有这样的节点老用户应该清楚的很
aircargo
    166
aircargo  
   2021-07-12 16:10:30 +08:00
再见 todesk,已经卸载了……
Telegram
    167
Telegram  
   2021-07-13 16:37:09 +08:00   ❤️ 1
@Tink #127
真的是谣言一张嘴,辟谣跑断腿。
标题上来就是一句存在安全漏洞,最后发现根本是乌龙,最后扯个小瑕疵给自己下台。
作为 todesk 厂商是真的可怜,回复后台登录日志也被骂,这他妈厂商连你登录日志都不能看?又不是看你系统敏感信息了。

站长也是搞笑,就这么一个不存在的漏洞给人家厂商造成多大影响。被各种平台转发,小厂商可能要直接嗝屁了。是怎么说的出口:“软件如果产生了不符合用户预期的行为,用户就会自然产生疑问。这种疑问可能是 bug 也可能是误会。

但是你们不去解决软件的不符合预期的行为,而是这样来对我持续施压,我对你们公司也觉得非常失望。”

要是我就直接发律师函了,诽谤
Masterlover
    168
Masterlover  
   2021-12-14 13:02:39 +08:00
不好意思 来挖个坟 今天我的电脑也被别人连上了 找官方要了日志 持续时间 15 秒 IP 是保加利亚的
thtznet
    169
thtznet  
   2022-03-30 18:29:40 +08:00
ToDesk 的精简版为什么要管理员权限启动?
Tink
    170
Tink  
   2022-11-08 09:41:30 +08:00
@PUBG98k #21 你们 mac 上 4.5 这个版本为什么后台服务持续 100%??搞事情?
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2512 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 26ms · UTC 04:47 · PVG 12:47 · LAX 20:47 · JFK 23:47
Developed with CodeLauncher
♥ Do have faith in what you're doing.