首页 > 其他分享 >简单几行实现sliver上线提醒

简单几行实现sliver上线提醒

时间:2023-12-21 17:35:31浏览次数:28  
标签:上线 err currentTime 微信 shortID 几行 beacon session sliver

准备魔改sliver去掉一些特征什么的,这里记录一下最简单实现上线消息通过企业微信机器人提醒的方式,这很简单也有很多不足还需要接着改的

protobuf中对消息Beacon和Session的定义如下,要显示的几个信息都是string类型的。

image

最好这里另外写一个消息类型(NotifyMsg),将要显示的消息字段放进去,然后这里Session和Beacon的相应部分就直接写NotifyMsg notify = 1; 这样写发送函数的时候,传参就可以直接写msg *clientpb.NotifyMsg了。不过又要重新生成proto文件了,简单一点就是直接一个个传了:

func sendMsgToBot(id, name, ip, hostname, arch, os, checkIn string) {}

机器人转发消息,用到的是一个封装好了的api:electricbubble/wecom-bot-api: 企业微信-群机器人-API (githubfast.com),这里面给了很详细的文档且支持markdown的形式发送,不过微信中不支持显示这样的类型:

8cd4bdfba07bb937b4c3b1173bb4470

所以就用最简单的text,按照他的demo来就行,如下:

func sendMsgToBot(id, name, ip, hostname, arch, os, checkIn string) {
	botKey := "8ad64........"  //这里填机器人的key 
	bot := botApi.NewWeComBot(botKey)
	message := fmt.Sprintf(
		" Karplin上线提醒\n 标识序号: %s\n 机器名称: %s\n 机器IP: %s\n 用户名: %s\n 架构: %s\n 系统版本: %s\n 上线时间: %s\n 请注意查收",
		id, name, ip, hostname, arch, os, checkIn)

	_ = bot.PushTextMessage(message)
}

机器人的key移动端和pc端都能看,自己在群聊里面建一个机器人就能看到:

image

针对session和beacon上线提醒的两个位置:

		case consts.SessionOpenedEvent:
			session := event.Session
			currentTime := time.Now().Format(time.RFC1123)
			shortID := strings.Split(session.ID, "-")[0]
			con.PrintEventInfof("Session %s %s - %s (%s) - %s/%s - %v",
				shortID, session.Name, session.RemoteAddress, session.Hostname, session.OS, session.Arch, currentTime)

			// Prelude Operator
			if prelude.ImplantMapper != nil {
				err = prelude.ImplantMapper.AddImplant(session, nil)
				if err != nil {
					con.PrintErrorf("Could not add session to Operator: %s", err)
				}
			}

			go sendMsgToBot(shortID, session.Name, session.RemoteAddress, session.Hostname, session.Arch, session.OS, currentTime)

// beacon上线
case consts.BeaconRegisteredEvent:
			beacon := &clientpb.Beacon{}
			proto.Unmarshal(event.Data, beacon)
			currentTime := time.Now().Format(time.RFC1123)
			shortID := strings.Split(beacon.ID, "-")[0]
			con.PrintEventInfof("Beacon %s %s - %s (%s) - %s/%s - %v",
				shortID, beacon.Name, beacon.RemoteAddress, beacon.Hostname, beacon.OS, beacon.Arch, currentTime)

			// Prelude Operator
			if prelude.ImplantMapper != nil {
				err = prelude.ImplantMapper.AddImplant(beacon, func(taskID string, cb func(*clientpb.BeaconTask)) {
					con.AddBeaconCallback(taskID, cb)
				})
				if err != nil {
					con.PrintEventErrorf("Could not add beacon to Operator: %s", err)
				}
			}
			echoed = true

			go sendMsgToBot(shortID, beacon.Name, beacon.RemoteAddress, beacon.Hostname, beacon.Arch, beacon.OS, currentTime)

编译完运行,开启监听后就生成session的,懒得再开一个win10就直接宿主机执行了

image

然后此时会收到企业微信机器人的提醒了,企业微信绑定了个人的微信的话,就像下面状态栏那里微信也会同时有提醒的。

901e2c1ac85833fb3ef8307ea804ca5

sliver这边也能看到信息。

image

后续这个还有很多能改进的,除了上面说的新增一个消息类型来提高复用,还可以扩展钉钉、飞书那些平台的。机器人的key也最好是从配置文件里面读,这篇只是抛砖引玉,后续再改进

