ts icon
سرور تیم اسپیک گاردایران

پرچمداران

  1. DeMoN

    DeMoN

    مدیر ارشد


    • امتیاز

      423

    • تعداد ارسال ها

      2,564


  2. R3DN4X314

    R3DN4X314

    کاربر فعال


    • امتیاز

      143

    • تعداد ارسال ها

      71


  3. mownten

    mownten

    کاربر انجمن


    • امتیاز

      112

    • تعداد ارسال ها

      313


  4. An0int3d

    An0int3d

    کاربر انجمن


    • امتیاز

      111

    • تعداد ارسال ها

      525



مطالب محبوب

در حال نمایش مطالب دارای بیشترین امتیاز از زمان سه شنبه, 9 اردیبهشت 1399 در همه بخش ها

  1. 9 امتیاز
    قبل از اینکه دوستان راهنماییتون کنند باید با خودتون بشینید فک کنید! هدفتون چیه , ارتیست بازی؟ تخریب ؟ چی شمارو به این فکر رسوند که هکر بشید؟ اجازه بدید کلیشه ای برخورد کنم با قضیه چه نوع هکری؟ کلاه سفید , سیاه ....؟ از نوع سوال شما مشخص هستش حتی کوچکترین تلاشی هم براش نکردید که اگر میکردید سوالتون رو در مسیر مشخص تری مطرح میکردید با این حساب بعد از کلی کن کاشت کردن و جستجو میرسید به چندتا ابزار اماده و استفاده از اونها و داستانی که برای همه پیش میباد توهم هکر بودن که با این نوع ذهنیت ها واژه هک هم خنده دار شده و میشه به عنوان تمسخر یک شخص ازش استفاده کنید. اول مطالعه کنید راجع به هکر ها بعد سوالتون رو مطرح کنید تا عزیزان راهنماییتون کنند و سردرگم نشید شما یک شخص رو توی یک دنیای دیگه میخوایید پیدا کنید و فقط اسم طرف رو بلدید جزییات سوال شما تا این حد گنگ هست انتظار نداشته باشید جواب مشخص بگیرید. هر نوع تایپ از هکری که میخواید بشید مسیر و نقشه راه طولانی در پیش دارید که هر مسیری یه دنیا برای خودش داره و یک علم هستش یکی از این مسیر های مهم برنامه نویسی هستش. شما اماده اید با مجموعه ای از علم ها روبرو بشید؟ بله هک مجموعه ای از چندین علم هستش سختش نمکنم اما اهمیت موضوع رو براتون توضیح دادم اگه ارادشو دارید پس بسم الله... موفق باشید.
  2. 9 امتیاز
    البته کد های این فایل ، که assembly نامیده میشه ، کد های زبان برنامه نویسی اسمبلی نیست ! منبع متن زیر : https://www.aftabir.com/ ● مانیفیست اسمبلی ( Assembly Manifest ) یک اسمبلی شامل بلاکی از داده ها است که "مانیفست " ، نامیده می شود . مانیفست ، جدولی است که هر entry آن نام یک فایل بوده و بعنوان بخشی از اسمبلی در نظر گرفته خواهد شد.مانیفست شامل متا دیتا ئی است که بمنظور مشخص نمودن ملزومات ورژن ، یکسان سازی امنیت ، و سایر اطلاعاتی مورد نیازی است که از آنان بمنظور تعریف حوزه اسمبلی و مراجع لازم بمنظور دستیابی و استفاده از منابع ها و کلاس ها ، استفاده می گردد. با توجه به اینکه متادیتا باعث می شود که یک اسمبلی دارای ویژگی خود تشریحی گردد ، CLR همواره دارای اطلاعات مورد نیاز در رابطه با اسمبلی بمنظور اجراء آن خواهد بود . تمامی برنامه ها که توسط CLR اجراء می گردند ، می بایست ترکیبی از یک و یا چندین اسمبلی باشند . تمام فایل هائی که یک اسمبلی را ایجاد می نمایند در مانیفست اسمبلی لیست می گردند . منبع متن زیر :http://maven.apache.org/ An "assembly" is a group of files, directories, and dependencies that are assembled into an archive format and distributed. و در اخر میتونید برای اطلاعات بیشتر به داکیومنت های مایکروسافت مراجعه کنید: An assembly manifest is an XML file that describes a side-by-side assembly. Assembly manifests describe the names and versions of side-by-side assemblies, files, and resources of the assembly, as well as the dependence of the assembly on other side-by-side assemblies. Correct installation, activation, and execution of side-by-side assemblies requires that the assembly manifest always accompany an assembly on the system.
  3. 8 امتیاز
    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py sudo python get-pip.py یا sudo apt update Installing pip for Python 3: sudo apt install python3-pip Installing pip for Python 2: sudo apt install python-pip
  4. 7 امتیاز
    سوالی که مطرح هست اینه که متغیر $name جزئی از فرم هست یا خیر ؟ - اگر پاسخ بله هست که کاری که باید انجام بشه کاملا مشخص هست ! - اگر پاسخ خیر هست و با توجه به اینکه به اساس SQL و SQL Injection آشنایی دارید ادامه این مطلب رو دنبال کنید آسیب پذیری واضح : در 90 درصد مواقع جدول کاربران شامل ستونی به اسم access_level ، user_type و یا غیره هست که بیانگر سطح دسترسی کاربر هست که با تحلیل پایگاه داده میتونید نام ستون رو پیدا کنید ؛ کافیه اون مقدار آپدیت بشه تا یوزر شما سطح دسترسی ادمین بگیره . پس بنا بر فرضیه گفته شده متغیر $mesal باید حاوی رشته زیر باشه : ', access_level = 'admin نکته : این تکنیک فقط در توابع غیر استانداردی مثل mysql_query و در صورتی که کاراکتر ها خنثی نشده باشند جواب خواهد داد ؛ در تکنیک های استانداردی مثل بایندینگ تمامی کاراکتر های موجود در پارامتر های یک فیلد ESCAPE و خنثی شده . عمل غیر ممکن در شرایط موجود : با توجه به اینکه متغیر mesal وسط رشته query اپدیت هست (قبل از where) و متغیر name (بعد از where) قرار گرفته ، امکان تاثیر گذاری بر روی اون قسمت وجود ندارد . اما چرا گفته شده غیر ممکن در شرایط موجود ؟ چرا که تابع mysql_query فقط پاسخگوی یک statement بوده و هرگونه تلاش برای ارسال multiple statement به سمت SQL Parser پایگاه داده به وسیله این تابع با خطای php مواجه خواهد شد . در صورت استفاده از توابعی که از multiple statement پشتیبانی میکنند خیلی راحت میشه به شکل زیر به هدف مورد نظر رسید : $mesal = "' where name='example';" . $second_statement; در شرایطی که منظور از Name ، فیلد قبل از where clause باشد به راحتی با overwrite کردن آن ، مقدار تغییر خواهد کرد : $mesal = "', Name='Example";
  5. 7 امتیاز
    بخش اول - قسمت هشتم (قسمت اخر از بخش اول) تغیرات اصلاحی یوزر اکانت لینوکس ابزار های مختلفی برای تغیرات در یوزر ها در اختیارمون میذاره , مثل : usermod برای تغیرات در فیلد های اکانت یوزر ازش استفاده میکنیم passwd برای تغیر پسورد یوزر کاربرد داره chpasswd این دستور با دریافت یک فایل متنی حاوی یوزر ها و پسورد انتخوابی , پسورد تمام یوزر هارو تغیر میده chage برای تغیر تاریخ انقضای پسورد کاربرد داره chfn برای تغیر کامنت اطلاعات یوزر استفاده میشه chsh برای تغیر شل پیش فرض یوزر استفاه میشه دستور usermod اپشن های این دستور باعث تغیر در بیشتر فیلد های فایل /etc/passwd میشن و اپشن ها مشابه اپشن های دستور useradd هستند اپشن هایی مثل c , -e , -g- چند تا از اپشن های متفاوتش رو براتون میزارم l- تغیر اسم لاگین یوزر L- قفل کردن یوزر اکانت , بنابراین یوزر نمیتونه لاگین کنه p- تغیر پسورد یوزر U- باز کردن قفل یوزر passwd و chpasswd دستور passwd یک راه سریع برای تغیر فقط پسورده # passwd test Changing password for user test. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. اگه دستور رو به صورت خالی وارد کنید , پسورد یوزر فعلی عوض میشه اکه با اسم یوزر وارد کنید , پسورد اون یوزر عوض میشه (البته اگه روت باشید) با استفاده از اپشن e- میتونید یوزر رو مجبور به تغیر پسوردش کنید در صورت نیاز به تغیر پسورد دسته جمعی میتونید از chpasswd به صورت زیر استفاده کنید # chpasswd < users.txt در فایل متنی اسم های لاگین همراه با پسورد هاشون قرار میگیرین که با استفاده از ( : ) از هم جدا شدن , مثل : user:password chsh , chfn و chage دستور chsh طبق مثال زیر برای تغیر شل پیش فرض استفاه میشه # chsh -s /bin/csh test Changing shell for test. Shell changed. دستور chfn یک روش استانارد برای ذخیره اطلاعات در فیلد کامنت در فایل passwd فراهم میکنه که به جای اطلاعات معمول از اطلاعات مخصوص استفاده شده در یونیکس فینگر استفاه میکنه دستور finger به شما اجازه میده به راحتی در مورد یوزر ها اطلاعات کسب کنید # finger rednaxela Login: rednaxela Name: red naxela Directory: /home/rednaxela Shell: /bin/bash On since Thu Sep 20 18:03 (EDT) on pts/0 from 192.168.1.2 No mail. No Plan. البته به خاطر نگرانی های امنیتی در بیشتر لینوکس ها دستور فینگر غیر فعال شده یک نمونه از دستور chfn رو بدون پارامتر در مثال زیر میبینید # chfn test Changing finger information for test. Name []: Ima Test Office []: Director of Technology Office Phone []: (123)555-1234 Home Phone []: (123)555-9876 Finger information changed. # finger test Login: test Name: Ima Test Directory: /home/test Shell: /bin/csh Office: Director of Technology Office Phone: (123)555-1234 Home Phone: (123)555-9876 Never logged in. No mail. No Plan. حالا به مقدار فایل /etc/passwd نگاه کنید # grep test /etc/passwd test:x:504:504:Ima Test,Director of Technology,(123)5551234,(123)555-9876:/home/test:/bin/csh دستور chage مقادیر مرتبط با پسورد هارو دریافت و تنظیم میکنه d- مشخص کرن زمان اخرین تغیر پسورد E- مشخص کردن تاریخ انقضای پسورد I- مشخص کردن زمان غیر فعال شدن اکانت بعد از منقضی شدن پسورد m- مشخص کردن حداقل روز های ثابت موندن پسورد بعد از هر تغیر W- مشخص کرن تعداد روز هایی که قبل از منقضی شدن پسورد باید هشدار داده بشه گروه ها در لینوکس : گروه ها هم یکی دیگه از موضوعات امنیتی لینوکس هستن لینوکس ها با روش های مختلفی بحث گروه پیض فرض رو پیش میبرن بعضی از لینوکس ها یک گروه پیش فرض برای همه کاربر ها تعریف میکنن اگه سیستم شما هم همینکار رو میکنه باید مراقب باشید چون فایل هاتون ممکنه برای کاربرای دیگه هم قابل استفاده باشه بقیه لینوکس ها برای هر کاربر یک گروه جدا تعریف میکنن که از این مشگل امنیتی جلوگیری بشه هر گروه اسم خودش و یک کد منحصر به فرد داره که بهش میگیم gid شما میتونید از ابزار هایی برای اینجاد و مدیریت گروه خودتون استفاه کنید فایل /etc/group درست مثل یوزر اکانت ها , اطلاعات گروه ها هم در یک فایل نگه داری میشه این فایل شامل اطلاعات مربوط به هر گروه میشه که در مثال زیر یک نمونش رو میتونید ببینید root:x:0:root bin:x:1:root,bin,daemon daemon:x:2:root,bin,daemon sys:x:3:root,bin,adm adm:x:4:root,adm,daemon rednaxela:x:501: red:x:502: blue:x:503: mysql:x:27: test:x:504: مثل uid ها gid ها هم از الگوی خاصی تبعیت میکنن گروه هایی که برای اکانت های سیستمی در نظر گرفته میشه gid زیر 500 دارن و gid یوزر گروه ها از 500 شروع میشه محتوای فایل /etc/group از چهار فیلد تشکیل شدن , که به ترتیب : اسم گروه پسورد گروه gid گروه لیست یوزر هایی که به گروه تعلق دارن گرچه این موضوع مرسوم نیست ولی یوزر ها با استفاده از پسورد گروه میتونن عضو اون گروه بشن ایجاد گروه جدید : با استفاده از دستور groupadd شما میتونید گروه جدید اضافه کنید # /usr/sbin/groupadd guardiran # tail /etc/group haldaemon:x:68: xfs:x:43: gdm:x:42: rednaxela:x:501: red:x:502: blue:x:503: mysql:x:27: test:x:504: guardiran:x:505: وقتی یک گروه جدید میسازید هیچ یوزری در حالت دیفالت عضوش نیست برای اضافه کردن یوزر بهش از دستور usermod استفاده کنید # /usr/sbin/usermod -G guardiran rednaxela # /usr/sbin/usermod -G guardiran test # tail /etc/group haldaemon:x:68: xfs:x:43: gdm:x:42: rednaxela:x:501: red:x:502: blue:x:503: mysql:x:27: test:x:504: guardiran:x:505:rednaxela, test و همچنین با دستور groupmod میتونید مقادیر رو اصلاح کنید مثل پارامتر های -n و -g که برای تغیر اسم و gid استفاده میشن # /usr/sbin/groupmod -n theguardiran guardiran # tail /etc/group haldaemon:x:68: xfs:x:43: gdm:x:42: rednaxela:x:501: red:x:502: blue:x:503: mysql:x:27: test:x:504: theguardiran:x:505:rednaxela,test فایل پرمیشن ها : الان که با یوزر ها و گروه ها اشنا شدید وقتشه بریم سمت فایل پرمیشن ها , که قبلا اونارو در لیست فایل ها و دایرکتوری ها در کنار بقیه مشخصات مشاهده کردید $ ls -l total 68 —rw-rw-r-- 1 rednaxela rednaxela 50 2019-09-13 07:49 file1.gz —rw-rw-r-- 1 rednaxela rednaxela 23 2019-09-13 07:50 file2 —rw-rw-r-- 1 rednaxela rednaxela 48 2019-09-13 07:56 file3 —rw-rw-r-- 1 rednaxela rednaxela 34 2019-09-13 08:59 file4 —rwxrwxr-x 1 rednaxela rednaxela 4882 2019-09-18 13:58 myprog —rw-rw-r-- 1 rednaxela rednaxela 237 2019-09-18 13:58 myprog.c drwxrwxr-x 2 rednaxela rednaxela 4096 2019-09-03 15:12 test1 drwxrwxr-x 2 rednaxela rednaxela 4096 2019-09-03 15:12 test2 اولین فیلد در لیست بالا پرمیشن های فایل ها و دایرکتوری هارو مشخص میکنه و اولین کاراکتر در فیلد هم نوغ اون ابجکت رو مشخص میکنه — = files d = directories l = links c = character devices b = block devices n = network devices بعد از اون شما سه تا ست سه تایی میبینید که هر کدوم از ست های سه کاراکتری یک سطح دسترسی رو مشخص میکنن r = read permission w = write permission x = execute permission اگه یکی از پرمیشن ها گرفته شده باشه به جاش دش قرار میگیره ( - ) سه تا ست به معنای سه سطح امنیتی برای ابجکته ست اول , برای صاحب ابجکته ست دوم , برای گروهیه که ابجکت بهش تعلق داره ست سوم , برای بقیه یوزر هاست —rwxrwxr-x 1 rednaxela rednaxela 4882 2019-09-18 13:58 myprog مثلا نمونه بالا نشون میده که : اولا ابجکتمون فایله , چون اولین کاراکتر دش هستش ( - ) سه کاراکتر بعدی که متعلق به صاحب فایله میگه که یوزر هر سه اجازه ( خواندن , نوشتن , اجرا ) فایل رو داره سه کاراکتر بعدی یا همون ست دوم میگه که گروه فایل هم همون دسترسی هارو داره ولی ست اخر که برای سایر یوزر هاست پرمیشن نوشتن رو نداره پرمیشن های پیش فرض : پرمیشن های پیش فرض از طریق umask اعمال و نگه داری میشن $ touch newfile $ ls -l newfile —rw-r--r-- 1 rednaxela rednaxela 0 Sep 20 19:16 newfile فایل با استفاده از سطح دسترسی پیشفرضی که برامون مشخص شده ساخته شد دستور umask پرمیشن های پیش فرض رو مشخص و نمایش میده $ umask 0022 اولین عدد مشخص شده یک موضوع امنیتیه , به اسم sticky bit سه عدد بعدی مربوط به پرمیشن ها میشه برای اینکه معادل عددی پرمیشن ها اینجا استفاده میشن نگاهی به جدول زیر بندازید --- 0 no permissions --x 1 execute permission -w- 2 write permission -wx 3 write & execute permissions r-- 4 read permission r-x 5 read & execute permissions rw- 6 read & write permissions rwx 7 read & write & execute permissions (full) به نحوه کارکرد umask و مقداری که به دستور میدیم در مثال زیر دقت کنید و برای درک بهتر با جدول بالا مقایسه کنید میبینید که اولا مقدار دسترسی ای که به دستور میدیم از فایل گرفته میشه نه اینکه اون مقدار ست بشه و اینکه این مقدار از عدد شش کم شده نه هفت $ umask 026 $ touch newfile2 $ ls -l newfile2 -rw-r----- 1 rednaxela rednaxela 0 Sep 20 19:46 newfile2 توجه داشته باشید که مقدار تعریف شده روی دایرکتوری ها هم تاثیر داره $ mkdir newdir $ ls -l drwxr-x--x 2 rednaxela rednaxela 4096 Sep 20 20:11 newdir/ زمانی که لازم باشه مقدار سطح دسترسی یه ابجکت رو مستقیم تغیر بدیم از دستور chmod به شکل زیر استفاده میکنیم $ chmod 760 newfile $ ls -l newfile -rwxrw---- 1 rednaxela rednaxela 0 Sep 20 19:16 newfile میبینید که برخلاف مثال حالت پیشفرض , اینجا دقیقا سطح دسترسی ای که به دستور دادیم اعمال شده شما میتونید با استفاده از دستور chown مالکیت یوزر و گروه یک ابجکت رو تغیر بدید مثال زیر یوزر فایل رو تغیر میده # chown red newfile # ls -l newfile -rw-rw-r-- 1 red rednaxela 0 Sep 20 19:16 newfile مثال زیر هم یوزر و هم گروه فایل رو تغیر میده # chown red.share newfile # ls -l newfile -rw-rw-r-- 1 red share 0 Sep 20 19:16 newfile مثال زیر فقط گروه فایل رو تغیر میده , به کاراکتر دات دقت کنید # chown .share2 newfile # ls -l newfile -rw-rw-r-- 1 red share2 0 Sep 20 19:16 newfile البته برای تغیر فقط گروه فایل , میتونید از دستور chgrp هم استفاه کنید $ chgrp share3 newfile $ ls -l newfile -rw-rw-r-- 1 red share3 0 Sep 20 19:16 newfile اشتراک فایل ها : همونطور که تا الان حدس زدید ایجاد گروه ها راهی برای به اشتراک گذاشتن سطح دسترسی به فایل هاست و به عنوان اشتراک گذاری کاربرد داره در بخش کد های مربوط به پرمیشن ها دیدید که وقتی یک فایل جدید میسازید , لینوکس پرمیشن پیش فرض فایل رو بر اساس یوزر ایدی و گروه ایدی مشخص میکنه , تا اجازه دسترسی به یوزر های دیگه هم بده شما یا باید پرمیشن های فایل رو تغیر بدید یا باید گروه پیش فرض فایل رو تغیر بدید به گروهی که یوزرا اونجان این موضوع میتونه ازاردهنده باشه اگه شما بخواید موارد زیادی رو بسازید و به اشتراک بزارید , که خوشبختانه راه حل مناسبی داره سه بیت دیگه هست که لینوکس برای هر فایل و دایرکتوری ذخیره میکنه : (The set user id (SUID وقتی یک فایل توسط یک یوزر اجرا میشه , برنامه تحت پرمیشن صاحب فایل اجرا بشه (The set group id (SGID برای فایل : وقتی یک فایل اجرا میشه برنامه تحت پرمیشن گروه فایل عمل کنه , برای دایرکتوری : اگه فایلی داخل دایرکتوری ساخته شد , از گروه دایرکتوری به عنوان گروه پیش فرض استفاده کنه The sticky bit فایل بعد از پایان پروسه در مموری باقی بمونه بیت SGID برای اشتراک گذاری با اهمیته , با فعال کردن این بیت میتونید تمام فایل هایی که در دایرکتوریمون ساخته میشن رو مجبور کنید تا در گروه دایرکتوری قرار بگیرن هر کدوم از سه مورد ذکر شده مثل بحث پرمیشن ها با کد شناخته میشن , و این همون عدد اول از چهار عدد umask هستش در لیست زیر نمونه کد ها و معانیشون رو میتونید ببینید 0 هیچ کدوم از بیت ها ست نشده 1 sticky bit ست شده 2 SGID bit ست شده 3 SGID & sticky bit ست شدن 4 SUID bit ست شده 5 SUID & sticky bit ست شدن 6 SUID & SGID ست شدن 7 همه بیت ها ست شدن برای ساخت یک دایرکتوری مخصوص اشتراک گذاری تنها نیاز دارید بیت SGID برای دایرکتوری ست بشه $ mkdir testdir $ ls -l drwxrwxr-x 2 rednaxela rednaxela 4096 Sep 20 23:12 testdir/ $ chgrp shared testdir $ chmod g+s testdir $ ls -l drwxrwsr-x 2 rednaxela shared 4096 Sep 20 23:12 testdir/ $ umask 002 $ cd testdir $ touch testfile $ ls -l total 0 -rw-rw-r-- 1 rednaxela shared 0 Sep 20 23:13 testfile پایان قسمت هشتم از بخش اول پایان بخش اول
  6. 6 امتیاز
    http://zone-h.org/mirror/id/33480369 http://zone-h.org/mirror/id/33480366 http://zone-h.org/mirror/id/33480402 http://zone-h.org/mirror/id/33480401
  7. 6 امتیاز
    بخش دوم - قسمت دوم استفاده از پایپ ها : بعضی وقتا شما نیاز دارید خروجی یک دستور رو به عنوان ورودی به یک دستور دیگه بدید این کار از طریق هدایت خروجی و ورودی که قبلا گفتیم شدنیه ولی راه اصلی نیست $ rpm -qa > rpm.list $ sort < rpm.list abrt-1.1.14-1.fc14.i686 abrt-addon-ccpp-1.1.14-1.fc14.i686 abrt-addon-kerneloops-1.1.14-1.fc14.i686 abrt-addon-python-1.1.14-1.fc14.i686 abrt-desktop-1.1.14-1.fc14.i686 abrt-gui-1.1.14-1.fc14.i686 abrt-libs-1.1.14-1.fc14.i686 abrt-plugin-bugzilla-1.1.14-1.fc14.i686 abrt-plugin-logger-1.1.14-1.fc14.i686 abrt-plugin-runapp-1.1.14-1.fc14.i686 acl-2.2.49-8.fc14.i686 [...] راه اصلی استفاده از پایپ ها یا همون روش پایپینگه , فرمت و مثال : command1 | command2 $ rpm -qa | sort abrt-1.1.14-1.fc14.i686 abrt-addon-ccpp-1.1.14-1.fc14.i686 abrt-addon-kerneloops-1.1.14-1.fc14.i686 abrt-addon-python-1.1.14-1.fc14.i686 abrt-desktop-1.1.14-1.fc14.i686 abrt-gui-1.1.14-1.fc14.i686 abrt-libs-1.1.14-1.fc14.i686 abrt-plugin-bugzilla-1.1.14-1.fc14.i686 abrt-plugin-logger-1.1.14-1.fc14.i686 abrt-plugin-runapp-1.1.14-1.fc14.i686 acl-2.2.49-8.fc14.i686 [...] میبینید که خروجی همونه , در این حالت خروجی دستور اول ورودی دستور دومه برای پایپینگ میتونید از دستورات بیشتری هم استفاده کنید $ rpm -qa | sort | more $ rpm -qa | sort > rpm.list $ more rpm.list موضوع مهم بعدی که در همه زبان های برنامه نویسی اهمیت داره , ریاضیات هستش دو راه برای اعمال ریاضیات در بش اسکریپت وجود داره روش اول استفاده از دستور expr expr 1 + 5 این دستور تعدادی عملگر رو میشناسه که در لیست زیر میتونید ببینید ARG1 | ARG2 ARG1 & ARG2 ARG1 < ARG2 ARG1 <= ARG2 ARG1 = ARG2 ARG1 != ARG2 ARG1 >= ARG2 ARG1 > ARG2 ARG1 + ARG2 ARG1 - ARG2 ARG1 * ARG2 ARG1 / ARG2 ARG1 % ARG2 البته به صورت نرمال نمیتونید ازشون استفاه کنید , چون اکثرا این کاراکتر ها در شل معنای دیگه ای دارن , به همین دلیل از بک اسلش استفاده میشه $ expr 5 * 2 expr: syntax error $ expr 5 \* 2 10 $ cat test6 #!/bin/bash # mesale estefade az dastoore expr var1=10 var2=20 var3=$(expr $var2 / $var1) echo natije mishe : $var3 khorooji => $ chmod u+x test6 $ ./test6 natije mishe : 2 مثال زیر روش دوم برای انجام ریاضیاته که معمولا از اون روش استفاده میکنیم , به همین دلیل روش اول رو صرفا در حد اشنایی توضیح دادم روش دوم استفاده از براکت ها : این روش ساده تر و جامع تره , مثال زیر رو ببینید $ var1=$[1 + 5] $ echo $var1 6 $ var2=$[$var1 * 2] $ echo $var2 12 $ cat test7 #!/bin/bash var1=100 var2=50 var3=45 var4=$[$var1 * ($var2 - $var3)] echo javabe nahayi mishe : $var4 khorooji => $ chmod u+x test7 $ ./test7 javabe nahayi mishe : 500 میبینید که در این حالت حتی نیازی نیست نگران معنیه کاراکتر ها در شل بشید , خود شل به دلیل اینکه کاراکتر ها داخل براکت هستند هدف مارو تشخیض میده نکته بعدی که باید حل بشه محدودیت اعداد صحیح هستش شما میتونید از چند روش برای حل کردن موضوع استفاده کنید محدودیت اعداد صحیص رو در مثال زیر میتونید ببینید : $ cat test8 #!/bin/bash # var1=100 var2=45 var3=$[$var1 / $var2] # echo javabe nahayi mishe : $var3 khorooji => $ chmod u+x test8 $ ./test8 javabe nahayi mishe : 2 پر استفاده ترین روش ، استفاده از ماشین حساب داخلیه بش هستش bc $ bc Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type 'warranty'. 12 * 5.4 64.8 3.156 * (3 + 5) 25.248 quit نمونه های اعشاری رو که مشاهده کردید , بعد از اتمام کار برای خارج شدن از محیط ماشین حساب باید دستور quit رو تایپ کنید اعشار این ماشین حساب توسط یک متغیر درونی کنترل میشه , به نام scale شما میتونید با تغیر مقدار این متغیر خروجی محاصباتتون رو جوری که میخواید بگیرید $ bc -q 3.44 / 5 0 scale=4 3.44 / 5 .6880 quit اینجا ما مقدار 4 رو به متغیر دادیم و اعشارمون طبق سفارشمون داده شد قبل از شروع کار ، بنر برنامه رو برای تمیز بودن صفحه رد کردیم با اپشن -q ضمن مثال بالا , این ماشین حساب متغیر هارو هم میشناسه $ bc -q var1=10 var1 * 4 40 var2 = var1 / 5 print var2 2 quit استفاده از ماشین حساب بش در اسکریپت : اختصاص خروجیه دستور به متغیر رو یاتونه ؟ این همون راه استفاده در اسکریپتمونه , فرمت و مثال : variable=$(echo "options; expression" | bc) $ cat test9 #!/bin/bash var1=$(echo "scale=4; 3.44 / 5" | bc) echo javab mishe : $var1 khorooji => $ chmod u+x test9 $ ./test9 javab mishe : .6880 همونطور که دیدید , اول مقدار متغیر ماشین حساب رو 4 قرار دادیم , بعد مقدار محاصبه رو وارد کردیم , که تمام این به جای چاپ شدن با استفاده از پایپینگ به عنوان ورودی تزریق شد به ماشین حساب , و خروجی نهایی مراحل انجام شده در متغیر ما ریخته میشه شما میتونید به جای خود اعداد از متغیر ها هم استفاده کنید : $ cat test10 #!/bin/bash # var1=100 var2=45 # var3=$(echo "scale=4; $var1 / $var2" | bc) echo javab mishe : $var3 khorooji => $ ./test10 javab mishe : 2.2222 $ cat test11 #!/bin/bash # var1=20 var2=3.14159 # var3=$(echo "scale=4; $var1 * $var1" | bc) var4=$(echo "scale=4; $var3 * $var2" | bc) echo javab mishe : $var4 وقتایی که مقادیر طولانی دارید به ترتیب زیر هم میشه مقادیر رو وارد کرد : var1=$(bc << xx options statements expressions xx ) $ cat test12 #!/bin/bash # var1=10.46 var2=43.67 var3=33.2 var4=71 # var5=$(bc << EOF scale = 4 a1 = ( $var1 * $var2) b1 = ($var3 * $var4) a1 + b1 EOF ) echo javab mishe : $var5 چک کردن exit status هر دستوری که در شل اجرا میشه یه کد وضعیت اتمام داره که بعد از اتمام پروسه به شل تحویل داده میشه تا نتیجه کارش مشخص بشه این کد یه عدد بین 0 تا 255 هستش , شما میتونید از این عدد توی اسکریپت هاتون استفاده کنید لینوکس متغیری با نام علامت سوال فراهم میکنه که مقدار کد مربوط به اخرین دستور اونجا نگهداری میشه , شما باید به محض اتمام کار دستور ، از مقدار استفاده کنید : $ date Sat Jan 15 10:01:30 EDT 2019 $ echo $? 0 همونطور که میبینید کد وضعیت برای اجرای درست دستور میشه صفر , اگه اجرا با مشگلی مواجه بشه , کد از حالت صفر خارج میشه و بسته به شرایط مقدار میگیره , مثل : $ asdfg —bash: asdfg: command not found $ echo $? 127 چند تا نمونه از کدهای وضعیت خارج از صفر براتون میزارم بهتر اشنا بشید با موضوع 1 ارور ناشناخته عمومی 2 استفاده نادرست از دستور شل 126 دستور نمیتونه اجرا بشه 127 دستور پیدا نشد 128 ارگمان خروج نا معتبر 128+x ارور مهم با لینوکس سیگنال اکس 130 وقتی دستور در حال اجرا بوده کنترل سی انجام شده 255 کد خارج از محدوده در مثال زیر کد 126 میگه که یوزر پرمیشن مناسب رو نداره $ ./myprog.c —bash: ./myprog.c: Permission denied $ echo $? 126 نمونه متعارف بعدی که بعد از استفاده از پارامتر نامعتبر رخ میده $ date %t date: invalid date '%t' $ echo $? 1 دستور exit با استفاده از این دستور میتونیم به جای کد پیش فرض صفر برای اجرای مناسب , کد خودمونو بزاریم : $ cat test13 #!/bin/bash # test kardane exit status var1=10 var2=30 # var3=$[$var1 + $var2] echo javab mishe : $var3 # exit 5 khorooji => $ chmod u+x test13 $ ./test13 javab mishe : 40 $ echo $? 5 البته میتونید از متغیر هم برای مقدار دهی استفاده کنید : $ cat test14 #!/bin/bash # test kardane exit status var1=10 var2=30 var3=$[$var1 + $var2] # exit $var3 khorooji => $ chmod u+x test14 $ ./test14 $ echo $? 40 فقط مواضب باشید اینجور موقع ها جواب محاسبات بیشتر از 255 نشه , وگرنه مقدار مونده رو از اول دور میزنه , به مثال زیر توجه کنید : $ cat test14b #!/bin/bash # test kardane exit status var1=10 var2=30 var3=$[$var1 * $var2] echo javab mishe : $var3 # exit $var3 khorooji => $ ./test14b javab mishe : 300 $ echo $? 44 پایان قسمت دوم از بخش دوم
  8. 6 امتیاز
    بخش دوم - قسمت اول در بخش اول درمورد مقدمات و موارد مرتبط با اسکریپتینگ صحبت کردیم , حتی ممکنه به نظر برسه بعضی جاها یکم هم در حال دور شدن از بحث اصلیمون بودیم , ولی جلوتر که بریم متوجه کنترل بیشترتون روی مباحث میشید , معتقد بودم با این روش میتونم روی پیشرفت سطح بخش های بعدی و کنترل شما در یادگیری تعادل برقرار کنم , امیدوارم با پیشروی در بخش دوم این موضوع قابل لمس بشه استفاده از چندین دستور : یکی از عناصر ماهیت اسکریپتینگ به طور ساده میشه قابلیت استفاده از چندین دستور , و یا استفاده از خروجی یک پروسه یا دستور به عنوان ورودی یه دستور دیگه , شل به شما این اجازه رو میده تا زنجیره وار دستورات رو در یک مرحله اجرا کنید برای اجرای همزمان دستورات با هم تنها کافیه اونها رو با هم در یک خط نوشته و با ( ; ) از هم جدا کنید , مثل : $ date ; who Mon Feb 21 15:36:09 EST 2019 rednaxela tty2 2019-02-21 15:26 red tty3 2019-02-21 15:26 blue tty1 2019-02-21 15:26 شما اولین شل اسکریپتتون رو نوشتید , در خط اول خروجی اولین دستور و در سه خط بعد خروجی دومین دستور چاپ شده , طبق ترتیبی که دستورات نوشته شدن با این روش شما میتونید دستورات رو تا 255 کاراکتر در هر خط بنویسید که با نوشتن تو یک فایل و اجرای اون دیگه لازم نیست هر بار این عمل تکرار بشه ساخت فایل اسکریپت : وقتی شروع به ساخت فایل شل اسکریپت میکنید , در وحله اول نیاز دارید تعین کنید فایل با کدوم شل خونده بشه , که این کار رو در اولین خط شل اسکریپتمون انجام میدیم , با استفاده از کد زیر : #!/bin/bash در یک خط نرمال شل اسکریپت از کاراکتر # برای مشخص کردن توضیحات استفاده میشه و کد های بعد از اون قدرت اجرایی ندارن , هرچند اولین خط از شل اسکریپتمون بحثش جداست همین موضوع باعث میشه شما حتی اگه توی یک شل دیگه اسکریپت رو اجرا کنید با توجه با مقدار خط اول اسکریپت ما با شل بش اجرا بشه بعد از مشخص کردن نوع شل , دستورات خط به خط نوشته میشه و از # هم برای کامنت ها استفاده میکنیم #!/bin/bash # in script tarikh va user haye login karde ro neshoon mide date who که البته طبق دستورالعمل مثال اول میتونید دستورات رو پشت سر هم بنویسید حالا اسکریپت رو تو یه فایل به اسم test1 ذخیره میکنیم تقریبا کار تمومه , فقط برای اجرای شل اسکریپتتون باید به نکات زیر توجه داشته باشید اگه مثل دستور ها بخواید اجراش کنید نتیجه نمیگیرید , مثال زیر : $ test1 bash: test1: command not found در این حالت شل فایل اسکریپتمون رو یه دستور قلمداد میکنه , و برای اجرای دستور میره سراغ پیدا کردنش , که محتوای متغیر PATH رو چک میکنه و چون در فایل ادرس چنین دستوری پیدا نمیشه ارور دستور پیدا نشد رو بهمون میده $echo $PATH /usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/bin:/usr/bin: /bin:/usr/local/sbin:/usr/sbin:/sbin:/home/user/bin: برای پیدا کردن اسکریپت توسط شل دو راه وجود داره یا باید ادرس دایرکتوری ای که اسکریپت اونجاست رو به متغیر PATH اضافه کنیم یا باید مستقیما مسیر اسکریپت رو به خود شل بگیم در مثال زیر ما از روش دوم استفاده میکنیم اگه یادتون بیاد گفته بودیم برای مشخص کردن مسیر فعلی میتونیم از یک دات به صورت تکی استفاده کنیم , مثال زیر : $ ./test1 bash: ./test1: Permission denied میبینید که شل , اسکریپتمون رو پیدا کرد ولی مشگل دیگه ای پیش اومده که اون نداشتن اجازه اجراس $ ls -l test1 -rw-rw-r-- 1 rednaxela rednaxela 73 Sep 24 19:56 test1 $ chmod u+x test1 $ ./test1 Mon Feb 21 15:38:19 EST 2019 rednaxela tty2 2019-02-21 15:26 red tty3 2019-02-21 15:26 blue tty1 2019-02-21 15:26 میبینید که دسترسی داده شد و اسکریپت توسط شل دیده و اجرا شد نمایش پیام ها : $ echo in ye teste in ye teste در صورت استفاده از کوتیشن در متن باید رشته رو بین کوتیشن دیگه ای گذاشت : echo "in ye teste ke ' tafavot ro bebinim" in ye teste ke ' tafavot ro bebinim echo 'scripting dar "guardiran".' scripting dar "guardiran". استفاده از echo در اسکریپتمون : $ cat test1 #!/bin/bash # in script tarikh va user haye login karde ro neshoon mide echo zaman va tarikh : date echo user haye login karde : who بعد از اجرای اسکریپت بالا : $ ./test1 zaman va tarikh : Mon Feb 21 15:41:13 EST 2019 user haye login karde : rednaxela tty2 2019-02-21 15:26 red tty3 2019-02-21 15:26 blue tty1 2019-02-21 15:26 استفاده از متغیر ها : متغیر ها بهمون اجازه میدن اطلاعات مختلف رو در شل اسکریپتمون نگهداری کنیم برای استفاده توسط بقیه دستورات شما قبلا با متغیر های محیطی اشنا شدید , میتونید از مقادیری که نگه میدارن در اسکریپت استفاده کنید $ cat test2 #!/bin/bash # namayeshe etelaAte user echo "etelaAte user baraye karbare : $USER" echo UID: $UID echo HOME: $HOME مقدار متغیر های محیطی USER & $UID & $HOME$ برای نمایش اطلاعات استفاده شدن $chmod u+x test2 $ ./test2 etelaAte user baraye karbare : rednaxela UID: 501 HOME: /home/rednaxela برای غیر فعال کردن کاراکتر های عملگرا از بک اسلش استفاه میکنیم echo "gheymate in mahsool mishe \$50" gheymate in mahsool mishe $50 در غیر این صورت شل مقدار بعد از $ رو اسم متغیری تصور میکرد که ما قصد نمایش مقدارش رو داریم توجه کنید شل برای اسم متغیر ها به حروف کوچیک و بزرگ حساسه و شل خودکار نوع مقدار هر متغیر رو تشخیص میده $ cat test3 #!/bin/bash # test moteghayer ha d=10 u="rednaxela" echo "$d rooz pish $u online shod" d=5 u="red" # echo "$d rooz pish $u online shod" khorooji script => $ chmod u+x test3 $ ./test3 10 rooz pish rednaxela online shod 5 rooz pish red online shod شما میتونید حتی مقدار یک متغیر رو به عنوان مقدار به یک متغیر دیگه بدید $ cat test4 #!/bin/bash # ekhtesas dadane meghdare yek moteghayer be moteghayere dg var1=10 var2=$var1 echo natije mishe : $var2 khorooji script => $ chmod u+x test4 $ ./test4 natije mishe : 10 توجه کنید ما با علامت $ مقدار رو مشخص کردیم , وگرنه اسم متغیر به عنوان رشته مقدار دهی میشد , مثال زیر : var1=10 var2=var1 echo natije mishe : $var2 khorooji script => $ ./test4 natije mishe : var1 اختصاص خروجیه دستور به متغیر : این قابلیت یکی از کارامد ترین موارد شل اسکریپت هستش , فرمت و مثال : moteghayer=$(dastoor) $ cat test5 #!/bin/bash testing=$(date) echo "zaman va tarikh : " $testing khorooji script => $ chmod u+x test5 $ ./test5 zaman va tarikh : Mon Jan 31 20:23:25 EDT 2019 یه مثال کاربردی تر : #!/bin/bash emrooz=$(date +%y%m%d) ls /usr/bin -al > log.$emrooz در اسکریپت بالا دستور دیت با فرمت عددی (دریافت خروجی به صورت روز ماه سال جمعا شش رقم) اجرا شده و خروجی دستور به متغیر امروز داده شده , سپس مقادیر دایرکتوری با اطلاعاتشون لیست شدن و خروجی دستور به جای نمایش , در یک فایل ریخته شده , که اخر اسم اون فایل مقدار متغیرمون قرار گرفته نکته مهم در مورد این قابلیت اینه که وقتی از این روش استفاده میکنید , دستور در ساب شل اجرا میشه و این باعث میشه به متغیر های لوکال اسکریپت دسترسی نداشته باشه , حواستون باشه که در صورت لزوم متغیر رو ارتقا بدید هدایت خروجی : ساده ترین حالت هدایت , فرستادن خروجی یک دستور به فایل هستش که شل بش از علامت بزرگتر برای این موضوع استفاده میکنه : command > outputfile $ date > test6 $ ls -l test6 -rw-r--r-- 1 rednaxela rednaxela 29 Feb 10 17:56 test6 $ cat test6 Thu Feb 10 17:56:58 EDT 2019 اگه فایل مقصد از قبل وجود داشته باشه , خروجی روی اون فایل نوشته میشه : $ who > test6 $ cat test6 rednaxela pts/0 Feb 10 17:55 Thu Feb 10 18:02:14 EDT 2019 هدایت ورودی : در این حالت برعکس موضوع قبل از علامت کوچکتر استفاده میشه که به جای اینکه خروجی یک دستور به فایل هدایت بشه , محتوای یک فایل به عنوان ورودی به دستور هدایت میشه : command < inputfile $ wc < test6 2 11 60 در مثال بالا دستور فایل رو به عنوان ورودی دریافت کرده و مقدارش رو شمرده , که میگه 2 خط و 11 کلمه و 60 بایت در فایل وجود داره روش بعدی ، هدایت ورودی اینلاین نام داره که شما مقادیری مثل محتوای یک فایل رو بدون استفاده از فایل مستقیم به خود شل میدید , فرمت و مثال : command << marker data marker $ wc << xx > test string 1 > test string 2 > test string 3 > xx 3 9 42 پایان قسمت اول از بخش دوم
  9. 6 امتیاز
    با سلام دوست عزیز سعی کنید مستندات و اطلاعات دقیق نسبت موضوع خود و مرتبت با عنوان تاپیک خود در انجمن معرفی کنید.
  10. 6 امتیاز
    اگه هدفت فعالیت امنیتی هستش از kali و parrot استفاده کن
  11. 6 امتیاز
    بخش اول - قسمت هفتم هیچ سیستمی کاملا خالی از امنیت نیست , باید حتما مکانیزمی برای محافظت از فایل ها در برابر تغیر و دسترسی غیر مجاز باشه سیستم لینوکس از روش یونیکس برای مجوز دسترسی استفاده میکنه اجازه دسترسی تقسیم بندی شده برای یوزر ها و گروه ها بر مبنای تنظیمات هر فایل یا دایرکتوری هسته سیستم امنیتی لینوکس یوزر اکانته , میزان دسترسی کاربران سیستم به ابجکت های مختلف بستگی به یوزری داره که باهاش لاگین میکنن سیستم لینوکس از فایل های خاصی برای مدیریت یوزر اکانت ها استفاده میکنه , قبل از اینکه در مورد پرمیشن ها صحبت کنیم لازمه بدونیم لینوکس چجوری یوزر اکانت هارو هندل میکنه The /etc/passwd سیستم لینوکس برای همخونی دادن login name و uid از این فایل استفاده میکنه , این فایل حاویه هفت بخش اطلاعاتیه , یک نمونشو پایین میبینید $ cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin adm:x:3:4:adm:/var/adm:/sbin/nologin lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin sync:x:5:0:sync:/sbin:/bin/sync shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown halt:x:7:0:halt:/sbin:/sbin/halt mail:x:8:12:mail:/var/spool/mail:/sbin/nologin news:x:9:13:news:/etc/news:mail:/sbin/nologin uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin operator:x:11:0:operator:/root:/sbin/nologin games:x:12:100:games:/usr/games:/sbin/nologin gopher:x:13:30:gopher:/var/gopher:/sbin/nologin ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin nobody:x:99:99:Nobody:/:/sbin/nologin rpm:x:37:37::/var/lib/rpm:/sbin/nologin vcsa:x:69:69:virtual console memory owner:/dev:/sbin/nologin mailnull:x:47:47::/var/spool/mqueue:/sbin/nologin smmsp:x:51:51::/var/spool/mqueue:/sbin/nologin apache:x:48:48:Apache:/var/www:/sbin/nologin rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin ntp:x:38:38::/etc/ntp:/sbin/nologin nscd:x:28:28:NSCD Daemon:/:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin dbus:x:81:81:System message bus:/:/sbin/nologin avahi:x:70:70:Avahi daemon:/:/sbin/nologin hsqldb:x:96:96::/var/lib/hsqldb:/sbin/nologin sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin haldaemon:x:68:68:HAL daemon:/:/sbin/nologin xfs:x:43:43:X Font Server:/etc/X11/fs:/sbin/nologin gdm:x:42:42::/var/gdm:/sbin/nologin rednaxela:x:500:500:red naxela:/home/rednaxela:/bin/bash red:x:502:502:red:/home/red:/bin/bash blue:x:503:503:blue:/home/blue:/bin/bash mysql:x:27:27:MySQL Server:/var/lib/mysql:/bin/bash یوزر root مدیر سیستم لینوکسه و همیشه مقدار uid صفر رو داره میبینید که سیستم لینوکس اکانت های زیادی رو ساخته که در واقع یوزر واقعی نیستن و برای مقاصد سیستمی استفاده میشن که بهشون میگن سیستم اکانت سیستم اکانت در اصل یک اکانت مخصوصه که سرویس ها روی سیستم ران میکنن تا به منابع روی سیستم دسترسی پیدا کنن تمام سرویس هایی که در حالت بک گراند ران میشن نیاز دارن تحت یک سیستم اکانت به سیستم لاگین بشن اکثر لینوکس ها به سیستم اکانت ها uid زیر 500 میدن (مثال بالا رو ببینید) و uid یوزر هارو از 500 شروع میکنن (مثال بالا) فیلد های فایل /etc/passwd شامل موارد زیر هستند یوزرنیم لاگین پسورد یوزر مقدار uid یوزرم قدار gid یوزر مشخصات یوزر لوکیشن دایرکتوری home یوزر و مقدار اخر هم نوع شل یوزره مقدار x که در فیلد پسورد قرار گرفته به معنی پسورد یوزر نیست , سال ها پیش لینوکس پسورد هارو به صورت رمزنگاری شده تو این فیلد میذاشت , که چون خیلی از برنامه ها برای اطلاعات یوزر به دسترسی به این فایل نیاز داشتن , این موضوع یک مشگل امنیتی محسوب میشد الان اکثر لینوکس ها پسورد یوزر هارو تو یه فایل جدا به اسم etc/shadow/ قرار میدن که فقط برنامه های مخصوصی مثل لاگین بهش دسترسی دارن The /etc/shadow از این فایل برای نگهداری پسورد ها و اطلاعات مربوط بهشون استفاده میشه فقط یوزر root میتونه به این فایل دسترسی داشته باشه که باعث میشه امنیت بیشتری نسبت به /etc/passwd داشته باشه این فایل برای هر یوزر یه رکورد نگه میداره (مثال زیر) rednaxela:$1$.FfcK0ns$f1UgiyHQ25wrB/hykCn020:11627:0:99999:7::: هر رکورد 9 تا فیلد داره , که با هم به ترتیب مرورشون میکنیم اسم لاگین پسورد به صورت رمزنگاری شده اخرین تاریخی که پسورد تغیر کرده حداقل روز های موندگاریه پسورد قبل از امکان تغیر تاریخ انقضای پسورد چند روز قبل از منقضی شدن پسورد هشدار داده بشه تعداد روز هایی که , بعد از منقضی شدن پسورد اکانت باید غیر فعال بشه تاریخ مربوط به اینکه از چه زمانی اکانت غیر فعال شده فیلدی که برای استفاده در اینده تعبیه شده در مثال بالا شما شش فیلد فعال میبینید , که حالت نرماله و به ترتیب شش توصیف اول هستن اضافه کردن یوزر : برای این کار از دستور useradd استفاده میکنیم این دستور یک راه ساده برای اضافه کرن یوزر بهمون میده , که از تلفیق مقادیر پیش فرض سیستم و پارامتر های خط دستور برای تعریف یوزر استفاده میکنه این مقادیر پیش فرض سیستمی در مسیر زیر قرار دارن etc/defualt/useradd/ که برای دیدنشون میتونید از پارامتر D- استفاده کنید ، به مثال زیر توجه کنید : # /usr/sbin/useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes پارامتر D- به ما میگه اگه از مقادیر مخصوص خومون موقع ساخت اکانت استفاده نکنیم , به صورت پیش فرض چه جایگزینی براشون در نظر گرفته میشه طبق مثال بالا این مقایر به ترتیب میگن که : یوزر جدید اضافه میشه به گروه مرسوم با گروپ ایدی 100 یوزر جدید یک هوم اکانت در دایرکتوری هوم با اسم خودش اضافه میکنه یوزر جدید بعد از منقضی شدن پسورد غیر فعال نخواهد شد یوزر جدید بعد از مدت زمان معینی منقضی نخواهد شد یوزر جدید از شل بش به عنوان شل پیش فرض استفاده خواهد کرد سیستم محتوای etc/skel/ رو در دایرکتوری هوم یوزر اضافه میکنه سیستم یک فایل در دایرکتوری میل برای یوزر میسازه , تا ایمیل هاشو دریافت کنه مقادیر /etc/skel در برخی لینوکس ها : $ ls -al /etc/skel total 32 drwxr-xr-x 2 root root 4096 2019-04-29 08:26 . drwxr-xr-x 135 root root 12288 2019-09-23 18:49 .. —rw-r--r-- 1 root root 220 2019-04-18 21:51 .bash_logout —rw-r--r-- 1 root root 3103 2019-04-18 21:51 .bashrc —rw-r--r-- 1 root root 179 2019-03-26 08:31 examples.desktop —rw-r--r-- 1 root root 675 2019-04-18 21:51 .profile شما باید این فایل هارو از قسمت های قبل بشناسید , اینها همون فایل های استاندارد استارت اپ هستند شما میتونید این موضوع رو با ساخت یک یوزر اکانت با مقادیر پیش فرض تست کنید # useradd -m test # ls -al /home/test total 24 drwxr-xr-x 2 test test 4096 2019-09-23 19:01 . drwxr-xr-x 4 root root 4096 2019-09-23 19:01 .. —rw-r--r-- 1 test test 220 2019-04-18 21:51 .bash_logout —rw-r--r-- 1 test test 3103 2019-04-18 21:51 .bashrc —rw-r--r-- 1 test test 179 2019-03-26 08:31 examples.desktop —rw-r--r-- 1 test test 675 2019-04-18 21:51 .profile در حالت دیفالت دستور useradd دایرکتوری home رو نمیسازه که اپشن m- باعث میشه این کارو برامون بکنه میبینید که محتوای etc/skel/ در هوم دایرکتوریه جدید هستش شما میتونید هنگام ساخت یوزر اکانت هر کدوم از مقادیر پیش فرض رو که خواستید تغیر بدید c comment- برای اضافه کردن اطلاعات به فیلد کامنت یوزر استفاده میشه d home_dir- برای جایگزین کردن اسم دایرکتوری با مقدار پیش فرض استفاده میشه e expire_date- برای تعین تاریخ انقضا اکانت استفاده میشه f inactive_days- مشخص میکنه چه مدت بعد از منقضی شدن پسورد اکانت غیر فعال بشه g initial_group- برای مشخص کردن گروپ ایدی یوزر استفاده میشه G group- برای تعین چند گروه برای یوزر استفاده میشه k- همراه با m- استفاده میشه , برای کپی کردن مقادیر etc/skel/ تو هوم دایرکتوری m- برای ساخت هوم دایرکتوری استفاده میشه n- برای ایجاد یک گروه جدید هم اسم با خود یوزر , برای یوزر استفاده میشه r- برای ساخت اکانت های سیستمی استفاده میشه p passwd- تعین پسورد پیش فرض یوزر s shell- تعین شل پیش فرض یوزر u uid- تعین یک uid مشخص برای یوزر طبق چیزی که گفته شد میتونید مقادیر پیش فرض رو در هنگام ساخت یوزر اکانت برای یوزر تغیر بدید و یا , میتونید خود حالت پیش فرض رو تغیر بدید در این صورت هر اکانت دیگه ای که بسازید با مقایر پیش فرضی که شما تعین کردید ساخته میشه برای این کار باید پارامتر D- رو قبل از پارامتر های اصلاحی زیر بزارید b default_home- تغیر لوکیشن پیش فرض هوم دایرکتوری e expiration_date- تغیر مقدار زمان پیش فرض برای منقضی شدن اکانت f inactive- تغیر مقدار زمان پیش فرض برای غیر فعال شدن اکانت بعد از منقضی شدن پسوردش g group- تغیر gid پیش فرض s shell- تغیر لاگین شل پیش فرض به مثال زیر توجه کنید # useradd -D -s /bin/tsch # useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/tsch SKEL=/etc/skel CREATE_MAIL_SPOOL=yes در این مثال مقدار شل پیش فرض برای تمام اکانت هایی که از این به بعد ساخته بشن تغیر کرد remove کردن یوزر برای از بین بردن یک اکانت میتونیم از دستور userdel استفاده کنیم در حالت پیش فرض این دستور فقط اطلاعات یوزر رو از فایل /etc/passswd پاک میکنه اگه از پارامتر r- استفاده کنید هوم دایرکتوری و دایرکتوری ایمیل هم پاک میشن اگرچه در بعضی لینوکس ها بقیه فایل های اکانت از بین رفته ، باقی میمونن به مثال زیر توجه کنید # /usr/sbin/userdel -r test # ls -al /home/test ls: cannot access /home/test: No such file or directory پایان قسمت هفتم از بخش یک در قسمت بعد به اصلاحات یوزر و کار با گروه ها و سطح های دسترسی (permissions) میپردازیم
  12. 5 امتیاز
    به ترتیب اول : echo -e "deb http://http.kali.org/kali sana main non-free contrib\ndeb http://security.kali.org/kali-security/ sana/updates main contrib non-free" > /etc/apt/sources.list دوم : apt-get update apt-get update --fix-missing سوم : دستور نصبتو بزن اوکی شده الان
  13. 5 امتیاز
    اموزش کامل اسکریپت نویسی مجموعه اموزشی اسکریپتینگ از سه بخش اصلی تشکیل میشه بخش اول کامند لاین و پیش نیاز های اسکریپت نویسی رو تشکیل میده در بخش دوم اسکریپت نویسی رو از پایه شروع میکنیم و تا سطح متوسط پیش میریم (صفحه دوم) و در بخش سوم مباحت مربوط به اسکریپت نویسی پیشرفته رو دنبال میکنیم لطفا به هیچ عنوان اسپم ندید و اگر امری بود در پیام خصوصی عنوان کنید __________________________________________________________________________________________________________________ بخش اول - قسمت یکم یکی از راه های وصل شدن به CLI یا command line interface یا همان رابط کاربری خط فرمان ، استفاده از لینوکس بدون دسکتاپ هستش درست مثل لینوکس در دوران قدیمش که شما فقط با یک محیط ویژال کنسول سر و کار داشتید برای ویژال کنسول کردن محیط گرافیکی هم میتونیم از Alt + Ctrl + F1 / F7 استفاده کنیم که هر کدوم از اف ها یک محیط ویژال کنسول مجزا برامون فراهم میکنن که مستقیم به ران لول عمیق تر وصل اند و حتی میتونیم همزمان با یوزر های مختلف لاگین کنیم هر کدوم از این محیط های کنسولیه مجزا شماره ی مربوط به خودشون رو دارن که در tty دیده میشه مثلا وقتی شما با Alt + Ctrl +F2 دومین محیط کنسولیه خودتون رو باز میکنید و با همون یوزر یا یوزر دیگه ای لاگین میکنید در اولین خط مقدار tty2 رو میتونید ببینید که نشون میده شما در دومین محیط کنسولیتون قرار دارید برای شیفت کردن بین tty ها از همون Alt + Ctrl + F با شماره ی tty مورد نظر استفاده میشه تو این مورد F1 ( برگشتن از محیط کنسولیه دوم ( با مقدار tty2 ) به محیط کنسولیه اولیه ( با مقدار tty 1 ) ) بعد از شیفت کردن بین کنسول ها ، تمام کنسول ها با هر یوزری که دارن در حالت لاگین میمونن و اعمالی که باهاشون انجام شده هم دست نخورده باقی میمونه که این موضوع انسجام و انعطاف قابل توجهی به وجود میاره ما میتونیم درون محیط های کنسولی هم از text mode console terminal برای کاستومایز کردن محیط کنسول استفاده کنیم با استفاده از دستور setterm برای مثال من چند مورد رو قرار میدم ، که البته خودتون با help میتونید لیست متنوع دستور setterm رو ببینید setterm -background black white red blue green yellow magenta cyan تغیر رنگ پس زمینه به یکی از رنگ هایی که اسمش رو نوشتم setterm -foreground green تغیر رنگ متن به سبز ( یا هر رنگی که اسمش رو بنویسید ) inversescreen on or off برعکس کردن رنگ زمینه و متن store ذخیره ی تغیرات reset برگشت به حالت پیش فرض روش بعدی وصل شدن به شل استفاده از ترمینال های گرافیکی از داخل محیط دسکتاپ هستش این ترمینال ها روی کنسول کار میکنن ولی از داخل محیط گرافیکی دسکتاپ ترمینال های مختلفی در محیط گرافیکی وجوده که هر کدوم اپشن های خودشون رو دارن ، ولی چون کار اصلیه مارو شل ها انجام میدن و این ترمینال ها صرفا رابط هستن ، استفاده از هر کدومشون بیشتر جنبه ی سلیقه ای داره در زیر من لیست پر استفاده هاشون رو با سایت هاشون برای علاقه مندان میزارم Eterm http://www.eterm.org Final Term http://finalterm.org GNOME Terminal https://help.gnome.org/users/gnome-terminal/stable Guake https://github.com/Guake/guake Konsole Terminal http://konsole.kde.org LillyTerm http://lilyterm.luna.com.tw/index.html LXTerminal http://wiki.lxde.org/en/LXTerminal mrxvt https://code.google.com/p/mrxvt ROXTerm http://roxterm.sourceforge.net rxvt http://sourceforge.net/projects/rxvt rxvt-unicode http://software.schmorp.de/pkg/rxvt-unicode Sakura https://launchpad.net/sakura st http://st.suckless.org Terminator https://launchpad.net/terminator Terminology http://www.enlightenment.org/p.php?p=about/terminology tilda http://tilda.sourceforge.net/tildaabout.php UXterm http://manpages.ubuntu.com/manpages/gutsy/man1/uxterm.1.html Wterm http://sourceforge.net/projects/wterm xterm http://invisible-island.net/xterm Xfce4 Terminal http://docs.xfce.org/apps/terminal/start Yakuake http://extragear.kde.org/apps/yakuake خوب دوستان این قسمت بیشتر جنبه ی مقدمه ی بخش اول و اشنایی علاقه مندان با کنسول رو داشت به همین دلیل سعی کردم خیلی کوتاه و خلاصه توضیحش بدم ، در قسمت دوم دستورات خط فرمان رو شروع میکنیم دوستان هرکس سوال ، پیشنهاد یا انتقادی داشت لطفا پیام خصوصی بدین و به هیچ عنوان اسپم ندید
  14. 5 امتیاز
    درود تارگت کاملا آسیب پذیر است ؛ به دلایل زیر : - هیچ ارزیابی اعتباری روی اطلاعات fetch شده از فرم مربوطه وجود ندارد و اطلاعات آن مستقیما در Query پایگاه داده استفاده شده که این بی احتیاطی موجب آسیب پذیری رایج SQL Injection شده است . - جدا از این مسئله از تابع منسوخ شده PHP به نام mysql_query استفاده شده که رعایت نکردن استاندارد های لازم از دلایل منسوخ شدن همین تابع بوده . راه حل : * ارزیابی اعتبار فرم پیش از استفاده از اطلاعات آن * استفاده از از توابع و استاندارد های پیشرفته مثل PDO Binding موفق باشید
  15. 5 امتیاز
    Goodzilam

    localhost

    درود، به راحتی میتونید با نصب داشتن python ورژن 3 یا 2.7 لوکال هاست ران کنید برای ورژن 3: python3 -m http.server 8080 و برای ورژن 2.7: python -m SimpleHTTPServer 8080
  16. 5 امتیاز
    بخش دوم - قسمت سوم IF - THEN شرط : ساده ترین نوع شرط محسوب میشه , که میتونیم برای ایجاد شروط در اسکریپت استفاده کنیم , به فرمتش دقت کنید : if command then commands fi در سایر زبان های برنامه نویسی ابجکتی که بعد از if میاد , بیانگر درست یا غلط بودن موضوعه اما این روشی نیست که شل بش ازش استفاده میکنه در شل بش دستور خط if اجرا میشه و در صورتی که کد وضعیت اجرای دستور صفر بود , دستورات بخش then اجرا میشن , و شل میره سراغ ادامه اسکریپت , fi هم اعلام پایان بخش شرطه , مثال زیر رو ببینید : $ cat test1.sh #!/bin/bash # teste sharte if if pwd then echo "shart kar kard" fi khorooji => $ ./test1.sh /home/rednaxela shart kar kard اسکریپت از دستور نمایش مسیر فعلی به عنوان شرط استفاده میکنه , در صورتی که کد وضعیت اجرای دستور صفر باشه , یا بهتره بگیم دستور با موفقیت اجرا بشه , درخواست ما که نمایش پیام هست انجام میشه , یه مثال دیگه میزنیم : $ cat test2.sh #!/bin/bash # teste dastoore ghalat if man-dastoor-nistam then echo "shart kar kard" fi echo "ma biroone shart hastim" $ ./test2.sh ./test2.sh: line 3: man-dastoor-nistam: command not found ma biroone shart hastim در این مثال ما برای شرط از یک دستور نا معتبر استفاده کردیم , و چون دستور درست اجرا نشد کد وضعیت اجرا صفر نبود , و همین باعث شد بخش درخواستیه ما که شامل نمایش پیام بود اجرا نشه شما میتونید برای اجرای دستورات شرط چندین دستور قرار بدید , که در صورت درست بودن شرط همشون اجرا بشن $ cat test3.sh #!/bin/bash # teste chand dastoor baraye bakhshe then # testuser=rednaxela if grep $testuser /etc/passwd then echo "avalin dastoor ejra shod" echo "dovomin dastoor ejra shod" echo "sevomin dastoor ejra shod" ls -a /home/$testuser/.b* fi شرط از دستور grep برای سرچ کردن فایل استفاه میکنه , که ایا مقدار متغیر ما در فایل هست یا نه در صورتی که مقدار وجود داشته باشه کد وضعیت اجرای دستور صفر داده میشه و دستورات درخواستیه ما به ترتیب اجرا میشن $ ./test3.sh rednaxela:x:501:501:red naxela:/home/rednaxela:/bin/bash avalin dastoor ejra shod dovomin dastoor ejra shod sevomin dastoor ejra shod /home/rednaxela/.bash_history /home/rednaxela/.bash_profile /home/rednaxela/.bash_logout /home/rednaxela/.bashrc مثال زیر نمونه منفی دستور بالاس : $ cat test3.sh #!/bin/bash # teste chand dastoor baraye bakhshe then # testuser=Nouser if grep $testuser /etc/passwd then echo "avalin dastoor ejra shod" echo "dovomin dastoor ejra shod" echo "sevomin dastoor ejra shod" ls -a /home/$testuser/.b* fi $ ./test3.sh $ IF - THEN - ELSE : در نمونه های قبل شما فقط یک اپشن داشتید , فقط در صورتی که کد صفر دریافت میشد دستورات اجرا میشدن در غیر این صورت اسکریپت دستورات بیرون از شرط رو ادامه میداد ولی در این بخش شما میتونید دستوراتی رو برای وقتی کد وضعیت غیر از صفر بود تعریف کنید , فرمت و مثال : if command then commands else commands fi $ cat test4.sh #!/bin/bash # teste else # testuser=nouser if grep $testuser /etc/passwd then echo "user dar system vojood darad" ls -a /home/$testuser/.b* echo else echo "user $testuser dar system sabt nashode." echo fi $ ./test4.sh user nouser dar system sabt nashode. استفاده از شرط ها درون شرط های دیگه : بعضی وقتا شما نیاز دارید چند مورد رو در اسکریپتتون چک کنید , مثال زیر : $ cat test5.sh #!/bin/bash # estefade az if daroone yek if dg # testuser=nouser if grep $testuser /etc/passwd then echo "user $testuser dar system sabt shode" else echo "user $testuser dar system sabt nashode" if ls -d /home/$testuser/ then echo "vali $testuser yek directory dare" fi fi $ ./test5.sh user nouser dar system sabt nashode /home/nouser/ vali nouser yek directory dare به جای استفاده از if - then های جدا از هم شما میتونید از elif استفاده کنید , فرمت و مثال : if command1 then commands elif command2 then more commands fi $ cat test5.sh #!/bin/bash # Teste elif # testuser=nouser if grep $testuser /etc/passwd then echo "user $testuser dar system sabt shode" # elif ls -d /home/$testuser then echo "user $testuser dar system sabt nashode" echo "vali $testuser yek directory dare" fi $ ./test5.sh /home/nouser user nouser dar system sabt nashode vali nouser yek directory dare یک مثال دیگه , این بار همراه با else : $ cat test5.sh #!/bin/bash # Teste elif ba else # testuser=nouser if grep $testuser /etc/passwd then echo "user $testuser dar system sabt shode" # elif ls -d /home/$testuser then echo "user $testuser dar system sabt nashode" echo "vali $testuser yek directory dare" # else echo "user $testuser dar system sabt nashode" echo "va user $testuser directory ham nadare" fi $ ./test5.sh /home/nouser user nouser dar system sabt nashode vali nouser yek directory dare شما همچنین میتونید از elif های متوالی استفاده کنید : if command1 then command set 1 elif command2 then command set 2 elif command3 then command set 3 elif command4 then command set 4 fi دستور test برای if : تا اینجا شما داخل شرط فقط دستورات ساده بش رو دیدید , حتما فکر کردید ممکنه به جای قرار دادن این ستورات شرط مد نظر خودمون رو بزاریم و درست یا غلط بون شرط ما نتیجه رو مشخص کنه نه کد وضعیت اجرای دستور دستور test راهی فراهم میکنه تا شرط های متفاوت با اونایی که تا الان دیدید اعمال کنیم اگه شرط هایی که با این دستور گذاشته میشن درست باشن , دستور با مقدار کد وضعیت اجرای صفر به اتمام میرسه , و چون دستور test داخل if قرار داره دستور مثل واسط میانی عمل کرده و کد وضعیت اجرای خودش رو به if میده که خروجی این فرایند باعث میشه شرط مثل شرط های سایر زبان های برنامه نویسی عمل کنه فرمت کاملا مثل قبل میمونه فقط test اضافه شده , فرمت و مثال : if test condition then commands fi $ cat test6.sh #!/bin/bash # Teste dastoore test # my_variable="FULL" if test $my_variable then echo " moteghayer daraye meghdare : $my_variable " # else echo "moteghayer khaliye" fi $ ./test6.sh moteghayer daraye meghdare : FULL در مثال بالا دستور متغیر رو چک کرده و چون متغیر وجود داشته و مقدار داشته و مشگلی نبوده , دستور با کد وضعیت اجرای صفر به پایان رسیده و شرط با دریافت کد صفر پیش رفته و اما روش جایگزین test شما میتونید به جای استفاده از دستور test از براکت ها استفاده کنید هر شرطی که داخل براکت باشه مثل استفاده از دستور test عمل میکنه حتما باید بین شرط و براکت ها فاصله گذاشته بشه , فرمت : if [ condition ] then commands fi پایان قسمت سوم از بخش دوم
  17. 5 امتیاز
    اگه همچین قصدی داری (عمیق بودن) لازمه بدونی سال ها باید مطالعه ای داشته باشی که هیچ کدوم از جذابیت ها و جو های اکشنی که تو ذهن مردم از هک هستش ، در مسیرت وجود ندارن غیر از این باشه یعنی مسیرت به سمت سطحی بودن پیش رفته که دقیقا میشه همون مثال هایی RT3N برات زد
  18. 5 امتیاز
    Goodzilam

    جستجوگر BTC

    درود، چند ماه پیش اسکریپتی نوشته بودم که ولت های بیتکوین به صورت رندوم ایجاد میکرد و موجودیشون رو چک میکرد به این صورت توضیح بدم که با این اسکریپت درک میکنید چرا احتمال ایجاد دو ادرس بیتکوین با هش های یکسان نزدیک به 0 هست و تقریبا هیچوقت دو حساب متشابه ایجاد نمیشود ! حدود (2 به توان 256) تا آدرس بیتکوین وجود داره و شانس پیدا کردن 1 ادرس به همراه موجودی چیزی حدود: 2x10^15/(2^256)=2x10^-62 هست ! به هر حال ... نصب پیش نیازها: ف.یلتر ش.کن Python 3 یا بالا تر OS : Linux pip install selenium apt-get update apt install chromium-chromedriver cp /usr/lib/chromium-browser/chromedriver /usr/bin آدرس اسکریپت: https://raw.githubusercontent.com/Goodzilam/BTCFinder/master/main.py اگر از سرویس زیر استفاده نمیکنید نیاز دارید تا بخشی از کد که مشخص شده رو تغییر بدید ! به این صورت که، ادرس پوشه ی فایل های دانلودیتون رو با ادرس از قبل نوشته شده تغییر بدید ! file = open("/content/output-onlinehashtools.txt", "r") # replace your download directory path <======== تغییر پیدا میکنه به : file = open("ادرس/فولدر/دانلود/شما/output-onlinehashtools.txt", "r") برای راحتی کار و نداشتن نیاز به تغییر کد، پیشنهاد میکنم از سرویس Google Colab استفاده کنید، گوگل محیطی آماده برای اجرای برنامه ها در اختیار ما قرار میده، 12 گیگ رم و 70گیگ حافظه به صورت رایگان ! آدرس Google colab: https://colab.research.google.com/
  19. 4 امتیاز
    سلام و خسته نباشید خدمت تمامی اعضای گاردایران و مدیران یه چند وقتی نبودم گفتم امروز بیام یه چیزی رو پست کنم که جایی ندیدم که باشه:) راجب انواع برنامه های دیداس و غیره قبلا دوستان تو تاپیک های مختلف توضیح دادن ولی تاحالا کسی پنل های اتک رو نزاشته بود، یا حداقل من ندیدم https://freestresser.me https://quezstresser.org https://www.stressthem.to https://freeboot.to https://www.ipstresser.com https://freeboot.me https://stressing.ninja https://instant-stresser.to https://stress.pub این یه لیست از پنل های فری هستش که باهاش میتونید خیلی سایتا و سرور ها رو آف کنید و حتی بعضی از بهترین فایروال ها هم بعضی وقتا آف میشن(با پنل ipstreeser) در رابطه با کپی رایت هم منبع این آموزش هم سایت خودم بود که اسمی نمیارم، و تنها کسی هم که این پنل ها رو گذاشته خودم بودم پس فکر نکنم نیازی به کپی رایت باشه
  20. 4 امتیاز
    همچنین میتونید از سایت های آنلاین کرک Md5 استفاده کنید. ورود به سایت کرک Md5
  21. 4 امتیاز
  22. 4 امتیاز
    عذر خواهی برای بالا آوردن تاپیک قدیمی. گفتم پاسخ بدم که تاپیک بدون پاسخ نباشه! خیر. هر برند و هر پردازنده موبایل برای فلش شدن نیاز به برنامه و گاها باکس تعمیراتی خودشو داره که برای سامسونگ میشه به نرم افزار اودین اشاره کرد!
  23. 4 امتیاز
    درود، تاپیک زیر راهنماییتون میکنه https://guardiran.org/topic/9142-%D9%84%D8%B7%D9%81%D8%A7-%DA%A9%D9%85%DA%A9-%DA%A9%D9%86%DB%8C%D8%AF-%D8%A8%D9%86%D8%AF%D9%87-%D8%AA%D8%A7%D8%B2%D9%87-%DA%A9%D8%A7%D8%B1%D9%85-%D8%B5%D9%81%D8%B1-%D8%A7%D9%85/ با جستجو در انجمن میتونید سوالات مشابه و موضوع های مختلف رو ببینید. موفق باشید.
  24. 4 امتیاز
    درود، برای ماین (استخراج) بیتکوین هر سخت افزاری جواب گو هست حتی گوشی ! اما تفاوت دستگاه های ماینر با لپتاپ یا سیستم های خونگی در چیه ؟ قدرت. قدرت ماینر ها در محاسبه و درکل "ماین کردن" چند برابر دستگاه های عادی هست و تاثییر مستقیمی بر درامد شما از ماین داره ! توجه داشته باشید که ماینر ها شرایط خاصی برای نگهداری دارن از نظر ایجاد گرما و صدای زیاد، همچنین قیمت زیادی هم دارن که افزون بر اون هزینه برق مصرفی هم حساب باید بشه. در طولانی مدت ماین کردن با هر سخت افزاری باعث اسیب رسوندن و کاهش قدرتش میشه ! حتما درمورد پدیده هاوینگ مطالعه کنید ! به طور خلاصه بگم، هرچند سال یکبار پاداش ماینر ها نصف میشه تا استخراج بیتکوین سخت و درنتیجه نایاب تر بشه ! موفق باشید.
  25. 4 امتیاز
    سوال یک : غیر قانونی به اون صورت نمیشه گفت ، فقط به خاطر اینکه در اینده تو انقلاب های رنگی به عنوان نافرمانی مدنی جایگزین ریال نشه اجازه خرید و فروشش رو از صرافی ها گرفتن تا تیر اخر به ریال زده نشه سوال دو : اسما شاید ولی در عمل به خاطر پول برق فضایی ای که ازت میگیرن کاری باهات ندارن ( انگار درامدتو شریکی باهاشون ) سوال سه : قیمتش لحضه ایه ، تو گوگل بزن : exchange rate of bitcoin to usd سوال چهار : صرافی های انلاین ، ترجیحا نمونه های معتبر خارجی ، با استفاده از کارت های اعتباری سوال پنج : صرافی های انلاین ، بعضی صرافی ها که هنوز زیر میزی چنج میکنن ، خرید مستقیم با بیت کوین ، یا یه نفر که ازت بخره و اما اخرین سوالت و اصل مطلب : کی گفته بیت کوین غیر قابل ردیابیه یا باید حتما تبدیلش کنی ؟ تو کل دنیا به جز چند تا از کشور های جهان سوم میتونی مستقیم خرجش کنی ، و تمام تراکنش ها قابل ردیابیه ، برای اطلاعات بیشتر درمورد دریابیش در مورد بلاک چین بیت کوین مطالعه کن
  26. 4 امتیاز
    دوست عزیز این درخواست شما محتوای غیر قانونی دارد . و همانطور که دوستان توضیح دادن اگر هم برای شوخی باشد ,در این انجمن جایی ندارد. تیم انجمن گارد ایران یک تیم امنیتی است, نه گروهی برای تجاوز به حریم دیگران و ایجاد اغتشاش در فضای مجازی.
  27. 4 امتیاز
    دوست عزیز خواهشا سعی کنید قبل از ارسال هر گونه پستی کمی نسبت نحوه ای کار آن و مستندات آن تحقیق کنید اینگونه پست ها از ضعف بسیار پایینی بر خوردار هستن .
  28. 4 امتیاز
    از نوع url نمیشه اسیب پذیزی حدس زد!!!!!!!!! سوالتون درست نیست , تیم ما قرار نیست به شما در نفوذ به یک سایت کمکی کنه قوانین رو مطالعه کنید. نفوذ به یک سایت شامل برسی دقیق خیلی چیزا میشه فرقی ندار ویندوز سرور باشه یا .... سوالتون رو به شکل و با محتوایی دیگه مطرح کنید تا به جواب برسید . سوال شما از پایه و اساس اشتباه هستش , چندین مورد تاپیک این چنینی در انجمن مشاهده میکنم و تذکر میدم, تا سوال درست مطرح نشه جواب درستی دریافت نمیکنید ! موفق باشید.
  29. 4 امتیاز
    اون خط های نارنجی رو میبینی بین خط های قرمز ؟ اولیش ابزاریه که بهش نیاز داره ، دومیش ترمینال گنومه ، سومیش جاوا ، باید نصبشون کنی ولی کاری که واقعا باید بکنی اینه که بندازیش دور بری یه کتاب متاسپلویت دانلود کنی با اون کار کنی
  30. 4 امتیاز
    دونه به دونه موضوعاتش ده برابر کامل تر تو همین انجمن هست
  31. 4 امتیاز
    R3DN4X314

    هک مودم

    از برنامه WifiHistoryView استفاده کن لاگ های کانکشن هارو بهت نشون می ده
  32. 4 امتیاز
    فکر کنم عزیزان راهنمایی های لازم رو انجام دادند و این سوال شما خارج ار بحثه ... تاپبک قفل موفق باشید
  33. 4 امتیاز
    اضافه میکنم به راهنمایی های دوستان عزیزم بزودی چند نقشه راه قرار میدهیم البته در دو نسخه برای کاربران و عزیزانی که قراره باهامون همکاری بیشتری داشته باشند که به در مسیر حرکت کردن علاقه مندان در هر زمینه کمک شایانی میکنه و ابهامات رو برطرف میکنه . موفق و سربلند باشید .
  34. 4 امتیاز
    درود، برای مدیریت گوشی راه های مختلفی هست مثله : ابزار های مدیریت و مانیتور "کودک" (قانونی) نصب رت (Rat) یا ابزار های جاسوسی روی گوشی و ... (غیرقانونی) مورد اول، صدق نمیکنه چون کودکی وجود نداره ! مورد دوم، نیاز به دانش تقریبا متوسطی در این زمینه داره و در آخر همونطور که گفتند این کار خلاف قوانین انجمن هست
  35. 4 امتیاز
    جدا از بحث صحت حرف های شما و احترام به حریم شخصی انجام این کار جرم محسوب میشه و حداقل توی این انجمن درخواست های غیر قانونی به جایی نمیرسه ، بعید میدونم حتی قوانین اینجارو مطالعه کرده باشید
  36. 4 امتیاز
    با سلام امروز کرک یه نرم افزار مشهور رو از آنتی ویروس بیرون کشیدم و به صورت فایل txt با زبان اسمبلی کپی کردم و گذاشتم (بخش اشکال رو برداشتم) فایل ... trojan.txt
  37. 4 امتیاز
    اطمینان داری مستقل عمل میکنه ؟ ممکنه به عنوان یک گره اطلاعات دانلودی رو فقط عبور بده از خودش ، و درخواست کننده اصلی نباشه به عنوان مثال ممکنه سیستم دیگه ای متصل باشه درکل میتونی از چک کردن تعاملات استفاده کنی برای این کار هم به عنوان مثال میتونی iftop رو در کامند لاین نصب و استفاده کنی یا از سیستم مانیتور تو محیط گرافیکی
  38. 4 امتیاز
    درود، باتوجه به شرایط فعلی و برگزاری کلاس های آنلاین، اسکریپت زیر امکان حضوری زدن به صورت اتوماتیک در پلتفرم skyroom رو به شما میده ! آدرس اسکریپت: https://raw.githubusercontent.com/Goodzilam/ASR/master/main.py برای هرکلاس نیاز دارید تا آدرس کلاس رو تغییر بدید ! همچنین username و password حساب کاربری محل تغییر: آدرس کلاس در خط 16 یوزرنیم و پسورد در خط های 19 و 20 برای تنظیم زمانبندی اجرای برنامه میتونید از task scheduler استفاده کنید ! ( کافیه تو ویندوز سرچش کنید) پیشنیاز ها: Python 3 یا بالاتر pip install selenium chromedriver.exe برای دانلود chrome driver مراحل زیر رو پیش برید آدرس chrome://version رو توسط مرورگر chrome باز کنید در خط اول میتونید ورژن مرورگتون رو مشاهده کنید که به طور مثال برای من ورژن 81 هستش Google Chrome: 81.0.4044.129 (Official Build) (64-bit) (cohort: Stable) حالا که ورژن مرورگرمون رو متوجه شدیم نیاز داریم تا درایوری هماهنگ با اون ورژن رو دانلود کنیم ! سایت زیر رو باز میکنیم https://chromedriver.chromium.org/downloads با توجه به ورژن روی لینک کلیک میکنیم و در صفحه جدید با توجه به سیستم عامل فایل رو دانلود میکنیم فایل دانلود شده رو از حالت zip خارج کنید فایل chromedriver.exe که خارج شده رو انتقال بدید به محلی که اسکریپت در اون اجرا میشه !
  39. 4 امتیاز
    بخش اول - قسمت ششم استارت اپ ها : لینوکس از متغیر های موقعیتی در اهداف مختلفی استفاده میکنه , شما الان میدونید چطور اونهارو اصلاح کنید , یا متغیر های خودتون رو ایجاد کنید وقتی شما با لاگینتون یک شل بش رو اجرا میکنید در حالت پیش فرض بش چندین فایل رو چک میکنه اسم این فایل ها فایل های استارت اپ یا فایل های محیطی هستش فایل های استارت اپی که بش چک میکنه بستگی داره به نوع اجرا شدن خود شل شما میتونید یک شل بش رو با سه روش استفاده کنید به عنوان شل پیش فرض موقع لاگین کرن به عنوان یک شل تعاملی که ساب شل محسوب بشه به عنوان یک شل غیر تعاملی برای اجرای اسکریپت ها که با استفاده از هر کدوم از روش های بالا فایل های استارت اپ مد نظرمون رو مشخص میکنیم شل پیش فرض موقع لاگین با پنج فایل استارت اپ زیر سروکار داره /etc/profile $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile فایل /etc/profile استارت اپ فایل اصلی پیش فرضه تمام یوزر های سیستم این فایل رو موقع لاگین اجرا میکنن لازمه بدونید بعضی از لینوکس ها از pluggable authentication modules = PAM استفاده میکنن , که در این صورت قبل از اینکه شل بش اجرا بشه پروسه pam file اجرا میشه که باعث تغیر در حالت پیش فرض اجرای استارت اپ ها میشه یک نمونه از محتویات این فایل رو در کادر زیر میبینید # /etc/profile: system-wide .profile file for the Bourne shell (sh(1)) # and Bourne compatible shells (bash(1), ksh(1), ash(1), ...). if [ "$PS1" ]; then if [ "$BASH" ] && [ "$BASH" != "/bin/sh" ]; then # The file bash.bashrc already sets the default PS1. # PS1='\h:\w\$ ' if [ -f /etc/bash.bashrc ]; then . /etc/bash.bashrc fi else if [ "`id -u`" -eq 0 ]; then PS1='# ' else PS1='$ ' fi fi fi # The default umask is now handled by pam_umask. # See pam_umask(8) and /etc/login.defs. if [ -d /etc/profile.d ]; then for i in /etc/profile.d/*.sh; do if [ -r $i ]; then . $i fi done unset i fi هر نوع از لینوکس تنظیمات مختلفی رو در این فایل اعمال میکنه مثلا در این نمونه فایلی که با اسم /etc/bash.bashrc. شناخته شده , حاوی لیست متغیر های موقعیتی هستش توجه کنید در مثال پایین از فایل /etc/profile که متعلق به CentOS distribution هستش , به فایلی با اسم /etc/bash.bashrc اشاره ای نشده # /etc/profile # System wide environment and startup programs, for login setup # Functions and aliases go in /etc/bashrc # It's NOT a good idea to change this file unless you know what you # are doing. It's much better to create a custom.sh shell script in # /etc/profile.d/ to make custom changes to your environment, to # prevent the need for merging in future updates. pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac }if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`id -u` UID=`id -ru` fi USER="`id -un`" LOGNAME=$USER MAIL="/var/spool/mail/$USER" fi # Path manipulation if [ "$EUID" = "0" ]; then pathmunge /sbin pathmunge /usr/sbin pathmunge /usr/local/sbin else pathmunge /usr/local/sbin after pathmunge /usr/sbin after pathmunge /sbin after fi HOSTNAME=`/bin/hostname 2>/dev/null` HISTSIZE=1000 if [ "$HISTCONTROL" = "ignorespace" ] ; then export HISTCONTROL=ignoreboth else export HISTCONTROL=ignoredups fi export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # By default, we want umask to get set. This sets it for login shell # Current threshold for system reserved uid/gids is 200 # You could check uidgid reservation validity in # /usr/share/doc/setup-*/uidgid file if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then umask 002 else umask 022 fi for i in /etc/profile.d/*.sh ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null 2>&1 fi fi done unset i unset -f pathmunge از بین بقیه فایل های استارت اپ اکثر لینوکس ها فقط یکی دوتاشون رو مورد استفاده قرار میدن $HOME/.bash_profile $HOME/.bashrc $HOME/.bash_login $HOME/.profile دقت کنید که هر چهار فایل با نقطه شروع میشن , که باعث میشه مخفی باشن به خاطر اینکه این فایل ها در دایرکتوری هر یوزر هستند , هر یوزر میتونه فقط فایل های خودش رو تغیر بده و متغیر های خودش رو اضافه کنه , که برای هر سیشن بشی که اجرا کنه فعال باشن ارایه ها : نکته جالب در مورد متغیر های محیطی اینه که میتونن به عنوان ارایه هم مورد استفاده قرار بگیرن یک ارایه , متغیریه که میتونه چند مقدار رو نگه داره برای ایجاد چند مقدار برای یک متغیر (تبدیل به ارایه) فقط کافیه اونارو بین پرانتز قرار بدید و با فاصله از هم جداشون کنید $ mytest=(one two three four five) روش مشاهده مقادیر ارایه ها با متغیر ها متفاوته شما نمیتونید مقدار ارایه هارو با روش متغیر ها نمایش بدید $ echo $mytest one تنها اولین مقدار از ارایه نمایش داده شد برای دیدن بخش مورد نظر از ارایه , از روش زیر تبعیت میکنیم $ echo ${mytest[2]} three به دلیل اینکه مقادیر ارایه از شماره صفر شروع میشن , شماره جایگاه سومین مقدار میشه 2 برای دیدن تمام مقادیر ارایه از * استفاده میکنیم $ echo ${mytest[*]} one two three four five شما میتونید حتی فقط مقدار مورد نظرتونو تغیر بدید $ mytest[2]=seven $ $ echo ${mytest[*]} one two seven four five میبینید که مقدار جایگاه شماره 2 به seven تغیر کرد شما حتی میتونید با استفاده از دستور unset مقدار مورد نظر رو حذف کنید $ unset mytest[2] $ $ echo ${mytest[*]} one two four five $ $ echo ${mytest[2]} $ echo ${mytest[3]} four اگه دقت کرده باشید متوجه میشید که مقدار جایگاه شماره 2 پاک شده و خودش تغیر نکرده شما میتونید طبق مثال زیر تمام ارایه رو حذف کنید $ unset mytest $ $ echo ${mytest[*]} $ پایان قسمت ششم از بخش یک در قسمت بعد وارد موضوعات مرتبط با یوزر میشیم
  40. 4 امتیاز
    سلام سلام یه چیز قدیمی ولی جالب اینستاگرام یک صقحه ی لوگ این جز صفحه ی اوگ این خودش داره که اگه برای بروت فورس خواستین استفاده بکنین این خیلی به دردتون میخوره چون اجزا کمتری داره و راحت تر کانفیگ رو مینویسین یا اسکیریپت خودتون رو لینک
  41. 4 امتیاز
    بخش اول - قسمت پنجم یکی از عوامل تاثیر گذار در محیط شل متغیر های محیطی هستند , که خیلی از برنامه ها و اسکریپت ها ازشون استفاده میکنن , در این قسمت بیشتر باهاشون اشنا میشید در اصل متغیر های محیطی محلی برای نگه داشتن اطلاعات مربوط به سیشن های شل و محیط کاری هستند همچنین این امکان رو به شما میدن تا دیتا ها رو در مموری نگه دارید تا به سادگی توسط برنامه ها و اسکریپت های شل قابل دسترسی باشه دو نوع متغیر محیطی در بش شل وجود داره , که بهشون میپردازیم global variables و local variables نگاهی به متغیر های محیطی گلوبال : این نوع از متغیر ها هم از درون شل , و هم از درون همه ساب شل های اون قابل رویت هستند در صورتی که نوع لوکال فقط از درون خود شل دیده میشن که این موضوع نوع گلوبال رو برای اپلیکیشن هایی که ساب شل اجرا میکنن با استفاده میکنه ( ساب شل هایی که اطلاعات مربوط به پرنت شل رو درخواست میکنن ) وقتی شما سیشن بش رو فعال میکنید سیستم لینوکس چند متغیر محیطی گلوبال براتون ست میکنه , به اسم متغیر های محیطی سیستمی , که تقریبا همیشه از حروف بزرگ برای اسمشون استفاده میکنن , تا از متغیر هایی که یوزر تعریف میکنه قابل تمایز باشن برای دیدن لیست متغیر های محیطی گلوبال از دستور های env و printenv استفاده میکنیم $ printenv HOSTNAME=server01.class.edu SELINUX_ROLE_REQUESTED= TERM=xterm SHELL=/bin/bash HISTSIZE=1000 [...] HOME=/home/rednaxela LOGNAME=rednaxela [...] G_BROKEN_FILENAMES=1 _=/usr/bin/printenv در مثال بالا فقط بخشی از خروجی دستور رو براتون گذاشتم نه تنها در هنگام لاگین بخشی از متغیر های محیطی گلوبال براتون ست میشه , بلکه نوع لاگین میتونه تایین کننده باشه در انتخابشون با دستور printenv میتونید مقدار هر کدومشونم ببینید , اکه البته با دستور env شدنی نیست $ printenv HOME /home/rednaxela $ $ env HOME env: HOME: No such file or directory که البته با دستور echo هم میتونید این کارو کنید , که باید از علامت $ قبل از اسم متغیر استفاده کنید $ echo $HOME /home/rednaxela لازمه بدونید استفاده از علامت $ قبل از اسم متغیر فقط به دلیل دیدن مقادیر متغیر نیست , بلکه این امکان رو هم بهتون میده تا از متغیر به عنوان پارامتر یه دستور هم استفاده کنید به مثال زیر دقت کنید $ ls $HOME Desktop Downloads Music Public test.sh Documents junk.dat Pictures Templates Videos $ $ ls /home/rednaxela Desktop Downloads Music Public test.sh Documents junk.dat Pictures Templates Videos بالا تر گفتیم که این متغیر ها از درون ساب شل هم دیده میشن به مثال زیر دقت کنید $ bash $ $ ps -f UID PID PPID C STIME TTY TIME CMD 501 2017 2016 0 16:00 pts/0 00:00:00 -bash 501 2082 2017 0 16:08 pts/0 00:00:00 bash 501 2095 2082 0 16:08 pts/0 00:00:00 ps -f $ $ echo $HOME /home/rednaxela $ $ exit exit $ بریم سراغ متغیر های محیطی لوکال همونطور که از اسمشون مشخصه , این متغیر ها فقط از داخل پروسه ای که توش تعریف شدن قابل خوندن اند اگرچه لوکال اند ولی به همون اندازه هم نوع های گلوبالشون مهم اند , در اصل سیستم لینوکس از این نوع متغیر هم به صورت پیش فرض براتون تعریف کرده به هر حال شما میتونید متغیر های خوتون رو تعریف کنید دستور set لیست تمام متغیر هایی که برای یک پروسه تعریف شدن رو نمایش میده , که شامل نوع گلوبال , لوکال و نوع تعریف شده توسط یوزر (user-defined) میشه , در مثال زیر بخشی از خروجی دستور رو براتون گذاشتم $ set BASH=/bin/bash [...] BASH_ALIASES=() BASH_ARGC=() BASH_ARGV=() BASH_CMDS=() BASH_LINENO=() BASH_SOURCE=() [...] colors=/etc/DIR_COLORS rednaxela_variable='guardiran' [...] $ نحوه تعریف متغیر های user-defined بعد از ران کردن بش شل شما مجازید متغیر های خودتونو تعریف کنید برای تعریف متغیر کافیه اسم منتخب رو همراه با علامت = و مقدار متغیر , بدون هیچگونه فاصله کنار هم بزارید به مثال زیر دقت کنید $ my_variable=Hello $ $ echo $my_variable Hello در صورت وجود فاصله فرایند به مشگل میخوره , مثل : $ my_variable = "Hello World" —bash: my_variable: command not found اگه خواستید مقدار متغیر رو رشته ای قرار بدید که حاوی فاصله هم باشه , باید رشته رو بین تک یا دابل کوتیشن بزارید , مثال زیر : $ my_variable=Hello World —bash: World: command not found $ $ my_variable="Hello World" $ $ echo $my_variable Hello World بدون کوتیشن شل تصور میکرد کلمه بعد از فاصله دستور بعدی شله دقت کنید متغیری که ما تعریف کردیم بر خلاف مثال های قبلی با حروف کوچیکه , چون متغیر های سیستمی با حروف بزرگ تعریف شدن هر موقع خواستید متغیری با اسم حروف بزرگ تعریف کنید باید مواضب تشابه اسمی باشید وقتی یه متغیر لوکال تعریف میکنید , در هر جایی در داخل پروسه شل خودتون قابل دستیابیه , مشگل زمانی پیش میاد که یه ساب شل ران بشه به مثال زیر توجه کنید $ my_variable="Hello World" $ $ bash $ $ echo $my_variable $ exit exit $ $ echo $my_variable Hello World همونطور که دیدید متغیری که تو پرنت شل تعریف شده بود از داخل ساب شل قابل دسترس نبود این موضوع در مورد حالت برعکس این مثال هم صدق میکنه , مثال زیر : $ echo $my_child_variable $ bash $ $ my_child_variable="Hello Little World" $ $ echo $my_child_variable Hello Little World $ $ exit exit $ $ echo $my_child_variable $ میبینید که مقدار خروجی خط خالی قرار گرفته نه مقدار متغیر , چون در این سطح همچین متغیری وجود نداره نحوه تعریف متغیر های محیطی گلوبال این متغیر ها بر خلاف نوع قبلی از درون هر ساب شلی که ریشه در شل اصلی داشته باشه قابل مشاهدس برای ساخت این نوع از متغیر شما باید اول یک متغیر لوکال بسازید بعد اکسپورتش کنید به محیط گلوبال این کار با استفاده از دستور export و نام متغیر بدون علامت $ انجام میشه , مثال زیر : $ my_variable="I am Global now" $ $ export my_variable $ $ echo $my_variable I am Global now $ $ bash $ $ echo $my_variable I am Global now $ $ exit exit $ $ echo $my_variable I am Global now دقت کنید که تغیر مقدار یک متغیر گلوبال که در پرنت شل تعریف شده از داخل ساب شل شدنی نیست , مثال زیرو ببینید $ export my_variable $ $ echo $my_variable I am Global now $ $ bash $ $ echo $my_variable I am Global now $ $ my_variable="Null" $ $ echo $my_variable Null $ $ exit exit $ $ echo $my_variable I am Global now طبق این مثال متوجه میشید که دستورات از بالا به پایین منتقل میشن , نه برعکس ساب شل فقط تونست یه متغیر با اون اسم داخل خودش تعریف کنه اکسپورت کردن هم از همین اصل تبعیت میکنه , یه متغیر از بالا اکسپورت میشه که از پایین قابل دسترسی باشه , نه برعکس , مثال زیرو ببینید $ my_variable="I am Global now" $ export my_variable $ $ echo $my_variable I am Global now $ $ bash $ $ echo $my_variable I am Global now $ $ my_variable="Null" $ $ export my_variable $ $ echo $my_variable Null $ $ exit exit $ $ echo $my_variable I am Global now برای از بین بردن متغیر ها هم باید از دستور unset و نام متغیر بدون علامت $ استفاده کنید $ echo $my_variable I am Global now $ $ unset my_variable $ $ echo $my_variable $ میبینید که خروجی خط خالی داد که البته طبق اصلی که توصیح دادم , از ساب شل نمیشه تو پرنت شل تغیر ایجاد کرد مثال زیر رو ببینید $ my_variable="I am Global now" $ $ export my_variable $ $ echo $my_variable I am Global now $ $ bash $ $ echo $my_variable I am Global now $ $ unset my_variable $ $ echo $my_variable $ exit exit $ $ echo $my_variable I am Global now میبینید که فقط توی ساب شل از بین رفت متغیر های محیطی پیش فرض شل : شل بش متغیر های مشخصی رو به صورت پیش فرض قرار میده تا محیط سیستم رو تعریف کنن که میتونن برامون مفید باشن , در لیست زیر متغیر هایی رو که بش فراهم میکنه میتونید ببینید CDPATH A colon-separated list of directories used as a search path for the cd command HOME The current user’s home directory IFS A list of characters that separate fi elds used by the shell to split text strings MAIL The filename for the current user’s mailbox (The bash shell checks this fi le for new mail.) MAILPATH A colon-separated list of multiple filenames for the current user’s mailbox (The bash shell checks each file in this list for new mail.) OPTARG The value of the last option argument processed by the getopt command OPTIND The index value of the last option argument processed by the getopt command PATH A colon-separated list of directories where the shell looks for commands PS1 The primary shell command line interface prompt string PS2 The secondary shell command line interface prompt string علاوه بر متغیر های بالا , خود بش هم تعدادی از این متغیر ها توسط خودش تعریف میکنه BASH The full pathname to execute the current instance of the bash shell BASH_ALIASES An associative array of currently set aliases BASH_ARGC A variable array that contains the number of parameters being passed to a subroutine or shell script BASH_ARCV A variable array that contains the parameters being passed to a subroutine or shell script BASH_CMDS An associative array of locations of commands the shell has executed BASH_COMMAND The shell command currently being or about to be executed BASH_ENV When set, each bash script attempts to execute a startup file defined by this variable before running BASH_EXECUTION_STRING The command(s) passed using the bash -c option BASH_LINENO A variable array containing the source code line number of the currently executing shell function BASH_REMATCH A read-only variable array containing patterns and their sub-patterns for positive matches using the regular expression comparison operator BASH_SOURCE A variable array containing the source code filename of the currently executing shell function BASH_SUBSHELL The current nesting level of a subshell environment (The initial value is 0.) BASH_VERSINFO A variable array that contains the individual major and minor version numbers of the current instance of the bash shell BASH_VERSION The version number of the current instance of the bash shell BASH_XTRACEFD If set to a valid file descriptor (0,1,2), trace output generated from the 'set -x' debugging option can be redirected. This is often used to separate trace output into a file. BASHOPTS A list of bash shell options that are currently enabled BASHPID Process ID of the current bash process COLUMNS Contains the terminal width of the terminal used for the current instance of the bash shell COMP_CWORD An index into the variable COMP_WORDS, which contains the current cursor position COMP_LINE The current command line COMP_POINT The index of the current cursor position relative to the beginning of the current command COMP_KEY The final key used to invoke the current completion of a shell function COMP_TYPE An integer value representing the type of completion attempted that caused a completion shell function to be invoked COMP_WORDBREAKS The Readline library word separator characters for performing word completion COMP_WORDS An array variable that contains the individual words on the current command line COMPREPLY An array variable that contains the possible completion codes generated by a shell function COPROC An array variable that holds an unnamed coprocess’ I/O fi le descriptors DIRSTACK An array variable that contains the current contents of the directory stack EMACS Indicates the emacs shell buffer is executing and line editing is disabled, when set to 't' ENV When set, executes the startup fi le defi ned before a bash shell script runs (It is used only when the bash shell has been invoked in POSIX mode.) EUID The numeric effective user ID of the current user FCEDIT The default editor used by the fc command FIGNORE A colon-separated list of suffi xes to ignore when performing fi le name completion FUNCNAME The name of the currently executing shell function FUNCNEST Sets the maximum allowed function nesting level, when set to a number greater than zero (If it is exceeded, the current command aborts.) GLOBIGNORE A colon-separated list of patterns defi ning the set of fi lenames to be ignored by fi le name expansion GROUPS A variable array containing the list of groups of which the current user is a member histchars Up to three characters, which control history expansion HISTCMD The history number of the current command HISTCONTROL Controls what commands are entered in the shell history list HISTFILE The name of the fi le in which to save the shell history list (.bash_history by default) HISTFILESIZE The maximum number of lines to save in the history fi le HISTTIMEFORMAT Used as a formatting string to print each command’s timestamp in bash history, if set and not null HISTIGNORE A colon-separated list of patterns used to decide which com- mands are ignored for the history fi le HISTSIZE The maximum number of commands stored in the history fi le HOSTFILE Contains the name of the fi le that should be read when the shell needs to complete a hostname HOSTNAME The name of the current host HOSTTYPE A string describing the machine the bash shell is running on IGNOREEOF The number of consecutive EOF characters the shell must receive before exiting (If this value doesn’t exist, the default is 1.) INPUTRC The name of the Readline initialization fi le (The default is.inputrc.) LANG The locale category for the shell LC_ALL Overrides the LANG variable, defi ning a locale category LC_COLLATE Sets the collation order used when sorting string values LC_CTYPE Determines the interpretation of characters used in fi lename expansion and pattern matching LC_MESSAGES Determines the locale setting used when interpreting doublequoted strings preceded by a dollar sign LC_NUMERIC Determines the locale setting used when formatting numbers LINENO The line number in a script currently executing LINES Defi nes the number of lines available on the terminal MACHTYPE A string defi ning the system type in cpu-company-system format MAPFILE An array variable that holds read-in text from the mapfile com- mand when no array variable name is given MAILCHECK How often (in seconds) the shell should check for new mail (The default is 60.) OLDPWD The previous working directory used in the shell OPTERR If set to 1, the bash shell displays errors generated by the getopts command. OSTYPE A string defi ning the operating system the shell is running on PIPESTATUS A variable array containing a list of exit status values from the processes in the foreground process POSIXLY_CORRECT If set, bash starts in POSIX mode. PPID The process ID (PID) of the bash shell’s parent process PROMPT_COMMAND If set, the command to execute before displaying the primary prompt PROMPT_DIRTRIM An integer used to indicate the number of trailing directory names to display when using the \w and \W prompt string escapes (The directory names removed are replaced with one set of ellipses.) PS3 The prompt to use for the select command PS4 The prompt displayed before the command line is echoed if the bash -x parameter is used PWD The current working directory RANDOM Returns a random number between 0 and 32767 (Assigning a value to this variable seeds the pseudo-random number generator.) READLINE_LINE Readline buffer contents when using bind -x command READLINE_POINT Readline buffer content insertion point’s current position when using bind -x command REPLY The default variable for the read command SECONDS The number of seconds since the shell was started (Assigning a value resets the timer to the value.) SHELL The full pathname to the bash shell SHELLOPTS A colon-separated list of enabled bash shell options SHLVL Indicates the shell level, incremented by one each time a new bash shell is started TIMEFORMAT A format specifying how the shell displays time values TMOUT The value of how long (in seconds) the select and read com- mands should wait for input (The default of zero indicates to wait indefi nitely.) TMPDIR Directory name where the bash shell creates temporary fi les for its use UID The numeric real user ID of the current user پایان قسمت پنجم از بخش یک در قسمت بعد استارت اپ ها و ارایه ها رو توضیح میدم
  42. 3 امتیاز
    درود دوست عزیز فایل های apk برای اجرا مخصوصا در اندروید های 5 به بالا دسترسی میخان از کاربر و حتما باید برای نصب به دایرکتوری های ماشین مفسر جاوا روی اندروید معرفی شن طبق این تعریف شما نمیتونید که با ارسال فایل png به تارگت به صورت اتوماتیک اقدام به نصب apk کنید و همچین چیزی کاملا محاله. تنها کاری که میتونید توی اندروید انجام بدید بایند کردن ویروس توی apk سالم هست که بیشتر مواقع آنتی ویروس های اندروید تشخیص میدن و شما باید انکریپت کنید
  43. 3 امتیاز
    سال 93 بنده تاپیکی ایجاد کرده بودم تو اون زمان خیلی جامع و تقریبا کامل به این موضوع پرداخته بودم اما به دلایلی ( اخطار سازمان ف تری ن گ ) تاپیک رو از درسترس عموم حارج کردیم و به بخش خصوصی اضافه کردیم.. برای مدت کوتاهی در دسترس قرارش میدم تا استفاده کنید... امیدوارم مفید واقع بشه و تشکر میکنم از راهنمایی دوستان یک نکته دیگه هم باید اضافه کنم کار شما به کرک کردن بخوره یعنی قرار نیست 100% جواب بگیرید شما فقط میتونید تلاش خودتون رو بکنید ! تاپیک بنده رو مطالعه کنید بعد اقدام کنید. لینک تاپیک موفق باشید/
  44. 3 امتیاز
    سلام مجدد خدمت کاربران گرامی چند روز پیش آموزش ساخت اکانت آنتی اسپم رو برای تلگرام قرار دادم ... امروز آموزش ساخت نامحدود مخاطب و اد لیست تلگرام رو به همراه تمامی فایل های مورد نیاز نصبی قرار میدم که در بقیه سایت ها یا به شکل پراکنده و با موضوعات دیگر قرار گرفته و یا با قیمت خاص فروش میره ... آموزش تبدیل فایل تکست به اکسل رو در پست بعدی قرار میدم ک مکمل این مطلب هستش برای مرحله اولیه کار و همچنین 3 ادلیست کاملا متنوع (تکست) و یک اد لیست 500 تایی اکسل شده جهت استفاده شما عزیزان در فایل قرار دادم که نمونه فایل آماده رو ببینید ... نکته * فایل خروجی و نهایی شما باید با استفاده از برنامه های قرارداده شده و با فرمت VCF باشد تا قابلیت اد کردن در تلفن اندروید شمارو داشته باشد و برای کاربران آیفون جهت اضافه کردن لیست باید فایل رو در icloud یا سیستم های شیر ابری قرار بدهند و با تلفن دانلود و منتقل کنند ( پیشنهاد استفاده از سیستم مخاطب گوگل هستش ) CALT.rar
  45. 3 امتیاز
    احتمالش زیاد هست که تارگتتون آسیب پذیر نباشه اما ارور همیشه نشونه نیست، لود نشدن کامل صفحه(لود نشدن عکس ها یا ..)، دیر لود شدن و ... میتونه بیانگر اسیب پذیری سایت باشه !
  46. 3 امتیاز
    درود، برای این تارگت میتونید از حملات SQL injection استفاده کنید، آموزش SQL injection
  47. 3 امتیاز
    یوزرت دسترسی به sudo نداره ، با دستور زیر باید اضافش کنی به گروه یوزر های sudo باید با یوزر روت اضافش کنی که اینطور که به نظر میاد زدی پسوردشو عوض کردی الانم نمیدونی پسورد روت چیه پسورد پیش فرض : toor اگه تونستی روت بشی اینو بزن تا همیشه یوزر خودت بتونه از sudo استفاده کنه : usermod -aG sudo amirkali
  48. 3 امتیاز
    اسکنر پورت قدرتمند با گرافیک د دیزاین بهتر نوشته شده توسط مبین حسن خانی Port Scanner.rar
  49. 3 امتیاز