木马分析初体验

某安卓木马分析报告

拿到木马样本之后先拖入安卓模拟器运行尝试

123

可以发现安装完成之后图标遍消失了,可以先放入哈勃进行初步分析

123

可以发现接受了开机广播,大致可以猜测是开机自动启动,先进入mainactivity分析

123

可以看到在service的receiver注册了一个广播接收器,去配置清单文件里查看下这个是监听的什么广播

123

可以发现是监听了开机启动的广播,并且接受到广播之后开启服务,至此实现了开机自动启动功能,对配置清单分析的差不多了可以去看mainactivity了

123

可以发现在启动了一个服务之后把mainactivity修改成了COMPONENT_ENABLED_STATE_DISABLED,实现了桌面图标不可见,现在去分析那个service。

123

可以发现在经过十分简单的判断之后启动了mainservice这个服务
123

可以发现这个服务十分长=_=

123

先去看service的oncreate方法,可以发现通过windowmanager申请了一个popupwindow也就是悬浮穿,并设置了悬浮窗的坐标,然后可以看到向这个悬浮窗里填充了webview,可以看下这个webview,进入restorewebview方法查看,可以发现设置了背景颜色使其不可视

123

通过WebView.addJavascriptInterface(Object object, String name)为WebView添加可供JS调用的本地方法,
可以找到这个名字里带有jsinterface的类,然后就可以发现webview里调用的是showhtml方法,进入查看,似乎涉及到安卓Java的handle机制,不是很懂就去了解了下,这里由于showHTML的函数传入的参数是url,通过对url包含的内容的检测发送不同的消息,这里面Message就是handle要发送的消息对象,这里取第一例进行具体分析,由于jd-gui里面的函数不是很看得懂,于是切换成jeb继续分析,假定进入第一个条件语句分析吧

123

可以发现返回的Acction代码为10028,直接搜索这个操作码试试

123

可以发现会直接跳转到label200,直接跟进去看看,通过判断条件url里包含验证码之类的字眼,以及进行的logout和remove操作可以推测出一旦返回的url中出现了验证码之类的api则立即放弃操作并且退出登录

123

别的一些操作也可以类似的分析出来,不过似乎很多函数名都已经很清晰的说出了他们的功能

123

可以很轻松的理解他的动能,登录facebook,添加好友,观看youtobe视频之类的操作,并且这些操作都是通过对currentaction的赋值实现的,在这些操作里随便找一个进行分析

123

无非都是通过webview去加载那些facebook提供的对应的操作api进行的,基本上的恶意功能函数名都写的明明白白的,主要是针对facebook的,注册啊,加好友之类的,还有一个观看YouTube视频刷流量的函数,可以发现要刷的url存在这个taskdata里,觉得有点可疑,看下交叉引用,

123

可以发现几乎所有的恶意行为都有它的身影,深入分析下,发现这个task负责给恶意行为提供参数,比如注册时用户名之类的来自它,很多地方url也来自它

123

恶意行为分析的差不多了,不小心看到了这里好像有个加密类,好奇的点进去,应该是实现了cbc模式的aes加密,但是似乎没有在别处被调用=_=

123

第一次接触这种东西,写的有点烂,请多多指教,感觉自己开发还是太弱,不过今天补了不少