LINUX.ORG.RU
решено ФорумAdmin

Как взломать компьютер без адреса в сети?

 ,


1

1

Картина для привлечения внимания: http://dump.bitcheese.net/files/vaxurut/scrot.png

И так, есть домашний ПК, есть провайдер, шнур с интернетом от которого идёт прямо в ПК. Наш ПК в сети. Однако захотелось сделать так, чтобы наш ПК небыл в сети, а в сети была _виртуальная машина_, которая уже затем раздаёт интернеты на наш ПК и другие умные устройства. Таким образом, наш ПК не имея адреса в сети, становится полностью неуязвимым. Поправьте, если ошибаюсь. А ошибаться я могу, ну вы же знаете, админы подкроватных локалхостов, куда уж нам...

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

Нужно ли объяснять процесс установки?

wget http://ftp.morpheus.net/pub/linux/crux/latest/iso/crux-3.4.iso
mount crux-3.4.iso /mnt/crux
dd if=/dev/zero of=crux.raw bs=1M count=1000
losetup /dev/loop0 crux.raw
fdisk /dev/loop0 # или fdisk crux.raw
# n
# enter
# enter
# enter
# w
mount /dev/loop0p1 /mnt/rootfs # или mount -o offset=$((512 * 2048)) crux.raw
mkdir -p /mnt/rootfs/var/lib/pkg
touch /mnt/rootfs/var/lib/pkg/db
for pkg in /mnt/crux/crux/core/*; do pkgadd --root /mnt/rootfs/ $pkg; done
echo "/dev/sda1 / ext4 defaults 0 1" >> /mnt/rootfs/etc/fstab

Усё. CRUX условно готов к работе в виртуальной машине, в общем-то дело за ядром, для полноты картины оставлю тоже это тут.

wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.20.tar.xz
tar xf linux-4.20.tar.xz
cd linux-4.20
make defconfig
make -j$(nproc) all
env cp arch/x86/boot/bzImage /mnt/rootfs/boot/vmlinuz
env INSTALL_MOD_PATH=/mnt/rootfs make modules_install
sync # или umount /mnt/{crux,rootfs}

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

qemu-system-x86_64 \
	-machine type=pc,accel=kvm \
	-cpu host \
	-boot order=c \
	-drive file=crux.raw,format=raw \
	-nic tap,mac=<Ваш MAC-адрес> \	# это будет WAN-порт
	-nic tap \			# это будет LAN-порт
	-kernel /mnt/rootfs/boot/vmlinuz -append "root=/dev/sda1"

Как видно из параметров, у виртуальной машины будет две сетевые карты, одна — клонирует мак-адрес вашей сетевой карты с провайдером, она же выполняет роль WAN-порта в роутере, вторая будет служить для раздачи интернетов, она же выполняет роль LAN-порта в роутере.

Напомню, что от интернетов сетевую карту на вашем ПК надо отключить, просто лишить её IP-адреса, оставив в режиме UP.

ip addr del xx.xx.xx.xx dev enp1s0u4h3l2p4a3q4t5b9d0n7m2x3 # лёня привет

Дальше всё просто. При помощи первого моста (linux bridge) мы настроим общение между вашей физической сетевой картой и первой сетевой картой вирт. машины, а при помощи второго моста мы настроим общение между всеми условными хостами и второй сетевой картой вирт. машины, которая интернет раздаёт. Считайте что бридж это коммутатор, свич, который тупо пересылает пакеты.

# включили первый свич
ip link add name br0 type bridge
ip link set br0 up

# в один порт воткнули кабель провайдера
ip link set enp1s0 master br0
ip link set enp1s0 up

# в другой порт воткнули кабель от виртуалки
ip link set tap0 master br0
ip link set tap0 up

Таким элементарным образом настроено общение между кабелем провайдера и первой сетевой картой виртуальной машины, где вы указывали свой мак-адрес. Прямо сейчас, вы можете настроить интернет на виртуальной машине, так, как если бы его настраивали на обычном ПК, и этот интернет будет работать. Если у провайдера IPoE — просто dhcpcd enp0s3, если PPPoE, настраиваем на виртуалке PPPoE, всё как обычно в общем.

Если у вас какой-то другой интерфейс, куда приходит интернет, например это может быть не сетевая карта, а USB-модем, то соответственно в порт так называемого «свича» втыкаем кабель с этим интерфейсом, — ip link set usb0 master br0.

И ещё один свич, который будет связывать нас и второй интерфейс сетевой карты виртуальной машины, раздающий интернеты.

# включили второй свич
ip link add name br1 type bridge
ip link set br1 up

# в один порт воткнули кабель виртуальной машины раздающий интернеты
ip link set tap1 master br1
ip link set tap1 up

В другой порт «свича» пока ничего не «втыкаем», но опять же на этом этапе это уже может быть ваша вторая сетевая карта на ПК, которая например раздаёт интернеты дальше уже на реальный свич, и так далее. Но мы пока ограничимся только нашей хост-системой. Поэтому пока ничего.

На этом настройка ПК закончена, переходим к виртуальной машине. Собственно, там надо настроить интернеты на первом интерфейсе enp0s3, как это сделать — точно так же, как вы обычно настраиваете их на своём ПК. В случае IPoE, повторюсь, достаточно dhcpcd. Если интернеты настроены, о чём ping linux.org.ru радостно сообщает, теперь останется лишь настроить раздачу интернетов на вторую сетевую карту виртуальной машины.

Переходим к настройке виртуальной машины.

Поднимем интерфейс на второй сетевой карте, который будет обслуживать 192.168.0.0/24 подсеть и раздавать туда IP-адреса.

ip addr add 192.168.0.1/24 dev enp0s4 broadcast +
ip link set enp0s4 up

Установим DHCP в CRUX

prt-get depinst dhcp

Настроим DHCP

# cat > /etc/dhcpd.conf << EOF
authoritative;

default-lease-time	600;
max-lease-time		7200;

ddns-update-style	none;

subnet 192.168.0.0 netmask 255.255.255.0 {
  option domain-name "VirtualMachine";
  option domain-name-servers 8.8.8.8, 8.8.4.4;
  option routers 192.168.0.1;

  range 192.168.0.2 192.168.0.254;
}
EOF

Запустим DHCP

/etc/rc.d/dhcpd start

Ну и настроим раздачу интернетов.

echo 1 > /proc/sys/net/ipv4/ip_forward

iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o enp0s3 -j MASQUERADE

На этом всё. И так...

Сетевая карта enp1s0 из которой кабель провайдера заходит в свич br0, далее кабель из br0 выходит на первую сетевую карту виртуальной машины enp0s3.

Виртуальная машина получает интернеты тем или иным образом на сетевую карту enp0s3, затем раздаёт их на вторую сетевую карту enp0s4, откуда кабель идёт на второй свич br1.

br1 — теперь ваш доступ в интернет.

Сюда можно включить вторую реальную сетевую карту с реальным свичём, а можно подключиться самому.

dhcpcd br1

И вуа-ля! Мы в интернете через виртуальную машину, при этом наша хост-система недосягаема «из вне».

TL;DR

Возвращаясь к картинке http://dump.bitcheese.net/files/vaxurut/scrot.png, поясню что на ней. Слева направо: выхлоп красивого ifconfig на хост-системе. Далее окошечко с виртуальной машиной и чуть ниже SSH-подключение к ней же, с выхлопом ifconfig уже самой виртуалки. Далее тестируем подключение к br1, тестируем получение локального IP-адреса, тестируем подключение к интернету и что реально всё работает! Ну а в самом низу просто запуск виртуалки. Да.

Замечания и предложения приветствуются! Всем спасибо.

Перемещено leave из talks

★★★★★

На другой хостинг может?

Доступ к Интернет-ресурсу
заблокирован
по решению органов государственной власти

Yorween ()

Круто, чо. Почитай книжки и иди админом или веб-разработчиком (это ты же бложик писал?), раз так нравится.

goingUp ★★★★★ ()

Это все рецепты для запуска изнутри CRUX?

Но недосягаемость, как я понял, не более, чем недосягаем комп за NAT, c серым адресом.

praseodim ★★★★★ ()
Последнее исправление: praseodim (всего исправлений: 1)

Как взломать компьютер без адреса в сети?
Таким образом, наш ПК не имея адреса в сети, становится полностью неуязвимым.

Ломаешь компьютер с адресом в сети, с него ломаешь «без адреса». Задача конечно сильно посложнее, чем взломать обычный десктоп с прямым айпи.

goingUp ★★★★★ ()

Зачем так сложно, если можно перед компьютером просто поставить роутер? Эффект тот же, даже лучше.

Kroz ★★★★★ ()
Ответ на: комментарий от praseodim

ip это стандартная линукс-утилита из пакета iproute2, и наверное не только в линуксах она есть. будет работать где угодно. isc dhcp тоже везде есть. qemu много где есть.

crux тут не при делах, да.

Spoofing ★★★★★ ()

Я считаю, что от подобных мануалов больше вреда, чем пользы. В особенности от «ip это стандартная линукс-утилита из пакета iproute2, и наверное не только в линуксах она есть. будет работать где угодно. isc dhcp тоже везде есть. qemu много где есть», т.к. по факту не будет, а тот кто будет пытаться повторить данный мануал рискует остаться со сломанной системой, если у него окажется недостаточно знаний, чтобы самостоятельно адаптировать его с своему дистрибутиву. man по стандартной утилите каждый сам прочитать сможет, если захочет. А вот пояснения, почему в данном случае были выбран те или иные настройки не помешали бы.

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

Khnazile ★★★★★ ()

И так, есть домашний ПК, есть провайдер, шнур с интернетом от которого идёт прямо в ПК. Наш ПК в сети. Однако захотелось сделать так, чтобы наш ПК небыл в сети, а в сети была _виртуальная машина_, которая уже затем раздаёт интернеты на наш ПК и другие умные устройства. Таким образом, наш ПК не имея адреса в сети, становится полностью неуязвимым. Поправьте, если ошибаюсь.

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

h578b1bde ★☆ ()

Зачем всё это? не проще фаервол настроить?

Satou ★★★★ ()
Ответ на: комментарий от Spoofing

Я не про ip а про развертывание дистра. Напрягает, что надо куда-то бутиться и запускать программу установщик, чтобы дистр установить.

Хочется научиться хоть дебиан, хоть убунту, хоть федорку ставить просто копированием подготовденных файлов. Но когда последний раз так пробовал нихрена не вышло.

praseodim ★★★★★ ()

Заголовок конечно... Я уже хихикнул, думаю, мол, очередной школьник установил Kali

CryNet ★★★★★ ()
Ответ на: комментарий от praseodim

у дебиана есть debootstrap, у других хз.

я тоже считаю что всё должно решаться, ну если не распаковкой из архивов, то тоже какими-то такими методами «простого копирования».

Spoofing ★★★★★ ()

экономия ресурса IP адреса во всей красе.

system-root ★★★★★ ()

Троллейбус_из_буханки_хлеба.jpeg

Deleted ()

И да, почему было просто не пробросить устройство в виртуалку?

CYB3R ★★★★★ ()
Ответ на: комментарий от CYB3R

а вы давно собирали defconfig? для домашнего использования его хватает. да, помню, когда даже Intel HD Graphics была отключена, но сейчас только AMD_GPU надо включать, если пользователь AMD. ну надо звук включить. и всё, в принципе. всё остальное ситуативно, но ещё раз повторюсь что defconfig для домашнего использования достаточно, там даже сетевые карточки типа rtl8139 работают.

ну или посоветуйте готовый конфиг. буду признателен.

Spoofing ★★★★★ ()

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

dimon555 ★★★★★ ()

Не проще ли обычному юзеру купить роутер?
А для бизнеса раздаю бесплатную идею. Запихнуть это под колпак UEFI (чтобы винда работала) и добавить автоопределение «домашней сети». Если сеть «домашняя» - включаем passthrough режим, если «внешняя» - включаем насильно VPN до «домашней» сети. Продаём конторам, у которых сотрудники с корпоративных ноутов могут работать удалённо.

snizovtsev ★★★★ ()

Простыню не читал, на скрине какая-то хрень. Ответь на один вопрос. ЗАЧЕМ ломать компютер ? Чтобы получить что ?

lenin386 ★★★ ()

Замечания и предложения приветствуются!

Закусывать надо !

Deleted ()

Прочитал только ОП, читать весь тред дальше уже сил нет. Я что, на хабр зашел? Я вообще-то пришел сюда деградировать, а не умные статьи читать.

Senjougahara ()
Ответ на: комментарий от h578b1bde

Экономия ресурса роутера.

Какого именно ресурса?
Роутер предназначен для этого, и ресурсов у него хоть отбавляй. В отличии от виртуальной машины.

Kroz ★★★★★ ()

моста (linux bridge) мы настроим общение между вашей физической сетевой картой и первой сетевой картой вирт. машины

Если есть виртуализация VT-d (IOMMU), можно сетевуху полностью отдать виртуалке через vfio, как PCI-устройство.
А то выше написали про возможное решето в драйвере сетевухи (и реализации сетевого моста). Алсо, сетевуху ещё желательно отдельную вткнуть в PCI слот, во встроенной то зонды штеуд МЕ

TheAnonymous ★★★★★ ()
Последнее исправление: TheAnonymous (всего исправлений: 1)
Ответ на: комментарий от h578b1bde

Экономия ресурса роутера.

И ресурса кошелька!

YAR ★★★★★ ()
Ответ на: комментарий от Spoofing

Регулярно собираю defconfig, но ты же ядро для виртуалки собираешь! Про kvmconfig не слышал? Ну и вывод VGA через SDL — это жесть. Запускай qemu с -nographic, а в командную строку ядра добавь «console=ttyS0».

CYB3R ★★★★★ ()

И вуа-ля! Мы в интернете через виртуальную машину, при этом наша хост-система недосягаема «из вне».

Гайд неполный. Если ядро на хостовой системе поддерживает IPv6 (у вас это не так - но это так в большинстве дистров из коробки), то оно таки ломается сотрудником провайдера через link-local адрес. При этом инструкции по выключению IPv6 в посте нет.

AEP ★★★★★ ()
Последнее исправление: AEP (всего исправлений: 2)

которая уже затем раздаёт интернеты на наш ПК и другие умные устройства

Так в итоге получается, что ПК все же доступ в сеть имеет. А значит уязвим как и обычно

cvs-255 ★★★★★ ()

ты придумал крутую штуку, для этого можно еще вместо виртуалки взять другой комплюктор и с него раздавать, а еще можно вместо большого компа взять маленькую коробочку и туда поставить линакс и с неё раздавать. Так она будет в сети, а наш комп будет под защитой её Надежной Автономной Тушки - НАТ. Советую патентовать, пока не поздно.

sid350 ★★★★★ ()

Это лишь иллюзия безопасности. Шлюз на входе необходим, но недостаточен. Хорошим решением был бы небольшой сервер, хоть на малине, и роутер/свитч за ним, потому что у самих роутеров/свитчей прошивки дырявые.

Сам по себе шлюз мало полезен, он прикрывает лишь от эпичных дыр, например, в древней пиратской винде, от скана портов и тому подобного. Чтобы шлюз реально повышал безопасность, нужны фильтры трафика, желательно вообще по белому списку. Это стандартная практика при организации ограждённой локалки. Она убережёт от известных и некоторой части неизвестных дыр, а также позволит их найти, если админ будет мониторить трафик.

Но и такой ход бесполезен против целевой атаки. И даже против некоторых умных автоматических атак. Вариантов множество:

  • Накатываешь ты некий пакет из левого источника, что при пользовании линукса бывает довольно часто. Он усыпляет твою бдительность тем, что код открыт под свободной лицензией. Но по факту его никто не проверял, как не проверяли и билды в стороннем репозитории (или откуда там качаешь). Так вирус попадает минуя шлюз.
  • Заходишь на страницу с не обновлённого хрома, эксплуатируется уязвимость в sqlite, вирус снова на компе. Или любой другой сценарий с 0days.
  • В локалке есть юзверь с дырявой виндой.
  • В локалке есть смартфоны.
  • Доступ к локалке имеют сторонние люди. Например, какие-нибудь знакомые, которым срочно понадобилось в сеть.
  • Есть Wi-Fi сеть. А в протоколах гора уязвимостей. Но если их и нет, есть некоторая вероятность расшифровать хендшейк по огроменному словарю (мало ли, вдруг у атакующего есть целый ботнет или десятки мощных серверов).
  • Врезка в кабель и перехват незашифрованного трафика.
  • ван Эйк, в конце концов.
  • Различная социальная инженерия.

В общем, бесполезный мануал. При одном ПК с линуксом и прямыми руками можно обойтись без шлюза.

InterVi ★★★ ()

А почему просто фаерволом не закрыть все входящие коннекты? Это тоже из коробки не только в линуксах работает.

generator ★★★ ()

присоединюсь к множеству тех, кто считает подобное решение несостоятельным.. и основная причина тому проста - дикие оверхэды с неоправданно возрастающей нагрузкой на систему при +/- плотном трафике. даже детские 100Мб/с, пмсм, добавят «свежих впечатлений»(ц)..

для дома идеальный вариант - роутерЪ на конце кабеля провайдера, раздающий на всю как тебе нра (если дома более одного компа - то must have). Busybox с вэб-мордой - «наше всё»(ц).. конкретно модели не порекомендую, выбор целиком субъективен (кроме d-link ессно). опять же в идеале - сей роутер поддерживает ЪЪЪ дистрибутив и позволяет организовать на себе нечто большее, чем тупой шлюз.

также схема с виртуалкой в принципе не имеет смысла для всех, кому пров не выдаёт прямой ip из своего пула. как уже правильно тут заметили - ломать в первую очередь будут открытые сервисы, и толково настроенные iptables/pf/apache/bind/exim/vsftpd/etc. в 99.9% случаев более уместны, чем тупая виртуализация..

dixi..

anonymous ()

Ну и ладно!

НЕ ОЧЕНЬ ТО И ХОТЕЛОСЬ.

Пойду другое попердолю чонить...

Spoofing ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.