0x00 前言
本文详细的对此类远控软件目录信息特征的获取方法做了探究,希望可以帮助到有相关侦察&比赛需求的师傅,同时本文很有可能存在纰漏,有疑问的师傅可以加我微信:liyi19960723 进行讨论,本文仅作学习使用,切莫用作非法
0x01 非默认路径如何找到文件夹
桌面存在图标
【右键】——【打开文件所在位置】——【打开log
文件夹】
桌面不存在图标
【任务栏搜索向日葵】——【打开文件位置】——【打开log
文件夹】
0x02 如何找到日志中的IP信息
环境介绍
远程控制一般是通过远控软件进行的,类似的还有Todesk、TeamViewer、Splashtop、QQ等,遇到此类问题,首先就需要找到操作日志,并且读懂日志,这里以向日葵为例,向日葵的日志一般保存在日葵安装目录下C:Program FilesOraySunLoginSunloginClientlog
路径中名为sunlogin_service.时间-数字.log
的日志文件
我先来讲一下我的测试环境,两台Windows10主机,一台物理机一台虚拟机(腾讯云),软件均为V12.6.0.49095
官网最新版,注意!我测试用的都是完整版,简约版只有被控功能,但日志无区别,实验过程中仅进行了正常连接通讯,没有传递文件等,腾讯云机器做被控机,物理机做主控机
探究方法
这里我用的还是QQ微信钉钉等语音功能获取真实IP相同的实验方法,即通过IP反推取证特征
一. 根据已知信息,找到正确的目录文件
想获取到有效的文件首先是找到对的路径,这里我们通过较短时间的测试拿到了三条目录,但是真正包含有效信息的只有sunlogin_service.时间-数字.log
结构的文件,即第二条
二. 确定有效时间
时间以【创建时间】判断最为准确,一般文件浏览 编辑都会对【修改日期】产生影响,所以【右键】——【属性】,即可查询【创建时间】
三. 通过 IP 反推特征点
我的腾讯云主机IP是 81.7x.xx.x
,物理机IP是 111.xx.2xx.xxx
打开 sunlogin_service.时间-数字.log
,搜索我这里用的是Vscode,使用 notepad++ 或直接使用 TXT 打开都是一样的
这里我在主控机目录通过被控机真实IP搜索出了8项相关的目录(在真实环境中会更多),其中部分项也包含主控机真实IP
[29528] 2022-08-28 12:23:55.938 - Info - [P2PHelper] receive peer local ip 10.x.xx.x:15xxx, public ip 81.7x.xx.x:15xxx
[29528] 2022-08-28 12:23:55.938 - Info - [P2PStream] EstablishP2P local ip 111.xx.2xx.xxx:20xxx/192.168.0.103:160xx ==> peer ip 81.7x.xx.x:15xxx/10.x.xx.x:15xxx
[29528] 2022-08-28 12:23:55.938 - Info - [udpwrapper] attempt to prepare P2P connection via: 60.1xx.xxx.xx:41xx, (local)192.168.0.103:16xxx|(public)111.xx.2xx.xxx:20xxx ==> (local)10.x.xx.x:15xxx|(public)81.xx.xx.x:15xxx
[29528] 2022-08-28 12:23:55.938 - Info - [udpwrapper] P2PHolePunch 81.7x.xx.x:15xxx
[6668] 2022-08-28 12:23:56.537 - Info - [udpwrapper] receive p2p hello message from 81.7x.xx.x:15xxx, stop hole punch thread @1417
[6668] 2022-08-28 12:23:56.568 - Info - [udp] OnConnectRes with 81.7x.xx.x:15xxx, mode 2, peer straight send no
[29528] 2022-08-28 12:23:56.569 - Info - [P2PStream] connected (by udp) 0.0.0.0:160xx <--> 81.7x.xx.x:15xxx
由此我们可知在主控机目录中,[P2PHelper]
[P2PStream]
[udpwrapper]
[udp]
中是包含真实 IP信息的,因此我们在真实环境中可搜索上述四项来获取主控端和被控端的真实 IP 和端口,知道了这些特征点,我们用相同时间段的被控机目录做验证
我们可以看到在搜索[udpwrapper]
和[udp]
时,分别都搜索到了主控机真实IP,那么这里就存在一个问题,[P2PHelper]
和 [P2PStream]
在被控机目录中并不适用
那么还需要探究被控机的特征点,还是用相同的方法,在被控机目录通过主控机真实IP搜索出了5项相关的目录(在真实环境中会更多)
[5668] 2022-08-28 12:23:56.448 - Info - [P2PAccepter] [60.xx.xxx.xx:41xx] receive P2P request (public 111.xx.2xx.xxx:20xxx local 192.168.0.1031xxxx), delay r:32/c:40
[5668] 2022-08-28 12:23:56.448 - Info - [udpwrapper] P2PHolePunch 111.xx.2xx.xxx:20xxx
[3452] 2022-08-28 12:23:57.111 - Info - [udp] support straight send in peer : no 111.xx.2xx.xxx:20xxx CConnection::OnConnectRequest
[3452] 2022-08-28 12:23:57.149 - Info - [udp] OnConnectAck with 111.xx.2xx.xxx:20xxx, mode 2, peer straight send no
[5668] 2022-08-28 12:23:58.025 - Info - [service][UdpAcceptor] new acceptor 111.xx.2xx.xxx:20xxx-->0.0.0.0:15xxx
由这些目录我们获取了两个新的特征点 [P2PAccepter]
和 [service]
,至此所有的特点便找齐了
探究结果
来总结一下,[P2PHelper]
[P2PStream]
只对主控机有效,[P2PAccepter]
[service]
只对被控机有效,[udpwrapper]
[udp]
对双端都有效,关系如下图所示
在实战中,运用此特征点还可以分析在这次通讯中此主机所承担的“角色”
0x03 手机号提取
打开向日葵远程控制软件界面,点击左侧【升级】,即可跳转到官网获取全部手机号
但同时这种方法是具有局限性的,无法对【微信登录】用户进行提取,如无法解除客户端也可以在日志文件中搜索 account
,同样可以获取到除【微信登录】外的客户端手机号信息(我没有成功,放一张别人的图)
0x04 参考资料
-
固话GOIP取证解疑与向日葵日志分析 —— 明不可欺 -
向日葵官网 —— https://sunlogin.oray.com/
原文始发于微信公众号(天禧信安):【向日葵远控】本地提取连接日志分析+手机号提取