20199312 2019-2020-2 《网络攻防实践》第9周作业

《网络攻防实践》第8周作业

总体结构

这个作业属于哪个课程 https://edu.cnblogs.com/campus/besti/19attackdefense
这个作业的要求在哪里 https://edu.cnblogs.com/campus/besti/19attackdefense/homework/10635
我在这个课程的目标是 学习网络攻防知识,增强动手实践能力。
这个作业在哪个具体方面帮助我实现目标 学习Linux网络防御知识。
作业正文 见下
参考文献 [1].网络攻防实践-诸葛建伟
[2].http://m.elecfans.com/article/580615.html

1.实践内容

1.恶意代码基础知识

1.1恶意代码的定义和分类

恶意代码:使计算机按照攻击者的意图执行可以达到恶意目标的指令集。
分类:
计算机病毒:通过感染文件或者磁盘引导扇区进行传播,一般勋宇宿主程序被执行或人为交互才能运行。
蠕虫:一般为不需要宿主的单独文件,通过网络传播、自动复制,通常无须人为交互便可传染。
恶意移动代码:从远程主机下载带本地执行的轻量级恶意代码,不需要或仅需要极少的人为干预。代表性的开发工具有:JavaScript、VBscrip、java、
后门:绕过正常的安全控制机制,从而为攻击者提供访问途径。
特洛伊木马:伪装成有用的软件,隐藏起恶意目标,欺骗用户安装执行。
僵尸程序:使用一对多的命令与控制机制组成僵尸网络
内核套件:通过替换或修改内核。

1.2汇编基础

1、传送指令MOV (move)
  指令的汇编格式:MOV DST,SRC
  指令的基本功能:将原操作数(字节或字)传送到目的地址。
  指令支持的寻址方式:目的操作数和源操作数不能同时用存储器寻址方式,这个限制适用于所有指令。
2、进栈指令PUSH (push onto the stack)出栈指令 POP (pop from the stack)
  指令的汇编格式:PUSH SRC ;POP DST
  指令的基本功能:PUSH指令在程序中常用来暂存某些数据,而POP指令又可将这些数据恢复。
  PUSH SRC (SP)《-(SP)-2 ;(SP)《-(SRC)
  POP DST (DST)《-((SP));(SP)《-(SP)
  指令支持的寻址方式:push 和 pop指令不能不能使用立即数寻址方式。
  指令对标志位的影响:PUSH 和 POP指令都不影响标志位。
  指令的特殊要求:PUSH 和 POP指令只能是字操作,因此,存取字数据后,SP的修改必须是+2 或者 -2; POP指令的DST不允许是CS寄存器;
3、交换指令XCHG (exchange)
  指令的汇编格式:XCHG OPR1,OPR2
  指令的基本功能:(OPR1)《-》(OPR2)
4、加法指令ADD (addition)
  指令的汇编格式:add dst,src
  指令的基本功能:(dst)《-(src)+(dst)
5、加1指令INC (increament)
  指令的汇编格式:INC opr
  指令的基本功能:(opr)《-(opr)
  指令支持的寻址方式可以使用除立即数方式外的任何寻址方式
6、减法指令SUB (subtract)
  指令的汇编格式:SUB dst,src
  指令的基本功能:(dst)《-(dst)-(src)
  指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。
7、比较指令CMP (compare)

  指令的汇编格式:CMP opr1,opr2

  指令的基本功能:(opr1)-(opr2),根据相减结果设置条件码,但不回送结果。

  指令支持的寻址方式:他们两个操作数不能同时为存储器寻址。即为除源操作数为立即数的情况外,源操作数和目地操作数必须有一个寄存器寻址方式。

8、无符号数除法DIV (unsigned divide)
  带符号数除法 IDIV (singed divide)
  指令的汇编格式:DIV src IDIV src
9、逻辑或OR (logic or)
  指令的汇编格式:OR dst,src
  指令的基本功能:(dst)《-(dst)或(src)
10、逻辑非NOT (logic not)
  指令的汇编格式:NOT orc
  指令的基本功能:(dst)《-(opr)
11、异或XOR (exclusice or)
  指令的汇编格式:XOR dst,src
  指令的基本功能:(dst)《-(dst)异或(src)

2.实践过程

2.1 分析Crackme程序

用IDA Pro静态或动态分析Crackme1.exe与crackme2.exe,寻找特定的输入使        
其能输出成功信息。

Crackme2.exe

shift+f12进入字符串窗口,发现一些明文字符串

点击其中一个字符进入如下窗口。

