本期给大家带来Linux的权限维持手段
在 Linux 系统环境下,权限维持(维权)是网络攻击流程中的关键环节。当攻击者成功获取系统访问权限后,会运用多种技术手段确保对目标系统的长期控制,避免被安全人员察觉并清除。
文章目录
权限维持-linux权限维持-隐藏
黑客隐藏的隐藏的文件 完整路径md5
Linux系统中,隐藏文件一般会在前面加
.
,并且如果只是用ls
命令是看不出来的,只有使用ls -a
或者ls -al
才能显示隐藏文件;
因此如果我们要找隐藏文件的话,可以使用find命令进行查询:
find / -name ".*"
然后结果会显示一大串的命令,我们仔细观察,发现绝大多数文件除了在/sys目录下,还有着几个不同的结果:
在这里要重点介绍一下/tmp目录:
一般来说,/tmp 是系统默认的临时文件目录,通常所有用户都有读写权限(不论是root还是普通用户),所以攻击者比较喜欢将shell或者脚本等文件放在此处;
既然如此,那我们就进入到/tmp/.temp
目录下查看他有什么东西:
主要发现了里面有着1.py以及一个名为shell.py的文件,所以我们就分别查看里面的内容有哪些:
作用:这是一个典型的Linux 反向 shell 木马
(1)通过两次fork()将程序转换为后台守护进程,脱离终端控制。
(2)将标准输入 / 输出 / 错误重定向到/dev/null,避免被用户察觉。
(3)建立反向shell,连接到指定 IP(114.114.114.121)的 9999 端口
(4)连接成功后,将 shell 的输入 / 输出 / 错误通过 socket 转发给远程服务器,实现远程控制
(5)使用无限循环和异常处理,确保即使连接中断也会不断重试
然后再查看一下shell.py:
这段代码同样是一个Python 反向 shell 程序,其核心功能是创建一个与远程服务器的连接,并将本地 shell 的输入 / 输出重定向到该连接,使攻击者能够远程执行命令。与前一个示例相比,它的结构更简洁,但原理完全相同。
因此尝试一下文件的路径:
完整路径:/tmp/.temp/libprocesshider/1.py
或者:/tmp/.temp/libprocesshider/shell.py
最终发现是1.py的路径为flag:
flag{109ccb5768c70638e24fb46ee7957e37}
–
–
黑客隐藏的文件反弹shell的ip+端口 {ip:port}
根据上面文件的的分析,我们得到了两个IP以及端口,所以说都尝试一下即可:
flag{114.114.114.121:9999}
–
–
黑客提权所用的命令 完整路径的md5 flag{md5}
首先,我们要了解Linux中黑客常用的提权手段:
-
后门木马: 为了攻击者下次进入主机时重新获得访问权限
- SSH 后门:创建一个新的用户,配置 SSH 公钥认证,避免密码登录被检测到。
- 反弹 Shell:通过反弹 Shell连接到攻击者的机器,获取远程控制权限。
- Web Shell:通过 Web Shell(如 PHP 代码嵌入)远程控制 Web 服务器。
-
持久化:通常情况下会使用定时任务来重新上线shell
- crontab 定时任务:在 crontab 中添加恶意任务,定期执行恶意程序。
-
文件隐藏:攻击者会将恶意文件和工具隐藏在系统中,以防被发现。
- 隐藏目录:使用隐藏目录(如 . 开头的目录),将恶意文件放置其中。
-
SUID提权:攻击者会赋予程序
s
权限,让执行暂时拥有属主的权限- 以
/bin/bash
为例,当攻击者以root身份赋予程序s
权限时,那么即便是普通用户jack执行这个文件,那么他此时的身份将会是root而不是jack,这就实现了越权。
- 以
因此,根据题目,我们可以查看查看系统日志/etc/passwd和/bin/bash
和文件变化记录:
find / -perm -u=s -type f 2>/dev/null
通常情况下,例如
vim
cp
mv
find
bash
等命令都是拥有s
权限,那么我们如何知道攻击者修改了哪个命令呢?
很简单,因为我开了一台自己的Linux机器来进行对照,发现没有find
这个命令,所以我认为它被攻击者进行了提权:
而我们还可以利用命令进行检查 SUID 文件的权限
ls -l /usr/bin/find
可以发现靶机的find命令是拥有s
权限的;
根据题目让我们提交完整路径的md5;完整路径:/usr/bin/find
所以结果显示为:
flag{7fd5884f493f4aaf96abee286ee04120}
–
–
黑客尝试注入恶意代码的工具完整路径md5
首先我们要了解常见的注入工具有哪些:
-
SQLMap
描述:一款开源自动化 SQL 注入工具,可探测并利用 SQL 注入漏洞以接管数据库服务端。
用法:适用于 MySQL、PostgreSQL、Oracle、Microsoft SQL Server 等多类数据库的 SQL 注入攻击场景。 -
Burp Suite
描述:面向 Web 应用安全测试的综合性工具,内置 SQL 注入检测功能模块。
用法:支持手动与自动化方式开展 SQL 注入漏洞测试工作。 -
Metasploit
描述:渗透测试框架体系,集成 SQL 注入、命令注入等多类型漏洞利用模块。
用法:广泛应用于渗透测试全流程及漏洞攻击利用场景。 -
Cymothoa
描述:进程注入型后门工具,可将用户空间代码植入至运行中的进程环境。
用法:常用于在被攻陷系统中实现恶意代码的持久化驻留与隐蔽运行。
由于在Linux系统中,通常将 /opt 目录用于存放可选的、占用空间较大的第三方软件和应用程序,所以我们进入到/opt目录下进行查看:
果然发现了一个可疑文件,因此:
完整路径:/opt/.cymothoa-1-beta/cymothoa
所以最终结果为:
flag{087c267368ece4fcf422ff733b51aed9}
–
–
使用命令运行 ./x.xx 执行该文件 将查询的 Exec****** 值 作为flag提交 flag{/xxx/xxx/xxx}
什么是 Exec 值?
当你在 Linux 系统中运行一个程序(比如题目中的 ./x.xx,即之前找到的 1.py 文件)时,系统会为这个程序创建一个 进程(类似程序的 “运行实例”)。每个进程都会默默记录自己是从哪个文件启动的,这个文件的完整路径 就是 Exec 值。
例如:d rwx r-x r-x
中:
(1)d
表示目录
(2)rwx
表示所属用户的权限 user
(3)r-x
表示所属组的权限 group
(4)r-x
表示其他用户的权限 other
所以,我们进入到之前的1.py文件目录下:
并使用命令去执行这个程序:python3 /tmp/.temp/libprocesshider/1.py
然后我们就可以新开一个窗口,使用命令netstat -antlp去查看相应的进程情况:
发现程序已经正则执行;
因为题目让我们提交的是 Exec的 值,所以使用命令ls -la进行查询;
命令 ls -la /usr/bin/python3
用于列出 /usr/bin/python3
文件的详细信息,其中包括文件权限、所有者、大小、创建日期等。
因此最后的结果为:
flag{/usr/bin/python3.4}