标签:上线,err,currentTime,微信,shortID,几行,beacon,session,sliver
From: https://www.cnblogs.com/bktown/p/reminder-1mq7bs.html

相关文章

  • Sliver 二开准备
    cs被杀麻了,最近打算看看一下sliver的源码进行一下二开,这篇是记录遇到的一些问题编译sliverWindows下官方说用MingW,但是我自己用他带的make不行,​​‍下载make搜了一下,记录编译make的过程:直接传送门下载需要的版本,比如这里下4.4的。​​‍编译make下载解压之后进入......
  • 国标GB28181安防视频平台LiteCVR接入国标设备时,注册不上线的原因排查
    随着社会经济的快速发展和科技的持续进步,安防监控行业在近年来取得了显著的进步。从城市安全到家庭监控,从工厂管理系统到交通管理,安防监控系统已经深入到各个领域,为人们的生活和工作提供了强大的安全保障。有用户在使用视频监控安防平台LiteCVR时,出现了国标GB28181设备注册不上线的......
  • 业务协同零边界|省级数字政府正式上线!
     近日,由魅视科技深度参与建设的某省数字政府运营指挥中心正式上线运营!该省数字政府以“146N”架构,推动技术融合、业务融合、数据融合,破除跨层级跨地域、跨系统、跨部门、跨业务堵点和壁垒,打造企业和群众办事环节最简、材料最少、时限最短、费用最小、便利度最优、满意度最高的数字......
  • 开源不挣钱?这个项目上线半年月入超 30w
    很兴奋的告诉大家,Sealos自从6月份上线以来,仅半年时间注册用户已经突破7万,月收入超过30w,本文来向大家介绍我们是怎么做开源商业化的。每月平均增速超过40%,而且这些收入大部分来自用户充值,或者是通过开源社区主动找到我们付费。商业化的重要性作为一家创业公司做开源,我们除......
  • 谷歌 | Imagen 2 正式推出、Gemini Pro 开放、Duet AI 上线...
    【信息来源:GoogleCloud。CloudAce是GoogleCloud全球战略合作伙伴。】上周,谷歌发布的Gemini引起了业界的广泛关注。紧接着,本周谷歌继续在人工智能领域展现其创新实力,在其云平台上推出了一系列备受瞩目的AI大模型。这些模型不仅满足了开发者和企业的广泛需求,还为特定行业......
  • 记录--代码刚上线,页面就白屏了
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前言白屏一直是一个前端开发谈之变色的问题。“什么?我的页面刚上线就白屏了,是报错了,还是兼容性问题,还是性能问题,多刷新几次就好了,用户网络不行吧。”简单来说,白屏就是用户打开前端页面什么有没有。这是一个很重......
  • 防患于未然,上线前测试环节怎么能少?
    软件测试作为一种重要的软件开发流程,被许多企业所重视,它旨在通过对软件进行全面的测试,确保软件产品质量,满足用户需求。软件测试不仅仅是简单的检测,而是一个系统性的、有组织的测试过程,它包括许多不同步骤,其中每一步都要进行精细的测试。一、测试的重要性1、确保软件质量软......
  • 业务协同零边界|省级数字政府正式上线!
     近日,由魅视科技深度参与建设的某省数字政府运营指挥中心正式上线运营!该省数字政府以“146N”架构,推动技术融合、业务融合、数据融合,破除跨层级跨地域、跨系统、跨部门、跨业务堵点和壁垒,打造企业和群众办事环节最简、材料最少、时限最短、费用最小、便利度最优、满意度最高的......
  • aruba瘦AP重置与上线问题
    如果AP为瘦AP时,会从控制器自动下载镜像,AP之前做过设置的话,需要通过console重置APconsole线连接,看到Hit<Enter>tostopautoboot: 时按enter键清除os0分区apboot>clearos0清除os1分区apboot>clearos1还原出厂设置apboot>factory_reset 保存apboot>saveenv重启apb......
  • webrtc应用上线cpu偏高的问题排查
    现象 如上图,上线后服务全量使用的cpu统计明显增高,大概在50%左右. 排查比对上一稳定版本和本次版本代码diff,无异常比对依赖lib版本,无异常使用perf和FlameGraph生成火焰图比对两个版本差异.发现几个问题:有些调用栈不同,缺少一些中间函数调用栈;新版本在音频......