Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sliver 源码阅读 #3

Closed
s3cst4rs opened this issue Nov 26, 2022 · 11 comments
Closed

sliver 源码阅读 #3

s3cst4rs opened this issue Nov 26, 2022 · 11 comments
Assignees

Comments

@s3cst4rs
Copy link
Owner

sliver 是一款完全使用 go 语言开发的跨平台 c2 框架,并且实现了非常多的功能,有很高的学习价值

源项目地址
https://github.com/BishopFox/sliver

Review 项目地址
https://github.com/l4stchance/sliver-review

@s3cst4rs
Copy link
Owner Author

主要分为两部分
熟悉整体框架,学习框架设计上的优点,也方便后续阅读
重点理功能点部分的具体实现

@s3cst4rs
Copy link
Owner Author

对于 Review 中产生的笔记,参考这里
https://github.com/l4stchance/sliver/blob/Review/Sliver-Review.md

@s3cst4rs
Copy link
Owner Author

先从Implant入手,专注功能流程方面的内容
先看了起始判断和地址选择的部分,不得不说,自定义属性确实很高,而且在代码的实现上也非常惊艳,有太多值得学习的地方了

@s3cst4rs
Copy link
Owner Author

httpbeacon的第一次上线请求
image

@s3cst4rs
Copy link
Owner Author

s3cst4rs commented Dec 3, 2022

httpbeacon 的基本执行流程
sliver

@s3cst4rs
Copy link
Owner Author

s3cst4rs commented Dec 3, 2022

后续重点先放在功能点上,关注一下功能的具体实现

@s3cst4rs
Copy link
Owner Author

s3cst4rs commented Dec 8, 2022

很多功能都是同样的流程,调用正常的进程注入
这里有一个问题,它在调用进程注入的时候,是让用户自己选择一个启动的进程,那么会出现一个情况,如果当前进程并不会驻留一段时间的话,那么进程在失去 susspended 状态的时候会立即退出,从而导致 shellcode 并没有执行
所以在选择进程的时候还是非常重要的

具体可以看这一次的 Commit
l4stchance/sliver@a217a6c

@s3cst4rs
Copy link
Owner Author

Sliver 中的 MakeToken 功能的处理是存在问题的,详细的情况可以看笔记描述

在之前的笔记当中也已经提到过相对应的内容,可以参照之前的笔记记录MakeToken

目前已经提交PR,等待维护者合并

@s3cst4rs
Copy link
Owner Author

Server 开始
l4stchance/sliver@8e5c8c5

@s3cst4rs
Copy link
Owner Author

Server的基本处理与动态编译,动态编译只是调用了一下CMD完成编译
l4stchance/sliver@3c677f7

@s3cst4rs
Copy link
Owner Author

后续可能更多的是关注一下协议方面的内容

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

No branches or pull requests

2 participants