
Фазированный, обходной инструмент для сканирования и эксплуатации Path Traversal и LFI на Python

Фазированные атаки с обходом пути и LFI
Vailyn 3.0
Начиная с v3.0, Vailyn поддерживает LFI PHP-обёртки в Фазе 1. Используйте
--lfi, чтобы включить их в сканирование.
Vailyn — это многофазовый инструмент для анализа и эксплуатации уязвимостей типа Path Traversal (обход пути) и File Inclusion (включение файлов). Он создан для максимальной производительности и предлагает широкий арсенал техник обхода фильтров.
Vailyn работает в 2 фазы. Сначала он проверяет, присутствует ли уязвимость. Он пытается получить доступ к /etc/passwd (или указанному пользователем файлу), используя все свои обходные нагрузки (payloads). Анализируя ответы, нагрузки, которые сработали, отделяются от остальных.
Теперь пользователь может свободно выбирать, какие нагрузки использовать. Только эти нагрузки будут применяться во второй фазе.
Вторая фаза — фаза эксплуатации. Инструмент пытается извлечь все возможные файлы с сервера, используя словари файлов и каталогов. Глубина поиска и уровень перестановки каталогов могут быть настроены через аргументы. Опционально он может загружать найденные файлы и сохранять их в папке «loot». Альтернативно, он попытается получить обратную оболочку (reverse shell) на системе, предоставляя атакующему полный контроль над сервером.
В настоящее время поддерживаются несколько векторов атаки: внедрение через параметры запроса (query), путь (path), cookie и POST-данные.
Разделение на несколько фаз значительно повышает производительность инструмента. В предыдущих версиях каждая комбинация «файл-каталог» проверялась с каждой нагрузкой. Это приводило к огромным накладным расходам, так как нагрузки всегда использовались повторно, даже если они не работали для текущей страницы.
Рекомендуемые и протестированные версии Python — 3.7+, хотя инструмент должен нормально работать и с Python 3.5 и Python 3.6. Для установки Vailyn скачайте архив из раздела релизов или выполните
$ git clone https://github.com/VainlyStrain/Vailyn
После установки на систему вам потребуется установить зависимости Python.
В Unix-системах достаточно выполнить
$ pip install -r requirements.txt # --user
Некоторые библиотеки, используемые Vailyn, плохо работают с Windows или могут не установиться.
Если вы используете Windows, используйте pip для установки зависимостей, перечисленных в Vailyn\·›\requirements-windows.txt.
Если twisted не устанавливается, существует неофициальная версия, доступная здесь, которая должна собираться в Windows. Имейте в виду, что это сторонняя загрузка, и целостность не обязательно гарантируется. После успешной установки повторный запуск pip для requirements-windows.txt должен сработать.
Если вы хотите полноценно использовать модуль reverse shell, вам потребуется установить sshpass, ncat и konsole. Имена пакетов различаются в зависимости от дистрибутива Linux. В Windows вам нужно будет вручную запустить прослушиватель заранее. Если вам не нравится konsole, вы можете указать другой эмулятор терминала в core/config.py.
Вот и всё! Запустите Vailyn, перейдя в его каталог установки и выполнив
$ python Vailyn -h
Vailyn имеет 3 обязательных аргумента: -v VIC, -a INT и -p2 TP P1 P2. Однако в зависимости от -a могут потребоваться дополнительные аргументы.
, \ / ,
':. \. /\. ./ .:'
':;. :\ .,:/ ''. /; ..::'
',':.,.__.'' ' ' `:.__:''.:'
';.. ,;' *
* '., .:'
`v;. ;v' o
. ' '.. :.' ' .
' ':;, ' '
o ' . :
*
| Vailyn |
[ VainlyStrain ]
Vsynta Vailyn -v VIC -a INT -p2 TP P1 P2
[-p PAM] [-i F] [-Pi VIC2]
[-c C] [-n] [-d I J K]
[-s T] [-t] [-L]
[-l] [-P] [-A]
mandatory:
-v VIC, --victim VIC Target to attack, part 1 [pre-payload]
-a INT, --attack INT Attack type (int, 1-5, or A)
A| Spider (all) 2| Path 5| POST Data, json
P| Spider (partial) 3| Cookie
1| Query Parameter 4| POST Data, plain
-p2 TP P1 P2, --phase2 TP P1 P2
Attack in Phase 2, and needed parameters
┌[ Values ]─────────────┬────────────────────┐
│ TP │ P1 │ P2 │
├─────────┼─────────────┼────────────────────┤
│ leak │ File Dict │ Directory Dict │
│ inject │ IP Addr │ Listening Port │
│ implant │ Source File │ Server Destination │
└─────────┴─────────────┴────────────────────┘
additional:
-p PAM, --param PAM query parameter or POST data for --attack 1, 4, 5
-i F, --check F File to check for in Phase 1 (df: etc/passwd)
-Pi VIC2, --vic2 VIC2 Attack Target, part 2 [post-payload]
-c C, --cookie C Cookie to append (in header format)
-l, --loot Download found files into the loot folder
-d I J K, --depths I J K
depths (I: phase 1, J: phase 2, K: permutation level)
-h, --help show this help menu and exit
-s T, --timeout T Request Timeout; stable switch for Arjun
-t, --tor Pipe attacks through the Tor anonymity network
-L, --lfi Additionally use PHP wrappers to leak files
-n, --nosploit skip Phase 2 (does not need -p2 TP P1 P2)
-P, --precise Use exact depth in Phase 1 (not a range)
-A, --app Start Vailyn's Qt5 interface
develop:
--debug Display every path tried, even 404s.
--version Print program version and exit.
--notmain Avoid notify2 crash in subprocess call.
Info:
to leak files using absolute paths: -d 0 0 0
to get a shell using absolute paths: -d 0 X 0
Vailyn в настоящее время поддерживает 5 векторов атаки и предоставляет краулер для их автоматизации. Выполняемая атака определяется аргументом -a INT.
INT attack
---- -------
1 query-based attack (https://site.com?file=../../../)
2 path-based attack (https://site.com/../../../)
3 cookie-based attack (will grab the cookies for you)
4 plain post data (ELEM1=VAL1&ELEM2=../../../)
5 json post data ({"file": "../../../"})
A spider fetch + analyze all URLs from site using all vectors
P partial spider fetch + analyze all URLs from site using only selected vectors
Вы также должны указать цель атаки. Это делается с помощью -v VIC и -Pi VIC2, где -v — часть до точки внедрения, а -Pi — остальная часть.
Пример: если конечный URL должен выглядеть так: https://site.com/download.php?file=<ATTACK>¶m2=necessaryvalue, вы можете указать -v https://site.com/download.php и -Pi ¶m2=necessaryvalue (и -p file, так как это атака через параметр запроса).