Kaspersky ने जुलाई 2025 से PyPI पर अपलोड malicious wheel packages की रिपोर्ट की, जिनसे Windows और Linux सिस्टम पर ZiChatBot पहुंचा।[3][6] ZiChatBot की खास तकनीक यह थी कि उसने attacker run C2 server की जगह Zulip REST APIs को command and control infrastructure की तरह इस्तेमाल किया।[4] टीमों को uuid32 utils, colorinal,...

Create a landscape editorial hero image for this Studio Global article: OceanLotus PyPI Attack: How ZiChatBot Abused Zulip APIs for C2. Article summary: Kaspersky linked a July 2025 malicious PyPI wheel package campaign—uuid32 utils, colorinal and termncolor—to OceanLotus; the packages targeted Windows and Linux and delivered a new malware family, ZiChatBot.. Topic tags: cybersecurity, malware, pypi, python, supply chain security. Reference image context from search candidates: Reference image 1: visual subject "Through our daily threat hunting, we noticed that, beginning in July 2025, a series of malicious wheel packages were uploaded to PyPI (the Python Package Index). We shared this inf" source context "OceanLotus suspected of distributing ZiChatBot malware via wheel packages in PyPI | Securelist" Reference image 2: visual subject "In a calculated move that signals the expansion of st
Kaspersky की खोज को सही संदर्भ में समझना जरूरी है: यह Python users और developer environments को निशाना बनाने वाली malicious package-distribution campaign थी, न कि PyPI या Zulip के compromise की रिपोर्ट। सार्वजनिक रिपोर्टिंग के अनुसार, जुलाई 2025 से PyPI यानी Python Package Index पर कुछ Python wheel packages अपलोड किए गए, जो चुपचाप Windows और Linux सिस्टम पर ZiChatBot नाम के पहले से अज्ञात malware family को पहुंचाते थे।
इस campaign की सबसे असामान्य बात PyPI का इस्तेमाल भर नहीं थी। असली twist ZiChatBot का command-and-control यानी C2 design था: Kaspersky analysis पर आधारित रिपोर्टिंग कहती है कि malware ने किसी dedicated attacker-controlled C2 server से बात करने के बजाय Zulip REST APIs को C2 infrastructure की तरह इस्तेमाल किया।
Kaspersky के Securelist write-up के मुताबिक, researchers ने daily threat hunting के दौरान देखा कि जुलाई 2025 से Python Package Index पर malicious wheel packages की एक series अपलोड की गई थी। Kaspersky ने यह जानकारी public security community के साथ साझा की और बाद में malware को repository से हटा दिया गया।
ये packages सिर्फ खाली या खराब decoy नहीं थे। Kaspersky के अनुसार, wheel packages अपने PyPI pages पर बताए गए features लागू भी करते थे, लेकिन उनका असली मकसद hidden malicious files deliver करना था। The Hacker News ने भी Kaspersky की यही finding रिपोर्ट की कि packages देखने में functional थे, पर Windows और Linux systems पर ZiChatBot stealthily deliver करने के लिए बनाए गए थे।
Public reporting में इस campaign से जुड़ी तीन fake PyPI libraries के नाम सामने आए हैं:
uuid32-utilscolorinaltermncolorAttribution यानी हमले को किस group से जोड़ा जाए, इस हिस्से को सावधानी से पढ़ना चाहिए। Kaspersky के Securelist post में कहा गया कि samples को Kaspersky Threat Attribution Engine में analysis के लिए submit किया गया और packages का link OceanLotus पर threat-intelligence report में चर्चा किए गए malware से हो सकता है। वहीं Kaspersky का threat-research index अधिक सीधे शब्दों में कहता है कि कंपनी PyPI ZiChatBot activity को OceanLotus APT से attribute करती है।
एक public summary ने इस attribution को moderate confidence के रूप में पेश किया।
उपलब्ध सार्वजनिक जानकारी के आधार पर यह cross-platform dropper chain थी। Kaspersky के threat-research index के अनुसार, malicious PyPI wheel packages ने Windows और Linux दोनों को target किया और उनमें ऐसा dropper था जो ZiChatBot malware deliver करता था।
एक public summary के मुताबिक, infection chain wheel package से DLL या .SO dropper extract करती थी, फिर Windows पर Registry या Linux पर crontab के जरिए persistence बनाती थी, और उसके बाद ZiChatBot deploy करती थी।
इसलिए जांच का दायरा सिर्फ production servers तक सीमित नहीं रहना चाहिए। Developer workstations, virtual environments, build runners, CI jobs और container images भी महत्वपूर्ण हैं, क्योंकि ऐसे package अक्सर development और build pipeline में install होते हैं।
यह case एक और अहम सबक देता है: कोई package functional है, इसका मतलब यह नहीं कि वह भरोसेमंद भी है। Kaspersky ने कहा कि malicious wheels अपने PyPI pages पर बताए गए features सचमुच implement करते थे, जबकि साथ-साथ hidden malicious files भी deliver करते थे।
ZiChatBot की खास बात यह थी कि उसने एक legitimate collaboration platform को C2 layer की तरह abuse किया। Kaspersky findings पर आधारित रिपोर्टिंग के अनुसार, ZiChatBot किसी dedicated C2 server से communicate नहीं करता था; इसके बजाय उसने public team-chat application Zulip की REST APIs की series को command-and-control infrastructure के रूप में इस्तेमाल किया।
Zulip की documented APIs message भेजने, message पाने, files upload करने, messages edit/delete करने, message narrows बनाने और channel topics के साथ काम करने जैसी operations support करती हैं। Zulip की bot documentation यह भी बताती है कि bots users द्वारा भेजे गए messages को intercept, view और process कर सकते हैं, फिर replies के रूप में नए messages भेज सकते हैं।
High level पर इसका मतलब है कि operator instructions chat messages या topic-scoped messages के रूप में रखे जा सकते हैं, और malware relevant messages retrieve करके results उसी service के जरिए वापस post कर सकता है। यहां उपलब्ध public sources exact Zulip workspace, bot credentials, endpoint sequence या ZiChatBot command set disclose नहीं करते। इसलिए सुरक्षित और तथ्य-आधारित वर्णन यही है कि ZiChatBot ने attacker-owned C2 infrastructure पर निर्भर रहने के बजाय legitimate Zulip REST API functionality को C2 के लिए abuse किया।
Zulip का नाम आने का मतलब यह नहीं कि Zulip itself breach हुआ था। cited reporting normal REST API और bot-style messaging functionality के abuse की बात करती है, chat service के compromise की नहीं।
इसी तरह, यह भी नहीं कहा गया कि PyPI infrastructure compromise हुआ था। Kaspersky की report malicious wheel packages के PyPI पर upload होने की बात करती है और कहती है कि malware बाद में repository से हटा दिया गया।
Defenders के लिए practical takeaway यह है कि किसी legitimate collaboration service पर जाने वाला traffic भी suspicious हो सकता है, अगर वह ऐसे host, process, CI job या service account से आ रहा हो जिसका उस service से कोई सामान्य business reason नहीं है। केवल attacker-owned domains की blocklist पर निर्भर detection इस pattern को miss कर सकती है। इसलिए investigation में destination reputation के साथ-साथ process context और expected business use भी देखा जाना चाहिए।
सबसे पहले package inventory देखें। Developer machines, build runners, virtual environments, dependency lockfiles और container images में uuid32-utils, colorinal और termncolor खोजें।
जुलाई 2025 से आगे की installation timelines review करें, क्योंकि Kaspersky ने malicious wheel uploads की शुरुआत इसी period से बताई है। अगर इन named packages में से कोई logs या artifacts में दिखता है, तो सिर्फ package delete करके आगे न बढ़ें; environment को preserve कर investigation करें।
Windows systems पर unexpected Registry persistence और Linux systems पर suspicious crontab entries देखें। यह campaign की public infection-chain summary से मेल खाता है।
Network और process telemetry में ऐसे Zulip API activity की जांच करें जो Python interpreters, package-install processes, CI workers, servers या service accounts से आ रही हो, जबकि वे normally Zulip use नहीं करते। असली सवाल यह नहीं है कि Zulip legitimate है या नहीं; सवाल यह है कि उस particular host और process के पास Zulip APIs call करने की legitimate वजह है या नहीं।
अंत में, functional behavior को trust का प्रमाण न मानें। इस campaign में packages कथित तौर पर अपने advertised features deliver करते थे, लेकिन साथ ही malicious files के droppers की तरह भी काम करते थे।
OceanLotus-linked PyPI campaign में जुलाई 2025 से malicious wheel packages upload किए गए और public reporting ने uuid32-utils, colorinal और termncolor जैसे packages के नाम बताए। इन packages ने Windows और Linux systems पर ZiChatBot deliver किया, और ZiChatBot की defining operational choice यह थी कि उसने dedicated attacker-run C2 server के बजाय Zulip REST APIs को command-and-control के लिए इस्तेमाल किया।
Studio Global AI
Use this topic as a starting point for a fresh source-backed answer, then compare citations before you share it.
Kaspersky ने जुलाई 2025 से PyPI पर अपलोड malicious wheel packages की रिपोर्ट की, जिनसे Windows और Linux सिस्टम पर ZiChatBot पहुंचा।[3][6]
Kaspersky ने जुलाई 2025 से PyPI पर अपलोड malicious wheel packages की रिपोर्ट की, जिनसे Windows और Linux सिस्टम पर ZiChatBot पहुंचा।[3][6] ZiChatBot की खास तकनीक यह थी कि उसने attacker run C2 server की जगह Zulip REST APIs को command and control infrastructure की तरह इस्तेमाल किया।[4]
टीमों को uuid32 utils, colorinal, termncolor की जांच, जुलाई 2025 के बाद की installs, Registry/crontab persistence और अनपेक्षित Zulip API traffic देखना चाहिए।[1][2][3][4]