
حاوية ورشة عمل DEFCON 30 حول تجاوز سعة المخزن المؤقت للحواسيب المركزية

السكربتات هنا تُستخدم لبناء الحاسوب الرئيسي الافتراضي MVS 3.8j لورشة عمل DEFCON 30.
شكرًا لاطلاعك على ورشة عمل DEFCON 30 الخاصة بتجاوز سعة المخزن المؤقت في الحاسوب الرئيسي.
حاوية Docker هذه تحتوي على كل ما تحتاجه لتتعلم كيفية تنفيذ تجاوزات سعة المخزن المؤقت في MVS!
لبدء الدرس، شغّل الحاوية واذهب إلى http://localhost:8080
لتشغيل الحاوية استخدم الأوامر أدناه، وتأكد من تغيير $(pwd)/docker إلى مجلد مناسب لنظامك.
يضع $(pwd) وحدات تخزين Docker في مجلد العمل الحالي الخاص بك.
استخدم هذا الأمر إذا كنت تريد تشغيلها بشكل مستقل فقط. ⚠️ إذا أزلت الحاوية وأعدت تشغيلها ستفقد أي وجميع التغييرات التي أجريتها على بيئة الحاسوب الرئيسي.
docker run -d \
--name=defcon30 \
-e HUSER=defcon \
-e HPASS=defcon \
-p 2323:3223 \
-p 8888:8888 \
-p 2121-2141:2121-2141 \
-p 8443:8443 \
-p 8080:8080 \
-p 31337-31347:31337-31347 \
-v ~/dumps:/printers \
--restart unless-stopped \
mainframed767/defcon30:latest
شرح المنافذ:
السكربتات المذكورة بلغة بايثون يمكن العثور عليها هنا: https://github.com/mainframed/DC30_Workshop/tree/main/extra
تعرض هذه الحاوية المزيد من المنافذ وتتيح لك الحصول على وحدات تخزين دائمة. كما تمنحك الوصول إلى وحدات تحكم Hercules وMVS وقارئات/كاتبات البطاقات، إلخ.
docker run -d \
--name=defcon30 \
-e HUSER=docker \
-e HPASS=docker \
-p 3221:3221 \
-p 2323:3223 \
-p 3270:3270 \
-p 3505:3505 \
-p 3506:3506 \
-p 8888:8888 \
-p 2121:2121 \
-p 8443:8443 \
-p 8080:8080 \
-p 31337-31347:31337-31347 \
-v $(pwd)/docker/config:/config \
-v $(pwd)/docker/printers:/printers \
-v $(pwd)/docker/punchcards:/punchcards \
-v $(pwd)/docker/logs:/logs \
-v $(pwd)/docker/dasd:/dasd \
-v $(pwd)/docker/certs:/certs \
--restart unless-stopped \
mainframed767/defcon30:latest
المنافذ
وحدات التخزين
⚠️ مع الإعداد الحالي، الحد الأقصى لعدد المستخدمين المتزامنين هو 24. إذا سجّل مستخدم خامس وعشرون الدخول،
ستظهر لك رسالة الخطأ التالية IKT00203I ADDRESS SPACE CREATION FAILED.
cp extra/FTPD.MVP MVSCE/MVP/packagesMACLFTPF.jcl: cat jcl/MACLFTPF.jcl|ncat --send-only -w1 127.0.0.1 3505logon_screen.jcl: cat jcl/logon_screen.jcl|ncat --send-only -w1 127.0.0.1 3505terminal.jcl: cat terminal.jcl|ncat --send-only -w1 127.0.0.1 3505git clone https://github.com/jake-mainframe/ARBAUTHupload.py: ./upload.py motd.txtupload.jcl: GETSPLOIT/hello.c: برنامج C ضعيف من https://github.com/jake-mainframe/GETSPLOITARBAUTH من https://github.com/jake-mainframe/ARBAUTHoverflows/LGBT400، overflows/LOC400، overflows/WTO400Dockerfile يُستخدم لبناء صورة DockerMACLFTPD.jcl: ملف JCL لتثبيت MACLIBS وخادم FTPD باستخدام MVPlogon_screen.ans/jcl/logon_screen.jcl: ملفات ANSI/JCL لاستبدال شاشة تسجيل الدخول NETSOLupload.py يُنشئ JCL المستخدم لإعداد مجموعات البيانات ونسخ الملفات وتجهيز النظامjcl/terminals.jcl يضيف 32 واجهة طرفية جديدة ويحدّث إعداد VTAMusersjcl.py ينشئ ملفات حتى في مجلد | Port | Description |
|---|
| 2323 | منفذ خادم TN3270 المشفّر بـ TLS |
| 3270 | منفذ خادم TN3270 غير المشفّر |
| 3221 | خادم FTPD مشفّر |
| 2121 | منفذ خادم FTP غير المشفّر |
| 8443 | عميل 3270 قائم على الويب يتصل تلقائيًا بالحاسوب الرئيسي للمختبر https://localhost:8443 |
| 8080 | ويكي الدرس https://localhost:8080 |
| 8888 | خادم ويب Hercules / وحدة تحكم MVS. المستخدم/كلمة المرور = docker |
| 3505 | قارئ البطاقات المثقبة. يحوّل ASCII إلى EBCDIC. |
| 3506 | قارئ البطاقات المثقبة. يقبل ملفات EBCDIC فقط. |
| 31337-32337 | نطاق المنافذ السلبية لخادم FTP |
| Folder | Description |
|---|
| /config | يحتوي على ملفات إعداد Hercules وweb3270 |
| /printers | يحتوي على مخرجات الطابعات على CLASS=A |
| /punchcards | يحتوي على مخرجات كاتب البطاقات المثقبة على CLASS=B |
| /logs | يحتوي سجلات Hercules |
| /dasd | يحتوي صور أقراص MVS/CE |
| /certs | يحتوي الشهادات المستخدمة لتشفير TLS |
| Username | Password | Description |
|---|
| IBMUSER | SYS1 | مستخدم إداري لديه حق الوصول إلى كل شيء |
| MVSCE01 | CUL8TR | مستخدم إداري لديه حق الوصول إلى كل شيء |
| MVSCE02 | PASS4U | مستخدم عام |
| DC0 | DC0 | مستخدم ورشة DEFCON |
| DC1 | DC1 | مستخدم ورشة DEFCON |
| DC2 | DC2 | مستخدم ورشة DEFCON |
| DC3 | DC3 | مستخدم ورشة DEFCON |
| DC4 | DC4 | مستخدم ورشة DEFCON |
| DC5 | DC5 | مستخدم ورشة DEFCON |
| DC6 | DC6 | مستخدم ورشة DEFCON |
| DC7 | DC7 | مستخدم ورشة DEFCON |
| DC8 | DC8 | مستخدم ورشة DEFCON |
| DC9 | DC9 | مستخدم ورشة DEFCON |
| DC10 | DC10 | مستخدم ورشة DEFCON |
| DC11 | DC11 | مستخدم ورشة DEFCON |
| DC12 | DC12 | مستخدم ورشة DEFCON |
| DC13 | DC13 | مستخدم ورشة DEFCON |
| DC14 | DC14 | مستخدم ورشة DEFCON |
| DC15 | DC15 | مستخدم ورشة DEFCON |
| DC16 | DC16 | مستخدم ورشة DEFCON |
| DC17 | DC17 | مستخدم ورشة DEFCON |
| DC18 | DC18 | مستخدم ورشة DEFCON |
| DC19 | DC19 | مستخدم ورشة DEFCON |
| DC20 | DC20 | مستخدم ورشة DEFCON |
| DC21 | DC21 | مستخدم ورشة DEFCON |
| DC22 | DC22 | مستخدم ورشة DEFCON |
| DC23 | DC23 | مستخدم ورشة DEFCON |
cat upload.jcl|ncat --send-only -w1 127.0.0.1 3505https://github.com/mvslovers/rdrprep على جهاز Linux الخاص بكhttps://github.com/mvslovers/jcc إلى هذا المجلدsudo apt install wine wine32GETSPLOIT/hello.c:
wine ./jcc/jcc.exe -I./jcc/include -o ./GETSPLOIT/hello.c./jcc/prelink -s ./jcc/objs hello.load hello.objhello.load إلى ./GETSPLOIT: cp hello.load GETSPLOIT./usersjcl.pyrdrprep وأرسِلها واحدة تلو الأخرى:
for i in *.jcl; do echo $i;rdrprep $i;cat reader.jcl|ncat --send-only -w1 172.17.0.3 3506; read; doneprinters/prt00e.txt لمعرفة اكتمال كل مهمةweb3270.ini حسب الاقتضاءpython3 -u ./server.py --config /path/to/config --certs /path/to/certsDC00.jclDC23.jcl./usersautomation.py: سكربت أتمتة MVS بلغة بايثون يُستخدم للنشر إلى Dockermatrix.txt: اتبع الأرنب الأبيضrexx/DEBRUIJN.rex: سكربت REXX لتوليد نمط de Bruijnrexx/decodei.rex: يفكّك تعليمات MVS السداسية العشرية إلى صيغة مفهومة للبشرmotd.txt: ملف CLIST الذي يعمل عند تسجيل الدخول إلى TSOmvs.sh: سكربت تشغيل الحاوية لإطلاق web3270 وhercules