0x00 前言
在项目中很多情况下,目标会有网络访问限制,比如白名单之类的,那么这种情况下常规的通信方式就不起作用,在这种情况下大家的通信方式可能就要变为通过白名单网站进行中转上线。
目前大致有OneDrive、OSS、COS、csdn等等,其实只需要一个上传下载功能即可,然后发现百度网盘支持API,所以可以看看百度网盘是否可以用来作为一个中转控制的载体。实际开发的时候其实最好使用CS的External C2功能或者通过UDRL中Hook来实现,这只是一个学习demo,作为一个Stage0使用还凑合,并且存在BUG,需要你自己添加错误处理等。
0x01 百度网盘文档
接入授权
开发者应用在获取用户的授权码 Code 之后,通过 Code 换取 Access Token 凭证。
Access Token 有效期30天,过期后支持刷新,刷新后的 Access Token 有效期仍为 30 天,刷新Access Token请按需刷新,不需要不停的刷新。
刷新请求,如果API返回失败,旧的refresh_token会失效,此时需要重新发起授权请求,获取新的 Access Token、refresh_token,而不是使用旧的 refresh_token 循环再发起刷新请求。
refresh_token 只支持使用一次,refresh_token 使用后失效,下次刷新 Access Token 时需要使用上一次刷新请求响应中的 refresh_token
具体参照文档自己获取即可,需要注意Access Token需要自己定期刷新
0x02 实现
因为通信由网盘中转,所以我们只需要实现一个操作客户端以及植入体即可。
使用MFC实现一个简单的客户端:
植入体http请求库偷懒用了一个httplib不支持win7以下,剩下的就是常规的获取一些信息
大致逻辑:
操作端也差不多,不断地刷新文件列表
具体细节时间久远我忘了,去看代码吧,代码我已上传至星球(经过3天后才可查看)。
星球马上破1000人,将要触发下次涨价,经过考虑本周即使超过1000人,还是保留¥259原价,下周涨价至¥299
原文始发于微信公众号(黑客在思考):实现一个通过百度网盘中转的C2
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论