OrganizationShellSeptember 2026

Shell — September 2026

What Telegram channels wrote about Shell in September 2026: 50 posts from 41 channels, collected automatically from public Telegram channels.

50 posts·41 channels

More posts — page 3

50 posts total

👋 Приветствую в мире цифровой безопасности!

Расскажу про eBPF с точки зрения безопасности - не просто трейсинг, а как технология меняет и атаку и защиту.

⏺Почему eBPF интересен в контексте ИБ: программы выполняются прямо в ядре с минимальными накладными расходами, видят всё что происходит в системе до того как это попадает в логи, и при этом не требуют написания kernel module. Это одновременно делает eBPF мощным инструментом защиты и потенциально опасным вектором атаки.

⏺Установка инструментов:

apt install bpfcc-tools bpftrace linux-headers-$(uname -r)

⏺Детект reverse shell в реальном времени - ловим процессы которые перенаправляют stdin/stdout в сокет:

# detect_revshell.py через bpfcc from bcc import BPF

prog = """ #include <uapi/linux/ptrace.h> #include <linux/sched.h>

BPF_PERF_OUTPUT(events);

struct data_t { u32 pid; char comm[16]; int fd; };

int trace_dup2(struct pt_regs *ctx, int oldfd, int newfd) { if (newfd <= 2) { struct data_t data = {}; data.pid = bpf_get_current_pid_tgid() >> 32; bpf_get_current_comm(&data.comm, sizeof(data.comm)); data.fd = oldfd; events.perf_submit(ctx, &data, sizeof(data)); } return 0; } """

b = BPF(text=prog) b.attach_kprobe(event="__x64_sys_dup2", fn_name="trace_dup2")

dup2 вызывается когда процесс перенаправляет файловые дескрипторы - именно это делает каждый reverse shell.

⏺Мониторинг execve с аргументами - ловим запуск подозрительных команд:

bpftrace -e ' tracepoint:syscalls:sys_enter_execve { printf("pid=%d comm=%s file=%s\n", pid, comm, str(args->filename)); }'

⏺Детект privilege escalation - ловим момент когда процесс получает uid=0:

bpftrace -e ' kprobe:commit_creds { $cred = (struct cred *)arg0; if ($cred->uid.val == 0 && uid != 0) { printf("ALERT: %s (pid=%d) escalated to root\n", comm, pid); } }'

Срабатывает в момент изменения credentials - до того как процесс успеет что-то сделать с новыми правами.

⏺XDP для блокировки трафика на скорости wire speed - дропаем пакеты до того как они попадут в сетевой стек:

#include <linux/bpf.h> #include <linux/if_ether.h> #include <linux/ip.h> #include <linux/tcp.h>

