【无标题】

远程调试php底层浮现8.1-dev后门

Docker源码: https://github.com/phith0n/phpsrc-debug-docker/blob/master/backdoor/Dockerfile

下载已经Build好的镜像:
docker pull tuwen/phpsrc-debug:8.1-backdoor

1、运行容器:docker run -it --rm --name debug -p 8080:8080 -p 2222:22 tuwen/phpsrc debug:8.1-backdoor

运行成功的时候会启动ssh同时输出一个私钥:

2、将这个私钥保存至本地文件中,我所保存的是D盘的private.key文件中,同时修改改文件的权限,删除除了administrators和system用户之外的用户

3、再vscode中安装ssh插件

使用插件,添加连接,输入:
ssh -p2222 -i d:/private.key root@192.168.26.140
ssh -------- 用于本地与远程主机之间建立远程连接
-p2222 -------- 强制指定ssh连接的端口为2222(远程端口)
-i d:/private.key -------- 本地将密钥文件存放的路径
root@192.168.26.140 ------- 对端用户名与ip地址
如果连接不上:

复制代码
	1、检查密钥文件的权限,是否只剩两个用户,且开启权限
	2、将虚拟机的远程连接打开了之后,如果要操作虚拟机需要开启另外一个窗口,进行操作,本窗口一直做监听
	3、清理缓存,删除本地C:/用户/.ssh文件夹下的所有文件

连接成功后,打开容器的/usr/src/php目录

给容器下载插件:

在调试页面,点击创建一个launch.json文件,同时给文件中添加信息,

复制代码
{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
 "version": "0.2.0",
    "configurations": [
         {
            "name": "gdb Launch",
            "type": "cppdbg",
            "request": "launch",
            "program": "/usr/local/bin/php",
            "args": ["-S", "0.0.0.0:8080", "-t", "/var/www/html"],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        }
    ]

    
}

在容器中找到文件/ext/zlib/zlib.c在此文件的366行添加断点

在虚拟机上容器内给/var/www/html目录中写入一个index.php

php 复制代码
echo '<?php echo "hello world"; ?>' > /var/www/html/index.php

启动php内的简易web服务器

复制代码
root@ae72395a0ced:/# /usr/local/bin/php -S 0.0.0.0:8080 -t /var/www/html

/usr/local/bin/php ----- 启动简易web服务器
-S 0.0.0.0:8080 ------ (0.0.0.0)监听所有网络接口,(8080)服务器监听地址,如果有别的主机访问此 虚拟机ip:8080 时请求会被PHP内置服务器接收,然后PHP内置服务器从指定目录,找对应文件处理
-t /var/www/html ------ PHP内置服务器指定的网页根目录

在burpsuite上开启拦截,将这条请求发送至repeater

根据调试zlib.c中的代码,得知,添加User-Agentt: zerodiumvar_dump(233*233);即可找到后门

相关推荐
米小虾1 天前
AI Agent 安全实战指南:当智能体开始"不听话",开发者该如何应对?
人工智能·安全·agent
tntxia2 天前
网络安全漏洞修复(一)
安全
泯泷3 天前
第 2 篇:设计第一套字节码:Opcode、Instruction 与 Constant Pool
前端·javascript·安全
泯泷3 天前
第 1 篇:从 1 + 2 开始:亲手写出第一台 JSVM
前端·javascript·安全
Flynt8 天前
npm v12 来了:allowScripts 默认关闭,我的项目差点跑不起来
安全·npm·node.js
冬奇Lab12 天前
Skill 系列(02):Skill 安全风险——三类攻击面的实战测试
人工智能·安全·开源
Aphasia31116 天前
VPN 与内网穿透
安全
Mr_愚人派17 天前
当"Claude"不再是 Claude:一次第三方 API 代理引发的 AI 身份伪造排查实录
人工智能·安全
DaLi Yao17 天前
【无标题】
人工智能·安全
Alsn8617 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker