1、前言:
回家办事,家中老式电脑显着老旧,平日不在家,父母就用电脑斗斗地主,看看电影,每次回来都会给他们拆开主机清清灰,打开系统清清垃圾、打打补丁。
发现居然变成了XP系统?转念一想,应该是电脑坏了去了电脑店重装了系统....并且给装的XP。顺手下个电脑清理,还扫出了病毒?来吧,拿起U盘拷贝下来,仍到虚拟机,而后写一篇态度不严谨的文章吧。ps:虽然这篇文章不是来分析这个样本的
2、静态分析:
①PEiD来探探,发现么壳么加密......,以下所示:
图片一:查壳
②拉入火绒里面让他跑一跑,看一看样本行为,以下所示:
图片二:行为分析
③观察后,既没有镜像劫持(自启动行为),有没有与服务器连接cc行为,只是删除了自己文件,没有对注册表或者系统进行修改读写,误判了?
逆向的时候看过一些BorlandDelphi的程序,病毒是没有交互的(隐蔽性)是没有所谓的窗口,必定会隐藏关键字符串与数据,因此不能够用算法分析的方式去解析。那么意味分析Borland Delphi入口点,说真的之前真没从入口点分析过(MFC的病毒常常入口点分析- -),拉入IDA以下所示:
图片三:流程图
④如上图所示,整个程序存活周期,他们对于整个程序起着什么样的做用呢?以下所示:算法
FunctionName | Use |
---|---|
InitExe | .rsrc中读取资源drm,调用StartExe来InitRoutineTable读取全部函数(FunctionTable),执行Routine。 |
CreateForm | 建立Form,初始化Delphi的主要函数,第二个参数edx指向TCustomForm虚函数表指针,构造程序的_cls_Forms_TCustomForm主form |
Run | 通常都是AddExitProc把form析构添加到退出函数执行流程,下面就是HandleMessage消息循环。 |
Halt0 | 当dwReasin为0时候调用ExitProcess结束 |
⑤对上述函数有了认知,咱们就知道这些库函数做用及是否咱们须要,咱们就能够很快找到消息循环,而且找到了一些有意思的函数,以下所示:
图片四:消息回调
⑥根据样本行为好像没有那么复杂的操做,咱们须要借助神奇Dark工具来辅助分析,以下所示:
图片五:Dark分析
⑦有价值的东西还真是很多,在FormCreate中发现了一些有价值的代码,以下所示:
图片六:FormCreate
⑧代码说的明明白白,当前样本运行系统是windows7,因此说会进入到函数sub_466C24(),先来看看函数中的代码,以下所示:
图片七:版本匹配
⑨看到这里,你应该明白行为分析中的行为,在代码层面的逻辑及实现目的。这是一款支持低版本系统如xp,windows2000等的病毒......,至于定时器下断,没有被执行,咱们拉入微步云,线上分析看一看,以下所示:
图片八:线上分析
⑩与咱们的分析是结果基本是同样的,那么究竟是不是病毒仍是被误杀呢?咱们再来分析一下若是是xp系统会如何运行(若是你想动态调试,其实不用部署xp环境,能够经过修改关键跳,实现定向函数执行),静态分析以下:
图片九:第三方部署
⑪这样看来断定危害级别的话是构建不成病毒,那么回调函数中为何有HOOK等模块呢?很简单这个应该是第三方工具安装XP系过程当中一些预热或环境部署,固然拉入XP中运行后发现了生成了快捷连接与注册表操做,咱们来看一下:
图片十:XP环境下测试
⑫上述都是什么?A0000002.ini这个文件就是GHOST部署,网吧、学校教室每次重启都会被还原系统,那时候好像就是用这种文件配置的,而那些快捷方式指向文件mplayer2.exe是Windows Media Player相关程序,用于打开、播放和管理媒体文件,且线上扫描所有安全经过。
⑬综合各因素,他不是一个病毒,只是有一些敏感操做被误杀成了病毒,咱们来看一下线上扫描结果,也就是最开始有删除自身A0000001.exe程序,以下所示:
图片十一:各大厂商启发式查杀
✍关于病毒概念我的一些思考:
启发式只是一个概念性的话题,包括智能机器引擎,算法深度扫描启发等等,用来预防未知或者新变种病毒种类,有效的识别那么还未被发现的威胁。
更简单来讲如何识别下载文件或者运行是有恶意行为,这个文件被执行起来如何断定他所做所为是安全的。各大厂商八仙过海各显神通,经过PE结构,文件大小,MD五、SHA1/256,扫描汇编、识别恶意字符串、识别敏感API等等,把一些已知的病毒家族、变种特征保存在数据库,这就是所谓的特征码,几个特征码能够辨别一个病毒家族,一样也能够概括一类病毒家族特征。
那么也许是后来发现愈来愈多的家族病毒、勒索、挖矿出现防不甚防,即便有了启发式,经过多项检查,符合其中的一项或者多项把你断定成病毒,强壳直接带壳查杀.....,因此加密混淆是现代病毒基本功,如何隐蔽不被杀毒发现更是一门艺术。
系统相对是灵活的,因此病毒也相对是灵活的,这是由于杀毒软件防护能力越强,单凭一门语言或者手段是没办法将病毒经过漏洞或者挂马等植入到系统并成功执行,因此最近几年APT概念愈来愈活跃、Xbash这种恶意软件也是愈来愈成熟,病毒(恶意行为)从原始pc一路过关斩将,杀到了移动网络、嵌入式、物联网、人工智能等,这也许就是的本质,人性。
也曾本身写过一些云查杀,其实就是上述说的启发式,读取文件扫描一些特征码来断定是否有恶意行为,那么稍做混淆或加密,若是你没有完善的逻辑或更多的特征去识别,意味着他将过掉你的防线。病毒能够拿杀毒软件进行测试,过掉杀毒软件,而杀毒软件不能拿未知的病毒进行特征码测试查杀,其实安全公司一直都处于被动,也就是防护状态,兵来将挡,而没办法主动出击,由于你跟不知道你出击的对象,下一次将会是一个全新的变种出如今你面前。
时间久了,固然要改进,因此要追踪病毒的来源、目的等,经过cc交互或者通信,去琢磨目的及那么背后的东西,经过ip、网站、邮箱、电话等去溯源分析,找到源头,不至于太被动,也要慢慢的尝试主动出击,有点像反调试与反反调试,有可能更为复杂。大多数安全公司有在作这块的工做,掌握一线情报才能主动权。
身为一个安全研究人员,固然如今职位划分的愈来愈清晰。样本分析,漏洞挖掘,竞品分析等等,其实本质都是人与人对抗,智慧与智慧对抗,保持一颗谦虚学习的心,踏实务实才能在这条路上走的更长远。数据库