SEC("xdp") int block_scanner(struct xdp_md *ctx) { void *data = (void *)(long)ctx->data; void *data_end = (void *)(long)ctx->data_end;

struct ethhdr *eth = data; if ((void *)(eth + 1) > data_end) return XDP_PASS;

struct iphdr *ip = (void *)(eth + 1); if ((void *)(ip + 1) > data_end) return XDP_PASS;

struct tcphdr *tcp = (void *)(ip + 1); if ((void *)(tcp + 1) > data_end) return XDP_PASS;

// Блокируем SYN-сканирование — пакеты с только SYN флагом if (tcp->syn && !tcp->ack && !tcp->fin && !tcp->rst) { // Здесь можно добавить логику rate limiting по src IP // через BPF_MAP_TYPE_LRU_HASH } return XDP_PASS; }

⏺Обратная сторона eBPF, как инструмента атаки: исследователи демонстрировали rootkit на eBPF который перехватывает системные вызовы и скрывает файлы и процессы - всё это без kernel module и без записи на диск. Инструмент ebpfkit показал что можно реализовать полноценный backdoor полностью в eBPF который крайне сложно обнаружить стандартными средствами.

⏺Защита от вредоносного использования eBPF: ограничение через Linux capabilities (CAP_BPF требуется для загрузки программ), kernel.unprivileged_bpf_disabled=1 запрещает непривилегированным пользователям загружать eBPF программы, мониторинг загрузки BPF-программ через аудит:

sysctl -w kernel.unprivileged_bpf_disabled=1 auditctl -a always,exit -F arch=b64 -S bpf -k ebpf_load

ZeroDay | Белый Хакер | #eBPF

nsenter: заглянуть внутрь namespace работающего контейнера

Контейнер не обязан иметь shell внутри себя. Если приложение работает, но docker exec недоступен или сам контейнерный userspace сломан, namespace можно открыть непосредственно с хоста

Сначала находим PID основного процесса контейнера

docker inspect -f '{{.State.Pid}}' <container>

Допустим, получили 4217 Проверяем его namespaces:

ls -l /proc/4217/ns/

Например:

net -> net:[4026532456] mnt -> mnt:[4026532457] pid -> pid:[4026532458]

Заходим сразу во все основные namespace

nsenter -t 4217 -m -u -i -n -p -C

Теперь shell работает в namespace процесса контейнера

Проверка:

hostname ip addr mount ps aux

При этом команды выполняются с host kernel, но видят изолированное окружение контейнера

Можно войти только в нужный namespace

Например, посмотреть сетевую конфигурацию контейнера с хоста:

nsenter -t 4217 -n ip addr

Или его mount namespace:

nsenter -t 4217 -m mount

Это удобно, когда проблема именно в одном namespace и нет смысла запускать полноценный shell

Почему nsenter особенно полезен при авариях

docker exec фактически зависит от container runtime и возможности запустить новый процесс внутри контейнера nsenter работает иначе: он использует namespace уже существующего процесса через /proc/<PID>/ns

Поэтому если внутри контейнера сломан shell, отсутствуют утилиты или runtime не может выполнить exec, диагностику всё ещё можно проводить с хоста

⚡️Важный нюанс: namespace изолирует пространство имён, но не создаёт отдельное ядро. Процессы контейнера и хоста используют одно Linux kernel, просто смотрят на разные namespace

Sep 3, 09:32 AMMore from @admguides

📚CHEMISTRY EUEE QUESTIONS

1. The first atomic theory was proposed by:   (A) Niels Bohr   (B) Ernest Rutherford   (C) John Dalton   (D) J.J. Thomson

2. Dalton's atomic theory stated that all atoms of a given element are:   (A) Different in size   (B) Different in mass   (C) Identical in mass and properties   (D) Composed of smaller particles

3. Who discovered the electron?   (A) Ernest Rutherford   (B) James Chadwick   (C) J.J. Thomson   (D) Max Planck

4. Thomson's atomic model is known as the:   (A) Nuclear model   (B) Planetary model   (C) Plum pudding model   (D) Quantum mechanical model

5. Rutherford's gold foil experiment led to the discovery of the:   (A) Electron   (B) Neutron   (C) Nucleus   (D) Proton

6. Rutherford's atomic model proposed that the atom is mostly:   (A) Solid   (B) Liquid   (C) Empty space   (D) Filled with electrons

7. Which particle is NOT found in the nucleus of an atom?   (A) Proton   (B) Neutron   (C) Electron   (D) Nucleon

8. The atomic number of an element represents the number of:   (A) Neutrons in the nucleus   (B) Protons in the nucleus   (C) Electrons in the outermost shell   (D) Total number of particles in the nucleus

9. Isotopes of an element have the same number of:   (A) Neutrons   (B) Protons   (C) Mass number   (D) Both protons and neutrons

10. Who proposed that electrons orbit the nucleus in specific energy levels or shells?   (A) Ernest Rutherford   (B) J.J. Thomson   (C) Niels Bohr   (D) Max Planck

11. Bohr's atomic model successfully explained the:   (A) Spectra of all elements   (B) Spectra of hydrogen   (C) Existence of isotopes   (D) Wave nature of electrons

12. In Bohr's model, electrons can move to a higher energy level by:   (A) Emitting energy   (B) Absorbing energy   (C) Colliding with other electrons   (D) Moving closer to the nucleus

13. The quantum mechanical model of the atom treats electrons as:   (A) Particles only   (B) Waves only   (C) Both particles and waves   (D) Neither particles nor waves

14. Which principle states that it is impossible to know both the exact position and momentum of an electron simultaneously?   (A) Pauli Exclusion Principle   (B) Hund's Rule   (C) Heisenberg Uncertainty Principle   (D) Aufbau Principle

15. Atomic orbitals are regions of space where there is a high probability of finding:   (A) Protons   (B) Neutrons   (C) Electrons   (D) The nucleus

16. Which quantum number describes the shape of an atomic orbital?   (A) Principal quantum number (n)   (B) Azimuthal quantum number (l)   (C) Magnetic quantum number (ml)   (D) Spin quantum number (ms)

17. The maximum number of electrons that can occupy a p subshell is:   (A) 2   (B) 4   (C) 6   (D) 10

18. Which rule states that electrons will individually occupy each orbital within a subshell before doubling up in any one orbital?   (A) Pauli Exclusion Principle   (B) Hund's Rule   (C) Heisenberg Uncertainty Principle   (D) Aufbau Principle

19. According to the Aufbau principle, electrons fill orbitals in order of:   (A) Increasing energy   (B) Decreasing energy   (C) Increasing atomic number   (D) Decreasing atomic number

20. What does the Pauli Exclusion Principle state?   (A) Electrons must fill the lowest energy levels first   (B) No two electrons in the same atom can have the same set of four quantum numbers   (C) Electrons must occupy each orbital within a subshell individually before pairing up   (D) It is impossible to know both the exact position and momentum of an electron simultaneously

Answers:

1. C 2. C 3. C 4. C 5. C 6. C 7. C 8. B 9. B 10. C 11. B 12. B 13. C 14. C 15. C 16. B 17. C 18. B 19. A 20. B  IDEA FOR ALL STUDENTS

TO GET OTHER EUEE QUIZ JOIN BELOW LINK OR DABOO QUIZ [Channel Link👇👇 https://t.me/Abdii_oromoo https://t.me/Abdii_oromoo

https://t.me/qubeeacademy https://t.me/qubeeacademy Don't forget if you like react now.

For video Lectures check our youtube channel 👇👇👇👇👇👇👇 https://youtube.com/channel/UCLPTQfMXS6we7aTT4g9MwCw

Qubes OS: копирование файла из dom0 отдаёт систему атакующему

Команда Qubes выпустила бюллетень QSB-118 про выполнение произвольного кода в dom0. Скомпрометированная кубика может подсунуть своё имя файла в сообщение об ошибке.

Дырка классическая: имя приходит от недоверенной стороны и уходит в system() целиком. Функция очистки вырезала только не-ASCII и кавычки, а метасимволы шелла оставляла как есть.

Обнови qubes-core-dom0-linux до 4.3.22 через штатный апдейтер, других действий не требуется. Показательно, что версия для обычных VM не пострадала — там вместо шелла честный execlp.

🔗 Подробнее

@nuancesprog #Security #Linux

Sep 1, 12:00 PMMore from @nuancesprog