আমাদের অবকাঠামোতে WordPress এর REST API ব্যাচ এন্ডপয়েন্টের খোঁজ তিনগুণেরও বেশি বেড়েছে
26 অক্টোবরের সপ্তাহে আমাদের অবকাঠামোতে WordPress এর REST API ব্যাচ এন্ডপয়েন্ট খুঁজেছে এমন উৎসের সংখ্যা আগের সাপ্তাহিক গড়ের 3.3 গুণে পৌঁছেছে। এই এন্ডপয়েন্টই wp2shell ত্রুটি শৃঙ্খলের প্রবেশপথ। স্ক্যানাররা ব্যাকআপ, ডিবাগ পেজ এবং অ্যাপ্লিকেশনের অভ্যন্তরীণ অংশও আগের চেয়ে বেশি খুঁজেছে।
291 Intercept আমাদের সাপ্তাহিক প্রতিবেদন। এতে জানাই, স্বয়ংক্রিয় স্ক্যানাররা আমাদের নিজস্ব অবকাঠামোতে কী কী খুঁজেছে, যাতে আপনি নিজের সিস্টেমে একই জিনিসগুলো যাচাই করতে পারেন। প্রতিটি সংস্করণে এমন একটি সপ্তাহের কথা থাকে, যা অন্তত সাত দিন আগে শেষ হয়েছে।
26 অক্টোবরের সপ্তাহে আমাদের অবকাঠামোতে সবচেয়ে স্পষ্ট পরিবর্তন ছিল একটি নির্দিষ্ট WordPress ঠিকানার জন্য অনুরোধের হঠাৎ বৃদ্ধি: /wp-json/batch/v1। প্রায় 40টি উৎস এটি চেয়েছে, যা আগের তিন সপ্তাহের সাপ্তাহিক গড়ের 3.3 গুণ। এই এন্ডপয়েন্ট থেকেই wp2shell শুরু হয়। এটি WordPress কোরের দুটি ত্রুটির একটি শৃঙ্খল, যার মাধ্যমে লগইন ছাড়াই একজন আক্রমণকারী কোনো সাইটে কোড চালাতে পারে।
সামগ্রিকভাবেও সপ্তাহটি ছিল বেশ ব্যস্ত: প্রায় 620টি উৎস আমাদের ইন্টারনেটমুখী অবকাঠামোতে খোঁজাখুঁজি চালিয়েছে, যা আগের তিন সপ্তাহের গড়ের চেয়ে 10% বেশি। প্রধান লক্ষ্য এখনও WordPress: 66% উৎস WordPress লগইন, XML-RPC বা প্লাগইন পাথ খুঁজেছে, যা আগের চেয়ে 20% বেশি। অ্যাপ্লিকেশনের যেসব অংশ গোপন থাকার কথা, স্ক্যানাররা সেগুলোও আগের চেয়ে বেশি খুঁজেছে।
wp2shell কী
/wp-json/ হলো WordPress এর REST API এর রুট, আর /wp-json/batch/v1 হলো এর ব্যাচ প্রসেসর, যা একগুচ্ছ API অনুরোধ একসঙ্গে সামলায়। Rapid7 এর তথ্য অনুযায়ী, wp2shell দুটি ত্রুটিকে জুড়ে দেয়। CVE-2026-63030 হলো ওই ব্যাচ প্রসেসরের একটি লজিক ত্রুটি, আর CVE-2026-60137 হলো পোস্ট এন্ডপয়েন্টের একটি SQL ইনজেকশন। দুটিকে একসঙ্গে কাজে লাগালে অ্যাকাউন্ট ছাড়াই যে কেউ WordPress 6.9.0 থেকে 6.9.4 এবং 7.0.0 থেকে 7.0.1 সংস্করণে কোড চালাতে পারে।
ত্রুটিটি প্রকাশ করা হয় 17 জুলাই 2026 তারিখে, এবং Rapid7 জানিয়েছে যে CISA 21 জুলাই এটিকে তাদের Known Exploited Vulnerabilities ক্যাটালগে যুক্ত করেছে। সংশোধিত রিলিজগুলো হলো 6.9.5, 7.0.2 এবং 7.1 Beta 2।
যে ত্রুটির সমাধান ইতিমধ্যে বেরিয়ে গেছে, তার খোঁজ কেন? স্ক্যানারদের জন্য প্রতিটি সাইট ঝুঁকিপূর্ণ হওয়ার দরকার নেই, কয়েকটি হলেই যথেষ্ট। একটি অনুরোধে তাদের খরচ প্রায় শূন্য, আর যে সাইট এখনও আক্রান্ত সংস্করণে রয়ে গেছে, সেখানে আবার ফিরে আসা তাদের জন্য লাভজনক।
WordPress স্ক্যানিংয়ের পরিচিত দিক
কয়েকটি দেশে ছড়িয়ে থাকা প্রায় 20টি উৎসের একটি সমন্বিত টুলকিট একই তালিকা ধরে প্রায় দশটি পাথ খুঁজেছে। এটি একই ফাইল নানা ফোল্ডারের নামে চেয়েছে, যেমন /wp/wp-includes/wlwmanifest.xml, /shop/wp-includes/wlwmanifest.xml এবং /wordpress/wp-includes/wlwmanifest.xml, সঙ্গে ছিল /xmlrpc.php।
wlwmanifest.xml হলো Windows Live Writer এর ম্যানিফেস্ট ফাইল, যা ডিফল্ট WordPress ইনস্টলেশনে থাকে। প্রচলিত ফোল্ডারগুলোর অধীনে এটি খোঁজা হলো প্লাগইন বা থিমের এক্সপ্লয়েট চেষ্টার আগে WordPress সাইট শনাক্ত করার একটি উপায়। এরপরের ধাপ XML-RPC: গবেষকেরা 2015 সালে দেখতে পান যে এর system.multicall মেথড একটি অনুরোধেই একজন আক্রমণকারীকে শত শত পাসওয়ার্ড চেষ্টা করার সুযোগ দেয়।
পড়ে থাকা ফাইল ও অভ্যন্তরীণ অংশ
আগের তিন সপ্তাহের তুলনায় ব্যাকআপ ও ডাম্প ফাইল খোঁজা উৎসের সংখ্যা 73% বেড়েছে, Spring Boot actuator এর মতো অ্যাপ্লিকেশনের অভ্যন্তরীণ অংশ খোঁজা উৎস বেড়েছে 63%, আর /phpinfo.php ও /info.php এর মতো ডায়াগনস্টিক পেজ চাওয়া উৎস বেড়েছে 52%। যেহেতু মোট উৎসের সংখ্যাও বেড়েছে, তাই এদের অনুপাত তুলনামূলক কম বদলেছে: মোট উৎসের মধ্যে ডায়াগনস্টিক পেজের অংশ গড়ে 15% থেকে বেড়ে 21% হয়েছে। নিচের চার্টে এই সপ্তাহের ছয়টি বিভাগ দেখানো হয়েছে; প্রতিটির ক্ষেত্রে এই সপ্তাহে উৎসের অনুপাত আগের তিন সপ্তাহের গড়ের পাশাপাশি রাখা হয়েছে।
সব আলাদা উৎসের মধ্যে প্রতিটি লক্ষ্যকে নিশানা করা উৎসের অনুপাত, শতাংশে। একটি উৎস একাধিক লক্ষ্যকে নিশানা করতে পারে, তাই অনুপাতগুলোর যোগফল 100% ছাড়িয়ে যায়।
| এই সপ্তাহ | আগের 3 সপ্তাহের গড় | |
|---|---|---|
| ব্যাকআপ ও ডেটাবেস ডাম্প | 12% | 9% |
| অ্যাপ্লিকেশন ম্যানেজমেন্ট এন্ডপয়েন্ট | 13% | 9% |
| ডিবাগ ও ডায়াগনস্টিক পেজ | 21% | 15% |
| WordPress লগইন ও ফাইল | 66% | 61% |
| প্রকাশ্যে থাকা সোর্স কোড (Git, SVN) | 29% | 24% |
| গোপন তথ্য ও কনফিগারেশন ফাইল | 33% | 33% |
/actuator/env খুঁজেছে প্রায় 40টি উৎস, যা আগের গড়ের 2.4 গুণ। Spring Boot এ এই এন্ডপয়েন্ট অ্যাপ্লিকেশনের কনফিগারেশন প্রপার্টিগুলো দেখায়। Spring এর ডকুমেন্টেশন অনুযায়ী ডিফল্টভাবে HTTP দিয়ে শুধু health এ পৌঁছানো যায় এবং env এর মানগুলো ডিফল্টভাবে মাস্ক করা থাকে। কিন্তু ডেভেলপাররা অ্যাক্সেস সীমিত না করে এটি খুলে দিলে এটি ক্রেডেনশিয়াল, API কি এবং অভ্যন্তরীণ সেটিংস ফাঁস করতে পারে। ভুলে যাওয়া WordPress কনফিগ ব্যাকআপ /wp-config.php.bak খোঁজা উৎসের সংখ্যা দ্বিগুণ হয়ে প্রায় 40টিতে পৌঁছেছে।
প্রায় 20টি উৎসের দ্বিতীয় একটি টুলকিট এক অভিযানেই এসব আগ্রহ মিশিয়ে খুঁজেছে: /.env, /.git/config, /info.php, /config.json, /server-status এবং /debug/default/view। শেষ পাথটি Yii 2 ডিবাগারের, যা সেশন ডেটা, এনভায়রনমেন্ট ভেরিয়েবল এবং ডেটাবেস কোয়েরি দেখায়। Yii এর গাইড অনুযায়ী এটি সাধারণত শুধু localhost থেকে কাজ করে, কিন্তু 30 সেপ্টেম্বর প্রকাশিত CVE-2026-103475 yii2-starter-kit এর 4.2.0 পর্যন্ত সংস্করণগুলোকে নিয়ে, যেগুলোর ডিফল্ট কনফিগারেশন এটিকে সব IP ঠিকানার জন্য খুলে দেয়।
গত সপ্তাহের ধারাবাহিকতা
গত সংস্করণে আমরা উল্লেখ করেছিলাম যে আরও বেশি স্ক্যানার সাবফোল্ডারে .env ফাইল খুঁজছে। সেই প্রবণতা অব্যাহত ছিল। /v2/.env ও /old/.env প্রতিটি খুঁজেছে প্রায় 60টি উৎস, যা আগের গড়ের মোটামুটি দ্বিগুণ; /production/.env খুঁজেছে 50টি এবং /storage/.env খুঁজেছে 40টি উৎস। সব মিলিয়ে 200টি উৎস গোপন তথ্য ও কনফিগারেশন ফাইল খুঁজেছে, যা 16% বেশি এবং মোট উৎস বৃদ্ধির সঙ্গে মোটামুটি সামঞ্জস্যপূর্ণ, তাই এদের অনুপাত 33% এ স্থির ছিল। মাত্রাটা বোঝাতে বলা যায়, গবেষকেরা ফেব্রুয়ারিতে জানিয়েছিলেন যে 12,088,677টি IP ঠিকানা প্রকাশ্যে অ্যাক্সেসযোগ্য .env ধরনের ফাইল পরিবেশন করছে।
গত সপ্তাহে যে Git অনুসন্ধান দিয়ে আমরা প্রতিবেদন শুরু করেছিলাম, তার অনুপাত কমেছে, তবে তা আগের স্তরের চেয়ে ওপরেই আছে। সব মিলিয়ে 170টি উৎস সোর্স কোড রিপোজিটরি খুঁজেছে, যা তিন সপ্তাহের গড়ের চেয়ে 20% বেশি, যদিও মোট উৎসের মধ্যে এদের অংশ 37% থেকে কমে 29% হয়েছে।
কারা খুঁজছিল
অর্ধেকের বেশি উৎস (55%) এসেছে ক্লাউড ও হোস্টিং নেটওয়ার্ক থেকে, যার মধ্যে DigitalOcean ও Google Cloud প্রতিটির ভাগ 20%, এবং সব উৎসের 85% দেখা গেছে মাত্র এক দিন। বেশিরভাগই মানুষের মতো দেখাতে চেয়েছে: 82% সাধারণ ব্রাউজারের ভান করা স্ট্রিং পাঠিয়েছে, অথচ 85% আচরণ করেছে স্বয়ংক্রিয় টুলের মতো, অর্থাৎ ছদ্মবেশটা খুবই পাতলা।
যা থেমে গেছে
/wp-content/plugins/hellopress/wp_filemanager.php এর জন্য অনুরোধ আগে সপ্তাহে গড়ে প্রায় 20টি উৎস থেকে আসত, এখন তা প্রায় শূন্যে নেমে এসেছে, অর্থাৎ 79% কম। স্ক্যানাররা অন্য দিকে সরে গেছে কি না, তা বলার সময় এখনও আসেনি। /service-account.json এর মতো ক্লাউড কি ফাইলের খোঁজ মোটামুটি স্থির ছিল, প্রায় 70টি উৎসে।
করণীয়
- আপনার WordPress সংস্করণ যাচাই করুন। সেটি 6.9.0 থেকে 6.9.4 অথবা 7.0.0 থেকে 7.0.1 এর মধ্যে হলে এখনই 6.9.5 বা 7.0.2 এ আপডেট করুন।
- .env ফাইল পাবলিক ফোল্ডারের পুরোপুরি বাইরে রাখুন, পুরোনো রিলিজ ও সংস্করণভিত্তিক সাবফোল্ডারসহ। ওয়েব রুটের এক স্তর ওপরে রাখাই নিরাপদ।
- ব্যাকআপ ও ডাম্প মুছে ফেলুন, যেমন
/database.sqlবা/wp-config.php.bak, ব্রাউজার থেকে পৌঁছানো যায় এমন যেকোনো জায়গা থেকে। - অভ্যন্তরীণ অংশ সুরক্ষিত করুন। Spring Boot actuator এন্ডপয়েন্টে অ্যাক্সেস সীমিত করুন এবং env মাস্কিং চালু রাখুন, phpinfo এর পরীক্ষামূলক পেজ সরিয়ে ফেলুন, আর Yii ডিবাগারকে শুধু localhost এ সীমাবদ্ধ রাখুন।
- XML-RPC বন্ধ করুন, যদি আপনার সাইটে কোনো কিছুর জন্য এটি দরকার না হয়।
এই পর্যবেক্ষণ সম্পর্কে
এই প্রতিবেদন তৈরি করে 291 Heat Seeker One, 291 Group এর নিরাপত্তা পর্যবেক্ষণ ব্যবস্থা, যা চলে আমাদের নিজস্ব নিরাপত্তা অপারেশনস প্ল্যাটফর্ম 291 Crossband এ। এতে শুধু 291 Group এর নিজস্ব ইন্টারনেটমুখী অবকাঠামোর ট্রাফিক অন্তর্ভুক্ত।
সংখ্যাগুলো আসন্নমানে দেওয়া হয়েছে। অনুপাত ও পরিবর্তন মাপা হয়েছে অনুরোধের সংখ্যা দিয়ে নয়, আলাদা উৎসের সংখ্যা দিয়ে, এবং শুধু সেই প্যাটার্নগুলোই রাখা হয়েছে যা অন্তত 20টি আলাদা উৎস থেকে দেখা গেছে। দেশ বলতে উৎসগুলোর সার্ভার কোথায় তা বোঝায়, যারা সেগুলো চালাচ্ছে তারা কোথায় আছে তা নয়। নেটওয়ার্কের ধরন নির্ধারিত হয় প্রতিটি নেটওয়ার্ক কে পরিচালনা করে তার ভিত্তিতে; কেবল বড়, সুপরিচিত প্রদানকারীদের নামই উল্লেখ করা হয়।