帮我分析一下里面有什么服务 特别是http服务怎么访问
Creado el: 9 de abril de 2026
Respondido usando GPT-5.4 Thinking por Chat01
Creado el: 9 de abril de 2026
Respondido usando GPT-5.4 Thinking por Chat01
帮我分析一下里面有什么服务 特别是http服务怎么访问
我拆开看了,这个包本质上是一套 ARM64 的接收端/靶场服务,启动入口是:
start_receiver_service.sh:注册成 systemd 服务 receiver.servicereceiver.sh:实际执行 nohup ./des_daemon_linux_arm64 -f daemon.yamldes_daemon_linux_arm64,再由它拉起其他组件按文件和配置看,主要有这几类:
守护进程
des_daemon_linux_arm64daemon.yaml 里配置了它会管理:
des_server_linux_arm64des_agent_linux_arm64des_invoke_linux_arm64des_simulator_linux_arm64主服务(对外核心)
des_server_linux_arm64server.yaml 里明确有:
port_grpc: 18888port_http: 5678port_tcp: 5679port_udp: 5679Agent 服务
des_agent_linux_arm64agent.yaml:
port: 10001illegal_port: 10002StartListeningPutDataTransport/transportHttp/transportFtp/transportGit/transportSftp/transportSmbRunRansomwareLineGenerateRansomLetterEncryptFile非法/Invoke 服务
des_invoke_linux_arm64illegal_port: 10002agentillegal 相关能力,和非常规执行/攻击模拟有关模拟器
des_simulator_linux_arm64httpRunftpRungitRunsftpRunsmbRun启动脚本里会先检查这些端口是否被占用:
567718888567856791000110002对应关系大致是:
5677:daemon18888:server gRPC5678:server HTTP5679:server TCP/UDP10001:agent10002:invoke / illegal最明确的是:
5678所以访问方式优先试:
http://127.0.0.1:5678http://<服务器IP>:5678因为这是 ARM64 二进制,当前环境没法直接运行动态探测,所以路由只能做静态分析;目前能明确识别出的 HTTP 路径有:
GET /api/testGET /remote_files/download/:id另外二进制里还出现了:
/index.html说明它很可能还带静态页面或前端入口。
先在目标机器上执行:
bashcurl -i http://127.0.0.1:5678/ curl -i http://127.0.0.1:5678/index.html curl -i http://127.0.0.1:5678/api/test
如果要远程访问:
bashcurl -i http://<服务器IP>:5678/ curl -i http://<服务器IP>:5678/api/test
如果下载接口要试:
bashcurl -O http://127.0.0.1:5678/remote_files/download/<id>
二进制里还发现了这类 URL 模板:
http://127.0.0.1:%d/alioth/%s/%shttp://127.0.0.1:%d/alioth/%s/%s/inject这说明系统里可能还会动态拉起一个本地 HTTP 子服务(看起来和 Java web service / inject / memory shell 相关),而且:
127.0.0.1 本机访问所以它不是主入口,主入口还是 5678。
直接跑这几条最有效:
bashsystemctl status receiver.service ss -lntup | egrep '5677|5678|5679|18888|10001|10002' curl -i http://127.0.0.1:5678/ curl -i http://127.0.0.1:5678/api/test journalctl -u receiver.service -f
如果你愿意,我下一步可以继续帮你做两件事里的任意一个:
des_server_linux_arm64,尽量把 HTTP API 路由表再抠出来2
继续往下抠后,des_server_linux_arm64 的 主 HTTP 服务已经能比较明确地还原出来了。
这套主 HTTP 服务是 Gin 起的,监听配置来自 server.yaml:
port_http: 5678而且从 initRouter() 静态反汇编看,明确注册的主路由只有 3 个:
GET /api/testGET /api/remote_files/download/:idPOST /tasks/sync所以主访问入口就是:
bashhttp://127.0.0.1:5678 http://<服务器IP>:5678
之前我根据字符串粗扫提到过 /remote_files/download/:id 和 /index.html。
这次是按 initRouter() 真正把路由表抠出来的,结果是:
/api/remote_files/download/:id/ 或 /index.html 路由注册Static() / StaticFile() / NoRoute() 这类静态页面注册所以:
index.html 更像是普通字符串噪音,不能当成实际可访问页面GET /api/test这是最适合先拿来探活的一个。
访问:
bashcurl -i http://127.0.0.1:5678/api/test
或者远程:
bashcurl -i http://<服务器IP>:5678/api/test
我的判断:
/api 分组下的测试/探测接口Server.Test但它具体是否需要额外参数,这次静态分析还没完全还原干净。
所以最实用的方式是先直接请求一次,看服务返回什么报错或结果。
GET /api/remote_files/download/:id这个是 文件下载接口,路径参数 id 是必须的。
访问格式:
bashcurl -i http://127.0.0.1:5678/api/remote_files/download/<id>
直接下载附件:
bashcurl -OJ http://127.0.0.1:5678/api/remote_files/download/<id>
这个接口我能看得更清楚一点:
Server.GetRemoteFileid 去本地 sqlite 记录里查文件gin.Context.FileAttachment(...) 回文件所以它不是随便传文件名,而是要传 数据库里的 remote file 记录 ID
也就是说:
id,这个接口才有意义id,直接访问通常会报“找不到”之类的错误POST /tasks/sync这个接口不是普通浏览器点一下就能用的那种。
访问形式是:
bashcurl -X POST http://127.0.0.1:5678/tasks/sync
但我不建议你把它当普通 JSON API 去试,因为从 syncTask() 的反汇编看,它的处理流程是:
这说明它更像一个 内部同步回调接口,不是公开给人工直接调的简单 HTTP 接口。
所以这个接口的实际访问条件是:
换句话说,POST /tasks/sync 虽然是 HTTP 服务,但不是“拿 curl 发个普通 JSON”就能成功访问。
这包里我没看到 nginx / apache / caddy / docker compose 之类反向代理配置。
所以这套包本身的设计更像:
5678通常可以这样确认:
bashss -lntp | grep 5678
如果你看到类似:
bash0.0.0.0:5678
或者
bash[::]:5678
那就是对外可访问。
如果只看到:
bash127.0.0.1:5678
那就只能本机访问,远程得走端口转发或改监听方式。
GET /api/testGET /api/remote_files/download/:idPOST /tasks/syncbashsystemctl status receiver.service ss -lntp | egrep '5678|18888|5677|10001|10002' curl -i http://127.0.0.1:5678/api/test curl -i http://127.0.0.1:5678/api/remote_files/download/1 journalctl -u receiver.service -f
除了主 Gin HTTP 服务,我在二进制里还看到了 另一个本地 HTTP 子服务迹象,形如:
http://127.0.0.1:%d/alioth/%s/%shttp://127.0.0.1:%d/alioth/%s/%s/inject这个更像某个子模块动态拉起来的 本地回环 HTTP 服务,端口是动态的,而且默认走 127.0.0.1。
它不是主入口,主入口还是 5678 这个 Gin 服务。
如果你要,我下一步可以继续帮你把 /api/test 的请求/响应结构 也往下抠一层。