右键点击字符串,选择交叉引用列表选项(或直接CTRL+X)进行页面跳转

点击确定,进入以下界面。

点击F5进入反汇编伪代码界面

简单的C语言代码,分析代码知输入"I know the secret"可输出You know how to speak to programs, Mr. Reverse-Engineer
也可以使用OD修改程序,实现输入任意数都可输出成功信息。

2.2分析Crackme2程序

分析过程同上
伪代码如下

int __cdecl main(int argc, const char **argv, const char **envp)
{
  size_t v4; // [esp+0h] [ebp-18h]
  int v5; // [esp+10h] [ebp-8h]
  unsigned int i; // [esp+14h] [ebp-4h]

  _alloca(v4);
  __main();
  if ( argc == 2 )
  {
    if ( !strcmp(*argv, "crackmeplease.exe") )//要求文件名为crackmeplease.exe
    {
      if ( !strcmp(argv[1], "I know the secret") )
      {
        for ( i = 0; i <= 0x21; ++i )
          putchar((char)(byte_403080[i] ^ 0x42));
        puts(Str);
        v5 = 0;
      }
      else
      {
        fprintf((FILE *)&__iob + 2, "Pardon? What did you say?\n");
        v5 = 3;
      }
    }
    else
    {
      fprintf((FILE *)&__iob + 2, "I have an identity problem.\n");
      v5 = 2;
    }
  }
  else
  {
    fprintf((FILE *)&__iob + 2, "I think you are missing something.\n");
    v5 = 1;
  }
  return v5;
}

注释部分,要求文件名为crackmeplease.exe,其他的还是和之前一样,输入"I know the secret"可输出正确信息:byte_403080[i] ^ 0x42

copy crackme.exe crackmeplease.exe


关于那个正确信息,采用脚本重现一下

a = [0x15, 0x27, 0x62, 0x2A, 0x23, 0x34, 0x27, 0x62, 0x23, 0x62, 0x2E,0x2B ,0x36,0x36, 0x2E , 0x27 , 0x62 , 0x31 , 0x27 , 0x21 , 0x30,0x27 , 0x36 , 0x78 , 0x62 , 0x1, 0x2A , 0x2D , 0x21 , 0x2D , 0x2E , 0x23 ,0x36,0x27 ]//dup(36h)的意思是联想两个36h
flag=''
for i in range(len(a)):
    flag+=chr(a[i]^0x42)
print(flag)

分析rada


使用超级巡警进行脱壳

user32.dll
是Windows用户界面相关应用程序接口,用于包括Windows处理,基本用户界面等特性,如创建窗口和发送消息。包含图形界面操作,可能为图形化界面
kernel32.dll
控制着系统的内存管理、数据的输入输出操作和中断处理
打开和操作进程(OpenProcess,OpenCurrentProcess,GetProcessHeap)
对文件进行操作(Readfile,Creatfile,Writefile)
搜索目录下的文件(FindFirstFile,FindLastFile)
使用的vb脚本


该恶意程序调用浏览器访问http://10.10.10.10/rada,然后分别下载和上传某些文件,并且在受害主机C盘目录下创建一个文件夹“C:/RaDa/tmp”来保存其下载的文件。
可能借助这个靶机对特定网段进行DDOS攻击

存在截屏功能。提供了一个网址估计是对这个脚本的介绍,但是页面失效了

1.这个二进制文件摘要信息,包括可以帮助识别同一样本的基本信息

MD5摘要信息:caaa6985a43225a0b3add54f44a0d4c7

32位PE
使用了UPX加壳工具进行了加壳处理
2.这个恶意文件的目的
该程序使得靶机通过http请求连接到攻击机,并受其控制。
3.识别并说明这个二进制文件所具有的不同特性
采用UPX加壳
4.识别并解释这个二进制文件中所采用的防止被分析或逆向工程的技术
该文件采用了UPX加壳,直接逆向无法识别
5.对这个恶意代码样本进行分类(病毒、蠕虫等),并给出你的理由
后门程序,连接远程服务器进行交流,不复制不传播不伪装,故非木马和病毒。

6.给出过去已有的具有相似功能的其他工具
上次的实验msfvenom工具也可以实现功能,不过是针对的linux

7.可能调查出这个二进制文件的开发作者吗?如果可以,在什么样的环境和什么样的限定条件下?

估计是他俩吧

3.学习中遇到的问题及解决

  • 问题1:xp的ida版本太低了
  • 问题1解决方案:安装ida6.6

4.实践总结

恶意程序分析不到位

猜你喜欢

转载自www.cnblogs.com/banpingcu/p/12776668.html