熟悉Mac/Linux的用户经常使用命令行。如果遇到系统异常,比如CPU占用率飙升,他们往往会使用top命令来定位是哪个程序出现了异常。找到相关程序后,由于很多用户没有安全背景或对逆向工程知之甚少,无法分析该程序做了什么,也不敢白白杀掉该程序。而如果文件夹下无缘无故多了一些不是自己创建的程序,这时候也不敢白删。针对这种情况,本文介绍几个技巧,让您快速判断程序是否为恶意样本。1、使用file命令快速识别文件类型。如图,使用file命令识别名为bashd的文件。从结果可以看出,这个文件是Linux2.6.18内核平台下的ELF64位可执行文件。从上面的信息可以判断出这个文件是一个可执行文件,而从文件名bashd,脑海中可能闪过的第一个概念就是这个程序是一个bash守护进程,那么是不是?我们继续分析。2、使用xxd命令查看文件的16进制内容如图。使用xxd命令显示文件的十六进制格式。从文件头的前几个字节可以看出该文件是一个ELF格式的可执行文件。当然,为了避免满屏的十六进制,这里使用head命令值显示head十六进制。如果你对这个可执行文件的其他行为感兴趣,也可以通过上图中的grep+字段搜索你感兴趣的内容。如图所示,我们找到了socket.h和curl_socket,可以猜测这个程序可能有网络行为,使用curl。3.使用strings命令快速识别文件。strings命令的大致作用是,熟悉Mac/Linux的用户都知道这个命令是在对象或二进制文件中查找可打印的字符串。字符串是4个或更多可打印字符的任意序列,以换行符或空字符终止。恶意文件通常包含可以显示此程序行为的字符串。通过该命令可以快速显示文件可能包含的行为。如图所示,我们可以看到字符串中包含了几个curlAPI,说明程序使用了curl接口,这也印证了我们上一节的判断。当屏幕继续下拉的时候,我们找到了程序的帮助命令。从以上信息我们可以看出这个程序是一个挖矿程序,版本号是cpuminer2.3.3,编译时间是2017年7月12日,至此我们基本可以确定这个程序是一个恶意程序,它的主要功能是挖矿。如果想继续深挖资料,可以通过百度等搜索平台搜索关键字cpuminer,即可找到程序源码,这里是源码地址https://github.com/pooler/cpuminer,请勿用于非法用途。4.使用readelf或greadelf命令继续深入挖掘文件信息。判断文件为ELF文件格式后,我们可以使用readelf或greadelf命令查看该文件更详细的信息。这里我们以Mac平台的greadelf为例。如图所示,通过命令greadelf-abashd可以显示文件更详细的信息,通过命令可以更全面的了解程序的功能。通过以上Mac/Linux下的四个简单命令,我们可以快速判断一个文件是否为恶意样本,同时也可以找到恶意样本的源代码,并成功查杀。这期间,我们没有使用太多高深的技术,也没有使用逆向工程知识,但是我们很快就解决了问题。当然,如果程序使用了更高级的技术,上面的命令并不能得到很多信息,还需要更深入的分析。我们将在以后的文章中介绍分析方法。*本文作者:极客在线,本文属于FreeBuf原创打赏计划,未经许可禁止转载。
