PWNCAT هي منصة ما بعد الاستغلال لأهداف Linux . لقد بدأت كركب حول الربط الأساسي والقذائف العكسية ونمت من هناك. يقوم بتبسيط عمليات فريق Red Red المشتركة أثناء تنظيم الكود من جهاز المهاجم الخاص بك ، وليس الهدف.
اعتاد PWNCAT دعم Linux فقط ، ولكن كان هناك الكثير من العمل مؤخرًا لدعم منصات متعددة. حاليًا ، هناك دعم ألفا لأهداف Windows. يرجى الاطلاع على أحدث وثائق للحصول على تفاصيل حول كيفية استخدام PWNCAT مع هدف Windows.
يعترض PWNCAT التواصل الخام مع قذيفة عن بُعد ويسمح للمستخدم بإجراء إجراءات آلية على المضيف البعيد بما في ذلك التعداد وتثبيت الزرع وحتى تصعيد الامتياز.
بعد تلقي اتصال ، ستقوم PWNCAT بإعداد بعض التكوينات الشائعة للعمل مع الأصداف البعيدة.
which ) يعرف pwncat كيفية تفرخ Pty مع بعض الطرق المختلفة وسيقوم بالترويج عبر الأساليب مع المنافسين المُعدين مسبقًا. بعد تفريغ Pty ، ستقوم بإعداد محطة التحكم في الوضع الخام ، بحيث يمكنك التفاعل بطريقة مماثلة لـ ssh .
ستقوم pwncat أيضًا بمزامنة الإعدادات PTY عن بُعد (مثل الصفوف والأعمدة ومتغير البيئة TERM ) مع إعداداتك المحلية لضمان تصرف القشرة بشكل صحيح مع التطبيقات التفاعلية مثل vim أو nano .
قدم أنا وجون هاموند pwncat في Grimmcon. عرضنا ، والذي يمكن العثور عليه على YouTube هنا. يوضح هذا الفيديو نسخة مبكرة من واجهة برمجة التطبيقات والواجهة. يرجى الرجوع إلى الوثائق لتحديث الاستخدام ووثائق API!
يتم بناء وثائق PWNCAT على قراءة المستندات. توجه هناك للحصول على أحدث وثائق الاستخدام والتطوير!
يتطلب pwncat python 3.9+ على Linux
يعتمد pwncat فقط على بيئة تطوير Python العاملة التي تعمل على Linux. من أجل تثبيت بعض الحزم المطلوبة باستخدام pip ، من المحتمل أن تحتاج إلى حزمة "تطوير Python" الخاصة بتوزيعك. على الأنظمة المستندة إلى دبيان ، هذا هو python-dev . بالنسبة للقوس ، يتم شحن ملفات التطوير باستخدام مستودع Python الرئيسي. بالنسبة للمؤسسات Linux ، تسمى الحزمة python-devel .
يتم دفع pwncat إلى pypi تحت اسم pwncat-cs ، ويمكن تثبيته مع pip مثل SO:
pip install pwncat-csومع ذلك ، يوصى بتثبيت PWNCAT من بيئة افتراضية.
python3 -m venv pwncat-env
source pwncat-env/bin/activate
pip install pwncat-cs لبيئة التنمية ، pwncat استخدام الشعر بيثون. يمكنك استنساخ المستودع محليًا واستخدام الشعر لإعداد بيئة تطوير.
# Setup pwncat inside a poetry-managed virtual environment
git clone [email protected]:calebstewart/pwncat.git
cd pwncat
poetry install
# Enter the virtual environment
poetry shell نظرًا لتسمية الصراع مع PWNCAT في Cytopia ، فقد قررت إعادة تسمية الحزمة إلى pwncat-cs . ويشمل ذلك إعادة تسمية نقطة الدخول بحيث لا توجد تعارض مباشر مع مشروع Cytopia. إذا كنت تقوم بالتحديث من v0.4.* ، فسيتم الآن تغيير اسم الأمر ، وتم إزالة pcat و pc Varianst. انظر أحدث ملاحظات الإصدار لمزيد من التفاصيل.
الفائدة الإضافية لهذه الخطوة هي أن المشروع يتم الآن دفعه إلى PYPI لتسهيل التثبيت/التحديث في المستقبل.
يدعم pwncat الآن الاتصالات من أهداف Windows التي تبدأ من v0.4.0a1 . يستخدم منصة Windows مكتبة C2 المستندة إلى .NET يتم تحميلها تلقائيًا. يجب أن تتصل أهداف Windows إما بـ cmd.exe أو powershell.exe shell ، وستهتم Pwncat بالباقي.
يتم تنفيذ المكتبات التي تنفذ C2 في PWNCAT-Windows-C2. سيتم تنزيل DLLs لـ C2 تلقائيًا من الإصدار المستهدف لك. إذا لم يكن لديك اتصال بالإنترنت على جهازك المستهدف ، فيمكنك إخبار PWNCAT بسباق DLLs مسبقًا باستخدام وسيطة --download-plugins . إذا كنت تقوم بتشغيل إصدار إصدار من PWNCAT ، فيمكنك أيضًا تنزيل Tarball من جميع المكونات الإضافية المدمجة من صفحة الإصدارات.
يتم تخزين المكونات الإضافية افتراضيًا في ~/.local/share/pwncat ، ولكن هذا قابل للتكوين مع تكوين plugin_path . إذا قمت بتنزيل مجموعة المكونات الإضافية المعبأة من صفحة الإصدارات ، فيجب عليك استخراجها إلى المسار المشار إليه بواسطة plugin_path .
بصرف النظر عن DLLs الرئيسية C2 ، قد تتوفر الإضافات الأخرى أيضًا. حاليًا ، فإن الإضافات الافتراضية الوحيدة المقدمة هي C2 وتنفيذ Badpotato. يمكن لـ PWNCAT تحميل ثنائيات .NET بشكل عكسي لاستخدام مكونات إضافية لـ C2. لمزيد من المعلومات حول الإضافات Windows C2 ، يرجى الاطلاع على الوثائق.
في الآونة الأخيرة ، تم إعادة تصميم بنية إطار PWNCAT لدمج بنية "وحدة" عامة. يتم الآن تنفيذ جميع الوظائف كوحدات. وهذا يشمل التعداد والمثابرة وتصعيد الامتياز. يشبه التفاعل مع الوحدات النمطية معظم منصات ما بعد الاستغلال الأخرى. يمكنك الاستفادة من أوامر run المألوفة search info وإدخال سياقات الوحدة النمطية مع الأمر use . الرجوع إلى الوثائق لمزيد من المعلومات.
التثبيت على Blackarch بسيط مثل:
pacman -Syu pwncat-calebتحاول معلمات سطر الأوامر لـ PWNCAT أن تكون مرنة وقبول مجموعة متنوعة من بناء جملة الاتصال الشائع. على وجه التحديد ، سيحاول قبول Netcat و SSH المشترك مثل بناء الجملة. فيما يلي كل شيء صالح:
# Connect to a bind shell
pwncat-cs connect://10.10.10.10:4444
pwncat-cs 10.10.10.10:4444
pwncat-cs 10.10.10.10 4444
# Listen for reverse shell
pwncat-cs bind://0.0.0.0:4444
pwncat-cs 0.0.0.0:4444
pwncat-cs :4444
pwncat-cs -lp 4444
# Connect via ssh
pwncat-cs ssh://user:[email protected]
pwncat-cs [email protected]
pwncat-cs user:[email protected]
pwncat-cs -i id_rsa [email protected]
# SSH w/ non-standard port
pwncat-cs -p 2222 [email protected]
pwncat-cs [email protected]:2222
# Reconnect utilizing installed persistence
# If reconnection fails and no protocol is specified,
# SSH is used as a fallback.
pwncat-cs reconnect://[email protected]
pwncat-cs reconnect://user@c228fc49e515628a0c13bdc4759a12bf
pwncat-cs [email protected]
pwncat-cs c228fc49e515628a0c13bdc4759a12bf
pwncat-cs 10.10.10.10 بشكل افتراضي ، يفترض PWNCAT أن النظام الأساسي الهدف هو Linux . من أجل الاتصال بعكس Windows Ored أو ربط القشرة ، يجب عليك تمرير الوسيطة- --platform/-m :
pwncat-cs -m windows 10.10.10.10 4444
pwncat-cs -m windows -lp 4444 لمزيد من المعلومات حول بناء الجملة ومعالجة الوسيطة ، راجع معلومات المساعدة مع pwncat-cs --help أو قم بزيارة الوثائق.
طريقة التثبيت الموصى بها هي بيئة افتراضية بيثون. هذا يوفر أسهل استخدام يوميًا لـ pwncat . ومع ذلك ، كان هناك اهتمام باستخدام pwncat من صورة Docker ، لذلك قمت بتقديم dockerfile الذي يوفر تثبيت pwncat يعمل. لبناء استخدام الصورة:
docker build -t pwncat . سيؤدي ذلك إلى إنشاء صورة pwncat Docker مع علامة "pwncat". دليل العمل داخل الحاوية هو /work . نقطة الدخول للحاوية هي pwncat ثنائي. يمكن استخدامه مثل ذلك:
# Connect to a bind shell at 10.0.0.1:4444
docker run -v " /some/directory " :/work -t pwncat 10.0.0.1 4444 في هذا المثال ، يتعرض فقط الملفات في /some/directory للحاوية. من الواضح ، لتحميل/تنزيل ، لن تتمكن الحاوية من رؤية الملفات المكشوفة من خلال أي أدلة مثبتة.
يوفر pwncat ميزتين رئيسيتين. في جوهره ، يكون الهدف هو إعداد تلقائيًا لما هو مستمر (PTY) الذي يسمح بالتفاعل مع المضيف عن بُعد مثل جلسة SSH الكاملة. عند العمل في Pty ، يمكنك استخدام الميزات المشتركة للقشرة البعيدة مثل التاريخ وتحرير الخط والتطبيقات الطرفية الرسومية.
النصف الآخر من pwncat هو إطار يستخدم قذيفة عن بُعد لأداء مهام التعداد الآلي والمثابرة وتصعيد الامتياز. يوفر موجه pwncat المحلي عددًا من الميزات المفيدة لاختبارات الاختراق القياسية بما في ذلك:
pwncat أيضًا القدرة على عودة هذه "الحشوات" عن بُعد تلقائيًايهدف الإطار الأساسي للتفاعل مع المضيف عن بُعد إلى تجريد القذيفة وطريقة الاتصال الأساسية قدر الإمكان ، مما يسمح للأوامر والإضافات بالتفاعل بسلاسة مع المضيف البعيد.
يمكنك معرفة المزيد حول التفاعل مع pwncat وعن الإطار الأساسي في الوثائق. إذا كانت لديك فكرة عن طريقة تصعيد امتياز جديدة أو طريقة الثبات ، فيرجى إلقاء نظرة على وثائق API على وجه التحديد. طلبات السحب موضع ترحيب!
يود Pwncat أن يكون سكين الجيش السويسري فريق Red Team. نأمل قريبًا ، ستتم إضافة المزيد من الميزات.
نظرًا لأن pwncat تحاول التفاعل بشكل مجردة مع أي قذيفة مع الحد الأدنى من تبعيات النظام عن بُعد ، فهناك بعض الحالات التي وجدناها. حيث نجدهم ، نفعل كل ما في وسعنا لحسابهم وإخفائهم من المستخدم. ومع ذلك ، فقد انزلق البعض من خلال الشقوق ولوحظ في البرية. عندما يحدث هذا ، سيفعل pwncat كل ما في وسعه للحفاظ على المحطة الخاصة بك ، ولكن قد يتم الترحيب بك مع بعض فشل الإخراج أو القيادة.
على الرغم من أن BSD عبارة عن نواة قائمة على UNIX ، إلا أن أدوات UserLand في الممارسة العملية تختلف بشكل ملحوظ عن نظرائهم في Linux. بسبب هذا ، لن تعمل العديد من الميزات الآلية لـ pwncat أو تفشل بشكل مباشر عند تشغيل هدف قائم على BSD. لقد حاولت التقاط جميع الأخطاء أو حالات الحافة ، ومع ذلك ، فمن المحتمل أن يكون هناك بعض الفواق التي لم يتم اختبارها بالكامل ضد BSD. في أي حال ، يجب أن تعمل القشرة المستقرة ضمن بيئة BSD ، لكنني لا أقدم أي ضمانات.
إذا وجدت بعض الوقت في وقت لاحق على الطريق ، فقد أحاول استقرار pwncat على BSD ، ولكن في الوقت الحالي ينصب تركيزي على التوزيعات القائمة على Linux. إذا كنت ترغب في المساهمة في جعل pwncat يتصرف بشكل أفضل على BSD ، فأنت ترحب أكثر بالوصول إلى الريبو أو فقط. كما هو الحال دائمًا ، نرحب بطلبات السحب!