Knife
Executive summary — Knife is an Easy Linux box built around two very clean pieces of offensive security: the server exposes a development build of PHP (8.1.0-dev) carrying a real backdoor planted during a supply-chain compromise of the PHP project's own infrastructure, giving RCE with a single crafted HTTP header; and privilege escalation abuses
knife(Chef's Ruby CLI), authorized via passwordlesssudo, whoseexecsubcommand runs arbitrary Ruby as root. Path: PHP backdoor → direct RCE as james → sudo knife exec → root.
| Platform | Hack The Box |
| Operating system | Linux |
| Difficulty | Easy |
| Status | Retired |
| Target IP | 10.129.23.191 |
Attack map
[80] Apache · PHP 8.1.0-dev (backdoored development build)
│ source backdoor → «User-Agentt: zerodium ...» header runs PHP code
▼
[SHELL] james (direct RCE, no www-data hop) → user.txt
│ sudo -l → (root) NOPASSWD: /usr/bin/knife
▼
[ROOT] knife exec (arbitrary Ruby script) as root → root.txt
1. Reconnaissance
Before anything else, we run a full port scan rather than the default top-1000: on CTF boxes the interesting service is often on a high port, and limiting the scan can blind us to half the attack surface.
nmap -p- --open -n -T5 -v 10.129.23.191
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.2
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.41 ((Ubuntu))
Minimal surface: only SSH (22) and HTTP (80). The web page itself shows nothing remarkable at first glance — the clue is hiding in the response headers, so we inspect them with Burp Suite or the browser's DevTools:
X-Powered-By: PHP/8.1.0-dev
The golden clue:
8.1.0-devis not a stable release, it's an internal development build of PHP — it should never reach a production server. And that specific version happens to carry one of the most talked-about backdoors in PHP's recent history.
Resumen ejecutivo — Knife es un Linux Easy construido alrededor de dos piezas muy limpias de seguridad ofensiva: el servidor expone una versión de desarrollo de PHP (8.1.0-dev) con un backdoor real introducido durante un compromiso de la cadena de suministro del propio proyecto PHP, que da RCE con una simple cabecera HTTP manipulada; y la escalada de privilegios abusa de
knife(la CLI de Chef, escrita en Ruby) autorizada porsudosin contraseña, cuyo subcomandoexeccorre Ruby arbitrario como root. Recorrido: backdoor PHP → RCE directo como james → sudo knife exec → root.
| Plataforma | Hack The Box |
| Sistema operativo | Linux |
| Dificultad | Easy |
| Estado | Retired |
| IP objetivo | 10.129.23.191 |
Mapa del ataque
[80] Apache · PHP 8.1.0-dev (versión de desarrollo backdooreada)
│ backdoor en el código → cabecera «User-Agentt: zerodium ...» ejecuta código PHP
▼
[SHELL] james (RCE directo, sin salto por www-data) → user.txt
│ sudo -l → (root) NOPASSWD: /usr/bin/knife
▼
[ROOT] knife exec (script Ruby arbitrario) como root → root.txt
1. Reconocimiento
Antes de tocar nada más lanzamos un escaneo completo de puertos (no solo el top-1000 por defecto): en máquinas CTF es habitual que el servicio interesante esté en un puerto alto, y limitarse al escaneo rápido puede dejarnos ciegos ante la mitad del ataque.
nmap -p- --open -n -T5 -v 10.129.23.191
PORT STATE SERVICE REASON VERSION
22/tcp open ssh syn-ack ttl 63 OpenSSH 8.2p1 Ubuntu 4ubuntu0.2
80/tcp open http syn-ack ttl 63 Apache httpd 2.4.41 ((Ubuntu))
Superficie mínima: solo SSH (22) y HTTP (80). La página web en sí no muestra nada llamativo a simple vista — la pista está escondida en las cabeceras de respuesta, así que las inspeccionamos con Burp Suite o las DevTools del navegador:
X-Powered-By: PHP/8.1.0-dev
La pista de oro:
8.1.0-devno es una versión estable, es una build de desarrollo interna de PHP — nunca debería llegar a un servidor de producción. Y da la casualidad de que esa versión concreta arrastra uno de los backdoors más comentados en la historia reciente de PHP.
This content is Root Access only. Everything else on the site — the free tier, the whole public library — stays open.
See Root Access plansNo account? Create one free then upgrade from your console.
Este contenido es solo para Root Access. Todo lo demás del sitio — el nivel gratuito, toda la biblioteca pública — sigue abierto.
Ver planes de Root Access¿Sin cuenta? Crea una gratis y luego mejora desde tu consola.