写了一个 SRE 调试工具,类似一个小木马

这篇具有很好参考价值的文章主要介绍了写了一个 SRE 调试工具,类似一个小木马。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

远程操作机器有时会比较麻烦,我写了一个工具,主要功能:1.远程执行命令 2.上传下载文件。是一个 Web Server,通过 HTTP 请求来操作机器,类似一个小木马。当然,因为是一个 Web Server,所以也提供了打印 HTTP 请求的能力,方便调试 Webhook 场景。下面给大家演示一下。

安装

工具代码放到 Github 上了,感兴趣的朋友可以瞧瞧,没多少行代码。也给大家编译好了,下载地址在这里:https://github.com/UlricQin/gohttpd/releases。提供 x86 和 arm64 的 Linux 版本,下载后解压就可以直接运行。

# 我是 arm64 架构的机器,所以下载 arm64 版本,下载完了解压缩
tar zxvf gohttpd-v0.3-linux-arm64.tar.gz

# 进入解压缩出来的目录里
cd gohttpd-v0.3-linux-arm64

# 运行 gohttpd,监听 8888 端口,认证密码是 Pa55word
./gohttpd 8888 Pa55word

如上,运行 gohttpd 时,需要传入两个参数,第一个是要监听的端口号,第二个是认证密码。这里我传入的是 8888 和 Pa55word。我这个机器的 IP 是 10.211.55.3,下面给大家演示一下。

操作演示

命令执行

我先通过这个 HTTP Server 在目标机器执行个命令:

ulric@ulric-flashcat ~ % curl 10.211.55.3:8888/run -d 'hostname;uptime'
Authorization is blank

报错了,说 Authorization 为空,这是缺少认证信息,认证信息就是 Pa55word,所以我再加上认证信息(放 header 里):

ulric@ulric-flashcat ~ % curl -H "Authorization: Pa55word" 10.211.55.3:8888/run -d 'hostname;uptime'
ubuntu-linux-22-04-desktop
 11:01:56 up 2 days, 16:42,  3 users,  load average: 0.29, 0.15, 0.11

OK,正常输出了机器名和 uptime 信息。当然,通过 -d 的方式可能不方便编辑,尤其是在换行的时候,我们可以使用 postman 这类工具,更方便的编辑请求体。比如

下载文件

刚才命令执行的时候,调用的接口(URL路径)是 /run,我们不加任何 URL 路径,直接请求,就可以列出当前目录下的文件,比如:

点击对应的文件,就可以下载了。如果你在 Linux 根目录下运行 gohttpd,那么你就可以下载整个系统的文件了,所以要注意安全。

上传文件

上传文件的 URL 是 /upload,使用浏览器打开,如图:

可以选择多个文件,上传,完事去首页看看,就可以看到上传的文件了。

接口调试

有些产品对外提供 Webhook 能力,但是我想之后 Webhook 的具体内容格式,这时候可以用这个工具来打印 HTTP 请求,比如:

ulric@ulric-flashcat ~ % curl 10.211.55.3:8888/request
r.RequestURI: /request
r.URL.Path: /request
r.URL.Host:
r.URL.Hostname():
r.Method: GET
r.URL.Scheme:
gohttpd pid: 842085

Headers:
User-Agent: curl/8.4.0
Accept: */*

Payload:

ulric@ulric-flashcat ~ % curl 10.211.55.3:8888/request -d 'hello world'
r.RequestURI: /request
r.URL.Path: /request
r.URL.Host:
r.URL.Hostname():
r.Method: POST
r.URL.Scheme:
gohttpd pid: 842085

Headers:
User-Agent: curl/8.4.0
Accept: */*
Content-Length: 11
Content-Type: application/x-www-form-urlencoded

Payload:
hello world

如上,通过 /request 接口,可以打印出 HTTP 请求的详细信息,包括 URL、Method、Headers、Payload 等。但是这个内容是通过 HTTP Response 直接返回的。不方便调试 Webhook 场景,Webhook 场景可以使用 /print 接口,别的服务调用 /print 接口的时候,就会在 gohttpd 的控制台打印出 HTTP 请求的详细信息。

比如我 curl 一下 /print

ulric@ulric-flashcat ~ % curl 10.211.55.3:8888/print -d 'hello world'
ok

然后到启动 gohttpd 的控制台看看:

root@ubuntu-linux-22-04-desktop:~/download/gohttpd-v0.2-linux-arm64# ./gohttpd 8888 Pa55word
2024/04/10 11:00:04 main.go:211: listening http on 8888
r.RequestURI: /print
r.URL.Path: /print
r.URL.Host:
r.URL.Hostname():
r.Method: POST
r.URL.Scheme:
gohttpd pid: 842085

