1
2
利用CreateProcess调用出 cmd 之后,如果直接将 cmd 的参数放进 api 中,则会被 EDR 进行记录,可以使用管道通信的形式去传递参数。可以使用runas命令提权或者是关闭防火墙命令。
2.1
进程间通信(IPC)机制
进程间通信(IPC)机制是指同一台计算机的不同进程之间或网络上不同计算机进程之间的通信。Windows 下的方法包括邮槽(Mailslot)、管道(Pipes)、事件(Events)、文件映射(FileMapping)等。
管道分有名和匿名两种。
命名管道:可以在同台机器的不同进程间以及不同机器上的不同进程之间进行双向通信。
匿名管道:只在父子进程之间或者一个进程的两个子进程之间进行通信,它是单向的。
管道操作标示符是 HANDLE,利用这个机制,直接使用ReadFile or WriteFile就可以实现了
若 2 个进程无“父子“关系,且子进程又未继承父进程资源,则这俩进程无法使用 Pipe 传递数据。
2.2
过程
创建两个匿名管道,一个读一个写。
创造一个子进程,将输入输出句柄重定向到管道
用ReadFile()和WriteFile()读写管道实现进程的通信
2.3
例子
利用程序创建 cmd 子进程执行一个弹出计算器的命令。
#include<stdio.h>
#include<Windows.h>
#include<winnt.h>
#include <wchar.h>
intmain()
{
// frist create two pipe, because the anonymous pipe is unidirectional
HANDLE hReadPipe;
HANDLE hWritePipe;
SECURITY_ATTRIBUTES sa ={0};
sa.nLength =sizeof(SECURITY_ATTRIBUTES);
sa.bInheritHandle = TRUE;
if(!CreatePipe(&hReadPipe,&hWritePipe,&sa,0))
{
printf("CreatePipe Failed %d\n",GetLastError());
return1;
}
HANDLE hReadPipe1;
HANDLE hWritePipe1;
if(!CreatePipe(&hReadPipe1,&hWritePipe1,&sa,0))
{
printf("CreatePipe1 Failed %d\n",GetLastError());
return1;
}
// create a process cmd
STARTUPINFO si ={0};
PROCESS_INFORMATION pi ={0};
ZeroMemory(&si,sizeof(si));
ZeroMemory(&pi,sizeof(pi));
//relocaltion stdout,
// Turn the input of the child process into a read pipe
si.hStdInput = hReadPipe;
// Turn the output of the child process into a write pipe
si.hStdOutput = hWritePipe1;
si.hStdError = hWritePipe1;
si.dwFlags = STARTF_USESTDHANDLES;
LPTSTR program =L"C:\\Windows\\System32\\cmd.exe";
if(!CreateProcessW(program,NULL,0,0, TRUE,0,0,0,&si,&pi))
{
printf("CreateProcess Failed %d\n",GetLastError());
return1;
}
// send command to cmd.exe, cmd.exe stop by "\r\n"
char lpBuffer[]="calc\r\n";
if(!WriteFile(hWritePipe, lpBuffer,(DWORD)strlen(lpBuffer)+1,NULL,0))
{
printf("WriteFile Failed %d\n",GetLastError());
return1;
}
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
return0;
}
上述代码执行之后可以调用 cmd 弹出一个 calc。还可以通过设置
CreateProcessW(program, NULL, 0, 0, TRUE, 0, 0, 0, &si, &pi)的第六个参数来设置新进程不可见
3
帮会领域:专注于 APT 框架、渗透测试、红蓝对抗等领域
3.1
帮会内容覆盖
挖洞技巧和小 tips
挖洞实战项目案例内部分享
应急响应案例内部分享
不定时分享高质量小工具
可加入内部群进行攻防技术交流
团队内部师傅开发的小工具,优先体验新版本,还可和师傅提出 bug 获得奖励哦
有机会进入团队,成为正式成员,获得更多好处
私域信息安全图书馆
活动价格:15/月卡、39.9/季卡
9.9/月 20/季 79/永久
活动结束后将恢复原价
3.2
帮会私域信安图书馆
建立信息安全图书馆也有一段时间了,为大家准备了大量的资料,想学的时候,翻开那些你感兴趣的领域的资料看一看只要你需要,我们会尽可能的帮你寻找你感兴趣或者需要的资料。