Headers:
Accept: */*
Content-Length: 11
Content-Type: application/x-www-form-urlencoded
User-Agent: curl/8.4.0

Payload:
hello world

对于调试 Webhook 的场景,这就比较方便了。

如上知识,希望对你有帮助。文末请允许我插播一个小广告。本人创业两年了,我们公司的业务如下,如果你有这方面的需求,欢迎联系我们做产品技术交流哈。

🎯 关于快猫星云

快猫星云是一家云原生智能运维科技公司,由知名开源项目“夜莺(Nightingale)”的核心开发团队组成,创始团队均来⾃阿⾥、百度、滴滴等互联⽹公司。夜莺是一款开源云原生监控工具,是中国计算机学会接受捐赠并托管的第一个开源项目,在GitHub上有超过8000颗星,迭代发布了超过100多个版本,上百位社区贡献者,是国内领先的开源可观测性解决方案。

快猫星云以开源夜莺为内核打造的“Flashcat平台”,是国内顶级互联⽹公司可观测性实践的产品化落地,致力于让可观测性技术更好的服务企业,保障服务稳定性。Flashcat 平台具有以下特点:

  • 统一采集:采用插件化思路,内置集成上百种采集插件,服务器、网络设备、中间件、数据库、应用、业务,均可监控,开箱即用。
  • 统一告警:支持几十种数据源对接,收集各类监控系统的告警事件,进行统一的告警收敛、降噪、排班、认领、升级、协同,大幅提升告警处理效率。
  • 统一观测:将 Metrics、Logs、Traces、Events、Profiling 等多种可观测性数据融会贯通,并预置行业最佳实践,既提供全局业务视角、技术视角的驾驶舱,也提供层层下钻的故障定位能力,有效缩短故障发现和定位时间。

快猫星云,让可观测性数据更有价值!
https://flashcat.cloud/文章来源地址https://www.toymoban.com/news/detail-855089.html

到了这里,关于写了一个 SRE 调试工具,类似一个小木马的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 用JavaFX写了一个简易的管理系统

    自学一下Java FX ,用Java代码写一个简易的客户端。 本文项目是Maven项目,使用了Java17,以及mysql。 代码仓库:https://gitee.com/fengsoshuai/java-fx-management-system-demo/tree/dev-with-db/ 代码仓库(前后端分离版本) : https://gitee.com/fengsoshuai/javafx-management-front-back-demo 建议代码可以直接看前后

    2024年01月25日
    浏览(35)
  • vue+elementui写了一个图书管理系统

    用vue+elementui写了一个图书管理系统 转载自公号:java大师 目前是指一个纯前端的展示,后端还在开发中,前端接口是通过json-server模拟的 用到的技术栈 1、vue.js 2、elementui 3、json-server 4、axios 5、vue-router 动态路由 目录结构 1、components文件夹是封装的通用的Mytable和Myform及Nav等,

    2024年02月04日
    浏览(87)
  • 用Python写了一个「拥抱梅西」的小游戏

    大家好,欢迎来到 Crossin的编程教室 !  最近有个小伙儿因为在比赛中冲进场地拥抱梅西而出名了。  这种行为当然不可取,他也为此付出了代价。但要说我没有一丁点羡慕和佩服那是不可能的。 于是,我也尬蹭一下这个热点,用Python写了一个「拥抱梅西」的小游戏。 游戏

    2024年02月09日
    浏览(38)
  • 我写了一个用来刷题的微信小程序

    目录 土著刷题是一个什么工具? 为什么要做土著刷题这样一个产品? 当前版本的规划 版本效果 土著刷题微信小程序,一款免费的刷题小程序,提供多种刷题模式,可以分享题库给小伙伴一起刷,针对特定题库的用户群体。 对于为什么要开发这个刷题小程序,这可以说是一

    2024年02月10日
    浏览(50)
  • 手动自己写了一个波场(Tron)本地网页版钱包

    最近由于项目需要,需要给每个用户分配一个充币地址,考虑到钱包安全性和方便管理,于是自己动手写了一个本地网页版的钱包,附上源代码跟大家交流下。 Github 源码地址 钱包和项目是分离的,项目通过鉴权访问钱包的接口,主要实现了以下功能: 1、可以导入助记词、

    2023年04月15日
    浏览(49)
  • 用auto.js写了一个抖音点赞、关注的脚本

    最近一直在找工作,有天就遇到一个要求使用auto.js写一些自动化控件的公司(我严重怀疑它其实就想白嫖。。。),于是就有了这个小demo... 因为没用过抖音,也不懂auto.js,所以看了一些教学视频,所以写成这个样子了。。。(有点烂,就单纯记录一下自己的学习过程,au

    2024年02月13日
    浏览(41)
  • 最前端|注意看!我用代码写了一个会动的3D地球

    目录 一、文章背景 二、实现方式 (一)方案 (二)实现细则 三、总结 在我们负责的某个项目中有一个需求,其展馆的可视化大屏首屏需要 3D 地球作为载体,来展示各国贸易额的信息,因此催生了 3D 地球的需求。需求的侧重点更多在于美观,动态方面,对于数据展示层面

    2024年02月09日
    浏览(48)
  • 用Python写了一个下载网站所有内容的软件,可见即可下

    前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 今天我们分享一个用Python写下载视频+弹幕+评论的代码。 顺便把这些写成GUI,把这些功能放到一起让朋友用起来更方便~ 环境介绍: python 3.8 pycharm 2022专业版 免费使用教程文末名片获取 python资料、源码、教程福利皆: 点击此处跳转文末

    2024年02月09日
    浏览(52)
  • 【老师见打系列】:我只是写了一个自动回复讨论的脚本~

    专栏 Python零基础入门篇💥 Python网络蜘蛛💥 Python数据分析 Django基础入门宝典💥 小玩意儿💥 Web前端学习 tkinter学习笔记 Excel自动化处理 写这篇文章只是想证明一下: 本博主还在呼吸😇 📢许久未更,甚是想更呐~ 这段时间生活中充斥着各种事情,感觉每天都在忙忙碌碌,偶

    2024年02月21日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包