diff --git a/.github/workflows/CI-PR_from_dev.yml b/.github/workflows/CI-PR_from_dev.yml new file mode 100644 index 0000000..af2feb7 --- /dev/null +++ b/.github/workflows/CI-PR_from_dev.yml @@ -0,0 +1,26 @@ +name: CI-PR_from_dev + +on: + push: + branches: + - winpeas_dev + - linpeas_dev + + workflow_dispatch: + +jobs: + create_pull_request: + runs-on: ubuntu-latest + + steps: + # checkout + - name: Checkout + uses: actions/checkout@v2 + + # PR + - name: Pull Request + uses: repo-sync/pull-request@v2 + with: + destination_branch: "master" + github_token: ${{ secrets.PULL_REQUEST_TOKEN }} + diff --git a/.github/workflows/CI-linpeas_dev_test.yml b/.github/workflows/CI-linpeas_dev_test.yml deleted file mode 100644 index 45bd7f4..0000000 --- a/.github/workflows/CI-linpeas_dev_test.yml +++ /dev/null @@ -1,61 +0,0 @@ -name: CI-linpeas_dev_test - -on: - push: - branches: - - linpeas_dev - - workflow_dispatch: - -jobs: - Build_and_test_linpeas_dev: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Build linpeas - run: | - python3 -m pip install PyYAML - cd linPEAS - python3 -m builder.linpeas_builder - - - name: Run linpeas - run: linPEAS/linpeas.sh - - - name: Create local changes - run: git add linPEAS/linpeas.sh - - - name: Commit results to Github - run: | - git config --local user.email "" - git config --global user.name "CI-linpeas-ubuntu" - git commit -m "linpeas.sh auto update" -a --allow-empty - - - name: Push changes - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} - - - uses: actions/checkout@v2 - - name: pull-request - uses: repo-sync/pull-request@v2 - with: - destination_branch: "master" - github_token: ${{ secrets.PULL_REQUEST_TOKEN }} - - Build_and_test_macpeas_dev: - runs-on: macos-latest - - steps: - - uses: actions/checkout@v2 - - - name: Build macpeas - run: | - python3 -m pip install PyYAML - cd linPEAS - python3 -m builder.linpeas_builder - - - name: Run macpeas - run: linPEAS/linpeas.sh -o SysI,Container,Devs,AvaSof,ProCronSrvcsTmrsSocks,Net,UsrI,SofI \ No newline at end of file diff --git a/.github/workflows/CI-linpeas_master_test.yml b/.github/workflows/CI-linpeas_master_test.yml deleted file mode 100644 index 32f9790..0000000 --- a/.github/workflows/CI-linpeas_master_test.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: CI-linpeas_master_test - -on: - pull_request: - branches: - - master - - workflow_dispatch: - -jobs: - Build_and_test_linpeas_master: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - - name: Build linpeas - run: | - python3 -m pip install PyYAML - cd linPEAS - python3 -m builder.linpeas_builder - - - name: Run linpeas - run: linPEAS/linpeas.sh - - - name: Create local changes - run: git add linPEAS/linpeas.sh - - - name: Commit results to Github - run: | - git config --local user.email "" - git config --global user.name "CI-linpeas-ubuntu" - git commit -m "linpeas.sh auto update" -a --allow-empty - - - name: Push changes - uses: ad-m/github-push-action@master - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: ${{ github.ref }} - - Build_and_test_macpeas_master: - runs-on: macos-latest - - steps: - - uses: actions/checkout@v2 - - - name: Build macpeas - run: | - python3 -m pip install PyYAML - cd linPEAS - python3 -m builder.linpeas_builder - - - name: Run macpeas - run: linPEAS/linpeas.sh -o SysI,Container,Devs,AvaSof,ProCronSrvcsTmrsSocks,Net,UsrI,SofI diff --git a/.github/workflows/CI-winpeas_master_test.yml b/.github/workflows/CI-master_tests.yml similarity index 65% rename from .github/workflows/CI-winpeas_master_test.yml rename to .github/workflows/CI-master_tests.yml index aa4a97a..281f2a8 100644 --- a/.github/workflows/CI-winpeas_master_test.yml +++ b/.github/workflows/CI-master_tests.yml @@ -1,4 +1,4 @@ -name: CI-winpeas_master_test +name: CI-master_test on: pull_request: @@ -11,6 +11,7 @@ jobs: Build_and_test_winpeas_master: runs-on: windows-latest + needs: Build_and_test_linpeas_master # environment variables env: @@ -21,7 +22,12 @@ jobs: steps: # checkout - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@master + with: + persist-credentials: false + # Otherwise, you will failed to push refs to dest repo. + fetch-depth: 0 + ref: refs/heads/${{ github.head_ref }} # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - name: Setup MSBuild.exe @@ -74,22 +80,18 @@ jobs: whoami mkdir -p $env:USERPROFILE\AppData\Local\"PreEmptive Solutions"\"Dotfuscator Community Edition"\6.0 -erroraction 'silentlycontinue' cp DotfuscatorCE\license\* $env:USERPROFILE\AppData\Local\"PreEmptive Solutions"\"Dotfuscator Community Edition"\6.0\ - # build obfuscated versions - name: Build obfuscated versions run: | DotfuscatorCE\dotfuscator.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\x64.xml" DotfuscatorCE\dotfuscator.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\x86.xml" DotfuscatorCE\dotfuscator.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\any.xml" - - # copy the files - name: Copy Dotfuscator generated files run: | cp $env:DotFuscatorGeneratedPath\x64\winPEASx64.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASx64.exe" cp $env:DotFuscatorGeneratedPath\x86\winPEASx86.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASx86.exe" cp $env:DotFuscatorGeneratedPath\any\winPEASany.exe "winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASany.exe" - # Git add - name: Create local changes run: | @@ -97,17 +99,77 @@ jobs: git add winPEAS\winPEASexe\binaries\x64\* git add winPEAS\winPEASexe\binaries\x86\* git add "winPEAS\winPEASexe\binaries\Obfuscated Releases\*.exe" - # Git commit - name: Commit results to Github run: | git config --local user.email "ci@winpeas.com" git config --global user.name "CI-winpeas" + git pull origin "${{ github.ref }}" --autostash --rebase -Xours git commit -m "winpeas binaries auto update" -a --allow-empty # Git push - name: Push changes uses: ad-m/github-push-action@master with: - github_token: ${{ secrets.GITHUB_TOKEN }} - branch: master + branch: refs/heads/${{ github.head_ref }} + github_token: ${{ secrets.GITHUB_TOKEN }} + force: true + + Build_and_test_linpeas_master: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + # Otherwise, you will failed to push refs to dest repo. + fetch-depth: 0 + ref: refs/heads/${{ github.head_ref }} + + - name: Build linpeas + run: | + python3 -m pip install PyYAML + cd linPEAS + python3 -m builder.linpeas_builder + + - name: Run linpeas help + run: linPEAS/linpeas.sh -h + + - name: Run linpeas + run: linPEAS/linpeas.sh + + - name: Create local changes + run: git add linPEAS/linpeas.sh + + - name: Commit results to Github + run: | + git config --local user.email "" + git config --global user.name "CI-linpeas-ubuntu" + git pull origin "${{ github.ref }}" --autostash --rebase -Xours + git commit -m "linpeas.sh auto update" -a --allow-empty + + - name: Push changes + uses: ad-m/github-push-action@master + with: + branch: refs/heads/${{ github.head_ref }} + github_token: ${{ secrets.GITHUB_TOKEN }} + force: true + + Build_and_test_macpeas_master: + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + + - name: Build macpeas + run: | + python3 -m pip install PyYAML + python3 -m pip install requests + cd linPEAS + python3 -m builder.linpeas_builder + + - name: Run macpeas help + run: linPEAS/linpeas.sh -h + + - name: Run macpeas + run: linPEAS/linpeas.sh -o SysI,Container,Devs,AvaSof,ProCronSrvcsTmrsSocks,Net,UsrI,SofI \ No newline at end of file diff --git a/.github/workflows/CI-winpeas_dev_test.yml b/.github/workflows/CI-winpeas_dev_test.yml deleted file mode 100644 index 33614a5..0000000 --- a/.github/workflows/CI-winpeas_dev_test.yml +++ /dev/null @@ -1,65 +0,0 @@ -name: CI-winpeas_dev_test - -on: - push: - branches: - - winpeas_dev - - linpeas_dev - paths: - - 'build_lists/sensitive_files.yaml' - - 'winPEAS/winPEASexe/**' - - workflow_dispatch: - -jobs: - - Build_and_test_winpeas_dev: - runs-on: windows-latest - - # environment variables - env: - Solution_Path: 'winPEAS\winPEASexe\winPEAS.sln' - Configuration: 'Release' - - steps: - # checkout - - name: Checkout - uses: actions/checkout@v2 - - # Add MSBuild to the PATH: https://github.com/microsoft/setup-msbuild - - name: Setup MSBuild.exe - uses: microsoft/setup-msbuild@v1.0.2 - - # Setup NuGet - - name: Setup NuGet.exe - uses: nuget/setup-nuget@v1 - - # Restore the packages for testing - - name: Restore the application - run: nuget restore $env:Solution_Path - - # build - - name: run MSBuild - run: msbuild $env:Solution_Path - - # Execute all unit tests in the solution - - name: Execute unit tests - run: dotnet test $env:Solution_Path - - - create_pull_request: - runs-on: ubuntu-latest - needs: Build_and_test_winpeas_dev - - steps: - # checkout - - name: Checkout - uses: actions/checkout@v2 - - # PR - - name: Pull Request - uses: repo-sync/pull-request@v2 - with: - destination_branch: "master" - github_token: ${{ secrets.PULL_REQUEST_TOKEN }} - \ No newline at end of file diff --git a/.gitignore b/.gitignore index 107c347..7ebca0f 100755 --- a/.gitignore +++ b/.gitignore @@ -14,4 +14,11 @@ bin packages *cpython* */*cpython* -launch.json \ No newline at end of file +launch.json +*.pyc +**/*.pyc +__pycache__ +*/__pycache__ +**/__pycache__ +linPEAS/builder/__pycache__/* +linPEAS/builder/src/__pycache__/* \ No newline at end of file diff --git a/README.md b/README.md index ce19748..bda2f38 100755 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ -# PEASS - Privilege Escalation Awesome Scripts SUITE +# PEASS-ng - Privilege Escalation Awesome Scripts SUITE new generation ![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/linPEAS/images/peass.png) -![](https://img.shields.io/badge/Black-Arch-black) ![](https://img.shields.io/badge/Arch-AUR-brightgreen) ![](https://img.shields.io/badge/Black%20Hat%20Arsenal-Asia%202020-red) +![](https://img.shields.io/badge/Black-Arch-black) ![](https://img.shields.io/badge/Arch-AUR-brightgreen) ![](https://img.shields.io/badge/Black%20Hat%20Arsenal-Asia%202020-red) [![CI-master_test](https://github.com/carlospolop/PEASS-ng/actions/workflows/CI-master_tests.yml/badge.svg)](https://github.com/carlospolop/PEASS-ng/actions/workflows/CI-master_tests.yml) + +# Basic Tutorial +[![Tutorial](https://img.youtube.com/vi/2Ey1WQXNp3w/0.jpg)](https://www.youtube.com/watch?v=9_fJv_weLU0&list=PL9fPq3eQfaaDxjpXaDYApfVA_IB8T14w7) -[![Packaging status](https://repology.org/badge/vertical-allrepos/peass.svg)](https://repology.org/project/peass/versions) Here you will find **privilege escalation tools for Windows and Linux/Unix\* and MacOS**. @@ -18,7 +20,7 @@ These tools search for possible **local privilege escalation paths** that you co ## Let's improve PEASS together -If you want to **add something** and have **any cool idea** related to this project, please let me know it in the **telegram group https://t.me/peass** or using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)** and we will update the master version. +If you want to **add something** and have **any cool idea** related to this project, please let me know it in the **telegram group https://t.me/peass** or contribute reading the **[CONTRIBUTING.md](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/CONTRIBUTING.md)** file. ## Please, if this tool has been useful for you consider to donate diff --git a/build_lists/sensitive_files.yaml b/build_lists/sensitive_files.yaml index 200655c..e1c43ea 100644 --- a/build_lists/sensitive_files.yaml +++ b/build_lists/sensitive_files.yaml @@ -80,6 +80,13 @@ storage_template: > int_hidden_files_markup: "peass{INT_HIDDEN_FILES}" +suidVB1_markup: "peass{SUIDVB1_HERE}" +suidVB2_markup: "peass{SUIDVB2_HERE}" +sudoVB1_markup: "peass{SUDOVB1_HERE}" +sudoVB2_markup: "peass{SUDOVB2_HERE}" +cap_setuid_markup: "peass{CAP_SETUID_HERE}" +cap_setgid_markup: "peass{CAP_SETGID_HERE}" + ############################## @@ -90,8 +97,8 @@ int_hidden_files_markup: "peass{INT_HIDDEN_FILES}" variables_markup: "peass{VARIABLES}" variables: - - name: pwd_inside_history - value: "7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@" + - name: pwd_inside_history + value: "enable_autologin|7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@|KEY=|TOKEN=|BEARER=|Authorization:" @@ -375,7 +382,7 @@ search: bad_regex: "AuthType|AuthName|AuthUserFile|ServerName|ServerAlias" only_bad_lines: True remove_empty_lines: True - remove_regex: '^#' + remove_regex: '#' search_in: - common @@ -402,6 +409,7 @@ search: - /tmp - /var - /mnt + - /private - name: PHP_files value: @@ -571,9 +579,11 @@ search: auto_check: True files: - - name: "hostapd.conf" + - name: "hostapd.conf" value: bad_regex: "passphrase.*" + remove_regex: '^#' + remove_empty_lines: True type: f search_in: - common @@ -592,13 +602,37 @@ search: search_in: - common + + - name: Racoon + value: + config: + auto_check: True + + files: + - name: "racoon.conf" + value: + remove_empty_lines: True + bad_regex: "pre_shared_key.*" + remove_regex: '^#' + type: f + search_in: + - common + + - name: "psk.txt" + value: + remove_empty_lines: True + bad_regex: ".*" + type: f + search_in: + - common + - name: VNC value: config: auto_check: True files: - - name: ".vnc" + - name: ".vnc" value: files: - name: "passwd" @@ -785,6 +819,7 @@ search: type: f search_in: - /tmp + - /private - name: SSH_CONFIG value: @@ -1265,8 +1300,8 @@ search: config: auto_check: True exec: - - '((command -v gpg && gpg --list-keys) || echo_not_found "gpg") 2>/dev/null' - - '((command -v netpgpkeys && netpgpkeys --list-keys) || echo_not_found "netpgpkeys") 2>/dev/null' + - '( (command -v gpg && gpg --list-keys) || echo_not_found "gpg") 2>/dev/null' + - '( (command -v netpgpkeys && netpgpkeys --list-keys) || echo_not_found "netpgpkeys") 2>/dev/null' - '(command -v netpgp || echo_not_found "netpgp") 2>/dev/null' files: @@ -1354,7 +1389,78 @@ search: - name: ".mozilla" value: files: - - name: "places.sqlite" + - name: "places.sqlite" + value: + just_list_file: True + + - name: "bookmarkbackups" + value: + just_list_file: True + + - name: "formhistory.sqlite" + value: + just_list_file: True + + - name: "handlers.json" + value: + just_list_file: True + + - name: "persdict.dat" + value: + just_list_file: True + + - name: "addons.json" + value: + just_list_file: True + + - name: "cookies.sqlite" + value: + just_list_file: True + + - name: "cache2" + value: + just_list_file: True + + - name: "startupCache" + value: + just_list_file: True + + - name: "favicons.sqlite" + value: + just_list_file: True + + - name: "prefs.js" + value: + just_list_file: True + + - name: "downloads.sqlite" + value: + just_list_file: True + + - name: "thumbnails" + value: + just_list_file: True + + - name: "logins.json" + value: + just_list_file: True + + - name: "key4.db" + value: + just_list_file: True + + - name: "key3.db" + value: + just_list_file: True + + type: d + search_in: + - $HOMESEARCH + + - name: "Firefox" + value: + files: + - name: "places.sqlite" value: just_list_file: True @@ -1434,6 +1540,10 @@ search: - name: "google-chrome" value: files: + - name: "History" + value: + just_list_file: True + - name: "Cookies" value: just_list_file: True @@ -1481,6 +1591,185 @@ search: - name: "Thumbnails" value: just_list_file: True + + - name: "Preferences" + value: + just_list_file: True + + type: d + search_in: + - $HOMESEARCH + + - name: "Chrome" + value: + files: + - name: "History" + value: + just_list_file: True + + - name: "Cookies" + value: + just_list_file: True + + - name: "Cache" + value: + just_list_file: True + + - name: "Bookmarks" + value: + just_list_file: True + + - name: "Web Data" + value: + just_list_file: True + + - name: "Favicons" + value: + just_list_file: True + + - name: "Login Data" + value: + just_list_file: True + + - name: "Current Session" + value: + just_list_file: True + + - name: "Current Tabs" + value: + just_list_file: True + + - name: "Last Session" + value: + just_list_file: True + + - name: "Last Tabs" + value: + just_list_file: True + + - name: "Extensions" + value: + just_list_file: True + + - name: "Thumbnails" + value: + just_list_file: True + + - name: "Preferences" + value: + just_list_file: True + + type: d + search_in: + - $HOMESEARCH + + - name: Opera + value: + disable: + - winpeas + + config: + auto_check: True + + files: + - name: "com.operasoftware.Opera" + value: + files: + - name: "History" + value: + just_list_file: True + + - name: "Cookies" + value: + just_list_file: True + + - name: "Cache" + value: + just_list_file: True + + - name: "Bookmarks" + value: + just_list_file: True + + - name: "Web Data" + value: + just_list_file: True + + - name: "Favicons" + value: + just_list_file: True + + - name: "Login Data" + value: + just_list_file: True + + - name: "Current Session" + value: + just_list_file: True + + - name: "Current Tabs" + value: + just_list_file: True + + - name: "Last Session" + value: + just_list_file: True + + - name: "Last Tabs" + value: + just_list_file: True + + - name: "Extensions" + value: + just_list_file: True + + - name: "Thumbnails" + value: + just_list_file: True + + - name: "Preferences" + value: + just_list_file: True + + type: d + search_in: + - $HOMESEARCH + + - name: Safari + value: + disable: + - winpeas + + config: + auto_check: True + + files: + - name: "Safari" + value: + files: + - name: "History.db" + value: + just_list_file: True + + - name: "Downloads.plist" + value: + just_list_file: True + + - name: "Book-marks.plist" + value: + just_list_file: True + + - name: "TopSites.plist" + value: + just_list_file: True + + - name: "UserNotificationPermissions.plist" + value: + just_list_file: True + + - name: "LastSession.plist" + value: + just_list_file: True type: d search_in: @@ -1816,7 +2105,9 @@ search: remove_regex: '^#' type: d search_in: - - common + - /etc #False possitives in home + - /var + - /usr - name: SeedDMS value: @@ -1847,6 +2138,19 @@ search: type: f search_in: - common + + - name: kcpassword + value: + config: + auto_check: False + + files: + - name: "kcpassword" + value: + just_list_file: True + type: f + search_in: + - common - name: Cacti value: @@ -2265,13 +2569,6 @@ search: search_in: - common - - name: "system" - value: - just_list_file: True - type: f - search_in: - - common - - name: "system.sav" value: just_list_file: True @@ -2356,6 +2653,13 @@ search: type: f search_in: - common + + - name: "system" + value: + just_list_file: True + type: f + search_in: + - common # Final section - name: Database @@ -2435,4 +2739,4 @@ search: just_list_file: True type: f search_in: - - common + - common \ No newline at end of file diff --git a/linPEAS/README.md b/linPEAS/README.md index 2189705..67e3f00 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -1,9 +1,9 @@ # LinPEAS - Linux Privilege Escalation Awesome Script -[![CI-linpeas_prod](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/actions/workflows/CI-linpeas_prod.yml/badge.svg)](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/actions/workflows/CI-linpeas_prod.yml) +[![CI-master_test](https://github.com/carlospolop/PEASS-ng/actions/workflows/CI-master_tests.yml/badge.svg)](https://github.com/carlospolop/PEASS-ng/actions/workflows/CI-master_tests.yml) ![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/linPEAS/images/linpeas.png) -**LinPEAS is a script that search for possible paths to escalate privileges on Linux/Unix\* hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/linux-unix/privilege-escalation)** +**LinPEAS is a script that search for possible paths to escalate privileges on Linux/Unix\*/MacOS hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/linux-unix/privilege-escalation)** Check the **Local Linux Privilege Escalation checklist** from **[book.hacktricks.xyz](https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist)**. @@ -63,7 +63,7 @@ It uses **/bin/sh** syntax, so can run in anything supporting `sh` (and the bina By default, **linpeas won't write anything to disk and won't try to login as any other user using `su`**. -By default linpeas takes around **2 mins** to complete, but It could take from **4 to 5 minutes** to execute all the checks using **-a** parameter *(Recommended option for CTFs)*: +By default linpeas takes around **4 mins** to complete, but It could take from **5 to 10 minutes** to execute all the checks using **-a** parameter *(Recommended option for CTFs)*: - From less than 1 min to 2 mins to make almost all the checks - Almost 1 min to search for possible passwords inside all the accesible files of the system - 20s/user bruteforce with top2000 passwords *(need `-a`)* - Notice that this check is **super noisy** @@ -251,10 +251,6 @@ file="/tmp/linPE";RED='\033[0;31m';Y='\033[0;33m';B='\033[0;34m';NC='\033[0m';rm - [x] Generic hashes MD5, SHA1, SHA256, SHA512 -## Let's improve PEASS together - -If you want to **add something** and have **any cool idea** related to this project, please let me know it in the **telegram group https://t.me/peass** or using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)** and we will update the master version. - ## Please, if this tool has been useful for you consider to donate [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif)](https://www.patreon.com/peass) diff --git a/linPEAS/builder/__pycache__/__init__.cpython-39.pyc b/linPEAS/builder/__pycache__/__init__.cpython-39.pyc deleted file mode 100644 index 9b066e4..0000000 Binary files a/linPEAS/builder/__pycache__/__init__.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/__pycache__/linpeas_builder.cpython-39.pyc b/linPEAS/builder/__pycache__/linpeas_builder.cpython-39.pyc deleted file mode 100644 index 3e0850c..0000000 Binary files a/linPEAS/builder/__pycache__/linpeas_builder.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/linpeas_base.sh b/linPEAS/builder/linpeas_base.sh index 5a0d392..d8db9ec 100755 --- a/linPEAS/builder/linpeas_base.sh +++ b/linPEAS/builder/linpeas_base.sh @@ -30,6 +30,10 @@ SED_RED_YELLOW="${C}[1;31;103m&${C}[0m" BLUE="${C}[1;34m" SED_BLUE="${C}[1;34m&${C}[0m" ITALIC_BLUE="${C}[1;34m${C}[3m" +LIGHT_MAGENTA="${C}[1;95m" +SED_LIGHT_MAGENTA="${C}[1;95m&${C}[0m" +LIGHT_CYAN="${C}[1;96m" +SED_LIGHT_CYAN="${C}[1;96m&${C}[0m" LG="${C}[1;37m" #LightGray SED_LG="${C}[1;37m&${C}[0m" DG="${C}[1;90m" #DarkGray @@ -45,7 +49,7 @@ ITALIC="${C}[3m" # --) FAST - Do not check 1min of procceses and su brute # --) SUPERFAST - FAST & do not search for special filaes in all the folders -if [ "`uname 2>/dev/null | grep 'Darwin'`" ] || [ "`/usr/bin/uname 2>/dev/null | grep 'Darwin'`" ]; then MACPEAS="1"; else MACPEAS=""; fi +if uname 2>/dev/null | grep -q 'Darwin' || /usr/bin/uname 2>/dev/null | grep -q 'Darwin'; then MACPEAS="1"; else MACPEAS=""; fi FAST="1" #By default stealth/fast mode SUPERFAST="" NOTEXPORT="" @@ -57,7 +61,7 @@ WAIT="" PASSWORD="" NOCOLOR="" VERBOSE="" -THREADS="`((grep -c processor /proc/cpuinfo 2>/dev/null) || ((command -v lscpu >/dev/null 2>&1) && (lscpu | grep '^CPU(s):' | awk '{print $2}')) || echo -n 2) | tr -d "\n"`" +THREADS="$( ( (grep -c processor /proc/cpuinfo 2>/dev/null) || ( (command -v lscpu >/dev/null 2>&1) && (lscpu | grep '^CPU(s):' | awk '{print $2}')) || echo -n 2) | tr -d "\n")" [ -z "$THREADS" ] && THREADS="2" #If THREADS is empty, put number 2 [ -n "$THREADS" ] && THREADS="2" #If THREADS is null, put number 2 [ "$THREADS" -eq "$THREADS" ] 2>/dev/null && : || THREADS="2" #It THREADS is not a number, put number 2 @@ -104,19 +108,23 @@ if [ "$MACPEAS" ]; then SCRIPTNAME="macpeas"; else SCRIPTNAME="linpeas"; fi if [ "$NOCOLOR" ]; then C="" RED="" - SED_RED="" + SED_RED="&" GREEN="" - SED_GREEN="" + SED_GREEN="&" YELLOW="" - SED_YELLOW="" - SED_RED_YELLOW="" + SED_YELLOW="&" + SED_RED_YELLOW="&" BLUE="" - SED_BLUE="" + SED_BLUE="&" ITALIC_BLUE="" + LIGHT_MAGENTA="" + SED_LIGHT_MAGENTA="&" + LIGHT_CYAN="" + SED_LIGHT_CYAN="&" LG="" - SED_LG="" + SED_LG="&" DG="" - SED_DG="" + SED_DG="&" NC="" UNDERLINED="" ITALIC="" @@ -129,100 +137,111 @@ fi print_banner(){ if [ "$MACPEAS" ]; then - bash -c "printf ' - \e[38;5;238;48;5;238m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m░\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m\e[38;5;119;48;5;71m\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;239m▓\e[38;5;16;48;5;16m▓\e[38;5;244;48;5;244m▓\e[0m - \e[38;5;96;48;5;243m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;22m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;22;48;5;16m \e[38;5;119;48;5;22m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;234m░\e[38;5;16;48;5;16m▓\e[38;5;96;48;5;245m▓\e[0m - \e[38;5;96;48;5;234m▓\e[38;5;22;48;5;16m \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;16m \e[38;5;22;48;5;16m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;2m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;2m \e[38;5;119;48;5;28m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;40m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;237m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[0m - \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;65m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;238m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;239m▓\e[38;5;119;48;5;7m▓\e[38;5;230;48;5;231m \e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;101;48;5;254m▓\e[38;5;97;48;5;243m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;82;48;5;248m▓\e[38;5;119;48;5;238m▓\e[38;5;71;48;5;233m▒\e[38;5;119;48;5;22m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;232m░\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;151m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;252;48;5;252m▓\e[38;5;251;48;5;251m▓\e[38;5;231;48;5;231m▓\e[38;5;239;48;5;239m▓\e[38;5;246;48;5;246m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;255m▒\e[38;5;119;48;5;59m▓\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m \e[38;5;16;48;5;16m░\e[38;5;16;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;232m \e[38;5;119;48;5;245m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;243;48;5;242m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;255;48;5;255m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;151;48;5;255m▒\e[38;5;113;48;5;242m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;64m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;114;48;5;16m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;233;48;5;233m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;237m▓\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;22m▒\e[38;5;60;48;5;240m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;240;48;5;240m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;145;48;5;248m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;240m▓\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;252m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;238;48;5;238m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;255;48;5;255m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;233m▒\e[38;5;119;48;5;236m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;232m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;82;48;5;231m \e[38;5;108;48;5;255m▓\e[38;5;119;48;5;188m▓\e[38;5;119;48;5;251m▓\e[38;5;119;48;5;253m▓\e[38;5;65;48;5;255m▓\e[38;5;65;48;5;231m▓\e[38;5;230;48;5;231m \e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;65;48;5;248m▓\e[38;5;119;48;5;233m░\e[0m - \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;150m▒\e[38;5;128;48;5;254m▓\e[38;5;65;48;5;242m▓\e[38;5;119;48;5;237m▓\e[38;5;119;48;5;22m \e[38;5;119;48;5;2m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;28m \e[38;5;22;48;5;22m \e[38;5;119;48;5;234m░\e[38;5;119;48;5;235m▓\e[38;5;65;48;5;238m▓\e[38;5;119;48;5;245m▓\e[38;5;119;48;5;254m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;233m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m \e[38;5;119;48;5;22m \e[38;5;76;48;5;233m▓\e[38;5;119;48;5;238m▓\e[38;5;119;48;5;151m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;246;48;5;246m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m \e[38;5;22;48;5;232m \e[38;5;119;48;5;237m▓\e[38;5;113;48;5;251m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;22;48;5;16m \e[38;5;22;48;5;16m \e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;236m▒\e[0m - \e[38;5;119;48;5;70m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;114;48;5;235m▒\e[0m - \e[38;5;119;48;5;70m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;28m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;232m \e[0m - \e[38;5;119;48;5;2m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m░\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;234m▒\e[0m - \e[38;5;119;48;5;237m▒\e[38;5;22;48;5;232m \e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m░\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;113;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;113;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;239m▒\e[38;5;22;48;5;232m░\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m \e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;2m░\e[38;5;119;48;5;64m▒\e[38;5;22;48;5;16m \e[38;5;119;48;5;236m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;239m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;236m▒\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;233m░\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;234m▒\e[38;5;119;48;5;234m▒\e[38;5;119;48;5;234m░\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;22;48;5;233m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;22;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;233m░\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;64m▒\e[38;5;119;48;5;70m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;70m▒\e[38;5;119;48;5;234m▒\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;237m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - '"; - + bash -c "printf ' \e[38;5;238m▄\e[38;5;233m▄\e[38;5;235m▄\e[38;5;65m▄\e[48;5;239m\e[38;5;107m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;240m\e[38;5;65m▄\e[0m\e[38;5;237m▄\e[38;5;234m▄\e[38;5;233m▄\e[38;5;232m▄\e[38;5;239m▄\e[0m + \e[38;5;233m▄\e[38;5;246m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;65m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[0m\e[38;5;237m▄\e[38;5;234m▄\e[0m + \e[38;5;245m▄\e[38;5;233m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;239m\e[38;5;71m▄\e[48;5;71m \e[38;5;235m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;236m\e[38;5;64m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;2m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;2m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;232m\e[38;5;70m▄\e[48;5;234m\e[38;5;22m▄\e[48;5;65m\e[38;5;232m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[48;5;236m\e[38;5;71m▄\e[0m\e[38;5;234m▄\e[38;5;238m▄\e[0m + \e[38;5;239m▄\e[38;5;233m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;238m\e[38;5;71m▄\e[48;5;71m \e[38;5;0m▄\e[48;5;236m\e[38;5;2m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;22m\e[38;5;76m▄\e[48;5;0m\e[38;5;76m▄\e[48;5;234m\e[38;5;64m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m \e[48;5;234m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[0m\e[38;5;234m▄\e[38;5;233m▄\e[0m + \e[38;5;233m▄\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;71m \e[38;5;235m▄\e[48;5;65m\e[38;5;235m▄\e[48;5;0m\e[38;5;255m▄\e[48;5;22m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;242m\e[38;5;15m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;254m\e[38;5;15m▄\e[48;5;15m \e[38;5;255m▄\e[48;5;255m\e[38;5;234m▄\e[48;5;248m\e[38;5;251m▄\e[48;5;240m\e[38;5;15m▄\e[48;5;237m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;64m\e[38;5;15m▄\e[48;5;70m\e[38;5;251m▄\e[48;5;76m\e[38;5;8m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;64m\e[38;5;70m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;238m\e[38;5;2m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[0m + \e[38;5;233m▄\e[48;5;238m\e[38;5;71m▄\e[48;5;236m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;238m\e[38;5;234m▄\e[48;5;235m\e[38;5;255m▄\e[48;5;15m \e[38;5;233m▄\e[48;5;253m\e[38;5;0m▄\e[48;5;255m\e[38;5;232m▄\e[48;5;242m\e[38;5;238m▄\e[48;5;242m\e[38;5;233m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;255m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;145m\e[38;5;15m▄\e[48;5;237m\e[38;5;15m▄\e[48;5;22m\e[38;5;255m▄\e[48;5;70m\e[38;5;248m▄\e[48;5;234m\e[38;5;235m▄\e[48;5;234m\e[38;5;233m▄\e[48;5;71m\e[38;5;0m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m \e[0m + \e[48;5;71m \e[38;5;234m▄\e[48;5;233m\e[38;5;251m▄\e[48;5;255m\e[38;5;15m▄\e[48;5;15m \e[48;5;243m\e[38;5;235m▄\e[48;5;0m \e[38;5;243m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;232m\e[38;5;15m▄\e[48;5;235m\e[38;5;145m▄\e[48;5;71m\e[38;5;0m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;237m▄\e[0m + \e[48;5;71m \e[48;5;65m\e[38;5;232m▄\e[48;5;241m\e[38;5;15m▄\e[48;5;15m \e[48;5;236m\e[38;5;245m▄\e[48;5;0m \e[48;5;247m\e[38;5;232m▄\e[48;5;15m \e[48;5;247m\e[38;5;15m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m \e[48;5;237m\e[38;5;236m▄\e[0m + \e[48;5;71m \e[38;5;238m▄\e[48;5;234m\e[38;5;243m▄\e[48;5;253m\e[38;5;15m▄\e[48;5;15m \e[48;5;0m\e[38;5;7m▄\e[48;5;0m\e[38;5;239m▄\e[48;5;0m\e[38;5;102m▄\e[48;5;0m\e[38;5;234m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;252m▄\e[48;5;255m\e[38;5;15m▄\e[48;5;15m \e[48;5;239m\e[38;5;7m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m \e[0m + \e[48;5;71m \e[38;5;236m▄\e[48;5;234m\e[38;5;250m▄\e[48;5;15m \e[38;5;255m▄\e[48;5;15m\e[38;5;250m▄\e[48;5;15m\e[38;5;102m▄\e[48;5;15m\e[38;5;238m▄\e[48;5;15m\e[38;5;235m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;2m▄\e[48;5;255m\e[38;5;2m▄\e[48;5;255m\e[38;5;64m▄\e[48;5;254m\e[38;5;70m▄\e[48;5;188m\e[38;5;70m▄\e[48;5;253m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;15m\e[38;5;28m▄\e[48;5;15m\e[38;5;64m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;240m▄\e[48;5;15m\e[38;5;102m▄\e[48;5;15m\e[38;5;251m▄\e[48;5;15m\e[38;5;255m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;234m\e[38;5;235m▄\e[48;5;236m \e[0m + \e[48;5;71m \e[38;5;233m▄\e[48;5;232m\e[38;5;70m▄\e[48;5;238m\e[38;5;76m▄\e[48;5;65m\e[38;5;76m▄\e[48;5;236m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;28m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;235m\e[38;5;76m▄\e[48;5;240m\e[38;5;76m▄\e[48;5;145m\e[38;5;76m▄\e[48;5;15m\e[38;5;28m▄\e[48;5;15m\e[38;5;235m▄\e[48;5;15m\e[38;5;240m▄\e[48;5;15m\e[38;5;145m▄\e[48;5;15m\e[38;5;254m▄\e[48;5;15m \e[48;5;242m\e[38;5;251m▄\e[48;5;236m\e[38;5;235m▄\e[0m + \e[48;5;65m\e[38;5;232m▄\e[48;5;235m\e[38;5;64m▄\e[48;5;70m \e[48;5;76m \e[48;5;2m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;242m\e[38;5;76m▄\e[48;5;254m\e[38;5;64m▄\e[48;5;15m\e[38;5;234m▄\e[48;5;15m\e[38;5;243m▄\e[48;5;15m\e[38;5;253m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;233m \e[0m + \e[48;5;232m \e[48;5;237m \e[48;5;70m \e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;234m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;28m\e[38;5;76m▄\e[48;5;235m\e[38;5;76m▄\e[48;5;102m\e[38;5;236m▄\e[48;5;250m\e[38;5;235m▄\e[48;5;233m\e[38;5;232m▄\e[0m + \e[48;5;232m \e[48;5;237m \e[48;5;70m \e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;233m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;76m \e[48;5;22m\e[38;5;76m▄\e[48;5;233m\e[38;5;76m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;28m\e[38;5;76m▄\e[48;5;76m \e[48;5;70m \e[48;5;236m \e[48;5;238m \e[48;5;236m\e[0m + \e[48;5;232m\e[38;5;236m▄\e[48;5;236m\e[38;5;233m▄\e[48;5;64m \e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;76m \e[38;5;64m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;233m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[48;5;64m \e[48;5;236m \e[38;5;235m▄\e[0m + \e[48;5;71m \e[48;5;232m\e[38;5;65m▄\e[48;5;64m\e[38;5;233m▄\e[48;5;76m \e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;76m\e[38;5;77m▄\e[48;5;76m \e[48;5;0m\e[38;5;70m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;70m▄\e[48;5;76m \e[38;5;77m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;77m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;236m \e[48;5;237m\e[38;5;238m▄\e[48;5;234m\e[38;5;235m▄\e[0m + \e[48;5;71m \e[48;5;235m\e[38;5;71m▄\e[48;5;64m\e[38;5;232m▄\e[48;5;76m \e[48;5;77m\e[38;5;76m▄\e[48;5;107m\e[38;5;77m▄\e[48;5;107m \e[38;5;77m▄\e[48;5;77m \e[48;5;76m \e[48;5;107m\e[38;5;77m▄\e[48;5;107m \e[48;5;71m\e[38;5;77m▄\e[48;5;76m \e[48;5;64m \e[48;5;236m\e[38;5;237m▄\e[48;5;237m\e[38;5;234m▄\e[0m + \e[48;5;71m \e[48;5;232m\e[38;5;239m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m \e[48;5;70m\e[38;5;64m▄\e[48;5;237m\e[38;5;236m▄\e[48;5;238m\e[38;5;234m▄\e[48;5;235m\e[38;5;236m▄\e[0m + \e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[48;5;232m\e[38;5;235m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m \e[48;5;70m\e[38;5;236m▄\e[48;5;236m \e[48;5;237m\e[38;5;234m▄\e[48;5;235m\e[38;5;236m▄\e[0m + \e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;236m\e[38;5;71m▄\e[48;5;232m\e[38;5;65m▄\e[48;5;70m\e[38;5;0m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m \e[38;5;22m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;70m\e[38;5;236m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m\e[38;5;233m▄\e[0m + \e[38;5;233m▀\e[48;5;71m\e[38;5;232m▄\e[48;5;71m \e[48;5;236m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;2m\e[38;5;235m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m \e[38;5;77m▄\e[48;5;76m\e[38;5;236m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;22m\e[38;5;238m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[0m + \e[48;5;65m\e[38;5;238m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m \e[48;5;235m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;233m\e[38;5;238m▄\e[48;5;65m\e[38;5;234m▄\e[48;5;70m\e[38;5;232m▄\e[48;5;77m\e[38;5;0m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;235m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;65m▄\e[48;5;76m\e[38;5;65m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;234m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;237m\e[38;5;236m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;237m▄\e[0m + \e[38;5;232m▀\e[48;5;65m\e[38;5;236m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m \e[48;5;65m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[38;5;237m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;65m\e[38;5;8m▄\e[0m\e[38;5;234m▀\e[38;5;234m▀\e[38;5;239m▀\e[0m + \e[38;5;234m▀\e[38;5;236m▀\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;65m\e[38;5;243m▄\e[0m\e[38;5;233m▀\e[38;5;235m▀\e[0m + \e[38;5;242m▀\e[38;5;233m▀\e[38;5;232m▀\e[38;5;234m▀\e[38;5;236m▀\e[48;5;65m\e[38;5;236m▄\e[48;5;65m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;65m\e[38;5;237m▄\e[48;5;237m\e[38;5;8m▄\e[0m\e[38;5;234m▀\e[38;5;232m▀\e[38;5;232m▀\e[38;5;59m▀\e[0m +'"; else if [ -f "/bin/bash" ]; then - /bin/bash -c "printf ' - \e[48;2;194;194;194m\e[38;2;26;43;21m▄\e[48;2;159;158;159m\e[38;2;58;91;50m▄\e[48;2;130;130;130m\e[38;2;68;119;56m▄\e[48;2;116;117;116m\e[38;2;86;143;70m▄\e[48;2;98;98;98m\e[38;2;100;153;87m▄\e[48;2;63;65;63m\e[38;2;102;164;86m▄\e[48;2;46;49;44m\e[38;2;98;168;79m▄\e[48;2;43;45;43m\e[38;2;91;155;75m▄\e[48;2;61;62;61m\e[38;2;78;137;63m▄\e[48;2;102;101;102m\e[38;2;64;112;52m▄\e[48;2;134;134;134m\e[38;2;38;67;32m▄\e[48;2;164;164;164m\e[38;2;20;35;16m▄\e[48;2;188;187;188m\e[38;2;10;20;8m▄\e[48;2;223;223;223m\e[38;2;15;21;13m▄\e[0m - \e[48;2;230;230;230m\e[38;2;49;80;41m▄\e[48;2;132;132;133m\e[38;2;73;133;59m▄\e[48;2;20;21;20m\e[38;2;91;163;72m▄\e[48;2;14;27;12m\e[38;2;96;174;76m▄\e[48;2;51;92;41m\e[38;2;98;177;78m▄\e[48;2;86;155;68m\e[38;2;98;177;78m▄\e[48;2;96;173;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;97;175;76m\e[38;2;98;177;78m▄\e[48;2;93;168;74m\e[38;2;98;177;78m▄\e[48;2;99;163;83m\e[38;2;97;177;77m▄\e[48;2;99;151;86m\e[38;2;98;177;78m▄\e[48;2;35;57;29m\e[38;2;98;176;78m▄\e[48;2;19;21;19m\e[38;2;94;169;75m▄\e[48;2;118;118;118m\e[38;2;70;125;56m▄\e[48;2;234;234;234m\e[38;2;30;45;26m▄\e[0m - \e[48;2;216;216;216m\e[38;2;42;65;36m▄\e[48;2;159;159;159m\e[38;2;62;106;52m▄\e[48;2;94;95;94m\e[38;2;86;152;70m▄\e[48;2;57;72;53m\e[38;2;96;174;77m▄\e[48;2;57;96;47m\e[38;2;98;177;78m▄\e[48;2;78;136;62m\e[38;2;98;177;78m▄\e[48;2;95;167;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;77m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m\e[38;2;76;137;60m▄\e[48;2;98;177;78m\e[38;2;54;97;42m▄\e[48;2;99;179;79m\e[38;2;39;71;30m▄\e[48;2;100;181;79m\e[38;2;35;60;30m▄\e[48;2;101;181;81m\e[38;2;42;66;37m▄\e[48;2;100;177;80m\e[38;2;52;73;45m▄\e[48;2;95;175;76m\e[38;2;47;75;40m▄\e[48;2;94;178;73m\e[38;2;41;75;33m▄\e[48;2;98;179;78m\e[38;2;42;73;34m▄\e[48;2;99;180;79m\e[38;2;40;70;33m▄\e[48;2;99;179;78m\e[38;2;44;75;36m▄\e[48;2;97;177;77m\e[38;2;55;93;46m▄\e[48;2;97;176;77m\e[38;2;65;113;52m▄\e[48;2;98;177;78m\e[38;2;79;141;63m▄\e[48;2;98;177;78m\e[38;2;93;166;75m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;94;170;75m\e[38;2;98;177;78m▄\e[48;2;71;128;56m\e[38;2;98;177;78m▄\e[48;2;34;56;28m\e[38;2;97;175;77m▄\e[48;2;64;66;64m\e[38;2;78;140;62m▄\e[48;2;161;161;161m\e[38;2;48;84;39m▄\e[0m - \e[48;2;66;112;54m\e[38;2;98;177;78m▄\e[48;2;80;133;66m\e[38;2;98;177;78m▄\e[48;2;95;162;76m\e[38;2;98;177;78m▄\e[48;2;96;171;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m\e[38;2;96;174;76m▄\e[48;2;98;177;78m\e[38;2;74;130;59m▄\e[48;2;98;176;78m\e[38;2;32;49;27m▄\e[48;2;95;166;76m\e[38;2;18;29;15m▄\e[48;2;73;126;59m\e[38;2;65;113;53m▄\e[48;2;40;62;34m\e[38;2;107;209;83m▄\e[48;2;23;43;19m\e[38;2;77;220;42m▄\e[48;2;32;72;22m\e[38;2;72;218;36m▄\e[48;2;55;155;30m\e[38;2;73;217;37m▄\e[48;2;71;203;38m\e[38;2;73;217;37m▄\e[48;2;79;212;46m\e[38;2;73;218;37m▄\e[48;2;81;216;48m\e[38;2;73;218;37m▄\e[48;2;82;220;48m\e[38;2;73;218;37m▄\e[48;2;79;221;44m\e[38;2;73;218;37m▄\e[48;2;76;219;40m\e[38;2;73;218;37m▄\e[48;2;76;218;40m\e[38;2;73;218;37m▄\e[48;2;75;213;41m\e[38;2;73;218;37m▄\e[48;2;79;203;48m\e[38;2;73;218;37m▄\e[48;2;76;175;52m\e[38;2;73;218;37m▄\e[48;2;52;127;33m\e[38;2;73;218;37m▄\e[48;2;29;75;18m\e[38;2;73;217;37m▄\e[48;2;19;45;12m\e[38;2;73;218;36m▄\e[48;2;45;74;38m\e[38;2;65;196;33m▄\e[48;2;76;127;62m\e[38;2;44;132;24m▄\e[48;2;90;158;72m\e[38;2;16;45;10m▄\e[48;2;97;175;77m\e[38;2;28;50;22m▄\e[48;2;98;177;78m\e[38;2;80;145;64m▄\e[48;2;98;177;78m\e[38;2;97;175;77m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;97;173;78m\e[38;2;98;177;78m▄\e[48;2;69;114;56m\e[38;2;98;177;78m▄\e[48;2;30;38;28m\e[38;2;103;179;83m▄\e[48;2;91;91;91m\e[38;2;99;149;87m▄\e[48;2;188;188;188m\e[38;2;39;53;36m▄\e[0m - \e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;83;150;66m▄\e[48;2;98;177;78m\e[38;2;44;80;34m▄\e[48;2;99;179;78m\e[38;2;33;49;28m▄\e[48;2;87;159;69m\e[38;2;68;97;61m▄\e[48;2;46;84;37m\e[38;2;87;165;68m▄\e[48;2;25;37;21m\e[38;2;83;208;52m▄\e[48;2;59;131;42m\e[38;2;73;219;37m▄\e[48;2;74;199;43m\e[38;2;74;223;37m▄\e[48;2;72;213;38m\e[38;2;67;204;35m▄\e[48;2;73;218;37m\e[38;2;55;171;29m▄\e[48;2;72;218;36m\e[38;2;59;136;22m▄\e[48;2;72;218;36m\e[38;2;103;132;15m▄\e[48;2;73;219;37m\e[38;2;149;133;9m▄\e[48;2;72;220;37m\e[38;2;168;130;7m▄\e[48;2;73;220;37m\e[38;2;167;118;5m▄\e[48;2;72;218;37m\e[38;2;106;78;4m▄\e[48;2;69;210;36m\e[38;2;93;69;4m▄\e[48;2;66;199;34m\e[38;2;173;117;4m▄\e[48;2;63;192;32m\e[38;2;177;119;4m▄\e[48;2;62;186;32m\e[38;2;173;116;4m▄\e[48;2;61;186;31m\e[38;2;176;115;4m▄\e[48;2;63;191;32m\e[38;2;174;115;4m▄\e[48;2;67;202;34m\e[38;2;170;113;4m▄\e[48;2;70;213;36m\e[38;2;180;118;3m▄\e[48;2;72;219;37m\e[38;2;175;117;4m▄\e[48;2;73;220;37m\e[38;2;154;120;7m▄\e[48;2;73;220;37m\e[38;2;80;94;11m▄\e[48;2;73;219;37m\e[38;2;48;93;15m▄\e[48;2;73;218;37m\e[38;2;41;112;19m▄\e[48;2;72;215;36m\e[38;2;45;144;25m▄\e[48;2;64;192;32m\e[38;2;63;191;32m▄\e[48;2;32;99;16m\e[38;2;73;218;37m▄\e[48;2;21;41;16m\e[38;2;72;210;38m▄\e[48;2;38;66;30m\e[38;2;67;177;41m▄\e[48;2;79;141;63m\e[38;2;53;123;36m▄\e[48;2;98;178;78m\e[38;2;32;57;25m▄\e[48;2;98;179;77m\e[38;2;25;46;20m▄\e[48;2;97;177;77m\e[38;2;56;100;46m▄\e[48;2;98;177;78m\e[38;2;93;165;75m▄\e[48;2;97;176;77m\e[38;2;100;181;80m▄\e[48;2;98;177;77m\e[38;2;97;176;76m▄\e[48;2;97;176;78m\e[38;2;98;177;78m▄\e[48;2;99;174;79m\e[38;2;98;177;78m▄\e[0m - \e[48;2;98;178;78m\e[38;2;46;76;38m▄\e[48;2;100;178;80m\e[38;2;50;69;45m▄\e[48;2;99;176;80m\e[38;2;35;46;33m▄\e[48;2;82;148;65m\e[38;2;7;9;6m▄\e[48;2;64;117;50m\e[38;2;35;54;30m▄\e[48;2;42;77;34m\e[38;2;52;107;39m▄\e[48;2;26;46;21m\e[38;2;80;194;52m▄\e[48;2;34;71;26m\e[38;2;73;216;38m▄\e[48;2;54;133;35m\e[38;2;67;192;32m▄\e[48;2;81;199;52m\e[38;2;81;158;23m▄\e[48;2;80;218;46m\e[38;2;100;110;11m▄\e[48;2;66;199;33m\e[38;2;152;98;2m▄\e[48;2;60;157;26m\e[38;2;220;129;1m▄\e[48;2;80;128;18m\e[38;2;251;145;0m▄\e[48;2;120;110;9m\e[38;2;255;147;0m▄\e[48;2;154;106;4m\e[38;2;255;147;0m▄\e[48;2;181;114;2m\e[38;2;255;147;0m▄\e[48;2;230;134;0m\e[38;2;255;147;0m▄\e[48;2;251;144;0m\e[38;2;255;147;0m▄\e[48;2;254;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;163;94;0m\e[38;2;134;78;0m▄\e[48;2;2;1;0m\e[38;2;58;33;0m▄\e[48;2;13;7;0m\e[38;2;133;76;0m▄\e[48;2;64;38;0m\e[38;2;12;7;0m▄\e[48;2;250;144;0m\e[38;2;234;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;146;0m\e[38;2;255;147;0m▄\e[48;2;239;143;2m\e[38;2;255;147;0m▄\e[48;2;223;131;1m\e[38;2;255;147;0m▄\e[48;2;192;120;2m\e[38;2;255;147;0m▄\e[48;2;130;96;5m\e[38;2;255;147;0m▄\e[48;2;82;88;9m\e[38;2;255;148;0m▄\e[48;2;62;104;15m\e[38;2;247;147;1m▄\e[48;2;49;132;22m\e[38;2;212;134;3m▄\e[48;2;57;165;32m\e[38;2;144;95;3m▄\e[48;2;53;117;38m\e[38;2;74;61;8m▄\e[48;2;50;97;39m\e[38;2;47;60;21m▄\e[48;2;35;56;29m\e[38;2;47;81;33m▄\e[48;2;17;22;15m\e[38;2;20;34;19m▄\e[48;2;31;50;26m\e[38;2;48;73;42m▄\e[48;2;55;90;47m\e[38;2;37;56;33m▄\e[48;2;78;132;64m\e[38;2;21;31;18m▄\e[48;2;95;167;78m\e[38;2;18;26;16m▄\e[0m - \e[48;2;48;74;43m\e[38;2;51;78;45m▄\e[48;2;48;74;43m\e[38;2;50;76;44m▄\e[48;2;46;71;42m\e[38;2;12;17;11m▄\e[48;2;32;54;28m\e[38;2;45;93;35m▄\e[48;2;58;112;46m\e[38;2;26;45;17m▄\e[48;2;55;130;37m\e[38;2;121;83;5m▄\e[48;2;57;133;27m\e[38;2;232;138;0m▄\e[48;2;101;96;8m\e[38;2;253;146;0m▄\e[48;2;200;118;1m\e[38;2;254;147;0m▄\e[48;2;248;144;0m\e[38;2;255;147;0m▄\e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;173;100;0m\e[38;2;210;122;0m▄\e[48;2;172;100;0m\e[38;2;76;44;0m▄\e[48;2;214;123;0m\e[38;2;153;88;0m▄\e[48;2;36;21;0m\e[38;2;162;94;0m▄\e[48;2;201;116;0m\e[38;2;20;12;0m▄\e[48;2;254;147;0m\e[38;2;238;137;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;241;143;1m\e[38;2;255;147;0m▄\e[48;2;213;125;0m\e[38;2;255;147;0m▄\e[48;2;117;73;3m\e[38;2;252;147;1m▄\e[48;2;25;36;21m\e[38;2;94;69;18m▄\e[48;2;50;77;44m\e[38;2;39;59;33m▄\e[48;2;51;78;45m \e[48;2;51;78;44m\e[38;2;51;78;45m▄\e[0m - \e[48;2;51;78;45m\e[38;2;50;76;44m▄\e[48;2;40;58;34m\e[38;2;43;36;13m▄\e[48;2;38;37;6m\e[38;2;240;143;2m▄\e[48;2;149;95;6m\e[38;2;254;147;0m▄\e[48;2;226;134;1m\e[38;2;255;147;0m▄\e[48;2;253;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;243;140;0m▄\e[48;2;116;67;0m\e[38;2;90;52;0m▄\e[48;2;237;137;0m\e[38;2;254;147;0m▄\e[48;2;248;143;0m\e[38;2;255;147;0m▄\e[48;2;250;144;0m\e[38;2;255;147;0m▄\e[48;2;45;25;0m\e[38;2;191;110;0m▄\e[48;2;64;36;0m\e[38;2;32;18;0m▄\e[48;2;245;141;0m\e[38;2;152;87;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;230;140;6m\e[38;2;254;147;0m▄\e[48;2;25;21;7m\e[38;2;143;86;2m▄\e[48;2;48;74;42m\e[38;2;39;60;34m▄\e[48;2;51;78;45m \e[0m - \e[48;2;41;63;37m\e[38;2;40;47;23m▄\e[48;2;119;70;1m\e[38;2;230;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;180;104;0m\e[38;2;120;68;0m▄\e[48;2;135;78;0m\e[38;2;158;91;0m▄\e[48;2;255;147;0m\e[38;2;250;145;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;146;0m▄\e[48;2;252;145;0m\e[38;2;209;120;0m▄\e[48;2;54;31;0m\e[38;2;61;35;0m▄\e[48;2;94;54;0m\e[38;2;159;91;0m▄\e[48;2;254;146;0m\e[38;2;244;140;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;240;144;1m\e[38;2;255;147;0m▄\e[48;2;36;40;18m\e[38;2;70;49;6m▄\e[48;2;50;78;45m\e[38;2;45;69;40m▄\e[0m - \e[48;2;65;48;9m\e[38;2;98;64;6m▄\e[48;2;255;149;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;254;146;0m▄\e[48;2;225;130;0m\e[38;2;175;100;0m▄\e[48;2;210;120;0m\e[38;2;253;146;0m▄\e[48;2;209;121;0m\e[38;2;254;147;0m▄\e[48;2;86;49;0m\e[38;2;189;109;0m▄\e[48;2;254;146;0m\e[38;2;142;81;0m▄\e[48;2;255;147;0m\e[38;2;102;59;0m▄\e[48;2;199;115;0m\e[38;2;69;40;0m▄\e[48;2;244;141;0m\e[38;2;238;138;0m▄\e[48;2;253;146;0m\e[38;2;184;105;0m▄\e[48;2;200;115;0m\e[38;2;231;134;0m▄\e[48;2;253;147;0m\e[38;2;254;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;149;98;7m\e[38;2;215;132;5m▄\e[48;2;35;54;32m\e[38;2;31;42;22m▄\e[0m - \e[48;2;133;82;3m\e[38;2;153;89;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;248;147;0m▄\e[48;2;254;147;0m\e[38;2;242;142;0m▄\e[48;2;204;116;0m\e[38;2;224;131;0m▄\e[48;2;200;115;0m\e[38;2;205;124;1m▄\e[48;2;199;115;0m\e[38;2;175;109;2m▄\e[48;2;172;100;0m\e[38;2;157;102;2m▄\e[48;2;168;97;0m\e[38;2;172;114;3m▄\e[48;2;206;119;0m\e[38;2;156;115;5m▄\e[48;2;215;125;0m\e[38;2;138;111;7m▄\e[48;2;180;105;0m\e[38;2;121;105;8m▄\e[48;2;233;136;0m\e[38;2;120;109;8m▄\e[48;2;254;148;0m\e[38;2;116;111;9m▄\e[48;2;254;148;0m\e[38;2;112;111;10m▄\e[48;2;255;148;0m\e[38;2;130;121;10m▄\e[48;2;254;148;0m\e[38;2;103;105;10m▄\e[48;2;254;148;0m\e[38;2;99;99;9m▄\e[48;2;254;148;0m\e[38;2;106;98;8m▄\e[48;2;254;148;0m\e[38;2;106;96;8m▄\e[48;2;255;148;0m\e[38;2;118;98;7m▄\e[48;2;255;147;0m\e[38;2;123;101;7m▄\e[48;2;255;147;0m\e[38;2;129;99;6m▄\e[48;2;255;147;0m\e[38;2;141;100;5m▄\e[48;2;255;147;0m\e[38;2;166;111;4m▄\e[48;2;255;147;0m\e[38;2;189;122;4m▄\e[48;2;255;147;0m\e[38;2;217;131;1m▄\e[48;2;255;147;0m\e[38;2;248;145;0m▄\e[48;2;255;147;0m\e[38;2;250;148;0m▄\e[48;2;255;147;0m\e[38;2;254;149;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;147;1m\e[38;2;254;147;0m▄\e[48;2;47;44;15m\e[38;2;81;54;7m▄\e[0m - \e[48;2;163;95;0m\e[38;2;176;103;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;147;0m▄\e[48;2;255;147;0m\e[38;2;250;144;0m▄\e[48;2;255;147;0m\e[38;2;238;146;1m▄\e[48;2;254;147;0m\e[38;2;170;117;4m▄\e[48;2;252;147;0m\e[38;2;78;65;5m▄\e[48;2;239;144;1m\e[38;2;36;71;11m▄\e[48;2;220;136;2m\e[38;2;41;122;21m▄\e[48;2;193;124;2m\e[38;2;59;179;31m▄\e[48;2;178;119;4m\e[38;2;69;210;35m▄\e[48;2;129;104;6m\e[38;2;73;219;37m▄\e[48;2;67;87;10m\e[38;2;73;219;37m▄\e[48;2;61;106;15m\e[38;2;73;218;37m▄\e[48;2;52;126;21m\e[38;2;73;218;37m▄\e[48;2;52;150;25m\e[38;2;73;218;37m▄\e[48;2;58;177;30m\e[38;2;73;218;37m▄\e[48;2;63;194;33m\e[38;2;73;218;37m▄\e[48;2;66;204;34m\e[38;2;73;218;37m▄\e[48;2;69;212;36m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;72;219;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;219;37m\e[38;2;73;218;37m▄\e[48;2;72;214;36m\e[38;2;73;218;37m▄\e[48;2;68;207;35m\e[38;2;73;218;37m▄\e[48;2;65;197;34m\e[38;2;73;218;37m▄\e[48;2;61;185;32m\e[38;2;73;218;37m▄\e[48;2;51;157;27m\e[38;2;73;218;37m▄\e[48;2;41;125;21m\e[38;2;73;218;37m▄\e[48;2;40;106;18m\e[38;2;73;218;37m▄\e[48;2;75;92;10m\e[38;2;73;218;37m▄\e[48;2;76;85;10m\e[38;2;73;219;37m▄\e[48;2;112;94;7m\e[38;2;72;216;36m▄\e[48;2;162;113;5m\e[38;2;64;194;33m▄\e[48;2;219;131;0m\e[38;2;50;152;26m▄\e[48;2;231;138;1m\e[38;2;30;65;14m▄\e[48;2;252;147;0m\e[38;2;106;71;5m▄\e[48;2;97;61;4m\e[38;2;30;31;7m▄\e[0m - \e[48;2;186;108;0m\e[38;2;185;108;0m▄\e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;247;144;0m▄\e[48;2;255;147;0m\e[38;2;188;113;1m▄\e[48;2;255;147;0m\e[38;2;110;100;8m▄\e[48;2;248;147;0m\e[38;2;72;136;20m▄\e[48;2;206;124;1m\e[38;2;62;175;29m▄\e[48;2;115;81;4m\e[38;2;67;204;34m▄\e[48;2;55;92;13m\e[38;2;72;217;36m▄\e[48;2;60;157;26m\e[38;2;73;218;37m▄\e[48;2;66;195;32m\e[38;2;73;218;37m▄\e[48;2;70;212;35m\e[38;2;73;218;37m▄\e[48;2;72;215;36m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;210;37m\e[38;2;71;214;37m▄\e[48;2;58;142;37m\e[38;2;57;136;37m▄\e[48;2;51;109;39m\e[38;2;54;109;40m▄\e[48;2;36;76;26m\e[38;2;38;71;31m▄\e[0m - \e[48;2;73;63;12m\e[38;2;24;46;20m▄\e[48;2;89;67;7m\e[38;2;54;120;38m▄\e[48;2;67;119;19m\e[38;2;66;192;35m▄\e[48;2;61;177;29m\e[38;2;73;217;37m▄\e[48;2;71;213;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;214;35m\e[38;2;42;129;21m▄\e[48;2;43;131;22m\e[38;2;4;10;2m▄\e[48;2;37;111;19m\e[38;2;4;10;2m▄\e[48;2;60;180;30m\e[38;2;7;22;3m▄\e[48;2;73;218;37m\e[38;2;62;187;31m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;69;208;35m\e[38;2;20;61;10m▄\e[48;2;43;129;22m\e[38;2;4;11;2m▄\e[48;2;38;116;19m\e[38;2;3;8;1m▄\e[48;2;64;192;32m\e[38;2;19;57;10m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;214;36m\e[38;2;71;213;36m▄\e[48;2;55;130;37m\e[38;2;55;123;38m▄\e[48;2;54;108;41m\e[38;2;56;110;44m▄\e[48;2;35;60;30m\e[38;2;35;57;30m▄\e[0m - \e[48;2;37;68;29m\e[38;2;38;61;33m▄\e[48;2;58;132;39m\e[38;2;62;134;45m▄\e[48;2;64;179;36m\e[38;2;55;129;37m▄\e[48;2;72;217;36m\e[38;2;71;210;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;27;82;14m\e[38;2;59;178;30m▄\e[48;2;4;11;3m\e[38;2;3;9;1m▄\e[48;2;0;0;0m\e[38;2;8;18;4m▄\e[48;2;1;3;1m\e[38;2;4;12;2m▄\e[48;2;36;112;19m\e[38;2;54;163;27m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;210;36m\e[38;2;72;217;36m▄\e[48;2;4;11;1m\e[38;2;9;28;4m▄\e[48;2;0;0;0m\e[38;2;6;16;3m▄\e[48;2;1;3;1m\e[38;2;6;15;3m▄\e[48;2;13;39;6m\e[38;2;32;94;15m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;207;36m\e[38;2;67;196;36m▄\e[48;2;52;110;38m \e[48;2;57;101;47m\e[38;2;56;90;47m▄\e[48;2;36;55;31m\e[38;2;38;58;33m▄\e[0m - \e[48;2;40;63;35m\e[38;2;43;67;38m▄\e[48;2;61;117;48m\e[38;2;45;80;38m▄\e[48;2;54;114;39m\e[38;2;52;110;38m▄\e[48;2;64;177;36m\e[38;2;59;150;37m▄\e[48;2;72;217;36m\e[38;2;72;214;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;61;182;30m\e[38;2;73;218;37m▄\e[48;2;45;135;22m\e[38;2;73;218;37m▄\e[48;2;58;174;29m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;212;35m\e[38;2;72;216;36m▄\e[48;2;34;101;17m\e[38;2;11;32;5m▄\e[48;2;34;101;17m\e[38;2;1;2;1m▄\e[48;2;34;98;18m\e[38;2;1;3;1m▄\e[48;2;35;101;18m\e[38;2;1;1;1m▄\e[48;2;35;100;17m\e[38;2;1;3;1m▄\e[48;2;57;170;29m\e[38;2;56;168;28m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;72;218;36m▄\e[48;2;66;197;33m\e[38;2;72;217;36m▄\e[48;2;46;139;23m\e[38;2;73;217;37m▄\e[48;2;54;163;27m\e[38;2;72;217;37m▄\e[48;2;71;212;36m\e[38;2;72;217;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;37m\e[38;2;70;204;36m▄\e[48;2;60;158;37m\e[38;2;53;122;37m▄\e[48;2;52;103;38m\e[38;2;52;104;40m▄\e[48;2;33;54;28m\e[38;2;21;34;18m▄\e[48;2;46;70;41m\e[38;2;49;76;44m▄\e[0m - \e[48;2;49;76;44m\e[38;2;51;78;45m▄\e[48;2;32;51;28m\e[38;2;43;65;37m▄\e[48;2;61;125;45m\e[38;2;81;124;71m▄\e[48;2;54;124;38m\e[38;2;53;113;40m▄\e[48;2;68;202;36m\e[38;2;60;156;37m▄\e[48;2;73;218;37m\e[38;2;72;215;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;216;37m▄\e[48;2;73;217;37m\e[38;2;93;205;61m▄\e[48;2;79;213;44m\e[38;2;121;189;95m▄\e[48;2;85;210;51m\e[38;2;132;184;108m▄\e[48;2;82;211;47m\e[38;2;121;191;93m▄\e[48;2;73;217;37m\e[38;2;85;210;52m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;37;111;20m\e[38;2;71;214;36m▄\e[48;2;1;2;0m\e[38;2;44;128;22m▄\e[48;2;2;4;2m\e[38;2;15;39;8m▄\e[48;2;1;1;1m\e[38;2;29;82;14m▄\e[48;2;13;37;7m\e[38;2;68;204;34m▄\e[48;2;70;210;35m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;74;216;38m▄\e[48;2;82;211;47m\e[38;2;118;191;90m▄\e[48;2;100;200;70m\e[38;2;132;185;108m▄\e[48;2;103;201;72m\e[38;2;127;187;101m▄\e[48;2;98;203;67m\e[38;2;125;189;100m▄\e[48;2;85;209;52m\e[38;2;116;192;88m▄\e[48;2;73;217;37m\e[38;2;80;211;44m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;68;200;35m▄\e[48;2;63;170;35m\e[38;2;54;125;36m▄\e[48;2;51;103;38m\e[38;2;51;99;38m▄\e[48;2;49;101;36m\e[38;2;22;45;17m▄\e[48;2;30;47;26m\e[38;2;45;69;39m▄\e[48;2;51;78;45m \e[0m - \e[48;2;51;78;45m \e[48;2;49;75;43m\e[38;2;51;78;45m▄\e[48;2;30;38;27m\e[38;2;39;59;35m▄\e[48;2;63;123;49m\e[38;2;71;110;62m▄\e[48;2;54;121;37m\e[38;2;56;119;40m▄\e[48;2;68;198;37m\e[38;2;60;158;37m▄\e[48;2;73;218;37m\e[38;2;71;216;36m▄\e[48;2;73;217;37m\e[38;2;73;216;38m▄\e[48;2;91;206;58m\e[38;2;110;196;81m▄\e[48;2;122;191;95m\e[38;2;126;188;100m▄\e[48;2;128;186;102m\e[38;2;130;187;104m▄\e[48;2;140;180;116m\e[38;2;128;187;103m▄\e[48;2;126;188;100m\e[38;2;106;197;76m▄\e[48;2;96;202;64m\e[38;2;75;215;39m▄\e[48;2;73;217;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;217;38m\e[38;2;73;217;37m▄\e[48;2;114;194;86m\e[38;2;76;215;40m▄\e[48;2;142;178;121m\e[38;2;94;205;62m▄\e[48;2;150;176;129m\e[38;2;109;196;81m▄\e[48;2;142;180;120m\e[38;2;95;203;63m▄\e[48;2;116;193;88m\e[38;2;76;214;41m▄\e[48;2;78;213;44m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;67;196;36m▄\e[48;2;71;209;37m\e[38;2;60;154;36m▄\e[48;2;59;152;36m\e[38;2;57;138;37m▄\e[48;2;52;110;38m\e[38;2;56;130;37m▄\e[48;2;51;104;38m\e[38;2;30;71;21m▄\e[48;2;20;31;17m\e[38;2;45;69;39m▄\e[48;2;50;78;44m\e[38;2;51;78;45m▄\e[48;2;51;78;45m \e[0m - \e[48;2;51;78;45m\e[38;2;28;43;24m▄\e[48;2;51;78;45m\e[38;2;43;64;38m▄\e[48;2;51;78;45m\e[38;2;52;79;46m▄\e[48;2;34;53;30m\e[38;2;46;71;41m▄\e[48;2;64;124;48m\e[38;2;49;106;36m▄\e[48;2;53;115;38m\e[38;2;57;124;40m▄\e[48;2;63;175;36m\e[38;2;55;126;38m▄\e[48;2;73;217;37m\e[38;2;66;186;36m▄\e[48;2;89;208;56m\e[38;2;73;217;37m▄\e[48;2;111;195;82m\e[38;2;75;215;40m▄\e[48;2;109;197;80m\e[38;2;74;216;38m▄\e[48;2;85;209;52m\e[38;2;73;218;36m▄\e[48;2;73;216;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m\e[38;2;71;214;36m▄\e[48;2;71;212;36m\e[38;2;63;172;36m▄\e[48;2;63;174;35m\e[38;2;57;138;37m▄\e[48;2;58;146;36m\e[38;2;57;137;38m▄\e[48;2;58;139;37m\e[38;2;57;138;37m▄\e[48;2;58;138;37m\e[38;2;54;128;35m▄\e[48;2;50;117;34m\e[38;2;20;44;14m▄\e[48;2;20;32;17m\e[38;2;39;61;34m▄\e[48;2;51;77;44m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;49;75;43m▄\e[0m - \e[48;2;84;151;67m\e[38;2;98;177;78m▄\e[48;2;43;80;34m\e[38;2;98;177;78m▄\e[48;2;22;39;19m\e[38;2;98;178;78m▄\e[48;2;43;67;38m\e[38;2;81;148;64m▄\e[48;2;40;70;33m\e[38;2;44;78;36m▄\e[48;2;54;127;36m\e[38;2;21;47;15m▄\e[48;2;55;120;39m\e[38;2;54;117;39m▄\e[48;2;56;133;37m\e[38;2;59;133;40m▄\e[48;2;71;211;36m\e[38;2;61;164;37m▄\e[48;2;73;217;36m\e[38;2;71;211;36m▄\e[48;2;73;218;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;73;218;37m\e[38;2;67;203;34m▄\e[48;2;68;194;37m\e[38;2;40;116;21m▄\e[48;2;58;142;36m\e[38;2;8;21;5m▄\e[48;2;49;120;31m\e[38;2;6;10;5m▄\e[48;2;25;59;16m\e[38;2;73;108;65m▄\e[48;2;15;33;11m\e[38;2;95;157;79m▄\e[48;2;12;25;9m\e[38;2;97;175;77m▄\e[48;2;21;32;19m\e[38;2;99;179;79m▄\e[48;2;23;35;19m\e[38;2;98;178;78m▄\e[48;2;20;34;17m\e[38;2;98;178;78m▄\e[48;2;13;24;11m\e[38;2;98;178;78m▄\e[48;2;16;26;14m\e[38;2;98;177;78m▄\e[0m - \e[48;2;97;176;77m\e[38;2;58;103;46m▄\e[48;2;98;177;78m\e[38;2;94;170;75m▄\e[48;2;98;177;78m\e[38;2;99;179;79m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;97;176;77m\e[38;2;98;177;78m▄\e[48;2;91;165;72m\e[38;2;98;177;78m▄\e[48;2;55;100;44m\e[38;2;98;177;78m▄\e[48;2;15;27;10m\e[38;2;92;168;73m▄\e[48;2;24;46;18m\e[38;2;76;138;61m▄\e[48;2;73;154;53m\e[38;2;54;96;43m▄\e[48;2;74;213;39m\e[38;2;24;48;18m▄\e[48;2;74;222;37m\e[38;2;20;55;11m▄\e[48;2;73;217;37m\e[38;2;31;91;16m▄\e[48;2;73;218;37m\e[38;2;49;145;24m▄\e[48;2;73;218;37m\e[38;2;68;201;35m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;74;220;37m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;220;37m▄\e[48;2;73;218;37m\e[38;2;72;214;37m▄\e[48;2;73;218;37m\e[38;2;63;187;32m▄\e[48;2;72;217;36m\e[38;2;41;120;22m▄\e[48;2;74;222;36m\e[38;2;21;52;13m▄\e[48;2;67;203;34m\e[38;2;39;62;34m▄\e[48;2;40;117;21m\e[38;2;64;103;54m▄\e[48;2;14;43;7m\e[38;2;72;126;57m▄\e[48;2;4;12;2m\e[38;2;87;156;69m▄\e[48;2;25;45;21m\e[38;2;97;174;78m▄\e[48;2;71;124;57m\e[38;2;99;177;80m▄\e[48;2;97;168;78m\e[38;2;94;170;75m▄\e[48;2;96;175;77m\e[38;2;103;177;84m▄\e[48;2;98;176;79m\e[38;2;109;183;90m▄\e[48;2;100;178;80m\e[38;2;112;185;94m▄\e[48;2;100;177;80m\e[38;2;111;184;92m▄\e[48;2;99;177;80m\e[38;2;107;182;89m▄\e[48;2;98;177;78m\e[38;2;105;182;85m▄\e[48;2;98;177;78m\e[38;2;103;180;83m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[0m - \e[48;2;99;106;96m\e[38;2;254;254;254m▄\e[48;2;54;79;47m\e[38;2;236;236;236m▄\e[48;2;72;123;60m\e[38;2;134;134;134m▄\e[48;2;97;176;78m\e[38;2;65;87;60m▄\e[48;2;98;177;78m\e[38;2;73;130;59m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;96;172;77m\e[38;2;98;177;78m▄\e[48;2;82;147;65m\e[38;2;98;177;78m▄\e[48;2;66;116;52m\e[38;2;98;177;78m▄\e[48;2;46;78;38m\e[38;2;98;177;78m▄\e[48;2;27;51;20m\e[38;2;98;177;78m▄\e[48;2;28;60;20m\e[38;2;94;169;74m▄\e[48;2;28;67;19m\e[38;2;86;155;69m▄\e[48;2;34;96;19m\e[38;2;69;123;54m▄\e[48;2;42;126;21m\e[38;2;48;86;39m▄\e[48;2;51;148;27m\e[38;2;36;64;28m▄\e[48;2;55;164;28m\e[38;2;26;46;20m▄\e[48;2;60;180;30m\e[38;2;23;39;18m▄\e[48;2;62;186;31m\e[38;2;21;40;17m▄\e[48;2;61;181;31m\e[38;2;19;36;16m▄\e[48;2;67;176;40m\e[38;2;18;32;14m▄\e[48;2;63;173;35m\e[38;2;23;36;19m▄\e[48;2;56;168;29m\e[38;2;27;42;23m▄\e[48;2;53;160;27m\e[38;2;29;45;24m▄\e[48;2;44;133;22m\e[38;2;30;53;25m▄\e[48;2;34;102;17m\e[38;2;52;89;43m▄\e[48;2;20;60;10m\e[38;2;88;148;71m▄\e[48;2;24;47;19m\e[38;2;97;171;78m▄\e[48;2;34;62;27m\e[38;2;98;177;78m▄\e[48;2;55;99;44m\e[38;2;98;177;78m▄\e[48;2;80;144;64m\e[38;2;98;177;78m▄\e[48;2;99;176;79m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;99;177;79m\e[38;2;96;172;76m▄\e[48;2;99;175;79m\e[38;2;85;151;68m▄\e[48;2;95;169;76m\e[38;2;72;121;60m▄\e[48;2;109;180;92m\e[38;2;37;57;32m▄\e[48;2;100;159;85m\e[38;2;38;41;36m▄\e[48;2;72;107;62m\e[38;2;74;74;74m▄\e[48;2;44;65;38m\e[38;2;134;134;134m▄\e[48;2;31;48;27m\e[38;2;200;200;200m▄\e[48;2;31;48;26m\e[38;2;226;226;226m▄\e[48;2;31;52;25m\e[38;2;205;205;205m▄\e[48;2;41;71;34m\e[38;2;170;170;170m▄\e[48;2;59;97;50m\e[38;2;142;142;142m▄\e[0m - \e[48;2;95;106;94m\e[38;2;253;253;253m▄\e[48;2;81;137;65m\e[38;2;243;243;243m▄\e[48;2;91;166;73m\e[38;2;182;185;181m▄\e[48;2;95;174;76m\e[38;2;61;73;59m▄\e[48;2;98;177;78m\e[38;2;33;66;26m▄\e[48;2;98;177;78m\e[38;2;81;143;65m▄\e[48;2;98;177;78m\e[38;2;102;182;81m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;99;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;97;177;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;99;179;78m▄\e[48;2;98;177;78m\e[38;2;93;169;74m▄\e[48;2;98;177;78m\e[38;2;56;106;44m▄\e[48;2;96;174;77m\e[38;2;16;31;13m▄\e[48;2;68;126;54m\e[38;2;58;58;58m▄\e[48;2;28;50;23m\e[38;2;180;180;180m▄\e[48;2;20;22;20m\e[38;2;240;240;240m▄\e[48;2;86;85;86m\e[38;2;253;253;253m▄\e[48;2;199;199;199m\e[38;2;255;255;255m▄ \e[0m - \e[48;2;146;147;145m\e[38;2;254;254;254m▄\e[48;2;41;52;39m\e[38;2;242;242;242m▄\e[48;2;39;76;30m\e[38;2;192;192;192m▄\e[48;2;73;136;57m\e[38;2;132;134;132m▄\e[48;2;90;162;72m\e[38;2;96;100;95m▄\e[48;2;99;175;79m\e[38;2;60;69;58m▄\e[48;2;98;177;78m\e[38;2;46;59;43m▄\e[48;2;98;177;78m\e[38;2;32;51;27m▄\e[48;2;98;178;78m\e[38;2;28;50;23m▄\e[48;2;98;178;78m\e[38;2;28;55;22m▄\e[48;2;98;178;78m\e[38;2;35;64;28m▄\e[48;2;98;177;78m\e[38;2;41;75;33m▄\e[48;2;98;177;78m\e[38;2;50;89;41m▄\e[48;2;98;177;77m\e[38;2;54;89;45m▄\e[48;2;98;177;77m\e[38;2;53;89;44m▄\e[48;2;98;177;78m\e[38;2;49;86;39m▄\e[48;2;98;177;78m\e[38;2;45;83;36m▄\e[48;2;98;177;78m\e[38;2;40;74;32m▄\e[48;2;98;177;78m\e[38;2;35;64;28m▄\e[48;2;98;178;78m\e[38;2;39;60;33m▄\e[48;2;90;163;71m\e[38;2;55;61;53m▄\e[48;2;53;97;41m\e[38;2;111;111;111m▄\e[48;2;24;44;19m\e[38;2;186;186;186m▄\e[48;2;36;41;35m\e[38;2;242;242;242m▄\e[48;2;132;131;132m\e[38;2;255;255;255m▄\e[0m - '"; - + /bin/bash -c "printf ' + \e[38;2;26;43;21m▄\e[38;2;58;91;50m▄\e[48;2;116;117;116m\e[38;2;68;119;56m▄\e[48;2;98;98;98m\e[38;2;86;143;70m▄\e[48;2;98;98;98m\e[38;2;100;153;87m▄\e[48;2;63;65;63m\e[38;2;102;164;86m▄\e[48;2;46;49;44m\e[38;2;98;168;79m▄\e[48;2;43;45;43m\e[38;2;91;155;75m▄\e[48;2;61;62;61m\e[38;2;78;137;63m▄\e[48;2;102;101;102m\e[38;2;64;112;52m▄\e[0m\e[38;2;38;67;32m▄\e[38;2;20;35;16m▄\e[38;2;10;20;8m▄\e[38;2;15;21;13m▄\e[0m + \e[38;2;49;80;41m▄\e[38;2;73;133;59m▄\e[48;2;20;21;20m\e[38;2;91;163;72m▄\e[48;2;14;27;12m\e[38;2;96;174;76m▄\e[48;2;51;92;41m\e[38;2;98;177;78m▄\e[48;2;86;155;68m\e[38;2;98;177;78m▄\e[48;2;96;173;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;97;175;76m\e[38;2;98;177;78m▄\e[48;2;93;168;74m\e[38;2;98;177;78m▄\e[48;2;99;163;83m\e[38;2;97;177;77m▄\e[48;2;99;151;86m\e[38;2;98;177;78m▄\e[48;2;35;57;29m\e[38;2;98;176;78m▄\e[48;2;19;21;19m\e[38;2;94;169;75m▄\e[0m\e[38;2;70;125;56m▄\e[0m + \e[38;2;42;65;36m▄\e[38;2;62;106;52m▄\e[48;2;94;95;94m\e[38;2;86;152;70m▄\e[48;2;57;72;53m\e[38;2;96;174;77m▄\e[48;2;57;96;47m\e[38;2;98;177;78m▄\e[48;2;78;136;62m\e[38;2;98;177;78m▄\e[48;2;95;167;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;77m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m\e[38;2;76;137;60m▄\e[48;2;98;177;78m\e[38;2;54;97;42m▄\e[48;2;99;179;79m\e[38;2;39;71;30m▄\e[48;2;100;181;79m\e[38;2;35;60;30m▄\e[48;2;101;181;81m\e[38;2;42;66;37m▄\e[48;2;100;177;80m\e[38;2;52;73;45m▄\e[48;2;95;175;76m\e[38;2;47;75;40m▄\e[48;2;94;178;73m\e[38;2;41;75;33m▄\e[48;2;98;179;78m\e[38;2;42;73;34m▄\e[48;2;99;180;79m\e[38;2;40;70;33m▄\e[48;2;99;179;78m\e[38;2;44;75;36m▄\e[48;2;97;177;77m\e[38;2;55;93;46m▄\e[48;2;97;176;77m\e[38;2;65;113;52m▄\e[48;2;98;177;78m\e[38;2;79;141;63m▄\e[48;2;98;177;78m\e[38;2;93;166;75m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;94;170;75m\e[38;2;98;177;78m▄\e[48;2;71;128;56m\e[38;2;98;177;78m▄\e[48;2;34;56;28m\e[38;2;97;175;77m▄\e[48;2;64;66;64m\e[38;2;78;140;62m▄\e[0m + \e[48;2;66;112;54m\e[38;2;98;177;78m▄\e[48;2;80;133;66m\e[38;2;98;177;78m▄\e[48;2;95;162;76m\e[38;2;98;177;78m▄\e[48;2;96;171;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m\e[38;2;96;174;76m▄\e[48;2;98;177;78m\e[38;2;74;130;59m▄\e[48;2;98;176;78m\e[38;2;32;49;27m▄\e[48;2;95;166;76m\e[38;2;18;29;15m▄\e[48;2;73;126;59m\e[38;2;65;113;53m▄\e[48;2;40;62;34m\e[38;2;107;209;83m▄\e[48;2;23;43;19m\e[38;2;77;220;42m▄\e[48;2;32;72;22m\e[38;2;72;218;36m▄\e[48;2;55;155;30m\e[38;2;73;217;37m▄\e[48;2;71;203;38m\e[38;2;73;217;37m▄\e[48;2;79;212;46m\e[38;2;73;218;37m▄\e[48;2;81;216;48m\e[38;2;73;218;37m▄\e[48;2;82;220;48m\e[38;2;73;218;37m▄\e[48;2;79;221;44m\e[38;2;73;218;37m▄\e[48;2;76;219;40m\e[38;2;73;218;37m▄\e[48;2;76;218;40m\e[38;2;73;218;37m▄\e[48;2;75;213;41m\e[38;2;73;218;37m▄\e[48;2;79;203;48m\e[38;2;73;218;37m▄\e[48;2;76;175;52m\e[38;2;73;218;37m▄\e[48;2;52;127;33m\e[38;2;73;218;37m▄\e[48;2;29;75;18m\e[38;2;73;217;37m▄\e[48;2;19;45;12m\e[38;2;73;218;36m▄\e[48;2;45;74;38m\e[38;2;65;196;33m▄\e[48;2;76;127;62m\e[38;2;44;132;24m▄\e[48;2;90;158;72m\e[38;2;16;45;10m▄\e[48;2;97;175;77m\e[38;2;28;50;22m▄\e[48;2;98;177;78m\e[38;2;80;145;64m▄\e[48;2;98;177;78m\e[38;2;97;175;77m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;97;173;78m\e[38;2;98;177;78m▄\e[48;2;69;114;56m\e[38;2;98;177;78m▄\e[48;2;30;38;28m\e[38;2;103;179;83m▄\e[0m\e[38;2;99;149;87m▄\e[0m + \e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;83;150;66m▄\e[48;2;98;177;78m\e[38;2;44;80;34m▄\e[48;2;99;179;78m\e[38;2;33;49;28m▄\e[48;2;87;159;69m\e[38;2;68;97;61m▄\e[48;2;46;84;37m\e[38;2;87;165;68m▄\e[48;2;25;37;21m\e[38;2;83;208;52m▄\e[48;2;59;131;42m\e[38;2;73;219;37m▄\e[48;2;74;199;43m\e[38;2;74;223;37m▄\e[48;2;72;213;38m\e[38;2;67;204;35m▄\e[48;2;73;218;37m\e[38;2;55;171;29m▄\e[48;2;72;218;36m\e[38;2;59;136;22m▄\e[48;2;72;218;36m\e[38;2;103;132;15m▄\e[48;2;73;219;37m\e[38;2;149;133;9m▄\e[48;2;72;220;37m\e[38;2;168;130;7m▄\e[48;2;73;220;37m\e[38;2;167;118;5m▄\e[48;2;72;218;37m\e[38;2;106;78;4m▄\e[48;2;69;210;36m\e[38;2;93;69;4m▄\e[48;2;66;199;34m\e[38;2;173;117;4m▄\e[48;2;63;192;32m\e[38;2;177;119;4m▄\e[48;2;62;186;32m\e[38;2;173;116;4m▄\e[48;2;61;186;31m\e[38;2;176;115;4m▄\e[48;2;63;191;32m\e[38;2;174;115;4m▄\e[48;2;67;202;34m\e[38;2;170;113;4m▄\e[48;2;70;213;36m\e[38;2;180;118;3m▄\e[48;2;72;219;37m\e[38;2;175;117;4m▄\e[48;2;73;220;37m\e[38;2;154;120;7m▄\e[48;2;73;220;37m\e[38;2;80;94;11m▄\e[48;2;73;219;37m\e[38;2;48;93;15m▄\e[48;2;73;218;37m\e[38;2;41;112;19m▄\e[48;2;72;215;36m\e[38;2;45;144;25m▄\e[48;2;64;192;32m\e[38;2;63;191;32m▄\e[48;2;32;99;16m\e[38;2;73;218;37m▄\e[48;2;21;41;16m\e[38;2;72;210;38m▄\e[48;2;38;66;30m\e[38;2;67;177;41m▄\e[48;2;79;141;63m\e[38;2;53;123;36m▄\e[48;2;98;178;78m\e[38;2;32;57;25m▄\e[48;2;98;179;77m\e[38;2;25;46;20m▄\e[48;2;97;177;77m\e[38;2;56;100;46m▄\e[48;2;98;177;78m\e[38;2;93;165;75m▄\e[48;2;97;176;77m\e[38;2;100;181;80m▄\e[48;2;98;177;77m\e[38;2;97;176;76m▄\e[48;2;97;176;78m\e[38;2;98;177;78m▄\e[48;2;99;174;79m\e[38;2;98;177;78m▄\e[0m + \e[48;2;98;178;78m\e[38;2;46;76;38m▄\e[48;2;100;178;80m\e[38;2;50;69;45m▄\e[48;2;99;176;80m\e[38;2;35;46;33m▄\e[48;2;82;148;65m\e[38;2;7;9;6m▄\e[48;2;64;117;50m\e[38;2;35;54;30m▄\e[48;2;42;77;34m\e[38;2;52;107;39m▄\e[48;2;26;46;21m\e[38;2;80;194;52m▄\e[48;2;34;71;26m\e[38;2;73;216;38m▄\e[48;2;54;133;35m\e[38;2;67;192;32m▄\e[48;2;81;199;52m\e[38;2;81;158;23m▄\e[48;2;80;218;46m\e[38;2;100;110;11m▄\e[48;2;66;199;33m\e[38;2;152;98;2m▄\e[48;2;60;157;26m\e[38;2;220;129;1m▄\e[48;2;80;128;18m\e[38;2;251;145;0m▄\e[48;2;120;110;9m\e[38;2;255;147;0m▄\e[48;2;154;106;4m\e[38;2;255;147;0m▄\e[48;2;181;114;2m\e[38;2;255;147;0m▄\e[48;2;230;134;0m\e[38;2;255;147;0m▄\e[48;2;251;144;0m\e[38;2;255;147;0m▄\e[48;2;254;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;163;94;0m\e[38;2;134;78;0m▄\e[48;2;2;1;0m\e[38;2;58;33;0m▄\e[48;2;13;7;0m\e[38;2;133;76;0m▄\e[48;2;64;38;0m\e[38;2;12;7;0m▄\e[48;2;250;144;0m\e[38;2;234;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;146;0m\e[38;2;255;147;0m▄\e[48;2;239;143;2m\e[38;2;255;147;0m▄\e[48;2;223;131;1m\e[38;2;255;147;0m▄\e[48;2;192;120;2m\e[38;2;255;147;0m▄\e[48;2;130;96;5m\e[38;2;255;147;0m▄\e[48;2;82;88;9m\e[38;2;255;148;0m▄\e[48;2;62;104;15m\e[38;2;247;147;1m▄\e[48;2;49;132;22m\e[38;2;212;134;3m▄\e[48;2;57;165;32m\e[38;2;144;95;3m▄\e[48;2;53;117;38m\e[38;2;74;61;8m▄\e[48;2;50;97;39m\e[38;2;47;60;21m▄\e[48;2;35;56;29m\e[38;2;47;81;33m▄\e[48;2;17;22;15m\e[38;2;20;34;19m▄\e[48;2;31;50;26m\e[38;2;48;73;42m▄\e[48;2;55;90;47m\e[38;2;37;56;33m▄\e[48;2;78;132;64m\e[38;2;21;31;18m▄\e[48;2;95;167;78m\e[38;2;18;26;16m▄\e[0m + \e[48;2;48;74;43m\e[38;2;51;78;45m▄\e[48;2;48;74;43m\e[38;2;50;76;44m▄\e[48;2;46;71;42m\e[38;2;12;17;11m▄\e[48;2;32;54;28m\e[38;2;45;93;35m▄\e[48;2;58;112;46m\e[38;2;26;45;17m▄\e[48;2;55;130;37m\e[38;2;121;83;5m▄\e[48;2;57;133;27m\e[38;2;232;138;0m▄\e[48;2;101;96;8m\e[38;2;253;146;0m▄\e[48;2;200;118;1m\e[38;2;254;147;0m▄\e[48;2;248;144;0m\e[38;2;255;147;0m▄\e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;173;100;0m\e[38;2;210;122;0m▄\e[48;2;172;100;0m\e[38;2;76;44;0m▄\e[48;2;214;123;0m\e[38;2;153;88;0m▄\e[48;2;36;21;0m\e[38;2;162;94;0m▄\e[48;2;201;116;0m\e[38;2;20;12;0m▄\e[48;2;254;147;0m\e[38;2;238;137;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;241;143;1m\e[38;2;255;147;0m▄\e[48;2;213;125;0m\e[38;2;255;147;0m▄\e[48;2;117;73;3m\e[38;2;252;147;1m▄\e[48;2;25;36;21m\e[38;2;94;69;18m▄\e[48;2;50;77;44m\e[38;2;39;59;33m▄\e[48;2;51;78;45m \e[48;2;51;78;44m\e[38;2;51;78;45m▄\e[0m + \e[48;2;51;78;45m\e[38;2;50;76;44m▄\e[48;2;40;58;34m\e[38;2;43;36;13m▄\e[48;2;38;37;6m\e[38;2;240;143;2m▄\e[48;2;149;95;6m\e[38;2;254;147;0m▄\e[48;2;226;134;1m\e[38;2;255;147;0m▄\e[48;2;253;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;243;140;0m▄\e[48;2;116;67;0m\e[38;2;90;52;0m▄\e[48;2;237;137;0m\e[38;2;254;147;0m▄\e[48;2;248;143;0m\e[38;2;255;147;0m▄\e[48;2;250;144;0m\e[38;2;255;147;0m▄\e[48;2;45;25;0m\e[38;2;191;110;0m▄\e[48;2;64;36;0m\e[38;2;32;18;0m▄\e[48;2;245;141;0m\e[38;2;152;87;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;230;140;6m\e[38;2;254;147;0m▄\e[48;2;25;21;7m\e[38;2;143;86;2m▄\e[48;2;48;74;42m\e[38;2;39;60;34m▄\e[48;2;51;78;45m \e[0m + \e[48;2;41;63;37m\e[38;2;40;47;23m▄\e[48;2;119;70;1m\e[38;2;230;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;180;104;0m\e[38;2;120;68;0m▄\e[48;2;135;78;0m\e[38;2;158;91;0m▄\e[48;2;255;147;0m\e[38;2;250;145;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;146;0m▄\e[48;2;252;145;0m\e[38;2;209;120;0m▄\e[48;2;54;31;0m\e[38;2;61;35;0m▄\e[48;2;94;54;0m\e[38;2;159;91;0m▄\e[48;2;254;146;0m\e[38;2;244;140;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;240;144;1m\e[38;2;255;147;0m▄\e[48;2;36;40;18m\e[38;2;70;49;6m▄\e[48;2;50;78;45m\e[38;2;45;69;40m▄\e[0m + \e[48;2;65;48;9m\e[38;2;98;64;6m▄\e[48;2;255;149;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;254;146;0m▄\e[48;2;225;130;0m\e[38;2;175;100;0m▄\e[48;2;210;120;0m\e[38;2;253;146;0m▄\e[48;2;209;121;0m\e[38;2;254;147;0m▄\e[48;2;86;49;0m\e[38;2;189;109;0m▄\e[48;2;254;146;0m\e[38;2;142;81;0m▄\e[48;2;255;147;0m\e[38;2;102;59;0m▄\e[48;2;199;115;0m\e[38;2;69;40;0m▄\e[48;2;244;141;0m\e[38;2;238;138;0m▄\e[48;2;253;146;0m\e[38;2;184;105;0m▄\e[48;2;200;115;0m\e[38;2;231;134;0m▄\e[48;2;253;147;0m\e[38;2;254;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;149;98;7m\e[38;2;215;132;5m▄\e[48;2;35;54;32m\e[38;2;31;42;22m▄\e[0m + \e[48;2;133;82;3m\e[38;2;153;89;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;248;147;0m▄\e[48;2;254;147;0m\e[38;2;242;142;0m▄\e[48;2;204;116;0m\e[38;2;224;131;0m▄\e[48;2;200;115;0m\e[38;2;205;124;1m▄\e[48;2;199;115;0m\e[38;2;175;109;2m▄\e[48;2;172;100;0m\e[38;2;157;102;2m▄\e[48;2;168;97;0m\e[38;2;172;114;3m▄\e[48;2;206;119;0m\e[38;2;156;115;5m▄\e[48;2;215;125;0m\e[38;2;138;111;7m▄\e[48;2;180;105;0m\e[38;2;121;105;8m▄\e[48;2;233;136;0m\e[38;2;120;109;8m▄\e[48;2;254;148;0m\e[38;2;116;111;9m▄\e[48;2;254;148;0m\e[38;2;112;111;10m▄\e[48;2;255;148;0m\e[38;2;130;121;10m▄\e[48;2;254;148;0m\e[38;2;103;105;10m▄\e[48;2;254;148;0m\e[38;2;99;99;9m▄\e[48;2;254;148;0m\e[38;2;106;98;8m▄\e[48;2;254;148;0m\e[38;2;106;96;8m▄\e[48;2;255;148;0m\e[38;2;118;98;7m▄\e[48;2;255;147;0m\e[38;2;123;101;7m▄\e[48;2;255;147;0m\e[38;2;129;99;6m▄\e[48;2;255;147;0m\e[38;2;141;100;5m▄\e[48;2;255;147;0m\e[38;2;166;111;4m▄\e[48;2;255;147;0m\e[38;2;189;122;4m▄\e[48;2;255;147;0m\e[38;2;217;131;1m▄\e[48;2;255;147;0m\e[38;2;248;145;0m▄\e[48;2;255;147;0m\e[38;2;250;148;0m▄\e[48;2;255;147;0m\e[38;2;254;149;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;147;1m\e[38;2;254;147;0m▄\e[48;2;47;44;15m\e[38;2;81;54;7m▄\e[0m + \e[48;2;163;95;0m\e[38;2;176;103;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;147;0m▄\e[48;2;255;147;0m\e[38;2;250;144;0m▄\e[48;2;255;147;0m\e[38;2;238;146;1m▄\e[48;2;254;147;0m\e[38;2;170;117;4m▄\e[48;2;252;147;0m\e[38;2;78;65;5m▄\e[48;2;239;144;1m\e[38;2;36;71;11m▄\e[48;2;220;136;2m\e[38;2;41;122;21m▄\e[48;2;193;124;2m\e[38;2;59;179;31m▄\e[48;2;178;119;4m\e[38;2;69;210;35m▄\e[48;2;129;104;6m\e[38;2;73;219;37m▄\e[48;2;67;87;10m\e[38;2;73;219;37m▄\e[48;2;61;106;15m\e[38;2;73;218;37m▄\e[48;2;52;126;21m\e[38;2;73;218;37m▄\e[48;2;52;150;25m\e[38;2;73;218;37m▄\e[48;2;58;177;30m\e[38;2;73;218;37m▄\e[48;2;63;194;33m\e[38;2;73;218;37m▄\e[48;2;66;204;34m\e[38;2;73;218;37m▄\e[48;2;69;212;36m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;72;219;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;219;37m\e[38;2;73;218;37m▄\e[48;2;72;214;36m\e[38;2;73;218;37m▄\e[48;2;68;207;35m\e[38;2;73;218;37m▄\e[48;2;65;197;34m\e[38;2;73;218;37m▄\e[48;2;61;185;32m\e[38;2;73;218;37m▄\e[48;2;51;157;27m\e[38;2;73;218;37m▄\e[48;2;41;125;21m\e[38;2;73;218;37m▄\e[48;2;40;106;18m\e[38;2;73;218;37m▄\e[48;2;75;92;10m\e[38;2;73;218;37m▄\e[48;2;76;85;10m\e[38;2;73;219;37m▄\e[48;2;112;94;7m\e[38;2;72;216;36m▄\e[48;2;162;113;5m\e[38;2;64;194;33m▄\e[48;2;219;131;0m\e[38;2;50;152;26m▄\e[48;2;231;138;1m\e[38;2;30;65;14m▄\e[48;2;252;147;0m\e[38;2;106;71;5m▄\e[48;2;97;61;4m\e[38;2;30;31;7m▄\e[0m + \e[48;2;186;108;0m\e[38;2;185;108;0m▄\e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;247;144;0m▄\e[48;2;255;147;0m\e[38;2;188;113;1m▄\e[48;2;255;147;0m\e[38;2;110;100;8m▄\e[48;2;248;147;0m\e[38;2;72;136;20m▄\e[48;2;206;124;1m\e[38;2;62;175;29m▄\e[48;2;115;81;4m\e[38;2;67;204;34m▄\e[48;2;55;92;13m\e[38;2;72;217;36m▄\e[48;2;60;157;26m\e[38;2;73;218;37m▄\e[48;2;66;195;32m\e[38;2;73;218;37m▄\e[48;2;70;212;35m\e[38;2;73;218;37m▄\e[48;2;72;215;36m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;210;37m\e[38;2;71;214;37m▄\e[48;2;58;142;37m\e[38;2;57;136;37m▄\e[48;2;51;109;39m\e[38;2;54;109;40m▄\e[48;2;36;76;26m\e[38;2;38;71;31m▄\e[0m + \e[48;2;73;63;12m\e[38;2;24;46;20m▄\e[48;2;89;67;7m\e[38;2;54;120;38m▄\e[48;2;67;119;19m\e[38;2;66;192;35m▄\e[48;2;61;177;29m\e[38;2;73;217;37m▄\e[48;2;71;213;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;214;35m\e[38;2;42;129;21m▄\e[48;2;43;131;22m\e[38;2;4;10;2m▄\e[48;2;37;111;19m\e[38;2;4;10;2m▄\e[48;2;60;180;30m\e[38;2;7;22;3m▄\e[48;2;73;218;37m\e[38;2;62;187;31m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;69;208;35m\e[38;2;20;61;10m▄\e[48;2;43;129;22m\e[38;2;4;11;2m▄\e[48;2;38;116;19m\e[38;2;3;8;1m▄\e[48;2;64;192;32m\e[38;2;19;57;10m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;214;36m\e[38;2;71;213;36m▄\e[48;2;55;130;37m\e[38;2;55;123;38m▄\e[48;2;54;108;41m\e[38;2;56;110;44m▄\e[48;2;35;60;30m\e[38;2;35;57;30m▄\e[0m + \e[48;2;37;68;29m\e[38;2;38;61;33m▄\e[48;2;58;132;39m\e[38;2;62;134;45m▄\e[48;2;64;179;36m\e[38;2;55;129;37m▄\e[48;2;72;217;36m\e[38;2;71;210;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;27;82;14m\e[38;2;59;178;30m▄\e[48;2;4;11;3m\e[38;2;3;9;1m▄\e[48;2;0;0;0m\e[38;2;8;18;4m▄\e[48;2;1;3;1m\e[38;2;4;12;2m▄\e[48;2;36;112;19m\e[38;2;54;163;27m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;210;36m\e[38;2;72;217;36m▄\e[48;2;4;11;1m\e[38;2;9;28;4m▄\e[48;2;0;0;0m\e[38;2;6;16;3m▄\e[48;2;1;3;1m\e[38;2;6;15;3m▄\e[48;2;13;39;6m\e[38;2;32;94;15m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;207;36m\e[38;2;67;196;36m▄\e[48;2;52;110;38m \e[48;2;57;101;47m\e[38;2;56;90;47m▄\e[48;2;36;55;31m\e[38;2;38;58;33m▄\e[0m + \e[48;2;40;63;35m\e[38;2;43;67;38m▄\e[48;2;61;117;48m\e[38;2;45;80;38m▄\e[48;2;54;114;39m\e[38;2;52;110;38m▄\e[48;2;64;177;36m\e[38;2;59;150;37m▄\e[48;2;72;217;36m\e[38;2;72;214;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;61;182;30m\e[38;2;73;218;37m▄\e[48;2;45;135;22m\e[38;2;73;218;37m▄\e[48;2;58;174;29m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;212;35m\e[38;2;72;216;36m▄\e[48;2;34;101;17m\e[38;2;11;32;5m▄\e[48;2;34;101;17m\e[38;2;1;2;1m▄\e[48;2;34;98;18m\e[38;2;1;3;1m▄\e[48;2;35;101;18m\e[38;2;1;1;1m▄\e[48;2;35;100;17m\e[38;2;1;3;1m▄\e[48;2;57;170;29m\e[38;2;56;168;28m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;72;218;36m▄\e[48;2;66;197;33m\e[38;2;72;217;36m▄\e[48;2;46;139;23m\e[38;2;73;217;37m▄\e[48;2;54;163;27m\e[38;2;72;217;37m▄\e[48;2;71;212;36m\e[38;2;72;217;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;37m\e[38;2;70;204;36m▄\e[48;2;60;158;37m\e[38;2;53;122;37m▄\e[48;2;52;103;38m\e[38;2;52;104;40m▄\e[48;2;33;54;28m\e[38;2;21;34;18m▄\e[48;2;46;70;41m\e[38;2;49;76;44m▄\e[0m + \e[48;2;49;76;44m\e[38;2;51;78;45m▄\e[48;2;32;51;28m\e[38;2;43;65;37m▄\e[48;2;61;125;45m\e[38;2;81;124;71m▄\e[48;2;54;124;38m\e[38;2;53;113;40m▄\e[48;2;68;202;36m\e[38;2;60;156;37m▄\e[48;2;73;218;37m\e[38;2;72;215;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;216;37m▄\e[48;2;73;217;37m\e[38;2;93;205;61m▄\e[48;2;79;213;44m\e[38;2;121;189;95m▄\e[48;2;85;210;51m\e[38;2;132;184;108m▄\e[48;2;82;211;47m\e[38;2;121;191;93m▄\e[48;2;73;217;37m\e[38;2;85;210;52m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;37;111;20m\e[38;2;71;214;36m▄\e[48;2;1;2;0m\e[38;2;44;128;22m▄\e[48;2;2;4;2m\e[38;2;15;39;8m▄\e[48;2;1;1;1m\e[38;2;29;82;14m▄\e[48;2;13;37;7m\e[38;2;68;204;34m▄\e[48;2;70;210;35m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;74;216;38m▄\e[48;2;82;211;47m\e[38;2;118;191;90m▄\e[48;2;100;200;70m\e[38;2;132;185;108m▄\e[48;2;103;201;72m\e[38;2;127;187;101m▄\e[48;2;98;203;67m\e[38;2;125;189;100m▄\e[48;2;85;209;52m\e[38;2;116;192;88m▄\e[48;2;73;217;37m\e[38;2;80;211;44m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;68;200;35m▄\e[48;2;63;170;35m\e[38;2;54;125;36m▄\e[48;2;51;103;38m\e[38;2;51;99;38m▄\e[48;2;49;101;36m\e[38;2;22;45;17m▄\e[48;2;30;47;26m\e[38;2;45;69;39m▄\e[48;2;51;78;45m \e[0m + \e[48;2;51;78;45m \e[48;2;49;75;43m\e[38;2;51;78;45m▄\e[48;2;30;38;27m\e[38;2;39;59;35m▄\e[48;2;63;123;49m\e[38;2;71;110;62m▄\e[48;2;54;121;37m\e[38;2;56;119;40m▄\e[48;2;68;198;37m\e[38;2;60;158;37m▄\e[48;2;73;218;37m\e[38;2;71;216;36m▄\e[48;2;73;217;37m\e[38;2;73;216;38m▄\e[48;2;91;206;58m\e[38;2;110;196;81m▄\e[48;2;122;191;95m\e[38;2;126;188;100m▄\e[48;2;128;186;102m\e[38;2;130;187;104m▄\e[48;2;140;180;116m\e[38;2;128;187;103m▄\e[48;2;126;188;100m\e[38;2;106;197;76m▄\e[48;2;96;202;64m\e[38;2;75;215;39m▄\e[48;2;73;217;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;217;38m\e[38;2;73;217;37m▄\e[48;2;114;194;86m\e[38;2;76;215;40m▄\e[48;2;142;178;121m\e[38;2;94;205;62m▄\e[48;2;150;176;129m\e[38;2;109;196;81m▄\e[48;2;142;180;120m\e[38;2;95;203;63m▄\e[48;2;116;193;88m\e[38;2;76;214;41m▄\e[48;2;78;213;44m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;67;196;36m▄\e[48;2;71;209;37m\e[38;2;60;154;36m▄\e[48;2;59;152;36m\e[38;2;57;138;37m▄\e[48;2;52;110;38m\e[38;2;56;130;37m▄\e[48;2;51;104;38m\e[38;2;30;71;21m▄\e[48;2;20;31;17m\e[38;2;45;69;39m▄\e[48;2;50;78;44m\e[38;2;51;78;45m▄\e[48;2;51;78;45m \e[0m + \e[48;2;51;78;45m\e[38;2;28;43;24m▄\e[48;2;51;78;45m\e[38;2;43;64;38m▄\e[48;2;51;78;45m\e[38;2;52;79;46m▄\e[48;2;34;53;30m\e[38;2;46;71;41m▄\e[48;2;64;124;48m\e[38;2;49;106;36m▄\e[48;2;53;115;38m\e[38;2;57;124;40m▄\e[48;2;63;175;36m\e[38;2;55;126;38m▄\e[48;2;73;217;37m\e[38;2;66;186;36m▄\e[48;2;89;208;56m\e[38;2;73;217;37m▄\e[48;2;111;195;82m\e[38;2;75;215;40m▄\e[48;2;109;197;80m\e[38;2;74;216;38m▄\e[48;2;85;209;52m\e[38;2;73;218;36m▄\e[48;2;73;216;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m\e[38;2;71;214;36m▄\e[48;2;71;212;36m\e[38;2;63;172;36m▄\e[48;2;63;174;35m\e[38;2;57;138;37m▄\e[48;2;58;146;36m\e[38;2;57;137;38m▄\e[48;2;58;139;37m\e[38;2;57;138;37m▄\e[48;2;58;138;37m\e[38;2;54;128;35m▄\e[48;2;50;117;34m\e[38;2;20;44;14m▄\e[48;2;20;32;17m\e[38;2;39;61;34m▄\e[48;2;51;77;44m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;49;75;43m▄\e[0m + \e[48;2;84;151;67m\e[38;2;98;177;78m▄\e[48;2;43;80;34m\e[38;2;98;177;78m▄\e[48;2;22;39;19m\e[38;2;98;178;78m▄\e[48;2;43;67;38m\e[38;2;81;148;64m▄\e[48;2;40;70;33m\e[38;2;44;78;36m▄\e[48;2;54;127;36m\e[38;2;21;47;15m▄\e[48;2;55;120;39m\e[38;2;54;117;39m▄\e[48;2;56;133;37m\e[38;2;59;133;40m▄\e[48;2;71;211;36m\e[38;2;61;164;37m▄\e[48;2;73;217;36m\e[38;2;71;211;36m▄\e[48;2;73;218;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;73;218;37m\e[38;2;67;203;34m▄\e[48;2;68;194;37m\e[38;2;40;116;21m▄\e[48;2;58;142;36m\e[38;2;8;21;5m▄\e[48;2;49;120;31m\e[38;2;6;10;5m▄\e[48;2;25;59;16m\e[38;2;73;108;65m▄\e[48;2;15;33;11m\e[38;2;95;157;79m▄\e[48;2;12;25;9m\e[38;2;97;175;77m▄\e[48;2;21;32;19m\e[38;2;99;179;79m▄\e[48;2;23;35;19m\e[38;2;98;178;78m▄\e[48;2;20;34;17m\e[38;2;98;178;78m▄\e[48;2;13;24;11m\e[38;2;98;178;78m▄\e[48;2;16;26;14m\e[38;2;98;177;78m▄\e[0m + \e[48;2;97;176;77m\e[38;2;58;103;46m▄\e[48;2;98;177;78m\e[38;2;94;170;75m▄\e[48;2;98;177;78m\e[38;2;99;179;79m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;97;176;77m\e[38;2;98;177;78m▄\e[48;2;91;165;72m\e[38;2;98;177;78m▄\e[48;2;55;100;44m\e[38;2;98;177;78m▄\e[48;2;15;27;10m\e[38;2;92;168;73m▄\e[48;2;24;46;18m\e[38;2;76;138;61m▄\e[48;2;73;154;53m\e[38;2;54;96;43m▄\e[48;2;74;213;39m\e[38;2;24;48;18m▄\e[48;2;74;222;37m\e[38;2;20;55;11m▄\e[48;2;73;217;37m\e[38;2;31;91;16m▄\e[48;2;73;218;37m\e[38;2;49;145;24m▄\e[48;2;73;218;37m\e[38;2;68;201;35m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;74;220;37m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;220;37m▄\e[48;2;73;218;37m\e[38;2;72;214;37m▄\e[48;2;73;218;37m\e[38;2;63;187;32m▄\e[48;2;72;217;36m\e[38;2;41;120;22m▄\e[48;2;74;222;36m\e[38;2;21;52;13m▄\e[48;2;67;203;34m\e[38;2;39;62;34m▄\e[48;2;40;117;21m\e[38;2;64;103;54m▄\e[48;2;14;43;7m\e[38;2;72;126;57m▄\e[48;2;4;12;2m\e[38;2;87;156;69m▄\e[48;2;25;45;21m\e[38;2;97;174;78m▄\e[48;2;71;124;57m\e[38;2;99;177;80m▄\e[48;2;97;168;78m\e[38;2;94;170;75m▄\e[48;2;96;175;77m\e[38;2;103;177;84m▄\e[48;2;98;176;79m\e[38;2;109;183;90m▄\e[48;2;100;178;80m\e[38;2;112;185;94m▄\e[48;2;100;177;80m\e[38;2;111;184;92m▄\e[48;2;99;177;80m\e[38;2;107;182;89m▄\e[48;2;98;177;78m\e[38;2;105;182;85m▄\e[48;2;98;177;78m\e[38;2;103;180;83m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[0m + \e[38;2;54;79;47m▀\e[38;2;72;123;60m▀\e[48;2;97;176;78m\e[38;2;65;87;60m▄\e[48;2;98;177;78m\e[38;2;73;130;59m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;96;172;77m\e[38;2;98;177;78m▄\e[48;2;82;147;65m\e[38;2;98;177;78m▄\e[48;2;66;116;52m\e[38;2;98;177;78m▄\e[48;2;46;78;38m\e[38;2;98;177;78m▄\e[48;2;27;51;20m\e[38;2;98;177;78m▄\e[48;2;28;60;20m\e[38;2;94;169;74m▄\e[48;2;28;67;19m\e[38;2;86;155;69m▄\e[48;2;34;96;19m\e[38;2;69;123;54m▄\e[48;2;42;126;21m\e[38;2;48;86;39m▄\e[48;2;51;148;27m\e[38;2;36;64;28m▄\e[48;2;55;164;28m\e[38;2;26;46;20m▄\e[48;2;60;180;30m\e[38;2;23;39;18m▄\e[48;2;62;186;31m\e[38;2;21;40;17m▄\e[48;2;61;181;31m\e[38;2;19;36;16m▄\e[48;2;67;176;40m\e[38;2;18;32;14m▄\e[48;2;63;173;35m\e[38;2;23;36;19m▄\e[48;2;56;168;29m\e[38;2;27;42;23m▄\e[48;2;53;160;27m\e[38;2;29;45;24m▄\e[48;2;44;133;22m\e[38;2;30;53;25m▄\e[48;2;34;102;17m\e[38;2;52;89;43m▄\e[48;2;20;60;10m\e[38;2;88;148;71m▄\e[48;2;24;47;19m\e[38;2;97;171;78m▄\e[48;2;34;62;27m\e[38;2;98;177;78m▄\e[48;2;55;99;44m\e[38;2;98;177;78m▄\e[48;2;80;144;64m\e[38;2;98;177;78m▄\e[48;2;99;176;79m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;99;177;79m\e[38;2;96;172;76m▄\e[48;2;99;175;79m\e[38;2;85;151;68m▄\e[48;2;95;169;76m\e[38;2;72;121;60m▄\e[48;2;109;180;92m\e[38;2;37;57;32m▄\e[48;2;100;159;85m\e[38;2;38;41;36m▄\e[48;2;72;107;62m\e[38;2;74;74;74m▄\e[0m\e[38;2;44;65;38m▀\e[38;2;31;48;27m▀\e[38;2;31;48;26m▀\e[38;2;31;52;25m▀\e[38;2;41;71;34m▀\e[38;2;59;97;50m▀\e[0m + \e[38;2;95;106;94m▀\e[38;2;81;137;65m▀\e[38;2;91;166;73m▀\e[48;2;95;174;76m\e[38;2;61;73;59m▄\e[48;2;98;177;78m\e[38;2;33;66;26m▄\e[48;2;98;177;78m\e[38;2;81;143;65m▄\e[48;2;98;177;78m\e[38;2;102;182;81m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;99;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;97;177;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;99;179;78m▄\e[48;2;98;177;78m\e[38;2;93;169;74m▄\e[48;2;98;177;78m\e[38;2;56;106;44m▄\e[48;2;96;174;77m\e[38;2;16;31;13m▄\e[48;2;68;126;54m\e[38;2;58;58;58m▄\e[0m\e[38;2;28;50;23m▀\e[38;2;20;22;20m▀\e[0m + \e[38;2;41;52;39m▀\e[38;2;39;76;30m▀\e[38;2;73;136;57m▀\e[48;2;90;162;72m\e[38;2;96;100;95m▄\e[48;2;99;175;79m\e[38;2;60;69;58m▄\e[48;2;98;177;78m\e[38;2;46;59;43m▄\e[48;2;98;177;78m\e[38;2;32;51;27m▄\e[48;2;98;178;78m\e[38;2;28;50;23m▄\e[48;2;98;178;78m\e[38;2;28;55;22m▄\e[48;2;98;178;78m\e[38;2;35;64;28m▄\e[48;2;98;177;78m\e[38;2;41;75;33m▄\e[48;2;98;177;78m\e[38;2;50;89;41m▄\e[48;2;98;177;77m\e[38;2;54;89;45m▄\e[48;2;98;177;77m\e[38;2;53;89;44m▄\e[48;2;98;177;78m\e[38;2;49;86;39m▄\e[48;2;98;177;78m\e[38;2;45;83;36m▄\e[48;2;98;177;78m\e[38;2;40;74;32m▄\e[48;2;98;177;78m\e[38;2;35;64;28m▄\e[48;2;98;178;78m\e[38;2;39;60;33m▄\e[48;2;90;163;71m\e[38;2;55;61;53m▄\e[0m\e[38;2;53;97;41m▀\e[38;2;24;44;19m▀\e[38;2;36;41;35m▀\e[0m +'"; else - echo " \e[48;5;108m \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;22m \e[48;5;108m \e[48;5;114m \e[48;5;59m \e[49m - \e[48;5;108m \e[48;5;71m \e[48;5;22m \e[48;5;113m \e[48;5;71m \e[48;5;94m \e[48;5;214m \e[48;5;58m \e[48;5;214m \e[48;5;100m \e[48;5;71m \e[48;5;16m \e[48;5;108m \e[49m - \e[48;5;65m \e[48;5;16m \e[48;5;22m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;65m \e[49m - \e[48;5;23m \e[48;5;214m \e[48;5;178m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;94m \e[48;5;136m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;58m \e[48;5;214m \e[48;5;172m \e[48;5;64m \e[48;5;77m \e[48;5;71m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;77m \e[48;5;71m \e[48;5;16m \e[48;5;77m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;16m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[48;5;59m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;65m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;22m \e[48;5;65m \e[49m - \e[48;5;108m \e[48;5;107m \e[48;5;59m \e[48;5;77m \e[48;5;16m \e[48;5;114m \e[48;5;108m \e[49m" + echo " \e[48;5;108m \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;22m \e[48;5;108m \e[48;5;114m \e[48;5;59m \e[49m + \e[48;5;108m \e[48;5;71m \e[48;5;22m \e[48;5;113m \e[48;5;71m \e[48;5;94m \e[48;5;214m \e[48;5;58m \e[48;5;214m \e[48;5;100m \e[48;5;71m \e[48;5;16m \e[48;5;108m \e[49m + \e[48;5;65m \e[48;5;16m \e[48;5;22m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;65m \e[49m + \e[48;5;23m \e[48;5;214m \e[48;5;178m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;94m \e[48;5;136m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;58m \e[48;5;214m \e[48;5;172m \e[48;5;64m \e[48;5;77m \e[48;5;71m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;77m \e[48;5;71m \e[48;5;16m \e[48;5;77m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;16m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[48;5;59m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;65m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;22m \e[48;5;65m \e[49m + \e[48;5;108m \e[48;5;107m \e[48;5;59m \e[48;5;77m \e[48;5;16m \e[48;5;114m \e[48;5;108m \e[49m" fi fi } +print_support (){ + printf """ + ${GREEN}/---------------------------------------------------------------------------\\ + | ${BLUE}Do you like PEASS?${GREEN} | + |---------------------------------------------------------------------------| + | ${YELLOW}Become a Patreon${GREEN} : ${RED}https://www.patreon.com/peass${GREEN} | + | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@carlospolopm${GREEN} | + | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli & makikvues${GREEN} | + |---------------------------------------------------------------------------| + | ${BLUE}Thank you! ${GREEN} | + \---------------------------------------------------------------------------/ +""" +} + ########################################### #-----------) Starting Output (-----------# ########################################### echo "" -if [ !"$QUIET" ]; then print_banner; fi -printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; +if [ ! "$QUIET" ]; then print_banner; print_support; fi +printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; echo "" -printf ${YELLOW}"ADVISORY: "${BLUE}"$ADVISORY\n"$NC +printf ${YELLOW}"ADVISORY: ${BLUE}$ADVISORY\n$NC" echo "" -printf ${BLUE}"Linux Privesc Checklist: "${YELLOW}"https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist\n"$NC +printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist\n"$NC echo " LEGEND:" | sed "s,LEGEND,${C}[1;4m&${C}[0m," echo " RED/YELLOW: 95% a PE vector" | sed "s,RED/YELLOW,${SED_RED_YELLOW}," echo " RED: You should take a look to it" | sed "s,RED,${SED_RED}," -echo " LightCyan: Users with console" | sed "s,LightCyan,${C}[1;96m&${C}[0m," +echo " LightCyan: Users with console" | sed "s,LightCyan,${SED_LIGHT_CYAN}," echo " Blue: Users without console & mounted devs" | sed "s,Blue,${SED_BLUE}," echo " Green: Common things (users, groups, SUID/SGID, mounts, .sh scripts, cronjobs) " | sed "s,Green,${SED_GREEN}," -echo " LightMagenta: Your username" | sed "s,LightMagenta,${C}[1;95m&${C}[0m," +echo " LightMagenta: Your username" | sed "s,LightMagenta,${SED_LIGHT_MAGENTA}," if [ "$IAMROOT" ]; then echo "" echo " YOU ARE ALREADY ROOT!!! (it could take longer to complete execution)" | sed "s,YOU ARE ALREADY ROOT!!!,${SED_RED_YELLOW}," @@ -259,16 +278,16 @@ kernelDCW_Rhel6_4="2.6.32-431.71.1.el6|2.6.32-431.72.1.el6|2.6.32-431.73.2.el6|2 kernelDCW_Rhel7="3.10.0-229.rt56.141.el7|3.10.0-229.1.2.rt56.141.2.el7_1|3.10.0-229.4.2.rt56.141.6.el7_1|3.10.0-229.7.2.rt56.141.6.el7_1|3.10.0-229.11.1.rt56.141.11.el7_1|3.10.0-229.14.1.rt56.141.13.el7_1|3.10.0-229.20.1.rt56.141.14.el7_1|3.10.0-229.rt56.141.el7|3.10.0-327.rt56.204.el7|3.10.0-327.4.5.rt56.206.el7_2|3.10.0-327.10.1.rt56.211.el7_2|3.10.0-327.13.1.rt56.216.el7_2|3.10.0-327.18.2.rt56.223.el7_2|3.10.0-327.22.2.rt56.230.el7_2|3.10.0-327.28.2.rt56.234.el7_2|3.10.0-327.28.3.rt56.235.el7|3.10.0-327.36.1.rt56.237.el7|3.10.0-123.el7|3.10.0-123.1.2.el7|3.10.0-123.4.2.el7|3.10.0-123.4.4.el7|3.10.0-123.6.3.el7|3.10.0-123.8.1.el7|3.10.0-123.9.2.el7|3.10.0-123.9.3.el7|3.10.0-123.13.1.el7|3.10.0-123.13.2.el7|3.10.0-123.20.1.el7|3.10.0-229.el7|3.10.0-229.1.2.el7|3.10.0-229.4.2.el7|3.10.0-229.7.2.el7|3.10.0-229.11.1.el7|3.10.0-229.14.1.el7|3.10.0-229.20.1.el7|3.10.0-229.24.2.el7|3.10.0-229.26.2.el7|3.10.0-229.28.1.el7|3.10.0-229.30.1.el7|3.10.0-229.34.1.el7|3.10.0-229.38.1.el7|3.10.0-229.40.1.el7|3.10.0-229.42.1.el7|3.10.0-327.el7|3.10.0-327.3.1.el7|3.10.0-327.4.4.el7|3.10.0-327.4.5.el7|3.10.0-327.10.1.el7|3.10.0-327.13.1.el7|3.10.0-327.18.2.el7|3.10.0-327.22.2.el7|3.10.0-327.28.2.el7|3.10.0-327.28.3.el7|3.10.0-327.36.1.el7|3.10.0-327.36.2.el7|3.10.0-229.1.2.ael7b|3.10.0-229.4.2.ael7b|3.10.0-229.7.2.ael7b|3.10.0-229.11.1.ael7b|3.10.0-229.14.1.ael7b|3.10.0-229.20.1.ael7b|3.10.0-229.24.2.ael7b|3.10.0-229.26.2.ael7b|3.10.0-229.28.1.ael7b|3.10.0-229.30.1.ael7b|3.10.0-229.34.1.ael7b|3.10.0-229.38.1.ael7b|3.10.0-229.40.1.ael7b|3.10.0-229.42.1.ael7b|4.2.0-0.21.el7" -MyUID=`id -u $(whoami)` -if [ `echo $MyUID` ]; then myuid=$MyUID; elif [ `id -u $(whoami) 2>/dev/null` ]; then myuid=`id -u $(whoami) 2>/dev/null`; elif [ `id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1` ]; then myuid=`id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1`; fi +MyUID=$(id -u $(whoami)) +if [ "$MyUID" ]; then myuid=$MyUID; elif [ $(id -u $(whoami) 2>/dev/null) ]; then myuid=$(id -u $(whoami) 2>/dev/null); elif [ "$(id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1)" ]; then myuid=$(id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1); fi if [ $myuid -gt 2147483646 ]; then baduid="|$myuid"; fi idB="euid|egid$baduid" sudovB="[01].[012345678].[0-9]+|1.9.[01234]|1.9.5p1" -mounted=`(mount -l || cat /proc/mounts || cat /proc/self/mounts) 2>/dev/null | grep "^/" | cut -d " " -f1 | tr '\n' '|'``cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}'` +mounted=$( (mount -l || cat /proc/mounts || cat /proc/self/mounts) 2>/dev/null | grep "^/" | cut -d " " -f1 | tr '\n' '|')$(cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}') if ! [ "$mounted" ]; then mounted="ImPoSSssSiBlEee"; fi #Don't let any blacklist to be empty mountG="swap|/cdrom|/floppy|/dev/shm" -notmounted=`cat /etc/fstab 2>/dev/null | grep "^/" | grep -Ev "$mountG" | awk '{print $1}' | grep -Ev "$mounted" | tr '\n' '|'`"ImPoSSssSiBlEee" +notmounted=$(cat /etc/fstab 2>/dev/null | grep "^/" | grep -Ev "$mountG" | awk '{print $1}' | grep -Ev "$mounted" | tr '\n' '|')"ImPoSSssSiBlEee" mountpermsB="\Wsuid|\Wuser|\Wexec" mountpermsG="nosuid|nouser|noexec" @@ -277,10 +296,10 @@ rootcommon="/init$|upstart-udev-bridge|udev|/getty|cron|apache2|java|tomcat|/vmt groupsB="\(root\)|\(shadow\)|\(admin\)|\(video\)|\(adm\)|\(wheel\)|\(auth\)" groupsVB="\(sudo\)|\(docker\)|\(lxd\)|\(disk\)|\(lxc\)" knw_grps='\(lpadmin\)|\(cdrom\)|\(plugdev\)|\(nogroup\)' #https://www.togaware.com/linux/survivor/Standard_Groups.html -mygroups=`groups 2>/dev/null | tr " " "|"` +mygroups=$(groups 2>/dev/null | tr " " "|") # Default Binaries List -sidG1="/abuild-sudo$|/accton$|/allocate$|/ARDAgent|/arping$|/atq$|/atrm$|/authpf$|/authpf-noip$|/authopen$|/batch$|/bbsuid$|/bsd-write$|/btsockstat$|/bwrap$|/cacaocsc$|/camel-lock-helper-1.2$|/ccreds_validate$|/cdrw$|/chage$|/check-foreground-console$|/chrome-sandbox$|/chsh$|/cons.saver$|/crontab$|/ct$|/cu$|/dbus-daemon-launch-helper$|/deallocate$|/desktop-create-kmenu$|/dma$|/dma-mbox-create$|/dmcrypt-get-device$|/doas$|/dotlockfile$|/dotlock.mailutils$|/dtaction$|/dtfile$|/eject$|/execabrt-action-install-debuginfo-to-abrt-cache$|/execdbus-daemon-launch-helper$|/execdma-mbox-create$|/execlockspool$|/execlogin_chpass$|/execlogin_lchpass$|/execlogin_passwd$|/execssh-keysign$|/execulog-helper$|/exim4|/expiry$|/fdformat$|/fstat$|/fusermount$|/fusermount3$" +sidG1="/abuild-sudo$|/accton$|/allocate$|/ARDAgent$|/arping$|/atq$|/atrm$|/authpf$|/authpf-noip$|/authopen$|/batch$|/bbsuid$|/bsd-write$|/btsockstat$|/bwrap$|/cacaocsc$|/camel-lock-helper-1.2$|/ccreds_validate$|/cdrw$|/chage$|/check-foreground-console$|/chrome-sandbox$|/chsh$|/cons.saver$|/crontab$|/ct$|/cu$|/dbus-daemon-launch-helper$|/deallocate$|/desktop-create-kmenu$|/dma$|/dma-mbox-create$|/dmcrypt-get-device$|/doas$|/dotlockfile$|/dotlock.mailutils$|/dtaction$|/dtfile$|/eject$|/execabrt-action-install-debuginfo-to-abrt-cache$|/execdbus-daemon-launch-helper$|/execdma-mbox-create$|/execlockspool$|/execlogin_chpass$|/execlogin_lchpass$|/execlogin_passwd$|/execssh-keysign$|/execulog-helper$|/exim4|/expiry$|/fdformat$|/fstat$|/fusermount$|/fusermount3$" sidG2="/gnome-pty-helper$|/glines$|/gnibbles$|/gnobots2$|/gnome-suspend$|/gnometris$|/gnomine$|/gnotski$|/gnotravex$|/gpasswd$|/gpg$|/gpio$|/gtali|/.hal-mtab-lock$|/helper$|/imapd$|/inndstart$|/kismet_cap_nrf_51822$|/kismet_cap_nxp_kw41z$|/kismet_cap_ti_cc_2531$|/kismet_cap_ti_cc_2540$|/kismet_cap_ubertooth_one$|/kismet_capture$|/kismet_cap_linux_bluetooth$|/kismet_cap_linux_wifi$|/kismet_cap_nrf_mousejack$|/ksu$|/list_devices$|/load_osxfuse$|/locate$|/lock$|/lockdev$|/lockfile$|/login_activ$|/login_crypto$|/login_radius$|/login_skey$|/login_snk$|/login_token$|/login_yubikey$|/lpc$|/lpd$|/lpd-port$|/lppasswd$|/lpq$|/lpr$|/lprm$|/lpset$|/lxc-user-nic$|/mahjongg$|/mail-lock$|/mailq$|/mail-touchlock$|/mail-unlock$|/mksnap_ffs$|/mlocate$|/mlock$|/mount$|/mount.cifs$|/mount.ecryptfs_private$|/mount.nfs$|/mount.nfs4$|/mount_osxfuse$|/mtr$|/mutt_dotlock$" sidG3="/ncsa_auth$|/netpr$|/netkit-rcp$|/netkit-rlogin$|/netkit-rsh$|/netreport$|/netstat$|/newgidmap$|/newtask$|/newuidmap$|/nvmmctl$|/opieinfo$|/opiepasswd$|/pam_auth$|/pam_extrausers_chkpwd$|/pam_timestamp_check$|/pamverifier$|/pfexec$|/ping$|/ping6$|/pmconfig$|/pmap$|/polkit-agent-helper-1$|/polkit-explicit-grant-helper$|/polkit-grant-helper$|/polkit-grant-helper-pam$|/polkit-read-auth-helper$|/polkit-resolve-exe-helper$|/polkit-revoke-helper$|/polkit-set-default-helper$|/postdrop$|/postqueue$|/poweroff$|/ppp$|/procmail$|/pstat$|/pt_chmod$|/pwdb_chkpwd$|/quota$|/rcmd|/remote.unknown$|/rlogin$|/rmformat$|/rnews$|/run-mailcap$|/sacadm$|/same-gnome$|screen.real$|/security_authtrampoline$|/sendmail.sendmail$|/shutdown$|/skeyaudit$|/skeyinfo$|/skeyinit$|/sliplogin|/slocate$|/smbmnt$|/smbumount$|/smpatch$|/smtpctl$|/sperl5.8.8$|/ssh-agent$|/ssh-keysign$|/staprun$|/startinnfeed$|/stclient$|/su$|/suexec$|/sys-suspend$|/sysstat$|/systat$" sidG4="/telnetlogin$|/timedc$|/tip$|/top$|/traceroute6$|/traceroute6.iputils$|/trpt$|/tsoldtlabel$|/tsoljdslabel$|/tsolxagent$|/ufsdump$|/ufsrestore$|/ulog-helper$|/umount.cifs$|/umount.nfs$|/umount.nfs4$|/unix_chkpwd$|/uptime$|/userhelper$|/userisdnctl$|/usernetctl$|/utempter$|/utmp_update$|/uucico$|/uuglist$|/uuidd$|/uuname$|/uusched$|/uustat$|/uux$|/uuxqt$|/VBoxHeadless$|/VBoxNetAdpCtl$|/VBoxNetDHCP$|/VBoxNetNAT$|/VBoxSDL$|/VBoxVolInfo$|/VirtualBoxVM$|/vmstat$|/vmware-authd$|/vmware-user-suid-wrapper$|/vmware-vmx$|/vmware-vmx-debug$|/vmware-vmx-stats$|/vncserver-x11$|/volrmmount$|/w$|/wall$|/whodo$|/write$|/X$|/Xorg.wrap$|/Xsun$|/Xvnc$|/yppasswd$" @@ -340,16 +359,27 @@ sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ /xorg$%Xorg_1.19_to_1.20.x\(CVE_2018-14665\)/xorg-x11-server<=1.20.3/AIX_7.1_\(6.x_to_7.x_should_be_vulnerable\)_X11.base.rte<7.1.5.32_and_\ /xterm$%Solaris_5.5.1_X11R6.3\(05-1997\)/Debian_xterm_version_222-1etch2\(01-2009\)" #To update sidVB: curl https://github.com/GTFOBins/GTFOBins.github.io/tree/master/_gtfobins 2>/dev/null | grep 'href="/GTFOBins/' | grep '.md">' | awk -F 'title="' '{print $2}' | cut -d '"' -f1 | cut -d "." -f1 | sed -e 's,^,/,' | sed -e 's,$,\$,' | tr '\n' '|' -sidVB='/apt-get$|/apt$|/ar$|/aria2c$|/arp$|/ash$|/at$|/atobm$|/awk$|/base32$|/base64$|/basenc$|/bash$|/bpftrace$|/bridge$|/bundler$|/busctl$|/busybox$|/byebug$|/cancel$|/capsh$|/cat$|/certbot$|/check_by_ssh$|/check_cups$|/check_log$|/check_memory$|/check_raid$|/check_ssl_cert$|/check_statusfile$|/chmod$|/chown$|/chroot$|/cobc$|/column$|/comm$|/composer$|/cowsay$|/cowthink$|/cp$|/cpan$|/cpio$|/cpulimit$|/crash$|/crontab$|/csh$|/csplit$|/csvtool$|/cupsfilter$|/curl$|/cut$|/dash$|/date$|/dd$|/dialog$|/diff$|/dig$|/dmesg$|/dmsetup$|/dnf$|/docker$|/dpkg$|/dvips$|/easy_install$|/eb$|/ed$|/emacs$|/env$|/eqn$|/ex$|/exiftool$|/expand$|/expect$|/facter$|/file$|/find$|/finger$|/flock$|/fmt$|/fold$|/ftp$|/gawk$|/gcc$|/gdb$|/gem$|/genisoimage$|/ghc$|/ghci$|/gimp$|/git$|/grep$|/gtester$|/gzip$|/hd$|/head$|/hexdump$|/highlight$|/hping3$|/iconv$|/iftop$|/install$|/ionice$|/ip$|/irb$|/jjs$|/join$|/journalctl$|/jq$|/jrunscript$|/ksh$|/ksshell$' -sidVB2='/latex$|/ld$|/ldconfig$|/less$|/logsave$|/look$|/ltrace$|/lua$|/lualatex$|/luatex$|/lwp-download$|/lwp-request$|/mail$|/make$|/man$|/mawk$|/more$|/mount$|/mtr$|/mv$|/mysql$|/nano$|/nawk$|/nc$|/nice$|/nl$|/nmap$|/node$|/nohup$|/npm$|/nroff$|/nsenter$|/octave$|/od$|/openssl$|/openvpn$|/openvt$|/paste$|/pdb$|/pdflatex$|/pdftex$|/perl$|/pg$|/php$|/pic$|/pico$|/pip$|/pkexec$|/pkg$|/pr$|/pry$|/psql$|/puppet$|/python$|/rake$|/readelf$|/red$|/redcarpet$|/restic$|/rev$|/rlogin$|/rlwrap$|/rpm$|/rpmquery$|/rsync$|/ruby$|/run-mailcap$|/run-parts$|/rview$|/rvim$|/scp$|/screen$|/script$|/sed$|/service$|/setarch$|/sftp$|/sg$|/shuf$|/slsh$|/smbclient$|/snap$|/socat$|/soelim$|/sort$|/split$|/sqlite3$|/ss$|/ssh-keygen$|/ssh-keyscan$|/ssh$|/start-stop-daemon$|/stdbuf$|/strace$|/strings$|/su$|/sysctl$|/systemctl$|/tac$|/tail$|/tar$|/taskset$|/tbl$|/tclsh$|/tcpdump$|/tee$|/telnet$|/tex$|/tftp$|/time$|/timeout$|/tmux$|/top$|/troff$|/ul$|/unexpand$|/uniq$|/unshare$|/update-alternatives$|/uudecode$|/uuencode$|/valgrind$|/vi$|/view$|/vigr$|/vim$|/vimdiff$|/vipw$|/virsh$|/watch$|/wc$|/wget$|/whois$|/wish$|/xargs$|/xelatex$|/xetex$|/xmodmap$|/xxd$|/xz$|/yelp$|/yum$|/zip$|/zsh$|/zsoelim$|/zypper$' +sidVB='peass{SUIDVB1_HERE}' +sidVB2='peass{SUIDVB2_HERE}' cfuncs='file|free|main|more|read|split|write' -sudoVB=" \*|env_keep\+=LD_PRELOAD|apt-get$|apt$|aria2c$|arp$|ash$|awk$|base64$|bash$|busybox$|cat$|chmod$|chown$|cp$|cpan$|cpulimit$|crontab$|csh$|curl$|cut$|dash$|date$|dd$|diff$|dmesg$|dmsetup$|dnf$|docker$|dpkg$|easy_install$|ed$|emacs$|env$|expand$|expect$|facter$|file$|find$|flock$|fmt$|fold$|ftp$|gdb$|gimp$|git$|grep$|head$|ionice$|ip$|irb$|jjs$|journalctl$|jq$|jrunscript$|ksh$|ld.so$|less$|logsave$|ltrace$|lua$|mail$|make$|man$|more$|mount$|mtr$|mv$|mysql$|nano$|nc$|nice$|nl$|nmap$|node$|od$|openssl$|perl$|pg$|php$|pic$|pico$|pip$|puppet$|python$|readelf$|red$|rlwrap$|rpm$|rpmquery$|rsync$|ruby$|run-mailcap$|run-parts$|rvim$|scp$|screen$|script$|sed$|service$|setarch$|sftp$|smbclient$|socat$|sort$|sqlite3$|ssh$|start-stop-daemon$|stdbuf$|strace$|systemctl$|tail$|tar$|taskset$|tclsh$|tcpdump$|tee$|telnet$|tftp$|time$|timeout$|tmux$|ul$|unexpand$|uniq$|unshare$|vi$|vim$|watch$|wget$|wish$|xargs$|xxd$|yum$|zip$|zsh$|zypper$" +sudoVB1=" \*|env_keep\+=LD_PRELOAD|peass{SUDOVB1_HERE}" +sudoVB2="peass{SUDOVB2_HERE}" sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" sudoG="NOEXEC" -sudocapsB="/apt-get|/apt|/aria2c|/arp|/ash|/awk|/base64|/bash|/busybox|/cat|/chmod|/chown|/cp|/cpan|/cpulimit|/crontab|/csh|/curl|/cut|/dash|/date|/dd|/diff|/dmesg|/dmsetup|/dnf|/docker|/dpkg|/easy_install|/ed|/emacs|/env|/expand|/expect|/facter|/file|/find|/flock|/fmt|/fold|/ftp|/gdb|/gimp|/git|/grep|/head|/ionice|/ip|/irb|/jjs|/journalctl|/jq|/jrunscript|/ksh|/ld.so|/less|/logsave|/ltrace|/lua|/mail|/make|/man|/more|/mount|/mtr|/mv|/mysql|/nano|/nc|/nice|/nl|/nmap|/node|/od|/openssl|/perl|/pg|/php|/pic|/pico|/pip|/puppet|/python|/readelf|/red|/rlwrap|/rpm|/rpmquery|/rsync|/ruby|/run-mailcap|/run-parts|/rvim|/scp|/screen|/script|/sed|/service|/setarch|/sftp|/smbclient|/socat|/sort|/sqlite3|/ssh|/start-stop-daemon|/stdbuf|/strace|/systemctl|/tail|/tar|/taskset|/tclsh|/tcpdump|/tee|/telnet|/tftp|/time|/timeout|/tmux|/ul|/unexpand|/uniq|/unshare|/vi|/vim|/watch|/wget|/wish|/xargs|/xxd|/yum|/zip|/zsh|/zypper" -capsB="=ep|cap_chown|cap_dac_override|cap_dac_read_search|cap_setuid|sys_admin|sys_ptrace|sys_module" +capsVB="cap_sys_admin:mount|python \ +cap_sys_ptrace:python \ +cap_sys_module:kmod|python \ +cap_dac_override:python|vim \ +cap_chown:chown|python \ +cap_former:chown|python \ +cap_setuid:peass{CAP_SETUID_HERE} \ +cap_setgid:peass{CAP_SETGID_HERE} \ +cap_net_raw:python|tcpdump" + + +capsB="=ep|cap_chown|cap_former|cap_setfcap|cap_dac_override|cap_dac_read_search|cap_setuid|cap_setgid|cap_kill|cap_net_bind_service|cap_net_raw|cap_net_admin|cap_sys_admin|cap_sys_ptrace|cap_sys_module" containercapsB="sys_admin|sys_ptrace|sys_module|dac_read_search|dac_override" OLDPATH=$PATH @@ -361,7 +391,7 @@ ADDPATH=":/usr/local/sbin\ :/bin" spath=":$PATH" for P in $ADDPATH; do - if [ ! -z "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi + if [ "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi done # test if sed supports -E or -r @@ -377,27 +407,27 @@ if [ $? -ne 0 ] ; then fi writeB="00-header|10-help-text|50-motd-news|80-esm|91-release-upgrade|\.sh$|\./|/authorized_keys|/bin/|/boot/|/etc/apache2/apache2.conf|/etc/apache2/httpd.conf|/etc/hosts.allow|/etc/hosts.deny|/etc/httpd/conf/httpd.conf|/etc/httpd/httpd.conf|/etc/inetd.conf|/etc/incron.conf|/etc/login.defs|/etc/logrotate.d/|/etc/modprobe.d/|/etc/pam.d/|/etc/php.*/fpm/pool.d/|/etc/php/.*/fpm/pool.d/|/etc/rsyslog.d/|/etc/skel/|/etc/sysconfig/network-scripts/|/etc/sysctl.conf|/etc/sysctl.d/|/etc/uwsgi/apps-enabled/|/etc/xinetd.conf|/etc/xinetd.d/|/etc/|/home//|/lib/|/log/|/mnt/|/root|/sys/|/usr/bin|/usr/games|/usr/lib|/usr/local/bin|/usr/local/games|/usr/local/sbin|/usr/sbin|/sbin/|/var/log/|\.timer$|\.service$|.socket$" -writeVB="/etc/anacrontab|/etc/bash.bashrc|/etc/bash_completion|/etc/bash_completion.d/|/etc/cron|/etc/environment|/etc/environment.d/|/etc/group|/etc/incron.d/|/etc/init|/etc/ld.so.conf.d/|/etc/master.passwd|/etc/passwd|/etc/profile.d/|/etc/profile|/etc/rc.d|/etc/shadow|/etc/skey/|/etc/sudoers|/etc/sudoers.d/|/etc/supervisor/conf.d/|/etc/supervisor/supervisord.conf|/etc/systemd|/etc/sys|/lib/systemd|/etc/update-motd.d/|/root/.ssh/|/run/systemd|/usr/lib/systemd|/systemd/system|/var/db/yubikey/|/var/spool/anacron|/var/spool/cron/crontabs|"`echo $PATH 2>/dev/null | sed 's/:\.:/:/g' | sed 's/:\.$//g' | sed 's/^\.://g' | sed 's/:/$|^/g'` #Add Path but remove simple dot in PATH +writeVB="/etc/anacrontab|/etc/bash.bashrc|/etc/bash_completion|/etc/bash_completion.d/|/etc/cron|/etc/environment|/etc/environment.d/|/etc/group|/etc/incron.d/|/etc/init|/etc/ld.so.conf.d/|/etc/master.passwd|/etc/passwd|/etc/profile.d/|/etc/profile|/etc/rc.d|/etc/shadow|/etc/skey/|/etc/sudoers|/etc/sudoers.d/|/etc/supervisor/conf.d/|/etc/supervisor/supervisord.conf|/etc/systemd|/etc/sys|/lib/systemd|/etc/update-motd.d/|/root/.ssh/|/run/systemd|/usr/lib/cron/tabs/|/usr/lib/systemd|/systemd/system|/var/db/yubikey/|/var/spool/anacron|/var/spool/cron/crontabs|"$(echo $PATH 2>/dev/null | sed 's/:\.:/:/g' | sed 's/:\.$//g' | sed 's/^\.://g' | sed 's/:/$|^/g') #Add Path but remove simple dot in PATH if [ "$MACPEAS" ]; then sh_usrs="ImPoSSssSiBlEee" nosh_usrs="ImPoSSssSiBlEee" dscl . list /Users | while read uname; do - ushell=`dscl . -read "/Users/$uname" UserShell | cut -d " " -f2` - if [ "`grep \"$ushell\" /etc/shells`" ]; then sh_usrs="$sh_usrs|$uname"; else nosh_usrs="$nosh_usrs|$uname"; fi + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q \"$ushell\" /etc/shells; then sh_usrs="$sh_usrs|$uname"; else nosh_usrs="$nosh_usrs|$uname"; fi done else - sh_usrs=`cat /etc/passwd 2>/dev/null | grep -v "^root:" | grep -i "sh$" | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/' | sed 's/|sys|/|sys[\\\s:]|^sys$|/' | sed 's/|daemon|/|daemon[\\\s:]|^daemon$|/'`"ImPoSSssSiBlEee" #Modified bin, sys and daemon so they are not colored everywhere - nosh_usrs=`cat /etc/passwd 2>/dev/null | grep -i -v "sh$" | sort | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/'`"ImPoSSssSiBlEee" + sh_usrs=$(cat /etc/passwd 2>/dev/null | grep -v "^root:" | grep -i "sh$" | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/' | sed 's/|sys|/|sys[\\\s:]|^sys$|/' | sed 's/|daemon|/|daemon[\\\s:]|^daemon$|/')"ImPoSSssSiBlEee" #Modified bin, sys and daemon so they are not colored everywhere + nosh_usrs=$(cat /etc/passwd 2>/dev/null | grep -i -v "sh$" | sort | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/')"ImPoSSssSiBlEee" fi -knw_usrs='daemon\W|^daemon$|message\+|syslog|www|www-data|mail|noboby|Debian\-\+|rtkit|systemd\+' -USER=`whoami 2>/dev/null || echo "UserUnknown"` +knw_usrs='_amavisd|_analyticsd|_appinstalld|_appleevents|_applepay|_appowner|_appserver|_appstore|_ard|_assetcache|_astris|_atsserver|_avbdeviced|_calendar|_captiveagent|_ces|_clamav|_cmiodalassistants|_coreaudiod|_coremediaiod|_coreml|_ctkd|_cvmsroot|_cvs|_cyrus|_datadetectors|_demod|_devdocs|_devicemgr|_diskimagesiod|_displaypolicyd|_distnote|_dovecot|_dovenull|_dpaudio|_driverkit|_eppc|_findmydevice|_fpsd|_ftp|_fud|_gamecontrollerd|_geod|_hidd|_iconservices|_installassistant|_installcoordinationd|_installer|_jabber|_kadmin_admin|_kadmin_changepw|_knowledgegraphd|_krb_anonymous|_krb_changepw|_krb_kadmin|_krb_kerberos|_krb_krbtgt|_krbfast|_krbtgt|_launchservicesd|_lda|_locationd|_logd|_lp|_mailman|_mbsetupuser|_mcxalr|_mdnsresponder|_mobileasset|_mysql|_nearbyd|_netbios|_netstatistics|_networkd|_nsurlsessiond|_nsurlstoraged|_oahd|_ondemand|_postfix|_postgres|_qtss|_reportmemoryexception|_rmd|_sandbox|_screensaver|_scsd|_securityagent|_softwareupdate|_spotlight|_sshd|_svn|_taskgated|_teamsserver|_timed|_timezone|_tokend|_trustd|_trustevaluationagent|_unknown|_update_sharing|_usbmuxd|_uucp|_warmd|_webauthserver|_windowserver|_www|_wwwproxy|_xserverdocs|daemon\W|^daemon$|message\+|syslog|www|www-data|mail|noboby|Debian\-\+|rtkit|systemd\+' +USER=$(whoami 2>/dev/null || echo "UserUnknown") if [ ! "$HOME" ]; then if [ -d "/Users/$USER" ]; then HOME="/Users/$USER"; #Mac home else HOME="/home/$USER"; fi fi -Groups="ImPoSSssSiBlEee"`groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|'` +Groups="ImPoSSssSiBlEee"$(groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|') #This variables are dived in several different ones because NetBSD required it peass{VARIABLES} @@ -426,19 +456,19 @@ PASSTRY="2000" #Default num of passwds to try (all by default) if [ "$PORTS" ] || [ "$DISCOVERY" ] || [ "$IP" ]; then MAXPATH_FIND_W="1"; fi #If Network reduce the time on this SEDOVERFLOW=true -for grp in `groups $USER 2>/dev/null | cut -d ":" -f2`; do +for grp in $(groups $USER 2>/dev/null | cut -d ":" -f2); do wgroups="$wgroups -group $grp -or " done -wgroups="`echo $wgroups | sed -e 's/ -or$//'`" +wgroups="$(echo $wgroups | sed -e 's/ -or$//')" while $SEDOVERFLOW; do #WF=`find /dev /srv /proc /home /media /sys /lost+found /run /etc /root /var /tmp /mnt /boot /opt -type d -maxdepth $MAXPATH_FIND_W -writable -or -user $USER 2>/dev/null | sort` #if [ "$MACPEAS" ]; then - WF=`find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | sort` #OpenBSD find command doesn't have "-writable" option + WF=$(find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | sort) #OpenBSD find command doesn't have "-writable" option #else # WF=`find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" -and '(' -writable -or -user $USER ')' 2>/dev/null | sort` #fi - Wfolders=`printf "%s" "$WF" | tr '\n' '|'`"|[^\*][^\ ]*\ \*" - Wfolder="`printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1`" + Wfolders=$(printf "%s" "$WF" | tr '\n' '|')"|[^\*][^\ ]*\ \*" + Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" printf "test\ntest\ntest\ntest"| sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" >/dev/null 2>&1 if [ $? -eq 0 ]; then SEDOVERFLOW=false @@ -450,17 +480,18 @@ while $SEDOVERFLOW; do fi done + notExtensions="\.tif$|\.tiff$|\.gif$|\.jpeg$|\.jpg|\.jif$|\.jfif$|\.jp2$|\.jpx$|\.j2k$|\.j2c$|\.fpx$|\.pcd$|\.png$|\.pdf$|\.flv$|\.mp4$|\.mp3$|\.gifv$|\.avi$|\.mov$|\.mpeg$|\.wav$|\.doc$|\.docx$|\.xls$|\.xlsx$|\.svg$" -TIMEOUT="`command -v timeout 2>/dev/null`" -STRACE="`command -v strace 2>/dev/null`" -STRINGS="`command -v strings 2>/dev/null`" +TIMEOUT="$(command -v timeout 2>/dev/null)" +STRACE="$(command -v strace 2>/dev/null)" +STRINGS="$(command -v strings 2>/dev/null)" shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/power_report.sh|/setuporamysql.sh|/setup-nsssysinit.sh|/readlink_f.sh|/rescan-scsi-bus.sh|/start_bluetoothd.sh|/start_bluetoothlog.sh|/testacg.sh|/testlahf.sh|/unix-lpr.sh|/url_handler.sh|/write_gpt.sh" notBackup="/tdbbackup$|/db_hotbackup$" -cronjobsG=".placeholder|0anacron|0hourly|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-notifier-common|upstart" +cronjobsG=".placeholder|0anacron|0hourly|110.clean-tmps|130.clean-msgs|140.clean-rwho|199.clean-fax|199.rotate-fax|200.accounting|310.accounting|400.status-disks|420.status-network|430.status-rwho|999.local|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-notifier-common|upstart|" cronjobsB="centreon" processesVB="jdwp|tmux |screen |--inspect|--remote-debugging-port" @@ -496,7 +527,7 @@ INT_HIDDEN_FILES="peass{INT_HIDDEN_FILES}" # --) ps working good # --) Network binaries -if [ `ps auxwww 2>/dev/null | wc -l 2>/dev/null` -lt 8 ]; then +if [ "$(ps auxwww 2>/dev/null | wc -l 2>/dev/null)" -lt 8 ]; then NOUSEPS="1" fi @@ -539,7 +570,7 @@ echo_not_found (){ } warn_exec(){ - $* || echo_not_found $1 + $* 2>/dev/null || echo_not_found $1 } echo_no (){ @@ -548,46 +579,46 @@ echo_no (){ print_title(){ if [ "$VERBOSE" ]; then - END_T2_TIME=`date +%s 2>/dev/null` + END_T2_TIME=$(date +%s 2>/dev/null) if [ "$START_T2_TIME" ]; then TOTAL_T2_TIME=$(($END_T2_TIME - $START_T2_TIME)) printf $DG"This check took $TOTAL_T2_TIME seconds\n"$NC fi - END_T1_TIME=`date +%s 2>/dev/null` + END_T1_TIME=$(date +%s 2>/dev/null) if [ "$START_T1_TIME" ]; then TOTAL_T1_TIME=$(($END_T1_TIME - $START_T1_TIME)) printf $DG"The total section execution took $TOTAL_T1_TIME seconds\n"$NC echo "" fi - START_T1_TIME=`date +%s 2>/dev/null` + START_T1_TIME=$(date +%s 2>/dev/null) fi - printf ${BLUE}"════════════════════════════════════╣ "$GREEN"$1"${BLUE}" ╠════════════════════════════════════\n"$NC + printf ${BLUE}"════════════════════════════════════╣ $GREEN$1${BLUE} ╠════════════════════════════════════\n"$NC } print_2title(){ if [ "$VERBOSE" ]; then - END_T2_TIME=`date +%s 2>/dev/null` + END_T2_TIME=$(date +%s 2>/dev/null) if [ "$START_T2_TIME" ]; then TOTAL_T2_TIME=$(($END_T2_TIME - $START_T2_TIME)) printf $DG"This check took $TOTAL_T2_TIME seconds\n"$NC echo "" fi - START_T2_TIME=`date +%s 2>/dev/null` + START_T2_TIME=$(date +%s 2>/dev/null) fi - printf ${BLUE}"╔══════════╣ "$GREEN"$1\n"$NC #There are 10 "═" + printf ${BLUE}"╔══════════╣ $GREEN$1\n"$NC #There are 10 "═" } print_3title(){ - printf ${BLUE}"══╣ "$GREEN"$1\n"$NC #There are 2 "═" + printf ${BLUE}"══╣ $GREEN$1\n"$NC #There are 2 "═" } print_list(){ - printf ${BLUE}"═╣ "$GREEN"$1"$NC #There is 1 "═" + printf ${BLUE}"═╣ $GREEN$1"$NC #There is 1 "═" } print_info(){ @@ -596,9 +627,9 @@ print_info(){ print_ps (){ (ls -d /proc/*/ 2>/dev/null | while read f; do - CMDLINE=`cat $f/cmdline 2>/dev/null | grep -av "seds,"`; #Delete my own sed processess + CMDLINE=$(cat $f/cmdline 2>/dev/null | grep -av "seds,"); #Delete my own sed processess if [ "$CMDLINE" ]; - then USER2=ls -ld $f | awk '{print $3}'; PID=`echo $f | cut -d "/" -f3`; + then var USER2=ls -ld $f | awk '{print $3}'; PID=$(echo $f | cut -d "/" -f3); printf " %-13s %-8s %s\n" "$USER2" "$PID" "$CMDLINE"; fi; done) 2>/dev/null | sort -r @@ -607,7 +638,7 @@ print_ps (){ su_try_pwd (){ BFUSER=$1 PASSWORDTRY=$2 - trysu=`echo "$PASSWORDTRY" | timeout 1 su $BFUSER -c whoami 2>/dev/null` + trysu=$(echo "$PASSWORDTRY" | timeout 1 su $BFUSER -c whoami 2>/dev/null) if [ "$trysu" ]; then echo " You can login as $BFUSER using password: $PASSWORDTRY" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi @@ -616,32 +647,38 @@ su_try_pwd (){ su_brute_user_num (){ BFUSER=$1 TRIES=$2 - su_try_pwd $BFUSER "" & #Try without password - su_try_pwd $BFUSER $BFUSER & #Try username as password - su_try_pwd $BFUSER `echo $BFUSER | rev 2>/dev/null` & #Try reverse username as password + su_try_pwd "$BFUSER" "" & #Try without password + su_try_pwd "$BFUSER" "$BFUSER" & #Try username as password + su_try_pwd "$BFUSER" "$(echo $BFUSER | rev 2>/dev/null)" & #Try reverse username as password if [ "$PASSWORD" ]; then - su_try_pwd $BFUSER $PASSWORD & #Try given password + su_try_pwd "$BFUSER" "$PASSWORD" & #Try given password fi - for i in `seq $TRIES`; do - su_try_pwd $BFUSER `echo $top2000pwds | cut -d " " -f $i` & #Try TOP TRIES of passwords (by default 2000) + for i in $(seq "$TRIES"); do + su_try_pwd "$BFUSER" "$(echo \"$top2000pwds\" | cut -d ' ' -f $i)" & #Try TOP TRIES of passwords (by default 2000) sleep 0.007 # To not overload the system done wait } check_if_su_brute(){ - error=$(echo "" | timeout 1 su `whoami` -c whoami 2>&1); - if [ ! "`echo $error | grep "must be run from a terminal"`" ]; then + error=$(echo "" | timeout 1 su $(whoami) -c whoami 2>&1); + if ! echo $error | grep -q "must be run from a terminal"; then echo "1" fi } eval_bckgrd(){ - CMD_PARAM="$1" eval "$1" & CONT_THREADS=$(($CONT_THREADS+1)); if [ "$(($CONT_THREADS%$THREADS))" -eq "0" ]; then wait; fi } +macosNotSigned(){ + for filename in $1/*; do + if codesign -vv -d \"$filename\" 2>&1 | grep -q 'not signed'; then + echo "$filename isn't signed" | sed -${E} "s,.*,${SED_RED}," + fi + done +} ########################################### #---------) Internet functions (----------# @@ -705,7 +742,7 @@ tcp_recon (){ for port in $PORTS; do for j in $(seq 1 254) do - ($NC_SCAN $IP3.$j $port 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + ($NC_SCAN "$IP3"."$j" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & done wait done @@ -718,7 +755,7 @@ tcp_port_scan (){ print_title "Network Port Scanning" IP=$1 PORTS="$2" - PORTS="`echo \"$PORTS\" | tr ',' ' '`" + PORTS="$(echo \"$PORTS\" | tr ',' ' ')" if [ -z "$PORTS" ]; then printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: DEFAULT (nmap top 1000)" $NC | tr '\n' " " @@ -730,7 +767,7 @@ tcp_port_scan (){ fi for port in $PORTS; do - ($NC_SCAN $IP $port 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + ($NC_SCAN "$IP" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & done wait } @@ -742,10 +779,10 @@ discover_network (){ print_title "Network Discovery" DISCOVERY=$1 - IP=$(echo $DISCOVERY | cut -d "/" -f 1) - NETMASK=$(echo $DISCOVERY | cut -d "/" -f 2) + IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) + NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) - if [ -z $IP ] || [ -z $NETMASK ]; then + if [ -z "$IP" ] || [ -z "$NETMASK" ]; then printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24"$NC; printf ${BLUE}"$HELP"$NC; exit 0 @@ -753,20 +790,20 @@ discover_network (){ #Using fping if possible if [ "$FPING" ]; then - $FPING -a -q -g $DISCOVERY | sed -${E} "s,.*,${SED_RED}," + $FPING -a -q -g "$DISCOVERY" | sed -${E} "s,.*,${SED_RED}," #Loop using ping else - if [ $NETMASK -eq "24" ]; then + if [ "$NETMASK" -eq "24" ]; then printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n$NC" icmp_recon $IP - elif [ $NETMASK -eq "16" ]; then + elif [ "$NETMASK" -eq "16" ]; then printf ${YELLOW}"[+]$GREEN Netmask /16 detected, starting...\n$NC" for i in $(seq 1 254) do - NEWIP=$(echo $IP | cut -d "." -f 1,2).$i.1 - icmp_recon $NEWIP + NEWIP=$(echo "$IP" | cut -d "." -f 1,2).$i.1 + icmp_recon "$NEWIP" done else printf $RED"[-] Err: Sorry, only Netmask /24 and /16 supported in ping mode. Netmask detected: $NETMASK"$NC; @@ -783,8 +820,8 @@ discovery_port_scan (){ DISCOVERY=$1 MYPORTS=$2 - IP=$(echo $DISCOVERY | cut -d "/" -f 1) - NETMASK=$(echo $DISCOVERY | cut -d "/" -f 2) + IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) + NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) echo "Scanning: $DISCOVERY" if [ -z "$IP" ] || [ -z "$NETMASK" ] || [ "$IP" = "$NETMASK" ]; then @@ -796,19 +833,19 @@ discovery_port_scan (){ exit 0 fi - PORTS="22 80 443 445 3389 `echo \"$MYPORTS\" | tr \",\" \" \"`" - PORTS=`echo "$PORTS" | tr " " "\n" | sort -u` #Delete repetitions + PORTS="22 80 443 445 3389 $(echo \"$MYPORTS\" | tr \",\" \" \")" + PORTS=$(echo "$PORTS" | tr " " "\n" | sort -u) #Delete repetitions if [ "$NETMASK" -eq "24" ]; then printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n" $NC - tcp_recon $IP "$PORTS" + tcp_recon "$IP" "$PORTS" elif [ "$NETMASK" -eq "16" ]; then printf ${YELLOW}"[+]$GREEN Netmask /16 detected, starting...\n" $NC for i in $(seq 0 255) do - NEWIP=$(echo $IP | cut -d "." -f 1,2).$i.1 - tcp_recon $NEWIP "$PORTS" + NEWIP=$(echo "$IP" | cut -d "." -f 1,2).$i.1 + tcp_recon "$NEWIP" "$PORTS" done else printf $RED"[-] Err: Sorry, only netmask /24 and /16 are supported in port discovery mode. Netmask detected: $NETMASK\n"$NC; @@ -835,13 +872,13 @@ fi containerCheck() { inContainer="" - containerType="`echo_no`" + containerType="$(echo_no)" # Are we inside docker? if [ -f "/.dockerenv" ] || grep "/docker/" /proc/1/cgroup -qa 2>/dev/null || grep -qai docker /proc/self/cgroup 2>/dev/null || - [ "`find / -maxdepth 3 -name \"*dockerenv*\" -exec ls -la {} \; 2>/dev/null`" ] ; then + [ "$(find / -maxdepth 3 -name \"*dockerenv*\" -exec ls -la {} \; 2>/dev/null)" ] ; then inContainer="1" containerType="docker" @@ -877,7 +914,7 @@ containerCheck() { if [ -z "$inContainer" ]; then if grep -a 'container=' /proc/1/environ 2>/dev/null; then inContainer="1" - containerType="`grep -a 'container=' /proc/1/environ | cut -d= -f2`" + containerType="$(grep -a 'container=' /proc/1/environ | cut -d= -f2)" fi fi } @@ -897,26 +934,26 @@ checkDockerRootless() { } enumerateDockerSockets() { - dockerVersion="`echo_not_found`" + dockerVersion="$(echo_not_found)" if ! [ "$SEARCHED_DOCKER_SOCKETS" ]; then SEARCHED_DOCKER_SOCKETS="1" - for dock_sock in `find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" 2>/dev/null`; do + for dock_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" 2>/dev/null); do if ! [ "$IAMROOT" ] && [ -w "$dock_sock" ]; then echo "You have write permissions over Docker socket $dock_sock" | sed -${E} "s,$dock_sock,${SED_RED_YELLOW},g" echo "Docker enummeration:" docker_enumerated="" if [ "$(command -v curl)" ]; then - sockInfoResponse="`curl -s --unix-socket \"$dockerSockPath\" http://localhost/info`" + sockInfoResponse="$(curl -s --unix-socket \"$dock_sock\" http://localhost/info)" dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'ServerVersion' | cut -d'"' -f 4) echo $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' if [ "$sockInfoResponse" ]; then docker_enumerated="1"; fi fi - if [ "$(command -v docker)" ] and ![ "$docker_enumerated" ]; then - sockInfoResponse="`docker info`" + if [ "$(command -v docker)" ] && ! [ "$docker_enumerated" ]; then + sockInfoResponse="$(docker info)" dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'Server Version' | cut -d' ' -f 4) - printf $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' + printf "$sockInfoResponse" | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' fi else @@ -927,28 +964,28 @@ enumerateDockerSockets() { } checkDockerVersionExploits() { - if [ "`echo \"$dockerVersion\" | grep -i \"not found\"`" ]; then - VULN_CVE_2019_13139="`echo_not_found`" - VULN_CVE_2019_5736="`echo_not_found`" + if echo \"$dockerVersion\" | grep -iq \"not found\"; then + VULN_CVE_2019_13139="$(echo_not_found)" + VULN_CVE_2019_5736="$(echo_not_found)" return fi - VULN_CVE_2019_13139="`echo_no`" - if [ "`echo \"$dockerVersion\" | sed 's,\.,,g'`" -lt "1895" ]; then + VULN_CVE_2019_13139="$(echo_no)" + if [ "$(echo \"$dockerVersion\" | sed 's,\.,,g')" -lt "1895" ]; then VULN_CVE_2019_13139="Yes" fi - VULN_CVE_2019_5736="`echo_no`" - if [ "`echo \"$dockerVersion\" | sed 's,\.,,g'`" -lt "1893" ]; then + VULN_CVE_2019_5736="$(echo_no)" + if [ "$(echo \"$dockerVersion\" | sed 's,\.,,g')" -lt "1893" ]; then VULN_CVE_2019_5736="Yes" fi } checkContainerExploits() { - VULN_CVE_2019_5021="`echo_no`" + VULN_CVE_2019_5021="$(echo_no)" if [ -f "/etc/alpine-release" ]; then alpineVersion=$(cat /etc/alpine-release) - if [ "`echo \"$alpineVersion\" | sed 's,\.,,g'`" -ge "330" ] && [ "`echo \"$alpineVersion\" | sed 's,\.,,g'`" -le "360" ]; then + if [ "$(echo \"$alpineVersion\" | sed 's,\.,,g')" -ge "330" ] && [ "$(echo \"$alpineVersion\" | sed 's,\.,,g')" -le "360" ]; then VULN_CVE_2019_5021="Yes" fi fi @@ -963,25 +1000,25 @@ print_title "Basic information" printf $LG"OS: "$NC (cat /proc/version || uname -a ) 2>/dev/null | sed -${E} "s,$kernelDCW_Ubuntu_Precise_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_5,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_6,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Xenial,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel7,${SED_RED_YELLOW}," | sed -${E} "s,$kernelB,${SED_RED}," printf $LG"User & Groups: "$NC -(id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$idB,${SED_RED},g" +(id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$idB,${SED_RED},g" printf $LG"Hostname: "$NC hostname 2>/dev/null printf $LG"Writable folder: "$NC; echo $Wfolder if [ "$DISCOVER_BAN_GOOD" ]; then - printf ${YELLOW}"[+] $DISCOVER_BAN_GOOD\n"$NC + printf $YELLOW"[+] $DISCOVER_BAN_GOOD\n$NC" else - printf $RED"[-] $DISCOVER_BAN_BAD\n"$NC + printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" fi if [ "$SCAN_BAN_GOOD" ]; then - printf ${YELLOW}"[+] $SCAN_BAN_GOOD\n"$NC + printf $YELLOW"[+] $SCAN_BAN_GOOD\n$NC" else - printf $RED"[-] $SCAN_BAN_BAD\n"$NC + printf $RED"[-] $SCAN_BAN_BAD\n$NC" fi -if [ "`command -v nmap 2>/dev/null`" ];then +if [ "$(command -v nmap 2>/dev/null)" ];then NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discover & port scanning, you should use it yourself" - printf ${YELLOW}"[+] $NMAP_GOOD\n"$NC + printf $YELLOW"[+] $NMAP_GOOD\n$NC" fi echo "" echo "" @@ -991,7 +1028,7 @@ echo "" ########################################### if [ "$PORTS" ]; then if [ "$SCAN_BAN_GOOD" ]; then - if [ "`echo -n $PORTS | sed 's,[0-9, ],,g'`" ]; then + if [ "$(echo -n $PORTS | sed 's,[0-9, ],,g')" ]; then printf $RED"[-] Err: Symbols detected in the port, for discovering purposes select only 1 port\n"$NC; printf ${BLUE}"$HELP"$NC; exit 0 @@ -1025,7 +1062,7 @@ elif [ "$IP" ]; then fi -if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ] || [ "`echo $CHECKS | grep IntFiles`" ] || [ "`echo $CHECKS | grep SofI`" ]; then +if echo $CHECKS | grep -q ProCronSrvcsTmrsSocks || echo $CHECKS | grep -q IntFiles || echo $CHECKS | grep -q SofI; then ########################################### #----------) Caching Finds (--------------# ########################################### @@ -1034,11 +1071,11 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ] || [ "`echo $CHECKS | grep #Get home - HOMESEARCH="/home/ /Users/ /root/ `cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users" | tr "\n" " "`" - if [ ! "`echo \"$HOMESEARCH\" | grep \"$HOME\"`" ] && [ ! "`echo \"$HOMESEARCH\" | grep -E \"^/root|^/home|^/Users\"`" ]; then #If not listed and not in /home, /Users/ or /root, add current home folder + HOMESEARCH="/home/ /Users/ /root/ $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users" | tr "\n" " ")" + if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users"; then #If not listed and not in /home, /Users/ or /root, add current home folder HOMESEARCH="$HOME $HOMESEARCH" fi - GREPHOMESEARCH=`echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|"` #Remove ending spaces before putting "|" + GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" CONT_THREADS=0 # FIND ALL KNOWN INTERESTING SOFTWARE FILES @@ -1051,13 +1088,13 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ] || [ "`echo $CHECKS | grep peass{STORAGES_HERE} ##### POST SERACH VARIABLES ##### - backup_folders_row="`echo $PSTORAGE_BACKUPS | tr '\n' ' '`" + backup_folders_row="$(echo $PSTORAGE_BACKUPS | tr '\n' ' ')" printf ${YELLOW}"DONE\n"$NC echo "" fi -if [ "`echo $CHECKS | grep SysI`" ]; then +if echo $CHECKS | grep -q SysI; then ########################################### #-------------) System Info (-------------# ########################################### @@ -1067,12 +1104,15 @@ if [ "`echo $CHECKS | grep SysI`" ]; then print_2title "Operative system" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#kernel-exploits" (cat /proc/version || uname -a ) 2>/dev/null | sed -${E} "s,$kernelDCW_Ubuntu_Precise_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_5,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_6,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Xenial,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel7,${SED_RED_YELLOW}," | sed -${E} "s,$kernelB,${SED_RED}," - lsb_release -a 2>/dev/null + warn_exec lsb_release -a 2>/dev/null + if [ "$MACPEAS" ]; then + warn_exec system_profiler SPSoftwareDataType + fi echo "" #-- SY) Sudo print_2title "Sudo version" - if [ "`command -v sudo 2>/dev/null`" ]; then + if [ "$(command -v sudo 2>/dev/null)" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-version" sudo -V 2>/dev/null | grep "Sudo ver" | sed -${E} "s,$sudovB,${SED_RED}," else echo_not_found "sudo" @@ -1091,7 +1131,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then pc_length=${#pc_version} pc_major=$(echo "$pc_version" | cut -d. -f1) pc_minor=$(echo "$pc_version" | cut -d. -f2) - if [ $pc_length -eq 4 -a $pc_major -eq 0 -a $pc_minor -lt 21 ]; then + if [ "$pc_length" -eq 4 ] && [ "$pc_major" -eq 0 ] && [ "$pc_minor" -lt 21 ]; then echo "Vulnerable!!" | sed -${E} "s,.*,${SED_RED}," fi fi @@ -1101,46 +1141,57 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) PATH print_2title "PATH" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-path-abuses" - echo $OLDPATH 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" + echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" echo "New path exported: $PATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\. ,${SED_RED_YELLOW},g" echo "" #-- SY) Date - print_2title "Date" - date 2>/dev/null || echo_not_found "date" + print_2title "Date & uptime" + warn_exec date 2>/dev/null + warn_exec uptime 2>/dev/null echo "" #-- SY) System stats print_2title "System stats" (df -h || lsblk) 2>/dev/null || echo_not_found "df and lsblk" - free 2>/dev/null || echo_not_found "free" + warn_exec free 2>/dev/null echo "" #-- SY) CPU info print_2title "CPU info" - lscpu 2>/dev/null || echo_not_found "lscpu" + warn_exec lscpu 2>/dev/null echo "" #-- SY) Environment vars print_2title "Environment" print_info "Any private information inside environment variables?" - (env || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|sudocapsB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY],${SED_RED},g" || echo_not_found "env || set" + (env || printenv || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY],${SED_RED},g" || echo_not_found "env || set" echo "" #-- SY) Dmesg print_2title "Searching Signature verification failed in dmseg" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#dmesg-signature-verification-failed" - (dmesg 2>/dev/null | grep "signature") || echo_not_found + (dmesg 2>/dev/null | grep "signature") || echo_not_found "dmesg" echo "" + #-- SY) Kernel extensions + if [ "$MACPEAS" ]; then + print_2title "Kernel Extensions not belonging to apple" + kextstat 2>/dev/null | grep -Ev " com.apple." + + print_2title "Unsigned Kernel Extensions" + macosNotSigned /Library/Extensions + macosNotSigned /System/Library/Extensions + fi + #-- SY) AppArmor - print_2title "Linux Protections" + print_2title "Protections" print_list "AppArmor enabled? .............. "$NC - if [ `command -v aa-status 2>/dev/null` ]; then + if [ "$(command -v aa-status 2>/dev/null)" ]; then aa-status 2>&1 | sed "s,disabled,${SED_RED}," - elif [ `command -v apparmor_status 2>/dev/null` ]; then + elif [ "$(command -v apparmor_status 2>/dev/null)" ]; then apparmor_status 2>&1 | sed "s,disabled,${SED_RED}," - elif [ `ls -d /etc/apparmor* 2>/dev/null` ]; then + elif [ "$(ls -d /etc/apparmor* 2>/dev/null)" ]; then ls -d /etc/apparmor* else echo_not_found "AppArmor" @@ -1148,7 +1199,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) grsecurity print_list "grsecurity present? ............ "$NC - ((uname -r | grep "\-grsec" >/dev/null 2>&1 || grep "grsecurity" /etc/sysctl.conf >/dev/null 2>&1) && echo "Yes" || echo_not_found "grsecurity") + ( (uname -r | grep "\-grsec" >/dev/null 2>&1 || grep "grsecurity" /etc/sysctl.conf >/dev/null 2>&1) && echo "Yes" || echo_not_found "grsecurity") #-- SY) PaX print_list "PaX bins present? .............. "$NC @@ -1162,9 +1213,30 @@ if [ "`echo $CHECKS | grep SysI`" ]; then print_list "SELinux enabled? ............... "$NC (sestatus 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," + #-- SY) Gatekeeper + if [ "$MACPEAS" ]; then + print_list "Gatekeeper enabled? .......... "$NC + (spctl --status 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," + + print_list "sleepimage encrypted? ........ "$NC + (sysctl vm.swapusage | grep "encrypted" | sed "s,encrypted,${SED_GREEN},") || echo_no + + print_list "XProtect? .................... "$NC + (system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistConfigData" | tail -n 5 | grep -Iv "^$") || echo_no + + print_list "SIP enabled? ................. "$NC + csrutil status | sed "s,enabled,${SED_GREEN}," | sed "s,disabled,${SED_RED}," || echo_no + + print_list "Connected to JAMF? ........... "$NC + warn_exec jamf checkJSSConnection + + print_list "Connected to AD? ............. "$NC + dsconfigad -show && echo "" || echo_no + fi + #-- SY) ASLR print_list "Is ASLR enabled? ............... "$NC - ASLR=`cat /proc/sys/kernel/randomize_va_space 2>/dev/null` + ASLR=$(cat /proc/sys/kernel/randomize_va_space 2>/dev/null) if [ -z "$ASLR" ]; then echo_not_found "/proc/sys/kernel/randomize_va_space"; else @@ -1174,14 +1246,14 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) Printer print_list "Printer? ....................... "$NC - lpstat -a 2>/dev/null || echo_not_found "lpstat" + (lpstat -a || system_profiler SPPrintersDataType || echo_no) 2>/dev/null #-- SY) Running in a virtual environment print_list "Is this a virtual machine? ..... "$NC - hypervisorflag=`cat /proc/cpuinfo 2>/dev/null | grep flags | grep hypervisor` - if [ `command -v systemd-detect-virt 2>/dev/null` ]; then - detectedvirt=`systemd-detect-virt` - if [ "$hypervisorflag" ]; then printf $RED"Yes ("$detectedvirt")"$NC; else printf $GREEN"No"$NC; fi + hypervisorflag=$(grep flags /proc/cpuinfo 2>/dev/null | grep hypervisor) + if [ "$(command -v systemd-detect-virt 2>/dev/null)" ]; then + detectedvirt=$(systemd-detect-virt) + if [ "$hypervisorflag" ]; then printf $RED"Yes ($detectedvirt)"$NC; else printf $GREEN"No"$NC; fi else if [ "$hypervisorflag" ]; then printf $RED"Yes"$NC; else printf $GREEN"No"$NC; fi fi @@ -1191,7 +1263,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then fi -if [ "`echo $CHECKS | grep Container`" ]; then +if echo $CHECKS | grep -q Container; then ############################################## #---------------) Containers (---------------# ############################################## @@ -1199,17 +1271,17 @@ if [ "`echo $CHECKS | grep Container`" ]; then containerCheck print_2title "Container related tools present" - command -v $CONTAINER_CMDS + command -v "$CONTAINER_CMDS" print_2title "Container details" print_list "Is this a container? ...........$NC $containerType" print_list "Any running containers? ........ "$NC # Get counts of running containers for each platform - dockercontainers=`docker ps --format "{{.Names}}" 2>/dev/null | wc -l` - podmancontainers=`podman ps --format "{{.Names}}" 2>/dev/null | wc -l` - lxccontainers=`lxc list -c n --format csv 2>/dev/null | wc -l` - rktcontainers=`rkt list 2>/dev/null | tail -n +2 | wc -l` + dockercontainers=$(docker ps --format "{{.Names}}" 2>/dev/null | wc -l) + podmancontainers=$(podman ps --format "{{.Names}}" 2>/dev/null | wc -l) + lxccontainers=$(lxc list -c n --format csv 2>/dev/null | wc -l) + rktcontainers=$(rkt list 2>/dev/null | tail -n +2 | wc -l) if [ "$dockercontainers" -eq "0" ] && [ "$lxccontainers" -eq "0" ] && [ "$rktcontainers" -eq "0" ] && [ "$podmancontainers" -eq "0" ]; then echo_no else @@ -1227,7 +1299,7 @@ if [ "`echo $CHECKS | grep Container`" ]; then fi #If docker - if [ "`echo \"$containerType\" | grep -i \"docker\"`" ]; then + if echo "$containerType" | grep -qi "docker"; then print_2title "Docker Container details" inDockerGroup print_list "Am I inside Docker group .......$NC $DOCKER_GROUP\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," @@ -1247,13 +1319,13 @@ if [ "`echo $CHECKS | grep Container`" ]; then echo "" print_2title "Container & breakout enumeration" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/docker-breakout" - print_list "Container ID ...................$NC" `cat /etc/hostname` - if [ "`echo \"$containerType\" | grep -i \"docker\"`" ]; then - print_list "Container Full ID ..............$NC `basename \"$(cat /proc/1/cpuset)\"`\n" + print_list "Container ID ...................$NC" $(cat /etc/hostname) + if echo "$containerType" | grep -qi "docker"; then + print_list "Container Full ID ..............$NC $(basename \"$(cat /proc/1/cpuset)\")\n" fi - if [ "`echo \"$containerType\" | grep -i \"kubernetes\"`" ]; then - print_list "Kubernetes namespace ...........$NC `cat /run/secrets/kubernetes.io/serviceaccount/namespace /secrets/kubernetes.io/serviceaccount/namespace 2>/dev/null`\n" - print_list "Kubernetes token ...............$NC `cat /run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null`\n" + if echo "$containerType" | grep -qi "kubernetes"; then + print_list "Kubernetes namespace ...........$NC $(cat /run/secrets/kubernetes.io/serviceaccount/namespace /secrets/kubernetes.io/serviceaccount/namespace 2>/dev/null)\n" + print_list "Kubernetes token ...............$NC $(cat /run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null)\n" fi checkContainerExploits @@ -1291,7 +1363,7 @@ fi -if [ "`echo $CHECKS | grep Devs`" ]; then +if echo $CHECKS | grep -q Devs; then ########################################### #---------------) Devices (---------------# ########################################### @@ -1306,17 +1378,25 @@ if [ "`echo $CHECKS | grep Devs`" ]; then print_2title "Unmounted file-system?" print_info "Check if you can mount umounted devices" if [ -f "/etc/fstab" ]; then - cat /etc/fstab 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED}," | sed -${E} "s,$mounted,${SED_BLUE}," | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" + grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED}," | sed -${E} "s,$mounted,${SED_BLUE}," | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" else echo_not_found "/etc/fstab" fi echo "" + + print_2title "Mounted disks information" + warn_exec diskutil list + echo "" + + print_2title "Mounted SMB Shares" + warn_exec smbutil statshares -a + echo "" echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep AvaSof`" ]; then +if echo $CHECKS | grep -q AvaSof; then ########################################### #---------) Available Software (----------# ########################################### @@ -1324,19 +1404,53 @@ if [ "`echo $CHECKS | grep AvaSof`" ]; then #-- 1AS) Useful software print_2title "Useful software" - command -v $CONTAINER_CMDS nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch ctr 2>/dev/null + command -v "$CONTAINER_CMDS" nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch ctr authbind 2>/dev/null echo "" #-- 2AS) Search for compilers print_2title "Installed Compiler" (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; command -v gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/"); echo "" + + if [ "$(command -v pkg 2>/dev/null)" ]; then + print_2title "Vulnerable Packages" + pkg audit -F | sed -${E} "s,vulnerable,${SED_RED},g" + echo "" + fi + + if [ "$(command -v brew 2>/dev/null)" ]; then + print_2title "Brew Installed Packages" + brew list + echo "" + fi + + if [ "$MACPEAS" ]; then + print_2title "Writable Installed Applications" + system_profiler SPApplicationsDataType | grep "Location:" | cut -d ":" -f 2 | cut -c2- | while read f; do + if [ -w "$f" ]; then + echo "$f is writable" | sed -${E} "s,.*,${SED_RED},g" + fi + done + + system_profiler SPFrameworksDataType | grep "Location:" | cut -d ":" -f 2 | cut -c2- | while read f; do + if [ -w "$f" ]; then + echo "$f is writable" | sed -${E} "s,.*,${SED_RED},g" + fi + done + echo "" + + #Useless info + #print_2title "Developer Tools" + #system_profiler SPDeveloperToolsDataType + #echo "" + fi + echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then +if echo $CHECKS | grep -q ProCronSrvcsTmrsSocks; then #################################################### #-----) Processes & Cron & Services & Timers (-----# #################################################### @@ -1345,25 +1459,25 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then #-- PCS) Cleaned proccesses print_2title "Cleaned processes" if [ "$NOUSEPS" ]; then - printf ${BLUE}"[i] "$GREEN"Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC + printf ${BLUE}"[i]$GREEN Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC fi print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-unix/privilege-escalation#processes" if [ "$NOUSEPS" ]; then - print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - pslist=`print_ps` + print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + pslist=$(print_ps) else (ps fauxwww || ps auxwww | sort ) 2>/dev/null | grep -v "\[" | grep -v "%CPU" | while read psline; do - echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - if [ "`command -v capsh`" ] && ! [ "`echo \"$psline\" | grep root`" ]; then - cpid="`echo \"$psline\" | awk '{print $2}'`" - caphex=0x"`cat \"/proc/$cpid/status\" 2> /dev/null | grep \"CapEff\" | awk '{print $2}'`" - if [ "$caphex" ] && [ "$caphex" != "0x" ] && [ "`echo \"$caphex\" | grep -v '0x0000000000000000'`" ]; then + echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + if [ "$(command -v capsh)" ] && ! echo "$psline" | grep -q root; then + cpid="$(echo \"$psline\" | awk '{print $2}')" + caphex=0x"$(cat \"/proc/$cpid/status\" 2> /dev/null | grep \"CapEff\" | awk '{print $2}')" + if [ "$caphex" ] && [ "$caphex" != "0x" ] && echo "$caphex" | grep -qv '0x0000000000000000'; then printf " └─(${DG}Caps${NC}) "; capsh --decode=$caphex 2>/dev/null | sed -${E} "s,$capsB,${SED_RED},g" fi fi done - pslist=`ps auxwww` + pslist=$(ps auxwww) echo "" #-- PCS) Binary processes permissions @@ -1383,26 +1497,27 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ]; then print_2title "Files opened by processes belonging to other users" print_info "This is usually empty because of the lack of privileges to read other user processes information" - lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," echo "" fi #-- PCS) Processes with credentials inside memory print_2title "Processes with credentials in memory (root req)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#credentials-from-process-memory" - if [ "`echo \"$pslist\" | grep \"gdm-password\"`" ]; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi - if [ "`echo \"$pslist\" | grep \"gnome-keyring-daemon\"`" ]; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi - if [ "`echo \"$pslist\" | grep \"lightdm\"`" ]; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi - if [ "`echo \"$pslist\" | grep \"vsftpd\"`" ]; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi - if [ "`echo \"$pslist\" | grep \"apache2\"`" ]; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi - if [ "`echo \"$pslist\" | grep \"sshd:\"`" ]; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi + if echo "$pslist" | grep -q "gdm-password"; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi + if echo "$pslist" | grep -q "gnome-keyring-daemon"; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi + if echo "$pslist" | grep -q "lightdm"; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi + if echo "$pslist" | grep -q "vsftpd"; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi + if echo "$pslist" | grep -q "apache2"; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi + if echo "$pslist" | grep -q "sshd:"; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi echo "" #-- PCS) Different processes 1 min if ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then print_2title "Different processes executed during 1 min (interesting is low number of repetitions)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#frequent-cron-jobs" - if [ "`ps -e -o command 2>/dev/null`" ]; then for i in $(seq 1 1250); do ps -e -o command >> $file.tmp1 2>/dev/null; sleep 0.05; done; sort $file.tmp1 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm $file.tmp1; fi + temp_file=$(mktemp) + if [ "$(ps -e -o command 2>/dev/null)" ]; then for i in $(seq 1 1250); do ps -e -o command >> "$temp_file" 2>/dev/null; sleep 0.05; done; sort "$temp_file" 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm "$temp_file"; fi echo "" fi @@ -1410,15 +1525,55 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "Cron jobs" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#scheduled-cron-jobs" command -v crontab 2>/dev/null || echo_not_found "crontab" - crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," command -v incrontab 2>/dev/null || echo_not_found "incrontab" incrontab -l 2>/dev/null ls -alR /etc/cron* /var/spool/cron/crontabs /var/spool/anacron 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" - cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#\|test \-x /usr/sbin/anacron\|run\-parts \-\-report /etc/cron.hourly\| root run-parts /etc/cron." | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#\|test \-x /usr/sbin/anacron\|run\-parts \-\-report /etc/cron.hourly\| root run-parts /etc/cron." | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," crontab -l -u "$USER" 2>/dev/null | tr -d "\r" - ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ 2>/dev/null #MacOS paths + ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /var/at/tabs/ /etc/periodic/ 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" #MacOS paths + atq 2>/dev/null echo "" + if [ "$MACPEAS" ]; then + print_2title "Third party LaunchAgents & LaunchDemons" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#launchd" + ls -l /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ ~/Library/LaunchDaemons/ 2>/dev/null + echo "" + + print_2title "Writable System LaunchAgents & LaunchDemons" + find /System/Library/LaunchAgents/ /System/Library/LaunchDaemons/ /Library/LaunchAgents/ /Library/LaunchDaemons/ | grep ".plist" | while read f; do + program="" + program=$(defaults read "$f" Program 2>/dev/null) + if ! [ "$program" ]; then + program=$(defaults read /Library/LaunchDaemons/MonitorHelper.plist ProgramArguments | grep -Ev "^\(|^\)" | cut -d '"' -f 2) + fi + if [ -w "$program" ]; then + echo "$program" is writable | sed -${E} "s,.*,${SED_RED_YELLOW},"; + fi + done + echo "" + + print_2title "StartupItems" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#startup-items" + ls -l /Library/StartupItems/ /System/Library/StartupItems/ 2>/dev/null + echo "" + + print_2title "Login Items" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#login-items" + osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null + echo "" + + print_2title "SPStartupItemDataType" + system_profiler SPStartupItemDataType + echo "" + + print_2title "Emond scripts" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#emond" + ls -l /private/var/db/emondClients + echo "" + fi + #-- PCS) Services print_2title "Services" print_info "Search for outdated versions" @@ -1429,7 +1584,7 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "Systemd PATH" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#systemd-path-relative-paths" systemctl show-environment 2>/dev/null | grep "PATH" | sed -${E} "s,$Wfolders\|\./\|\.:\|:\.,${SED_RED_YELLOW},g" - WRITABLESYSTEMDPATH=`systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders"` + WRITABLESYSTEMDPATH=$(systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders") echo "" #-- PSC) .service files @@ -1441,14 +1596,14 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then echo "$s" | sed -${E} "s,.*,${SED_RED_YELLOW},g" fi - servicebinpaths="`grep -Eo '^Exec.*?=[!@+-]*[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" #Get invoked paths + servicebinpaths="$(grep -Eo '^Exec.*?=[!@+-]*[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" #Get invoked paths printf "%s\n" "$servicebinpaths\n" | while read sp; do if [ -w "$sp" ]; then echo "$s is calling this writable executable: $sp" | sed "s,writable.*,${SED_RED_YELLOW},g" fi done - relpath1="`grep -E '^Exec.*=(?:[^/]|-[^/]|\+[^/]|![^/]|!![^/]|)[^/@\+!-].*' \"$s\" 2>/dev/null | grep -Iv \"=/\"`" - relpath2="`grep -E '^Exec.*=.*/bin/[a-zA-Z0-9_]*sh ' \"$s\" 2>/dev/null | grep -Ev \"/[a-zA-Z0-9_]+/\"`" + relpath1="$(grep -E '^Exec.*=(?:[^/]|-[^/]|\+[^/]|![^/]|!![^/]|)[^/@\+!-].*' \"$s\" 2>/dev/null | grep -Iv \"=/\")" + relpath2="$(grep -E '^Exec.*=.*/bin/[a-zA-Z0-9_]*sh ' \"$s\" 2>/dev/null | grep -Ev \"/[a-zA-Z0-9_]+/\")" if [ "$relpath1" ] || [ "$relpath2" ]; then if [ "$WRITABLESYSTEMDPATH" ]; then echo "$s is executing some relative path" | sed -${E} "s,.*,${SED_RED},"; @@ -1474,7 +1629,7 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$t" ]; then echo "$t" | sed -${E} "s,.*,${SED_RED},g" fi - timerbinpaths="`grep -Po '^Unit=*(.*?$)' \"$t\" 2>/dev/null | cut -d '=' -f2`" + timerbinpaths="$(grep -Po '^Unit=*(.*?$)' \"$t\" 2>/dev/null | cut -d '=' -f2)" printf "%s\n" "$timerbinpaths" | while read tb; do if [ -w "$tb" ]; then echo "$t timer is calling this writable executable: $tb" | sed "s,writable.*,${SED_RED},g" @@ -1495,14 +1650,14 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then echo "Writable .socket file: $s" | sed "s,/.*,${SED_RED},g" fi - socketsbinpaths="`grep -Eo '^(Exec).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" + socketsbinpaths="$(grep -Eo '^(Exec).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" printf "%s\n" "$socketsbinpaths" | while read sb; do if [ -w "$sb" ]; then echo "$s is calling this writable executable: $sb" | sed "s,writable.*,${SED_RED},g" fi done - socketslistpaths="`grep -Eo '^(Listen).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" - printf "%s\n" "$socketsbinpaths" | while read sl; do + socketslistpaths="$(grep -Eo '^(Listen).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" + printf "%s\n" "$socketslistpaths" | while read sl; do if [ -w "$sl" ]; then echo "$s is calling this writable listener: $sl" | sed "s,writable.*,${SED_RED},g"; fi @@ -1520,10 +1675,10 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "HTTP sockets" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sockets" ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1 | while read s; do - socketcurl="`curl --max-time 2 --unix-socket \"$s\" http:/index 2>/dev/null`" + socketcurl="$(curl --max-time 2 --unix-socket \"$s\" http:/index 2>/dev/null)" if [ $? -eq 0 ]; then - owner="`ls -l \"$s\" | cut -d ' ' -f 3`" - echo "Socket $s owned by $owner uses HTTP. Response to /index:" | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" + owner="$(ls -l \"$s\" | cut -d ' ' -f 3)" + echo "Socket $s owned by $owner uses HTTP. Response to /index:" | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" echo "$socketcurl" fi done @@ -1539,17 +1694,17 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then echo "Writable $f" | sed -${E} "s,.*,${SED_RED},g" fi - genpol=`grep "" "$f" 2>/dev/null` - if [ "$genpol" ]; then printf "Weak general policy found on $f ($genpol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + genpol=$(grep "" "$f" 2>/dev/null) + if [ "$genpol" ]; then printf "Weak general policy found on $f ($genpol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #if [ "`grep \"\" \"$f\" 2>/dev/null`" ]; then printf "Possible weak user policy found on $f () \n" | sed "s,$USER,${SED_RED},g"; fi - userpol=`grep "/dev/null | grep -v "root"` - if [ "$userpol" ]; then printf "Possible weak user policy found on $f ($userpol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + userpol=$(grep "/dev/null | grep -v "root") + if [ "$userpol" ]; then printf "Possible weak user policy found on $f ($userpol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #for g in `groups`; do # if [ "`grep \"\" \"$f\" 2>/dev/null`" ]; then printf "Possible weak group ($g) policy found on $f\n" | sed "s,$g,${SED_RED},g"; fi #done - grppol=`grep "/dev/null | grep -v "root"` - if [ "$grppol" ]; then printf "Possible weak user policy found on $f ($grppol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + grppol=$(grep "/dev/null | grep -v "root") + if [ "$grppol" ]; then printf "Possible weak user policy found on $f ($grppol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #TODO: identify allows in context="default" done @@ -1563,9 +1718,9 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if [ "$dbuslist" ]; then busctl list | while read line; do echo "$line" | sed -${E} "s,$dbuslistG,${SED_GREEN},g"; - if [ ! "`echo \"$line\" | grep -E \"$dbuslistG\"`" ]; then - srvc_object=`echo $line | cut -d " " -f1` - srvc_object_info=`busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' '` + if ! echo "$line" | grep -qE "$dbuslistG"; then + srvc_object=$(echo $line | cut -d " " -f1) + srvc_object_info=$(busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' ') if [ "$srvc_object_info" ]; then echo " -- $srvc_object_info" | sed "s,UID=0,${SED_RED}," fi @@ -1581,16 +1736,22 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then fi -if [ "`echo $CHECKS | grep Net`" ]; then +if echo $CHECKS | grep -q Net; then ########################################### #---------) Network Information (---------# ########################################### print_title "Network Information" + if [ "$MACOS" ]; then + print_2title "Network Capabilities" + warn_exec system_profiler SPNetworkDataType + echo "" + fi + #-- NI) Hostname, hosts and DNS print_2title "Hostname, hosts and DNS" cat /etc/hostname /etc/hosts /etc/resolv.conf 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null - dnsdomainname 2>/dev/null || echo_not_found "dnsdomainname" + warn_exec dnsdomainname 2>/dev/null echo "" #-- NI) /etc/inetd.conf @@ -1606,10 +1767,19 @@ if [ "`echo $CHECKS | grep Net`" ]; then #-- NI) Neighbours print_2title "Networks and neighbours" - (route || ip n || cat /proc/net/route) 2>/dev/null + if [ "$MACOS" ]; then + netstat -rn 2>/dev/null + else + (route || ip n || cat /proc/net/route) 2>/dev/null + fi (arp -e || arp -a || cat /proc/net/arp) 2>/dev/null echo "" + if [ "$MACPEAS" ]; then + print_2title "Firewall status" + warn_exec system_profiler SPFirewallDataType + fi + #-- NI) Iptables print_2title "Iptables rules" (timeout 1 iptables -L 2>/dev/null; cat /etc/iptables/* | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null) 2>/dev/null || echo_not_found "iptables rules" @@ -1618,9 +1788,40 @@ if [ "`echo $CHECKS | grep Net`" ]; then #-- NI) Ports print_2title "Active Ports" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-ports" - ((netstat -punta || ss -ntpu || (netstat -a -p tcp && netstat -a -p udp)) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+,${SED_RED}," + ( (netstat -punta || ss -ntpu || netstat -anv) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+,${SED_RED}," echo "" + #-- NI) MacOS hardware ports + if [ "$MACPEAS" ]; then + print_2title "Hardware Ports" + networksetup -listallhardwareports + echo "" + + print_2title "VLANs" + networksetup -listVLANs + echo "" + + print_2title "Wifi Info" + networksetup -getinfo Wi-Fi + echo "" + + print_2title "Check Enabled Proxies" + scutil --proxy + echo "" + + print_2title "Wifi Proxy URL" + networksetup -getautoproxyurl Wi-Fi + echo "" + + print_2title "Wifi Web Proxy" + networksetup -getwebproxy Wi-Fi + echo "" + + print_2title "Wifi FTP Proxy" + networksetup -getftpproxy Wi-Fi + echo "" + fi + #-- NI) tcpdump print_2title "Can I sniff with tcpdump?" timeout 1 tcpdump >/dev/null 2>&1 @@ -1641,12 +1842,45 @@ if [ "`echo $CHECKS | grep Net`" ]; then wait echo "" fi + + if [ "$MACOS" ]; then + print_2title "Any MacOS Sharing Service Enabled?" + rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l); + scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l); + flShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | egrep "\*.88|\*.445|\*.548" | wc -l); + rLgn=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.22" | wc -l); + rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l); + bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l); + printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM"; + echo "" + print_2title "VPN Creds" + system_profiler SPNetworkLocationDataType | grep -A 5 -B 7 ": Password" | sed -${E} "s,Password|Authorization Name.*,${SED_RED}," + echo "" + + print_2title "Bluetooth Info" + warn_exec system_profiler SPBluetoothDataType + echo "" + + print_2title "Ethernet Info" + warn_exec system_profiler SPEthernetDataType + echo "" + + print_2title "USB Info" + warn_exec system_profiler SPUSBDataType + echo "" + + #Irrelevant to PE + #print_2title "Airport Info" + #warn_exec system_profiler SPAirPortDataType + #echo "" + fi + echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep UsrI`" ]; then +if echo $CHECKS | grep -q UsrI; then ########################################### #----------) Users Information (----------# ########################################### @@ -1655,9 +1889,33 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) My user print_2title "My user" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#users" - (id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" + (id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" echo "" + if [ "$MACPEAS" ];then + print_2title "Current user Login and Logout hooks" + defaults read $HOME/Library/Preferences/com.apple.loginwindow.plist 2>/dev/null | grep -e "Hook" + echo "" + + print_2title "All Login and Logout hooks" + defaults read /Users/*/Library/Preferences/com.apple.loginwindow.plist 2>/dev/null | grep -e "Hook" + defaults read /private/var/root/Library/Preferences/com.apple.loginwindow.plist + echo "" + + print_2title "Keychains" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#chainbreaker" + security list-keychains + echo "" + + print_2title "SystemKey" + ls -l /var/db/SystemKey + if [ -r "/var/db/SystemKey" ]; then + echo "You can read /var/db/SystemKey" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + hexdump -s 8 -n 24 -e '1/1 "%.2x"' /var/db/SystemKey | sed -${E} "s,.*,${SED_RED_YELLOW},"; + fi + echo "" + fi + #-- UI) PGP keys? print_2title "Do I have PGP keys?" command -v gpg 2>/dev/null || echo_not_found "gpg" @@ -1669,12 +1927,14 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Clipboard and highlighted text print_2title "Clipboard or highlighted text?" - if [ `command -v xclip 2>/dev/null` ]; then - echo "Clipboard: "`xclip -o -selection clipboard 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - echo "Highlighted text: "`xclip -o 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - elif [ `command -v xsel 2>/dev/null` ]; then - echo "Clipboard: "`xsel -ob 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - echo "Highlighted text: "`xsel -o 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," + if [ "$(command -v xclip 2>/dev/null)" ]; then + echo "Clipboard: "$(xclip -o -selection clipboard 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "Highlighted text: "$(xclip -o 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + elif [ "$(command -v xsel 2>/dev/null)" ]; then + echo "Clipboard: "$(xsel -ob 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "Highlighted text: "$(xsel -o 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + elif [ "$(command -v pbpaste 2>/dev/null)" ]; then + echo "Clipboard: "$(pbpaste) | sed -${E} "s,$pwd_inside_history,${SED_RED}," else echo_not_found "xsel and xclip" fi echo "" @@ -1682,18 +1942,18 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Sudo -l print_2title "Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" - (echo '' | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW}," | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" + (echo '' | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" if [ "$PASSWORD" ]; then - (echo "$PASSWORD" | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "sudo" + (echo "$PASSWORD" | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "sudo" fi - (cat /etc/sudoers | grep -Iv "^$" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "/etc/sudoers" + ( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "/etc/sudoers" if ! [ "$IAMROOT" ] && [ -w '/etc/sudoers.d/' ]; then echo "You can create a file in /etc/sudoers.d/ and escalate privileges" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi for filename in '/etc/sudoers.d/*'; do if [ -r "$filename" ]; then echo "Sudoers file: $filename is readable" | sed -${E} "s,.*,${SED_RED},g" - cat "$filename" | grep -Iv "^$" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW}," + grep -Iv "^$" "$filename" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," fi done echo "" @@ -1701,11 +1961,11 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Sudo tokens print_2title "Checking sudo tokens" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#reusing-sudo-tokens" - ptrace_scope="`cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null`" + ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then echo "/proc/sys/kernel/yama/ptrace_scope is enabled (0)" | sed "s,0,${SED_RED},g"; else echo "/proc/sys/kernel/yama/ptrace_scope is not enabled ($ptrace_scope)" | sed "s,is not enabled,${SED_GREEN},g"; fi - is_gdb="`command -v gdb 2>/dev/null`" + is_gdb="$(command -v gdb 2>/dev/null)" if [ "$is_gdb" ]; then echo "gdb was found in PATH" | sed -${E} "s,.*,${SED_RED},g"; else echo "gdb wasn't found in PATH" | sed "s,gdb,${SED_GREEN},g"; fi @@ -1725,43 +1985,45 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Doas print_2title "Checking doas.conf" - if [ "`cat /etc/doas.conf "$(dirname $(command -v doas) 2>/dev/null)/doas.conf" "$(dirname $(command -v doas) 2>/dev/null)/../etc/doas.conf" "$(dirname $(command -v doas) 2>/dev/null)/etc/doas.conf" 2>/dev/null`" ]; then cat /etc/doas.conf "$(dirname $(command -v doas))/doas.conf" "$(dirname $(command -v doas))/../etc/doas.conf" "$(dirname $(command -v doas))/etc/doas.conf" 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_RED}," | sed "s,root,${SED_RED}," | sed "s,nopass,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," - else echo_not_found "/etc/doas.conf" + doas_dir_name=$(dirname "$(command -v doas)" 2>/dev/null) + if [ "$(cat /etc/doas.conf \"$doas_dir_name/doas.conf\" \"$doas_dir_name/../etc/doas.conf\" \"$doas_dir_name/etc/doas.conf\" 2>/dev/null)" ]; then + cat /etc/doas.conf "$doas_dir_name/doas.conf" "$doas_dir_name/../etc/doas.conf" "$doas_dir_name/etc/doas.conf" 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_RED}," | sed "s,root,${SED_RED}," | sed "s,nopass,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," + else echo_not_found "doas.conf" fi echo "" #-- UI) Pkexec policy print_2title "Checking Pkexec policy" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/interesting-groups-linux-pe#pe-method-2" - (cat /etc/polkit-1/localauthority.conf.d/* 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED}," | sed -${E} "s,$groupsVB,${SED_RED}," | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," | sed -${E} "s,$Groups,${SED_RED_YELLOW},") || echo_not_found "/etc/polkit-1/localauthority.conf.d" + (cat /etc/polkit-1/localauthority.conf.d/* 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED}," | sed -${E} "s,$groupsVB,${SED_RED}," | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," | sed -${E} "s,$Groups,${SED_RED_YELLOW},") || echo_not_found "/etc/polkit-1/localauthority.conf.d" echo "" #-- UI) Superusers print_2title "Superusers" - awk -F: '($3 == "0") {print}' /etc/passwd 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED_YELLOW}," | sed "s,root,${SED_RED}," + awk -F: '($3 == "0") {print}' /etc/passwd 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED_YELLOW}," | sed "s,root,${SED_RED}," echo "" #-- UI) Users with console print_2title "Users with console" if [ "$MACPEAS" ]; then dscl . list /Users | while read uname; do - ushell=`dscl . -read "/Users/$uname" UserShell | cut -d " " -f2` - if [ "`grep \"$ushell\" /etc/shells`" ]; then #Shell user - dscl . -read "/Users/$uname" UserShell RealName RecordName Password NFSHomeDirectory 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + dscl . -read "/Users/$uname" UserShell RealName RecordName Password NFSHomeDirectory 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" fi done else - no_shells="`cat /etc/passwd 2>/dev/null | grep -Ev "sh$" | cut -d ":" -f 7 | sort | uniq`" + no_shells="$(grep -Ev \"sh$\" /etc/passwd 2>/dev/null | cut -d ':' -f 7 | sort | uniq)" unexpected_shells="" printf "%s\n" "$no_shells" | while read f; do - if [ "`$f -c 'whoami' 2>/dev/null | grep \"$USER\"`" ]; then + if $f -c 'whoami' 2>/dev/null | grep -q "$USER"; then unexpected_shells="$f\n$unexpected_shells" fi done - cat /etc/passwd 2>/dev/null | grep "sh$" | sort | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + grep "sh$" /etc/passwd 2>/dev/null | sort | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," if [ "$unexpected_shells" ]; then - echo "These unexpected binaries are acting like shells:\n$unexpected_shells" | sed -${E} "s,/.*,${SED_RED},g" + printf "%s" "These unexpected binaries are acting like shells:\n$unexpected_shells" | sed -${E} "s,/.*,${SED_RED},g" echo "Unexpected users with shells:" printf "%s\n" "$unexpected_shells" | while read f; do if [ "$f" ]; then @@ -1775,25 +2037,36 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) All users & groups print_2title "All users & groups" if [ "$MACPEAS" ]; then - dscl . list /Users | while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" + dscl . list /Users | while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" else - cut -d":" -f1 /etc/passwd 2>/dev/null| while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" + cut -d":" -f1 /etc/passwd 2>/dev/null| while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" fi echo "" #-- UI) Login now print_2title "Login now" - (w || who || users) 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + (w || who || finger || users) 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" #-- UI) Last logons print_2title "Last logons" - (last -Faiw || last) 2>/dev/null | tail | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_RED}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + (last -Faiw || last) 2>/dev/null | tail | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_RED}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" #-- UI) Login info print_2title "Last time logon each user" - lastlog 2>/dev/null | grep -v "Never" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + lastlog 2>/dev/null | grep -v "Never" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + + EXISTS_FINGER="$(command -v finger 2>/dev/null)" + if [ "$MACPEAS" ] && [ "$EXISTS_FINGER" ]; then + dscl . list /Users | while read uname; do + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + finger "$uname" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + echo "" + fi + done + fi echo "" #-- UI) Password policy @@ -1801,16 +2074,28 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then grep "^PASS_MAX_DAYS\|^PASS_MIN_DAYS\|^PASS_WARN_AGE\|^ENCRYPT_METHOD" /etc/login.defs 2>/dev/null || echo_not_found "/etc/login.defs" echo "" + if [ "$MACPEAS" ]; then + print_2title "Relevant last user info and user configs" + defaults read /Library/Preferences/com.apple.loginwindow.plist 2>/dev/null + echo "" + + print_2title "Guest user status" + sysadminctl -afpGuestAccess status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + sysadminctl -guestAccount status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + sysadminctl -smbGuestAccess status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + echo "" + fi + #-- UI) Brute su - EXISTS_SUDO="`command -v sudo 2>/dev/null`" + EXISTS_SUDO="$(command -v sudo 2>/dev/null)" if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ] && ! [ "$IAMROOT" ] && [ "$EXISTS_SUDO" ]; then print_2title "Testing 'su' as other users with shell using as passwords: null pwd, the username and top2000pwds\n"$NC - POSSIBE_SU_BRUTE=`check_if_su_brute`; + POSSIBE_SU_BRUTE=$(check_if_su_brute); if [ "$POSSIBE_SU_BRUTE" ]; then - SHELLUSERS=`cat /etc/passwd 2>/dev/null | grep -i "sh$" | cut -d ":" -f 1` + SHELLUSERS=$(cat /etc/passwd 2>/dev/null | grep -i "sh$" | cut -d ":" -f 1) printf "%s\n" "$SHELLUSERS" | while read u; do echo " Bruteforcing user $u..." - su_brute_user_num $u $PASSTRY + su_brute_user_num "$u" $PASSTRY done else printf $GREEN"It's not possible to brute-force su.\n\n"$NC @@ -1825,7 +2110,7 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then fi -if [ "`echo $CHECKS | grep SofI`" ]; then +if echo $CHECKS | grep -q SofI; then ########################################### #--------) Software Information (---------# ########################################### @@ -1838,7 +2123,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Mysql connection root/root print_list "MySQL connection using default root/root ........... " - mysqlconnect=`mysqladmin -uroot -proot version 2>/dev/null` + mysqlconnect=$(mysqladmin -uroot -proot version 2>/dev/null) if [ "$mysqlconnect" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," mysql -u root --password=root -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," @@ -1847,7 +2132,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Mysql connection root/toor print_list "MySQL connection using root/toor ................... " - mysqlconnect=`mysqladmin -uroot -ptoor version 2>/dev/null` + mysqlconnect=$(mysqladmin -uroot -ptoor version 2>/dev/null) if [ "$mysqlconnect" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," mysql -u root --password=toor -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," @@ -1855,7 +2140,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then fi #-- SI) Mysql connection root/NOPASS - mysqlconnectnopass=`mysqladmin -uroot version 2>/dev/null` + mysqlconnectnopass=$(mysqladmin -uroot version 2>/dev/null) print_list "MySQL connection using root/NOPASS ................. " if [ "$mysqlconnectnopass" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," @@ -1867,31 +2152,31 @@ if [ "`echo $CHECKS | grep SofI`" ]; then print_2title "Searching mysql credentials and exec" if [ "$PSTORAGE_MYSQL" ]; then printf "%s\n" "$PSTORAGE_MYSQL" | while read d; do - for f in `find $d -name debian.cnf 2>/dev/null`; do - if [ -r $f ]; then + for f in $(find $d -name debian.cnf 2>/dev/null); do + if [ -r "$f" ]; then echo "We can read the mysql debian.cnf. You can use this username/password to log in MySQL" | sed -${E} "s,.*,${SED_RED}," cat "$f" fi done - for f in `find $d -name user.MYD 2>/dev/null`; do + for f in $(find $d -name user.MYD 2>/dev/null); do if [ -r "$f" ]; then echo "We can read the Mysql Hashes from $f" | sed -${E} "s,.*,${SED_RED}," grep -oaE "[-_\.\*a-Z0-9]{3,}" $f | grep -v "mysql_native_password" fi done - for f in `grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"`; do + for f in $(grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"); do if [ -r "$f" ]; then - u=`cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null` - echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + u=$(cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null) + echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," fi done - for f in `find $d -name my.cnf 2>/dev/null`; do + for f in $(find $d -name my.cnf 2>/dev/null); do if [ -r "$f" ]; then echo "Found readable $f" - cat "$f" | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," + grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," fi done - mysqlexec=`whereis lib_mysqludf_sys.so 2>/dev/null | grep "lib_mysqludf_sys\.so"` + mysqlexec=$(whereis lib_mysqludf_sys.so 2>/dev/null | grep "lib_mysqludf_sys\.so") if [ "$mysqlexec" ]; then echo "Found $mysqlexec" echo "If you can login in MySQL you can execute commands doing: SELECT sys_eval('id');" | sed -${E} "s,.*,${SED_RED}," @@ -1907,22 +2192,22 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$TIMEOUT" ]; then # In some OS (like OpenBSD) it will expect the password from console and will pause the script. Also, this OS doesn't have the "timeout" command so lets only use this checks in OS that has it. #checks to see if any postgres password exists and connects to DB 'template0' - following commands are a variant on this print_list "PostgreSQL connection to template0 using postgres/NOPASS ........ " - if [ "`timeout 1 psql -U postgres -d template0 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U postgres -d template0 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template1 using postgres/NOPASS ........ " - if [ "`timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed "s,.)*,${SED_RED}," + if [ "$(timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed "s,.)*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template0 using pgsql/NOPASS ........... " - if [ "`timeout 1 psql -U pgsql -d template0 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U pgsql -d template0 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template1 using pgsql/NOPASS ........... " - if [ "`timeout 1 psql -U pgsql -d template1 -c 'select version()' 2> /dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U pgsql -d template1 -c 'select version()' 2> /dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi echo "" @@ -1958,7 +2243,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Wifi conns print_2title "Searching wifi conns file" - wifi=`find /etc/NetworkManager/system-connections/ -type f 2>/dev/null` + wifi=$(find /etc/NetworkManager/system-connections/ -type f 2>/dev/null) if [ "$wifi" ]; then printf "%s\n" "$wifi" | while read f; do echo "$f"; cat "$f" 2>/dev/null | grep "psk.*=" | sed "s,psk.*,${SED_RED},"; done else echo_not_found @@ -1975,23 +2260,23 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) ssh files print_2title "Searching ssl/ssh files" - if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=`grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null`; fi - sshconfig="`ls /etc/ssh/ssh_config 2>/dev/null`" - hostsdenied="`ls /etc/hosts.denied 2>/dev/null`" - hostsallow="`ls /etc/hosts.allow 2>/dev/null`" + if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=$(grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null); fi + sshconfig="$(ls /etc/ssh/ssh_config 2>/dev/null)" + hostsdenied="$(ls /etc/hosts.denied 2>/dev/null)" + hostsallow="$(ls /etc/hosts.allow 2>/dev/null)" peass{SSH} grep "PermitRootLogin \|ChallengeResponseAuthentication \|PasswordAuthentication \|UsePAM \|Port\|PermitEmptyPasswords\|PubkeyAuthentication\|ListenAddress\|ForwardAgent\|AllowAgentForwarding\|AuthorizedKeysFiles" /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | sed -${E} "s,PermitRootLogin.*es|PermitEmptyPasswords.*es|ChallengeResponseAuthentication.*es|FordwardAgent.*es,${SED_RED}," if [ "$TIMEOUT" ]; then - privatekeyfilesetc=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null` - privatekeyfileshome=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null` - privatekeyfilesroot=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null` - privatekeyfilesmnt=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null` + privatekeyfilesetc=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) + privatekeyfileshome=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null) + privatekeyfilesroot=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null) + privatekeyfilesmnt=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null) else - privatekeyfilesetc=`grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null` #If there is tons of files linpeas gets frozen here without a timeout - privatekeyfileshome=`grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null` + privatekeyfilesetc=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) #If there is tons of files linpeas gets frozen here without a timeout + privatekeyfileshome=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null) fi if [ "$privatekeyfilesetc" ] || [ "$privatekeyfileshome" ] || [ "$privatekeyfilesroot" ] || [ "$privatekeyfilesmnt" ] ; then @@ -2003,7 +2288,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$privatekeyfilesmnt" ]; then printf "$privatekeyfilesmnt\n" | sed -${E} "s,.*,${SED_RED},"; fi echo "" fi - if [ "$certsb4_grep" ] || [ "$$PSTORAGE_CERTSBIN" ]; then + if [ "$certsb4_grep" ] || [ "$PSTORAGE_CERTSBIN" ]; then print_3title "Some certificates were found (out limited):" printf "$certsb4_grep\n" | head -n 20 printf "$$PSTORAGE_CERTSBIN\n" | head -n 20 @@ -2019,7 +2304,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then printf "$PSTORAGE_SSH_AGENTS\n" echo "" fi - if [ "`ssh-add -l 2>/dev/null | grep -v 'no identities'`" ]; then + if ssh-add -l 2>/dev/null | grep -qv 'no identities'; then print_3title "Listing SSH Agents" ssh-add -l echo "" @@ -2044,15 +2329,15 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$sshconfig" ]; then echo "" echo "Searching inside /etc/ssh/ssh_config for interesting info" - cat /etc/ssh/ssh_config 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," + grep -v "^#" /etc/ssh/ssh_config 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," fi echo "" #-- SI) PAM auth print_2title "Searching unexpected auth lines in /etc/pam.d/sshd" - pamssh=`cat /etc/pam.d/sshd 2>/dev/null | grep -v "^#\|^@" | grep -i auth` + pamssh=$(grep -v "^#\|^@" /etc/pam.d/sshd 2>/dev/null | grep -i auth) if [ "$pamssh" ]; then - cat /etc/pam.d/sshd 2>/dev/null | grep -v "^#\|^@" | grep -i auth | sed -${E} "s,.*,${SED_RED}," + grep -v "^#\|^@" /etc/pam.d/sshd 2>/dev/null | grep -i auth | sed -${E} "s,.*,${SED_RED}," else echo_no fi echo "" @@ -2060,7 +2345,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) NFS exports print_2title "NFS exports?" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/nfs-no_root_squash-misconfiguration-pe" - if [ "`cat /etc/exports 2>/dev/null`" ]; then cat /etc/exports 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,no_root_squash|no_all_squash ,${SED_RED_YELLOW}," | sed -${E} "s,insecure,${SED_RED}," + if [ "$(cat /etc/exports 2>/dev/null)" ]; then grep -v "^#" /etc/exports 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,no_root_squash|no_all_squash ,${SED_RED_YELLOW}," | sed -${E} "s,insecure,${SED_RED}," else echo_not_found "/etc/exports" fi echo "" @@ -2068,31 +2353,31 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Kerberos print_2title "Searching kerberos conf files and tickets" print_info "https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88#pass-the-ticket-ptt" - kadmin_exists="`command -v kadmin`" - klist_exists="`command -v klist`" + kadmin_exists="$(command -v kadmin)" + klist_exists="$(command -v klist)" if [ "$kadmin_exists" ]; then echo "kadmin was found on $kadmin_exists" | sed "s,$kadmin_exists,${SED_RED},"; fi if [ "$klist_exists" ] && [ -x "$klist_exists" ]; then echo "klist execution"; klist; fi printf "%s\n" "$PSTORAGE_KERBEROS" | while read f; do if [ -r "$f" ]; then - if [ "`echo \"$f\" | grep .k5login`" ]; then + if echo "$f" | grep -q .k5login; then echo ".k5login file (users with access to the user who has this file in his home)" cat "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED},g" - elif [ "`echo \"$f\" | grep keytab`" ]; then + elif echo "$f" | grep -q keytab; then echo "" echo "keytab file found, you may be able to impersonate some kerberos principals and add users or modify passwords" klist -k "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED},g" - printf "`klist -k \"$f\" 2>/dev/null`\n" | awk '{print $2}' | while read l; do - if [ "$l" ] && [ "`echo \"$l\" | grep \"@\"`" ]; then + printf "$(klist -k \"$f\" 2>/dev/null)\n" | awk '{print $2}' | while read l; do + if [ "$l" ] && echo "$l" | grep -q "@"; then printf "$ITALIC --- Impersonation command: ${NC}kadmin -k -t /etc/krb5.keytab -p \"$l\"\n" | sed -${E} "s,$l,${SED_RED},g" #kadmin -k -t /etc/krb5.keytab -p "$l" -q getprivs 2>/dev/null #This should show the permissions of each impersoanted user, the thing is that in a test it showed that every user had the same permissions (even if they didn't). So this test isn't valid #We could also try to create a new user or modify a password, but I'm not user if linpeas should do that fi done - elif [ "`echo \"$f\" | grep krb5.conf`" ]; then + elif echo "$f" | grep -q krb5.conf; then ls -l "$f" cat "$f" 2>/dev/null | grep default_ccache_name | sed -${E} "s,default_ccache_name,${SED_RED},"; - elif [ "`echo \"$f\" | grep kadm5.acl`" ]; then + elif echo "$f" | grep -q kadm5.acl; then ls -l "$f" cat "$f" 2>/dev/null fi @@ -2115,7 +2400,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then printf "%s\n" "$PSTORAGE_LOGSTASH" | while read d; do if [ -r "$d/startup.options" ]; then echo "Logstash is running as user:" - cat "$d/startup.options" 2>/dev/null | grep "LS_USER\|LS_GROUP" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed -${E} "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,root,${SED_RED}," + cat "$d/startup.options" 2>/dev/null | grep "LS_USER\|LS_GROUP" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed -${E} "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,root,${SED_RED}," fi cat "$d/conf.d/out*" | grep "exec\s*{\|command\s*=>" | sed -${E} "s,exec\W*\{|command\W*=>,${SED_RED}," cat "$d/conf.d/filt*" | grep "path\s*=>\|code\s*=>\|ruby\s*{" | sed -${E} "s,path\W*=>|code\W*=>|ruby\W*\{,${SED_RED}," @@ -2137,7 +2422,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then echo "" #-- SI) Cached AD Hashes - adhashes=`ls "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null` + adhashes=$(ls "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null) print_2title "Searching AD cached hashes" if [ "$adhashes" ]; then ls -l "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null @@ -2148,7 +2433,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Screen sessions print_2title "Searching screen sessions" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" - screensess=`screen -ls 2>/dev/null` + screensess=$(screen -ls 2>/dev/null) if [ "$screensess" ]; then printf "$screensess" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,No Sockets found.*,${C}[32m&${C}[0m," else echo_not_found "screen" @@ -2156,8 +2441,8 @@ if [ "`echo $CHECKS | grep SofI`" ]; then echo "" #-- SI) Tmux sessions - tmuxdefsess=`tmux ls 2>/dev/null` - tmuxnondefsess=`ps auxwww | grep "tmux " | grep -v grep` + tmuxdefsess=$(tmux ls 2>/dev/null) + tmuxnondefsess=$(ps auxwww | grep "tmux " | grep -v grep) print_2title "Searching tmux sessions"$N print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" if [ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ]; then @@ -2212,7 +2497,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) passwd files (splunk) print_2title "Searching uncommon passwd files (splunk)" - SPLUNK_BIN="`command -v splunk 2>/dev/null`" + SPLUNK_BIN="$(command -v splunk 2>/dev/null)" if [ "$SPLUNK_BIN" ]; then echo "splunk binary was found installed on $SPLUNK_BIN" | sed "s,.*,${SED_RED},"; fi printf "%s\n" "$PSTORAGE_SPLUNK" | sort | uniq | while read f; do if [ -f "$f" ] && ! [ -x "$f" ]; then @@ -2222,30 +2507,38 @@ if [ "`echo $CHECKS | grep SofI`" ]; then done echo "" + print_2title "Analyzing kcpassword files" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#kcpassword" + printf "%s\n" "$PSTORAGE_KCPASSWORD\n" | while read f; do + echo "$f" | sed -${E} "s,.*,${SED_RED}," + base64 "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + done + echo "" + ##-- SI) Gitlab print_2title "Searching GitLab related files" #Check gitlab-rails - if [ "`command -v gitlab-rails`" ]; then + if [ "$(command -v gitlab-rails)" ]; then echo "gitlab-rails was found. Trying to dump users..." gitlab-rails runner 'User.where.not(username: "peasssssssss").each { |u| pp u.attributes }' | sed -${E} "s,email|password,${SED_RED}," echo "If you have enough privileges, you can make an account under your control administrator by running: gitlab-rails runner 'user = User.find_by(email: \"youruser@example.com\"); user.admin = TRUE; user.save!'" echo "Alternatively, you could change the password of any user by running: gitlab-rails runner 'user = User.find_by(email: \"admin@example.com\"); user.password = \"pass_peass_pass\"; user.password_confirmation = \"pass_peass_pass\"; user.save!'" echo "" fi - if [ "`command -v gitlab-backup`" ]; then + if [ "$(command -v gitlab-backup)" ]; then echo "If you have enough privileges, you can create a backup of all the repositories inside gitlab using 'gitlab-backup create'" echo "Then you can get the plain-text with something like 'git clone \@hashed/19/23/14348274[...]38749234.bundle'" echo "" fi #Check gitlab files printf "%s\n" "$PSTORAGE_GITLAB" | sort | uniq | while read f; do - if [ "`echo $f | grep secrets.yml`" ]; then + if echo $f | grep -q secrets.yml; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" 2>/dev/null | grep -Iv "^$" | grep -v "^#" - elif [ "`echo $f | grep gitlab.yml`" ]; then + elif echo $f | grep -q gitlab.yml; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" | grep -A 4 "repositories:" - elif [ "`echo $f | grep gitlab.rb`" ]; then + elif echo $f | grep -q gitlab.rb; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" | grep -Iv "^$" | grep -v "^#" | sed -${E} "s,email|user|password,${SED_RED}," fi @@ -2264,7 +2557,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) containerd installed print_2title "Checking if containerd(ctr) is available" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/containerd-ctr-privilege-escalation" - containerd=`command -v ctr` + containerd=$(command -v ctr) if [ "$containerd" ]; then echo "ctr was found in $containerd, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," ctr image list @@ -2274,7 +2567,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) runc installed print_2title "Checking if runc is available" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/runc-privilege-escalation" - runc=`command -v runc` + runc=$(command -v runc) if [ "$runc" ]; then echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," fi @@ -2299,7 +2592,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) S/Key athentication print_2title "S/Key authentication" - if [ "`grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep skey`" ]; then + if grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep -q skey; then printf "System supports$RED S/Key$NC authentication\n" if ! [ -d /etc/skey/ ]; then echo "${GREEN}S/Key authentication enabled, but has not been initialized" @@ -2314,7 +2607,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) YubiKey athentication print_2title "YubiKey authentication" - if [ "`grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep yubikey`" ]; then + if grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep -q yubikey; then printf "System supports$RED YubiKey$NC authentication\n" if ! [ "$IAMROOT" ] && [ -w /var/db/yubikey/ ]; then echo "${RED}/var/db/yubikey/ is writable by you" @@ -2358,7 +2651,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then fi -if [ "`echo $CHECKS | grep IntFiles`" ]; then +if echo $CHECKS | grep -q IntFiles; then ########################################### #----------) Interesting files (----------# ########################################### @@ -2373,11 +2666,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$STRACE" ]; then echo_not_found "strace" fi - find / -perm -4000 -type f 2>/dev/null | xargs ls -lahtr | while read s; do + find / -perm -4000 -type f ! -path "/dev/*" 2>/dev/null | while read s; do + s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder - if [ "`echo \"$s\" | grep -E \"^total\"`" ]; then break; fi + if echo "$s" | grep -qE "^total"; then break; fi - sname="`echo \"$s\" | awk '{print $9}'`" + sname="$(echo $s | awk '{print $9}')" if [ "$sname" = "." ] || [ "$sname" = ".." ]; then true #Don't do nothing elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then @@ -2387,28 +2681,28 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then else c="a" for b in $sidB; do - if [ "`echo $s | grep $(echo $b | cut -d % -f 1)`" ]; then + if echo $s | grep -q $(echo $b | cut -d % -f 1); then echo "$s" | sed -${E} "s,$(echo $b | cut -d % -f 1),${C}[1;31m& ---> $(echo $b | cut -d % -f 2)${C}[0m," c="" break; fi done; if [ "$c" ]; then - if [ "`echo \"$s\" | grep -E \"$sidG1\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG2\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG3\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG4\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB2\"`" ]; then + if echo \"$s\" | grep -qE "$sidG1" || echo "$s" | grep -qE "$sidG2" || echo "$s" | grep -qE "$sidG3" || echo "$s" | grep -qE "$sidG4" || echo "$s" | grep -qE "$sidVB" || echo "$s" | grep -qE "$sidVB2"; then echo "$s" | sed -${E} "s,$sidG1,${SED_GREEN}," | sed -${E} "s,$sidG2,${SED_GREEN}," | sed -${E} "s,$sidG3,${SED_GREEN}," | sed -${E} "s,$sidG4,${SED_GREEN}," | sed -${E} "s,$sidVB,${SED_RED_YELLOW}," | sed -${E} "s,$sidVB2,${SED_RED_YELLOW}," else echo "$s (Unknown SUID binary)" | sed -${E} "s,/.*,${SED_RED}," printf $ITALIC if [ "$STRINGS" ]; then $STRINGS "$sname" 2>/dev/null | sort | uniq | while read sline; do - sline_first="`echo \"$sline\" | cut -d ' ' -f1`" - if [ "`echo \"$sline_first\" | grep -Ev \"$cfuncs\"`" ]; then - if [ "`echo \"$sline_first\" | grep \"/\"`" ] && [ -f "$sline_first" ]; then #If a path + sline_first="$(echo \"$sline\" | cut -d ' ' -f1)" + if echo "$sline_first" | grep -qEv "$cfuncs"; then + if echo "$sline_first" | grep -q "/" && [ -f "$sline_first" ]; then #If a path if [ -O "$sline_first" ] || [ -w "$sline_first" ]; then #And modifiable printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is using $RED$sline_first$NC$ITALIC and you can modify it (strings line: $sline) (https://tinyurl.com/suidpath)\n" fi else #If not a path - if [ ${#sline_first} -gt 2 ] && [ "`command -v \"$sline_first\" 2>/dev/null | grep '/' `" ] && [ "`echo \"$sline_first\" | grep -v \"..\" `" ]; then #Check if existing binary + if [ ${#sline_first} -gt 2 ] && command -v "$sline_first" 2>/dev/null | grep -q '/' && echo "$sline_first" | grep -qv ".."; then #Check if existing binary printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is executing $RED$sline_first$NC$ITALIC and you can impersonate it (strings line: $sline) (https://tinyurl.com/suidpath)\n" fi fi @@ -2434,11 +2728,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) SGID print_2title "SGID" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" - find / -perm -2000 -type f 2>/dev/null | xargs ls -lahtr | while read s; do + find / -perm -2000 -type f ! -path "/dev/*" 2>/dev/null | while read s; do + s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder - if [ "`echo \"$s\" | grep -E \"^total\"`" ];then break; fi + if echo "$s" | grep -qE "^total";then break; fi - sname="`echo \"$s\" | awk '{print $9}'`" + sname="$(echo $s | awk '{print $9}')" if [ "$sname" = "." ] || [ "$sname" = ".." ]; then true #Don't do nothing elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then @@ -2448,38 +2743,38 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then else c="a" for b in $sidB; do - if [ "`echo \"$s\" | grep $(echo \"$b\" | cut -d % -f 1)`" ]; then + if echo "$s" | grep -q $(echo \"$b\" | cut -d % -f 1); then echo "$s" | sed -${E} "s,$(echo \"$b\" | cut -d % -f 1),${C}[1;31m& ---> $(echo $b | cut -d % -f 2)${C}[0m," c="" break; fi done; if [ "$c" ]; then - if [ "`echo \"$s\" | grep -E \"$sidG1\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG2\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG3\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG4\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB2\"`" ]; then + if echo "$s" | grep -qE "$sidG1" || echo "$s" | grep -qE "$sidG2" || echo "$s" | grep -qE "$sidG3" || echo "$s" | grep -qE "$sidG4" || echo "$s" | grep -qE "$sidVB" || echo "$s" | grep -qE "$sidVB2"; then echo "$s" | sed -${E} "s,$sidG1,${SED_GREEN}," | sed -${E} "s,$sidG2,${SED_GREEN}," | sed -${E} "s,$sidG3,${SED_GREEN}," | sed -${E} "s,$sidG4,${SED_GREEN}," | sed -${E} "s,$sidVB,${SED_RED_YELLOW}," | sed -${E} "s,$sidVB2,${SED_RED_YELLOW}," else echo "$s (Unknown SGID binary)" | sed -${E} "s,/.*,${SED_RED}," printf $ITALIC if [ "$STRINGS" ]; then $STRINGS "$sname" | sort | uniq | while read sline; do - sline_first="`echo \"$sline\" | cut -d ' ' -f1`" - if [ "`echo \"$sline_first\" | grep -Ev \"$cfuncs\"`" ]; then - if [ "`echo \"$sline_first\" | grep \"/\"`" ] && [ -f "$sline_first" ]; then #If a path + sline_first="$(echo \"$sline\" | cut -d ' ' -f1)" + if echo "$sline_first" | grep -qEv "$cfuncs"; then + if echo "$sline_first" | grep -q "/" && [ -f "$sline_first" ]; then #If a path if [ -O "$sline_first" ] || [ -w "$sline_first" ]; then #And modifiable printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is using $RED$sline_first$NC$ITALIC and you can modify it (strings line: $sline)\n" fi else #If not a path - if [ ${#sline_first} -gt 2 ] && [ "`command -v \"$sline_first\" 2>/dev/null | grep '/' `" ]; then #Check if existing binary + if [ ${#sline_first} -gt 2 ] && command -v "$sline_first" 2>/dev/null | grep -q '/'; then #Check if existing binary printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is executing $RED$sline_first$NC$ITALIC and you can impersonate it (strings line: $sline)\n" fi fi fi done if [ "$TIMEOUT" ] && [ "$STRACE" ] && [ ! "$SUPERFAST" ]; then - printf $ITALIC + printf "$ITALIC" echo " --- Trying to execute $sname with strace in order to look for hijackable libraries..." timeout 2 "$STRACE" "$sname" 2>&1 | grep -i -E "open|access|no such file" | sed -${E} "s,open|access|No such file,${SED_RED}$ITALIC,g" - printf $NC + printf "$NC" echo "" fi fi @@ -2495,10 +2790,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then printf $ITALIC"/etc/ld.so.conf\n"$NC; cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" cat /etc/ld.so.conf 2>/dev/null | while read l; do - if [ "`echo \"$l\" | grep include`" ]; then - ini_path="`echo \"$l\" | cut -d " " -f 2`" - fpath="`dirname \"$ini_path\"`" - if [ "`find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if echo "$l" | grep -q include; then + ini_path="$(echo \"$l\" | cut -d " " -f 2)" + fpath="$(dirname \"$ini_path\")" + if [ "$(find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi printf $ITALIC"$fpath\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" for f in $fpath/*; do printf $ITALIC" $f\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" @@ -2516,13 +2811,28 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then (cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" echo "" echo "Shell capabilities:" - (capsh --decode=0x"`cat \"/proc/$PPID/status\" 2>/dev/null | grep \"CapEff\" | awk '{print $2}'`" 2>/dev/null) || echo_not_found "capsh" + (capsh --decode=0x"$(cat \"/proc/$PPID/status\" 2>/dev/null | grep \"CapEff\" | awk '{print $2}')" 2>/dev/null) || echo_not_found "capsh" (cat "/proc/$PPID/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$PPID/status" echo "" echo "Files with capabilities (limited to 50):" getcap -r / 2>/dev/null | head -n 50 | while read cb; do - echo "$cb" | sed -${E} "s,$sudocapsB,${SED_RED}," | sed -${E} "s,$capsB,${SED_RED}," - if ! [ "$IAMROOT" ] && [ -w "`echo \"$cb\" | cut -d \" \" -f1`" ]; then + capsVB_vuln="" + + for capVB in $capsVB; do + capname="$(echo $capVB | cut -d ':' -f 1)" + capbins="$(echo $capVB | cut -d ':' -f 2)" + if [ "$(echo $cb | grep -Ei $capname)" ] && [ "$(echo $cb | grep -E $capbins)" ]; then + echo "$cb" | sed -${E} "s,.*,${SED_RED_YELLOW}," + capsVB_vuln="1" + break + fi + done + + if ! [ "$capsVB_vuln" ]; then + echo "$cb" | sed -${E} "s,$capsB,${SED_RED}," + fi + + if ! [ "$IAMROOT" ] && [ -w "$(echo \"$cb\" | cut -d" " -f1)" ]; then echo "$cb is writable" | sed -${E} "s,.*,${SED_RED}," fi done @@ -2532,7 +2842,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_2title "Users with capabilities" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#capabilities" if [ -f "/etc/security/capability.conf" ]; then - grep -v '^#\|none\|^$' /etc/security/capability.conf 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + grep -v '^#\|none\|^$' /etc/security/capability.conf 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," else echo_not_found "/etc/security/capability.conf" fi echo "" @@ -2540,14 +2850,26 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Files with ACLs print_2title "Files with ACLs (limited to 50)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#acls" - ((getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 50 | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + ( (getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + + if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$(command -v getfacl)" ]; then #Find ACL files in macos (veeeery slow) + ls -RAle / 2>/dev/null | grep -v "group:everyone deny delete" | grep -E -B1 "\d: " | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + fi echo "" + ##-- IF) Files with ResourceFork + #if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then # TOO SLOW, CHECK IT LATER + # print_2title "Files with ResourceFork" + # print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#resource-forks-or-macos-ads" + # find $HOMESEARCH -type f -exec ls -ld {} \; 2>/dev/null | grep -E ' [x\-]@ ' | awk '{printf $9; printf "\n"}' | xargs -I {} xattr -lv {} | grep "com.apple.ResourceFork" + #fi + #echo "" + ##-- IF) .sh files in PATH print_2title ".sh files in path" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#script-binaries-in-path" echo $PATH | tr ":" "\n" | while read d; do - for f in `find "$d" -name "*.sh" 2>/dev/null`; do + for f in $(find "$d" -name "*.sh" 2>/dev/null); do if ! [ "$IAMROOT" ] && [ -O "$f" ]; then echo "You own the script: $f" | sed -${E} "s,.*,${SED_RED}," elif ! [ "$IAMROOT" ] && [ -w "$f" ]; then #If write permision, win found (no check exploits) @@ -2559,6 +2881,11 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then done echo "" + if [ "$MACPEAS" ]; then + print_2title "Unsigned Applications" + macosNotSigned /System/Applications + fi + ##-- IF) Unexpected folders in / print_2title "Unexpected in root" if [ "$MACPEAS" ]; then @@ -2575,7 +2902,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" if ! [ "$IAMROOT" ] && [ -w "/etc/profile" ]; then echo "You can modify /etc/profile" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/profile.d/" ]; then echo "You have write privileges over /etc/profile.d/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/profile.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/profile.d/ '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/profile.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/profile.d/ '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi fi echo "" @@ -2584,25 +2911,25 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#init-init-d-systemd-and-rc-d" if [ ! "$MACPEAS" ]; then #Those folders don´t exist on a MacOS if ! [ "$IAMROOT" ] && [ -w "/etc/init/" ]; then echo "You have write privileges over /etc/init/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/init.d/" ]; then echo "You have write privileges over /etc/init.d/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/rc.d/init.d" ]; then echo "You have write privileges over /etc/rc.d/init.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/usr/local/etc/rc.d" ]; then echo "You have write privileges over /usr/local/etc/rc.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/rc.d" ]; then echo "You have write privileges over /etc/rc.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/systemd/" ]; then echo "You have write privileges over /etc/systemd/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/lib/systemd/" ]; then echo "You have write privileges over /lib/systemd/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi fi echo "" ##-- IF) Hashes in passwd file print_list "Hashes inside passwd file? ........... " - if [ "`grep -v '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null`" ]; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if grep -qv '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi @@ -2616,16 +2943,24 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Credentials in fstab print_list "Credentials in fstab/mtab? ........... " - if [ "`grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null`" ]; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if grep -qE "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi ##-- IF) Read shadow files print_list "Can I read shadow files? ............. " - if [ "`cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null`" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if [ "$(cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null)" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi + print_list "Can I read shadow plists? ............ " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"; defaults read "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + + print_list "Can I write shadow plists? ........... " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -w "$l" ];then echo "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + ##-- IF) Read opasswd file print_list "Can I read opasswd file? ............. " if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" @@ -2635,7 +2970,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) network-scripts print_list "Can I write in network-scripts? ...... " if ! [ "$IAMROOT" ] && [ -w "/etc/sysconfig/network-scripts/" ]; then echo "You have write privileges on /etc/sysconfig/network-scripts/" | sed -${E} "s,.*,${SED_RED_YELLOW}," - elif [ "`find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges on `find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null`" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ "$(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges on $(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW}," else echo_no fi @@ -2646,13 +2981,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Root files in home dirs print_2title "Searching root files in home dirs (limit 30)" - (find $HOMESEARCH /Users -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${SED_RED},") || echo_not_found + (find $HOMESEARCH /Users -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_RED},") || echo_not_found echo "" ##-- IF) Others files in my dirs if ! [ "$IAMROOT" ]; then print_2title "Searching folders owned by me containing others files on it (limit 100)" - (find / -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed "s,root,${C}[1;13m&${C}[0m,g" + (find / -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" echo "" fi @@ -2673,13 +3008,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#logrotate-exploitation" logrotate --version 2>/dev/null || echo_not_found "logrotate" lastWlogFolder="ImPOsSiBleeElastWlogFolder" - logfind=`find / -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 100` + logfind=$(find / -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 100) printf "%s\n" "$logfind" | while read log; do - if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && [ "`echo \"$log\" | grep -E \"$Wfolders\"`" ]; then #Only print info if something interesting found - if [ "`echo \"$log\" | grep \"You_can_write_more_log_files_inside_last_directory\"`" ]; then printf $ITALIC"$log\n"$NC; - elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "`command -v logrotate 2>/dev/null`" ] && [ "`logrotate --version 2>&1 | grep -E ' 1| 2| 3.1'`" ]; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case + if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders"; then #Only print info if something interesting found + if echo "$log" | grep -q "You_can_write_more_log_files_inside_last_directory"; then printf $ITALIC"$log\n"$NC; + elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "$(command -v logrotate 2>/dev/null)" ] && logrotate --version 2>&1 | grep -qE ' 1| 2| 3.1'; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case elif ! [ "$IAMROOT" ] && [ -w "$log" ]; then echo "Writable: $log"; - elif ! [ "$IAMROOT" ] && [ "`echo \"$log\" | grep -E \"$Wfolders\"`" ] && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; + elif ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; fi fi done @@ -2716,7 +3051,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Backup files print_2title "Backup files (limited 100)" - backs=`find / -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null` + backs=$(find / -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null) printf "%s\n" "$backs" | head -n 100 | while read b ; do if [ -r "$b" ]; then ls -l "$b" | grep -Ev "$notBackup" | grep -Ev "$notExtensions" | sed -${E} "s,backup|bck|\.bak|\.old,${SED_RED},g"; @@ -2725,26 +3060,33 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then echo "" ##-- IF) DB files + if [ "$MACPEAS" ]; then + print_2title "Reading messages database" + sqlite3 $HOME/Library/Messages/chat.db 'select * from message' 2>/dev/null + sqlite3 $HOME/Library/Messages/chat.db 'select * from attachment' 2>/dev/null + sqlite3 $HOME/Library/Messages/chat.db 'select * from deleted_messages' 2>/dev/null + + fi print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" - FILECMD="`command -v file 2>/dev/null`" + FILECMD="$(command -v file 2>/dev/null)" if [ "$PSTORAGE_DATABASE" ]; then printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do if [ "$FILECMD" ]; then - echo "Found: `file \"$f\"`" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; + echo "Found: $(file \"$f\")" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; else echo "Found: $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; fi done SQLITEPYTHON="" printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do - if ([ -r "$f" ] && [ "$FILECMD" ] && [ "`file \"$f\" | grep -i sqlite`" ]) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then #If readable and filecmd and sqlite, or readable and not filecmd + if ([ -r "$f" ] && [ "$FILECMD" ] && file "$f" | grep -qi sqlite) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then #If readable and filecmd and sqlite, or readable and not filecmd printf $GREEN" -> Extracting tables from$NC $f $DG(limit 20)\n"$NC - if [ "`command -v sqlite3 2>/dev/null`" ]; then - tables=`sqlite3 $f ".tables" 2>/dev/null` + if [ "$(command -v sqlite3 2>/dev/null)" ]; then + tables=$(sqlite3 $f ".tables" 2>/dev/null) #printf "$tables\n" | sed "s,user.*\|credential.*,${SED_RED},g" - elif [ "`command -v python 2>/dev/null`" ] || [ "`command -v python3 2>/dev/null`" ]; then - SQLITEPYTHON=`command -v python 2>/dev/null || command -v python3 2>/dev/null` - tables=`$SQLITEPYTHON -c "print('\n'.join([t[0] for t in __import__('sqlite3').connect('$f').cursor().execute('SELECT name FROM sqlite_master WHERE type=\'table\' and tbl_name NOT like \'sqlite_%\';').fetchall()]))" 2>/dev/null` + elif [ "$(command -v python 2>/dev/null)" ] || [ "$(command -v python3 2>/dev/null)" ]; then + SQLITEPYTHON=$(command -v python 2>/dev/null || command -v python3 2>/dev/null) + tables=$($SQLITEPYTHON -c "print('\n'.join([t[0] for t in __import__('sqlite3').connect('$f').cursor().execute('SELECT name FROM sqlite_master WHERE type=\'table\' and tbl_name NOT like \'sqlite_%\';').fetchall()]))" 2>/dev/null) #printf "$tables\n" | sed "s,user.*\|credential.*,${SED_RED},g" else tables="" @@ -2754,13 +3096,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then columns="" # Search for credentials inside the table using sqlite3 if [ -z "$SQLITEPYTHON" ]; then - columns=`sqlite3 $f ".schema $t" 2>/dev/null | grep "CREATE TABLE"` + columns=$(sqlite3 $f ".schema $t" 2>/dev/null | grep "CREATE TABLE") # Search for credentials inside the table using python else - columns=`$SQLITEPYTHON -c "print(__import__('sqlite3').connect('$f').cursor().execute('SELECT sql FROM sqlite_master WHERE type!=\'meta\' AND sql NOT NULL AND name =\'$t\';').fetchall()[0][0])" 2>/dev/null` + columns=$($SQLITEPYTHON -c "print(__import__('sqlite3').connect('$f').cursor().execute('SELECT sql FROM sqlite_master WHERE type!=\'meta\' AND sql NOT NULL AND name =\'$t\';').fetchall()[0][0])" 2>/dev/null) fi #Check found columns for interesting fields - INTCOLUMN=`echo "$columns" | grep -i "username\|passw\|credential\|email\|hash\|salt"` + INTCOLUMN=$(echo "$columns" | grep -i "username\|passw\|credential\|email\|hash\|salt") if [ "$INTCOLUMN" ]; then printf ${BLUE}" --> Found interesting column names in$NC $t $DG(output limit 10)\n"$NC | sed -${E} "s,user.*|credential.*,${SED_RED},g" printf "$columns\n" | sed -${E} "s,username|passw|credential|email|hash|salt|$t,${SED_RED},g" @@ -2774,6 +3116,11 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then fi echo "" + if [ "$MACPEAS" ]; then + print_2title "Downloaded Files" + sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 'select LSQuarantineAgentName, LSQuarantineDataURLString, LSQuarantineOriginURLString, date(LSQuarantineTimeStamp + 978307200, "unixepoch") as downloadedDate from LSQuarantineEvent order by LSQuarantineTimeStamp' | sort | grep -Ev "\|\|\|" + fi + ##-- IF) Web files print_2title "Web files?(output limit)" ls -alhR /var/www/ 2>/dev/null | head @@ -2789,7 +3136,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Readable files in /tmp, /var/tmp, bachups print_2title "Readable files inside /tmp, /var/tmp, /private/tmp, /private/var/at/tmp, /private/var/tmp, and backup folders (limit 70)" - filstmpback=`find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70` + filstmpback=$(find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70) printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done echo "" @@ -2798,10 +3145,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_2title "Interesting writable files owned by me or writable by everyone (not in Home) (max 500)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" #In the next file, you need to specify type "d" and "f" to avoid fake link files apparently writable by all - obmowbe=`find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500` + obmowbe=$(find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) printf "%s\n" "$obmowbe" | while read entry; do - if [ "`echo \"$entry\" | grep \"You_can_write_even_more_files_inside_last_directory\"`" ]; then printf $ITALIC"$entry\n"$NC; - elif [ "`echo \"$entry\" | grep -E \"$writeVB\"`" ]; then + if echo "$entry" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$entry\n"$NC; + elif echo "$entry" | grep -qE "$writeVB"; then echo "$entry" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," else echo "$entry" | sed -${E} "s,$writeB,${SED_RED}," @@ -2814,12 +3161,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$IAMROOT" ]; then print_2title "Interesting GROUP writable files (not in Home) (max 500)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" - for g in `groups`; do - printf " Group "$GREEN"$g:\n"$NC; - iwfbg=`find / '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500` + for g in $(groups); do + printf " Group $GREEN$g:\n$NC"; + iwfbg=$(find / '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) printf "%s\n" "$iwfbg" | while read entry; do - if [ "`echo \"$entry\" | grep \"You_can_write_even_more_files_inside_last_directory\"`" ]; then printf $ITALIC"$entry\n"$NC; - elif [ "`echo \"$entry\" | grep -E \"$writeVB\"`" ]; then + if echo "$entry" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$entry\n"$NC; + elif echo "$entry" | grep -Eq "$writeVB"; then echo "$entry" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," else echo "$entry" | sed -${E} "s,$writeB,${SED_RED}," @@ -2831,7 +3178,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Passwords in config PHP files print_2title "Searching passwords in config PHP files" - printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiI "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" $c 2>/dev/null | grep -Ev "function|password.*= ?\"\"|password.*= ?''" | sed '/^.\{150\}./d' | sort | uniq | sed -${E} "s,[pP][aA][sS][sS][wW]|[dD][bB]_[pP][aA][sS][sS],${SED_RED},g"; done + printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiI "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" "$c" 2>/dev/null | grep -Ev "function|password.*= ?\"\"|password.*= ?''" | sed '/^.\{150\}./d' | sort | uniq | sed -${E} "s,[pP][aA][sS][sS][wW]|[dD][bB]_[pP][aA][sS][sS],${SED_RED},g"; done echo "" ##-- IF) TTY passwords @@ -2863,7 +3210,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then ##-- IF) Find possible files with passwords print_2title "Finding passwords inside key folders (limit 70) - only PHP files" - intpwdfiles=`timeout 150 grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" $HOMESEARCH /var/www /usr/local/www/ $backup_folders_row /tmp /etc /root /mnt /Users /private 2>/dev/null` + intpwdfiles=$(timeout 150 grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" "$HOMESEARCH" /var/www /usr/local/www/ "$backup_folders_row" /tmp /etc /root /mnt /Users /private 2>/dev/null) printf "%s\n" "$intpwdfiles" | grep -I ".php:" | sed '/^.\{150\}./d' | sort | uniq | grep -iIv "linpeas" | head -n 70 | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[dD][eE][fF][iI][nN][eE],${SED_RED},g" echo "" @@ -2879,10 +3226,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Find possible conf files with passwords print_2title "Finding possible password in config files" - ppicf=`find $HOMESEARCH /etc /root /tmp /private /Applications -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" 2>/dev/null` + ppicf=$(find "$HOMESEARCH" /etc /root /tmp /private /Applications -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" 2>/dev/null) printf "%s\n" "$ppicf" | while read f; do - if [ "`grep -EiI 'passwd.*|creden.*' \"$f\" 2>/dev/null`" ]; then - echo $ITALIC" $f"$NC + if grep -qEiI 'passwd.*|creden.*' \"$f\" 2>/dev/null; then + echo "$ITALIC $f$NC" grep -EiIo 'passw.*|creden.*' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" fi done @@ -2890,8 +3237,8 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Find possible files with usernames print_2title "Finding 'username' string inside key folders (limit 70)" - timeout 150 grep -RiIE "username.*[=:].+" $HOMESEARCH /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" - timeout 150 grep -RiIE "username.*[=:].+" /var/www $backup_folders_row /tmp /etc /root /mnt /private 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" + timeout 150 grep -RiIE "username.*[=:].+" "$HOMESEARCH" /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" + timeout 150 grep -RiIE "username.*[=:].+" /var/www "$backup_folders_row" /tmp /etc /root /mnt /private 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" echo "" ##-- IF) Specific hashes inside files @@ -2905,7 +3252,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then regexapr1md5='\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}' regexsha512crypt='\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}' regexapachesha='\{SHA\}[0-9a-zA-Z/_=]{10,}' - timeout 150 grep -RIEHo "$regexblowfish|$regexjoomlavbulletin|$regexphpbb3|$regexwp|$regexdrupal|$regexlinuxmd5|$regexapr1md5|$regexsha512crypt|$regexapachesha" /etc $backup_folders_row /tmp /var/tmp /var/www /root $HOMESEARCH /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | head -n 70 | sed "s,:.*,${SED_RED}," + timeout 150 grep -RIEHo "$regexblowfish|$regexjoomlavbulletin|$regexphpbb3|$regexwp|$regexdrupal|$regexlinuxmd5|$regexapr1md5|$regexsha512crypt|$regexapachesha" /etc "$backup_folders_row" /tmp /var/tmp /var/www /root "$HOMESEARCH" /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | head -n 70 | sed "s,:.*,${SED_RED}," echo "" fi @@ -2916,15 +3263,15 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then regexsha1='(^|[^a-zA-Z0-9])[a-fA-F0-9]{40}([^a-zA-Z0-9]|$)' regexsha256='(^|[^a-zA-Z0-9])[a-fA-F0-9]{64}([^a-zA-Z0-9]|$)' regexsha512='(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)' - timeout 150 grep -RIEHo "$regexmd5|$regexsha1|$regexsha256|$regexsha512" /etc $backup_folders_row /tmp /var/tmp /var/www /root $HOMESEARCH /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | awk -F: '{if (pre != $1){ print $0; }; pre=$1}' | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 2){ print line_init; } if (cont == "2"){print " #)There are more hashes files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 50 | sed "s,:.*,${SED_RED}," | sed "s,There are more hashes files in the previous parent folder,${C}[3m&${C}[0m," + timeout 150 grep -RIEHo "$regexmd5|$regexsha1|$regexsha256|$regexsha512" /etc "$backup_folders_row" /tmp /var/tmp /var/www /root "$HOMESEARCH" /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | awk -F: '{if (pre != $1){ print $0; }; pre=$1}' | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 2){ print line_init; } if (cont == "2"){print " #)There are more hashes files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 50 | sed "s,:.*,${SED_RED}," | sed "s,There are more hashes files in the previous parent folder,${C}[3m&${C}[0m," echo "" fi if ! [ "$SUPERFAST" ] && ! [ "$FAST" ]; then ##-- IF) Find URIs with user:password@hoststrings print_2title "Finding URIs with user:password@host inside key folders" - timeout 150 find /var/www $backup_folders_row /tmp /etc /var/log /private/var/log -type f -exec grep -RiIE "://(.+):(.+)@" "{}" \; 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" - timeout 150 grep -RiIE "://(.+):(.+)@" $HOMESEARCH 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" + timeout 150 find /var/www "$backup_folders_row" /tmp /etc /var/log /private/var/log -type f -exec grep -RiIE "://(.+):(.+)@" "{}" \; 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" + timeout 150 grep -RiIE "://(.+):(.+)@" "$HOMESEARCH" 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /mnt 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /root 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" @@ -2932,4 +3279,4 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then timeout 150 grep -RiIE "://(.+):(.+)@" /Applications 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" echo "" fi -fi \ No newline at end of file +fi diff --git a/linPEAS/builder/src/__pycache__/fileRecord.cpython-39.pyc b/linPEAS/builder/src/__pycache__/fileRecord.cpython-39.pyc deleted file mode 100644 index 6358e36..0000000 Binary files a/linPEAS/builder/src/__pycache__/fileRecord.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/src/__pycache__/linpeasBuilder.cpython-39.pyc b/linPEAS/builder/src/__pycache__/linpeasBuilder.cpython-39.pyc deleted file mode 100644 index 7bfd02c..0000000 Binary files a/linPEAS/builder/src/__pycache__/linpeasBuilder.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/src/__pycache__/peasLoaded.cpython-39.pyc b/linPEAS/builder/src/__pycache__/peasLoaded.cpython-39.pyc deleted file mode 100644 index 11a9a22..0000000 Binary files a/linPEAS/builder/src/__pycache__/peasLoaded.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/src/__pycache__/peassRecord.cpython-39.pyc b/linPEAS/builder/src/__pycache__/peassRecord.cpython-39.pyc deleted file mode 100644 index 8610b94..0000000 Binary files a/linPEAS/builder/src/__pycache__/peassRecord.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/src/__pycache__/yamlGlobals.cpython-39.pyc b/linPEAS/builder/src/__pycache__/yamlGlobals.cpython-39.pyc deleted file mode 100644 index 0637651..0000000 Binary files a/linPEAS/builder/src/__pycache__/yamlGlobals.cpython-39.pyc and /dev/null differ diff --git a/linPEAS/builder/src/fileRecord.py b/linPEAS/builder/src/fileRecord.py index 740c978..3388faf 100644 --- a/linPEAS/builder/src/fileRecord.py +++ b/linPEAS/builder/src/fileRecord.py @@ -46,6 +46,7 @@ class FileRecord: search_in = list(set(search_in + COMMON_FILE_FOLDERS)) #Check that folders to search in are specified in ROOT_FOLDER - assert all(r in ROOT_FOLDER for r in search_in) + for r in search_in: + assert r in ROOT_FOLDER, f"{r} not in {ROOT_FOLDER}" return search_in diff --git a/linPEAS/builder/src/linpeasBuilder.py b/linPEAS/builder/src/linpeasBuilder.py index 076eb24..908ae52 100644 --- a/linPEAS/builder/src/linpeasBuilder.py +++ b/linPEAS/builder/src/linpeasBuilder.py @@ -1,4 +1,5 @@ import re +import requests from .peasLoaded import PEASLoaded from .peassRecord import PEASRecord @@ -7,7 +8,7 @@ from .yamlGlobals import ( LINPEAS_BASE_PATH, PEAS_FINDS_MARKUP, PEAS_STORAGES_MARKUP, - PEAS_STORAGES_MARKUP, + PEAS_STORAGES_MARKUP, INT_HIDDEN_FILES_MARKUP, ROOT_FOLDER, STORAGE_TEMPLATE, @@ -17,7 +18,13 @@ from .yamlGlobals import ( STORAGE_LINE_EXTRA_MARKUP, EXTRASECTIONS_MARKUP, PEAS_VARIABLES_MARKUP, - YAML_VARIABLES + YAML_VARIABLES, + SUIDVB1_MARKUP, + SUIDVB2_MARKUP, + SUDOVB1_MARKUP, + SUDOVB2_MARKUP, + CAP_SETUID_MARKUP, + CAP_SETGID_MARKUP ) @@ -32,12 +39,15 @@ class LinpeasBuilder: self.linpeas_sh = file.read() def build(self): + print("[+] Building variables...") variables = self.__generate_variables() self.__replace_mark(PEAS_VARIABLES_MARKUP, variables, "") + print("[+] Building finds...") find_calls = self.__generate_finds() self.__replace_mark(PEAS_FINDS_MARKUP, find_calls, " ") + print("[+] Building storages...") storage_vars = self.__generate_storages() self.__replace_mark(PEAS_STORAGES_MARKUP, storage_vars, " ") @@ -45,16 +55,16 @@ class LinpeasBuilder: for s in re.findall(r'PSTORAGE_[\w]*', self.linpeas_sh): assert s in self.bash_storages, f"{s} isn't created" - #Replace interesting hidden files markup for a list of all the serched hidden files + #Replace interesting hidden files markup for a list of all the searched hidden files self.__replace_mark(INT_HIDDEN_FILES_MARKUP, sorted(self.hidden_files), "|") - #Check if there are duplicate peass marks + print("[+] Checking duplicates...") peass_marks = self.__get_peass_marks() for i,mark in enumerate(peass_marks): for j in range(i+1,len(peass_marks)): assert mark != peass_marks[j], f"Found repeated peass mark: {mark}" - #Generate autocheck sections + print("[+] Building autocheck sections...") sections = self.__generate_sections() for section_name, bash_lines in sections.items(): mark = "peass{"+section_name+"}" @@ -65,9 +75,22 @@ class LinpeasBuilder: self.__replace_mark(EXTRASECTIONS_MARKUP, list(""), "") #Delete extra markup - #Check that there aren peass marks left in linpeas + print("[+] Building GTFOBins lists...") + suidVB, sudoVB, capsVB = self.__get_gtfobins_lists() + self.__replace_mark(SUIDVB1_MARKUP, suidVB[:int(len(suidVB)/2)], "|") + self.__replace_mark(SUIDVB2_MARKUP, suidVB[int(len(suidVB)/2):], "|") + self.__replace_mark(SUDOVB1_MARKUP, sudoVB[:int(len(sudoVB)/2)], "|") + self.__replace_mark(SUDOVB2_MARKUP, sudoVB[int(len(sudoVB)/2):], "|") + self.__replace_mark(CAP_SETUID_MARKUP, capsVB, "|") + self.__replace_mark(CAP_SETGID_MARKUP, capsVB, "|") + + print("[+] Final sanity checks...") + #Check that there arent peass marks left in linpeas peass_marks = self.__get_peass_marks() assert len(peass_marks) == 0, f"There are peass marks left: {', '.join(peass_marks)}" + + #Check for empty seds + assert 'sed -${E} "s,,' not in self.linpeas_sh def __get_peass_marks(self): @@ -164,8 +187,6 @@ class LinpeasBuilder: return storages - - def __generate_sections(self) -> dict: """Generate sections for records with auto_check to True""" sections = {} @@ -186,7 +207,7 @@ class LinpeasBuilder: return sections def __construct_file_line(self, precord: PEASRecord, frecord: FileRecord, init: bool = True) -> str: - real_regex = frecord.regex[1:] if frecord.regex.startswith("*") else frecord.regex + real_regex = frecord.regex[1:] if frecord.regex.startswith("*") and len(frecord.regex) > 1 else frecord.regex real_regex = real_regex.replace(".","\\.").replace("*",".*") real_regex += "$" @@ -239,13 +260,32 @@ class LinpeasBuilder: #In case file is type "d" if frecord.files: for ffrecord in frecord.files: - ff_real_regex = ffrecord.regex[1:] if ffrecord.regex.startswith("*") else ffrecord.regex + ff_real_regex = ffrecord.regex[1:] if ffrecord.regex.startswith("*") and ffrecord.regex != "*" else ffrecord.regex ff_real_regex = ff_real_regex.replace("*",".*") analise_line += 'for ff in $(find "$f" -name "'+ffrecord.regex+'"); do ls -ld "$ff" | sed -${E} "s,'+ff_real_regex+',${SED_RED},"; ' + self.__construct_file_line(precord, ffrecord, init=False) analise_line += 'done; echo "";' return analise_line + def __get_gtfobins_lists(self) -> tuple: + r = requests.get("https://github.com/GTFOBins/GTFOBins.github.io/tree/master/_gtfobins") + bins = re.findall(r'/GTFOBins/GTFOBins.github.io/blob/master/_gtfobins/([\w_ \-]+).md', r.text) + + sudoVB = [] + suidVB = [] + capsVB = [] + + for b in bins: + rb = requests.get(f"https://raw.githubusercontent.com/GTFOBins/GTFOBins.github.io/master/_gtfobins/{b}.md") + if "sudo:" in rb.text: + sudoVB.append(b+"$") + if "suid:" in rb.text: + suidVB.append("/"+b+"$") + if "capabilities:" in rb.text: + capsVB.append(b) + + return (suidVB, sudoVB, capsVB) + def __replace_mark(self, mark: str, find_calls: list, join_char: str): """Substitude the markup with the actual code""" diff --git a/linPEAS/builder/src/yamlGlobals.py b/linPEAS/builder/src/yamlGlobals.py index c778345..04a74fa 100644 --- a/linPEAS/builder/src/yamlGlobals.py +++ b/linPEAS/builder/src/yamlGlobals.py @@ -33,3 +33,10 @@ YAML_VARIABLES = YAML_LOADED["variables"] INT_HIDDEN_FILES_MARKUP = YAML_LOADED["int_hidden_files_markup"] EXTRASECTIONS_MARKUP = YAML_LOADED["peas_extrasections_markup"] + +SUIDVB1_MARKUP = YAML_LOADED["suidVB1_markup"] +SUIDVB2_MARKUP = YAML_LOADED["suidVB2_markup"] +SUDOVB1_MARKUP = YAML_LOADED["sudoVB1_markup"] +SUDOVB2_MARKUP = YAML_LOADED["sudoVB2_markup"] +CAP_SETUID_MARKUP = YAML_LOADED["cap_setuid_markup"] +CAP_SETGID_MARKUP = YAML_LOADED["cap_setgid_markup"] \ No newline at end of file diff --git a/linPEAS/linpeas.sh b/linPEAS/linpeas.sh index 7ba1612..4f787b9 100755 --- a/linPEAS/linpeas.sh +++ b/linPEAS/linpeas.sh @@ -30,6 +30,10 @@ SED_RED_YELLOW="${C}[1;31;103m&${C}[0m" BLUE="${C}[1;34m" SED_BLUE="${C}[1;34m&${C}[0m" ITALIC_BLUE="${C}[1;34m${C}[3m" +LIGHT_MAGENTA="${C}[1;95m" +SED_LIGHT_MAGENTA="${C}[1;95m&${C}[0m" +LIGHT_CYAN="${C}[1;96m" +SED_LIGHT_CYAN="${C}[1;96m&${C}[0m" LG="${C}[1;37m" #LightGray SED_LG="${C}[1;37m&${C}[0m" DG="${C}[1;90m" #DarkGray @@ -45,7 +49,7 @@ ITALIC="${C}[3m" # --) FAST - Do not check 1min of procceses and su brute # --) SUPERFAST - FAST & do not search for special filaes in all the folders -if [ "`uname 2>/dev/null | grep 'Darwin'`" ] || [ "`/usr/bin/uname 2>/dev/null | grep 'Darwin'`" ]; then MACPEAS="1"; else MACPEAS=""; fi +if uname 2>/dev/null | grep -q 'Darwin' || /usr/bin/uname 2>/dev/null | grep -q 'Darwin'; then MACPEAS="1"; else MACPEAS=""; fi FAST="1" #By default stealth/fast mode SUPERFAST="" NOTEXPORT="" @@ -57,7 +61,7 @@ WAIT="" PASSWORD="" NOCOLOR="" VERBOSE="" -THREADS="`((grep -c processor /proc/cpuinfo 2>/dev/null) || ((command -v lscpu >/dev/null 2>&1) && (lscpu | grep '^CPU(s):' | awk '{print $2}')) || echo -n 2) | tr -d "\n"`" +THREADS="$( ( (grep -c processor /proc/cpuinfo 2>/dev/null) || ( (command -v lscpu >/dev/null 2>&1) && (lscpu | grep '^CPU(s):' | awk '{print $2}')) || echo -n 2) | tr -d "\n")" [ -z "$THREADS" ] && THREADS="2" #If THREADS is empty, put number 2 [ -n "$THREADS" ] && THREADS="2" #If THREADS is null, put number 2 [ "$THREADS" -eq "$THREADS" ] 2>/dev/null && : || THREADS="2" #It THREADS is not a number, put number 2 @@ -104,19 +108,23 @@ if [ "$MACPEAS" ]; then SCRIPTNAME="macpeas"; else SCRIPTNAME="linpeas"; fi if [ "$NOCOLOR" ]; then C="" RED="" - SED_RED="" + SED_RED="&" GREEN="" - SED_GREEN="" + SED_GREEN="&" YELLOW="" - SED_YELLOW="" - SED_RED_YELLOW="" + SED_YELLOW="&" + SED_RED_YELLOW="&" BLUE="" - SED_BLUE="" + SED_BLUE="&" ITALIC_BLUE="" + LIGHT_MAGENTA="" + SED_LIGHT_MAGENTA="&" + LIGHT_CYAN="" + SED_LIGHT_CYAN="&" LG="" - SED_LG="" + SED_LG="&" DG="" - SED_DG="" + SED_DG="&" NC="" UNDERLINED="" ITALIC="" @@ -129,100 +137,111 @@ fi print_banner(){ if [ "$MACPEAS" ]; then - bash -c "printf ' - \e[38;5;238;48;5;238m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m░\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m \e[38;5;119;48;5;71m\e[38;5;119;48;5;71m\e[38;5;119;48;5;71m▓\e[38;5;119;48;5;71m \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;239m▓\e[38;5;16;48;5;16m▓\e[38;5;244;48;5;244m▓\e[0m - \e[38;5;96;48;5;243m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;22m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;22;48;5;16m \e[38;5;119;48;5;22m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;234m░\e[38;5;16;48;5;16m▓\e[38;5;96;48;5;245m▓\e[0m - \e[38;5;96;48;5;234m▓\e[38;5;22;48;5;16m \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;16m \e[38;5;22;48;5;16m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;2m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;22m \e[38;5;119;48;5;2m \e[38;5;119;48;5;28m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;40m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;237m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[0m - \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;65m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;238m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;239m▓\e[38;5;119;48;5;7m▓\e[38;5;230;48;5;231m \e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;101;48;5;254m▓\e[38;5;97;48;5;243m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;82;48;5;248m▓\e[38;5;119;48;5;238m▓\e[38;5;71;48;5;233m▒\e[38;5;119;48;5;22m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;232m░\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;151m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;252;48;5;252m▓\e[38;5;251;48;5;251m▓\e[38;5;231;48;5;231m▓\e[38;5;239;48;5;239m▓\e[38;5;246;48;5;246m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;255m▒\e[38;5;119;48;5;59m▓\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m \e[38;5;16;48;5;16m░\e[38;5;16;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;232m \e[38;5;119;48;5;245m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;243;48;5;242m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;255;48;5;255m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;151;48;5;255m▒\e[38;5;113;48;5;242m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;64m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;114;48;5;16m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;233;48;5;233m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;237m▓\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;22m▒\e[38;5;60;48;5;240m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;240;48;5;240m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;145;48;5;248m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;240m▓\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;252m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;238;48;5;238m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;255;48;5;255m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;233m▒\e[38;5;119;48;5;236m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;232m▒\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;82;48;5;231m \e[38;5;108;48;5;255m▓\e[38;5;119;48;5;188m▓\e[38;5;119;48;5;251m▓\e[38;5;119;48;5;253m▓\e[38;5;65;48;5;255m▓\e[38;5;65;48;5;231m▓\e[38;5;230;48;5;231m \e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;65;48;5;248m▓\e[38;5;119;48;5;233m░\e[0m - \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;150m▒\e[38;5;128;48;5;254m▓\e[38;5;65;48;5;242m▓\e[38;5;119;48;5;237m▓\e[38;5;119;48;5;22m \e[38;5;119;48;5;2m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;28m \e[38;5;22;48;5;22m \e[38;5;119;48;5;234m░\e[38;5;119;48;5;235m▓\e[38;5;65;48;5;238m▓\e[38;5;119;48;5;245m▓\e[38;5;119;48;5;254m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;119;48;5;233m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m \e[38;5;119;48;5;22m \e[38;5;76;48;5;233m▓\e[38;5;119;48;5;238m▓\e[38;5;119;48;5;151m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;246;48;5;246m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m \e[38;5;22;48;5;232m \e[38;5;119;48;5;237m▓\e[38;5;113;48;5;251m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[38;5;231;48;5;231m▓\e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;22;48;5;16m \e[38;5;22;48;5;16m \e[0m - \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;236m▒\e[0m - \e[38;5;119;48;5;70m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;114;48;5;235m▒\e[0m - \e[38;5;119;48;5;70m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;28m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;232m \e[0m - \e[38;5;119;48;5;2m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m░\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;34m░\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;234m▒\e[0m - \e[38;5;119;48;5;237m▒\e[38;5;22;48;5;232m \e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;77m░\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;113;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;119;48;5;113m▒\e[38;5;113;48;5;113m▒\e[38;5;119;48;5;77m▒\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;239m▒\e[38;5;22;48;5;232m░\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m \e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;119;48;5;2m░\e[38;5;119;48;5;64m▒\e[38;5;22;48;5;16m \e[38;5;119;48;5;236m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;239m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;34m░\e[38;5;119;48;5;22m░\e[38;5;119;48;5;22m░\e[38;5;22;48;5;232m \e[38;5;119;48;5;236m▒\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;235m▒\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;2m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;22m▒\e[38;5;119;48;5;233m░\e[38;5;119;48;5;235m▒\e[38;5;119;48;5;235m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;65m▒\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;34m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;28m░\e[38;5;22;48;5;232m \e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;234m▒\e[38;5;119;48;5;234m▒\e[38;5;119;48;5;234m░\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;22;48;5;16m \e[38;5;16;48;5;16m▓\e[38;5;22;48;5;233m \e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;70m░\e[38;5;22;48;5;22m \e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - \e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;233m░\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;233m░\e[38;5;119;48;5;64m▒\e[38;5;119;48;5;70m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;82m░\e[38;5;119;48;5;76m░\e[38;5;119;48;5;70m▒\e[38;5;119;48;5;234m▒\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;16;48;5;16m▓\e[38;5;119;48;5;237m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[38;5;119;48;5;71m▒\e[0m - '"; - + bash -c "printf ' \e[38;5;238m▄\e[38;5;233m▄\e[38;5;235m▄\e[38;5;65m▄\e[48;5;239m\e[38;5;107m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;240m\e[38;5;65m▄\e[0m\e[38;5;237m▄\e[38;5;234m▄\e[38;5;233m▄\e[38;5;232m▄\e[38;5;239m▄\e[0m + \e[38;5;233m▄\e[38;5;246m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;65m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;235m\e[38;5;71m▄\e[0m\e[38;5;237m▄\e[38;5;234m▄\e[0m + \e[38;5;245m▄\e[38;5;233m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;239m\e[38;5;71m▄\e[48;5;71m \e[38;5;235m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;236m\e[38;5;64m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;2m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;2m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;232m\e[38;5;70m▄\e[48;5;234m\e[38;5;22m▄\e[48;5;65m\e[38;5;232m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[48;5;236m\e[38;5;71m▄\e[0m\e[38;5;234m▄\e[38;5;238m▄\e[0m + \e[38;5;239m▄\e[38;5;233m▄\e[48;5;235m\e[38;5;71m▄\e[48;5;238m\e[38;5;71m▄\e[48;5;71m \e[38;5;0m▄\e[48;5;236m\e[38;5;2m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;22m\e[38;5;76m▄\e[48;5;0m\e[38;5;76m▄\e[48;5;234m\e[38;5;64m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m \e[48;5;234m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[0m\e[38;5;234m▄\e[38;5;233m▄\e[0m + \e[38;5;233m▄\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;71m \e[38;5;235m▄\e[48;5;65m\e[38;5;235m▄\e[48;5;0m\e[38;5;255m▄\e[48;5;22m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;242m\e[38;5;15m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;254m\e[38;5;15m▄\e[48;5;15m \e[38;5;255m▄\e[48;5;255m\e[38;5;234m▄\e[48;5;248m\e[38;5;251m▄\e[48;5;240m\e[38;5;15m▄\e[48;5;237m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;64m\e[38;5;15m▄\e[48;5;70m\e[38;5;251m▄\e[48;5;76m\e[38;5;8m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;2m▄\e[48;5;64m\e[38;5;70m▄\e[48;5;232m\e[38;5;76m▄\e[48;5;238m\e[38;5;2m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[0m + \e[38;5;233m▄\e[48;5;238m\e[38;5;71m▄\e[48;5;236m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;238m\e[38;5;234m▄\e[48;5;235m\e[38;5;255m▄\e[48;5;15m \e[38;5;233m▄\e[48;5;253m\e[38;5;0m▄\e[48;5;255m\e[38;5;232m▄\e[48;5;242m\e[38;5;238m▄\e[48;5;242m\e[38;5;233m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;255m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;145m\e[38;5;15m▄\e[48;5;237m\e[38;5;15m▄\e[48;5;22m\e[38;5;255m▄\e[48;5;70m\e[38;5;248m▄\e[48;5;234m\e[38;5;235m▄\e[48;5;234m\e[38;5;233m▄\e[48;5;71m\e[38;5;0m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m \e[0m + \e[48;5;71m \e[38;5;234m▄\e[48;5;233m\e[38;5;251m▄\e[48;5;255m\e[38;5;15m▄\e[48;5;15m \e[48;5;243m\e[38;5;235m▄\e[48;5;0m \e[38;5;243m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;249m\e[38;5;15m▄\e[48;5;235m\e[38;5;15m▄\e[48;5;232m\e[38;5;15m▄\e[48;5;235m\e[38;5;145m▄\e[48;5;71m\e[38;5;0m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;237m▄\e[0m + \e[48;5;71m \e[48;5;65m\e[38;5;232m▄\e[48;5;241m\e[38;5;15m▄\e[48;5;15m \e[48;5;236m\e[38;5;245m▄\e[48;5;0m \e[48;5;247m\e[38;5;232m▄\e[48;5;15m \e[48;5;247m\e[38;5;15m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m \e[48;5;237m\e[38;5;236m▄\e[0m + \e[48;5;71m \e[38;5;238m▄\e[48;5;234m\e[38;5;243m▄\e[48;5;253m\e[38;5;15m▄\e[48;5;15m \e[48;5;0m\e[38;5;7m▄\e[48;5;0m\e[38;5;239m▄\e[48;5;0m\e[38;5;102m▄\e[48;5;0m\e[38;5;234m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;252m▄\e[48;5;255m\e[38;5;15m▄\e[48;5;15m \e[48;5;239m\e[38;5;7m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m \e[0m + \e[48;5;71m \e[38;5;236m▄\e[48;5;234m\e[38;5;250m▄\e[48;5;15m \e[38;5;255m▄\e[48;5;15m\e[38;5;250m▄\e[48;5;15m\e[38;5;102m▄\e[48;5;15m\e[38;5;238m▄\e[48;5;15m\e[38;5;235m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;2m▄\e[48;5;255m\e[38;5;2m▄\e[48;5;255m\e[38;5;64m▄\e[48;5;254m\e[38;5;70m▄\e[48;5;188m\e[38;5;70m▄\e[48;5;253m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;255m\e[38;5;70m▄\e[48;5;15m\e[38;5;28m▄\e[48;5;15m\e[38;5;64m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;236m▄\e[48;5;15m\e[38;5;237m▄\e[48;5;15m\e[38;5;240m▄\e[48;5;15m\e[38;5;102m▄\e[48;5;15m\e[38;5;251m▄\e[48;5;15m\e[38;5;255m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;234m\e[38;5;235m▄\e[48;5;236m \e[0m + \e[48;5;71m \e[38;5;233m▄\e[48;5;232m\e[38;5;70m▄\e[48;5;238m\e[38;5;76m▄\e[48;5;65m\e[38;5;76m▄\e[48;5;236m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;28m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;235m\e[38;5;76m▄\e[48;5;240m\e[38;5;76m▄\e[48;5;145m\e[38;5;76m▄\e[48;5;15m\e[38;5;28m▄\e[48;5;15m\e[38;5;235m▄\e[48;5;15m\e[38;5;240m▄\e[48;5;15m\e[38;5;145m▄\e[48;5;15m\e[38;5;254m▄\e[48;5;15m \e[48;5;242m\e[38;5;251m▄\e[48;5;236m\e[38;5;235m▄\e[0m + \e[48;5;65m\e[38;5;232m▄\e[48;5;235m\e[38;5;64m▄\e[48;5;70m \e[48;5;76m \e[48;5;2m\e[38;5;76m▄\e[48;5;234m\e[38;5;76m▄\e[48;5;242m\e[38;5;76m▄\e[48;5;254m\e[38;5;64m▄\e[48;5;15m\e[38;5;234m▄\e[48;5;15m\e[38;5;243m▄\e[48;5;15m\e[38;5;253m▄\e[48;5;15m \e[48;5;255m\e[38;5;15m▄\e[48;5;233m \e[0m + \e[48;5;232m \e[48;5;237m \e[48;5;70m \e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;234m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;28m\e[38;5;76m▄\e[48;5;235m\e[38;5;76m▄\e[48;5;102m\e[38;5;236m▄\e[48;5;250m\e[38;5;235m▄\e[48;5;233m\e[38;5;232m▄\e[0m + \e[48;5;232m \e[48;5;237m \e[48;5;70m \e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;64m\e[38;5;76m▄\e[48;5;76m\e[38;5;64m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;233m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;76m \e[48;5;22m\e[38;5;76m▄\e[48;5;233m\e[38;5;76m▄\e[48;5;76m\e[38;5;233m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;28m\e[38;5;76m▄\e[48;5;76m \e[48;5;70m \e[48;5;236m \e[48;5;238m \e[48;5;236m\e[0m + \e[48;5;232m\e[38;5;236m▄\e[48;5;236m\e[38;5;233m▄\e[48;5;64m \e[48;5;76m \e[48;5;70m\e[38;5;76m▄\e[48;5;22m\e[38;5;76m▄\e[48;5;76m \e[38;5;64m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;70m▄\e[48;5;76m \e[48;5;233m\e[38;5;76m▄\e[48;5;70m\e[38;5;76m▄\e[48;5;76m \e[48;5;64m \e[48;5;236m \e[38;5;235m▄\e[0m + \e[48;5;71m \e[48;5;232m\e[38;5;65m▄\e[48;5;64m\e[38;5;233m▄\e[48;5;76m \e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;77m\e[38;5;107m▄\e[48;5;76m\e[38;5;77m▄\e[48;5;76m \e[48;5;0m\e[38;5;70m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;232m▄\e[48;5;0m\e[38;5;70m▄\e[48;5;76m \e[38;5;77m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;107m▄\e[48;5;76m\e[38;5;77m▄\e[48;5;76m \e[38;5;70m▄\e[48;5;236m \e[48;5;237m\e[38;5;238m▄\e[48;5;234m\e[38;5;235m▄\e[0m + \e[48;5;71m \e[48;5;235m\e[38;5;71m▄\e[48;5;64m\e[38;5;232m▄\e[48;5;76m \e[48;5;77m\e[38;5;76m▄\e[48;5;107m\e[38;5;77m▄\e[48;5;107m \e[38;5;77m▄\e[48;5;77m \e[48;5;76m \e[48;5;107m\e[38;5;77m▄\e[48;5;107m \e[48;5;71m\e[38;5;77m▄\e[48;5;76m \e[48;5;64m \e[48;5;236m\e[38;5;237m▄\e[48;5;237m\e[38;5;234m▄\e[0m + \e[48;5;71m \e[48;5;232m\e[38;5;239m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m \e[48;5;70m\e[38;5;64m▄\e[48;5;237m\e[38;5;236m▄\e[48;5;238m\e[38;5;234m▄\e[48;5;235m\e[38;5;236m▄\e[0m + \e[48;5;71m \e[48;5;237m\e[38;5;71m▄\e[48;5;232m\e[38;5;235m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m \e[48;5;70m\e[38;5;236m▄\e[48;5;236m \e[48;5;237m\e[38;5;234m▄\e[48;5;235m\e[38;5;236m▄\e[0m + \e[48;5;71m\e[38;5;237m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[48;5;236m\e[38;5;71m▄\e[48;5;232m\e[38;5;65m▄\e[48;5;70m\e[38;5;0m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m \e[38;5;22m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;70m\e[38;5;236m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;235m\e[38;5;238m▄\e[48;5;236m\e[38;5;235m▄\e[48;5;236m\e[38;5;233m▄\e[0m + \e[38;5;233m▀\e[48;5;71m\e[38;5;232m▄\e[48;5;71m \e[48;5;236m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;2m\e[38;5;235m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m \e[38;5;77m▄\e[48;5;76m\e[38;5;236m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;22m\e[38;5;238m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[0m + \e[48;5;65m\e[38;5;238m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m \e[48;5;235m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;232m\e[38;5;71m▄\e[48;5;233m\e[38;5;238m▄\e[48;5;65m\e[38;5;234m▄\e[48;5;70m\e[38;5;232m▄\e[48;5;77m\e[38;5;0m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;235m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;237m▄\e[48;5;76m\e[38;5;65m▄\e[48;5;76m\e[38;5;65m▄\e[48;5;76m\e[38;5;22m▄\e[48;5;76m\e[38;5;234m▄\e[48;5;76m\e[38;5;232m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;76m\e[38;5;0m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;237m\e[38;5;236m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;0m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;237m▄\e[0m + \e[38;5;232m▀\e[48;5;65m\e[38;5;236m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m \e[48;5;65m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;233m\e[38;5;71m▄\e[48;5;234m\e[38;5;71m▄\e[48;5;237m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;65m\e[38;5;71m▄\e[48;5;71m \e[38;5;237m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;65m\e[38;5;8m▄\e[0m\e[38;5;234m▀\e[38;5;234m▀\e[38;5;239m▀\e[0m + \e[38;5;234m▀\e[38;5;236m▀\e[48;5;71m\e[38;5;235m▄\e[48;5;71m\e[38;5;234m▄\e[48;5;71m\e[38;5;238m▄\e[48;5;71m\e[38;5;65m▄\e[48;5;71m \e[38;5;65m▄\e[48;5;71m\e[38;5;236m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;235m▄\e[48;5;65m\e[38;5;243m▄\e[0m\e[38;5;233m▀\e[38;5;235m▀\e[0m + \e[38;5;242m▀\e[38;5;233m▀\e[38;5;232m▀\e[38;5;234m▀\e[38;5;236m▀\e[48;5;65m\e[38;5;236m▄\e[48;5;65m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;232m▄\e[48;5;71m\e[38;5;233m▄\e[48;5;65m\e[38;5;237m▄\e[48;5;237m\e[38;5;8m▄\e[0m\e[38;5;234m▀\e[38;5;232m▀\e[38;5;232m▀\e[38;5;59m▀\e[0m +'"; else if [ -f "/bin/bash" ]; then - /bin/bash -c "printf ' - \e[48;2;194;194;194m\e[38;2;26;43;21m▄\e[48;2;159;158;159m\e[38;2;58;91;50m▄\e[48;2;130;130;130m\e[38;2;68;119;56m▄\e[48;2;116;117;116m\e[38;2;86;143;70m▄\e[48;2;98;98;98m\e[38;2;100;153;87m▄\e[48;2;63;65;63m\e[38;2;102;164;86m▄\e[48;2;46;49;44m\e[38;2;98;168;79m▄\e[48;2;43;45;43m\e[38;2;91;155;75m▄\e[48;2;61;62;61m\e[38;2;78;137;63m▄\e[48;2;102;101;102m\e[38;2;64;112;52m▄\e[48;2;134;134;134m\e[38;2;38;67;32m▄\e[48;2;164;164;164m\e[38;2;20;35;16m▄\e[48;2;188;187;188m\e[38;2;10;20;8m▄\e[48;2;223;223;223m\e[38;2;15;21;13m▄\e[0m - \e[48;2;230;230;230m\e[38;2;49;80;41m▄\e[48;2;132;132;133m\e[38;2;73;133;59m▄\e[48;2;20;21;20m\e[38;2;91;163;72m▄\e[48;2;14;27;12m\e[38;2;96;174;76m▄\e[48;2;51;92;41m\e[38;2;98;177;78m▄\e[48;2;86;155;68m\e[38;2;98;177;78m▄\e[48;2;96;173;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;97;175;76m\e[38;2;98;177;78m▄\e[48;2;93;168;74m\e[38;2;98;177;78m▄\e[48;2;99;163;83m\e[38;2;97;177;77m▄\e[48;2;99;151;86m\e[38;2;98;177;78m▄\e[48;2;35;57;29m\e[38;2;98;176;78m▄\e[48;2;19;21;19m\e[38;2;94;169;75m▄\e[48;2;118;118;118m\e[38;2;70;125;56m▄\e[48;2;234;234;234m\e[38;2;30;45;26m▄\e[0m - \e[48;2;216;216;216m\e[38;2;42;65;36m▄\e[48;2;159;159;159m\e[38;2;62;106;52m▄\e[48;2;94;95;94m\e[38;2;86;152;70m▄\e[48;2;57;72;53m\e[38;2;96;174;77m▄\e[48;2;57;96;47m\e[38;2;98;177;78m▄\e[48;2;78;136;62m\e[38;2;98;177;78m▄\e[48;2;95;167;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;77m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m\e[38;2;76;137;60m▄\e[48;2;98;177;78m\e[38;2;54;97;42m▄\e[48;2;99;179;79m\e[38;2;39;71;30m▄\e[48;2;100;181;79m\e[38;2;35;60;30m▄\e[48;2;101;181;81m\e[38;2;42;66;37m▄\e[48;2;100;177;80m\e[38;2;52;73;45m▄\e[48;2;95;175;76m\e[38;2;47;75;40m▄\e[48;2;94;178;73m\e[38;2;41;75;33m▄\e[48;2;98;179;78m\e[38;2;42;73;34m▄\e[48;2;99;180;79m\e[38;2;40;70;33m▄\e[48;2;99;179;78m\e[38;2;44;75;36m▄\e[48;2;97;177;77m\e[38;2;55;93;46m▄\e[48;2;97;176;77m\e[38;2;65;113;52m▄\e[48;2;98;177;78m\e[38;2;79;141;63m▄\e[48;2;98;177;78m\e[38;2;93;166;75m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;94;170;75m\e[38;2;98;177;78m▄\e[48;2;71;128;56m\e[38;2;98;177;78m▄\e[48;2;34;56;28m\e[38;2;97;175;77m▄\e[48;2;64;66;64m\e[38;2;78;140;62m▄\e[48;2;161;161;161m\e[38;2;48;84;39m▄\e[0m - \e[48;2;66;112;54m\e[38;2;98;177;78m▄\e[48;2;80;133;66m\e[38;2;98;177;78m▄\e[48;2;95;162;76m\e[38;2;98;177;78m▄\e[48;2;96;171;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m\e[38;2;96;174;76m▄\e[48;2;98;177;78m\e[38;2;74;130;59m▄\e[48;2;98;176;78m\e[38;2;32;49;27m▄\e[48;2;95;166;76m\e[38;2;18;29;15m▄\e[48;2;73;126;59m\e[38;2;65;113;53m▄\e[48;2;40;62;34m\e[38;2;107;209;83m▄\e[48;2;23;43;19m\e[38;2;77;220;42m▄\e[48;2;32;72;22m\e[38;2;72;218;36m▄\e[48;2;55;155;30m\e[38;2;73;217;37m▄\e[48;2;71;203;38m\e[38;2;73;217;37m▄\e[48;2;79;212;46m\e[38;2;73;218;37m▄\e[48;2;81;216;48m\e[38;2;73;218;37m▄\e[48;2;82;220;48m\e[38;2;73;218;37m▄\e[48;2;79;221;44m\e[38;2;73;218;37m▄\e[48;2;76;219;40m\e[38;2;73;218;37m▄\e[48;2;76;218;40m\e[38;2;73;218;37m▄\e[48;2;75;213;41m\e[38;2;73;218;37m▄\e[48;2;79;203;48m\e[38;2;73;218;37m▄\e[48;2;76;175;52m\e[38;2;73;218;37m▄\e[48;2;52;127;33m\e[38;2;73;218;37m▄\e[48;2;29;75;18m\e[38;2;73;217;37m▄\e[48;2;19;45;12m\e[38;2;73;218;36m▄\e[48;2;45;74;38m\e[38;2;65;196;33m▄\e[48;2;76;127;62m\e[38;2;44;132;24m▄\e[48;2;90;158;72m\e[38;2;16;45;10m▄\e[48;2;97;175;77m\e[38;2;28;50;22m▄\e[48;2;98;177;78m\e[38;2;80;145;64m▄\e[48;2;98;177;78m\e[38;2;97;175;77m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;97;173;78m\e[38;2;98;177;78m▄\e[48;2;69;114;56m\e[38;2;98;177;78m▄\e[48;2;30;38;28m\e[38;2;103;179;83m▄\e[48;2;91;91;91m\e[38;2;99;149;87m▄\e[48;2;188;188;188m\e[38;2;39;53;36m▄\e[0m - \e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;83;150;66m▄\e[48;2;98;177;78m\e[38;2;44;80;34m▄\e[48;2;99;179;78m\e[38;2;33;49;28m▄\e[48;2;87;159;69m\e[38;2;68;97;61m▄\e[48;2;46;84;37m\e[38;2;87;165;68m▄\e[48;2;25;37;21m\e[38;2;83;208;52m▄\e[48;2;59;131;42m\e[38;2;73;219;37m▄\e[48;2;74;199;43m\e[38;2;74;223;37m▄\e[48;2;72;213;38m\e[38;2;67;204;35m▄\e[48;2;73;218;37m\e[38;2;55;171;29m▄\e[48;2;72;218;36m\e[38;2;59;136;22m▄\e[48;2;72;218;36m\e[38;2;103;132;15m▄\e[48;2;73;219;37m\e[38;2;149;133;9m▄\e[48;2;72;220;37m\e[38;2;168;130;7m▄\e[48;2;73;220;37m\e[38;2;167;118;5m▄\e[48;2;72;218;37m\e[38;2;106;78;4m▄\e[48;2;69;210;36m\e[38;2;93;69;4m▄\e[48;2;66;199;34m\e[38;2;173;117;4m▄\e[48;2;63;192;32m\e[38;2;177;119;4m▄\e[48;2;62;186;32m\e[38;2;173;116;4m▄\e[48;2;61;186;31m\e[38;2;176;115;4m▄\e[48;2;63;191;32m\e[38;2;174;115;4m▄\e[48;2;67;202;34m\e[38;2;170;113;4m▄\e[48;2;70;213;36m\e[38;2;180;118;3m▄\e[48;2;72;219;37m\e[38;2;175;117;4m▄\e[48;2;73;220;37m\e[38;2;154;120;7m▄\e[48;2;73;220;37m\e[38;2;80;94;11m▄\e[48;2;73;219;37m\e[38;2;48;93;15m▄\e[48;2;73;218;37m\e[38;2;41;112;19m▄\e[48;2;72;215;36m\e[38;2;45;144;25m▄\e[48;2;64;192;32m\e[38;2;63;191;32m▄\e[48;2;32;99;16m\e[38;2;73;218;37m▄\e[48;2;21;41;16m\e[38;2;72;210;38m▄\e[48;2;38;66;30m\e[38;2;67;177;41m▄\e[48;2;79;141;63m\e[38;2;53;123;36m▄\e[48;2;98;178;78m\e[38;2;32;57;25m▄\e[48;2;98;179;77m\e[38;2;25;46;20m▄\e[48;2;97;177;77m\e[38;2;56;100;46m▄\e[48;2;98;177;78m\e[38;2;93;165;75m▄\e[48;2;97;176;77m\e[38;2;100;181;80m▄\e[48;2;98;177;77m\e[38;2;97;176;76m▄\e[48;2;97;176;78m\e[38;2;98;177;78m▄\e[48;2;99;174;79m\e[38;2;98;177;78m▄\e[0m - \e[48;2;98;178;78m\e[38;2;46;76;38m▄\e[48;2;100;178;80m\e[38;2;50;69;45m▄\e[48;2;99;176;80m\e[38;2;35;46;33m▄\e[48;2;82;148;65m\e[38;2;7;9;6m▄\e[48;2;64;117;50m\e[38;2;35;54;30m▄\e[48;2;42;77;34m\e[38;2;52;107;39m▄\e[48;2;26;46;21m\e[38;2;80;194;52m▄\e[48;2;34;71;26m\e[38;2;73;216;38m▄\e[48;2;54;133;35m\e[38;2;67;192;32m▄\e[48;2;81;199;52m\e[38;2;81;158;23m▄\e[48;2;80;218;46m\e[38;2;100;110;11m▄\e[48;2;66;199;33m\e[38;2;152;98;2m▄\e[48;2;60;157;26m\e[38;2;220;129;1m▄\e[48;2;80;128;18m\e[38;2;251;145;0m▄\e[48;2;120;110;9m\e[38;2;255;147;0m▄\e[48;2;154;106;4m\e[38;2;255;147;0m▄\e[48;2;181;114;2m\e[38;2;255;147;0m▄\e[48;2;230;134;0m\e[38;2;255;147;0m▄\e[48;2;251;144;0m\e[38;2;255;147;0m▄\e[48;2;254;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;163;94;0m\e[38;2;134;78;0m▄\e[48;2;2;1;0m\e[38;2;58;33;0m▄\e[48;2;13;7;0m\e[38;2;133;76;0m▄\e[48;2;64;38;0m\e[38;2;12;7;0m▄\e[48;2;250;144;0m\e[38;2;234;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;146;0m\e[38;2;255;147;0m▄\e[48;2;239;143;2m\e[38;2;255;147;0m▄\e[48;2;223;131;1m\e[38;2;255;147;0m▄\e[48;2;192;120;2m\e[38;2;255;147;0m▄\e[48;2;130;96;5m\e[38;2;255;147;0m▄\e[48;2;82;88;9m\e[38;2;255;148;0m▄\e[48;2;62;104;15m\e[38;2;247;147;1m▄\e[48;2;49;132;22m\e[38;2;212;134;3m▄\e[48;2;57;165;32m\e[38;2;144;95;3m▄\e[48;2;53;117;38m\e[38;2;74;61;8m▄\e[48;2;50;97;39m\e[38;2;47;60;21m▄\e[48;2;35;56;29m\e[38;2;47;81;33m▄\e[48;2;17;22;15m\e[38;2;20;34;19m▄\e[48;2;31;50;26m\e[38;2;48;73;42m▄\e[48;2;55;90;47m\e[38;2;37;56;33m▄\e[48;2;78;132;64m\e[38;2;21;31;18m▄\e[48;2;95;167;78m\e[38;2;18;26;16m▄\e[0m - \e[48;2;48;74;43m\e[38;2;51;78;45m▄\e[48;2;48;74;43m\e[38;2;50;76;44m▄\e[48;2;46;71;42m\e[38;2;12;17;11m▄\e[48;2;32;54;28m\e[38;2;45;93;35m▄\e[48;2;58;112;46m\e[38;2;26;45;17m▄\e[48;2;55;130;37m\e[38;2;121;83;5m▄\e[48;2;57;133;27m\e[38;2;232;138;0m▄\e[48;2;101;96;8m\e[38;2;253;146;0m▄\e[48;2;200;118;1m\e[38;2;254;147;0m▄\e[48;2;248;144;0m\e[38;2;255;147;0m▄\e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;173;100;0m\e[38;2;210;122;0m▄\e[48;2;172;100;0m\e[38;2;76;44;0m▄\e[48;2;214;123;0m\e[38;2;153;88;0m▄\e[48;2;36;21;0m\e[38;2;162;94;0m▄\e[48;2;201;116;0m\e[38;2;20;12;0m▄\e[48;2;254;147;0m\e[38;2;238;137;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;241;143;1m\e[38;2;255;147;0m▄\e[48;2;213;125;0m\e[38;2;255;147;0m▄\e[48;2;117;73;3m\e[38;2;252;147;1m▄\e[48;2;25;36;21m\e[38;2;94;69;18m▄\e[48;2;50;77;44m\e[38;2;39;59;33m▄\e[48;2;51;78;45m \e[48;2;51;78;44m\e[38;2;51;78;45m▄\e[0m - \e[48;2;51;78;45m\e[38;2;50;76;44m▄\e[48;2;40;58;34m\e[38;2;43;36;13m▄\e[48;2;38;37;6m\e[38;2;240;143;2m▄\e[48;2;149;95;6m\e[38;2;254;147;0m▄\e[48;2;226;134;1m\e[38;2;255;147;0m▄\e[48;2;253;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;243;140;0m▄\e[48;2;116;67;0m\e[38;2;90;52;0m▄\e[48;2;237;137;0m\e[38;2;254;147;0m▄\e[48;2;248;143;0m\e[38;2;255;147;0m▄\e[48;2;250;144;0m\e[38;2;255;147;0m▄\e[48;2;45;25;0m\e[38;2;191;110;0m▄\e[48;2;64;36;0m\e[38;2;32;18;0m▄\e[48;2;245;141;0m\e[38;2;152;87;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;230;140;6m\e[38;2;254;147;0m▄\e[48;2;25;21;7m\e[38;2;143;86;2m▄\e[48;2;48;74;42m\e[38;2;39;60;34m▄\e[48;2;51;78;45m \e[0m - \e[48;2;41;63;37m\e[38;2;40;47;23m▄\e[48;2;119;70;1m\e[38;2;230;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;180;104;0m\e[38;2;120;68;0m▄\e[48;2;135;78;0m\e[38;2;158;91;0m▄\e[48;2;255;147;0m\e[38;2;250;145;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;146;0m▄\e[48;2;252;145;0m\e[38;2;209;120;0m▄\e[48;2;54;31;0m\e[38;2;61;35;0m▄\e[48;2;94;54;0m\e[38;2;159;91;0m▄\e[48;2;254;146;0m\e[38;2;244;140;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;240;144;1m\e[38;2;255;147;0m▄\e[48;2;36;40;18m\e[38;2;70;49;6m▄\e[48;2;50;78;45m\e[38;2;45;69;40m▄\e[0m - \e[48;2;65;48;9m\e[38;2;98;64;6m▄\e[48;2;255;149;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;254;146;0m▄\e[48;2;225;130;0m\e[38;2;175;100;0m▄\e[48;2;210;120;0m\e[38;2;253;146;0m▄\e[48;2;209;121;0m\e[38;2;254;147;0m▄\e[48;2;86;49;0m\e[38;2;189;109;0m▄\e[48;2;254;146;0m\e[38;2;142;81;0m▄\e[48;2;255;147;0m\e[38;2;102;59;0m▄\e[48;2;199;115;0m\e[38;2;69;40;0m▄\e[48;2;244;141;0m\e[38;2;238;138;0m▄\e[48;2;253;146;0m\e[38;2;184;105;0m▄\e[48;2;200;115;0m\e[38;2;231;134;0m▄\e[48;2;253;147;0m\e[38;2;254;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;149;98;7m\e[38;2;215;132;5m▄\e[48;2;35;54;32m\e[38;2;31;42;22m▄\e[0m - \e[48;2;133;82;3m\e[38;2;153;89;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;248;147;0m▄\e[48;2;254;147;0m\e[38;2;242;142;0m▄\e[48;2;204;116;0m\e[38;2;224;131;0m▄\e[48;2;200;115;0m\e[38;2;205;124;1m▄\e[48;2;199;115;0m\e[38;2;175;109;2m▄\e[48;2;172;100;0m\e[38;2;157;102;2m▄\e[48;2;168;97;0m\e[38;2;172;114;3m▄\e[48;2;206;119;0m\e[38;2;156;115;5m▄\e[48;2;215;125;0m\e[38;2;138;111;7m▄\e[48;2;180;105;0m\e[38;2;121;105;8m▄\e[48;2;233;136;0m\e[38;2;120;109;8m▄\e[48;2;254;148;0m\e[38;2;116;111;9m▄\e[48;2;254;148;0m\e[38;2;112;111;10m▄\e[48;2;255;148;0m\e[38;2;130;121;10m▄\e[48;2;254;148;0m\e[38;2;103;105;10m▄\e[48;2;254;148;0m\e[38;2;99;99;9m▄\e[48;2;254;148;0m\e[38;2;106;98;8m▄\e[48;2;254;148;0m\e[38;2;106;96;8m▄\e[48;2;255;148;0m\e[38;2;118;98;7m▄\e[48;2;255;147;0m\e[38;2;123;101;7m▄\e[48;2;255;147;0m\e[38;2;129;99;6m▄\e[48;2;255;147;0m\e[38;2;141;100;5m▄\e[48;2;255;147;0m\e[38;2;166;111;4m▄\e[48;2;255;147;0m\e[38;2;189;122;4m▄\e[48;2;255;147;0m\e[38;2;217;131;1m▄\e[48;2;255;147;0m\e[38;2;248;145;0m▄\e[48;2;255;147;0m\e[38;2;250;148;0m▄\e[48;2;255;147;0m\e[38;2;254;149;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;147;1m\e[38;2;254;147;0m▄\e[48;2;47;44;15m\e[38;2;81;54;7m▄\e[0m - \e[48;2;163;95;0m\e[38;2;176;103;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;147;0m▄\e[48;2;255;147;0m\e[38;2;250;144;0m▄\e[48;2;255;147;0m\e[38;2;238;146;1m▄\e[48;2;254;147;0m\e[38;2;170;117;4m▄\e[48;2;252;147;0m\e[38;2;78;65;5m▄\e[48;2;239;144;1m\e[38;2;36;71;11m▄\e[48;2;220;136;2m\e[38;2;41;122;21m▄\e[48;2;193;124;2m\e[38;2;59;179;31m▄\e[48;2;178;119;4m\e[38;2;69;210;35m▄\e[48;2;129;104;6m\e[38;2;73;219;37m▄\e[48;2;67;87;10m\e[38;2;73;219;37m▄\e[48;2;61;106;15m\e[38;2;73;218;37m▄\e[48;2;52;126;21m\e[38;2;73;218;37m▄\e[48;2;52;150;25m\e[38;2;73;218;37m▄\e[48;2;58;177;30m\e[38;2;73;218;37m▄\e[48;2;63;194;33m\e[38;2;73;218;37m▄\e[48;2;66;204;34m\e[38;2;73;218;37m▄\e[48;2;69;212;36m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;72;219;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;219;37m\e[38;2;73;218;37m▄\e[48;2;72;214;36m\e[38;2;73;218;37m▄\e[48;2;68;207;35m\e[38;2;73;218;37m▄\e[48;2;65;197;34m\e[38;2;73;218;37m▄\e[48;2;61;185;32m\e[38;2;73;218;37m▄\e[48;2;51;157;27m\e[38;2;73;218;37m▄\e[48;2;41;125;21m\e[38;2;73;218;37m▄\e[48;2;40;106;18m\e[38;2;73;218;37m▄\e[48;2;75;92;10m\e[38;2;73;218;37m▄\e[48;2;76;85;10m\e[38;2;73;219;37m▄\e[48;2;112;94;7m\e[38;2;72;216;36m▄\e[48;2;162;113;5m\e[38;2;64;194;33m▄\e[48;2;219;131;0m\e[38;2;50;152;26m▄\e[48;2;231;138;1m\e[38;2;30;65;14m▄\e[48;2;252;147;0m\e[38;2;106;71;5m▄\e[48;2;97;61;4m\e[38;2;30;31;7m▄\e[0m - \e[48;2;186;108;0m\e[38;2;185;108;0m▄\e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;247;144;0m▄\e[48;2;255;147;0m\e[38;2;188;113;1m▄\e[48;2;255;147;0m\e[38;2;110;100;8m▄\e[48;2;248;147;0m\e[38;2;72;136;20m▄\e[48;2;206;124;1m\e[38;2;62;175;29m▄\e[48;2;115;81;4m\e[38;2;67;204;34m▄\e[48;2;55;92;13m\e[38;2;72;217;36m▄\e[48;2;60;157;26m\e[38;2;73;218;37m▄\e[48;2;66;195;32m\e[38;2;73;218;37m▄\e[48;2;70;212;35m\e[38;2;73;218;37m▄\e[48;2;72;215;36m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;210;37m\e[38;2;71;214;37m▄\e[48;2;58;142;37m\e[38;2;57;136;37m▄\e[48;2;51;109;39m\e[38;2;54;109;40m▄\e[48;2;36;76;26m\e[38;2;38;71;31m▄\e[0m - \e[48;2;73;63;12m\e[38;2;24;46;20m▄\e[48;2;89;67;7m\e[38;2;54;120;38m▄\e[48;2;67;119;19m\e[38;2;66;192;35m▄\e[48;2;61;177;29m\e[38;2;73;217;37m▄\e[48;2;71;213;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;214;35m\e[38;2;42;129;21m▄\e[48;2;43;131;22m\e[38;2;4;10;2m▄\e[48;2;37;111;19m\e[38;2;4;10;2m▄\e[48;2;60;180;30m\e[38;2;7;22;3m▄\e[48;2;73;218;37m\e[38;2;62;187;31m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;69;208;35m\e[38;2;20;61;10m▄\e[48;2;43;129;22m\e[38;2;4;11;2m▄\e[48;2;38;116;19m\e[38;2;3;8;1m▄\e[48;2;64;192;32m\e[38;2;19;57;10m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;214;36m\e[38;2;71;213;36m▄\e[48;2;55;130;37m\e[38;2;55;123;38m▄\e[48;2;54;108;41m\e[38;2;56;110;44m▄\e[48;2;35;60;30m\e[38;2;35;57;30m▄\e[0m - \e[48;2;37;68;29m\e[38;2;38;61;33m▄\e[48;2;58;132;39m\e[38;2;62;134;45m▄\e[48;2;64;179;36m\e[38;2;55;129;37m▄\e[48;2;72;217;36m\e[38;2;71;210;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;27;82;14m\e[38;2;59;178;30m▄\e[48;2;4;11;3m\e[38;2;3;9;1m▄\e[48;2;0;0;0m\e[38;2;8;18;4m▄\e[48;2;1;3;1m\e[38;2;4;12;2m▄\e[48;2;36;112;19m\e[38;2;54;163;27m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;210;36m\e[38;2;72;217;36m▄\e[48;2;4;11;1m\e[38;2;9;28;4m▄\e[48;2;0;0;0m\e[38;2;6;16;3m▄\e[48;2;1;3;1m\e[38;2;6;15;3m▄\e[48;2;13;39;6m\e[38;2;32;94;15m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;207;36m\e[38;2;67;196;36m▄\e[48;2;52;110;38m \e[48;2;57;101;47m\e[38;2;56;90;47m▄\e[48;2;36;55;31m\e[38;2;38;58;33m▄\e[0m - \e[48;2;40;63;35m\e[38;2;43;67;38m▄\e[48;2;61;117;48m\e[38;2;45;80;38m▄\e[48;2;54;114;39m\e[38;2;52;110;38m▄\e[48;2;64;177;36m\e[38;2;59;150;37m▄\e[48;2;72;217;36m\e[38;2;72;214;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;61;182;30m\e[38;2;73;218;37m▄\e[48;2;45;135;22m\e[38;2;73;218;37m▄\e[48;2;58;174;29m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;212;35m\e[38;2;72;216;36m▄\e[48;2;34;101;17m\e[38;2;11;32;5m▄\e[48;2;34;101;17m\e[38;2;1;2;1m▄\e[48;2;34;98;18m\e[38;2;1;3;1m▄\e[48;2;35;101;18m\e[38;2;1;1;1m▄\e[48;2;35;100;17m\e[38;2;1;3;1m▄\e[48;2;57;170;29m\e[38;2;56;168;28m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;72;218;36m▄\e[48;2;66;197;33m\e[38;2;72;217;36m▄\e[48;2;46;139;23m\e[38;2;73;217;37m▄\e[48;2;54;163;27m\e[38;2;72;217;37m▄\e[48;2;71;212;36m\e[38;2;72;217;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;37m\e[38;2;70;204;36m▄\e[48;2;60;158;37m\e[38;2;53;122;37m▄\e[48;2;52;103;38m\e[38;2;52;104;40m▄\e[48;2;33;54;28m\e[38;2;21;34;18m▄\e[48;2;46;70;41m\e[38;2;49;76;44m▄\e[0m - \e[48;2;49;76;44m\e[38;2;51;78;45m▄\e[48;2;32;51;28m\e[38;2;43;65;37m▄\e[48;2;61;125;45m\e[38;2;81;124;71m▄\e[48;2;54;124;38m\e[38;2;53;113;40m▄\e[48;2;68;202;36m\e[38;2;60;156;37m▄\e[48;2;73;218;37m\e[38;2;72;215;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;216;37m▄\e[48;2;73;217;37m\e[38;2;93;205;61m▄\e[48;2;79;213;44m\e[38;2;121;189;95m▄\e[48;2;85;210;51m\e[38;2;132;184;108m▄\e[48;2;82;211;47m\e[38;2;121;191;93m▄\e[48;2;73;217;37m\e[38;2;85;210;52m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;37;111;20m\e[38;2;71;214;36m▄\e[48;2;1;2;0m\e[38;2;44;128;22m▄\e[48;2;2;4;2m\e[38;2;15;39;8m▄\e[48;2;1;1;1m\e[38;2;29;82;14m▄\e[48;2;13;37;7m\e[38;2;68;204;34m▄\e[48;2;70;210;35m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;74;216;38m▄\e[48;2;82;211;47m\e[38;2;118;191;90m▄\e[48;2;100;200;70m\e[38;2;132;185;108m▄\e[48;2;103;201;72m\e[38;2;127;187;101m▄\e[48;2;98;203;67m\e[38;2;125;189;100m▄\e[48;2;85;209;52m\e[38;2;116;192;88m▄\e[48;2;73;217;37m\e[38;2;80;211;44m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;68;200;35m▄\e[48;2;63;170;35m\e[38;2;54;125;36m▄\e[48;2;51;103;38m\e[38;2;51;99;38m▄\e[48;2;49;101;36m\e[38;2;22;45;17m▄\e[48;2;30;47;26m\e[38;2;45;69;39m▄\e[48;2;51;78;45m \e[0m - \e[48;2;51;78;45m \e[48;2;49;75;43m\e[38;2;51;78;45m▄\e[48;2;30;38;27m\e[38;2;39;59;35m▄\e[48;2;63;123;49m\e[38;2;71;110;62m▄\e[48;2;54;121;37m\e[38;2;56;119;40m▄\e[48;2;68;198;37m\e[38;2;60;158;37m▄\e[48;2;73;218;37m\e[38;2;71;216;36m▄\e[48;2;73;217;37m\e[38;2;73;216;38m▄\e[48;2;91;206;58m\e[38;2;110;196;81m▄\e[48;2;122;191;95m\e[38;2;126;188;100m▄\e[48;2;128;186;102m\e[38;2;130;187;104m▄\e[48;2;140;180;116m\e[38;2;128;187;103m▄\e[48;2;126;188;100m\e[38;2;106;197;76m▄\e[48;2;96;202;64m\e[38;2;75;215;39m▄\e[48;2;73;217;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;217;38m\e[38;2;73;217;37m▄\e[48;2;114;194;86m\e[38;2;76;215;40m▄\e[48;2;142;178;121m\e[38;2;94;205;62m▄\e[48;2;150;176;129m\e[38;2;109;196;81m▄\e[48;2;142;180;120m\e[38;2;95;203;63m▄\e[48;2;116;193;88m\e[38;2;76;214;41m▄\e[48;2;78;213;44m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;67;196;36m▄\e[48;2;71;209;37m\e[38;2;60;154;36m▄\e[48;2;59;152;36m\e[38;2;57;138;37m▄\e[48;2;52;110;38m\e[38;2;56;130;37m▄\e[48;2;51;104;38m\e[38;2;30;71;21m▄\e[48;2;20;31;17m\e[38;2;45;69;39m▄\e[48;2;50;78;44m\e[38;2;51;78;45m▄\e[48;2;51;78;45m \e[0m - \e[48;2;51;78;45m\e[38;2;28;43;24m▄\e[48;2;51;78;45m\e[38;2;43;64;38m▄\e[48;2;51;78;45m\e[38;2;52;79;46m▄\e[48;2;34;53;30m\e[38;2;46;71;41m▄\e[48;2;64;124;48m\e[38;2;49;106;36m▄\e[48;2;53;115;38m\e[38;2;57;124;40m▄\e[48;2;63;175;36m\e[38;2;55;126;38m▄\e[48;2;73;217;37m\e[38;2;66;186;36m▄\e[48;2;89;208;56m\e[38;2;73;217;37m▄\e[48;2;111;195;82m\e[38;2;75;215;40m▄\e[48;2;109;197;80m\e[38;2;74;216;38m▄\e[48;2;85;209;52m\e[38;2;73;218;36m▄\e[48;2;73;216;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m\e[38;2;71;214;36m▄\e[48;2;71;212;36m\e[38;2;63;172;36m▄\e[48;2;63;174;35m\e[38;2;57;138;37m▄\e[48;2;58;146;36m\e[38;2;57;137;38m▄\e[48;2;58;139;37m\e[38;2;57;138;37m▄\e[48;2;58;138;37m\e[38;2;54;128;35m▄\e[48;2;50;117;34m\e[38;2;20;44;14m▄\e[48;2;20;32;17m\e[38;2;39;61;34m▄\e[48;2;51;77;44m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;49;75;43m▄\e[0m - \e[48;2;84;151;67m\e[38;2;98;177;78m▄\e[48;2;43;80;34m\e[38;2;98;177;78m▄\e[48;2;22;39;19m\e[38;2;98;178;78m▄\e[48;2;43;67;38m\e[38;2;81;148;64m▄\e[48;2;40;70;33m\e[38;2;44;78;36m▄\e[48;2;54;127;36m\e[38;2;21;47;15m▄\e[48;2;55;120;39m\e[38;2;54;117;39m▄\e[48;2;56;133;37m\e[38;2;59;133;40m▄\e[48;2;71;211;36m\e[38;2;61;164;37m▄\e[48;2;73;217;36m\e[38;2;71;211;36m▄\e[48;2;73;218;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;73;218;37m\e[38;2;67;203;34m▄\e[48;2;68;194;37m\e[38;2;40;116;21m▄\e[48;2;58;142;36m\e[38;2;8;21;5m▄\e[48;2;49;120;31m\e[38;2;6;10;5m▄\e[48;2;25;59;16m\e[38;2;73;108;65m▄\e[48;2;15;33;11m\e[38;2;95;157;79m▄\e[48;2;12;25;9m\e[38;2;97;175;77m▄\e[48;2;21;32;19m\e[38;2;99;179;79m▄\e[48;2;23;35;19m\e[38;2;98;178;78m▄\e[48;2;20;34;17m\e[38;2;98;178;78m▄\e[48;2;13;24;11m\e[38;2;98;178;78m▄\e[48;2;16;26;14m\e[38;2;98;177;78m▄\e[0m - \e[48;2;97;176;77m\e[38;2;58;103;46m▄\e[48;2;98;177;78m\e[38;2;94;170;75m▄\e[48;2;98;177;78m\e[38;2;99;179;79m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;97;176;77m\e[38;2;98;177;78m▄\e[48;2;91;165;72m\e[38;2;98;177;78m▄\e[48;2;55;100;44m\e[38;2;98;177;78m▄\e[48;2;15;27;10m\e[38;2;92;168;73m▄\e[48;2;24;46;18m\e[38;2;76;138;61m▄\e[48;2;73;154;53m\e[38;2;54;96;43m▄\e[48;2;74;213;39m\e[38;2;24;48;18m▄\e[48;2;74;222;37m\e[38;2;20;55;11m▄\e[48;2;73;217;37m\e[38;2;31;91;16m▄\e[48;2;73;218;37m\e[38;2;49;145;24m▄\e[48;2;73;218;37m\e[38;2;68;201;35m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;74;220;37m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;220;37m▄\e[48;2;73;218;37m\e[38;2;72;214;37m▄\e[48;2;73;218;37m\e[38;2;63;187;32m▄\e[48;2;72;217;36m\e[38;2;41;120;22m▄\e[48;2;74;222;36m\e[38;2;21;52;13m▄\e[48;2;67;203;34m\e[38;2;39;62;34m▄\e[48;2;40;117;21m\e[38;2;64;103;54m▄\e[48;2;14;43;7m\e[38;2;72;126;57m▄\e[48;2;4;12;2m\e[38;2;87;156;69m▄\e[48;2;25;45;21m\e[38;2;97;174;78m▄\e[48;2;71;124;57m\e[38;2;99;177;80m▄\e[48;2;97;168;78m\e[38;2;94;170;75m▄\e[48;2;96;175;77m\e[38;2;103;177;84m▄\e[48;2;98;176;79m\e[38;2;109;183;90m▄\e[48;2;100;178;80m\e[38;2;112;185;94m▄\e[48;2;100;177;80m\e[38;2;111;184;92m▄\e[48;2;99;177;80m\e[38;2;107;182;89m▄\e[48;2;98;177;78m\e[38;2;105;182;85m▄\e[48;2;98;177;78m\e[38;2;103;180;83m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[0m - \e[48;2;99;106;96m\e[38;2;254;254;254m▄\e[48;2;54;79;47m\e[38;2;236;236;236m▄\e[48;2;72;123;60m\e[38;2;134;134;134m▄\e[48;2;97;176;78m\e[38;2;65;87;60m▄\e[48;2;98;177;78m\e[38;2;73;130;59m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;96;172;77m\e[38;2;98;177;78m▄\e[48;2;82;147;65m\e[38;2;98;177;78m▄\e[48;2;66;116;52m\e[38;2;98;177;78m▄\e[48;2;46;78;38m\e[38;2;98;177;78m▄\e[48;2;27;51;20m\e[38;2;98;177;78m▄\e[48;2;28;60;20m\e[38;2;94;169;74m▄\e[48;2;28;67;19m\e[38;2;86;155;69m▄\e[48;2;34;96;19m\e[38;2;69;123;54m▄\e[48;2;42;126;21m\e[38;2;48;86;39m▄\e[48;2;51;148;27m\e[38;2;36;64;28m▄\e[48;2;55;164;28m\e[38;2;26;46;20m▄\e[48;2;60;180;30m\e[38;2;23;39;18m▄\e[48;2;62;186;31m\e[38;2;21;40;17m▄\e[48;2;61;181;31m\e[38;2;19;36;16m▄\e[48;2;67;176;40m\e[38;2;18;32;14m▄\e[48;2;63;173;35m\e[38;2;23;36;19m▄\e[48;2;56;168;29m\e[38;2;27;42;23m▄\e[48;2;53;160;27m\e[38;2;29;45;24m▄\e[48;2;44;133;22m\e[38;2;30;53;25m▄\e[48;2;34;102;17m\e[38;2;52;89;43m▄\e[48;2;20;60;10m\e[38;2;88;148;71m▄\e[48;2;24;47;19m\e[38;2;97;171;78m▄\e[48;2;34;62;27m\e[38;2;98;177;78m▄\e[48;2;55;99;44m\e[38;2;98;177;78m▄\e[48;2;80;144;64m\e[38;2;98;177;78m▄\e[48;2;99;176;79m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;99;177;79m\e[38;2;96;172;76m▄\e[48;2;99;175;79m\e[38;2;85;151;68m▄\e[48;2;95;169;76m\e[38;2;72;121;60m▄\e[48;2;109;180;92m\e[38;2;37;57;32m▄\e[48;2;100;159;85m\e[38;2;38;41;36m▄\e[48;2;72;107;62m\e[38;2;74;74;74m▄\e[48;2;44;65;38m\e[38;2;134;134;134m▄\e[48;2;31;48;27m\e[38;2;200;200;200m▄\e[48;2;31;48;26m\e[38;2;226;226;226m▄\e[48;2;31;52;25m\e[38;2;205;205;205m▄\e[48;2;41;71;34m\e[38;2;170;170;170m▄\e[48;2;59;97;50m\e[38;2;142;142;142m▄\e[0m - \e[48;2;95;106;94m\e[38;2;253;253;253m▄\e[48;2;81;137;65m\e[38;2;243;243;243m▄\e[48;2;91;166;73m\e[38;2;182;185;181m▄\e[48;2;95;174;76m\e[38;2;61;73;59m▄\e[48;2;98;177;78m\e[38;2;33;66;26m▄\e[48;2;98;177;78m\e[38;2;81;143;65m▄\e[48;2;98;177;78m\e[38;2;102;182;81m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;99;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;97;177;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;99;179;78m▄\e[48;2;98;177;78m\e[38;2;93;169;74m▄\e[48;2;98;177;78m\e[38;2;56;106;44m▄\e[48;2;96;174;77m\e[38;2;16;31;13m▄\e[48;2;68;126;54m\e[38;2;58;58;58m▄\e[48;2;28;50;23m\e[38;2;180;180;180m▄\e[48;2;20;22;20m\e[38;2;240;240;240m▄\e[48;2;86;85;86m\e[38;2;253;253;253m▄\e[48;2;199;199;199m\e[38;2;255;255;255m▄ \e[0m - \e[48;2;146;147;145m\e[38;2;254;254;254m▄\e[48;2;41;52;39m\e[38;2;242;242;242m▄\e[48;2;39;76;30m\e[38;2;192;192;192m▄\e[48;2;73;136;57m\e[38;2;132;134;132m▄\e[48;2;90;162;72m\e[38;2;96;100;95m▄\e[48;2;99;175;79m\e[38;2;60;69;58m▄\e[48;2;98;177;78m\e[38;2;46;59;43m▄\e[48;2;98;177;78m\e[38;2;32;51;27m▄\e[48;2;98;178;78m\e[38;2;28;50;23m▄\e[48;2;98;178;78m\e[38;2;28;55;22m▄\e[48;2;98;178;78m\e[38;2;35;64;28m▄\e[48;2;98;177;78m\e[38;2;41;75;33m▄\e[48;2;98;177;78m\e[38;2;50;89;41m▄\e[48;2;98;177;77m\e[38;2;54;89;45m▄\e[48;2;98;177;77m\e[38;2;53;89;44m▄\e[48;2;98;177;78m\e[38;2;49;86;39m▄\e[48;2;98;177;78m\e[38;2;45;83;36m▄\e[48;2;98;177;78m\e[38;2;40;74;32m▄\e[48;2;98;177;78m\e[38;2;35;64;28m▄\e[48;2;98;178;78m\e[38;2;39;60;33m▄\e[48;2;90;163;71m\e[38;2;55;61;53m▄\e[48;2;53;97;41m\e[38;2;111;111;111m▄\e[48;2;24;44;19m\e[38;2;186;186;186m▄\e[48;2;36;41;35m\e[38;2;242;242;242m▄\e[48;2;132;131;132m\e[38;2;255;255;255m▄\e[0m - '"; - + /bin/bash -c "printf ' + \e[38;2;26;43;21m▄\e[38;2;58;91;50m▄\e[48;2;116;117;116m\e[38;2;68;119;56m▄\e[48;2;98;98;98m\e[38;2;86;143;70m▄\e[48;2;98;98;98m\e[38;2;100;153;87m▄\e[48;2;63;65;63m\e[38;2;102;164;86m▄\e[48;2;46;49;44m\e[38;2;98;168;79m▄\e[48;2;43;45;43m\e[38;2;91;155;75m▄\e[48;2;61;62;61m\e[38;2;78;137;63m▄\e[48;2;102;101;102m\e[38;2;64;112;52m▄\e[0m\e[38;2;38;67;32m▄\e[38;2;20;35;16m▄\e[38;2;10;20;8m▄\e[38;2;15;21;13m▄\e[0m + \e[38;2;49;80;41m▄\e[38;2;73;133;59m▄\e[48;2;20;21;20m\e[38;2;91;163;72m▄\e[48;2;14;27;12m\e[38;2;96;174;76m▄\e[48;2;51;92;41m\e[38;2;98;177;78m▄\e[48;2;86;155;68m\e[38;2;98;177;78m▄\e[48;2;96;173;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;97;175;76m\e[38;2;98;177;78m▄\e[48;2;93;168;74m\e[38;2;98;177;78m▄\e[48;2;99;163;83m\e[38;2;97;177;77m▄\e[48;2;99;151;86m\e[38;2;98;177;78m▄\e[48;2;35;57;29m\e[38;2;98;176;78m▄\e[48;2;19;21;19m\e[38;2;94;169;75m▄\e[0m\e[38;2;70;125;56m▄\e[0m + \e[38;2;42;65;36m▄\e[38;2;62;106;52m▄\e[48;2;94;95;94m\e[38;2;86;152;70m▄\e[48;2;57;72;53m\e[38;2;96;174;77m▄\e[48;2;57;96;47m\e[38;2;98;177;78m▄\e[48;2;78;136;62m\e[38;2;98;177;78m▄\e[48;2;95;167;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;77m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m\e[38;2;76;137;60m▄\e[48;2;98;177;78m\e[38;2;54;97;42m▄\e[48;2;99;179;79m\e[38;2;39;71;30m▄\e[48;2;100;181;79m\e[38;2;35;60;30m▄\e[48;2;101;181;81m\e[38;2;42;66;37m▄\e[48;2;100;177;80m\e[38;2;52;73;45m▄\e[48;2;95;175;76m\e[38;2;47;75;40m▄\e[48;2;94;178;73m\e[38;2;41;75;33m▄\e[48;2;98;179;78m\e[38;2;42;73;34m▄\e[48;2;99;180;79m\e[38;2;40;70;33m▄\e[48;2;99;179;78m\e[38;2;44;75;36m▄\e[48;2;97;177;77m\e[38;2;55;93;46m▄\e[48;2;97;176;77m\e[38;2;65;113;52m▄\e[48;2;98;177;78m\e[38;2;79;141;63m▄\e[48;2;98;177;78m\e[38;2;93;166;75m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m\e[38;2;97;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;94;170;75m\e[38;2;98;177;78m▄\e[48;2;71;128;56m\e[38;2;98;177;78m▄\e[48;2;34;56;28m\e[38;2;97;175;77m▄\e[48;2;64;66;64m\e[38;2;78;140;62m▄\e[0m + \e[48;2;66;112;54m\e[38;2;98;177;78m▄\e[48;2;80;133;66m\e[38;2;98;177;78m▄\e[48;2;95;162;76m\e[38;2;98;177;78m▄\e[48;2;96;171;76m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m\e[38;2;96;174;76m▄\e[48;2;98;177;78m\e[38;2;74;130;59m▄\e[48;2;98;176;78m\e[38;2;32;49;27m▄\e[48;2;95;166;76m\e[38;2;18;29;15m▄\e[48;2;73;126;59m\e[38;2;65;113;53m▄\e[48;2;40;62;34m\e[38;2;107;209;83m▄\e[48;2;23;43;19m\e[38;2;77;220;42m▄\e[48;2;32;72;22m\e[38;2;72;218;36m▄\e[48;2;55;155;30m\e[38;2;73;217;37m▄\e[48;2;71;203;38m\e[38;2;73;217;37m▄\e[48;2;79;212;46m\e[38;2;73;218;37m▄\e[48;2;81;216;48m\e[38;2;73;218;37m▄\e[48;2;82;220;48m\e[38;2;73;218;37m▄\e[48;2;79;221;44m\e[38;2;73;218;37m▄\e[48;2;76;219;40m\e[38;2;73;218;37m▄\e[48;2;76;218;40m\e[38;2;73;218;37m▄\e[48;2;75;213;41m\e[38;2;73;218;37m▄\e[48;2;79;203;48m\e[38;2;73;218;37m▄\e[48;2;76;175;52m\e[38;2;73;218;37m▄\e[48;2;52;127;33m\e[38;2;73;218;37m▄\e[48;2;29;75;18m\e[38;2;73;217;37m▄\e[48;2;19;45;12m\e[38;2;73;218;36m▄\e[48;2;45;74;38m\e[38;2;65;196;33m▄\e[48;2;76;127;62m\e[38;2;44;132;24m▄\e[48;2;90;158;72m\e[38;2;16;45;10m▄\e[48;2;97;175;77m\e[38;2;28;50;22m▄\e[48;2;98;177;78m\e[38;2;80;145;64m▄\e[48;2;98;177;78m\e[38;2;97;175;77m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;97;173;78m\e[38;2;98;177;78m▄\e[48;2;69;114;56m\e[38;2;98;177;78m▄\e[48;2;30;38;28m\e[38;2;103;179;83m▄\e[0m\e[38;2;99;149;87m▄\e[0m + \e[48;2;98;177;78m\e[38;2;98;177;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;98;178;78m▄\e[48;2;98;177;78m\e[38;2;83;150;66m▄\e[48;2;98;177;78m\e[38;2;44;80;34m▄\e[48;2;99;179;78m\e[38;2;33;49;28m▄\e[48;2;87;159;69m\e[38;2;68;97;61m▄\e[48;2;46;84;37m\e[38;2;87;165;68m▄\e[48;2;25;37;21m\e[38;2;83;208;52m▄\e[48;2;59;131;42m\e[38;2;73;219;37m▄\e[48;2;74;199;43m\e[38;2;74;223;37m▄\e[48;2;72;213;38m\e[38;2;67;204;35m▄\e[48;2;73;218;37m\e[38;2;55;171;29m▄\e[48;2;72;218;36m\e[38;2;59;136;22m▄\e[48;2;72;218;36m\e[38;2;103;132;15m▄\e[48;2;73;219;37m\e[38;2;149;133;9m▄\e[48;2;72;220;37m\e[38;2;168;130;7m▄\e[48;2;73;220;37m\e[38;2;167;118;5m▄\e[48;2;72;218;37m\e[38;2;106;78;4m▄\e[48;2;69;210;36m\e[38;2;93;69;4m▄\e[48;2;66;199;34m\e[38;2;173;117;4m▄\e[48;2;63;192;32m\e[38;2;177;119;4m▄\e[48;2;62;186;32m\e[38;2;173;116;4m▄\e[48;2;61;186;31m\e[38;2;176;115;4m▄\e[48;2;63;191;32m\e[38;2;174;115;4m▄\e[48;2;67;202;34m\e[38;2;170;113;4m▄\e[48;2;70;213;36m\e[38;2;180;118;3m▄\e[48;2;72;219;37m\e[38;2;175;117;4m▄\e[48;2;73;220;37m\e[38;2;154;120;7m▄\e[48;2;73;220;37m\e[38;2;80;94;11m▄\e[48;2;73;219;37m\e[38;2;48;93;15m▄\e[48;2;73;218;37m\e[38;2;41;112;19m▄\e[48;2;72;215;36m\e[38;2;45;144;25m▄\e[48;2;64;192;32m\e[38;2;63;191;32m▄\e[48;2;32;99;16m\e[38;2;73;218;37m▄\e[48;2;21;41;16m\e[38;2;72;210;38m▄\e[48;2;38;66;30m\e[38;2;67;177;41m▄\e[48;2;79;141;63m\e[38;2;53;123;36m▄\e[48;2;98;178;78m\e[38;2;32;57;25m▄\e[48;2;98;179;77m\e[38;2;25;46;20m▄\e[48;2;97;177;77m\e[38;2;56;100;46m▄\e[48;2;98;177;78m\e[38;2;93;165;75m▄\e[48;2;97;176;77m\e[38;2;100;181;80m▄\e[48;2;98;177;77m\e[38;2;97;176;76m▄\e[48;2;97;176;78m\e[38;2;98;177;78m▄\e[48;2;99;174;79m\e[38;2;98;177;78m▄\e[0m + \e[48;2;98;178;78m\e[38;2;46;76;38m▄\e[48;2;100;178;80m\e[38;2;50;69;45m▄\e[48;2;99;176;80m\e[38;2;35;46;33m▄\e[48;2;82;148;65m\e[38;2;7;9;6m▄\e[48;2;64;117;50m\e[38;2;35;54;30m▄\e[48;2;42;77;34m\e[38;2;52;107;39m▄\e[48;2;26;46;21m\e[38;2;80;194;52m▄\e[48;2;34;71;26m\e[38;2;73;216;38m▄\e[48;2;54;133;35m\e[38;2;67;192;32m▄\e[48;2;81;199;52m\e[38;2;81;158;23m▄\e[48;2;80;218;46m\e[38;2;100;110;11m▄\e[48;2;66;199;33m\e[38;2;152;98;2m▄\e[48;2;60;157;26m\e[38;2;220;129;1m▄\e[48;2;80;128;18m\e[38;2;251;145;0m▄\e[48;2;120;110;9m\e[38;2;255;147;0m▄\e[48;2;154;106;4m\e[38;2;255;147;0m▄\e[48;2;181;114;2m\e[38;2;255;147;0m▄\e[48;2;230;134;0m\e[38;2;255;147;0m▄\e[48;2;251;144;0m\e[38;2;255;147;0m▄\e[48;2;254;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;163;94;0m\e[38;2;134;78;0m▄\e[48;2;2;1;0m\e[38;2;58;33;0m▄\e[48;2;13;7;0m\e[38;2;133;76;0m▄\e[48;2;64;38;0m\e[38;2;12;7;0m▄\e[48;2;250;144;0m\e[38;2;234;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;146;0m\e[38;2;255;147;0m▄\e[48;2;239;143;2m\e[38;2;255;147;0m▄\e[48;2;223;131;1m\e[38;2;255;147;0m▄\e[48;2;192;120;2m\e[38;2;255;147;0m▄\e[48;2;130;96;5m\e[38;2;255;147;0m▄\e[48;2;82;88;9m\e[38;2;255;148;0m▄\e[48;2;62;104;15m\e[38;2;247;147;1m▄\e[48;2;49;132;22m\e[38;2;212;134;3m▄\e[48;2;57;165;32m\e[38;2;144;95;3m▄\e[48;2;53;117;38m\e[38;2;74;61;8m▄\e[48;2;50;97;39m\e[38;2;47;60;21m▄\e[48;2;35;56;29m\e[38;2;47;81;33m▄\e[48;2;17;22;15m\e[38;2;20;34;19m▄\e[48;2;31;50;26m\e[38;2;48;73;42m▄\e[48;2;55;90;47m\e[38;2;37;56;33m▄\e[48;2;78;132;64m\e[38;2;21;31;18m▄\e[48;2;95;167;78m\e[38;2;18;26;16m▄\e[0m + \e[48;2;48;74;43m\e[38;2;51;78;45m▄\e[48;2;48;74;43m\e[38;2;50;76;44m▄\e[48;2;46;71;42m\e[38;2;12;17;11m▄\e[48;2;32;54;28m\e[38;2;45;93;35m▄\e[48;2;58;112;46m\e[38;2;26;45;17m▄\e[48;2;55;130;37m\e[38;2;121;83;5m▄\e[48;2;57;133;27m\e[38;2;232;138;0m▄\e[48;2;101;96;8m\e[38;2;253;146;0m▄\e[48;2;200;118;1m\e[38;2;254;147;0m▄\e[48;2;248;144;0m\e[38;2;255;147;0m▄\e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;173;100;0m\e[38;2;210;122;0m▄\e[48;2;172;100;0m\e[38;2;76;44;0m▄\e[48;2;214;123;0m\e[38;2;153;88;0m▄\e[48;2;36;21;0m\e[38;2;162;94;0m▄\e[48;2;201;116;0m\e[38;2;20;12;0m▄\e[48;2;254;147;0m\e[38;2;238;137;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;241;143;1m\e[38;2;255;147;0m▄\e[48;2;213;125;0m\e[38;2;255;147;0m▄\e[48;2;117;73;3m\e[38;2;252;147;1m▄\e[48;2;25;36;21m\e[38;2;94;69;18m▄\e[48;2;50;77;44m\e[38;2;39;59;33m▄\e[48;2;51;78;45m \e[48;2;51;78;44m\e[38;2;51;78;45m▄\e[0m + \e[48;2;51;78;45m\e[38;2;50;76;44m▄\e[48;2;40;58;34m\e[38;2;43;36;13m▄\e[48;2;38;37;6m\e[38;2;240;143;2m▄\e[48;2;149;95;6m\e[38;2;254;147;0m▄\e[48;2;226;134;1m\e[38;2;255;147;0m▄\e[48;2;253;146;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;243;140;0m▄\e[48;2;116;67;0m\e[38;2;90;52;0m▄\e[48;2;237;137;0m\e[38;2;254;147;0m▄\e[48;2;248;143;0m\e[38;2;255;147;0m▄\e[48;2;250;144;0m\e[38;2;255;147;0m▄\e[48;2;45;25;0m\e[38;2;191;110;0m▄\e[48;2;64;36;0m\e[38;2;32;18;0m▄\e[48;2;245;141;0m\e[38;2;152;87;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;255;147;0m▄\e[48;2;230;140;6m\e[38;2;254;147;0m▄\e[48;2;25;21;7m\e[38;2;143;86;2m▄\e[48;2;48;74;42m\e[38;2;39;60;34m▄\e[48;2;51;78;45m \e[0m + \e[48;2;41;63;37m\e[38;2;40;47;23m▄\e[48;2;119;70;1m\e[38;2;230;135;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;180;104;0m\e[38;2;120;68;0m▄\e[48;2;135;78;0m\e[38;2;158;91;0m▄\e[48;2;255;147;0m\e[38;2;250;145;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;146;0m▄\e[48;2;252;145;0m\e[38;2;209;120;0m▄\e[48;2;54;31;0m\e[38;2;61;35;0m▄\e[48;2;94;54;0m\e[38;2;159;91;0m▄\e[48;2;254;146;0m\e[38;2;244;140;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;240;144;1m\e[38;2;255;147;0m▄\e[48;2;36;40;18m\e[38;2;70;49;6m▄\e[48;2;50;78;45m\e[38;2;45;69;40m▄\e[0m + \e[48;2;65;48;9m\e[38;2;98;64;6m▄\e[48;2;255;149;0m\e[38;2;255;147;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;254;147;0m\e[38;2;254;146;0m▄\e[48;2;225;130;0m\e[38;2;175;100;0m▄\e[48;2;210;120;0m\e[38;2;253;146;0m▄\e[48;2;209;121;0m\e[38;2;254;147;0m▄\e[48;2;86;49;0m\e[38;2;189;109;0m▄\e[48;2;254;146;0m\e[38;2;142;81;0m▄\e[48;2;255;147;0m\e[38;2;102;59;0m▄\e[48;2;199;115;0m\e[38;2;69;40;0m▄\e[48;2;244;141;0m\e[38;2;238;138;0m▄\e[48;2;253;146;0m\e[38;2;184;105;0m▄\e[48;2;200;115;0m\e[38;2;231;134;0m▄\e[48;2;253;147;0m\e[38;2;254;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;149;98;7m\e[38;2;215;132;5m▄\e[48;2;35;54;32m\e[38;2;31;42;22m▄\e[0m + \e[48;2;133;82;3m\e[38;2;153;89;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m\e[38;2;255;146;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;248;147;0m▄\e[48;2;254;147;0m\e[38;2;242;142;0m▄\e[48;2;204;116;0m\e[38;2;224;131;0m▄\e[48;2;200;115;0m\e[38;2;205;124;1m▄\e[48;2;199;115;0m\e[38;2;175;109;2m▄\e[48;2;172;100;0m\e[38;2;157;102;2m▄\e[48;2;168;97;0m\e[38;2;172;114;3m▄\e[48;2;206;119;0m\e[38;2;156;115;5m▄\e[48;2;215;125;0m\e[38;2;138;111;7m▄\e[48;2;180;105;0m\e[38;2;121;105;8m▄\e[48;2;233;136;0m\e[38;2;120;109;8m▄\e[48;2;254;148;0m\e[38;2;116;111;9m▄\e[48;2;254;148;0m\e[38;2;112;111;10m▄\e[48;2;255;148;0m\e[38;2;130;121;10m▄\e[48;2;254;148;0m\e[38;2;103;105;10m▄\e[48;2;254;148;0m\e[38;2;99;99;9m▄\e[48;2;254;148;0m\e[38;2;106;98;8m▄\e[48;2;254;148;0m\e[38;2;106;96;8m▄\e[48;2;255;148;0m\e[38;2;118;98;7m▄\e[48;2;255;147;0m\e[38;2;123;101;7m▄\e[48;2;255;147;0m\e[38;2;129;99;6m▄\e[48;2;255;147;0m\e[38;2;141;100;5m▄\e[48;2;255;147;0m\e[38;2;166;111;4m▄\e[48;2;255;147;0m\e[38;2;189;122;4m▄\e[48;2;255;147;0m\e[38;2;217;131;1m▄\e[48;2;255;147;0m\e[38;2;248;145;0m▄\e[48;2;255;147;0m\e[38;2;250;148;0m▄\e[48;2;255;147;0m\e[38;2;254;149;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;249;147;1m\e[38;2;254;147;0m▄\e[48;2;47;44;15m\e[38;2;81;54;7m▄\e[0m + \e[48;2;163;95;0m\e[38;2;176;103;0m▄\e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m \e[48;2;255;147;0m\e[38;2;254;147;0m▄\e[48;2;255;147;0m\e[38;2;250;144;0m▄\e[48;2;255;147;0m\e[38;2;238;146;1m▄\e[48;2;254;147;0m\e[38;2;170;117;4m▄\e[48;2;252;147;0m\e[38;2;78;65;5m▄\e[48;2;239;144;1m\e[38;2;36;71;11m▄\e[48;2;220;136;2m\e[38;2;41;122;21m▄\e[48;2;193;124;2m\e[38;2;59;179;31m▄\e[48;2;178;119;4m\e[38;2;69;210;35m▄\e[48;2;129;104;6m\e[38;2;73;219;37m▄\e[48;2;67;87;10m\e[38;2;73;219;37m▄\e[48;2;61;106;15m\e[38;2;73;218;37m▄\e[48;2;52;126;21m\e[38;2;73;218;37m▄\e[48;2;52;150;25m\e[38;2;73;218;37m▄\e[48;2;58;177;30m\e[38;2;73;218;37m▄\e[48;2;63;194;33m\e[38;2;73;218;37m▄\e[48;2;66;204;34m\e[38;2;73;218;37m▄\e[48;2;69;212;36m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;72;219;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;220;37m\e[38;2;73;218;37m▄\e[48;2;73;219;37m\e[38;2;73;218;37m▄\e[48;2;72;214;36m\e[38;2;73;218;37m▄\e[48;2;68;207;35m\e[38;2;73;218;37m▄\e[48;2;65;197;34m\e[38;2;73;218;37m▄\e[48;2;61;185;32m\e[38;2;73;218;37m▄\e[48;2;51;157;27m\e[38;2;73;218;37m▄\e[48;2;41;125;21m\e[38;2;73;218;37m▄\e[48;2;40;106;18m\e[38;2;73;218;37m▄\e[48;2;75;92;10m\e[38;2;73;218;37m▄\e[48;2;76;85;10m\e[38;2;73;219;37m▄\e[48;2;112;94;7m\e[38;2;72;216;36m▄\e[48;2;162;113;5m\e[38;2;64;194;33m▄\e[48;2;219;131;0m\e[38;2;50;152;26m▄\e[48;2;231;138;1m\e[38;2;30;65;14m▄\e[48;2;252;147;0m\e[38;2;106;71;5m▄\e[48;2;97;61;4m\e[38;2;30;31;7m▄\e[0m + \e[48;2;186;108;0m\e[38;2;185;108;0m▄\e[48;2;255;147;0m\e[38;2;254;148;0m▄\e[48;2;255;147;0m\e[38;2;247;144;0m▄\e[48;2;255;147;0m\e[38;2;188;113;1m▄\e[48;2;255;147;0m\e[38;2;110;100;8m▄\e[48;2;248;147;0m\e[38;2;72;136;20m▄\e[48;2;206;124;1m\e[38;2;62;175;29m▄\e[48;2;115;81;4m\e[38;2;67;204;34m▄\e[48;2;55;92;13m\e[38;2;72;217;36m▄\e[48;2;60;157;26m\e[38;2;73;218;37m▄\e[48;2;66;195;32m\e[38;2;73;218;37m▄\e[48;2;70;212;35m\e[38;2;73;218;37m▄\e[48;2;72;215;36m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;210;37m\e[38;2;71;214;37m▄\e[48;2;58;142;37m\e[38;2;57;136;37m▄\e[48;2;51;109;39m\e[38;2;54;109;40m▄\e[48;2;36;76;26m\e[38;2;38;71;31m▄\e[0m + \e[48;2;73;63;12m\e[38;2;24;46;20m▄\e[48;2;89;67;7m\e[38;2;54;120;38m▄\e[48;2;67;119;19m\e[38;2;66;192;35m▄\e[48;2;61;177;29m\e[38;2;73;217;37m▄\e[48;2;71;213;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;214;35m\e[38;2;42;129;21m▄\e[48;2;43;131;22m\e[38;2;4;10;2m▄\e[48;2;37;111;19m\e[38;2;4;10;2m▄\e[48;2;60;180;30m\e[38;2;7;22;3m▄\e[48;2;73;218;37m\e[38;2;62;187;31m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;69;208;35m\e[38;2;20;61;10m▄\e[48;2;43;129;22m\e[38;2;4;11;2m▄\e[48;2;38;116;19m\e[38;2;3;8;1m▄\e[48;2;64;192;32m\e[38;2;19;57;10m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;214;36m\e[38;2;71;213;36m▄\e[48;2;55;130;37m\e[38;2;55;123;38m▄\e[48;2;54;108;41m\e[38;2;56;110;44m▄\e[48;2;35;60;30m\e[38;2;35;57;30m▄\e[0m + \e[48;2;37;68;29m\e[38;2;38;61;33m▄\e[48;2;58;132;39m\e[38;2;62;134;45m▄\e[48;2;64;179;36m\e[38;2;55;129;37m▄\e[48;2;72;217;36m\e[38;2;71;210;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;27;82;14m\e[38;2;59;178;30m▄\e[48;2;4;11;3m\e[38;2;3;9;1m▄\e[48;2;0;0;0m\e[38;2;8;18;4m▄\e[48;2;1;3;1m\e[38;2;4;12;2m▄\e[48;2;36;112;19m\e[38;2;54;163;27m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;210;36m\e[38;2;72;217;36m▄\e[48;2;4;11;1m\e[38;2;9;28;4m▄\e[48;2;0;0;0m\e[38;2;6;16;3m▄\e[48;2;1;3;1m\e[38;2;6;15;3m▄\e[48;2;13;39;6m\e[38;2;32;94;15m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;70;207;36m\e[38;2;67;196;36m▄\e[48;2;52;110;38m \e[48;2;57;101;47m\e[38;2;56;90;47m▄\e[48;2;36;55;31m\e[38;2;38;58;33m▄\e[0m + \e[48;2;40;63;35m\e[38;2;43;67;38m▄\e[48;2;61;117;48m\e[38;2;45;80;38m▄\e[48;2;54;114;39m\e[38;2;52;110;38m▄\e[48;2;64;177;36m\e[38;2;59;150;37m▄\e[48;2;72;217;36m\e[38;2;72;214;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;61;182;30m\e[38;2;73;218;37m▄\e[48;2;45;135;22m\e[38;2;73;218;37m▄\e[48;2;58;174;29m\e[38;2;73;218;37m▄\e[48;2;72;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;71;212;35m\e[38;2;72;216;36m▄\e[48;2;34;101;17m\e[38;2;11;32;5m▄\e[48;2;34;101;17m\e[38;2;1;2;1m▄\e[48;2;34;98;18m\e[38;2;1;3;1m▄\e[48;2;35;101;18m\e[38;2;1;1;1m▄\e[48;2;35;100;17m\e[38;2;1;3;1m▄\e[48;2;57;170;29m\e[38;2;56;168;28m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;72;218;36m▄\e[48;2;66;197;33m\e[38;2;72;217;36m▄\e[48;2;46;139;23m\e[38;2;73;217;37m▄\e[48;2;54;163;27m\e[38;2;72;217;37m▄\e[48;2;71;212;36m\e[38;2;72;217;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;37m\e[38;2;70;204;36m▄\e[48;2;60;158;37m\e[38;2;53;122;37m▄\e[48;2;52;103;38m\e[38;2;52;104;40m▄\e[48;2;33;54;28m\e[38;2;21;34;18m▄\e[48;2;46;70;41m\e[38;2;49;76;44m▄\e[0m + \e[48;2;49;76;44m\e[38;2;51;78;45m▄\e[48;2;32;51;28m\e[38;2;43;65;37m▄\e[48;2;61;125;45m\e[38;2;81;124;71m▄\e[48;2;54;124;38m\e[38;2;53;113;40m▄\e[48;2;68;202;36m\e[38;2;60;156;37m▄\e[48;2;73;218;37m\e[38;2;72;215;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;216;37m▄\e[48;2;73;217;37m\e[38;2;93;205;61m▄\e[48;2;79;213;44m\e[38;2;121;189;95m▄\e[48;2;85;210;51m\e[38;2;132;184;108m▄\e[48;2;82;211;47m\e[38;2;121;191;93m▄\e[48;2;73;217;37m\e[38;2;85;210;52m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;37;111;20m\e[38;2;71;214;36m▄\e[48;2;1;2;0m\e[38;2;44;128;22m▄\e[48;2;2;4;2m\e[38;2;15;39;8m▄\e[48;2;1;1;1m\e[38;2;29;82;14m▄\e[48;2;13;37;7m\e[38;2;68;204;34m▄\e[48;2;70;210;35m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;74;216;38m▄\e[48;2;82;211;47m\e[38;2;118;191;90m▄\e[48;2;100;200;70m\e[38;2;132;185;108m▄\e[48;2;103;201;72m\e[38;2;127;187;101m▄\e[48;2;98;203;67m\e[38;2;125;189;100m▄\e[48;2;85;209;52m\e[38;2;116;192;88m▄\e[48;2;73;217;37m\e[38;2;80;211;44m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;72;217;36m\e[38;2;68;200;35m▄\e[48;2;63;170;35m\e[38;2;54;125;36m▄\e[48;2;51;103;38m\e[38;2;51;99;38m▄\e[48;2;49;101;36m\e[38;2;22;45;17m▄\e[48;2;30;47;26m\e[38;2;45;69;39m▄\e[48;2;51;78;45m \e[0m + \e[48;2;51;78;45m \e[48;2;49;75;43m\e[38;2;51;78;45m▄\e[48;2;30;38;27m\e[38;2;39;59;35m▄\e[48;2;63;123;49m\e[38;2;71;110;62m▄\e[48;2;54;121;37m\e[38;2;56;119;40m▄\e[48;2;68;198;37m\e[38;2;60;158;37m▄\e[48;2;73;218;37m\e[38;2;71;216;36m▄\e[48;2;73;217;37m\e[38;2;73;216;38m▄\e[48;2;91;206;58m\e[38;2;110;196;81m▄\e[48;2;122;191;95m\e[38;2;126;188;100m▄\e[48;2;128;186;102m\e[38;2;130;187;104m▄\e[48;2;140;180;116m\e[38;2;128;187;103m▄\e[48;2;126;188;100m\e[38;2;106;197;76m▄\e[48;2;96;202;64m\e[38;2;75;215;39m▄\e[48;2;73;217;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;220;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;74;217;38m\e[38;2;73;217;37m▄\e[48;2;114;194;86m\e[38;2;76;215;40m▄\e[48;2;142;178;121m\e[38;2;94;205;62m▄\e[48;2;150;176;129m\e[38;2;109;196;81m▄\e[48;2;142;180;120m\e[38;2;95;203;63m▄\e[48;2;116;193;88m\e[38;2;76;214;41m▄\e[48;2;78;213;44m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;67;196;36m▄\e[48;2;71;209;37m\e[38;2;60;154;36m▄\e[48;2;59;152;36m\e[38;2;57;138;37m▄\e[48;2;52;110;38m\e[38;2;56;130;37m▄\e[48;2;51;104;38m\e[38;2;30;71;21m▄\e[48;2;20;31;17m\e[38;2;45;69;39m▄\e[48;2;50;78;44m\e[38;2;51;78;45m▄\e[48;2;51;78;45m \e[0m + \e[48;2;51;78;45m\e[38;2;28;43;24m▄\e[48;2;51;78;45m\e[38;2;43;64;38m▄\e[48;2;51;78;45m\e[38;2;52;79;46m▄\e[48;2;34;53;30m\e[38;2;46;71;41m▄\e[48;2;64;124;48m\e[38;2;49;106;36m▄\e[48;2;53;115;38m\e[38;2;57;124;40m▄\e[48;2;63;175;36m\e[38;2;55;126;38m▄\e[48;2;73;217;37m\e[38;2;66;186;36m▄\e[48;2;89;208;56m\e[38;2;73;217;37m▄\e[48;2;111;195;82m\e[38;2;75;215;40m▄\e[48;2;109;197;80m\e[38;2;74;216;38m▄\e[48;2;85;209;52m\e[38;2;73;218;36m▄\e[48;2;73;216;37m\e[38;2;73;218;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;37m\e[38;2;73;218;37m▄\e[48;2;73;217;36m\e[38;2;73;218;37m▄\e[48;2;73;218;37m\e[38;2;71;214;36m▄\e[48;2;71;212;36m\e[38;2;63;172;36m▄\e[48;2;63;174;35m\e[38;2;57;138;37m▄\e[48;2;58;146;36m\e[38;2;57;137;38m▄\e[48;2;58;139;37m\e[38;2;57;138;37m▄\e[48;2;58;138;37m\e[38;2;54;128;35m▄\e[48;2;50;117;34m\e[38;2;20;44;14m▄\e[48;2;20;32;17m\e[38;2;39;61;34m▄\e[48;2;51;77;44m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;45;69;40m▄\e[48;2;51;78;45m\e[38;2;49;75;43m▄\e[0m + \e[48;2;84;151;67m\e[38;2;98;177;78m▄\e[48;2;43;80;34m\e[38;2;98;177;78m▄\e[48;2;22;39;19m\e[38;2;98;178;78m▄\e[48;2;43;67;38m\e[38;2;81;148;64m▄\e[48;2;40;70;33m\e[38;2;44;78;36m▄\e[48;2;54;127;36m\e[38;2;21;47;15m▄\e[48;2;55;120;39m\e[38;2;54;117;39m▄\e[48;2;56;133;37m\e[38;2;59;133;40m▄\e[48;2;71;211;36m\e[38;2;61;164;37m▄\e[48;2;73;217;36m\e[38;2;71;211;36m▄\e[48;2;73;218;37m\e[38;2;72;218;36m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;72;217;36m▄\e[48;2;73;218;37m\e[38;2;67;203;34m▄\e[48;2;68;194;37m\e[38;2;40;116;21m▄\e[48;2;58;142;36m\e[38;2;8;21;5m▄\e[48;2;49;120;31m\e[38;2;6;10;5m▄\e[48;2;25;59;16m\e[38;2;73;108;65m▄\e[48;2;15;33;11m\e[38;2;95;157;79m▄\e[48;2;12;25;9m\e[38;2;97;175;77m▄\e[48;2;21;32;19m\e[38;2;99;179;79m▄\e[48;2;23;35;19m\e[38;2;98;178;78m▄\e[48;2;20;34;17m\e[38;2;98;178;78m▄\e[48;2;13;24;11m\e[38;2;98;178;78m▄\e[48;2;16;26;14m\e[38;2;98;177;78m▄\e[0m + \e[48;2;97;176;77m\e[38;2;58;103;46m▄\e[48;2;98;177;78m\e[38;2;94;170;75m▄\e[48;2;98;177;78m\e[38;2;99;179;79m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;97;176;77m\e[38;2;98;177;78m▄\e[48;2;91;165;72m\e[38;2;98;177;78m▄\e[48;2;55;100;44m\e[38;2;98;177;78m▄\e[48;2;15;27;10m\e[38;2;92;168;73m▄\e[48;2;24;46;18m\e[38;2;76;138;61m▄\e[48;2;73;154;53m\e[38;2;54;96;43m▄\e[48;2;74;213;39m\e[38;2;24;48;18m▄\e[48;2;74;222;37m\e[38;2;20;55;11m▄\e[48;2;73;217;37m\e[38;2;31;91;16m▄\e[48;2;73;218;37m\e[38;2;49;145;24m▄\e[48;2;73;218;37m\e[38;2;68;201;35m▄\e[48;2;73;218;37m\e[38;2;73;217;37m▄\e[48;2;73;218;37m\e[38;2;74;220;37m▄\e[48;2;73;218;37m\e[38;2;73;219;37m▄\e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m \e[48;2;73;218;37m\e[38;2;73;220;37m▄\e[48;2;73;218;37m\e[38;2;72;214;37m▄\e[48;2;73;218;37m\e[38;2;63;187;32m▄\e[48;2;72;217;36m\e[38;2;41;120;22m▄\e[48;2;74;222;36m\e[38;2;21;52;13m▄\e[48;2;67;203;34m\e[38;2;39;62;34m▄\e[48;2;40;117;21m\e[38;2;64;103;54m▄\e[48;2;14;43;7m\e[38;2;72;126;57m▄\e[48;2;4;12;2m\e[38;2;87;156;69m▄\e[48;2;25;45;21m\e[38;2;97;174;78m▄\e[48;2;71;124;57m\e[38;2;99;177;80m▄\e[48;2;97;168;78m\e[38;2;94;170;75m▄\e[48;2;96;175;77m\e[38;2;103;177;84m▄\e[48;2;98;176;79m\e[38;2;109;183;90m▄\e[48;2;100;178;80m\e[38;2;112;185;94m▄\e[48;2;100;177;80m\e[38;2;111;184;92m▄\e[48;2;99;177;80m\e[38;2;107;182;89m▄\e[48;2;98;177;78m\e[38;2;105;182;85m▄\e[48;2;98;177;78m\e[38;2;103;180;83m▄\e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[0m + \e[38;2;54;79;47m▀\e[38;2;72;123;60m▀\e[48;2;97;176;78m\e[38;2;65;87;60m▄\e[48;2;98;177;78m\e[38;2;73;130;59m▄\e[48;2;98;177;78m\e[38;2;91;165;72m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;96;172;77m\e[38;2;98;177;78m▄\e[48;2;82;147;65m\e[38;2;98;177;78m▄\e[48;2;66;116;52m\e[38;2;98;177;78m▄\e[48;2;46;78;38m\e[38;2;98;177;78m▄\e[48;2;27;51;20m\e[38;2;98;177;78m▄\e[48;2;28;60;20m\e[38;2;94;169;74m▄\e[48;2;28;67;19m\e[38;2;86;155;69m▄\e[48;2;34;96;19m\e[38;2;69;123;54m▄\e[48;2;42;126;21m\e[38;2;48;86;39m▄\e[48;2;51;148;27m\e[38;2;36;64;28m▄\e[48;2;55;164;28m\e[38;2;26;46;20m▄\e[48;2;60;180;30m\e[38;2;23;39;18m▄\e[48;2;62;186;31m\e[38;2;21;40;17m▄\e[48;2;61;181;31m\e[38;2;19;36;16m▄\e[48;2;67;176;40m\e[38;2;18;32;14m▄\e[48;2;63;173;35m\e[38;2;23;36;19m▄\e[48;2;56;168;29m\e[38;2;27;42;23m▄\e[48;2;53;160;27m\e[38;2;29;45;24m▄\e[48;2;44;133;22m\e[38;2;30;53;25m▄\e[48;2;34;102;17m\e[38;2;52;89;43m▄\e[48;2;20;60;10m\e[38;2;88;148;71m▄\e[48;2;24;47;19m\e[38;2;97;171;78m▄\e[48;2;34;62;27m\e[38;2;98;177;78m▄\e[48;2;55;99;44m\e[38;2;98;177;78m▄\e[48;2;80;144;64m\e[38;2;98;177;78m▄\e[48;2;99;176;79m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;99;177;79m▄\e[48;2;99;177;79m\e[38;2;96;172;76m▄\e[48;2;99;175;79m\e[38;2;85;151;68m▄\e[48;2;95;169;76m\e[38;2;72;121;60m▄\e[48;2;109;180;92m\e[38;2;37;57;32m▄\e[48;2;100;159;85m\e[38;2;38;41;36m▄\e[48;2;72;107;62m\e[38;2;74;74;74m▄\e[0m\e[38;2;44;65;38m▀\e[38;2;31;48;27m▀\e[38;2;31;48;26m▀\e[38;2;31;52;25m▀\e[38;2;41;71;34m▀\e[38;2;59;97;50m▀\e[0m + \e[38;2;95;106;94m▀\e[38;2;81;137;65m▀\e[38;2;91;166;73m▀\e[48;2;95;174;76m\e[38;2;61;73;59m▄\e[48;2;98;177;78m\e[38;2;33;66;26m▄\e[48;2;98;177;78m\e[38;2;81;143;65m▄\e[48;2;98;177;78m\e[38;2;102;182;81m▄\e[48;2;98;177;78m\e[38;2;97;176;77m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;99;179;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;178;78m\e[38;2;98;177;78m▄\e[48;2;98;179;78m\e[38;2;98;177;78m▄\e[48;2;97;177;77m\e[38;2;98;177;78m▄\e[48;2;98;177;78m \e[48;2;98;177;78m \e[48;2;98;177;78m\e[38;2;98;176;78m▄\e[48;2;98;177;78m\e[38;2;99;179;78m▄\e[48;2;98;177;78m\e[38;2;93;169;74m▄\e[48;2;98;177;78m\e[38;2;56;106;44m▄\e[48;2;96;174;77m\e[38;2;16;31;13m▄\e[48;2;68;126;54m\e[38;2;58;58;58m▄\e[0m\e[38;2;28;50;23m▀\e[38;2;20;22;20m▀\e[0m + \e[38;2;41;52;39m▀\e[38;2;39;76;30m▀\e[38;2;73;136;57m▀\e[48;2;90;162;72m\e[38;2;96;100;95m▄\e[48;2;99;175;79m\e[38;2;60;69;58m▄\e[48;2;98;177;78m\e[38;2;46;59;43m▄\e[48;2;98;177;78m\e[38;2;32;51;27m▄\e[48;2;98;178;78m\e[38;2;28;50;23m▄\e[48;2;98;178;78m\e[38;2;28;55;22m▄\e[48;2;98;178;78m\e[38;2;35;64;28m▄\e[48;2;98;177;78m\e[38;2;41;75;33m▄\e[48;2;98;177;78m\e[38;2;50;89;41m▄\e[48;2;98;177;77m\e[38;2;54;89;45m▄\e[48;2;98;177;77m\e[38;2;53;89;44m▄\e[48;2;98;177;78m\e[38;2;49;86;39m▄\e[48;2;98;177;78m\e[38;2;45;83;36m▄\e[48;2;98;177;78m\e[38;2;40;74;32m▄\e[48;2;98;177;78m\e[38;2;35;64;28m▄\e[48;2;98;178;78m\e[38;2;39;60;33m▄\e[48;2;90;163;71m\e[38;2;55;61;53m▄\e[0m\e[38;2;53;97;41m▀\e[38;2;24;44;19m▀\e[38;2;36;41;35m▀\e[0m +'"; else - echo " \e[48;5;108m \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;22m \e[48;5;108m \e[48;5;114m \e[48;5;59m \e[49m - \e[48;5;108m \e[48;5;71m \e[48;5;22m \e[48;5;113m \e[48;5;71m \e[48;5;94m \e[48;5;214m \e[48;5;58m \e[48;5;214m \e[48;5;100m \e[48;5;71m \e[48;5;16m \e[48;5;108m \e[49m - \e[48;5;65m \e[48;5;16m \e[48;5;22m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;65m \e[49m - \e[48;5;23m \e[48;5;214m \e[48;5;178m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;94m \e[48;5;136m \e[48;5;214m \e[48;5;65m \e[49m - \e[48;5;58m \e[48;5;214m \e[48;5;172m \e[48;5;64m \e[48;5;77m \e[48;5;71m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;77m \e[48;5;71m \e[48;5;16m \e[48;5;77m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[49m - \e[48;5;65m \e[48;5;16m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[48;5;59m \e[48;5;65m \e[49m - \e[48;5;16m \e[48;5;65m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;22m \e[48;5;65m \e[49m - \e[48;5;108m \e[48;5;107m \e[48;5;59m \e[48;5;77m \e[48;5;16m \e[48;5;114m \e[48;5;108m \e[49m" + echo " \e[48;5;108m \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;22m \e[48;5;108m \e[48;5;114m \e[48;5;59m \e[49m + \e[48;5;108m \e[48;5;71m \e[48;5;22m \e[48;5;113m \e[48;5;71m \e[48;5;94m \e[48;5;214m \e[48;5;58m \e[48;5;214m \e[48;5;100m \e[48;5;71m \e[48;5;16m \e[48;5;108m \e[49m + \e[48;5;65m \e[48;5;16m \e[48;5;22m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;65m \e[49m + \e[48;5;23m \e[48;5;214m \e[48;5;178m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;214m \e[48;5;136m \e[48;5;94m \e[48;5;136m \e[48;5;214m \e[48;5;65m \e[49m + \e[48;5;58m \e[48;5;214m \e[48;5;172m \e[48;5;64m \e[48;5;77m \e[48;5;71m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;59m \e[48;5;71m \e[48;5;77m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;16m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;77m \e[48;5;71m \e[48;5;16m \e[48;5;77m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[49m + \e[48;5;65m \e[48;5;16m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;150m \e[48;5;113m \e[48;5;77m \e[48;5;65m \e[48;5;59m \e[48;5;65m \e[49m + \e[48;5;16m \e[48;5;65m \e[48;5;71m \e[48;5;77m \e[48;5;71m \e[48;5;22m \e[48;5;65m \e[49m + \e[48;5;108m \e[48;5;107m \e[48;5;59m \e[48;5;77m \e[48;5;16m \e[48;5;114m \e[48;5;108m \e[49m" fi fi } +print_support (){ + printf """ + ${GREEN}/---------------------------------------------------------------------------\\ + | ${BLUE}Do you like PEASS?${GREEN} | + |---------------------------------------------------------------------------| + | ${YELLOW}Become a Patreon${GREEN} : ${RED}https://www.patreon.com/peass${GREEN} | + | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@carlospolopm${GREEN} | + | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli & makikvues${GREEN} | + |---------------------------------------------------------------------------| + | ${BLUE}Thank you! ${GREEN} | + \---------------------------------------------------------------------------/ +""" +} + ########################################### #-----------) Starting Output (-----------# ########################################### echo "" -if [ !"$QUIET" ]; then print_banner; fi -printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; +if [ ! "$QUIET" ]; then print_banner; print_support; fi +printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; echo "" -printf ${YELLOW}"ADVISORY: "${BLUE}"$ADVISORY\n"$NC +printf ${YELLOW}"ADVISORY: ${BLUE}$ADVISORY\n$NC" echo "" -printf ${BLUE}"Linux Privesc Checklist: "${YELLOW}"https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist\n"$NC +printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-unix/linux-privilege-escalation-checklist\n"$NC echo " LEGEND:" | sed "s,LEGEND,${C}[1;4m&${C}[0m," echo " RED/YELLOW: 95% a PE vector" | sed "s,RED/YELLOW,${SED_RED_YELLOW}," echo " RED: You should take a look to it" | sed "s,RED,${SED_RED}," -echo " LightCyan: Users with console" | sed "s,LightCyan,${C}[1;96m&${C}[0m," +echo " LightCyan: Users with console" | sed "s,LightCyan,${SED_LIGHT_CYAN}," echo " Blue: Users without console & mounted devs" | sed "s,Blue,${SED_BLUE}," echo " Green: Common things (users, groups, SUID/SGID, mounts, .sh scripts, cronjobs) " | sed "s,Green,${SED_GREEN}," -echo " LightMagenta: Your username" | sed "s,LightMagenta,${C}[1;95m&${C}[0m," +echo " LightMagenta: Your username" | sed "s,LightMagenta,${SED_LIGHT_MAGENTA}," if [ "$IAMROOT" ]; then echo "" echo " YOU ARE ALREADY ROOT!!! (it could take longer to complete execution)" | sed "s,YOU ARE ALREADY ROOT!!!,${SED_RED_YELLOW}," @@ -259,16 +278,16 @@ kernelDCW_Rhel6_4="2.6.32-431.71.1.el6|2.6.32-431.72.1.el6|2.6.32-431.73.2.el6|2 kernelDCW_Rhel7="3.10.0-229.rt56.141.el7|3.10.0-229.1.2.rt56.141.2.el7_1|3.10.0-229.4.2.rt56.141.6.el7_1|3.10.0-229.7.2.rt56.141.6.el7_1|3.10.0-229.11.1.rt56.141.11.el7_1|3.10.0-229.14.1.rt56.141.13.el7_1|3.10.0-229.20.1.rt56.141.14.el7_1|3.10.0-229.rt56.141.el7|3.10.0-327.rt56.204.el7|3.10.0-327.4.5.rt56.206.el7_2|3.10.0-327.10.1.rt56.211.el7_2|3.10.0-327.13.1.rt56.216.el7_2|3.10.0-327.18.2.rt56.223.el7_2|3.10.0-327.22.2.rt56.230.el7_2|3.10.0-327.28.2.rt56.234.el7_2|3.10.0-327.28.3.rt56.235.el7|3.10.0-327.36.1.rt56.237.el7|3.10.0-123.el7|3.10.0-123.1.2.el7|3.10.0-123.4.2.el7|3.10.0-123.4.4.el7|3.10.0-123.6.3.el7|3.10.0-123.8.1.el7|3.10.0-123.9.2.el7|3.10.0-123.9.3.el7|3.10.0-123.13.1.el7|3.10.0-123.13.2.el7|3.10.0-123.20.1.el7|3.10.0-229.el7|3.10.0-229.1.2.el7|3.10.0-229.4.2.el7|3.10.0-229.7.2.el7|3.10.0-229.11.1.el7|3.10.0-229.14.1.el7|3.10.0-229.20.1.el7|3.10.0-229.24.2.el7|3.10.0-229.26.2.el7|3.10.0-229.28.1.el7|3.10.0-229.30.1.el7|3.10.0-229.34.1.el7|3.10.0-229.38.1.el7|3.10.0-229.40.1.el7|3.10.0-229.42.1.el7|3.10.0-327.el7|3.10.0-327.3.1.el7|3.10.0-327.4.4.el7|3.10.0-327.4.5.el7|3.10.0-327.10.1.el7|3.10.0-327.13.1.el7|3.10.0-327.18.2.el7|3.10.0-327.22.2.el7|3.10.0-327.28.2.el7|3.10.0-327.28.3.el7|3.10.0-327.36.1.el7|3.10.0-327.36.2.el7|3.10.0-229.1.2.ael7b|3.10.0-229.4.2.ael7b|3.10.0-229.7.2.ael7b|3.10.0-229.11.1.ael7b|3.10.0-229.14.1.ael7b|3.10.0-229.20.1.ael7b|3.10.0-229.24.2.ael7b|3.10.0-229.26.2.ael7b|3.10.0-229.28.1.ael7b|3.10.0-229.30.1.ael7b|3.10.0-229.34.1.ael7b|3.10.0-229.38.1.ael7b|3.10.0-229.40.1.ael7b|3.10.0-229.42.1.ael7b|4.2.0-0.21.el7" -MyUID=`id -u $(whoami)` -if [ `echo $MyUID` ]; then myuid=$MyUID; elif [ `id -u $(whoami) 2>/dev/null` ]; then myuid=`id -u $(whoami) 2>/dev/null`; elif [ `id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1` ]; then myuid=`id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1`; fi +MyUID=$(id -u $(whoami)) +if [ "$MyUID" ]; then myuid=$MyUID; elif [ $(id -u $(whoami) 2>/dev/null) ]; then myuid=$(id -u $(whoami) 2>/dev/null); elif [ "$(id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1)" ]; then myuid=$(id 2>/dev/null | cut -d "=" -f 2 | cut -d "(" -f 1); fi if [ $myuid -gt 2147483646 ]; then baduid="|$myuid"; fi idB="euid|egid$baduid" sudovB="[01].[012345678].[0-9]+|1.9.[01234]|1.9.5p1" -mounted=`(mount -l || cat /proc/mounts || cat /proc/self/mounts) 2>/dev/null | grep "^/" | cut -d " " -f1 | tr '\n' '|'``cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}'` +mounted=$( (mount -l || cat /proc/mounts || cat /proc/self/mounts) 2>/dev/null | grep "^/" | cut -d " " -f1 | tr '\n' '|')$(cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}') if ! [ "$mounted" ]; then mounted="ImPoSSssSiBlEee"; fi #Don't let any blacklist to be empty mountG="swap|/cdrom|/floppy|/dev/shm" -notmounted=`cat /etc/fstab 2>/dev/null | grep "^/" | grep -Ev "$mountG" | awk '{print $1}' | grep -Ev "$mounted" | tr '\n' '|'`"ImPoSSssSiBlEee" +notmounted=$(cat /etc/fstab 2>/dev/null | grep "^/" | grep -Ev "$mountG" | awk '{print $1}' | grep -Ev "$mounted" | tr '\n' '|')"ImPoSSssSiBlEee" mountpermsB="\Wsuid|\Wuser|\Wexec" mountpermsG="nosuid|nouser|noexec" @@ -277,10 +296,10 @@ rootcommon="/init$|upstart-udev-bridge|udev|/getty|cron|apache2|java|tomcat|/vmt groupsB="\(root\)|\(shadow\)|\(admin\)|\(video\)|\(adm\)|\(wheel\)|\(auth\)" groupsVB="\(sudo\)|\(docker\)|\(lxd\)|\(disk\)|\(lxc\)" knw_grps='\(lpadmin\)|\(cdrom\)|\(plugdev\)|\(nogroup\)' #https://www.togaware.com/linux/survivor/Standard_Groups.html -mygroups=`groups 2>/dev/null | tr " " "|"` +mygroups=$(groups 2>/dev/null | tr " " "|") # Default Binaries List -sidG1="/abuild-sudo$|/accton$|/allocate$|/ARDAgent|/arping$|/atq$|/atrm$|/authpf$|/authpf-noip$|/authopen$|/batch$|/bbsuid$|/bsd-write$|/btsockstat$|/bwrap$|/cacaocsc$|/camel-lock-helper-1.2$|/ccreds_validate$|/cdrw$|/chage$|/check-foreground-console$|/chrome-sandbox$|/chsh$|/cons.saver$|/crontab$|/ct$|/cu$|/dbus-daemon-launch-helper$|/deallocate$|/desktop-create-kmenu$|/dma$|/dma-mbox-create$|/dmcrypt-get-device$|/doas$|/dotlockfile$|/dotlock.mailutils$|/dtaction$|/dtfile$|/eject$|/execabrt-action-install-debuginfo-to-abrt-cache$|/execdbus-daemon-launch-helper$|/execdma-mbox-create$|/execlockspool$|/execlogin_chpass$|/execlogin_lchpass$|/execlogin_passwd$|/execssh-keysign$|/execulog-helper$|/exim4|/expiry$|/fdformat$|/fstat$|/fusermount$|/fusermount3$" +sidG1="/abuild-sudo$|/accton$|/allocate$|/ARDAgent$|/arping$|/atq$|/atrm$|/authpf$|/authpf-noip$|/authopen$|/batch$|/bbsuid$|/bsd-write$|/btsockstat$|/bwrap$|/cacaocsc$|/camel-lock-helper-1.2$|/ccreds_validate$|/cdrw$|/chage$|/check-foreground-console$|/chrome-sandbox$|/chsh$|/cons.saver$|/crontab$|/ct$|/cu$|/dbus-daemon-launch-helper$|/deallocate$|/desktop-create-kmenu$|/dma$|/dma-mbox-create$|/dmcrypt-get-device$|/doas$|/dotlockfile$|/dotlock.mailutils$|/dtaction$|/dtfile$|/eject$|/execabrt-action-install-debuginfo-to-abrt-cache$|/execdbus-daemon-launch-helper$|/execdma-mbox-create$|/execlockspool$|/execlogin_chpass$|/execlogin_lchpass$|/execlogin_passwd$|/execssh-keysign$|/execulog-helper$|/exim4|/expiry$|/fdformat$|/fstat$|/fusermount$|/fusermount3$" sidG2="/gnome-pty-helper$|/glines$|/gnibbles$|/gnobots2$|/gnome-suspend$|/gnometris$|/gnomine$|/gnotski$|/gnotravex$|/gpasswd$|/gpg$|/gpio$|/gtali|/.hal-mtab-lock$|/helper$|/imapd$|/inndstart$|/kismet_cap_nrf_51822$|/kismet_cap_nxp_kw41z$|/kismet_cap_ti_cc_2531$|/kismet_cap_ti_cc_2540$|/kismet_cap_ubertooth_one$|/kismet_capture$|/kismet_cap_linux_bluetooth$|/kismet_cap_linux_wifi$|/kismet_cap_nrf_mousejack$|/ksu$|/list_devices$|/load_osxfuse$|/locate$|/lock$|/lockdev$|/lockfile$|/login_activ$|/login_crypto$|/login_radius$|/login_skey$|/login_snk$|/login_token$|/login_yubikey$|/lpc$|/lpd$|/lpd-port$|/lppasswd$|/lpq$|/lpr$|/lprm$|/lpset$|/lxc-user-nic$|/mahjongg$|/mail-lock$|/mailq$|/mail-touchlock$|/mail-unlock$|/mksnap_ffs$|/mlocate$|/mlock$|/mount$|/mount.cifs$|/mount.ecryptfs_private$|/mount.nfs$|/mount.nfs4$|/mount_osxfuse$|/mtr$|/mutt_dotlock$" sidG3="/ncsa_auth$|/netpr$|/netkit-rcp$|/netkit-rlogin$|/netkit-rsh$|/netreport$|/netstat$|/newgidmap$|/newtask$|/newuidmap$|/nvmmctl$|/opieinfo$|/opiepasswd$|/pam_auth$|/pam_extrausers_chkpwd$|/pam_timestamp_check$|/pamverifier$|/pfexec$|/ping$|/ping6$|/pmconfig$|/pmap$|/polkit-agent-helper-1$|/polkit-explicit-grant-helper$|/polkit-grant-helper$|/polkit-grant-helper-pam$|/polkit-read-auth-helper$|/polkit-resolve-exe-helper$|/polkit-revoke-helper$|/polkit-set-default-helper$|/postdrop$|/postqueue$|/poweroff$|/ppp$|/procmail$|/pstat$|/pt_chmod$|/pwdb_chkpwd$|/quota$|/rcmd|/remote.unknown$|/rlogin$|/rmformat$|/rnews$|/run-mailcap$|/sacadm$|/same-gnome$|screen.real$|/security_authtrampoline$|/sendmail.sendmail$|/shutdown$|/skeyaudit$|/skeyinfo$|/skeyinit$|/sliplogin|/slocate$|/smbmnt$|/smbumount$|/smpatch$|/smtpctl$|/sperl5.8.8$|/ssh-agent$|/ssh-keysign$|/staprun$|/startinnfeed$|/stclient$|/su$|/suexec$|/sys-suspend$|/sysstat$|/systat$" sidG4="/telnetlogin$|/timedc$|/tip$|/top$|/traceroute6$|/traceroute6.iputils$|/trpt$|/tsoldtlabel$|/tsoljdslabel$|/tsolxagent$|/ufsdump$|/ufsrestore$|/ulog-helper$|/umount.cifs$|/umount.nfs$|/umount.nfs4$|/unix_chkpwd$|/uptime$|/userhelper$|/userisdnctl$|/usernetctl$|/utempter$|/utmp_update$|/uucico$|/uuglist$|/uuidd$|/uuname$|/uusched$|/uustat$|/uux$|/uuxqt$|/VBoxHeadless$|/VBoxNetAdpCtl$|/VBoxNetDHCP$|/VBoxNetNAT$|/VBoxSDL$|/VBoxVolInfo$|/VirtualBoxVM$|/vmstat$|/vmware-authd$|/vmware-user-suid-wrapper$|/vmware-vmx$|/vmware-vmx-debug$|/vmware-vmx-stats$|/vncserver-x11$|/volrmmount$|/w$|/wall$|/whodo$|/write$|/X$|/Xorg.wrap$|/Xsun$|/Xvnc$|/yppasswd$" @@ -340,16 +359,27 @@ sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ /xorg$%Xorg_1.19_to_1.20.x\(CVE_2018-14665\)/xorg-x11-server<=1.20.3/AIX_7.1_\(6.x_to_7.x_should_be_vulnerable\)_X11.base.rte<7.1.5.32_and_\ /xterm$%Solaris_5.5.1_X11R6.3\(05-1997\)/Debian_xterm_version_222-1etch2\(01-2009\)" #To update sidVB: curl https://github.com/GTFOBins/GTFOBins.github.io/tree/master/_gtfobins 2>/dev/null | grep 'href="/GTFOBins/' | grep '.md">' | awk -F 'title="' '{print $2}' | cut -d '"' -f1 | cut -d "." -f1 | sed -e 's,^,/,' | sed -e 's,$,\$,' | tr '\n' '|' -sidVB='/apt-get$|/apt$|/ar$|/aria2c$|/arp$|/ash$|/at$|/atobm$|/awk$|/base32$|/base64$|/basenc$|/bash$|/bpftrace$|/bridge$|/bundler$|/busctl$|/busybox$|/byebug$|/cancel$|/capsh$|/cat$|/certbot$|/check_by_ssh$|/check_cups$|/check_log$|/check_memory$|/check_raid$|/check_ssl_cert$|/check_statusfile$|/chmod$|/chown$|/chroot$|/cobc$|/column$|/comm$|/composer$|/cowsay$|/cowthink$|/cp$|/cpan$|/cpio$|/cpulimit$|/crash$|/crontab$|/csh$|/csplit$|/csvtool$|/cupsfilter$|/curl$|/cut$|/dash$|/date$|/dd$|/dialog$|/diff$|/dig$|/dmesg$|/dmsetup$|/dnf$|/docker$|/dpkg$|/dvips$|/easy_install$|/eb$|/ed$|/emacs$|/env$|/eqn$|/ex$|/exiftool$|/expand$|/expect$|/facter$|/file$|/find$|/finger$|/flock$|/fmt$|/fold$|/ftp$|/gawk$|/gcc$|/gdb$|/gem$|/genisoimage$|/ghc$|/ghci$|/gimp$|/git$|/grep$|/gtester$|/gzip$|/hd$|/head$|/hexdump$|/highlight$|/hping3$|/iconv$|/iftop$|/install$|/ionice$|/ip$|/irb$|/jjs$|/join$|/journalctl$|/jq$|/jrunscript$|/ksh$|/ksshell$' -sidVB2='/latex$|/ld$|/ldconfig$|/less$|/logsave$|/look$|/ltrace$|/lua$|/lualatex$|/luatex$|/lwp-download$|/lwp-request$|/mail$|/make$|/man$|/mawk$|/more$|/mount$|/mtr$|/mv$|/mysql$|/nano$|/nawk$|/nc$|/nice$|/nl$|/nmap$|/node$|/nohup$|/npm$|/nroff$|/nsenter$|/octave$|/od$|/openssl$|/openvpn$|/openvt$|/paste$|/pdb$|/pdflatex$|/pdftex$|/perl$|/pg$|/php$|/pic$|/pico$|/pip$|/pkexec$|/pkg$|/pr$|/pry$|/psql$|/puppet$|/python$|/rake$|/readelf$|/red$|/redcarpet$|/restic$|/rev$|/rlogin$|/rlwrap$|/rpm$|/rpmquery$|/rsync$|/ruby$|/run-mailcap$|/run-parts$|/rview$|/rvim$|/scp$|/screen$|/script$|/sed$|/service$|/setarch$|/sftp$|/sg$|/shuf$|/slsh$|/smbclient$|/snap$|/socat$|/soelim$|/sort$|/split$|/sqlite3$|/ss$|/ssh-keygen$|/ssh-keyscan$|/ssh$|/start-stop-daemon$|/stdbuf$|/strace$|/strings$|/su$|/sysctl$|/systemctl$|/tac$|/tail$|/tar$|/taskset$|/tbl$|/tclsh$|/tcpdump$|/tee$|/telnet$|/tex$|/tftp$|/time$|/timeout$|/tmux$|/top$|/troff$|/ul$|/unexpand$|/uniq$|/unshare$|/update-alternatives$|/uudecode$|/uuencode$|/valgrind$|/vi$|/view$|/vigr$|/vim$|/vimdiff$|/vipw$|/virsh$|/watch$|/wc$|/wget$|/whois$|/wish$|/xargs$|/xelatex$|/xetex$|/xmodmap$|/xxd$|/xz$|/yelp$|/yum$|/zip$|/zsh$|/zsoelim$|/zypper$' +sidVB='/ar$|/aria2c$|/arj$|/arp$|/ash$|/atobm$|/awk$|/base32$|/base64$|/basenc$|/bash$|/bridge$|/busybox$|/byebug$|/capsh$|/cat$|/chmod$|/chown$|/chroot$|/cmp$|/column$|/comm$|/composer$|/cp$|/cpio$|/cpulimit$|/csh$|/csplit$|/csvtool$|/cupsfilter$|/curl$|/cut$|/dash$|/date$|/dd$|/dialog$|/diff$|/dig$|/dmsetup$|/docker$|/dvips$|/ed$|/emacs$|/env$|/eqn$|/expand$|/expect$|/file$|/find$|/flock$|/fmt$|/fold$|/gawk$|/gdb$|/gimp$|/git$|/grep$|/gtester$|/gzip$|/hd$|/head$|/hexdump$|/highlight$|/hping3$|/iconv$|/iftop$|/install$|/ionice$|/ip$|/jjs$|/join$|/jq$|/jrunscript$|/ksh$|/ksshell$|/latex$|/ldconfig$|/less$|/logsave$|/look$|/lua$|/lualatex$|/luatex$|/make$|/mawk$|/more$|/msgattrib$|/msgcat$|/msgconv$|/msgfilter$|/msgmerge$|/msguniq$' +sidVB2='/mv$|/mysql$|/nano$|/nawk$|/nc$|/nice$|/nl$|/nmap$|/node$|/nohup$|/octave$|/od$|/openssl$|/openvpn$|/paste$|/pdflatex$|/pdftex$|/perl$|/pg$|/php$|/pic$|/pico$|/pr$|/pry$|/python$|/rake$|/readelf$|/restic$|/rev$|/rlwrap$|/rpm$|/rpmquery$|/rsync$|/run-parts$|/rview$|/rvim$|/scp$|/sed$|/setarch$|/shuf$|/slsh$|/socat$|/soelim$|/sort$|/sqlite3$|/ss$|/ssh-keygen$|/ssh-keyscan$|/start-stop-daemon$|/stdbuf$|/strace$|/strings$|/sysctl$|/systemctl$|/tac$|/tail$|/tar$|/taskset$|/tbl$|/tclsh$|/tee$|/telnet$|/tex$|/tftp$|/tic$|/time$|/timeout$|/troff$|/ul$|/unexpand$|/uniq$|/unshare$|/update-alternatives$|/uudecode$|/uuencode$|/view$|/vigr$|/vim$|/vimdiff$|/vipw$|/watch$|/wc$|/wget$|/xargs$|/xelatex$|/xetex$|/xmodmap$|/xmore$|/xxd$|/xz$|/zip$|/zsh$|/zsoelim$' cfuncs='file|free|main|more|read|split|write' -sudoVB=" \*|env_keep\+=LD_PRELOAD|apt-get$|apt$|aria2c$|arp$|ash$|awk$|base64$|bash$|busybox$|cat$|chmod$|chown$|cp$|cpan$|cpulimit$|crontab$|csh$|curl$|cut$|dash$|date$|dd$|diff$|dmesg$|dmsetup$|dnf$|docker$|dpkg$|easy_install$|ed$|emacs$|env$|expand$|expect$|facter$|file$|find$|flock$|fmt$|fold$|ftp$|gdb$|gimp$|git$|grep$|head$|ionice$|ip$|irb$|jjs$|journalctl$|jq$|jrunscript$|ksh$|ld.so$|less$|logsave$|ltrace$|lua$|mail$|make$|man$|more$|mount$|mtr$|mv$|mysql$|nano$|nc$|nice$|nl$|nmap$|node$|od$|openssl$|perl$|pg$|php$|pic$|pico$|pip$|puppet$|python$|readelf$|red$|rlwrap$|rpm$|rpmquery$|rsync$|ruby$|run-mailcap$|run-parts$|rvim$|scp$|screen$|script$|sed$|service$|setarch$|sftp$|smbclient$|socat$|sort$|sqlite3$|ssh$|start-stop-daemon$|stdbuf$|strace$|systemctl$|tail$|tar$|taskset$|tclsh$|tcpdump$|tee$|telnet$|tftp$|time$|timeout$|tmux$|ul$|unexpand$|uniq$|unshare$|vi$|vim$|watch$|wget$|wish$|xargs$|xxd$|yum$|zip$|zsh$|zypper$" +sudoVB1=" \*|env_keep\+=LD_PRELOAD|ansible-playbook$|apt-get$|apt$|ar$|aria2c$|arj$|arp$|ash$|at$|atobm$|awk$|base32$|base64$|basenc$|bash$|bpftrace$|bridge$|bundler$|busctl$|busybox$|byebug$|c89$|c99$|capsh$|cat$|certbot$|check_by_ssh$|check_cups$|check_log$|check_memory$|check_raid$|check_ssl_cert$|check_statusfile$|chmod$|chown$|chroot$|cmp$|cobc$|column$|comm$|composer$|cowsay$|cowthink$|cp$|cpan$|cpio$|cpulimit$|crash$|crontab$|csh$|csplit$|csvtool$|cupsfilter$|curl$|cut$|dash$|date$|dd$|dialog$|diff$|dig$|dmesg$|dmidecode$|dmsetup$|dnf$|docker$|dpkg$|dvips$|easy_install$|eb$|ed$|emacs$|env$|eqn$|ex$|exiftool$|expand$|expect$|facter$|file$|find$|flock$|fmt$|fold$|ftp$|gawk$|gcc$|gdb$|gem$|genisoimage$|ghc$|ghci$|gimp$|git$|grep$|gtester$|gzip$|hd$|head$|hexdump$|highlight$|hping3$|iconv$|iftop$|install$|ionice$|ip$|irb$|jjs$|join$|journalctl$|jq$|jrunscript$|knife$|ksh$|ksshell$|latex$|ldconfig$|less$|ln$|loginctl$|logsave$|look$|ltrace$|lua$|lualatex$|luatex$|lwp-download$|lwp-request$|mail$|make$|man$|mawk$|more$|mount$" +sudoVB2="msgattrib$|msgcat$|msgconv$|msgfilter$|msgmerge$|msguniq$|mtr$|mv$|mysql$|nano$|nawk$|nc$|nice$|nl$|nmap$|node$|nohup$|npm$|nroff$|nsenter$|octave$|od$|openssl$|openvpn$|openvt$|paste$|pdb$|pdflatex$|pdftex$|perl$|pg$|php$|pic$|pico$|pip$|pkexec$|pkg$|pr$|pry$|psql$|puppet$|python$|rake$|readelf$|red$|redcarpet$|restic$|rev$|rlwrap$|rpm$|rpmquery$|rsync$|ruby$|run-mailcap$|run-parts$|rview$|rvim$|scp$|screen$|script$|sed$|service$|setarch$|sftp$|sg$|shuf$|slsh$|smbclient$|snap$|socat$|soelim$|sort$|split$|sqlite3$|ss$|ssh-keygen$|ssh-keyscan$|ssh$|start-stop-daemon$|stdbuf$|strace$|strings$|su$|sysctl$|systemctl$|systemd-resolve$|tac$|tail$|tar$|taskset$|tbl$|tclsh$|tcpdump$|tee$|telnet$|tex$|tftp$|tic$|time$|timedatectl$|timeout$|tmux$|top$|troff$|ul$|unexpand$|uniq$|unshare$|update-alternatives$|uudecode$|uuencode$|valgrind$|vi$|view$|vigr$|vim$|vimdiff$|vipw$|virsh$|watch$|wc$|wget$|wish$|xargs$|xelatex$|xetex$|xmodmap$|xmore$|xxd$|xz$|yarn$|yum$|zip$|zsh$|zsoelim$|zypper$" sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" sudoG="NOEXEC" -sudocapsB="/apt-get|/apt|/aria2c|/arp|/ash|/awk|/base64|/bash|/busybox|/cat|/chmod|/chown|/cp|/cpan|/cpulimit|/crontab|/csh|/curl|/cut|/dash|/date|/dd|/diff|/dmesg|/dmsetup|/dnf|/docker|/dpkg|/easy_install|/ed|/emacs|/env|/expand|/expect|/facter|/file|/find|/flock|/fmt|/fold|/ftp|/gdb|/gimp|/git|/grep|/head|/ionice|/ip|/irb|/jjs|/journalctl|/jq|/jrunscript|/ksh|/ld.so|/less|/logsave|/ltrace|/lua|/mail|/make|/man|/more|/mount|/mtr|/mv|/mysql|/nano|/nc|/nice|/nl|/nmap|/node|/od|/openssl|/perl|/pg|/php|/pic|/pico|/pip|/puppet|/python|/readelf|/red|/rlwrap|/rpm|/rpmquery|/rsync|/ruby|/run-mailcap|/run-parts|/rvim|/scp|/screen|/script|/sed|/service|/setarch|/sftp|/smbclient|/socat|/sort|/sqlite3|/ssh|/start-stop-daemon|/stdbuf|/strace|/systemctl|/tail|/tar|/taskset|/tclsh|/tcpdump|/tee|/telnet|/tftp|/time|/timeout|/tmux|/ul|/unexpand|/uniq|/unshare|/vi|/vim|/watch|/wget|/wish|/xargs|/xxd|/yum|/zip|/zsh|/zypper" -capsB="=ep|cap_chown|cap_dac_override|cap_dac_read_search|cap_setuid|sys_admin|sys_ptrace|sys_module" +capsVB="cap_sys_admin:mount|python \ +cap_sys_ptrace:python \ +cap_sys_module:kmod|python \ +cap_dac_override:python|vim \ +cap_chown:chown|python \ +cap_former:chown|python \ +cap_setuid:gdb|node|perl|php|python|ruby|rview|rvim|view|vim|vimdiff \ +cap_setgid:gdb|node|perl|php|python|ruby|rview|rvim|view|vim|vimdiff \ +cap_net_raw:python|tcpdump" + + +capsB="=ep|cap_chown|cap_former|cap_setfcap|cap_dac_override|cap_dac_read_search|cap_setuid|cap_setgid|cap_kill|cap_net_bind_service|cap_net_raw|cap_net_admin|cap_sys_admin|cap_sys_ptrace|cap_sys_module" containercapsB="sys_admin|sys_ptrace|sys_module|dac_read_search|dac_override" OLDPATH=$PATH @@ -361,7 +391,7 @@ ADDPATH=":/usr/local/sbin\ :/bin" spath=":$PATH" for P in $ADDPATH; do - if [ ! -z "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi + if [ "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi done # test if sed supports -E or -r @@ -377,30 +407,30 @@ if [ $? -ne 0 ] ; then fi writeB="00-header|10-help-text|50-motd-news|80-esm|91-release-upgrade|\.sh$|\./|/authorized_keys|/bin/|/boot/|/etc/apache2/apache2.conf|/etc/apache2/httpd.conf|/etc/hosts.allow|/etc/hosts.deny|/etc/httpd/conf/httpd.conf|/etc/httpd/httpd.conf|/etc/inetd.conf|/etc/incron.conf|/etc/login.defs|/etc/logrotate.d/|/etc/modprobe.d/|/etc/pam.d/|/etc/php.*/fpm/pool.d/|/etc/php/.*/fpm/pool.d/|/etc/rsyslog.d/|/etc/skel/|/etc/sysconfig/network-scripts/|/etc/sysctl.conf|/etc/sysctl.d/|/etc/uwsgi/apps-enabled/|/etc/xinetd.conf|/etc/xinetd.d/|/etc/|/home//|/lib/|/log/|/mnt/|/root|/sys/|/usr/bin|/usr/games|/usr/lib|/usr/local/bin|/usr/local/games|/usr/local/sbin|/usr/sbin|/sbin/|/var/log/|\.timer$|\.service$|.socket$" -writeVB="/etc/anacrontab|/etc/bash.bashrc|/etc/bash_completion|/etc/bash_completion.d/|/etc/cron|/etc/environment|/etc/environment.d/|/etc/group|/etc/incron.d/|/etc/init|/etc/ld.so.conf.d/|/etc/master.passwd|/etc/passwd|/etc/profile.d/|/etc/profile|/etc/rc.d|/etc/shadow|/etc/skey/|/etc/sudoers|/etc/sudoers.d/|/etc/supervisor/conf.d/|/etc/supervisor/supervisord.conf|/etc/systemd|/etc/sys|/lib/systemd|/etc/update-motd.d/|/root/.ssh/|/run/systemd|/usr/lib/systemd|/systemd/system|/var/db/yubikey/|/var/spool/anacron|/var/spool/cron/crontabs|"`echo $PATH 2>/dev/null | sed 's/:\.:/:/g' | sed 's/:\.$//g' | sed 's/^\.://g' | sed 's/:/$|^/g'` #Add Path but remove simple dot in PATH +writeVB="/etc/anacrontab|/etc/bash.bashrc|/etc/bash_completion|/etc/bash_completion.d/|/etc/cron|/etc/environment|/etc/environment.d/|/etc/group|/etc/incron.d/|/etc/init|/etc/ld.so.conf.d/|/etc/master.passwd|/etc/passwd|/etc/profile.d/|/etc/profile|/etc/rc.d|/etc/shadow|/etc/skey/|/etc/sudoers|/etc/sudoers.d/|/etc/supervisor/conf.d/|/etc/supervisor/supervisord.conf|/etc/systemd|/etc/sys|/lib/systemd|/etc/update-motd.d/|/root/.ssh/|/run/systemd|/usr/lib/cron/tabs/|/usr/lib/systemd|/systemd/system|/var/db/yubikey/|/var/spool/anacron|/var/spool/cron/crontabs|"$(echo $PATH 2>/dev/null | sed 's/:\.:/:/g' | sed 's/:\.$//g' | sed 's/^\.://g' | sed 's/:/$|^/g') #Add Path but remove simple dot in PATH if [ "$MACPEAS" ]; then sh_usrs="ImPoSSssSiBlEee" nosh_usrs="ImPoSSssSiBlEee" dscl . list /Users | while read uname; do - ushell=`dscl . -read "/Users/$uname" UserShell | cut -d " " -f2` - if [ "`grep \"$ushell\" /etc/shells`" ]; then sh_usrs="$sh_usrs|$uname"; else nosh_usrs="$nosh_usrs|$uname"; fi + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q \"$ushell\" /etc/shells; then sh_usrs="$sh_usrs|$uname"; else nosh_usrs="$nosh_usrs|$uname"; fi done else - sh_usrs=`cat /etc/passwd 2>/dev/null | grep -v "^root:" | grep -i "sh$" | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/' | sed 's/|sys|/|sys[\\\s:]|^sys$|/' | sed 's/|daemon|/|daemon[\\\s:]|^daemon$|/'`"ImPoSSssSiBlEee" #Modified bin, sys and daemon so they are not colored everywhere - nosh_usrs=`cat /etc/passwd 2>/dev/null | grep -i -v "sh$" | sort | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/'`"ImPoSSssSiBlEee" + sh_usrs=$(cat /etc/passwd 2>/dev/null | grep -v "^root:" | grep -i "sh$" | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/' | sed 's/|sys|/|sys[\\\s:]|^sys$|/' | sed 's/|daemon|/|daemon[\\\s:]|^daemon$|/')"ImPoSSssSiBlEee" #Modified bin, sys and daemon so they are not colored everywhere + nosh_usrs=$(cat /etc/passwd 2>/dev/null | grep -i -v "sh$" | sort | cut -d ":" -f 1 | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/')"ImPoSSssSiBlEee" fi -knw_usrs='daemon\W|^daemon$|message\+|syslog|www|www-data|mail|noboby|Debian\-\+|rtkit|systemd\+' -USER=`whoami 2>/dev/null || echo "UserUnknown"` +knw_usrs='_amavisd|_analyticsd|_appinstalld|_appleevents|_applepay|_appowner|_appserver|_appstore|_ard|_assetcache|_astris|_atsserver|_avbdeviced|_calendar|_captiveagent|_ces|_clamav|_cmiodalassistants|_coreaudiod|_coremediaiod|_coreml|_ctkd|_cvmsroot|_cvs|_cyrus|_datadetectors|_demod|_devdocs|_devicemgr|_diskimagesiod|_displaypolicyd|_distnote|_dovecot|_dovenull|_dpaudio|_driverkit|_eppc|_findmydevice|_fpsd|_ftp|_fud|_gamecontrollerd|_geod|_hidd|_iconservices|_installassistant|_installcoordinationd|_installer|_jabber|_kadmin_admin|_kadmin_changepw|_knowledgegraphd|_krb_anonymous|_krb_changepw|_krb_kadmin|_krb_kerberos|_krb_krbtgt|_krbfast|_krbtgt|_launchservicesd|_lda|_locationd|_logd|_lp|_mailman|_mbsetupuser|_mcxalr|_mdnsresponder|_mobileasset|_mysql|_nearbyd|_netbios|_netstatistics|_networkd|_nsurlsessiond|_nsurlstoraged|_oahd|_ondemand|_postfix|_postgres|_qtss|_reportmemoryexception|_rmd|_sandbox|_screensaver|_scsd|_securityagent|_softwareupdate|_spotlight|_sshd|_svn|_taskgated|_teamsserver|_timed|_timezone|_tokend|_trustd|_trustevaluationagent|_unknown|_update_sharing|_usbmuxd|_uucp|_warmd|_webauthserver|_windowserver|_www|_wwwproxy|_xserverdocs|daemon\W|^daemon$|message\+|syslog|www|www-data|mail|noboby|Debian\-\+|rtkit|systemd\+' +USER=$(whoami 2>/dev/null || echo "UserUnknown") if [ ! "$HOME" ]; then if [ -d "/Users/$USER" ]; then HOME="/Users/$USER"; #Mac home else HOME="/home/$USER"; fi fi -Groups="ImPoSSssSiBlEee"`groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|'` +Groups="ImPoSSssSiBlEee"$(groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|') #This variables are dived in several different ones because NetBSD required it -pwd_inside_history="7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@" +pwd_inside_history="enable_autologin|7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|root|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|xfreerdp|^ssh|steghide|@|KEY=|TOKEN=|BEARER=|Authorization:" pwd_in_variables1="Dgpg.passphrase|Dsonar.login|Dsonar.projectKey|GITHUB_TOKEN|HB_CODESIGN_GPG_PASS|HB_CODESIGN_KEY_PASS|PUSHOVER_TOKEN|PUSHOVER_USER|VIRUSTOTAL_APIKEY|ACCESSKEY|ACCESSKEYID|ACCESS_KEY|ACCESS_KEY_ID|ACCESS_KEY_SECRET|ACCESS_SECRET|ACCESS_TOKEN|ACCOUNT_SID|ADMIN_EMAIL|ADZERK_API_KEY|ALGOLIA_ADMIN_KEY_1|ALGOLIA_ADMIN_KEY_2|ALGOLIA_ADMIN_KEY_MCM|ALGOLIA_API_KEY|ALGOLIA_API_KEY_MCM|ALGOLIA_API_KEY_SEARCH|ALGOLIA_APPLICATION_ID|ALGOLIA_APPLICATION_ID_1|ALGOLIA_APPLICATION_ID_2|ALGOLIA_APPLICATION_ID_MCM|ALGOLIA_APP_ID|ALGOLIA_APP_ID_MCM|ALGOLIA_SEARCH_API_KEY|ALGOLIA_SEARCH_KEY|ALGOLIA_SEARCH_KEY_1|ALIAS_NAME|ALIAS_PASS|ALICLOUD_ACCESS_KEY|ALICLOUD_SECRET_KEY|amazon_bucket_name|AMAZON_SECRET_ACCESS_KEY|ANDROID_DOCS_DEPLOY_TOKEN|android_sdk_license|android_sdk_preview_license|aos_key|aos_sec|APIARY_API_KEY|APIGW_ACCESS_TOKEN|API_KEY|API_KEY_MCM|API_KEY_SECRET|API_KEY_SID|API_SECRET|appClientSecret|APP_BUCKET_PERM|APP_NAME|APP_REPORT_TOKEN_KEY|APP_TOKEN|ARGOS_TOKEN|ARTIFACTORY_KEY|ARTIFACTS_AWS_ACCESS_KEY_ID|ARTIFACTS_AWS_SECRET_ACCESS_KEY|ARTIFACTS_BUCKET|ARTIFACTS_KEY|ARTIFACTS_SECRET|ASSISTANT_IAM_APIKEY|AURORA_STRING_URL|AUTH0_API_CLIENTID|AUTH0_API_CLIENTSECRET|AUTH0_AUDIENCE|AUTH0_CALLBACK_URL|AUTH0_CLIENT_ID" pwd_in_variables2="AUTH0_CLIENT_SECRET|AUTH0_CONNECTION|AUTH0_DOMAIN|AUTHOR_EMAIL_ADDR|AUTHOR_NPM_API_KEY|AUTH_TOKEN|AWS-ACCT-ID|AWS-KEY|AWS-SECRETS|AWS.config.accessKeyId|AWS.config.secretAccessKey|AWSACCESSKEYID|AWSCN_ACCESS_KEY_ID|AWSCN_SECRET_ACCESS_KEY|AWSSECRETKEY|AWS_ACCESS|AWS_ACCESS_KEY|AWS_ACCESS_KEY_ID|AWS_CF_DIST_ID|AWS_DEFAULT|AWS_DEFAULT_REGION|AWS_S3_BUCKET|AWS_SECRET|AWS_SECRET_ACCESS_KEY|AWS_SECRET_KEY|AWS_SES_ACCESS_KEY_ID|AWS_SES_SECRET_ACCESS_KEY|B2_ACCT_ID|B2_APP_KEY|B2_BUCKET|baseUrlTravis|bintrayKey|bintrayUser|BINTRAY_APIKEY|BINTRAY_API_KEY|BINTRAY_KEY|BINTRAY_TOKEN|BINTRAY_USER|BLUEMIX_ACCOUNT|BLUEMIX_API_KEY|BLUEMIX_AUTH|BLUEMIX_NAMESPACE|BLUEMIX_ORG|BLUEMIX_ORGANIZATION|BLUEMIX_PASS|BLUEMIX_PASS_PROD|BLUEMIX_SPACE|BLUEMIX_USER|BRACKETS_REPO_OAUTH_TOKEN|BROWSERSTACK_ACCESS_KEY|BROWSERSTACK_PROJECT_NAME|BROWSER_STACK_ACCESS_KEY|BUCKETEER_AWS_ACCESS_KEY_ID|BUCKETEER_AWS_SECRET_ACCESS_KEY|BUCKETEER_BUCKET_NAME|BUILT_BRANCH_DEPLOY_KEY|BUNDLESIZE_GITHUB_TOKEN|CACHE_S3_SECRET_KEY|CACHE_URL|CARGO_TOKEN|CATTLE_ACCESS_KEY|CATTLE_AGENT_INSTANCE_AUTH|CATTLE_SECRET_KEY|CC_TEST_REPORTER_ID|CC_TEST_REPOTER_ID|CENSYS_SECRET|CENSYS_UID|CERTIFICATE_OSX_P12|CF_ORGANIZATION|CF_PROXY_HOST|channelId|CHEVERNY_TOKEN|CHROME_CLIENT_ID" @@ -427,19 +457,19 @@ PASSTRY="2000" #Default num of passwds to try (all by default) if [ "$PORTS" ] || [ "$DISCOVERY" ] || [ "$IP" ]; then MAXPATH_FIND_W="1"; fi #If Network reduce the time on this SEDOVERFLOW=true -for grp in `groups $USER 2>/dev/null | cut -d ":" -f2`; do +for grp in $(groups $USER 2>/dev/null | cut -d ":" -f2); do wgroups="$wgroups -group $grp -or " done -wgroups="`echo $wgroups | sed -e 's/ -or$//'`" +wgroups="$(echo $wgroups | sed -e 's/ -or$//')" while $SEDOVERFLOW; do #WF=`find /dev /srv /proc /home /media /sys /lost+found /run /etc /root /var /tmp /mnt /boot /opt -type d -maxdepth $MAXPATH_FIND_W -writable -or -user $USER 2>/dev/null | sort` #if [ "$MACPEAS" ]; then - WF=`find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | sort` #OpenBSD find command doesn't have "-writable" option + WF=$(find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | sort) #OpenBSD find command doesn't have "-writable" option #else # WF=`find / -maxdepth $MAXPATH_FIND_W -type d ! -path "/proc/*" -and '(' -writable -or -user $USER ')' 2>/dev/null | sort` #fi - Wfolders=`printf "%s" "$WF" | tr '\n' '|'`"|[^\*][^\ ]*\ \*" - Wfolder="`printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1`" + Wfolders=$(printf "%s" "$WF" | tr '\n' '|')"|[^\*][^\ ]*\ \*" + Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" printf "test\ntest\ntest\ntest"| sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" >/dev/null 2>&1 if [ $? -eq 0 ]; then SEDOVERFLOW=false @@ -451,17 +481,18 @@ while $SEDOVERFLOW; do fi done + notExtensions="\.tif$|\.tiff$|\.gif$|\.jpeg$|\.jpg|\.jif$|\.jfif$|\.jp2$|\.jpx$|\.j2k$|\.j2c$|\.fpx$|\.pcd$|\.png$|\.pdf$|\.flv$|\.mp4$|\.mp3$|\.gifv$|\.avi$|\.mov$|\.mpeg$|\.wav$|\.doc$|\.docx$|\.xls$|\.xlsx$|\.svg$" -TIMEOUT="`command -v timeout 2>/dev/null`" -STRACE="`command -v strace 2>/dev/null`" -STRINGS="`command -v strings 2>/dev/null`" +TIMEOUT="$(command -v timeout 2>/dev/null)" +STRACE="$(command -v strace 2>/dev/null)" +STRINGS="$(command -v strings 2>/dev/null)" shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/power_report.sh|/setuporamysql.sh|/setup-nsssysinit.sh|/readlink_f.sh|/rescan-scsi-bus.sh|/start_bluetoothd.sh|/start_bluetoothlog.sh|/testacg.sh|/testlahf.sh|/unix-lpr.sh|/url_handler.sh|/write_gpt.sh" notBackup="/tdbbackup$|/db_hotbackup$" -cronjobsG=".placeholder|0anacron|0hourly|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-notifier-common|upstart" +cronjobsG=".placeholder|0anacron|0hourly|110.clean-tmps|130.clean-msgs|140.clean-rwho|199.clean-fax|199.rotate-fax|200.accounting|310.accounting|400.status-disks|420.status-network|430.status-rwho|999.local|anacron|apache2|apport|apt|aptitude|apt-compat|bsdmainutils|certwatch|cracklib-runtime|debtags|dpkg|e2scrub_all|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-notifier-common|upstart|" cronjobsB="centreon" processesVB="jdwp|tmux |screen |--inspect|--remote-debugging-port" @@ -497,7 +528,7 @@ INT_HIDDEN_FILES="._history.|.bashrc|.bluemix|.cer|.cloudflared|.crt|.csr|.db|.d # --) ps working good # --) Network binaries -if [ `ps auxwww 2>/dev/null | wc -l 2>/dev/null` -lt 8 ]; then +if [ "$(ps auxwww 2>/dev/null | wc -l 2>/dev/null)" -lt 8 ]; then NOUSEPS="1" fi @@ -540,7 +571,7 @@ echo_not_found (){ } warn_exec(){ - $* || echo_not_found $1 + $* 2>/dev/null || echo_not_found $1 } echo_no (){ @@ -549,46 +580,46 @@ echo_no (){ print_title(){ if [ "$VERBOSE" ]; then - END_T2_TIME=`date +%s 2>/dev/null` + END_T2_TIME=$(date +%s 2>/dev/null) if [ "$START_T2_TIME" ]; then TOTAL_T2_TIME=$(($END_T2_TIME - $START_T2_TIME)) printf $DG"This check took $TOTAL_T2_TIME seconds\n"$NC fi - END_T1_TIME=`date +%s 2>/dev/null` + END_T1_TIME=$(date +%s 2>/dev/null) if [ "$START_T1_TIME" ]; then TOTAL_T1_TIME=$(($END_T1_TIME - $START_T1_TIME)) printf $DG"The total section execution took $TOTAL_T1_TIME seconds\n"$NC echo "" fi - START_T1_TIME=`date +%s 2>/dev/null` + START_T1_TIME=$(date +%s 2>/dev/null) fi - printf ${BLUE}"════════════════════════════════════╣ "$GREEN"$1"${BLUE}" ╠════════════════════════════════════\n"$NC + printf ${BLUE}"════════════════════════════════════╣ $GREEN$1${BLUE} ╠════════════════════════════════════\n"$NC } print_2title(){ if [ "$VERBOSE" ]; then - END_T2_TIME=`date +%s 2>/dev/null` + END_T2_TIME=$(date +%s 2>/dev/null) if [ "$START_T2_TIME" ]; then TOTAL_T2_TIME=$(($END_T2_TIME - $START_T2_TIME)) printf $DG"This check took $TOTAL_T2_TIME seconds\n"$NC echo "" fi - START_T2_TIME=`date +%s 2>/dev/null` + START_T2_TIME=$(date +%s 2>/dev/null) fi - printf ${BLUE}"╔══════════╣ "$GREEN"$1\n"$NC #There are 10 "═" + printf ${BLUE}"╔══════════╣ $GREEN$1\n"$NC #There are 10 "═" } print_3title(){ - printf ${BLUE}"══╣ "$GREEN"$1\n"$NC #There are 2 "═" + printf ${BLUE}"══╣ $GREEN$1\n"$NC #There are 2 "═" } print_list(){ - printf ${BLUE}"═╣ "$GREEN"$1"$NC #There is 1 "═" + printf ${BLUE}"═╣ $GREEN$1"$NC #There is 1 "═" } print_info(){ @@ -597,9 +628,9 @@ print_info(){ print_ps (){ (ls -d /proc/*/ 2>/dev/null | while read f; do - CMDLINE=`cat $f/cmdline 2>/dev/null | grep -av "seds,"`; #Delete my own sed processess + CMDLINE=$(cat $f/cmdline 2>/dev/null | grep -av "seds,"); #Delete my own sed processess if [ "$CMDLINE" ]; - then USER2=ls -ld $f | awk '{print $3}'; PID=`echo $f | cut -d "/" -f3`; + then var USER2=ls -ld $f | awk '{print $3}'; PID=$(echo $f | cut -d "/" -f3); printf " %-13s %-8s %s\n" "$USER2" "$PID" "$CMDLINE"; fi; done) 2>/dev/null | sort -r @@ -608,7 +639,7 @@ print_ps (){ su_try_pwd (){ BFUSER=$1 PASSWORDTRY=$2 - trysu=`echo "$PASSWORDTRY" | timeout 1 su $BFUSER -c whoami 2>/dev/null` + trysu=$(echo "$PASSWORDTRY" | timeout 1 su $BFUSER -c whoami 2>/dev/null) if [ "$trysu" ]; then echo " You can login as $BFUSER using password: $PASSWORDTRY" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi @@ -617,32 +648,38 @@ su_try_pwd (){ su_brute_user_num (){ BFUSER=$1 TRIES=$2 - su_try_pwd $BFUSER "" & #Try without password - su_try_pwd $BFUSER $BFUSER & #Try username as password - su_try_pwd $BFUSER `echo $BFUSER | rev 2>/dev/null` & #Try reverse username as password + su_try_pwd "$BFUSER" "" & #Try without password + su_try_pwd "$BFUSER" "$BFUSER" & #Try username as password + su_try_pwd "$BFUSER" "$(echo $BFUSER | rev 2>/dev/null)" & #Try reverse username as password if [ "$PASSWORD" ]; then - su_try_pwd $BFUSER $PASSWORD & #Try given password + su_try_pwd "$BFUSER" "$PASSWORD" & #Try given password fi - for i in `seq $TRIES`; do - su_try_pwd $BFUSER `echo $top2000pwds | cut -d " " -f $i` & #Try TOP TRIES of passwords (by default 2000) + for i in $(seq "$TRIES"); do + su_try_pwd "$BFUSER" "$(echo \"$top2000pwds\" | cut -d ' ' -f $i)" & #Try TOP TRIES of passwords (by default 2000) sleep 0.007 # To not overload the system done wait } check_if_su_brute(){ - error=$(echo "" | timeout 1 su `whoami` -c whoami 2>&1); - if [ ! "`echo $error | grep "must be run from a terminal"`" ]; then + error=$(echo "" | timeout 1 su $(whoami) -c whoami 2>&1); + if ! echo $error | grep -q "must be run from a terminal"; then echo "1" fi } eval_bckgrd(){ - CMD_PARAM="$1" eval "$1" & CONT_THREADS=$(($CONT_THREADS+1)); if [ "$(($CONT_THREADS%$THREADS))" -eq "0" ]; then wait; fi } +macosNotSigned(){ + for filename in $1/*; do + if codesign -vv -d \"$filename\" 2>&1 | grep -q 'not signed'; then + echo "$filename isn't signed" | sed -${E} "s,.*,${SED_RED}," + fi + done +} ########################################### #---------) Internet functions (----------# @@ -706,7 +743,7 @@ tcp_recon (){ for port in $PORTS; do for j in $(seq 1 254) do - ($NC_SCAN $IP3.$j $port 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + ($NC_SCAN "$IP3"."$j" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & done wait done @@ -719,7 +756,7 @@ tcp_port_scan (){ print_title "Network Port Scanning" IP=$1 PORTS="$2" - PORTS="`echo \"$PORTS\" | tr ',' ' '`" + PORTS="$(echo \"$PORTS\" | tr ',' ' ')" if [ -z "$PORTS" ]; then printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: DEFAULT (nmap top 1000)" $NC | tr '\n' " " @@ -731,7 +768,7 @@ tcp_port_scan (){ fi for port in $PORTS; do - ($NC_SCAN $IP $port 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + ($NC_SCAN "$IP" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & done wait } @@ -743,10 +780,10 @@ discover_network (){ print_title "Network Discovery" DISCOVERY=$1 - IP=$(echo $DISCOVERY | cut -d "/" -f 1) - NETMASK=$(echo $DISCOVERY | cut -d "/" -f 2) + IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) + NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) - if [ -z $IP ] || [ -z $NETMASK ]; then + if [ -z "$IP" ] || [ -z "$NETMASK" ]; then printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24"$NC; printf ${BLUE}"$HELP"$NC; exit 0 @@ -754,20 +791,20 @@ discover_network (){ #Using fping if possible if [ "$FPING" ]; then - $FPING -a -q -g $DISCOVERY | sed -${E} "s,.*,${SED_RED}," + $FPING -a -q -g "$DISCOVERY" | sed -${E} "s,.*,${SED_RED}," #Loop using ping else - if [ $NETMASK -eq "24" ]; then + if [ "$NETMASK" -eq "24" ]; then printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n$NC" icmp_recon $IP - elif [ $NETMASK -eq "16" ]; then + elif [ "$NETMASK" -eq "16" ]; then printf ${YELLOW}"[+]$GREEN Netmask /16 detected, starting...\n$NC" for i in $(seq 1 254) do - NEWIP=$(echo $IP | cut -d "." -f 1,2).$i.1 - icmp_recon $NEWIP + NEWIP=$(echo "$IP" | cut -d "." -f 1,2).$i.1 + icmp_recon "$NEWIP" done else printf $RED"[-] Err: Sorry, only Netmask /24 and /16 supported in ping mode. Netmask detected: $NETMASK"$NC; @@ -784,8 +821,8 @@ discovery_port_scan (){ DISCOVERY=$1 MYPORTS=$2 - IP=$(echo $DISCOVERY | cut -d "/" -f 1) - NETMASK=$(echo $DISCOVERY | cut -d "/" -f 2) + IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) + NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) echo "Scanning: $DISCOVERY" if [ -z "$IP" ] || [ -z "$NETMASK" ] || [ "$IP" = "$NETMASK" ]; then @@ -797,19 +834,19 @@ discovery_port_scan (){ exit 0 fi - PORTS="22 80 443 445 3389 `echo \"$MYPORTS\" | tr \",\" \" \"`" - PORTS=`echo "$PORTS" | tr " " "\n" | sort -u` #Delete repetitions + PORTS="22 80 443 445 3389 $(echo \"$MYPORTS\" | tr \",\" \" \")" + PORTS=$(echo "$PORTS" | tr " " "\n" | sort -u) #Delete repetitions if [ "$NETMASK" -eq "24" ]; then printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n" $NC - tcp_recon $IP "$PORTS" + tcp_recon "$IP" "$PORTS" elif [ "$NETMASK" -eq "16" ]; then printf ${YELLOW}"[+]$GREEN Netmask /16 detected, starting...\n" $NC for i in $(seq 0 255) do - NEWIP=$(echo $IP | cut -d "." -f 1,2).$i.1 - tcp_recon $NEWIP "$PORTS" + NEWIP=$(echo "$IP" | cut -d "." -f 1,2).$i.1 + tcp_recon "$NEWIP" "$PORTS" done else printf $RED"[-] Err: Sorry, only netmask /24 and /16 are supported in port discovery mode. Netmask detected: $NETMASK\n"$NC; @@ -836,13 +873,13 @@ fi containerCheck() { inContainer="" - containerType="`echo_no`" + containerType="$(echo_no)" # Are we inside docker? if [ -f "/.dockerenv" ] || grep "/docker/" /proc/1/cgroup -qa 2>/dev/null || grep -qai docker /proc/self/cgroup 2>/dev/null || - [ "`find / -maxdepth 3 -name \"*dockerenv*\" -exec ls -la {} \; 2>/dev/null`" ] ; then + [ "$(find / -maxdepth 3 -name \"*dockerenv*\" -exec ls -la {} \; 2>/dev/null)" ] ; then inContainer="1" containerType="docker" @@ -878,7 +915,7 @@ containerCheck() { if [ -z "$inContainer" ]; then if grep -a 'container=' /proc/1/environ 2>/dev/null; then inContainer="1" - containerType="`grep -a 'container=' /proc/1/environ | cut -d= -f2`" + containerType="$(grep -a 'container=' /proc/1/environ | cut -d= -f2)" fi fi } @@ -898,26 +935,26 @@ checkDockerRootless() { } enumerateDockerSockets() { - dockerVersion="`echo_not_found`" + dockerVersion="$(echo_not_found)" if ! [ "$SEARCHED_DOCKER_SOCKETS" ]; then SEARCHED_DOCKER_SOCKETS="1" - for dock_sock in `find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" 2>/dev/null`; do + for dock_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" 2>/dev/null); do if ! [ "$IAMROOT" ] && [ -w "$dock_sock" ]; then echo "You have write permissions over Docker socket $dock_sock" | sed -${E} "s,$dock_sock,${SED_RED_YELLOW},g" echo "Docker enummeration:" docker_enumerated="" if [ "$(command -v curl)" ]; then - sockInfoResponse="`curl -s --unix-socket \"$dockerSockPath\" http://localhost/info`" + sockInfoResponse="$(curl -s --unix-socket \"$dock_sock\" http://localhost/info)" dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'ServerVersion' | cut -d'"' -f 4) echo $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' if [ "$sockInfoResponse" ]; then docker_enumerated="1"; fi fi - if [ "$(command -v docker)" ] and ![ "$docker_enumerated" ]; then - sockInfoResponse="`docker info`" + if [ "$(command -v docker)" ] && ! [ "$docker_enumerated" ]; then + sockInfoResponse="$(docker info)" dockerVersion=$(echo "$sockInfoResponse" | tr ',' '\n' | grep 'Server Version' | cut -d' ' -f 4) - printf $sockInfoResponse | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' + printf "$sockInfoResponse" | tr ',' '\n' | grep -E "$GREP_DOCKER_SOCK_INFOS" | grep -v "$GREP_DOCKER_SOCK_INFOS_IGNORE" | tr -d '"' fi else @@ -928,28 +965,28 @@ enumerateDockerSockets() { } checkDockerVersionExploits() { - if [ "`echo \"$dockerVersion\" | grep -i \"not found\"`" ]; then - VULN_CVE_2019_13139="`echo_not_found`" - VULN_CVE_2019_5736="`echo_not_found`" + if echo \"$dockerVersion\" | grep -iq \"not found\"; then + VULN_CVE_2019_13139="$(echo_not_found)" + VULN_CVE_2019_5736="$(echo_not_found)" return fi - VULN_CVE_2019_13139="`echo_no`" - if [ "`echo \"$dockerVersion\" | sed 's,\.,,g'`" -lt "1895" ]; then + VULN_CVE_2019_13139="$(echo_no)" + if [ "$(echo \"$dockerVersion\" | sed 's,\.,,g')" -lt "1895" ]; then VULN_CVE_2019_13139="Yes" fi - VULN_CVE_2019_5736="`echo_no`" - if [ "`echo \"$dockerVersion\" | sed 's,\.,,g'`" -lt "1893" ]; then + VULN_CVE_2019_5736="$(echo_no)" + if [ "$(echo \"$dockerVersion\" | sed 's,\.,,g')" -lt "1893" ]; then VULN_CVE_2019_5736="Yes" fi } checkContainerExploits() { - VULN_CVE_2019_5021="`echo_no`" + VULN_CVE_2019_5021="$(echo_no)" if [ -f "/etc/alpine-release" ]; then alpineVersion=$(cat /etc/alpine-release) - if [ "`echo \"$alpineVersion\" | sed 's,\.,,g'`" -ge "330" ] && [ "`echo \"$alpineVersion\" | sed 's,\.,,g'`" -le "360" ]; then + if [ "$(echo \"$alpineVersion\" | sed 's,\.,,g')" -ge "330" ] && [ "$(echo \"$alpineVersion\" | sed 's,\.,,g')" -le "360" ]; then VULN_CVE_2019_5021="Yes" fi fi @@ -964,25 +1001,25 @@ print_title "Basic information" printf $LG"OS: "$NC (cat /proc/version || uname -a ) 2>/dev/null | sed -${E} "s,$kernelDCW_Ubuntu_Precise_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_5,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_6,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Xenial,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel7,${SED_RED_YELLOW}," | sed -${E} "s,$kernelB,${SED_RED}," printf $LG"User & Groups: "$NC -(id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$idB,${SED_RED},g" +(id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$idB,${SED_RED},g" printf $LG"Hostname: "$NC hostname 2>/dev/null printf $LG"Writable folder: "$NC; echo $Wfolder if [ "$DISCOVER_BAN_GOOD" ]; then - printf ${YELLOW}"[+] $DISCOVER_BAN_GOOD\n"$NC + printf $YELLOW"[+] $DISCOVER_BAN_GOOD\n$NC" else - printf $RED"[-] $DISCOVER_BAN_BAD\n"$NC + printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" fi if [ "$SCAN_BAN_GOOD" ]; then - printf ${YELLOW}"[+] $SCAN_BAN_GOOD\n"$NC + printf $YELLOW"[+] $SCAN_BAN_GOOD\n$NC" else - printf $RED"[-] $SCAN_BAN_BAD\n"$NC + printf $RED"[-] $SCAN_BAN_BAD\n$NC" fi -if [ "`command -v nmap 2>/dev/null`" ];then +if [ "$(command -v nmap 2>/dev/null)" ];then NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discover & port scanning, you should use it yourself" - printf ${YELLOW}"[+] $NMAP_GOOD\n"$NC + printf $YELLOW"[+] $NMAP_GOOD\n$NC" fi echo "" echo "" @@ -992,7 +1029,7 @@ echo "" ########################################### if [ "$PORTS" ]; then if [ "$SCAN_BAN_GOOD" ]; then - if [ "`echo -n $PORTS | sed 's,[0-9, ],,g'`" ]; then + if [ "$(echo -n $PORTS | sed 's,[0-9, ],,g')" ]; then printf $RED"[-] Err: Symbols detected in the port, for discovering purposes select only 1 port\n"$NC; printf ${BLUE}"$HELP"$NC; exit 0 @@ -1026,7 +1063,7 @@ elif [ "$IP" ]; then fi -if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ] || [ "`echo $CHECKS | grep IntFiles`" ] || [ "`echo $CHECKS | grep SofI`" ]; then +if echo $CHECKS | grep -q ProCronSrvcsTmrsSocks || echo $CHECKS | grep -q IntFiles || echo $CHECKS | grep -q SofI; then ########################################### #----------) Caching Finds (--------------# ########################################### @@ -1035,149 +1072,153 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ] || [ "`echo $CHECKS | grep #Get home - HOMESEARCH="/home/ /Users/ /root/ `cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users" | tr "\n" " "`" - if [ ! "`echo \"$HOMESEARCH\" | grep \"$HOME\"`" ] && [ ! "`echo \"$HOMESEARCH\" | grep -E \"^/root|^/home|^/Users\"`" ]; then #If not listed and not in /home, /Users/ or /root, add current home folder + HOMESEARCH="/home/ /Users/ /root/ $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users" | tr "\n" " ")" + if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users"; then #If not listed and not in /home, /Users/ or /root, add current home folder HOMESEARCH="$HOME $HOMESEARCH" fi - GREPHOMESEARCH=`echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|"` #Remove ending spaces before putting "|" + GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" CONT_THREADS=0 # FIND ALL KNOWN INTERESTING SOFTWARE FILES - FIND_DIR_APPLICATIONS=`eval_bckgrd "find /applications -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_BIN=`eval_bckgrd "find /bin -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_CACHE=`eval_bckgrd "find /.cache -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_CDROM=`eval_bckgrd "find /cdrom -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_ETC=`eval_bckgrd "find /etc -type d -name \"system.d\" -o -name \".bluemix\" -o -name \"logstash\" -o -name \"couchdb\" -o -name \"mysql\" -o -name \"bind\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_MEDIA=`eval_bckgrd "find /media -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_MNT=`eval_bckgrd "find /mnt -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_OPT=`eval_bckgrd "find /opt -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_PRIVATE=`eval_bckgrd "find /private -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SBIN=`eval_bckgrd "find /sbin -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SNAP=`eval_bckgrd "find /snap -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_SRV=`eval_bckgrd "find /srv -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_TMP=`eval_bckgrd "find /tmp -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_USR=`eval_bckgrd "find /usr -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_DIR_VAR=`eval_bckgrd "find /var -type d -name \".bluemix\" -o -name \"couchdb\" -o -name \"logstash\" -o -name \"bind\" -o -name \"mysql\" -o -name \"filezilla\" -o -name \".vnc\" -o -name \"seeddms*\" -o -name \".irssi\" -o -name \"keyrings\" -o -name \"cacti\" -o -name \"ldap\" -o -name \"neo4j\" -o -name \".cloudflared\" -o -name \"sites-enabled\" -o -name \".svn\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_APPLICATIONS=`eval_bckgrd "find /applications -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_BIN=`eval_bckgrd "find /bin -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_CACHE=`eval_bckgrd "find /.cache -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_CDROM=`eval_bckgrd "find /cdrom -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_ETC=`eval_bckgrd "find /etc -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \"*knockd*\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \"ssh*config\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB=`eval_bckgrd "find /lib -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB32=`eval_bckgrd "find /lib32 -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_LIB64=`eval_bckgrd "find /lib64 -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_MEDIA=`eval_bckgrd "find /media -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_MNT=`eval_bckgrd "find /mnt -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"sess_*\" -o -name \"*.crt\" -o -name \"printers.xml\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_OPT=`eval_bckgrd "find /opt -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_PRIVATE=`eval_bckgrd "find /private -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_RUN=`eval_bckgrd "find /run -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SBIN=`eval_bckgrd "find /sbin -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SNAP=`eval_bckgrd "find /snap -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SRV=`eval_bckgrd "find /srv -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYS=`eval_bckgrd "find /sys -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYSTEM=`eval_bckgrd "find /system -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_SYSTEMD=`eval_bckgrd "find /systemd -name \"*.service\" -o -name \"*.timer\" -o -name \"*.socket\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_TMP=`eval_bckgrd "find /tmp -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"agent*\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"sess_*\" -o -name \"*.crt\" -o -name \"printers.xml\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \".erlang.cookie\" -o -name \"*vnc*.c*nf*\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_USR=`eval_bckgrd "find /usr -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"printers.xml\" -o -name \"*.crt\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \"ssh*config\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` - FIND_VAR=`eval_bckgrd "find /var -name \"NetSetup.log\" -o -name \"RDCMan.settings\" -o -name \"SYSTEM\" -o -name \"datasources.xml\" -o -name \"config.php\" -o -name \"*vnc*.xml\" -o -name \"wsl.exe\" -o -name \"*.service\" -o -name \"sitemanager.xml\" -o -name \"groups.xml\" -o -name \"credentials.db\" -o -name \".pypirc\" -o -name \"https-xampp.conf\" -o -name \"TokenCache.dat\" -o -name \"sites.ini\" -o -name \"*.jks\" -o -name \".env\" -o -name \".github\" -o -name \"*credential*\" -o -name \"*.pfx\" -o -name \"pg_hba.conf\" -o -name \"*.sqlite\" -o -name \"*config*.php\" -o -name \"ntuser.dat\" -o -name \"error.log\" -o -name \"appcmd.exe\" -o -name \"winscp.ini\" -o -name \"pgsql.conf\" -o -name \"accessTokens.json\" -o -name \"scclient.exe\" -o -name \"storage.php\" -o -name \"*vnc*.txt\" -o -name \"krb5.conf\" -o -name \"*.cer\" -o -name \"security.sav\" -o -name \"vault-ssh-helper.hcl\" -o -name \"httpd.conf\" -o -name \"server.xml\" -o -name \"mongod*.conf\" -o -name \"filezilla.xml\" -o -name \"access_tokens.db\" -o -name \"*.pgp\" -o -name \"*vnc*.ini\" -o -name \"AppEvent.Evt\" -o -name \"pagefile.sys\" -o -name \"software\" -o -name \"postgresql.conf\" -o -name \"db.php\" -o -name \"default.sav\" -o -name \"backups\" -o -name \"redis.conf\" -o -name \"*.socket\" -o -name \"azureProfile.json\" -o -name \"sess_*\" -o -name \"*.crt\" -o -name \"printers.xml\" -o -name \"*.timer\" -o -name \"credentials\" -o -name \"anaconda-ks.cfg\" -o -name \"autologin\" -o -name \"fastcgi_params\" -o -name \".google_authenticator\" -o -name \"hostapd.conf\" -o -name \".rhosts\" -o -name \"*.db\" -o -name \"supervisord.conf\" -o -name \"rsyncd.conf\" -o -name \"bash.exe\" -o -name \"system.sav\" -o -name \"unattended.xml\" -o -name \"iis6.log\" -o -name \".profile\" -o -name \"gvm-tools.conf\" -o -name \"backup\" -o -name \"KeePass.enforced*\" -o -name \"*.gpg\" -o -name \"setupinfo\" -o -name \"authorized_keys\" -o -name \"known_hosts\" -o -name \"settings.php\" -o -name \".vault-token\" -o -name \"*vnc*.c*nf*\" -o -name \".erlang.cookie\" -o -name \"Dockerfile\" -o -name \"secrets.yml\" -o -name \"access_tokens.json\" -o -name \"creds*\" -o -name \".lesshst\" -o -name \"krb5.keytab\" -o -name \"web*.config\" -o -name \"docker-compose.yml\" -o -name \"id_dsa*\" -o -name \"ipsec.secrets\" -o -name \"unattend.inf\" -o -name \"kibana.y*ml\" -o -name \"*.keystore\" -o -name \"*.ovpn\" -o -name \"php.ini\" -o -name \"my.cnf\" -o -name \"https.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"*.rdg\" -o -name \"*.pem\" -o -name \"ftp.config\" -o -name \"software.sav\" -o -name \"passwd\" -o -name \"hosts.equiv\" -o -name \"*.csr\" -o -name \"*.der\" -o -name \"autologin.conf\" -o -name \"unattend.txt\" -o -name \"elasticsearch.y*ml\" -o -name \"*.ftpconfig\" -o -name \"*password*\" -o -name \".*_history.*\" -o -name \"ConsoleHost_history.txt\" -o -name \"*.kdbx\" -o -name \"*.p12\" -o -name \"my.ini\" -o -name \"database.php\" -o -name \".k5login\" -o -name \"sysprep.inf\" -o -name \"kadm5.acl\" -o -name \"AzureRMContext.json\" -o -name \"*.viminfo\" -o -name \"rsyncd.secrets\" -o -name \"wcx_ftp.ini\" -o -name \"authorized_hosts\" -o -name \"debian.cnf\" -o -name \"id_rsa*\" -o -name \"SAM\" -o -name \"protecteduserkey.bin\" -o -name \"sysprep.xml\" -o -name \"ipsec.conf\" -o -name \"*.gnupg\" -o -name \".htpasswd\" -o -name \".plan\" -o -name \".msmtprc\" -o -name \".git\" -o -name \"SecEvent.Evt\" -o -name \"ftp.ini\" -o -name \"*.key\" -o -name \"ws_ftp.ini\" -o -name \"*.keyring\" -o -name \"legacy_credentials.db\" -o -name \"unattend.xml\" -o -name \".gitconfig\" -o -name \".sudo_as_admin_successful\" -o -name \"system\" -o -name \"*.sqlite3\" -o -name \"ddclient.conf\" -o -name \"Ntds.dit\" -o -name \"gitlab.yml\" -o -name \"pgadmin*.db\" -o -name \"*.swp\" -o -name \".bashrc\" -o -name \"docker.sock\" -o -name \"setupinfo.bak\" -o -name \".git-credentials\" -o -name \"KeePass.ini\" -o -name \"index.dat\" -o -name \"docker.socket\" -o -name \"mosquitto.conf\" -o -name \"ffftp.ini\" -o -name \"drives.xml\" -o -name \"snmpd.conf\" -o -name \"cesi.conf\" -o -name \"scheduledtasks.xml\" -o -name \"KeePass.config*\" -o -name \"000-default.conf\" -o -name \"wp-config.php\" -o -name \"tomcat-users.xml\" -o -name \"cloud.cfg\" -o -name \"gitlab.rm\" -o -name \".ldaprc\" -o -name \"access.log\" -o -name \"recentservers.xml\" -o -name \".recently-used.xbel\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_APPLICATIONS=`eval_bckgrd "find /applications -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_BIN=`eval_bckgrd "find /bin -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_CACHE=`eval_bckgrd "find /.cache -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_CDROM=`eval_bckgrd "find /cdrom -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_ETC=`eval_bckgrd "find /etc -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \"bind\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"system.d\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_MEDIA=`eval_bckgrd "find /media -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_MNT=`eval_bckgrd "find /mnt -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_OPT=`eval_bckgrd "find /opt -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_PRIVATE=`eval_bckgrd "find /private -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SBIN=`eval_bckgrd "find /sbin -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SNAP=`eval_bckgrd "find /snap -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_SRV=`eval_bckgrd "find /srv -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_TMP=`eval_bckgrd "find /tmp -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_USR=`eval_bckgrd "find /usr -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \"bind\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_DIR_VAR=`eval_bckgrd "find /var -type d -name \"seeddms*\" -o -name \"filezilla\" -o -name \"cacti\" -o -name \"mysql\" -o -name \"ldap\" -o -name \".irssi\" -o -name \"bind\" -o -name \".bluemix\" -o -name \"couchdb\" -o -name \"keyrings\" -o -name \".cloudflared\" -o -name \".svn\" -o -name \"sites-enabled\" -o -name \"logstash\" -o -name \"neo4j\" -o -name \".vnc\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_APPLICATIONS=`eval_bckgrd "find /applications -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_BIN=`eval_bckgrd "find /bin -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CACHE=`eval_bckgrd "find /.cache -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_CDROM=`eval_bckgrd "find /cdrom -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_ETC=`eval_bckgrd "find /etc -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"*knockd*\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_HOMESEARCH=`eval_bckgrd "find $HOMESEARCH -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \"ssh*config\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB=`eval_bckgrd "find /lib -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB32=`eval_bckgrd "find /lib32 -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_LIB64=`eval_bckgrd "find /lib64 -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_MEDIA=`eval_bckgrd "find /media -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_MNT=`eval_bckgrd "find /mnt -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_OPT=`eval_bckgrd "find /opt -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_PRIVATE=`eval_bckgrd "find /private -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"agent*\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_RUN=`eval_bckgrd "find /run -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SBIN=`eval_bckgrd "find /sbin -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SNAP=`eval_bckgrd "find /snap -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SRV=`eval_bckgrd "find /srv -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYS=`eval_bckgrd "find /sys -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYSTEM=`eval_bckgrd "find /system -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_SYSTEMD=`eval_bckgrd "find /systemd -name \"*.socket\" -o -name \"*.timer\" -o -name \"*.service\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_TMP=`eval_bckgrd "find /tmp -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"agent*\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_USR=`eval_bckgrd "find /usr -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \"ssh*config\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` + FIND_VAR=`eval_bckgrd "find /var -name \"*config*.php\" -o -name \"my.ini\" -o -name \"recentservers.xml\" -o -name \"psk.txt\" -o -name \"access_tokens.db\" -o -name \"elasticsearch.y*ml\" -o -name \"kcpassword\" -o -name \"error.log\" -o -name \"ws_ftp.ini\" -o -name \"default.sav\" -o -name \"*.pem\" -o -name \"kibana.y*ml\" -o -name \"protecteduserkey.bin\" -o -name \"iis6.log\" -o -name \"*.kdbx\" -o -name \".k5login\" -o -name \"ipsec.secrets\" -o -name \"*.keystore\" -o -name \"sites.ini\" -o -name \"access.log\" -o -name \"accessTokens.json\" -o -name \".git-credentials\" -o -name \"printers.xml\" -o -name \"rsyncd.conf\" -o -name \"id_rsa*\" -o -name \"secrets.yml\" -o -name \"creds*\" -o -name \"security.sav\" -o -name \"*.cer\" -o -name \"sess_*\" -o -name \"credentials.db\" -o -name \"docker.socket\" -o -name \"KeePass.enforced*\" -o -name \"scclient.exe\" -o -name \".env\" -o -name \"KeePass.ini\" -o -name \".sudo_as_admin_successful\" -o -name \"hosts.equiv\" -o -name \"id_dsa*\" -o -name \"php.ini\" -o -name \"sysprep.inf\" -o -name \"krb5.conf\" -o -name \"cloud.cfg\" -o -name \"*.gnupg\" -o -name \"settings.php\" -o -name \"*.csr\" -o -name \"system.sav\" -o -name \".erlang.cookie\" -o -name \"autologin.conf\" -o -name \"AppEvent.Evt\" -o -name \"*.jks\" -o -name \".lesshst\" -o -name \"unattend.inf\" -o -name \"snmpd.conf\" -o -name \".gitconfig\" -o -name \"RDCMan.settings\" -o -name \"*.ovpn\" -o -name \"known_hosts\" -o -name \"ntuser.dat\" -o -name \"gvm-tools.conf\" -o -name \"FreeSSHDservice.ini\" -o -name \"NetSetup.log\" -o -name \"bash.exe\" -o -name \"web*.config\" -o -name \"backups\" -o -name \"vault-ssh-helper.hcl\" -o -name \"passwd\" -o -name \"cesi.conf\" -o -name \"httpd.conf\" -o -name \".rhosts\" -o -name \"docker.sock\" -o -name \"000-default.conf\" -o -name \".plan\" -o -name \"scheduledtasks.xml\" -o -name \"*.keyring\" -o -name \"ipsec.conf\" -o -name \"docker-compose.yml\" -o -name \"*.p12\" -o -name \"*.key\" -o -name \".msmtprc\" -o -name \"unattended.xml\" -o -name \"authorized_keys\" -o -name \"*.timer\" -o -name \"filezilla.xml\" -o -name \"drives.xml\" -o -name \"software\" -o -name \".pypirc\" -o -name \"supervisord.conf\" -o -name \".recently-used.xbel\" -o -name \"*vnc*.txt\" -o -name \"gitlab.rm\" -o -name \"https.conf\" -o -name \"https-xampp.conf\" -o -name \".github\" -o -name \"*.ftpconfig\" -o -name \"setupinfo\" -o -name \"authorized_hosts\" -o -name \"*credential*\" -o -name \"*vnc*.ini\" -o -name \"*.viminfo\" -o -name \"*.sqlite3\" -o -name \"AzureRMContext.json\" -o -name \"db.php\" -o -name \"pgsql.conf\" -o -name \"*.pfx\" -o -name \".*_history.*\" -o -name \"KeePass.config*\" -o -name \"datasources.xml\" -o -name \"unattend.txt\" -o -name \"access_tokens.json\" -o -name \"unattend.xml\" -o -name \"SYSTEM\" -o -name \"*vnc*.c*nf*\" -o -name \"tomcat-users.xml\" -o -name \"setupinfo.bak\" -o -name \"SAM\" -o -name \".profile\" -o -name \"debian.cnf\" -o -name \"*.swp\" -o -name \"groups.xml\" -o -name \".bashrc\" -o -name \"legacy_credentials.db\" -o -name \"*.rdg\" -o -name \".git\" -o -name \"anaconda-ks.cfg\" -o -name \"gitlab.yml\" -o -name \"ffftp.ini\" -o -name \"ftp.config\" -o -name \"rsyncd.secrets\" -o -name \"sysprep.xml\" -o -name \"mosquitto.conf\" -o -name \"*.pgp\" -o -name \"appcmd.exe\" -o -name \"server.xml\" -o -name \"pgadmin*.db\" -o -name \"racoon.conf\" -o -name \"postgresql.conf\" -o -name \"credentials\" -o -name \"backup\" -o -name \"ConsoleHost_history.txt\" -o -name \"krb5.keytab\" -o -name \"*.crt\" -o -name \".htpasswd\" -o -name \"*vnc*.xml\" -o -name \"azureProfile.json\" -o -name \"mongod*.conf\" -o -name \"pg_hba.conf\" -o -name \"kadm5.acl\" -o -name \"TokenCache.dat\" -o -name \"*password*\" -o -name \"*.socket\" -o -name \".ldaprc\" -o -name \"redis.conf\" -o -name \"Dockerfile\" -o -name \".vault-token\" -o -name \"index.dat\" -o -name \"pagefile.sys\" -o -name \"wcx_ftp.ini\" -o -name \"wsl.exe\" -o -name \"storage.php\" -o -name \"*.gpg\" -o -name \"hostapd.conf\" -o -name \"fastcgi_params\" -o -name \"Ntds.dit\" -o -name \"*.service\" -o -name \"my.cnf\" -o -name \"autologin\" -o -name \"config.php\" -o -name \"*.db\" -o -name \"sitemanager.xml\" -o -name \"software.sav\" -o -name \"*.der\" -o -name \"ftp.ini\" -o -name \"ddclient.conf\" -o -name \"wp-config.php\" -o -name \"*.sqlite\" -o -name \"SecEvent.Evt\" -o -name \".google_authenticator\" -o -name \"winscp.ini\" -o -name \"database.php\" 2>/dev/null | sort; printf \\\$YELLOW'. '\\\$NC 1>&2;"` wait # Always wait at the end CONT_THREADS=0 #Reset the threads counter #GENERATE THE STORAGES OF THE FOUND FILES - PSTORAGE_SYSTEMD=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/lib32|^$GREPHOMESEARCH|^/system|^/lib|^/sys|^/var|^/cdrom|^/etc|^/lib64|^/tmp|^/snap|^/applications|^/media|^/srv|^/systemd|^/mnt|^/run|^/private|^/sbin|^/opt|^/bin|^/.cache|^/usr" | grep -E ".*\.service$" | sort | uniq | head -n 70) - PSTORAGE_TIMER=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/lib32|^$GREPHOMESEARCH|^/system|^/lib|^/sys|^/var|^/cdrom|^/etc|^/lib64|^/tmp|^/snap|^/applications|^/media|^/srv|^/systemd|^/mnt|^/run|^/private|^/sbin|^/opt|^/bin|^/.cache|^/usr" | grep -E ".*\.timer$" | sort | uniq | head -n 70) - PSTORAGE_SOCKET=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/lib32|^$GREPHOMESEARCH|^/system|^/lib|^/sys|^/var|^/cdrom|^/etc|^/lib64|^/tmp|^/snap|^/applications|^/media|^/srv|^/systemd|^/mnt|^/run|^/private|^/sbin|^/opt|^/bin|^/.cache|^/usr" | grep -E ".*\.socket$" | sort | uniq | head -n 70) - PSTORAGE_DBUS=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/etc" | grep -E "system\.d$" | sort | uniq | head -n 70) - PSTORAGE_MYSQL=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -v -E 'mysql/mysql' | grep -E '^/etc/.*mysql|/usr/var/lib/.*mysql|/var/lib/.*mysql' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "mysql$|debian\.cnf$" | sort | uniq | head -n 70) - PSTORAGE_POSTGRESQL=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "pgadmin.*\.db$|pg_hba\.conf$|postgresql\.conf$|pgsql\.conf$" | sort | uniq | head -n 70) - PSTORAGE_APACHE=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "sites-enabled$|000-default\.conf$" | sort | uniq | head -n 70) - PSTORAGE_PHP_SESSIONS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E '/tmp/.*sess_.*|/var/tmp/.*sess_.*' | grep -E "^/tmp|^/mnt|^/var" | grep -E "sess_.*$" | sort | uniq | head -n 70) - PSTORAGE_PHP_FILES=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*config.*\.php$|database\.php$|db\.php$|storage\.php$|settings\.php$" | sort | uniq | head -n 70) - PSTORAGE_WORDPRESS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "wp-config\.php$" | sort | uniq | head -n 70) - PSTORAGE_DRUPAL=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E '/default/settings.php' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "settings\.php$" | sort | uniq | head -n 70) - PSTORAGE_MOODLE=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E 'moodle/config.php' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "config\.php$" | sort | uniq | head -n 70) - PSTORAGE_TOMCAT=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "tomcat-users\.xml$" | sort | uniq | head -n 70) - PSTORAGE_MONGO=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "mongod.*\.conf$" | sort | uniq | head -n 70) - PSTORAGE_SUPERVISORD=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "supervisord\.conf$" | sort | uniq | head -n 70) - PSTORAGE_CESI=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "cesi\.conf$" | sort | uniq | head -n 70) - PSTORAGE_RSYNC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "rsyncd\.conf$|rsyncd\.secrets$" | sort | uniq | head -n 70) - PSTORAGE_HOSTAPD=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "hostapd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_ANACONDA_KS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "anaconda-ks\.cfg$" | sort | uniq | head -n 70) - PSTORAGE_VNC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.vnc$|.*vnc.*\.c.*nf.*$|.*vnc.*\.ini$|.*vnc.*\.txt$|.*vnc.*\.xml$" | sort | uniq | head -n 70) - PSTORAGE_LDAP=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "ldap$" | sort | uniq | head -n 70) - PSTORAGE_OPENVPN=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.ovpn$" | sort | uniq | head -n 70) - PSTORAGE_SSH=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "id_dsa.*$|id_rsa.*$|known_hosts$|authorized_hosts$|authorized_keys$" | sort | uniq | head -n 70) - PSTORAGE_CERTSB4=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib.*' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.pem$|.*\.cer$|.*\.crt$" | sort | uniq | head -n 70) - PSTORAGE_CERTSBIN=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.csr$|.*\.der$" | sort | uniq | head -n 70) - PSTORAGE_CERTSCLIENT=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.pfx$|.*\.p12$" | sort | uniq | head -n 70) - PSTORAGE_SSH_AGENTS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/tmp" | grep -E "agent.*$" | sort | uniq | head -n 70) - PSTORAGE_SSH_CONFIG=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^$GREPHOMESEARCH|^/usr" | grep -E "ssh.*config$" | sort | uniq | head -n 70) - PSTORAGE_CLOUD_CREDENTIALS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "credentials$|credentials\.db$|legacy_credentials\.db$|access_tokens\.db$|access_tokens\.json$|accessTokens\.json$|azureProfile\.json$|TokenCache\.dat$|AzureRMContext\.json$|\.bluemix$" | sort | uniq | head -n 70) - PSTORAGE_KERBEROS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "krb5\.conf$|krb5\.keytab$|\.k5login$|kadm5\.acl$" | sort | uniq | head -n 70) - PSTORAGE_KIBANA=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "kibana\.y.*ml$" | sort | uniq | head -n 70) - PSTORAGE_KNOCKD=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E '/etc/init.d/' | grep -E "^/etc" | grep -E ".*knockd.*$" | sort | uniq | head -n 70) - PSTORAGE_LOGSTASH=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "logstash$" | sort | uniq | head -n 70) - PSTORAGE_ELASTICSEARCH=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "elasticsearch\.y.*ml$" | sort | uniq | head -n 70) - PSTORAGE_VAULT_SSH_HELPER=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "vault-ssh-helper\.hcl$" | sort | uniq | head -n 70) - PSTORAGE_VAULT_SSH_TOKEN=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.vault-token$" | sort | uniq | head -n 70) - PSTORAGE_COUCHDB=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "couchdb$" | sort | uniq | head -n 70) - PSTORAGE_REDIS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "redis\.conf$" | sort | uniq | head -n 70) - PSTORAGE_MOSQUITTO=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "mosquitto\.conf$" | sort | uniq | head -n 70) - PSTORAGE_NEO4J=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "neo4j$" | sort | uniq | head -n 70) - PSTORAGE_CLOUD_INIT=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "cloud\.cfg$" | sort | uniq | head -n 70) - PSTORAGE_ERLANG=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.erlang\.cookie$" | sort | uniq | head -n 70) - PSTORAGE_GMV_AUTH=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "gvm-tools\.conf$" | sort | uniq | head -n 70) - PSTORAGE_IPSEC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "ipsec\.secrets$|ipsec\.conf$" | sort | uniq | head -n 70) - PSTORAGE_IRSSI=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.irssi$" | sort | uniq | head -n 70) - PSTORAGE_KEYRING=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "keyrings$|.*\.keyring$|.*\.keystore$|.*\.jks$" | sort | uniq | head -n 70) - PSTORAGE_FILEZILLA=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA\n$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "filezilla$|filezilla\.xml$|recentservers\.xml$" | sort | uniq | head -n 70) - PSTORAGE_BACKUP_MANAGER=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "storage\.php$|database\.php$" | sort | uniq | head -n 70) - PSTORAGE_SPLUNK=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "passwd$" | sort | uniq | head -n 70) - PSTORAGE_GITLAB=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E '/lib' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "secrets\.yml$|gitlab\.yml$|gitlab\.rm$" | sort | uniq | head -n 70) - PSTORAGE_PGP_GPG=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E 'README.gnupg' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.pgp$|.*\.gpg$|.*\.gnupg$" | sort | uniq | head -n 70) - PSTORAGE_CACHE_VI=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.swp$|.*\.viminfo$" | sort | uniq | head -n 70) - PSTORAGE_DOCKER=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "docker\.socket$|docker\.sock$|Dockerfile$|docker-compose\.yml$" | sort | uniq | head -n 70) - PSTORAGE_FIREFOX=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^" | grep -E "\.mozilla$" | sort | uniq | head -n 70) - PSTORAGE_CHROME=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^" | grep -E "google-chrome$" | sort | uniq | head -n 70) - PSTORAGE_AUTOLOGIN=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "autologin$|autologin\.conf$" | sort | uniq | head -n 70) - PSTORAGE_FASTCGI=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "fastcgi_params$" | sort | uniq | head -n 70) - PSTORAGE_SNMP=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "snmpd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_PYPIRC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.pypirc$" | sort | uniq | head -n 70) - PSTORAGE_CLOUDFLARE=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.cloudflared$" | sort | uniq | head -n 70) - PSTORAGE_HISTORY=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\..*_history\..*$" | sort | uniq | head -n 70) - PSTORAGE_HTTP_CONF=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "httpd\.conf$" | sort | uniq | head -n 70) - PSTORAGE_HTPASSWD=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.htpasswd$" | sort | uniq | head -n 70) - PSTORAGE_LDAPRC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.ldaprc$" | sort | uniq | head -n 70) - PSTORAGE_ENV=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.env$" | sort | uniq | head -n 70) - PSTORAGE_MSMTPRC=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.msmtprc$" | sort | uniq | head -n 70) - PSTORAGE_GITHUB=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.github$|\.gitconfig$|\.git-credentials$|\.git$" | sort | uniq | head -n 70) - PSTORAGE_SVN=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.svn$" | sort | uniq | head -n 70) - PSTORAGE_KEEPASS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.kdbx$|KeePass\.config.*$|KeePass\.ini$|KeePass\.enforced.*$" | sort | uniq | head -n 70) - PSTORAGE_FTP=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.ftpconfig$|ffftp\.ini$|ftp\.ini$|ftp\.config$|sites\.ini$|wcx_ftp\.ini$|winscp\.ini$|ws_ftp\.ini$" | sort | uniq | head -n 70) - PSTORAGE_BIND=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "bind$" | sort | uniq | head -n 70) - PSTORAGE_SEEDDMS=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "seeddms.*$" | sort | uniq | head -n 70) - PSTORAGE_DDCLIENT=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "ddclient\.conf$" | sort | uniq | head -n 70) - PSTORAGE_CACTI=$(echo -e "$FIND_DIR_MEDIA\n$FIND_DIR_PRIVATE\n$FIND_DIR_TMP\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_ETC\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_OPT\n$FIND_DIR_SBIN\n$FIND_DIR_USR\n$FIND_DIR_VAR\n$FIND_DIR_SRV\n$FIND_DIR_BIN\n$FIND_DIR_MNT\n$FIND_DIR_SNAP\n$FIND_DIR_CDROM\n$FIND_DIR_CACHE" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "cacti$" | sort | uniq | head -n 70) - PSTORAGE_INTERESTING_LOGS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "access\.log$|error\.log$" | sort | uniq | head -n 70) - PSTORAGE_OTHER_INTERESTING_FILES=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "\.bashrc$|\.google_authenticator$|hosts\.equiv$|\.lesshst$|\.plan$|\.profile$|\.recently-used\.xbel$|\.rhosts$|\.sudo_as_admin_successful$" | sort | uniq | head -n 70) - PSTORAGE_WINDOWS_FILES=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "unattend\.inf$|.*\.rdg$|AppEvent\.Evt$|ConsoleHost_history\.txt$|FreeSSHDservice\.ini$|NetSetup\.log$|Ntds\.dit$|protecteduserkey\.bin$|RDCMan\.settings$|SAM$|SYSTEM$|SecEvent\.Evt$|appcmd\.exe$|bash\.exe$|datasources\.xml$|default\.sav$|drives\.xml$|groups\.xml$|https-xampp\.conf$|https\.conf$|iis6\.log$|index\.dat$|my\.cnf$|my\.ini$|ntuser\.dat$|pagefile\.sys$|php\.ini$|printers\.xml$|recentservers\.xml$|scclient\.exe$|scheduledtasks\.xml$|security\.sav$|server\.xml$|setupinfo$|setupinfo\.bak$|sitemanager\.xml$|sites\.ini$|software$|software\.sav$|sysprep\.inf$|sysprep\.xml$|system$|system\.sav$|unattend\.txt$|unattend\.xml$|unattended\.xml$|wcx_ftp\.ini$|ws_ftp\.ini$|web.*\.config$|winscp\.ini$|wsl\.exe$" | sort | uniq | head -n 70) - PSTORAGE_DATABASE=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -v -E '/man/|/usr/|/var/cache/' | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*\.db$|.*\.sqlite$|.*\.sqlite3$" | sort | uniq | head -n 70) - PSTORAGE_BACKUPS=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E "backup$|backups$" | sort | uniq | head -n 70) - PSTORAGE_PASSWORD_FILES=$(echo -e "$FIND_LIB64\n$FIND_TMP\n$FIND_PRIVATE\n$FIND_RUN\n$FIND_SYS\n$FIND_SYSTEM\n$FIND_CACHE\n$FIND_HOMESEARCH\n$FIND_ETC\n$FIND_USR\n$FIND_SNAP\n$FIND_OPT\n$FIND_SBIN\n$FIND_SRV\n$FIND_CDROM\n$FIND_BIN\n$FIND_LIB32\n$FIND_VAR\n$FIND_SYSTEMD\n$FIND_APPLICATIONS\n$FIND_MNT\n$FIND_LIB\n$FIND_MEDIA" | grep -E "^/snap|^/opt|^/bin|^/applications|^$GREPHOMESEARCH|^/media|^/srv|^/.cache|^/var|^/cdrom|^/etc|^/usr|^/tmp|^/mnt|^/private|^/sbin" | grep -E ".*password.*$|.*credential.*$|creds.*$|.*\.key$" | sort | uniq | head -n 70) + PSTORAGE_SYSTEMD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/lib|^/var|^/snap|^$GREPHOMESEARCH|^/tmp|^/mnt|^/.cache|^/run|^/system|^/srv|^/usr|^/private|^/bin|^/lib32|^/lib64|^/applications|^/media|^/sys|^/sbin|^/etc|^/systemd|^/opt" | grep -E ".*\.service$" | sort | uniq | head -n 70) + PSTORAGE_TIMER=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/lib|^/var|^/snap|^$GREPHOMESEARCH|^/tmp|^/mnt|^/.cache|^/run|^/system|^/srv|^/usr|^/private|^/bin|^/lib32|^/lib64|^/applications|^/media|^/sys|^/sbin|^/etc|^/systemd|^/opt" | grep -E ".*\.timer$" | sort | uniq | head -n 70) + PSTORAGE_SOCKET=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/lib|^/var|^/snap|^$GREPHOMESEARCH|^/tmp|^/mnt|^/.cache|^/run|^/system|^/srv|^/usr|^/private|^/bin|^/lib32|^/lib64|^/applications|^/media|^/sys|^/sbin|^/etc|^/systemd|^/opt" | grep -E ".*\.socket$" | sort | uniq | head -n 70) + PSTORAGE_DBUS=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/etc" | grep -E "system\.d$" | sort | uniq | head -n 70) + PSTORAGE_MYSQL=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -v -E 'mysql/mysql' | grep -E '^/etc/.*mysql|/usr/var/lib/.*mysql|/var/lib/.*mysql' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "mysql$|debian\.cnf$" | sort | uniq | head -n 70) + PSTORAGE_POSTGRESQL=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "pgadmin.*\.db$|pg_hba\.conf$|postgresql\.conf$|pgsql\.conf$" | sort | uniq | head -n 70) + PSTORAGE_APACHE=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "sites-enabled$|000-default\.conf$" | sort | uniq | head -n 70) + PSTORAGE_PHP_SESSIONS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E '/tmp/.*sess_.*|/var/tmp/.*sess_.*' | grep -E "^/var|^/tmp|^/mnt|^/private" | grep -E "sess_.*$" | sort | uniq | head -n 70) + PSTORAGE_PHP_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*config.*\.php$|database\.php$|db\.php$|storage\.php$|settings\.php$" | sort | uniq | head -n 70) + PSTORAGE_WORDPRESS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "wp-config\.php$" | sort | uniq | head -n 70) + PSTORAGE_DRUPAL=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E '/default/settings.php' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "settings\.php$" | sort | uniq | head -n 70) + PSTORAGE_MOODLE=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E 'moodle/config.php' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "config\.php$" | sort | uniq | head -n 70) + PSTORAGE_TOMCAT=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "tomcat-users\.xml$" | sort | uniq | head -n 70) + PSTORAGE_MONGO=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "mongod.*\.conf$" | sort | uniq | head -n 70) + PSTORAGE_SUPERVISORD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "supervisord\.conf$" | sort | uniq | head -n 70) + PSTORAGE_CESI=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "cesi\.conf$" | sort | uniq | head -n 70) + PSTORAGE_RSYNC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "rsyncd\.conf$|rsyncd\.secrets$" | sort | uniq | head -n 70) + PSTORAGE_HOSTAPD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "hostapd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_ANACONDA_KS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "anaconda-ks\.cfg$" | sort | uniq | head -n 70) + PSTORAGE_RACOON=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "racoon\.conf$|psk\.txt$" | sort | uniq | head -n 70) + PSTORAGE_VNC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.vnc$|.*vnc.*\.c.*nf.*$|.*vnc.*\.ini$|.*vnc.*\.txt$|.*vnc.*\.xml$" | sort | uniq | head -n 70) + PSTORAGE_LDAP=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "ldap$" | sort | uniq | head -n 70) + PSTORAGE_OPENVPN=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.ovpn$" | sort | uniq | head -n 70) + PSTORAGE_SSH=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "id_dsa.*$|id_rsa.*$|known_hosts$|authorized_hosts$|authorized_keys$" | sort | uniq | head -n 70) + PSTORAGE_CERTSB4=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib.*' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.pem$|.*\.cer$|.*\.crt$" | sort | uniq | head -n 70) + PSTORAGE_CERTSBIN=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.csr$|.*\.der$" | sort | uniq | head -n 70) + PSTORAGE_CERTSCLIENT=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E '^/usr/share/|^/etc/ssl/|^/usr/local/lib/|^/usr/lib/.*' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.pfx$|.*\.p12$" | sort | uniq | head -n 70) + PSTORAGE_SSH_AGENTS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/tmp|^/private" | grep -E "agent.*$" | sort | uniq | head -n 70) + PSTORAGE_SSH_CONFIG=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^$GREPHOMESEARCH|^/usr" | grep -E "ssh.*config$" | sort | uniq | head -n 70) + PSTORAGE_CLOUD_CREDENTIALS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "credentials$|credentials\.db$|legacy_credentials\.db$|access_tokens\.db$|access_tokens\.json$|accessTokens\.json$|azureProfile\.json$|TokenCache\.dat$|AzureRMContext\.json$|\.bluemix$" | sort | uniq | head -n 70) + PSTORAGE_KERBEROS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "krb5\.conf$|krb5\.keytab$|\.k5login$|kadm5\.acl$" | sort | uniq | head -n 70) + PSTORAGE_KIBANA=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "kibana\.y.*ml$" | sort | uniq | head -n 70) + PSTORAGE_KNOCKD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E '/etc/init.d/' | grep -E "^/etc" | grep -E ".*knockd.*$" | sort | uniq | head -n 70) + PSTORAGE_LOGSTASH=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "logstash$" | sort | uniq | head -n 70) + PSTORAGE_ELASTICSEARCH=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "elasticsearch\.y.*ml$" | sort | uniq | head -n 70) + PSTORAGE_VAULT_SSH_HELPER=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "vault-ssh-helper\.hcl$" | sort | uniq | head -n 70) + PSTORAGE_VAULT_SSH_TOKEN=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.vault-token$" | sort | uniq | head -n 70) + PSTORAGE_COUCHDB=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "couchdb$" | sort | uniq | head -n 70) + PSTORAGE_REDIS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "redis\.conf$" | sort | uniq | head -n 70) + PSTORAGE_MOSQUITTO=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "mosquitto\.conf$" | sort | uniq | head -n 70) + PSTORAGE_NEO4J=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "neo4j$" | sort | uniq | head -n 70) + PSTORAGE_CLOUD_INIT=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "cloud\.cfg$" | sort | uniq | head -n 70) + PSTORAGE_ERLANG=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.erlang\.cookie$" | sort | uniq | head -n 70) + PSTORAGE_GMV_AUTH=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "gvm-tools\.conf$" | sort | uniq | head -n 70) + PSTORAGE_IPSEC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "ipsec\.secrets$|ipsec\.conf$" | sort | uniq | head -n 70) + PSTORAGE_IRSSI=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.irssi$" | sort | uniq | head -n 70) + PSTORAGE_KEYRING=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "keyrings$|.*\.keyring$|.*\.keystore$|.*\.jks$" | sort | uniq | head -n 70) + PSTORAGE_FILEZILLA=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC\n$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "filezilla$|filezilla\.xml$|recentservers\.xml$" | sort | uniq | head -n 70) + PSTORAGE_BACKUP_MANAGER=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "storage\.php$|database\.php$" | sort | uniq | head -n 70) + PSTORAGE_SPLUNK=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "passwd$" | sort | uniq | head -n 70) + PSTORAGE_GITLAB=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E '/lib' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "secrets\.yml$|gitlab\.yml$|gitlab\.rm$" | sort | uniq | head -n 70) + PSTORAGE_PGP_GPG=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E 'README.gnupg' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.pgp$|.*\.gpg$|.*\.gnupg$" | sort | uniq | head -n 70) + PSTORAGE_CACHE_VI=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.swp$|.*\.viminfo$" | sort | uniq | head -n 70) + PSTORAGE_DOCKER=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "docker\.socket$|docker\.sock$|Dockerfile$|docker-compose\.yml$" | sort | uniq | head -n 70) + PSTORAGE_FIREFOX=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^" | grep -E "\.mozilla$|Firefox$" | sort | uniq | head -n 70) + PSTORAGE_CHROME=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^" | grep -E "google-chrome$|Chrome$" | sort | uniq | head -n 70) + PSTORAGE_OPERA=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^" | grep -E "com\.operasoftware\.Opera$" | sort | uniq | head -n 70) + PSTORAGE_SAFARI=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^" | grep -E "Safari$" | sort | uniq | head -n 70) + PSTORAGE_AUTOLOGIN=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "autologin$|autologin\.conf$" | sort | uniq | head -n 70) + PSTORAGE_FASTCGI=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "fastcgi_params$" | sort | uniq | head -n 70) + PSTORAGE_SNMP=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "snmpd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_PYPIRC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.pypirc$" | sort | uniq | head -n 70) + PSTORAGE_CLOUDFLARE=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.cloudflared$" | sort | uniq | head -n 70) + PSTORAGE_HISTORY=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\..*_history\..*$" | sort | uniq | head -n 70) + PSTORAGE_HTTP_CONF=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "httpd\.conf$" | sort | uniq | head -n 70) + PSTORAGE_HTPASSWD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.htpasswd$" | sort | uniq | head -n 70) + PSTORAGE_LDAPRC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.ldaprc$" | sort | uniq | head -n 70) + PSTORAGE_ENV=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.env$" | sort | uniq | head -n 70) + PSTORAGE_MSMTPRC=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.msmtprc$" | sort | uniq | head -n 70) + PSTORAGE_GITHUB=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.github$|\.gitconfig$|\.git-credentials$|\.git$" | sort | uniq | head -n 70) + PSTORAGE_SVN=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.svn$" | sort | uniq | head -n 70) + PSTORAGE_KEEPASS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.kdbx$|KeePass\.config.*$|KeePass\.ini$|KeePass\.enforced.*$" | sort | uniq | head -n 70) + PSTORAGE_FTP=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.ftpconfig$|ffftp\.ini$|ftp\.ini$|ftp\.config$|sites\.ini$|wcx_ftp\.ini$|winscp\.ini$|ws_ftp\.ini$" | sort | uniq | head -n 70) + PSTORAGE_BIND=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/var|^/usr|^/etc" | grep -E "bind$" | sort | uniq | head -n 70) + PSTORAGE_SEEDDMS=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "seeddms.*$" | sort | uniq | head -n 70) + PSTORAGE_DDCLIENT=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "ddclient\.conf$" | sort | uniq | head -n 70) + PSTORAGE_KCPASSWORD=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "kcpassword$" | sort | uniq | head -n 70) + PSTORAGE_CACTI=$(echo -e "$FIND_DIR_VAR\n$FIND_DIR_USR\n$FIND_DIR_CACHE\n$FIND_DIR_HOMESEARCH\n$FIND_DIR_BIN\n$FIND_DIR_APPLICATIONS\n$FIND_DIR_OPT\n$FIND_DIR_MNT\n$FIND_DIR_SRV\n$FIND_DIR_PRIVATE\n$FIND_DIR_CDROM\n$FIND_DIR_TMP\n$FIND_DIR_SNAP\n$FIND_DIR_SBIN\n$FIND_DIR_MEDIA\n$FIND_DIR_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "cacti$" | sort | uniq | head -n 70) + PSTORAGE_INTERESTING_LOGS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "access\.log$|error\.log$" | sort | uniq | head -n 70) + PSTORAGE_OTHER_INTERESTING_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "\.bashrc$|\.google_authenticator$|hosts\.equiv$|\.lesshst$|\.plan$|\.profile$|\.recently-used\.xbel$|\.rhosts$|\.sudo_as_admin_successful$" | sort | uniq | head -n 70) + PSTORAGE_WINDOWS_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "unattend\.inf$|.*\.rdg$|AppEvent\.Evt$|ConsoleHost_history\.txt$|FreeSSHDservice\.ini$|NetSetup\.log$|Ntds\.dit$|protecteduserkey\.bin$|RDCMan\.settings$|SAM$|SYSTEM$|SecEvent\.Evt$|appcmd\.exe$|bash\.exe$|datasources\.xml$|default\.sav$|drives\.xml$|groups\.xml$|https-xampp\.conf$|https\.conf$|iis6\.log$|index\.dat$|my\.cnf$|my\.ini$|ntuser\.dat$|pagefile\.sys$|php\.ini$|printers\.xml$|recentservers\.xml$|scclient\.exe$|scheduledtasks\.xml$|security\.sav$|server\.xml$|setupinfo$|setupinfo\.bak$|sitemanager\.xml$|sites\.ini$|software$|software\.sav$|sysprep\.inf$|sysprep\.xml$|system\.sav$|unattend\.txt$|unattend\.xml$|unattended\.xml$|wcx_ftp\.ini$|ws_ftp\.ini$|web.*\.config$|winscp\.ini$|wsl\.exe$" | sort | uniq | head -n 70) + PSTORAGE_DATABASE=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -v -E '/man/|/usr/|/var/cache/' | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*\.db$|.*\.sqlite$|.*\.sqlite3$" | sort | uniq | head -n 70) + PSTORAGE_BACKUPS=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E "backup$|backups$" | sort | uniq | head -n 70) + PSTORAGE_PASSWORD_FILES=$(echo -e "$FIND_SYSTEMD\n$FIND_TMP\n$FIND_CACHE\n$FIND_OPT\n$FIND_VAR\n$FIND_MEDIA\n$FIND_LIB\n$FIND_MNT\n$FIND_SNAP\n$FIND_USR\n$FIND_HOMESEARCH\n$FIND_BIN\n$FIND_SYS\n$FIND_LIB64\n$FIND_SYSTEM\n$FIND_PRIVATE\n$FIND_CDROM\n$FIND_APPLICATIONS\n$FIND_SRV\n$FIND_SBIN\n$FIND_RUN\n$FIND_LIB32\n$FIND_ETC" | grep -E "^/cdrom|^/mnt|^/media|^/sbin|^/bin|^/.cache|^$GREPHOMESEARCH|^/etc|^/srv|^/var|^/usr|^/applications|^/opt|^/snap|^/tmp|^/private" | grep -E ".*password.*$|.*credential.*$|creds.*$|.*\.key$" | sort | uniq | head -n 70) ##### POST SERACH VARIABLES ##### - backup_folders_row="`echo $PSTORAGE_BACKUPS | tr '\n' ' '`" + backup_folders_row="$(echo $PSTORAGE_BACKUPS | tr '\n' ' ')" printf ${YELLOW}"DONE\n"$NC echo "" fi -if [ "`echo $CHECKS | grep SysI`" ]; then +if echo $CHECKS | grep -q SysI; then ########################################### #-------------) System Info (-------------# ########################################### @@ -1187,12 +1228,15 @@ if [ "`echo $CHECKS | grep SysI`" ]; then print_2title "Operative system" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#kernel-exploits" (cat /proc/version || uname -a ) 2>/dev/null | sed -${E} "s,$kernelDCW_Ubuntu_Precise_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_5,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Precise_6,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Trusty_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Ubuntu_Xenial,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel5_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_1,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_2,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_3,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel6_4,${SED_RED_YELLOW}," | sed -${E} "s,$kernelDCW_Rhel7,${SED_RED_YELLOW}," | sed -${E} "s,$kernelB,${SED_RED}," - lsb_release -a 2>/dev/null + warn_exec lsb_release -a 2>/dev/null + if [ "$MACPEAS" ]; then + warn_exec system_profiler SPSoftwareDataType + fi echo "" #-- SY) Sudo print_2title "Sudo version" - if [ "`command -v sudo 2>/dev/null`" ]; then + if [ "$(command -v sudo 2>/dev/null)" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-version" sudo -V 2>/dev/null | grep "Sudo ver" | sed -${E} "s,$sudovB,${SED_RED}," else echo_not_found "sudo" @@ -1211,7 +1255,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then pc_length=${#pc_version} pc_major=$(echo "$pc_version" | cut -d. -f1) pc_minor=$(echo "$pc_version" | cut -d. -f2) - if [ $pc_length -eq 4 -a $pc_major -eq 0 -a $pc_minor -lt 21 ]; then + if [ "$pc_length" -eq 4 ] && [ "$pc_major" -eq 0 ] && [ "$pc_minor" -lt 21 ]; then echo "Vulnerable!!" | sed -${E} "s,.*,${SED_RED}," fi fi @@ -1221,46 +1265,57 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) PATH print_2title "PATH" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-path-abuses" - echo $OLDPATH 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" + echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" echo "New path exported: $PATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\. ,${SED_RED_YELLOW},g" echo "" #-- SY) Date - print_2title "Date" - date 2>/dev/null || echo_not_found "date" + print_2title "Date & uptime" + warn_exec date 2>/dev/null + warn_exec uptime 2>/dev/null echo "" #-- SY) System stats print_2title "System stats" (df -h || lsblk) 2>/dev/null || echo_not_found "df and lsblk" - free 2>/dev/null || echo_not_found "free" + warn_exec free 2>/dev/null echo "" #-- SY) CPU info print_2title "CPU info" - lscpu 2>/dev/null || echo_not_found "lscpu" + warn_exec lscpu 2>/dev/null echo "" #-- SY) Environment vars print_2title "Environment" print_info "Any private information inside environment variables?" - (env || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|sudocapsB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY],${SED_RED},g" || echo_not_found "env || set" + (env || printenv || set) 2>/dev/null | grep -v "RELEVANT*|FIND*|^VERSION=|dbuslistG|mygroups|ldsoconfdG|pwd_inside_history|kernelDCW_Ubuntu_Precise|kernelDCW_Ubuntu_Trusty|kernelDCW_Ubuntu_Xenial|kernelDCW_Rhel|^sudovB=|^rootcommon=|^mounted=|^mountG=|^notmounted=|^mountpermsB=|^mountpermsG=|^kernelB=|^C=|^RED=|^GREEN=|^Y=|^B=|^NC=|TIMEOUT=|groupsB=|groupsVB=|knw_grps=|sidG|sidB=|sidVB=|sidVB2=|sudoB=|sudoG=|sudoVB=|timersG=|capsB=|notExtensions=|Wfolders=|writeB=|writeVB=|_usrs=|compiler=|PWD=|LS_COLORS=|pathshG=|notBackup=|processesDump|processesB|commonrootdirs" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY],${SED_RED},g" || echo_not_found "env || set" echo "" #-- SY) Dmesg print_2title "Searching Signature verification failed in dmseg" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#dmesg-signature-verification-failed" - (dmesg 2>/dev/null | grep "signature") || echo_not_found + (dmesg 2>/dev/null | grep "signature") || echo_not_found "dmesg" echo "" + #-- SY) Kernel extensions + if [ "$MACPEAS" ]; then + print_2title "Kernel Extensions not belonging to apple" + kextstat 2>/dev/null | grep -Ev " com.apple." + + print_2title "Unsigned Kernel Extensions" + macosNotSigned /Library/Extensions + macosNotSigned /System/Library/Extensions + fi + #-- SY) AppArmor - print_2title "Linux Protections" + print_2title "Protections" print_list "AppArmor enabled? .............. "$NC - if [ `command -v aa-status 2>/dev/null` ]; then + if [ "$(command -v aa-status 2>/dev/null)" ]; then aa-status 2>&1 | sed "s,disabled,${SED_RED}," - elif [ `command -v apparmor_status 2>/dev/null` ]; then + elif [ "$(command -v apparmor_status 2>/dev/null)" ]; then apparmor_status 2>&1 | sed "s,disabled,${SED_RED}," - elif [ `ls -d /etc/apparmor* 2>/dev/null` ]; then + elif [ "$(ls -d /etc/apparmor* 2>/dev/null)" ]; then ls -d /etc/apparmor* else echo_not_found "AppArmor" @@ -1268,7 +1323,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) grsecurity print_list "grsecurity present? ............ "$NC - ((uname -r | grep "\-grsec" >/dev/null 2>&1 || grep "grsecurity" /etc/sysctl.conf >/dev/null 2>&1) && echo "Yes" || echo_not_found "grsecurity") + ( (uname -r | grep "\-grsec" >/dev/null 2>&1 || grep "grsecurity" /etc/sysctl.conf >/dev/null 2>&1) && echo "Yes" || echo_not_found "grsecurity") #-- SY) PaX print_list "PaX bins present? .............. "$NC @@ -1282,9 +1337,30 @@ if [ "`echo $CHECKS | grep SysI`" ]; then print_list "SELinux enabled? ............... "$NC (sestatus 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," + #-- SY) Gatekeeper + if [ "$MACPEAS" ]; then + print_list "Gatekeeper enabled? .......... "$NC + (spctl --status 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," + + print_list "sleepimage encrypted? ........ "$NC + (sysctl vm.swapusage | grep "encrypted" | sed "s,encrypted,${SED_GREEN},") || echo_no + + print_list "XProtect? .................... "$NC + (system_profiler SPInstallHistoryDataType 2>/dev/null | grep -A 4 "XProtectPlistConfigData" | tail -n 5 | grep -Iv "^$") || echo_no + + print_list "SIP enabled? ................. "$NC + csrutil status | sed "s,enabled,${SED_GREEN}," | sed "s,disabled,${SED_RED}," || echo_no + + print_list "Connected to JAMF? ........... "$NC + warn_exec jamf checkJSSConnection + + print_list "Connected to AD? ............. "$NC + dsconfigad -show && echo "" || echo_no + fi + #-- SY) ASLR print_list "Is ASLR enabled? ............... "$NC - ASLR=`cat /proc/sys/kernel/randomize_va_space 2>/dev/null` + ASLR=$(cat /proc/sys/kernel/randomize_va_space 2>/dev/null) if [ -z "$ASLR" ]; then echo_not_found "/proc/sys/kernel/randomize_va_space"; else @@ -1294,14 +1370,14 @@ if [ "`echo $CHECKS | grep SysI`" ]; then #-- SY) Printer print_list "Printer? ....................... "$NC - lpstat -a 2>/dev/null || echo_not_found "lpstat" + (lpstat -a || system_profiler SPPrintersDataType || echo_no) 2>/dev/null #-- SY) Running in a virtual environment print_list "Is this a virtual machine? ..... "$NC - hypervisorflag=`cat /proc/cpuinfo 2>/dev/null | grep flags | grep hypervisor` - if [ `command -v systemd-detect-virt 2>/dev/null` ]; then - detectedvirt=`systemd-detect-virt` - if [ "$hypervisorflag" ]; then printf $RED"Yes ("$detectedvirt")"$NC; else printf $GREEN"No"$NC; fi + hypervisorflag=$(grep flags /proc/cpuinfo 2>/dev/null | grep hypervisor) + if [ "$(command -v systemd-detect-virt 2>/dev/null)" ]; then + detectedvirt=$(systemd-detect-virt) + if [ "$hypervisorflag" ]; then printf $RED"Yes ($detectedvirt)"$NC; else printf $GREEN"No"$NC; fi else if [ "$hypervisorflag" ]; then printf $RED"Yes"$NC; else printf $GREEN"No"$NC; fi fi @@ -1311,7 +1387,7 @@ if [ "`echo $CHECKS | grep SysI`" ]; then fi -if [ "`echo $CHECKS | grep Container`" ]; then +if echo $CHECKS | grep -q Container; then ############################################## #---------------) Containers (---------------# ############################################## @@ -1319,17 +1395,17 @@ if [ "`echo $CHECKS | grep Container`" ]; then containerCheck print_2title "Container related tools present" - command -v $CONTAINER_CMDS + command -v "$CONTAINER_CMDS" print_2title "Container details" print_list "Is this a container? ...........$NC $containerType" print_list "Any running containers? ........ "$NC # Get counts of running containers for each platform - dockercontainers=`docker ps --format "{{.Names}}" 2>/dev/null | wc -l` - podmancontainers=`podman ps --format "{{.Names}}" 2>/dev/null | wc -l` - lxccontainers=`lxc list -c n --format csv 2>/dev/null | wc -l` - rktcontainers=`rkt list 2>/dev/null | tail -n +2 | wc -l` + dockercontainers=$(docker ps --format "{{.Names}}" 2>/dev/null | wc -l) + podmancontainers=$(podman ps --format "{{.Names}}" 2>/dev/null | wc -l) + lxccontainers=$(lxc list -c n --format csv 2>/dev/null | wc -l) + rktcontainers=$(rkt list 2>/dev/null | tail -n +2 | wc -l) if [ "$dockercontainers" -eq "0" ] && [ "$lxccontainers" -eq "0" ] && [ "$rktcontainers" -eq "0" ] && [ "$podmancontainers" -eq "0" ]; then echo_no else @@ -1347,7 +1423,7 @@ if [ "`echo $CHECKS | grep Container`" ]; then fi #If docker - if [ "`echo \"$containerType\" | grep -i \"docker\"`" ]; then + if echo "$containerType" | grep -qi "docker"; then print_2title "Docker Container details" inDockerGroup print_list "Am I inside Docker group .......$NC $DOCKER_GROUP\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," @@ -1367,13 +1443,13 @@ if [ "`echo $CHECKS | grep Container`" ]; then echo "" print_2title "Container & breakout enumeration" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/docker-breakout" - print_list "Container ID ...................$NC" `cat /etc/hostname` - if [ "`echo \"$containerType\" | grep -i \"docker\"`" ]; then - print_list "Container Full ID ..............$NC `basename \"$(cat /proc/1/cpuset)\"`\n" + print_list "Container ID ...................$NC" $(cat /etc/hostname) + if echo "$containerType" | grep -qi "docker"; then + print_list "Container Full ID ..............$NC $(basename \"$(cat /proc/1/cpuset)\")\n" fi - if [ "`echo \"$containerType\" | grep -i \"kubernetes\"`" ]; then - print_list "Kubernetes namespace ...........$NC `cat /run/secrets/kubernetes.io/serviceaccount/namespace /secrets/kubernetes.io/serviceaccount/namespace 2>/dev/null`\n" - print_list "Kubernetes token ...............$NC `cat /run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null`\n" + if echo "$containerType" | grep -qi "kubernetes"; then + print_list "Kubernetes namespace ...........$NC $(cat /run/secrets/kubernetes.io/serviceaccount/namespace /secrets/kubernetes.io/serviceaccount/namespace 2>/dev/null)\n" + print_list "Kubernetes token ...............$NC $(cat /run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null)\n" fi checkContainerExploits @@ -1411,7 +1487,7 @@ fi -if [ "`echo $CHECKS | grep Devs`" ]; then +if echo $CHECKS | grep -q Devs; then ########################################### #---------------) Devices (---------------# ########################################### @@ -1426,17 +1502,25 @@ if [ "`echo $CHECKS | grep Devs`" ]; then print_2title "Unmounted file-system?" print_info "Check if you can mount umounted devices" if [ -f "/etc/fstab" ]; then - cat /etc/fstab 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED}," | sed -${E} "s,$mounted,${SED_BLUE}," | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" + grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED}," | sed -${E} "s,$mounted,${SED_BLUE}," | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" else echo_not_found "/etc/fstab" fi echo "" + + print_2title "Mounted disks information" + warn_exec diskutil list + echo "" + + print_2title "Mounted SMB Shares" + warn_exec smbutil statshares -a + echo "" echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep AvaSof`" ]; then +if echo $CHECKS | grep -q AvaSof; then ########################################### #---------) Available Software (----------# ########################################### @@ -1444,19 +1528,53 @@ if [ "`echo $CHECKS | grep AvaSof`" ]; then #-- 1AS) Useful software print_2title "Useful software" - command -v $CONTAINER_CMDS nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch ctr 2>/dev/null + command -v "$CONTAINER_CMDS" nmap aws nc ncat netcat nc.traditional wget curl ping gcc g++ make gdb base64 socat python python2 python3 python2.7 python2.6 python3.6 python3.7 perl php ruby xterm doas sudo fetch ctr authbind 2>/dev/null echo "" #-- 2AS) Search for compilers print_2title "Installed Compiler" (dpkg --list 2>/dev/null | grep "compiler" | grep -v "decompiler\|lib" 2>/dev/null || yum list installed 'gcc*' 2>/dev/null | grep gcc 2>/dev/null; command -v gcc g++ 2>/dev/null || locate -r "/gcc[0-9\.-]\+$" 2>/dev/null | grep -v "/doc/"); echo "" + + if [ "$(command -v pkg 2>/dev/null)" ]; then + print_2title "Vulnerable Packages" + pkg audit -F | sed -${E} "s,vulnerable,${SED_RED},g" + echo "" + fi + + if [ "$(command -v brew 2>/dev/null)" ]; then + print_2title "Brew Installed Packages" + brew list + echo "" + fi + + if [ "$MACPEAS" ]; then + print_2title "Writable Installed Applications" + system_profiler SPApplicationsDataType | grep "Location:" | cut -d ":" -f 2 | cut -c2- | while read f; do + if [ -w "$f" ]; then + echo "$f is writable" | sed -${E} "s,.*,${SED_RED},g" + fi + done + + system_profiler SPFrameworksDataType | grep "Location:" | cut -d ":" -f 2 | cut -c2- | while read f; do + if [ -w "$f" ]; then + echo "$f is writable" | sed -${E} "s,.*,${SED_RED},g" + fi + done + echo "" + + #Useless info + #print_2title "Developer Tools" + #system_profiler SPDeveloperToolsDataType + #echo "" + fi + echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then +if echo $CHECKS | grep -q ProCronSrvcsTmrsSocks; then #################################################### #-----) Processes & Cron & Services & Timers (-----# #################################################### @@ -1465,25 +1583,25 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then #-- PCS) Cleaned proccesses print_2title "Cleaned processes" if [ "$NOUSEPS" ]; then - printf ${BLUE}"[i] "$GREEN"Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC + printf ${BLUE}"[i]$GREEN Looks like ps is not finding processes, going to read from /proc/ and not going to monitor 1min of processes\n"$NC fi print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-unix/privilege-escalation#processes" if [ "$NOUSEPS" ]; then - print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - pslist=`print_ps` + print_ps | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + pslist=$(print_ps) else (ps fauxwww || ps auxwww | sort ) 2>/dev/null | grep -v "\[" | grep -v "%CPU" | while read psline; do - echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," - if [ "`command -v capsh`" ] && ! [ "`echo \"$psline\" | grep root`" ]; then - cpid="`echo \"$psline\" | awk '{print $2}'`" - caphex=0x"`cat \"/proc/$cpid/status\" 2> /dev/null | grep \"CapEff\" | awk '{print $2}'`" - if [ "$caphex" ] && [ "$caphex" != "0x" ] && [ "`echo \"$caphex\" | grep -v '0x0000000000000000'`" ]; then + echo "$psline" | sed -${E} "s,$Wfolders,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$rootcommon,${SED_GREEN}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," | sed -${E} "s,$processesVB,${SED_RED_YELLOW},g" | sed "s,$processesB,${SED_RED}," | sed -${E} "s,$processesDump,${SED_RED}," + if [ "$(command -v capsh)" ] && ! echo "$psline" | grep -q root; then + cpid="$(echo \"$psline\" | awk '{print $2}')" + caphex=0x"$(cat \"/proc/$cpid/status\" 2> /dev/null | grep \"CapEff\" | awk '{print $2}')" + if [ "$caphex" ] && [ "$caphex" != "0x" ] && echo "$caphex" | grep -qv '0x0000000000000000'; then printf " └─(${DG}Caps${NC}) "; capsh --decode=$caphex 2>/dev/null | sed -${E} "s,$capsB,${SED_RED},g" fi fi done - pslist=`ps auxwww` + pslist=$(ps auxwww) echo "" #-- PCS) Binary processes permissions @@ -1503,26 +1621,27 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ]; then print_2title "Files opened by processes belonging to other users" print_info "This is usually empty because of the lack of privileges to read other user processes information" - lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + lsof 2>/dev/null | grep -v "$USER" | grep -iv "permission denied" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," echo "" fi #-- PCS) Processes with credentials inside memory print_2title "Processes with credentials in memory (root req)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#credentials-from-process-memory" - if [ "`echo \"$pslist\" | grep \"gdm-password\"`" ]; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi - if [ "`echo \"$pslist\" | grep \"gnome-keyring-daemon\"`" ]; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi - if [ "`echo \"$pslist\" | grep \"lightdm\"`" ]; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi - if [ "`echo \"$pslist\" | grep \"vsftpd\"`" ]; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi - if [ "`echo \"$pslist\" | grep \"apache2\"`" ]; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi - if [ "`echo \"$pslist\" | grep \"sshd:\"`" ]; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi + if echo "$pslist" | grep -q "gdm-password"; then echo "gdm-password process found (dump creds from memory as root)" | sed "s,gdm-password process,${SED_RED},"; else echo_not_found "gdm-password"; fi + if echo "$pslist" | grep -q "gnome-keyring-daemon"; then echo "gnome-keyring-daemon process found (dump creds from memory as root)" | sed "s,gnome-keyring-daemon,${SED_RED},"; else echo_not_found "gnome-keyring-daemon"; fi + if echo "$pslist" | grep -q "lightdm"; then echo "lightdm process found (dump creds from memory as root)" | sed "s,lightdm,${SED_RED},"; else echo_not_found "lightdm"; fi + if echo "$pslist" | grep -q "vsftpd"; then echo "vsftpd process found (dump creds from memory as root)" | sed "s,vsftpd,${SED_RED},"; else echo_not_found "vsftpd"; fi + if echo "$pslist" | grep -q "apache2"; then echo "apache2 process found (dump creds from memory as root)" | sed "s,apache2,${SED_RED},"; else echo_not_found "apache2"; fi + if echo "$pslist" | grep -q "sshd:"; then echo "sshd: process found (dump creds from memory as root)" | sed "s,sshd:,${SED_RED},"; else echo_not_found "sshd"; fi echo "" #-- PCS) Different processes 1 min if ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then print_2title "Different processes executed during 1 min (interesting is low number of repetitions)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#frequent-cron-jobs" - if [ "`ps -e -o command 2>/dev/null`" ]; then for i in $(seq 1 1250); do ps -e -o command >> $file.tmp1 2>/dev/null; sleep 0.05; done; sort $file.tmp1 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm $file.tmp1; fi + temp_file=$(mktemp) + if [ "$(ps -e -o command 2>/dev/null)" ]; then for i in $(seq 1 1250); do ps -e -o command >> "$temp_file" 2>/dev/null; sleep 0.05; done; sort "$temp_file" 2>/dev/null | uniq -c | grep -v "\[" | sed '/^.\{200\}./d' | sort -r -n | grep -E -v "\s*[1-9][0-9][0-9][0-9]"; rm "$temp_file"; fi echo "" fi @@ -1530,15 +1649,55 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "Cron jobs" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#scheduled-cron-jobs" command -v crontab 2>/dev/null || echo_not_found "crontab" - crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + crontab -l 2>/dev/null | tr -d "\r" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," command -v incrontab 2>/dev/null || echo_not_found "incrontab" incrontab -l 2>/dev/null ls -alR /etc/cron* /var/spool/cron/crontabs /var/spool/anacron 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" - cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#\|test \-x /usr/sbin/anacron\|run\-parts \-\-report /etc/cron.hourly\| root run-parts /etc/cron." | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + cat /etc/cron* /etc/at* /etc/anacrontab /var/spool/cron/crontabs/* /etc/incron.d/* /var/spool/incron/* 2>/dev/null | tr -d "\r" | grep -v "^#\|test \-x /usr/sbin/anacron\|run\-parts \-\-report /etc/cron.hourly\| root run-parts /etc/cron." | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," crontab -l -u "$USER" 2>/dev/null | tr -d "\r" - ls -l /usr/lib/cron/tabs/ /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ 2>/dev/null #MacOS paths + ls -lR /usr/lib/cron/tabs/ /private/var/at/jobs /var/at/tabs/ /etc/periodic/ 2>/dev/null | sed -${E} "s,$cronjobsG,${SED_GREEN},g" | sed "s,$cronjobsB,${SED_RED},g" #MacOS paths + atq 2>/dev/null echo "" + if [ "$MACPEAS" ]; then + print_2title "Third party LaunchAgents & LaunchDemons" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#launchd" + ls -l /Library/LaunchAgents/ /Library/LaunchDaemons/ ~/Library/LaunchAgents/ ~/Library/LaunchDaemons/ 2>/dev/null + echo "" + + print_2title "Writable System LaunchAgents & LaunchDemons" + find /System/Library/LaunchAgents/ /System/Library/LaunchDaemons/ /Library/LaunchAgents/ /Library/LaunchDaemons/ | grep ".plist" | while read f; do + program="" + program=$(defaults read "$f" Program 2>/dev/null) + if ! [ "$program" ]; then + program=$(defaults read /Library/LaunchDaemons/MonitorHelper.plist ProgramArguments | grep -Ev "^\(|^\)" | cut -d '"' -f 2) + fi + if [ -w "$program" ]; then + echo "$program" is writable | sed -${E} "s,.*,${SED_RED_YELLOW},"; + fi + done + echo "" + + print_2title "StartupItems" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#startup-items" + ls -l /Library/StartupItems/ /System/Library/StartupItems/ 2>/dev/null + echo "" + + print_2title "Login Items" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#login-items" + osascript -e 'tell application "System Events" to get the name of every login item' 2>/dev/null + echo "" + + print_2title "SPStartupItemDataType" + system_profiler SPStartupItemDataType + echo "" + + print_2title "Emond scripts" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#emond" + ls -l /private/var/db/emondClients + echo "" + fi + #-- PCS) Services print_2title "Services" print_info "Search for outdated versions" @@ -1549,7 +1708,7 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "Systemd PATH" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#systemd-path-relative-paths" systemctl show-environment 2>/dev/null | grep "PATH" | sed -${E} "s,$Wfolders\|\./\|\.:\|:\.,${SED_RED_YELLOW},g" - WRITABLESYSTEMDPATH=`systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders"` + WRITABLESYSTEMDPATH=$(systemctl show-environment 2>/dev/null | grep "PATH" | grep -E "$Wfolders") echo "" #-- PSC) .service files @@ -1561,14 +1720,14 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then echo "$s" | sed -${E} "s,.*,${SED_RED_YELLOW},g" fi - servicebinpaths="`grep -Eo '^Exec.*?=[!@+-]*[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" #Get invoked paths + servicebinpaths="$(grep -Eo '^Exec.*?=[!@+-]*[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" #Get invoked paths printf "%s\n" "$servicebinpaths\n" | while read sp; do if [ -w "$sp" ]; then echo "$s is calling this writable executable: $sp" | sed "s,writable.*,${SED_RED_YELLOW},g" fi done - relpath1="`grep -E '^Exec.*=(?:[^/]|-[^/]|\+[^/]|![^/]|!![^/]|)[^/@\+!-].*' \"$s\" 2>/dev/null | grep -Iv \"=/\"`" - relpath2="`grep -E '^Exec.*=.*/bin/[a-zA-Z0-9_]*sh ' \"$s\" 2>/dev/null | grep -Ev \"/[a-zA-Z0-9_]+/\"`" + relpath1="$(grep -E '^Exec.*=(?:[^/]|-[^/]|\+[^/]|![^/]|!![^/]|)[^/@\+!-].*' \"$s\" 2>/dev/null | grep -Iv \"=/\")" + relpath2="$(grep -E '^Exec.*=.*/bin/[a-zA-Z0-9_]*sh ' \"$s\" 2>/dev/null | grep -Ev \"/[a-zA-Z0-9_]+/\")" if [ "$relpath1" ] || [ "$relpath2" ]; then if [ "$WRITABLESYSTEMDPATH" ]; then echo "$s is executing some relative path" | sed -${E} "s,.*,${SED_RED},"; @@ -1594,7 +1753,7 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$t" ]; then echo "$t" | sed -${E} "s,.*,${SED_RED},g" fi - timerbinpaths="`grep -Po '^Unit=*(.*?$)' \"$t\" 2>/dev/null | cut -d '=' -f2`" + timerbinpaths="$(grep -Po '^Unit=*(.*?$)' \"$t\" 2>/dev/null | cut -d '=' -f2)" printf "%s\n" "$timerbinpaths" | while read tb; do if [ -w "$tb" ]; then echo "$t timer is calling this writable executable: $tb" | sed "s,writable.*,${SED_RED},g" @@ -1615,14 +1774,14 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ]; then echo "Writable .socket file: $s" | sed "s,/.*,${SED_RED},g" fi - socketsbinpaths="`grep -Eo '^(Exec).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" + socketsbinpaths="$(grep -Eo '^(Exec).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" printf "%s\n" "$socketsbinpaths" | while read sb; do if [ -w "$sb" ]; then echo "$s is calling this writable executable: $sb" | sed "s,writable.*,${SED_RED},g" fi done - socketslistpaths="`grep -Eo '^(Listen).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,'`" - printf "%s\n" "$socketsbinpaths" | while read sl; do + socketslistpaths="$(grep -Eo '^(Listen).*?=[!@+-]*/[a-zA-Z0-9_/\-]+' \"$s\" 2>/dev/null | cut -d '=' -f2 | sed 's,^[@\+!-]*,,')" + printf "%s\n" "$socketslistpaths" | while read sl; do if [ -w "$sl" ]; then echo "$s is calling this writable listener: $sl" | sed "s,writable.*,${SED_RED},g"; fi @@ -1640,10 +1799,10 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then print_2title "HTTP sockets" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sockets" ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1 | while read s; do - socketcurl="`curl --max-time 2 --unix-socket \"$s\" http:/index 2>/dev/null`" + socketcurl="$(curl --max-time 2 --unix-socket \"$s\" http:/index 2>/dev/null)" if [ $? -eq 0 ]; then - owner="`ls -l \"$s\" | cut -d ' ' -f 3`" - echo "Socket $s owned by $owner uses HTTP. Response to /index:" | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" + owner="$(ls -l \"$s\" | cut -d ' ' -f 3)" + echo "Socket $s owned by $owner uses HTTP. Response to /index:" | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" echo "$socketcurl" fi done @@ -1659,17 +1818,17 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then echo "Writable $f" | sed -${E} "s,.*,${SED_RED},g" fi - genpol=`grep "" "$f" 2>/dev/null` - if [ "$genpol" ]; then printf "Weak general policy found on $f ($genpol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + genpol=$(grep "" "$f" 2>/dev/null) + if [ "$genpol" ]; then printf "Weak general policy found on $f ($genpol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #if [ "`grep \"\" \"$f\" 2>/dev/null`" ]; then printf "Possible weak user policy found on $f () \n" | sed "s,$USER,${SED_RED},g"; fi - userpol=`grep "/dev/null | grep -v "root"` - if [ "$userpol" ]; then printf "Possible weak user policy found on $f ($userpol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + userpol=$(grep "/dev/null | grep -v "root") + if [ "$userpol" ]; then printf "Possible weak user policy found on $f ($userpol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #for g in `groups`; do # if [ "`grep \"\" \"$f\" 2>/dev/null`" ]; then printf "Possible weak group ($g) policy found on $f\n" | sed "s,$g,${SED_RED},g"; fi #done - grppol=`grep "/dev/null | grep -v "root"` - if [ "$grppol" ]; then printf "Possible weak user policy found on $f ($grppol)\n" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi + grppol=$(grep "/dev/null | grep -v "root") + if [ "$grppol" ]; then printf "Possible weak user policy found on $f ($grppol)\n" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$mygroups,${SED_RED},g"; fi #TODO: identify allows in context="default" done @@ -1683,9 +1842,9 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then if [ "$dbuslist" ]; then busctl list | while read line; do echo "$line" | sed -${E} "s,$dbuslistG,${SED_GREEN},g"; - if [ ! "`echo \"$line\" | grep -E \"$dbuslistG\"`" ]; then - srvc_object=`echo $line | cut -d " " -f1` - srvc_object_info=`busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' '` + if ! echo "$line" | grep -qE "$dbuslistG"; then + srvc_object=$(echo $line | cut -d " " -f1) + srvc_object_info=$(busctl status "$srvc_object" 2>/dev/null | grep -E "^UID|^EUID|^OwnerUID" | tr '\n' ' ') if [ "$srvc_object_info" ]; then echo " -- $srvc_object_info" | sed "s,UID=0,${SED_RED}," fi @@ -1701,16 +1860,22 @@ if [ "`echo $CHECKS | grep ProCronSrvcsTmrsSocks`" ]; then fi -if [ "`echo $CHECKS | grep Net`" ]; then +if echo $CHECKS | grep -q Net; then ########################################### #---------) Network Information (---------# ########################################### print_title "Network Information" + if [ "$MACOS" ]; then + print_2title "Network Capabilities" + warn_exec system_profiler SPNetworkDataType + echo "" + fi + #-- NI) Hostname, hosts and DNS print_2title "Hostname, hosts and DNS" cat /etc/hostname /etc/hosts /etc/resolv.conf 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null - dnsdomainname 2>/dev/null || echo_not_found "dnsdomainname" + warn_exec dnsdomainname 2>/dev/null echo "" #-- NI) /etc/inetd.conf @@ -1726,10 +1891,19 @@ if [ "`echo $CHECKS | grep Net`" ]; then #-- NI) Neighbours print_2title "Networks and neighbours" - (route || ip n || cat /proc/net/route) 2>/dev/null + if [ "$MACOS" ]; then + netstat -rn 2>/dev/null + else + (route || ip n || cat /proc/net/route) 2>/dev/null + fi (arp -e || arp -a || cat /proc/net/arp) 2>/dev/null echo "" + if [ "$MACPEAS" ]; then + print_2title "Firewall status" + warn_exec system_profiler SPFirewallDataType + fi + #-- NI) Iptables print_2title "Iptables rules" (timeout 1 iptables -L 2>/dev/null; cat /etc/iptables/* | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null) 2>/dev/null || echo_not_found "iptables rules" @@ -1738,9 +1912,40 @@ if [ "`echo $CHECKS | grep Net`" ]; then #-- NI) Ports print_2title "Active Ports" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-ports" - ((netstat -punta || ss -ntpu || (netstat -a -p tcp && netstat -a -p udp)) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+,${SED_RED}," + ( (netstat -punta || ss -ntpu || netstat -anv) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+,${SED_RED}," echo "" + #-- NI) MacOS hardware ports + if [ "$MACPEAS" ]; then + print_2title "Hardware Ports" + networksetup -listallhardwareports + echo "" + + print_2title "VLANs" + networksetup -listVLANs + echo "" + + print_2title "Wifi Info" + networksetup -getinfo Wi-Fi + echo "" + + print_2title "Check Enabled Proxies" + scutil --proxy + echo "" + + print_2title "Wifi Proxy URL" + networksetup -getautoproxyurl Wi-Fi + echo "" + + print_2title "Wifi Web Proxy" + networksetup -getwebproxy Wi-Fi + echo "" + + print_2title "Wifi FTP Proxy" + networksetup -getftpproxy Wi-Fi + echo "" + fi + #-- NI) tcpdump print_2title "Can I sniff with tcpdump?" timeout 1 tcpdump >/dev/null 2>&1 @@ -1761,12 +1966,45 @@ if [ "`echo $CHECKS | grep Net`" ]; then wait echo "" fi + + if [ "$MACOS" ]; then + print_2title "Any MacOS Sharing Service Enabled?" + rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l); + scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l); + flShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | egrep "\*.88|\*.445|\*.548" | wc -l); + rLgn=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.22" | wc -l); + rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l); + bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l); + printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM"; + echo "" + print_2title "VPN Creds" + system_profiler SPNetworkLocationDataType | grep -A 5 -B 7 ": Password" | sed -${E} "s,Password|Authorization Name.*,${SED_RED}," + echo "" + + print_2title "Bluetooth Info" + warn_exec system_profiler SPBluetoothDataType + echo "" + + print_2title "Ethernet Info" + warn_exec system_profiler SPEthernetDataType + echo "" + + print_2title "USB Info" + warn_exec system_profiler SPUSBDataType + echo "" + + #Irrelevant to PE + #print_2title "Airport Info" + #warn_exec system_profiler SPAirPortDataType + #echo "" + fi + echo "" if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi fi -if [ "`echo $CHECKS | grep UsrI`" ]; then +if echo $CHECKS | grep -q UsrI; then ########################################### #----------) Users Information (----------# ########################################### @@ -1775,9 +2013,33 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) My user print_2title "My user" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#users" - (id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" + (id || (whoami && groups)) 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" | sed -${E} "s,$idB,${SED_RED},g" echo "" + if [ "$MACPEAS" ];then + print_2title "Current user Login and Logout hooks" + defaults read $HOME/Library/Preferences/com.apple.loginwindow.plist 2>/dev/null | grep -e "Hook" + echo "" + + print_2title "All Login and Logout hooks" + defaults read /Users/*/Library/Preferences/com.apple.loginwindow.plist 2>/dev/null | grep -e "Hook" + defaults read /private/var/root/Library/Preferences/com.apple.loginwindow.plist + echo "" + + print_2title "Keychains" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#chainbreaker" + security list-keychains + echo "" + + print_2title "SystemKey" + ls -l /var/db/SystemKey + if [ -r "/var/db/SystemKey" ]; then + echo "You can read /var/db/SystemKey" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + hexdump -s 8 -n 24 -e '1/1 "%.2x"' /var/db/SystemKey | sed -${E} "s,.*,${SED_RED_YELLOW},"; + fi + echo "" + fi + #-- UI) PGP keys? print_2title "Do I have PGP keys?" command -v gpg 2>/dev/null || echo_not_found "gpg" @@ -1789,12 +2051,14 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Clipboard and highlighted text print_2title "Clipboard or highlighted text?" - if [ `command -v xclip 2>/dev/null` ]; then - echo "Clipboard: "`xclip -o -selection clipboard 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - echo "Highlighted text: "`xclip -o 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - elif [ `command -v xsel 2>/dev/null` ]; then - echo "Clipboard: "`xsel -ob 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," - echo "Highlighted text: "`xsel -o 2>/dev/null` | sed -${E} "s,$pwd_inside_history,${SED_RED}," + if [ "$(command -v xclip 2>/dev/null)" ]; then + echo "Clipboard: "$(xclip -o -selection clipboard 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "Highlighted text: "$(xclip -o 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + elif [ "$(command -v xsel 2>/dev/null)" ]; then + echo "Clipboard: "$(xsel -ob 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "Highlighted text: "$(xsel -o 2>/dev/null) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + elif [ "$(command -v pbpaste 2>/dev/null)" ]; then + echo "Clipboard: "$(pbpaste) | sed -${E} "s,$pwd_inside_history,${SED_RED}," else echo_not_found "xsel and xclip" fi echo "" @@ -1802,18 +2066,18 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Sudo -l print_2title "Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" - (echo '' | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW}," | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" + (echo '' | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" if [ "$PASSWORD" ]; then - (echo "$PASSWORD" | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "sudo" + (echo "$PASSWORD" | sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "sudo" fi - (cat /etc/sudoers | grep -Iv "^$" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "/etc/sudoers" + ( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW},") 2>/dev/null || echo_not_found "/etc/sudoers" if ! [ "$IAMROOT" ] && [ -w '/etc/sudoers.d/' ]; then echo "You can create a file in /etc/sudoers.d/ and escalate privileges" | sed -${E} "s,.*,${SED_RED_YELLOW}," fi for filename in '/etc/sudoers.d/*'; do if [ -r "$filename" ]; then echo "Sudoers file: $filename is readable" | sed -${E} "s,.*,${SED_RED},g" - cat "$filename" | grep -Iv "^$" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB,${SED_RED_YELLOW}," + grep -Iv "^$" "$filename" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," fi done echo "" @@ -1821,11 +2085,11 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Sudo tokens print_2title "Checking sudo tokens" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#reusing-sudo-tokens" - ptrace_scope="`cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null`" + ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then echo "/proc/sys/kernel/yama/ptrace_scope is enabled (0)" | sed "s,0,${SED_RED},g"; else echo "/proc/sys/kernel/yama/ptrace_scope is not enabled ($ptrace_scope)" | sed "s,is not enabled,${SED_GREEN},g"; fi - is_gdb="`command -v gdb 2>/dev/null`" + is_gdb="$(command -v gdb 2>/dev/null)" if [ "$is_gdb" ]; then echo "gdb was found in PATH" | sed -${E} "s,.*,${SED_RED},g"; else echo "gdb wasn't found in PATH" | sed "s,gdb,${SED_GREEN},g"; fi @@ -1845,43 +2109,45 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) Doas print_2title "Checking doas.conf" - if [ "`cat /etc/doas.conf "$(dirname $(command -v doas) 2>/dev/null)/doas.conf" "$(dirname $(command -v doas) 2>/dev/null)/../etc/doas.conf" "$(dirname $(command -v doas) 2>/dev/null)/etc/doas.conf" 2>/dev/null`" ]; then cat /etc/doas.conf "$(dirname $(command -v doas))/doas.conf" "$(dirname $(command -v doas))/../etc/doas.conf" "$(dirname $(command -v doas))/etc/doas.conf" 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_RED}," | sed "s,root,${SED_RED}," | sed "s,nopass,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," - else echo_not_found "/etc/doas.conf" + doas_dir_name=$(dirname "$(command -v doas)" 2>/dev/null) + if [ "$(cat /etc/doas.conf \"$doas_dir_name/doas.conf\" \"$doas_dir_name/../etc/doas.conf\" \"$doas_dir_name/etc/doas.conf\" 2>/dev/null)" ]; then + cat /etc/doas.conf "$doas_dir_name/doas.conf" "$doas_dir_name/../etc/doas.conf" "$doas_dir_name/etc/doas.conf" 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_RED}," | sed "s,root,${SED_RED}," | sed "s,nopass,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," + else echo_not_found "doas.conf" fi echo "" #-- UI) Pkexec policy print_2title "Checking Pkexec policy" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/interesting-groups-linux-pe#pe-method-2" - (cat /etc/polkit-1/localauthority.conf.d/* 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED}," | sed -${E} "s,$groupsVB,${SED_RED}," | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," | sed -${E} "s,$Groups,${SED_RED_YELLOW},") || echo_not_found "/etc/polkit-1/localauthority.conf.d" + (cat /etc/polkit-1/localauthority.conf.d/* 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,$groupsB,${SED_RED}," | sed -${E} "s,$groupsVB,${SED_RED}," | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,$USER,${SED_RED_YELLOW}," | sed -${E} "s,$Groups,${SED_RED_YELLOW},") || echo_not_found "/etc/polkit-1/localauthority.conf.d" echo "" #-- UI) Superusers print_2title "Superusers" - awk -F: '($3 == "0") {print}' /etc/passwd 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED_YELLOW}," | sed "s,root,${SED_RED}," + awk -F: '($3 == "0") {print}' /etc/passwd 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED_YELLOW}," | sed "s,root,${SED_RED}," echo "" #-- UI) Users with console print_2title "Users with console" if [ "$MACPEAS" ]; then dscl . list /Users | while read uname; do - ushell=`dscl . -read "/Users/$uname" UserShell | cut -d " " -f2` - if [ "`grep \"$ushell\" /etc/shells`" ]; then #Shell user - dscl . -read "/Users/$uname" UserShell RealName RecordName Password NFSHomeDirectory 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + dscl . -read "/Users/$uname" UserShell RealName RecordName Password NFSHomeDirectory 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" fi done else - no_shells="`cat /etc/passwd 2>/dev/null | grep -Ev "sh$" | cut -d ":" -f 7 | sort | uniq`" + no_shells="$(grep -Ev \"sh$\" /etc/passwd 2>/dev/null | cut -d ':' -f 7 | sort | uniq)" unexpected_shells="" printf "%s\n" "$no_shells" | while read f; do - if [ "`$f -c 'whoami' 2>/dev/null | grep \"$USER\"`" ]; then + if $f -c 'whoami' 2>/dev/null | grep -q "$USER"; then unexpected_shells="$f\n$unexpected_shells" fi done - cat /etc/passwd 2>/dev/null | grep "sh$" | sort | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + grep "sh$" /etc/passwd 2>/dev/null | sort | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," if [ "$unexpected_shells" ]; then - echo "These unexpected binaries are acting like shells:\n$unexpected_shells" | sed -${E} "s,/.*,${SED_RED},g" + printf "%s" "These unexpected binaries are acting like shells:\n$unexpected_shells" | sed -${E} "s,/.*,${SED_RED},g" echo "Unexpected users with shells:" printf "%s\n" "$unexpected_shells" | while read f; do if [ "$f" ]; then @@ -1895,25 +2161,36 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then #-- UI) All users & groups print_2title "All users & groups" if [ "$MACPEAS" ]; then - dscl . list /Users | while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" + dscl . list /Users | while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" else - cut -d":" -f1 /etc/passwd 2>/dev/null| while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m,g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" + cut -d":" -f1 /etc/passwd 2>/dev/null| while read i; do id $i;done 2>/dev/null | sort | sed -${E} "s,$groupsB,${SED_RED},g" | sed -${E} "s,$groupsVB,${SED_RED},g" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_RED}," | sed -${E} "s,$knw_grps,${SED_GREEN},g" fi echo "" #-- UI) Login now print_2title "Login now" - (w || who || users) 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + (w || who || finger || users) 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" #-- UI) Last logons print_2title "Last logons" - (last -Faiw || last) 2>/dev/null | tail | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_RED}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + (last -Faiw || last) 2>/dev/null | tail | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_RED}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," echo "" #-- UI) Login info print_2title "Last time logon each user" - lastlog 2>/dev/null | grep -v "Never" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + lastlog 2>/dev/null | grep -v "Never" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + + EXISTS_FINGER="$(command -v finger 2>/dev/null)" + if [ "$MACPEAS" ] && [ "$EXISTS_FINGER" ]; then + dscl . list /Users | while read uname; do + ushell=$(dscl . -read "/Users/$uname" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + finger "$uname" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," + echo "" + fi + done + fi echo "" #-- UI) Password policy @@ -1921,16 +2198,28 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then grep "^PASS_MAX_DAYS\|^PASS_MIN_DAYS\|^PASS_WARN_AGE\|^ENCRYPT_METHOD" /etc/login.defs 2>/dev/null || echo_not_found "/etc/login.defs" echo "" + if [ "$MACPEAS" ]; then + print_2title "Relevant last user info and user configs" + defaults read /Library/Preferences/com.apple.loginwindow.plist 2>/dev/null + echo "" + + print_2title "Guest user status" + sysadminctl -afpGuestAccess status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + sysadminctl -guestAccount status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + sysadminctl -smbGuestAccess status | sed -${E} "s,enabled,${SED_RED}," | sed -${E} "s,disabled,${SED_GREEN}," + echo "" + fi + #-- UI) Brute su - EXISTS_SUDO="`command -v sudo 2>/dev/null`" + EXISTS_SUDO="$(command -v sudo 2>/dev/null)" if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ] && ! [ "$IAMROOT" ] && [ "$EXISTS_SUDO" ]; then print_2title "Testing 'su' as other users with shell using as passwords: null pwd, the username and top2000pwds\n"$NC - POSSIBE_SU_BRUTE=`check_if_su_brute`; + POSSIBE_SU_BRUTE=$(check_if_su_brute); if [ "$POSSIBE_SU_BRUTE" ]; then - SHELLUSERS=`cat /etc/passwd 2>/dev/null | grep -i "sh$" | cut -d ":" -f 1` + SHELLUSERS=$(cat /etc/passwd 2>/dev/null | grep -i "sh$" | cut -d ":" -f 1) printf "%s\n" "$SHELLUSERS" | while read u; do echo " Bruteforcing user $u..." - su_brute_user_num $u $PASSTRY + su_brute_user_num "$u" $PASSTRY done else printf $GREEN"It's not possible to brute-force su.\n\n"$NC @@ -1945,7 +2234,7 @@ if [ "`echo $CHECKS | grep UsrI`" ]; then fi -if [ "`echo $CHECKS | grep SofI`" ]; then +if echo $CHECKS | grep -q SofI; then ########################################### #--------) Software Information (---------# ########################################### @@ -1958,7 +2247,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Mysql connection root/root print_list "MySQL connection using default root/root ........... " - mysqlconnect=`mysqladmin -uroot -proot version 2>/dev/null` + mysqlconnect=$(mysqladmin -uroot -proot version 2>/dev/null) if [ "$mysqlconnect" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," mysql -u root --password=root -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," @@ -1967,7 +2256,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Mysql connection root/toor print_list "MySQL connection using root/toor ................... " - mysqlconnect=`mysqladmin -uroot -ptoor version 2>/dev/null` + mysqlconnect=$(mysqladmin -uroot -ptoor version 2>/dev/null) if [ "$mysqlconnect" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," mysql -u root --password=toor -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," @@ -1975,7 +2264,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then fi #-- SI) Mysql connection root/NOPASS - mysqlconnectnopass=`mysqladmin -uroot version 2>/dev/null` + mysqlconnectnopass=$(mysqladmin -uroot version 2>/dev/null) print_list "MySQL connection using root/NOPASS ................. " if [ "$mysqlconnectnopass" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," @@ -1987,31 +2276,31 @@ if [ "`echo $CHECKS | grep SofI`" ]; then print_2title "Searching mysql credentials and exec" if [ "$PSTORAGE_MYSQL" ]; then printf "%s\n" "$PSTORAGE_MYSQL" | while read d; do - for f in `find $d -name debian.cnf 2>/dev/null`; do - if [ -r $f ]; then + for f in $(find $d -name debian.cnf 2>/dev/null); do + if [ -r "$f" ]; then echo "We can read the mysql debian.cnf. You can use this username/password to log in MySQL" | sed -${E} "s,.*,${SED_RED}," cat "$f" fi done - for f in `find $d -name user.MYD 2>/dev/null`; do + for f in $(find $d -name user.MYD 2>/dev/null); do if [ -r "$f" ]; then echo "We can read the Mysql Hashes from $f" | sed -${E} "s,.*,${SED_RED}," grep -oaE "[-_\.\*a-Z0-9]{3,}" $f | grep -v "mysql_native_password" fi done - for f in `grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"`; do + for f in $(grep -lr "user\s*=" $d 2>/dev/null | grep -v "debian.cnf"); do if [ -r "$f" ]; then - u=`cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null` - echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${C}[1;95m&${C}[0m," | sed "s,root,${SED_RED}," + u=$(cat "$f" | grep -v "#" | grep "user" | grep "=" 2>/dev/null) + echo "From '$f' Mysql user: $u" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed "s,root,${SED_RED}," fi done - for f in `find $d -name my.cnf 2>/dev/null`; do + for f in $(find $d -name my.cnf 2>/dev/null); do if [ -r "$f" ]; then echo "Found readable $f" - cat "$f" | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," + grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," fi done - mysqlexec=`whereis lib_mysqludf_sys.so 2>/dev/null | grep "lib_mysqludf_sys\.so"` + mysqlexec=$(whereis lib_mysqludf_sys.so 2>/dev/null | grep "lib_mysqludf_sys\.so") if [ "$mysqlexec" ]; then echo "Found $mysqlexec" echo "If you can login in MySQL you can execute commands doing: SELECT sys_eval('id');" | sed -${E} "s,.*,${SED_RED}," @@ -2033,22 +2322,22 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$TIMEOUT" ]; then # In some OS (like OpenBSD) it will expect the password from console and will pause the script. Also, this OS doesn't have the "timeout" command so lets only use this checks in OS that has it. #checks to see if any postgres password exists and connects to DB 'template0' - following commands are a variant on this print_list "PostgreSQL connection to template0 using postgres/NOPASS ........ " - if [ "`timeout 1 psql -U postgres -d template0 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U postgres -d template0 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template1 using postgres/NOPASS ........ " - if [ "`timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed "s,.)*,${SED_RED}," + if [ "$(timeout 1 psql -U postgres -d template1 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed "s,.)*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template0 using pgsql/NOPASS ........... " - if [ "`timeout 1 psql -U pgsql -d template0 -c 'select version()' 2>/dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U pgsql -d template0 -c 'select version()' 2>/dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi print_list "PostgreSQL connection to template1 using pgsql/NOPASS ........... " - if [ "`timeout 1 psql -U pgsql -d template1 -c 'select version()' 2> /dev/null`" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," + if [ "$(timeout 1 psql -U pgsql -d template1 -c 'select version()' 2> /dev/null)" ]; then echo "Yes" | sed -${E} "s,.*,${SED_RED}," else echo_no fi echo "" @@ -2063,7 +2352,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then echo "Version: $(warn_exec apache2 -v 2>/dev/null; warn_exec httpd -v 2>/dev/null)" print_3title 'PHP exec extensions' grep -R -B1 "httpd-php" /etc/apache2 2>/dev/null - if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"sites-enabled$\"`" ]; then echo_not_found "sites-enabled"; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "sites-enabled$" | while read f; do ls -ld "$f" | sed -${E} "s,sites-enabled$,${SED_RED},"; for ff in $(find "$f" -name "*"); do ls -ld "$ff" | sed -${E} "s,,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "AuthType|AuthName|AuthUserFile|ServerName|ServerAlias" | grep -Ev "^#" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo "";done; echo ""; + if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"sites-enabled$\"`" ]; then echo_not_found "sites-enabled"; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "sites-enabled$" | while read f; do ls -ld "$f" | sed -${E} "s,sites-enabled$,${SED_RED},"; for ff in $(find "$f" -name "*"); do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -E "AuthType|AuthName|AuthUserFile|ServerName|ServerAlias" | grep -Ev "#" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo "";done; echo ""; if ! [ "`echo \"$PSTORAGE_APACHE\" | grep -E \"000-default\.conf$\"`" ]; then echo_not_found "000-default.conf"; fi; printf "%s" "$PSTORAGE_APACHE" | grep -E "000-default\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,000-default\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,AuthType|AuthName|AuthUserFile|ServerName|ServerAlias,${SED_RED},g"; done; echo ""; @@ -2114,12 +2403,12 @@ if [ "`echo $CHECKS | grep SofI`" ]; then print_2title "Analyzing Hostapd Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_HOSTAPD\" | grep -E \"hostapd\.conf$\"`" ]; then echo_not_found "hostapd.conf"; fi; printf "%s" "$PSTORAGE_HOSTAPD" | grep -E "hostapd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,hostapd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,passphrase.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_HOSTAPD\" | grep -E \"hostapd\.conf$\"`" ]; then echo_not_found "hostapd.conf"; fi; printf "%s" "$PSTORAGE_HOSTAPD" | grep -E "hostapd\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,hostapd\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,passphrase.*,${SED_RED},g"; done; echo ""; #-- SI) Wifi conns print_2title "Searching wifi conns file" - wifi=`find /etc/NetworkManager/system-connections/ -type f 2>/dev/null` + wifi=$(find /etc/NetworkManager/system-connections/ -type f 2>/dev/null) if [ "$wifi" ]; then printf "%s\n" "$wifi" | while read f; do echo "$f"; cat "$f" 2>/dev/null | grep "psk.*=" | sed "s,psk.*,${SED_RED},"; done else echo_not_found @@ -2149,10 +2438,10 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) ssh files print_2title "Searching ssl/ssh files" - if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=`grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null`; fi - sshconfig="`ls /etc/ssh/ssh_config 2>/dev/null`" - hostsdenied="`ls /etc/hosts.denied 2>/dev/null`" - hostsallow="`ls /etc/hosts.allow 2>/dev/null`" + if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=$(grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null); fi + sshconfig="$(ls /etc/ssh/ssh_config 2>/dev/null)" + hostsdenied="$(ls /etc/hosts.denied 2>/dev/null)" + hostsallow="$(ls /etc/hosts.allow 2>/dev/null)" print_2title "Analyzing SSH Files (limit 70)" if ! [ "`echo \"$PSTORAGE_SSH\" | grep -E \"id_dsa.*$\"`" ]; then echo_not_found "id_dsa*"; fi; printf "%s" "$PSTORAGE_SSH" | grep -E "id_dsa.*$" | while read f; do ls -ld "$f" | sed -${E} "s,id_dsa.*$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; @@ -2165,13 +2454,13 @@ if [ "`echo $CHECKS | grep SofI`" ]; then grep "PermitRootLogin \|ChallengeResponseAuthentication \|PasswordAuthentication \|UsePAM \|Port\|PermitEmptyPasswords\|PubkeyAuthentication\|ListenAddress\|ForwardAgent\|AllowAgentForwarding\|AuthorizedKeysFiles" /etc/ssh/sshd_config 2>/dev/null | grep -v "#" | sed -${E} "s,PermitRootLogin.*es|PermitEmptyPasswords.*es|ChallengeResponseAuthentication.*es|FordwardAgent.*es,${SED_RED}," if [ "$TIMEOUT" ]; then - privatekeyfilesetc=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null` - privatekeyfileshome=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null` - privatekeyfilesroot=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null` - privatekeyfilesmnt=`timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null` + privatekeyfilesetc=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) + privatekeyfileshome=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOMESEARCH 2>/dev/null) + privatekeyfilesroot=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /root 2>/dev/null) + privatekeyfilesmnt=$(timeout 40 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /mnt 2>/dev/null) else - privatekeyfilesetc=`grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null` #If there is tons of files linpeas gets frozen here without a timeout - privatekeyfileshome=`grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null` + privatekeyfilesetc=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' /etc 2>/dev/null) #If there is tons of files linpeas gets frozen here without a timeout + privatekeyfileshome=$(grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' $HOME/.ssh 2>/dev/null) fi if [ "$privatekeyfilesetc" ] || [ "$privatekeyfileshome" ] || [ "$privatekeyfilesroot" ] || [ "$privatekeyfilesmnt" ] ; then @@ -2183,7 +2472,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$privatekeyfilesmnt" ]; then printf "$privatekeyfilesmnt\n" | sed -${E} "s,.*,${SED_RED},"; fi echo "" fi - if [ "$certsb4_grep" ] || [ "$$PSTORAGE_CERTSBIN" ]; then + if [ "$certsb4_grep" ] || [ "$PSTORAGE_CERTSBIN" ]; then print_3title "Some certificates were found (out limited):" printf "$certsb4_grep\n" | head -n 20 printf "$$PSTORAGE_CERTSBIN\n" | head -n 20 @@ -2199,7 +2488,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then printf "$PSTORAGE_SSH_AGENTS\n" echo "" fi - if [ "`ssh-add -l 2>/dev/null | grep -v 'no identities'`" ]; then + if ssh-add -l 2>/dev/null | grep -qv 'no identities'; then print_3title "Listing SSH Agents" ssh-add -l echo "" @@ -2224,15 +2513,15 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if [ "$sshconfig" ]; then echo "" echo "Searching inside /etc/ssh/ssh_config for interesting info" - cat /etc/ssh/ssh_config 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," + grep -v "^#" /etc/ssh/ssh_config 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed -${E} "s,Host|ForwardAgent|User|ProxyCommand,${SED_RED}," fi echo "" #-- SI) PAM auth print_2title "Searching unexpected auth lines in /etc/pam.d/sshd" - pamssh=`cat /etc/pam.d/sshd 2>/dev/null | grep -v "^#\|^@" | grep -i auth` + pamssh=$(grep -v "^#\|^@" /etc/pam.d/sshd 2>/dev/null | grep -i auth) if [ "$pamssh" ]; then - cat /etc/pam.d/sshd 2>/dev/null | grep -v "^#\|^@" | grep -i auth | sed -${E} "s,.*,${SED_RED}," + grep -v "^#\|^@" /etc/pam.d/sshd 2>/dev/null | grep -i auth | sed -${E} "s,.*,${SED_RED}," else echo_no fi echo "" @@ -2240,7 +2529,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) NFS exports print_2title "NFS exports?" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/nfs-no_root_squash-misconfiguration-pe" - if [ "`cat /etc/exports 2>/dev/null`" ]; then cat /etc/exports 2>/dev/null | grep -v "^#" | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,no_root_squash|no_all_squash ,${SED_RED_YELLOW}," | sed -${E} "s,insecure,${SED_RED}," + if [ "$(cat /etc/exports 2>/dev/null)" ]; then grep -v "^#" /etc/exports 2>/dev/null | grep -Ev "\W+\#|^#" 2>/dev/null | sed -${E} "s,no_root_squash|no_all_squash ,${SED_RED_YELLOW}," | sed -${E} "s,insecure,${SED_RED}," else echo_not_found "/etc/exports" fi echo "" @@ -2248,31 +2537,31 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Kerberos print_2title "Searching kerberos conf files and tickets" print_info "https://book.hacktricks.xyz/pentesting/pentesting-kerberos-88#pass-the-ticket-ptt" - kadmin_exists="`command -v kadmin`" - klist_exists="`command -v klist`" + kadmin_exists="$(command -v kadmin)" + klist_exists="$(command -v klist)" if [ "$kadmin_exists" ]; then echo "kadmin was found on $kadmin_exists" | sed "s,$kadmin_exists,${SED_RED},"; fi if [ "$klist_exists" ] && [ -x "$klist_exists" ]; then echo "klist execution"; klist; fi printf "%s\n" "$PSTORAGE_KERBEROS" | while read f; do if [ -r "$f" ]; then - if [ "`echo \"$f\" | grep .k5login`" ]; then + if echo "$f" | grep -q .k5login; then echo ".k5login file (users with access to the user who has this file in his home)" cat "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED},g" - elif [ "`echo \"$f\" | grep keytab`" ]; then + elif echo "$f" | grep -q keytab; then echo "" echo "keytab file found, you may be able to impersonate some kerberos principals and add users or modify passwords" klist -k "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED},g" - printf "`klist -k \"$f\" 2>/dev/null`\n" | awk '{print $2}' | while read l; do - if [ "$l" ] && [ "`echo \"$l\" | grep \"@\"`" ]; then + printf "$(klist -k \"$f\" 2>/dev/null)\n" | awk '{print $2}' | while read l; do + if [ "$l" ] && echo "$l" | grep -q "@"; then printf "$ITALIC --- Impersonation command: ${NC}kadmin -k -t /etc/krb5.keytab -p \"$l\"\n" | sed -${E} "s,$l,${SED_RED},g" #kadmin -k -t /etc/krb5.keytab -p "$l" -q getprivs 2>/dev/null #This should show the permissions of each impersoanted user, the thing is that in a test it showed that every user had the same permissions (even if they didn't). So this test isn't valid #We could also try to create a new user or modify a password, but I'm not user if linpeas should do that fi done - elif [ "`echo \"$f\" | grep krb5.conf`" ]; then + elif echo "$f" | grep -q krb5.conf; then ls -l "$f" cat "$f" 2>/dev/null | grep default_ccache_name | sed -${E} "s,default_ccache_name,${SED_RED},"; - elif [ "`echo \"$f\" | grep kadm5.acl`" ]; then + elif echo "$f" | grep -q kadm5.acl; then ls -l "$f" cat "$f" 2>/dev/null fi @@ -2302,7 +2591,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then printf "%s\n" "$PSTORAGE_LOGSTASH" | while read d; do if [ -r "$d/startup.options" ]; then echo "Logstash is running as user:" - cat "$d/startup.options" 2>/dev/null | grep "LS_USER\|LS_GROUP" | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed -${E} "s,$USER,${C}[1;95m&${C}[0m," | sed -${E} "s,root,${SED_RED}," + cat "$d/startup.options" 2>/dev/null | grep "LS_USER\|LS_GROUP" | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed -${E} "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,root,${SED_RED}," fi cat "$d/conf.d/out*" | grep "exec\s*{\|command\s*=>" | sed -${E} "s,exec\W*\{|command\W*=>,${SED_RED}," cat "$d/conf.d/filt*" | grep "path\s*=>\|code\s*=>\|ruby\s*{" | sed -${E} "s,path\W*=>|code\W*=>|ruby\W*\{,${SED_RED}," @@ -2324,7 +2613,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then echo "" #-- SI) Cached AD Hashes - adhashes=`ls "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null` + adhashes=$(ls "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null) print_2title "Searching AD cached hashes" if [ "$adhashes" ]; then ls -l "/var/lib/samba/private/secrets.tdb" "/var/lib/samba/passdb.tdb" "/var/opt/quest/vas/authcache/vas_auth.vdb" "/var/lib/sss/db/cache_*" 2>/dev/null @@ -2335,7 +2624,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) Screen sessions print_2title "Searching screen sessions" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" - screensess=`screen -ls 2>/dev/null` + screensess=$(screen -ls 2>/dev/null) if [ "$screensess" ]; then printf "$screensess" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,No Sockets found.*,${C}[32m&${C}[0m," else echo_not_found "screen" @@ -2343,8 +2632,8 @@ if [ "`echo $CHECKS | grep SofI`" ]; then echo "" #-- SI) Tmux sessions - tmuxdefsess=`tmux ls 2>/dev/null` - tmuxnondefsess=`ps auxwww | grep "tmux " | grep -v grep` + tmuxdefsess=$(tmux ls 2>/dev/null) + tmuxnondefsess=$(ps auxwww | grep "tmux " | grep -v grep) print_2title "Searching tmux sessions"$N print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#open-shell-sessions" if [ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ]; then @@ -2443,7 +2732,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) passwd files (splunk) print_2title "Searching uncommon passwd files (splunk)" - SPLUNK_BIN="`command -v splunk 2>/dev/null`" + SPLUNK_BIN="$(command -v splunk 2>/dev/null)" if [ "$SPLUNK_BIN" ]; then echo "splunk binary was found installed on $SPLUNK_BIN" | sed "s,.*,${SED_RED},"; fi printf "%s\n" "$PSTORAGE_SPLUNK" | sort | uniq | while read f; do if [ -f "$f" ] && ! [ -x "$f" ]; then @@ -2453,30 +2742,38 @@ if [ "`echo $CHECKS | grep SofI`" ]; then done echo "" + print_2title "Analyzing kcpassword files" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#kcpassword" + printf "%s\n" "$PSTORAGE_KCPASSWORD\n" | while read f; do + echo "$f" | sed -${E} "s,.*,${SED_RED}," + base64 "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + done + echo "" + ##-- SI) Gitlab print_2title "Searching GitLab related files" #Check gitlab-rails - if [ "`command -v gitlab-rails`" ]; then + if [ "$(command -v gitlab-rails)" ]; then echo "gitlab-rails was found. Trying to dump users..." gitlab-rails runner 'User.where.not(username: "peasssssssss").each { |u| pp u.attributes }' | sed -${E} "s,email|password,${SED_RED}," echo "If you have enough privileges, you can make an account under your control administrator by running: gitlab-rails runner 'user = User.find_by(email: \"youruser@example.com\"); user.admin = TRUE; user.save!'" echo "Alternatively, you could change the password of any user by running: gitlab-rails runner 'user = User.find_by(email: \"admin@example.com\"); user.password = \"pass_peass_pass\"; user.password_confirmation = \"pass_peass_pass\"; user.save!'" echo "" fi - if [ "`command -v gitlab-backup`" ]; then + if [ "$(command -v gitlab-backup)" ]; then echo "If you have enough privileges, you can create a backup of all the repositories inside gitlab using 'gitlab-backup create'" echo "Then you can get the plain-text with something like 'git clone \@hashed/19/23/14348274[...]38749234.bundle'" echo "" fi #Check gitlab files printf "%s\n" "$PSTORAGE_GITLAB" | sort | uniq | while read f; do - if [ "`echo $f | grep secrets.yml`" ]; then + if echo $f | grep -q secrets.yml; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" 2>/dev/null | grep -Iv "^$" | grep -v "^#" - elif [ "`echo $f | grep gitlab.yml`" ]; then + elif echo $f | grep -q gitlab.yml; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" | grep -A 4 "repositories:" - elif [ "`echo $f | grep gitlab.rb`" ]; then + elif echo $f | grep -q gitlab.rb; then echo "Found $f" | sed "s,$f,${SED_RED}," cat "$f" | grep -Iv "^$" | grep -v "^#" | sed -${E} "s,email|user|password,${SED_RED}," fi @@ -2496,8 +2793,8 @@ if [ "`echo $CHECKS | grep SofI`" ]; then print_2title "Analyzing PGP-GPG Files (limit 70)" - ((command -v gpg && gpg --list-keys) || echo_not_found "gpg") 2>/dev/null - ((command -v netpgpkeys && netpgpkeys --list-keys) || echo_not_found "netpgpkeys") 2>/dev/null + ( (command -v gpg && gpg --list-keys) || echo_not_found "gpg") 2>/dev/null + ( (command -v netpgpkeys && netpgpkeys --list-keys) || echo_not_found "netpgpkeys") 2>/dev/null (command -v netpgp || echo_not_found "netpgp") 2>/dev/null if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.pgp$\"`" ]; then echo_not_found "*.pgp"; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.pgp$" | while read f; do ls -ld "$f" | sed -${E} "s,\.pgp$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; if ! [ "`echo \"$PSTORAGE_PGP_GPG\" | grep -E \"\.gpg$\"`" ]; then echo_not_found "*.gpg"; fi; printf "%s" "$PSTORAGE_PGP_GPG" | grep -E "\.gpg$" | while read f; do ls -ld "$f" | sed -${E} "s,\.gpg$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; @@ -2512,7 +2809,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) containerd installed print_2title "Checking if containerd(ctr) is available" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/containerd-ctr-privilege-escalation" - containerd=`command -v ctr` + containerd=$(command -v ctr) if [ "$containerd" ]; then echo "ctr was found in $containerd, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," ctr image list @@ -2522,7 +2819,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then ##-- SI) runc installed print_2title "Checking if runc is available" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation/runc-privilege-escalation" - runc=`command -v runc` + runc=$(command -v runc) if [ "$runc" ]; then echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," fi @@ -2541,10 +2838,12 @@ if [ "`echo $CHECKS | grep SofI`" ]; then print_2title "Analyzing Firefox Files (limit 70)" if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"\.mozilla$\"`" ]; then echo_not_found ".mozilla"; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "\.mozilla$" | while read f; do ls -ld "$f" | sed -${E} "s,\.mozilla$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_FIREFOX\" | grep -E \"Firefox$\"`" ]; then echo_not_found "Firefox"; fi; printf "%s" "$PSTORAGE_FIREFOX" | grep -E "Firefox$" | while read f; do ls -ld "$f" | sed -${E} "s,Firefox$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; print_2title "Analyzing Chrome Files (limit 70)" if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"google-chrome$\"`" ]; then echo_not_found "google-chrome"; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "google-chrome$" | while read f; do ls -ld "$f" | sed -${E} "s,google-chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_CHROME\" | grep -E \"Chrome$\"`" ]; then echo_not_found "Chrome"; fi; printf "%s" "$PSTORAGE_CHROME" | grep -E "Chrome$" | while read f; do ls -ld "$f" | sed -${E} "s,Chrome$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; print_2title "Analyzing Autologin Files (limit 70)" @@ -2554,7 +2853,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) S/Key athentication print_2title "S/Key authentication" - if [ "`grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep skey`" ]; then + if grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep -q skey; then printf "System supports$RED S/Key$NC authentication\n" if ! [ -d /etc/skey/ ]; then echo "${GREEN}S/Key authentication enabled, but has not been initialized" @@ -2569,7 +2868,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then #-- SI) YubiKey athentication print_2title "YubiKey authentication" - if [ "`grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep yubikey`" ]; then + if grep auth= /etc/login.conf 2>/dev/null | grep -v \"^#\" | grep -q yubikey; then printf "System supports$RED YubiKey$NC authentication\n" if ! [ "$IAMROOT" ] && [ -w /var/db/yubikey/ ]; then echo "${RED}/var/db/yubikey/ is writable by you" @@ -2623,8 +2922,21 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if ! [ "`echo \"$PSTORAGE_FTP\" | grep -E \"ws_ftp\.ini$\"`" ]; then echo_not_found "ws_ftp.ini"; fi; printf "%s" "$PSTORAGE_FTP" | grep -E "ws_ftp\.ini$" | while read f; do ls -ld "$f" | sed -${E} "s,ws_ftp\.ini$,${SED_RED},"; done; echo ""; - print_2title "Analyzing Bind Files (limit 70)" - if ! [ "`echo \"$PSTORAGE_BIND\" | grep -E \"bind$\"`" ]; then echo_not_found "bind"; fi; printf "%s" "$PSTORAGE_BIND" | grep -E "bind$" | while read f; do ls -ld "$f" | sed -${E} "s,bind$,${SED_RED},"; for ff in $(find "$f" -name "*"); do ls -ld "$ff" | sed -${E} "s,,${SED_RED},"; done; echo "";for ff in $(find "$f" -name "*.key"); do ls -ld "$ff" | sed -${E} "s,.key,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; + print_2title "Analyzing Racoon Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"racoon\.conf$\"`" ]; then echo_not_found "racoon.conf"; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "racoon\.conf$" | while read f; do ls -ld "$f" | sed -${E} "s,racoon\.conf$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,pre_shared_key.*,${SED_RED},g"; done; echo ""; + if ! [ "`echo \"$PSTORAGE_RACOON\" | grep -E \"psk\.txt$\"`" ]; then echo_not_found "psk.txt"; fi; printf "%s" "$PSTORAGE_RACOON" | grep -E "psk\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,psk\.txt$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$" | sed -${E} "s,.*,${SED_RED},g"; done; echo ""; + + + print_2title "Analyzing Opera Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_OPERA\" | grep -E \"com\.operasoftware\.Opera$\"`" ]; then echo_not_found "com.operasoftware.Opera"; fi; printf "%s" "$PSTORAGE_OPERA" | grep -E "com\.operasoftware\.Opera$" | while read f; do ls -ld "$f" | sed -${E} "s,com\.operasoftware\.Opera$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + + + print_2title "Analyzing Safari Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_SAFARI\" | grep -E \"Safari$\"`" ]; then echo_not_found "Safari"; fi; printf "%s" "$PSTORAGE_SAFARI" | grep -E "Safari$" | while read f; do ls -ld "$f" | sed -${E} "s,Safari$,${SED_RED},"; cat "$f" 2>/dev/null | grep -IEv "^$"; done; echo ""; + + + print_2title "Analyzing Bind Files (limit 70)" + if ! [ "`echo \"$PSTORAGE_BIND\" | grep -E \"bind$\"`" ]; then echo_not_found "bind"; fi; printf "%s" "$PSTORAGE_BIND" | grep -E "bind$" | while read f; do ls -ld "$f" | sed -${E} "s,bind$,${SED_RED},"; for ff in $(find "$f" -name "*"); do ls -ld "$ff" | sed -${E} "s,.*,${SED_RED},"; done; echo "";for ff in $(find "$f" -name "*.key"); do ls -ld "$ff" | sed -${E} "s,.key,${SED_RED},"; cat "$ff" 2>/dev/null | grep -IEv "^$" | grep -Ev "^#" | sed -${E} "s,.*,${SED_RED},g"; done; echo "";done; echo ""; print_2title "Analyzing SeedDMS Files (limit 70)" @@ -2688,7 +3000,6 @@ if [ "`echo $CHECKS | grep SofI`" ]; then if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"software\.sav$\"`" ]; then echo_not_found "software.sav"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "software\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,software\.sav$,${SED_RED},"; done; echo ""; if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sysprep\.inf$\"`" ]; then echo_not_found "sysprep.inf"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sysprep\.inf$" | while read f; do ls -ld "$f" | sed -${E} "s,sysprep\.inf$,${SED_RED},"; done; echo ""; if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"sysprep\.xml$\"`" ]; then echo_not_found "sysprep.xml"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "sysprep\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,sysprep\.xml$,${SED_RED},"; done; echo ""; - if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"system$\"`" ]; then echo_not_found "system"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "system$" | while read f; do ls -ld "$f" | sed -${E} "s,system$,${SED_RED},"; done; echo ""; if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"system\.sav$\"`" ]; then echo_not_found "system.sav"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "system\.sav$" | while read f; do ls -ld "$f" | sed -${E} "s,system\.sav$,${SED_RED},"; done; echo ""; if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattend\.txt$\"`" ]; then echo_not_found "unattend.txt"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattend\.txt$" | while read f; do ls -ld "$f" | sed -${E} "s,unattend\.txt$,${SED_RED},"; done; echo ""; if ! [ "`echo \"$PSTORAGE_WINDOWS_FILES\" | grep -E \"unattend\.xml$\"`" ]; then echo_not_found "unattend.xml"; fi; printf "%s" "$PSTORAGE_WINDOWS_FILES" | grep -E "unattend\.xml$" | while read f; do ls -ld "$f" | sed -${E} "s,unattend\.xml$,${SED_RED},"; done; echo ""; @@ -2718,7 +3029,7 @@ if [ "`echo $CHECKS | grep SofI`" ]; then fi -if [ "`echo $CHECKS | grep IntFiles`" ]; then +if echo $CHECKS | grep -q IntFiles; then ########################################### #----------) Interesting files (----------# ########################################### @@ -2733,11 +3044,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$STRACE" ]; then echo_not_found "strace" fi - find / -perm -4000 -type f 2>/dev/null | xargs ls -lahtr | while read s; do + find / -perm -4000 -type f ! -path "/dev/*" 2>/dev/null | while read s; do + s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder - if [ "`echo \"$s\" | grep -E \"^total\"`" ]; then break; fi + if echo "$s" | grep -qE "^total"; then break; fi - sname="`echo \"$s\" | awk '{print $9}'`" + sname="$(echo $s | awk '{print $9}')" if [ "$sname" = "." ] || [ "$sname" = ".." ]; then true #Don't do nothing elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then @@ -2747,28 +3059,28 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then else c="a" for b in $sidB; do - if [ "`echo $s | grep $(echo $b | cut -d % -f 1)`" ]; then + if echo $s | grep -q $(echo $b | cut -d % -f 1); then echo "$s" | sed -${E} "s,$(echo $b | cut -d % -f 1),${C}[1;31m& ---> $(echo $b | cut -d % -f 2)${C}[0m," c="" break; fi done; if [ "$c" ]; then - if [ "`echo \"$s\" | grep -E \"$sidG1\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG2\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG3\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG4\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB2\"`" ]; then + if echo \"$s\" | grep -qE "$sidG1" || echo "$s" | grep -qE "$sidG2" || echo "$s" | grep -qE "$sidG3" || echo "$s" | grep -qE "$sidG4" || echo "$s" | grep -qE "$sidVB" || echo "$s" | grep -qE "$sidVB2"; then echo "$s" | sed -${E} "s,$sidG1,${SED_GREEN}," | sed -${E} "s,$sidG2,${SED_GREEN}," | sed -${E} "s,$sidG3,${SED_GREEN}," | sed -${E} "s,$sidG4,${SED_GREEN}," | sed -${E} "s,$sidVB,${SED_RED_YELLOW}," | sed -${E} "s,$sidVB2,${SED_RED_YELLOW}," else echo "$s (Unknown SUID binary)" | sed -${E} "s,/.*,${SED_RED}," printf $ITALIC if [ "$STRINGS" ]; then $STRINGS "$sname" 2>/dev/null | sort | uniq | while read sline; do - sline_first="`echo \"$sline\" | cut -d ' ' -f1`" - if [ "`echo \"$sline_first\" | grep -Ev \"$cfuncs\"`" ]; then - if [ "`echo \"$sline_first\" | grep \"/\"`" ] && [ -f "$sline_first" ]; then #If a path + sline_first="$(echo \"$sline\" | cut -d ' ' -f1)" + if echo "$sline_first" | grep -qEv "$cfuncs"; then + if echo "$sline_first" | grep -q "/" && [ -f "$sline_first" ]; then #If a path if [ -O "$sline_first" ] || [ -w "$sline_first" ]; then #And modifiable printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is using $RED$sline_first$NC$ITALIC and you can modify it (strings line: $sline) (https://tinyurl.com/suidpath)\n" fi else #If not a path - if [ ${#sline_first} -gt 2 ] && [ "`command -v \"$sline_first\" 2>/dev/null | grep '/' `" ] && [ "`echo \"$sline_first\" | grep -v \"..\" `" ]; then #Check if existing binary + if [ ${#sline_first} -gt 2 ] && command -v "$sline_first" 2>/dev/null | grep -q '/' && echo "$sline_first" | grep -qv ".."; then #Check if existing binary printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is executing $RED$sline_first$NC$ITALIC and you can impersonate it (strings line: $sline) (https://tinyurl.com/suidpath)\n" fi fi @@ -2794,11 +3106,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) SGID print_2title "SGID" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#sudo-and-suid" - find / -perm -2000 -type f 2>/dev/null | xargs ls -lahtr | while read s; do + find / -perm -2000 -type f ! -path "/dev/*" 2>/dev/null | while read s; do + s=$(ls -lahtr "$s") #If starts like "total 332K" then no SUID bin was found and xargs just executed "ls" in the current folder - if [ "`echo \"$s\" | grep -E \"^total\"`" ];then break; fi + if echo "$s" | grep -qE "^total";then break; fi - sname="`echo \"$s\" | awk '{print $9}'`" + sname="$(echo $s | awk '{print $9}')" if [ "$sname" = "." ] || [ "$sname" = ".." ]; then true #Don't do nothing elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then @@ -2808,38 +3121,38 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then else c="a" for b in $sidB; do - if [ "`echo \"$s\" | grep $(echo \"$b\" | cut -d % -f 1)`" ]; then + if echo "$s" | grep -q $(echo \"$b\" | cut -d % -f 1); then echo "$s" | sed -${E} "s,$(echo \"$b\" | cut -d % -f 1),${C}[1;31m& ---> $(echo $b | cut -d % -f 2)${C}[0m," c="" break; fi done; if [ "$c" ]; then - if [ "`echo \"$s\" | grep -E \"$sidG1\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG2\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG3\"`" ] || [ "`echo \"$s\" | grep -E \"$sidG4\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB\"`" ] || [ "`echo \"$s\" | grep -E \"$sidVB2\"`" ]; then + if echo "$s" | grep -qE "$sidG1" || echo "$s" | grep -qE "$sidG2" || echo "$s" | grep -qE "$sidG3" || echo "$s" | grep -qE "$sidG4" || echo "$s" | grep -qE "$sidVB" || echo "$s" | grep -qE "$sidVB2"; then echo "$s" | sed -${E} "s,$sidG1,${SED_GREEN}," | sed -${E} "s,$sidG2,${SED_GREEN}," | sed -${E} "s,$sidG3,${SED_GREEN}," | sed -${E} "s,$sidG4,${SED_GREEN}," | sed -${E} "s,$sidVB,${SED_RED_YELLOW}," | sed -${E} "s,$sidVB2,${SED_RED_YELLOW}," else echo "$s (Unknown SGID binary)" | sed -${E} "s,/.*,${SED_RED}," printf $ITALIC if [ "$STRINGS" ]; then $STRINGS "$sname" | sort | uniq | while read sline; do - sline_first="`echo \"$sline\" | cut -d ' ' -f1`" - if [ "`echo \"$sline_first\" | grep -Ev \"$cfuncs\"`" ]; then - if [ "`echo \"$sline_first\" | grep \"/\"`" ] && [ -f "$sline_first" ]; then #If a path + sline_first="$(echo \"$sline\" | cut -d ' ' -f1)" + if echo "$sline_first" | grep -qEv "$cfuncs"; then + if echo "$sline_first" | grep -q "/" && [ -f "$sline_first" ]; then #If a path if [ -O "$sline_first" ] || [ -w "$sline_first" ]; then #And modifiable printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is using $RED$sline_first$NC$ITALIC and you can modify it (strings line: $sline)\n" fi else #If not a path - if [ ${#sline_first} -gt 2 ] && [ "`command -v \"$sline_first\" 2>/dev/null | grep '/' `" ]; then #Check if existing binary + if [ ${#sline_first} -gt 2 ] && command -v "$sline_first" 2>/dev/null | grep -q '/'; then #Check if existing binary printf "$ITALIC --- It looks like $RED$sname$NC$ITALIC is executing $RED$sline_first$NC$ITALIC and you can impersonate it (strings line: $sline)\n" fi fi fi done if [ "$TIMEOUT" ] && [ "$STRACE" ] && [ ! "$SUPERFAST" ]; then - printf $ITALIC + printf "$ITALIC" echo " --- Trying to execute $sname with strace in order to look for hijackable libraries..." timeout 2 "$STRACE" "$sname" 2>&1 | grep -i -E "open|access|no such file" | sed -${E} "s,open|access|No such file,${SED_RED}$ITALIC,g" - printf $NC + printf "$NC" echo "" fi fi @@ -2855,10 +3168,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then printf $ITALIC"/etc/ld.so.conf\n"$NC; cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" cat /etc/ld.so.conf 2>/dev/null | while read l; do - if [ "`echo \"$l\" | grep include`" ]; then - ini_path="`echo \"$l\" | cut -d " " -f 2`" - fpath="`dirname \"$ini_path\"`" - if [ "`find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if echo "$l" | grep -q include; then + ini_path="$(echo \"$l\" | cut -d " " -f 2)" + fpath="$(dirname \"$ini_path\")" + if [ "$(find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find \"$fpath\" -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi printf $ITALIC"$fpath\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" for f in $fpath/*; do printf $ITALIC" $f\n"$NC | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" @@ -2876,13 +3189,28 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then (cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" echo "" echo "Shell capabilities:" - (capsh --decode=0x"`cat \"/proc/$PPID/status\" 2>/dev/null | grep \"CapEff\" | awk '{print $2}'`" 2>/dev/null) || echo_not_found "capsh" + (capsh --decode=0x"$(cat \"/proc/$PPID/status\" 2>/dev/null | grep \"CapEff\" | awk '{print $2}')" 2>/dev/null) || echo_not_found "capsh" (cat "/proc/$PPID/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$PPID/status" echo "" echo "Files with capabilities (limited to 50):" getcap -r / 2>/dev/null | head -n 50 | while read cb; do - echo "$cb" | sed -${E} "s,$sudocapsB,${SED_RED}," | sed -${E} "s,$capsB,${SED_RED}," - if ! [ "$IAMROOT" ] && [ -w "`echo \"$cb\" | cut -d \" \" -f1`" ]; then + capsVB_vuln="" + + for capVB in $capsVB; do + capname="$(echo $capVB | cut -d ':' -f 1)" + capbins="$(echo $capVB | cut -d ':' -f 2)" + if [ "$(echo $cb | grep -Ei $capname)" ] && [ "$(echo $cb | grep -E $capbins)" ]; then + echo "$cb" | sed -${E} "s,.*,${SED_RED_YELLOW}," + capsVB_vuln="1" + break + fi + done + + if ! [ "$capsVB_vuln" ]; then + echo "$cb" | sed -${E} "s,$capsB,${SED_RED}," + fi + + if ! [ "$IAMROOT" ] && [ -w "$(echo \"$cb\" | cut -d" " -f1)" ]; then echo "$cb is writable" | sed -${E} "s,.*,${SED_RED}," fi done @@ -2892,7 +3220,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_2title "Users with capabilities" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#capabilities" if [ -f "/etc/security/capability.conf" ]; then - grep -v '^#\|none\|^$' /etc/security/capability.conf 2>/dev/null | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + grep -v '^#\|none\|^$' /etc/security/capability.conf 2>/dev/null | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," else echo_not_found "/etc/security/capability.conf" fi echo "" @@ -2900,14 +3228,26 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Files with ACLs print_2title "Files with ACLs (limited to 50)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#acls" - ((getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 50 | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + ( (getfacl -t -s -R -p /bin /etc $HOMESEARCH /opt /sbin /usr /tmp /root 2>/dev/null) || echo_not_found "files with acls in searched folders" ) | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + + if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$(command -v getfacl)" ]; then #Find ACL files in macos (veeeery slow) + ls -RAle / 2>/dev/null | grep -v "group:everyone deny delete" | grep -E -B1 "\d: " | head -n 70 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," + fi echo "" + ##-- IF) Files with ResourceFork + #if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ]; then # TOO SLOW, CHECK IT LATER + # print_2title "Files with ResourceFork" + # print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#resource-forks-or-macos-ads" + # find $HOMESEARCH -type f -exec ls -ld {} \; 2>/dev/null | grep -E ' [x\-]@ ' | awk '{printf $9; printf "\n"}' | xargs -I {} xattr -lv {} | grep "com.apple.ResourceFork" + #fi + #echo "" + ##-- IF) .sh files in PATH print_2title ".sh files in path" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#script-binaries-in-path" echo $PATH | tr ":" "\n" | while read d; do - for f in `find "$d" -name "*.sh" 2>/dev/null`; do + for f in $(find "$d" -name "*.sh" 2>/dev/null); do if ! [ "$IAMROOT" ] && [ -O "$f" ]; then echo "You own the script: $f" | sed -${E} "s,.*,${SED_RED}," elif ! [ "$IAMROOT" ] && [ -w "$f" ]; then #If write permision, win found (no check exploits) @@ -2919,6 +3259,11 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then done echo "" + if [ "$MACPEAS" ]; then + print_2title "Unsigned Applications" + macosNotSigned /System/Applications + fi + ##-- IF) Unexpected folders in / print_2title "Unexpected in root" if [ "$MACPEAS" ]; then @@ -2935,7 +3280,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" if ! [ "$IAMROOT" ] && [ -w "/etc/profile" ]; then echo "You can modify /etc/profile" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/profile.d/" ]; then echo "You have write privileges over /etc/profile.d/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/profile.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/profile.d/ '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/profile.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/profile.d/ '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi fi echo "" @@ -2944,25 +3289,25 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#init-init-d-systemd-and-rc-d" if [ ! "$MACPEAS" ]; then #Those folders don´t exist on a MacOS if ! [ "$IAMROOT" ] && [ -w "/etc/init/" ]; then echo "You have write privileges over /etc/init/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/init/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/init.d/" ]; then echo "You have write privileges over /etc/init.d/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/init.d/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/rc.d/init.d" ]; then echo "You have write privileges over /etc/rc.d/init.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/rc.d/init.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/usr/local/etc/rc.d" ]; then echo "You have write privileges over /usr/local/etc/rc.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /usr/local/etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/rc.d" ]; then echo "You have write privileges over /etc/rc.d" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/rc.d -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/etc/systemd/" ]; then echo "You have write privileges over /etc/systemd/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /etc/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi if ! [ "$IAMROOT" ] && [ -w "/lib/systemd/" ]; then echo "You have write privileges over /lib/systemd/" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if ! [ "$IAMROOT" ] && [ "`find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges over `find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')'`" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if ! [ "$IAMROOT" ] && [ "$(find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges over $(find /lib/systemd/ -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi fi echo "" ##-- IF) Hashes in passwd file print_list "Hashes inside passwd file? ........... " - if [ "`grep -v '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null`" ]; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if grep -qv '^[^:]*:[x\*\!]\|^#\|^$' /etc/passwd /etc/master.passwd /etc/group 2>/dev/null; then grep -v '^[^:]*:[x\*]\|^#\|^$' /etc/passwd /etc/pwd.db /etc/master.passwd /etc/group 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi @@ -2976,16 +3321,24 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Credentials in fstab print_list "Credentials in fstab/mtab? ........... " - if [ "`grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null`" ]; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if grep -qE "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null; then grep -E "(user|username|login|pass|password|pw|credentials)[=:]" /etc/fstab /etc/mtab 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi ##-- IF) Read shadow files print_list "Can I read shadow files? ............. " - if [ "`cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null`" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + if [ "$(cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null)" ]; then cat /etc/shadow /etc/shadow- /etc/shadow~ /etc/gshadow /etc/gshadow- /etc/master.passwd /etc/spwd.db 2>/dev/null | sed -${E} "s,.*,${SED_RED}," else echo_no fi + print_list "Can I read shadow plists? ............ " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -r "$l" ];then echo "$l"; defaults read "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + + print_list "Can I write shadow plists? ........... " + possible_check="" + (for l in /var/db/dslocal/nodes/Default/users/*; do if [ -w "$l" ];then echo "$l"; possible_check="1"; fi; done; if ! [ "$possible_check" ]; then echo_no; fi) 2>/dev/null || echo_no + ##-- IF) Read opasswd file print_list "Can I read opasswd file? ............. " if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" @@ -2995,7 +3348,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) network-scripts print_list "Can I write in network-scripts? ...... " if ! [ "$IAMROOT" ] && [ -w "/etc/sysconfig/network-scripts/" ]; then echo "You have write privileges on /etc/sysconfig/network-scripts/" | sed -${E} "s,.*,${SED_RED_YELLOW}," - elif [ "`find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null`" ]; then echo "You have write privileges on `find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null`" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ "$(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" ]; then echo "You have write privileges on $(find /etc/sysconfig/network-scripts/ '(' -not -type l -and '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' ')' 2>/dev/null)" | sed -${E} "s,.*,${SED_RED_YELLOW}," else echo_no fi @@ -3006,13 +3359,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Root files in home dirs print_2title "Searching root files in home dirs (limit 30)" - (find $HOMESEARCH /Users -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed "s,$USER,${SED_RED},") || echo_not_found + (find $HOMESEARCH /Users -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_RED},") || echo_not_found echo "" ##-- IF) Others files in my dirs if ! [ "$IAMROOT" ]; then print_2title "Searching folders owned by me containing others files on it (limit 100)" - (find / -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${C}[1;96m&${C}[0m," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${C}[1;95m&${C}[0m,g" | sed "s,root,${C}[1;13m&${C}[0m,g" + (find / -type d -user "$USER" ! -path "/proc/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec dirname {} \; 2>/dev/null; done) | sort | uniq | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" echo "" fi @@ -3033,13 +3386,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#logrotate-exploitation" logrotate --version 2>/dev/null || echo_not_found "logrotate" lastWlogFolder="ImPOsSiBleeElastWlogFolder" - logfind=`find / -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 100` + logfind=$(find / -type f -name "*.log" -o -name "*.log.*" 2>/dev/null | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 3){ print line_init; }; if (cont == "3"){print "#)You_can_write_more_log_files_inside_last_directory"}; pre=act}' | head -n 100) printf "%s\n" "$logfind" | while read log; do - if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && [ "`echo \"$log\" | grep -E \"$Wfolders\"`" ]; then #Only print info if something interesting found - if [ "`echo \"$log\" | grep \"You_can_write_more_log_files_inside_last_directory\"`" ]; then printf $ITALIC"$log\n"$NC; - elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "`command -v logrotate 2>/dev/null`" ] && [ "`logrotate --version 2>&1 | grep -E ' 1| 2| 3.1'`" ]; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case + if ! [ "$IAMROOT" ] && [ "$log" ] && [ -w "$log" ] || ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders"; then #Only print info if something interesting found + if echo "$log" | grep -q "You_can_write_more_log_files_inside_last_directory"; then printf $ITALIC"$log\n"$NC; + elif ! [ "$IAMROOT" ] && [ -w "$log" ] && [ "$(command -v logrotate 2>/dev/null)" ] && logrotate --version 2>&1 | grep -qE ' 1| 2| 3.1'; then printf "Writable:$RED $log\n"$NC; #Check vuln version of logrotate is used and print red in that case elif ! [ "$IAMROOT" ] && [ -w "$log" ]; then echo "Writable: $log"; - elif ! [ "$IAMROOT" ] && [ "`echo \"$log\" | grep -E \"$Wfolders\"`" ] && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; + elif ! [ "$IAMROOT" ] && echo "$log" | grep -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; fi fi done @@ -3076,7 +3429,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Backup files print_2title "Backup files (limited 100)" - backs=`find / -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null` + backs=$(find / -type f \( -name "*backup*" -o -name "*\.bak" -o -name "*\.bak\.*" -o -name "*\.bck" -o -name "*\.bck\.*" -o -name "*\.bk" -o -name "*\.bk\.*" -o -name "*\.old" -o -name "*\.old\.*" \) -not -path "/proc/*" 2>/dev/null) printf "%s\n" "$backs" | head -n 100 | while read b ; do if [ -r "$b" ]; then ls -l "$b" | grep -Ev "$notBackup" | grep -Ev "$notExtensions" | sed -${E} "s,backup|bck|\.bak|\.old,${SED_RED},g"; @@ -3085,26 +3438,33 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then echo "" ##-- IF) DB files + if [ "$MACPEAS" ]; then + print_2title "Reading messages database" + sqlite3 $HOME/Library/Messages/chat.db 'select * from message' 2>/dev/null + sqlite3 $HOME/Library/Messages/chat.db 'select * from attachment' 2>/dev/null + sqlite3 $HOME/Library/Messages/chat.db 'select * from deleted_messages' 2>/dev/null + + fi print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" - FILECMD="`command -v file 2>/dev/null`" + FILECMD="$(command -v file 2>/dev/null)" if [ "$PSTORAGE_DATABASE" ]; then printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do if [ "$FILECMD" ]; then - echo "Found: `file \"$f\"`" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; + echo "Found: $(file \"$f\")" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; else echo "Found: $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; fi done SQLITEPYTHON="" printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do - if ([ -r "$f" ] && [ "$FILECMD" ] && [ "`file \"$f\" | grep -i sqlite`" ]) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then #If readable and filecmd and sqlite, or readable and not filecmd + if ([ -r "$f" ] && [ "$FILECMD" ] && file "$f" | grep -qi sqlite) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then #If readable and filecmd and sqlite, or readable and not filecmd printf $GREEN" -> Extracting tables from$NC $f $DG(limit 20)\n"$NC - if [ "`command -v sqlite3 2>/dev/null`" ]; then - tables=`sqlite3 $f ".tables" 2>/dev/null` + if [ "$(command -v sqlite3 2>/dev/null)" ]; then + tables=$(sqlite3 $f ".tables" 2>/dev/null) #printf "$tables\n" | sed "s,user.*\|credential.*,${SED_RED},g" - elif [ "`command -v python 2>/dev/null`" ] || [ "`command -v python3 2>/dev/null`" ]; then - SQLITEPYTHON=`command -v python 2>/dev/null || command -v python3 2>/dev/null` - tables=`$SQLITEPYTHON -c "print('\n'.join([t[0] for t in __import__('sqlite3').connect('$f').cursor().execute('SELECT name FROM sqlite_master WHERE type=\'table\' and tbl_name NOT like \'sqlite_%\';').fetchall()]))" 2>/dev/null` + elif [ "$(command -v python 2>/dev/null)" ] || [ "$(command -v python3 2>/dev/null)" ]; then + SQLITEPYTHON=$(command -v python 2>/dev/null || command -v python3 2>/dev/null) + tables=$($SQLITEPYTHON -c "print('\n'.join([t[0] for t in __import__('sqlite3').connect('$f').cursor().execute('SELECT name FROM sqlite_master WHERE type=\'table\' and tbl_name NOT like \'sqlite_%\';').fetchall()]))" 2>/dev/null) #printf "$tables\n" | sed "s,user.*\|credential.*,${SED_RED},g" else tables="" @@ -3114,13 +3474,13 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then columns="" # Search for credentials inside the table using sqlite3 if [ -z "$SQLITEPYTHON" ]; then - columns=`sqlite3 $f ".schema $t" 2>/dev/null | grep "CREATE TABLE"` + columns=$(sqlite3 $f ".schema $t" 2>/dev/null | grep "CREATE TABLE") # Search for credentials inside the table using python else - columns=`$SQLITEPYTHON -c "print(__import__('sqlite3').connect('$f').cursor().execute('SELECT sql FROM sqlite_master WHERE type!=\'meta\' AND sql NOT NULL AND name =\'$t\';').fetchall()[0][0])" 2>/dev/null` + columns=$($SQLITEPYTHON -c "print(__import__('sqlite3').connect('$f').cursor().execute('SELECT sql FROM sqlite_master WHERE type!=\'meta\' AND sql NOT NULL AND name =\'$t\';').fetchall()[0][0])" 2>/dev/null) fi #Check found columns for interesting fields - INTCOLUMN=`echo "$columns" | grep -i "username\|passw\|credential\|email\|hash\|salt"` + INTCOLUMN=$(echo "$columns" | grep -i "username\|passw\|credential\|email\|hash\|salt") if [ "$INTCOLUMN" ]; then printf ${BLUE}" --> Found interesting column names in$NC $t $DG(output limit 10)\n"$NC | sed -${E} "s,user.*|credential.*,${SED_RED},g" printf "$columns\n" | sed -${E} "s,username|passw|credential|email|hash|salt|$t,${SED_RED},g" @@ -3134,6 +3494,11 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then fi echo "" + if [ "$MACPEAS" ]; then + print_2title "Downloaded Files" + sqlite3 ~/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2 'select LSQuarantineAgentName, LSQuarantineDataURLString, LSQuarantineOriginURLString, date(LSQuarantineTimeStamp + 978307200, "unixepoch") as downloadedDate from LSQuarantineEvent order by LSQuarantineTimeStamp' | sort | grep -Ev "\|\|\|" + fi + ##-- IF) Web files print_2title "Web files?(output limit)" ls -alhR /var/www/ 2>/dev/null | head @@ -3149,7 +3514,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Readable files in /tmp, /var/tmp, bachups print_2title "Readable files inside /tmp, /var/tmp, /private/tmp, /private/var/at/tmp, /private/var/tmp, and backup folders (limit 70)" - filstmpback=`find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70` + filstmpback=$(find /tmp /var/tmp /private/tmp /private/var/at/tmp /private/var/tmp $backup_folders_row -type f 2>/dev/null | head -n 70) printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done echo "" @@ -3158,10 +3523,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then print_2title "Interesting writable files owned by me or writable by everyone (not in Home) (max 500)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" #In the next file, you need to specify type "d" and "f" to avoid fake link files apparently writable by all - obmowbe=`find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500` + obmowbe=$(find / '(' -type f -or -type d ')' '(' '(' -user $USER ')' -or '(' -perm -o=w ')' ')' ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | sort | uniq | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) printf "%s\n" "$obmowbe" | while read entry; do - if [ "`echo \"$entry\" | grep \"You_can_write_even_more_files_inside_last_directory\"`" ]; then printf $ITALIC"$entry\n"$NC; - elif [ "`echo \"$entry\" | grep -E \"$writeVB\"`" ]; then + if echo "$entry" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$entry\n"$NC; + elif echo "$entry" | grep -qE "$writeVB"; then echo "$entry" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," else echo "$entry" | sed -${E} "s,$writeB,${SED_RED}," @@ -3174,12 +3539,12 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$IAMROOT" ]; then print_2title "Interesting GROUP writable files (not in Home) (max 500)" print_info "https://book.hacktricks.xyz/linux-unix/privilege-escalation#writable-files" - for g in `groups`; do - printf " Group "$GREEN"$g:\n"$NC; - iwfbg=`find / '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500` + for g in $(groups); do + printf " Group $GREEN$g:\n$NC"; + iwfbg=$(find / '(' -type f -or -type d ')' -group $g -perm -g=w ! -path "/proc/*" ! -path "/sys/*" ! -path "$HOME/*" 2>/dev/null | grep -Ev "$notExtensions" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (act == pre){(cont += 1)} else {cont=0}; if (cont < 5){ print line_init; } if (cont == "5"){print "#)You_can_write_even_more_files_inside_last_directory\n"}; pre=act }' | head -n500) printf "%s\n" "$iwfbg" | while read entry; do - if [ "`echo \"$entry\" | grep \"You_can_write_even_more_files_inside_last_directory\"`" ]; then printf $ITALIC"$entry\n"$NC; - elif [ "`echo \"$entry\" | grep -E \"$writeVB\"`" ]; then + if echo "$entry" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$entry\n"$NC; + elif echo "$entry" | grep -Eq "$writeVB"; then echo "$entry" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," else echo "$entry" | sed -${E} "s,$writeB,${SED_RED}," @@ -3191,7 +3556,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Passwords in config PHP files print_2title "Searching passwords in config PHP files" - printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiI "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" $c 2>/dev/null | grep -Ev "function|password.*= ?\"\"|password.*= ?''" | sed '/^.\{150\}./d' | sort | uniq | sed -${E} "s,[pP][aA][sS][sS][wW]|[dD][bB]_[pP][aA][sS][sS],${SED_RED},g"; done + printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiI "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" "$c" 2>/dev/null | grep -Ev "function|password.*= ?\"\"|password.*= ?''" | sed '/^.\{150\}./d' | sort | uniq | sed -${E} "s,[pP][aA][sS][sS][wW]|[dD][bB]_[pP][aA][sS][sS],${SED_RED},g"; done echo "" ##-- IF) TTY passwords @@ -3223,7 +3588,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then if ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then ##-- IF) Find possible files with passwords print_2title "Finding passwords inside key folders (limit 70) - only PHP files" - intpwdfiles=`timeout 150 grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" $HOMESEARCH /var/www /usr/local/www/ $backup_folders_row /tmp /etc /root /mnt /Users /private 2>/dev/null` + intpwdfiles=$(timeout 150 grep -RiIE "(pwd|passwd|password|PASSWD|PASSWORD|dbuser|dbpass).*[=:].+|define ?\('(\w*passw|\w*user|\w*datab)" "$HOMESEARCH" /var/www /usr/local/www/ "$backup_folders_row" /tmp /etc /root /mnt /Users /private 2>/dev/null) printf "%s\n" "$intpwdfiles" | grep -I ".php:" | sed '/^.\{150\}./d' | sort | uniq | grep -iIv "linpeas" | head -n 70 | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[dD][eE][fF][iI][nN][eE],${SED_RED},g" echo "" @@ -3239,10 +3604,10 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Find possible conf files with passwords print_2title "Finding possible password in config files" - ppicf=`find $HOMESEARCH /etc /root /tmp /private /Applications -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" 2>/dev/null` + ppicf=$(find "$HOMESEARCH" /etc /root /tmp /private /Applications -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" 2>/dev/null) printf "%s\n" "$ppicf" | while read f; do - if [ "`grep -EiI 'passwd.*|creden.*' \"$f\" 2>/dev/null`" ]; then - echo $ITALIC" $f"$NC + if grep -qEiI 'passwd.*|creden.*' \"$f\" 2>/dev/null; then + echo "$ITALIC $f$NC" grep -EiIo 'passw.*|creden.*' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" fi done @@ -3250,8 +3615,8 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then ##-- IF) Find possible files with usernames print_2title "Finding 'username' string inside key folders (limit 70)" - timeout 150 grep -RiIE "username.*[=:].+" $HOMESEARCH /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" - timeout 150 grep -RiIE "username.*[=:].+" /var/www $backup_folders_row /tmp /etc /root /mnt /private 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" + timeout 150 grep -RiIE "username.*[=:].+" "$HOMESEARCH" /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" + timeout 150 grep -RiIE "username.*[=:].+" /var/www "$backup_folders_row" /tmp /etc /root /mnt /private 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | grep -v "/linpeas" | sort | uniq | head -n 70 | sed -${E} "s,[uU][sS][eE][rR][nN][aA][mM][eE],${SED_RED},g" echo "" ##-- IF) Specific hashes inside files @@ -3265,7 +3630,7 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then regexapr1md5='\$apr1\$[a-zA-Z0-9_/\.]{8}\$[a-zA-Z0-9_/\.]{22}' regexsha512crypt='\$6\$[a-zA-Z0-9_/\.]{16}\$[a-zA-Z0-9_/\.]{86}' regexapachesha='\{SHA\}[0-9a-zA-Z/_=]{10,}' - timeout 150 grep -RIEHo "$regexblowfish|$regexjoomlavbulletin|$regexphpbb3|$regexwp|$regexdrupal|$regexlinuxmd5|$regexapr1md5|$regexsha512crypt|$regexapachesha" /etc $backup_folders_row /tmp /var/tmp /var/www /root $HOMESEARCH /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | head -n 70 | sed "s,:.*,${SED_RED}," + timeout 150 grep -RIEHo "$regexblowfish|$regexjoomlavbulletin|$regexphpbb3|$regexwp|$regexdrupal|$regexlinuxmd5|$regexapr1md5|$regexsha512crypt|$regexapachesha" /etc "$backup_folders_row" /tmp /var/tmp /var/www /root "$HOMESEARCH" /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | head -n 70 | sed "s,:.*,${SED_RED}," echo "" fi @@ -3276,15 +3641,15 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then regexsha1='(^|[^a-zA-Z0-9])[a-fA-F0-9]{40}([^a-zA-Z0-9]|$)' regexsha256='(^|[^a-zA-Z0-9])[a-fA-F0-9]{64}([^a-zA-Z0-9]|$)' regexsha512='(^|[^a-zA-Z0-9])[a-fA-F0-9]{128}([^a-zA-Z0-9]|$)' - timeout 150 grep -RIEHo "$regexmd5|$regexsha1|$regexsha256|$regexsha512" /etc $backup_folders_row /tmp /var/tmp /var/www /root $HOMESEARCH /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | awk -F: '{if (pre != $1){ print $0; }; pre=$1}' | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 2){ print line_init; } if (cont == "2"){print " #)There are more hashes files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 50 | sed "s,:.*,${SED_RED}," | sed "s,There are more hashes files in the previous parent folder,${C}[3m&${C}[0m," + timeout 150 grep -RIEHo "$regexmd5|$regexsha1|$regexsha256|$regexsha512" /etc "$backup_folders_row" /tmp /var/tmp /var/www /root "$HOMESEARCH" /mnt /Users /private /Applications 2>/dev/null | grep -v "/.git/\|/sources/authors/" | grep -Ev "$notExtensions" | grep -Ev "0{20,}" | awk -F: '{if (pre != $1){ print $0; }; pre=$1}' | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 2){ print line_init; } if (cont == "2"){print " #)There are more hashes files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 50 | sed "s,:.*,${SED_RED}," | sed "s,There are more hashes files in the previous parent folder,${C}[3m&${C}[0m," echo "" fi if ! [ "$SUPERFAST" ] && ! [ "$FAST" ]; then ##-- IF) Find URIs with user:password@hoststrings print_2title "Finding URIs with user:password@host inside key folders" - timeout 150 find /var/www $backup_folders_row /tmp /etc /var/log /private/var/log -type f -exec grep -RiIE "://(.+):(.+)@" "{}" \; 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" - timeout 150 grep -RiIE "://(.+):(.+)@" $HOMESEARCH 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" + timeout 150 find /var/www "$backup_folders_row" /tmp /etc /var/log /private/var/log -type f -exec grep -RiIE "://(.+):(.+)@" "{}" \; 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" + timeout 150 grep -RiIE "://(.+):(.+)@" "$HOMESEARCH" 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /mnt 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /root 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" timeout 150 grep -RiIE "://(.+):(.+)@" /Users 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" @@ -3292,4 +3657,4 @@ if [ "`echo $CHECKS | grep IntFiles`" ]; then timeout 150 grep -RiIE "://(.+):(.+)@" /Applications 2>/dev/null | sed '/^.\{150\}./d' | grep -v "#" | sort | uniq | sed -${E} "s,:\/\/(.+):(.+)@,://${C}[1;31m\1:\2${C}[0m@,g" echo "" fi -fi \ No newline at end of file +fi diff --git a/parser/README.md b/parser/README.md new file mode 100644 index 0000000..10546d6 --- /dev/null +++ b/parser/README.md @@ -0,0 +1,78 @@ +# Privilege Escalation Awesome Scripts JSON exporter + +This script allows you to transform the output of linpeas/macpeas/winpeas to JSON. + +```python3 +python3 peass-parser.py +``` + +This script is still in beta version and has been tested only with linpeas output. + +## Format +Basically, **each section has**: + - Infos (URLs or info about the section) + - Text lines (the real text info found in the section, colors included) + - More sections + +There is a **maximun of 3 levels of sections**. + +```json +{ + "
": { + "sections": { + "": { + "sections": {}, + "lines": [ + { + "raw_text": "\u001b[0m\u001b[1;33m[+] \u001b[1;32mnmap\u001b[1;34m is available for network discover & port scanning, you should use it yourself", + "clean_text": "[+] is available for network discover & port scanning, you should use it yourself", + "colors": { + "GREEN": [ + "nmap" + ], + "YELLOW": [ + "[+]" + ] + } + } + ], + "infos": [ + "https://book.hacktricks.xyz/linux-unix/privilege-escalation#kernel-exploits" + ] + }, + "infos": [] +``` + +```json +{ + "System Information": { + "sections": { + "Operative system": { + "sections": {}, + "lines": [ + { + "raw_text": "\u001b[0m\u001b[1;33m[+] \u001b[1;32mnmap\u001b[1;34m is available for network discover & port scanning, you should use it yourself", + "clean_text": "[+] is available for network discover & port scanning, you should use it yourself", + "colors": { + "GREEN": [ + "nmap" + ], + "YELLOW": [ + "[+]" + ] + } + } + ], + "infos": [ + "https://book.hacktricks.xyz/linux-unix/privilege-escalation#kernel-exploits" + ] + }, + "infos": [] +``` + + +There can also be a `` + +# TODO: + +I'm looking for **someone that could create HTML and PDF reports** from this JSON. \ No newline at end of file diff --git a/parser/peass-parser.py b/parser/peass-parser.py new file mode 100755 index 0000000..5c5589e --- /dev/null +++ b/parser/peass-parser.py @@ -0,0 +1,153 @@ +#!/usr/bin/env python3 + +import sys +import re +import json + +# Pattern to identify main section titles +TITLE1_PATTERN = r"════════════════════════════════════╣" +TITLE2_PATTERN = r"╔══════════╣" +TITLE3_PATTERN = r"══╣" +INFO_PATTERN = r"╚ " +TITLE_CHARS = ['═', '╔', '╣', '╚'] + +# Patterns for colors +## The order is important, the first string colored with a color will be the one selected (the same string cannot be colored with different colors) +COLORS = { + "REDYELLOW": [r"\x1b\[1;31;103m"], + "RED": [r"\x1b\[1;31m"], + "GREEN": [r"\x1b\[1;32m"], + "YELLOW": [r"\x1b\[1;33m"], + "BLUE": [r"\x1b\[1;34m"], + "MAGENTA": [r"\x1b\[1;95m", r"\x1b\[1;35m"], + "CYAN": [r"\x1b\[1;36m", r"\x1b\[1;96m"], + "LIGHT_GREY": [r"\x1b\[1;37m"], + "DARKGREY": [r"\x1b\[1;90m"], +} + + +# Final JSON structure +FINAL_JSON = {} + +#Constructing the structure +C_SECTION = FINAL_JSON +C_MAIN_SECTION = FINAL_JSON +C_2_SECTION = FINAL_JSON +C_3_SECTION = FINAL_JSON + + + + +def is_section(line: str, pattern: str) -> bool: + """Returns a boolean + + Checks if line matches the pattern and returns True or False + """ + return line.find(pattern) > -1 + +def get_colors(line: str) -> dict: + """Given a line return the colored strings""" + + colors = {} + for c,regexs in COLORS.items(): + colors[c] = [] + for reg in regexs: + for re_found in re.findall(reg+"(.+?)\x1b|$", line): + re_found = clean_colors(re_found.strip()) + #Avoid having the same color for the same string + if re_found and not any(re_found in values for values in colors.values()): + colors[c].append(re_found) + + if not colors[c]: + del colors[c] + + return colors + +def clean_title(line: str) -> str: + """Given a title clean it""" + for c in TITLE_CHARS: + line = line.replace(c,"") + + line = line.encode("ascii", "ignore").decode() #Remove non ascii chars + line = line.strip() + return line + +def clean_colors(line: str) -> str: + """Given a line clean the colors inside of it""" + + for reg in re.findall(r'\x1b[^ ]+\dm', line): + line = line.replace(reg,"") + + line = line.replace('\x1b',"") #Sometimes that byte stays + line = line.strip() + return line + + +def parse_title(line: str) -> str: + """ Given a title, clean it""" + + return clean_colors(clean_title(line)) + + +def parse_line(line: str): + """Parse the given line adding it to the FINAL_JSON structure""" + + global FINAL_JSON, C_SECTION, C_MAIN_SECTION, C_2_SECTION, C_3_SECTION + + if is_section(line, TITLE1_PATTERN): + title = parse_title(line) + FINAL_JSON[title] = { "sections": {}, "lines": [], "infos": [] } + C_MAIN_SECTION = FINAL_JSON[title] + C_SECTION = C_MAIN_SECTION + + elif is_section(line, TITLE2_PATTERN): + title = parse_title(line) + C_MAIN_SECTION["sections"][title] = { "sections": {}, "lines": [], "infos": [] } + C_2_SECTION = C_MAIN_SECTION["sections"][title] + C_SECTION = C_2_SECTION + + elif is_section(line, TITLE3_PATTERN): + title = parse_title(line) + C_2_SECTION["sections"][title] = { "sections": {}, "lines": [], "infos": [] } + C_3_SECTION = C_2_SECTION["sections"][title] + C_SECTION = C_3_SECTION + + elif is_section(line, INFO_PATTERN): + title = parse_title(line) + C_SECTION["infos"].append(title) + + #If here, then it's text + else: + #If no main section parsed yet, pass + if C_SECTION == {}: + return + + C_SECTION["lines"].append({ + "raw_text": line, + "clean_text": clean_colors(line), + "colors": get_colors(line) + }) + + +def main(): + for line in open(OUTPUT_PATH, 'r').readlines(): + line = line.strip() + if not line or not clean_colors(line): #Remove empty lines or lines just with colors hex + continue + + parse_line(line) + + with open(JSON_PATH, "w") as f: + json.dump(FINAL_JSON, f) + + +# Start execution +if __name__ == "__main__": + try: + OUTPUT_PATH = sys.argv[1] + JSON_PATH = sys.argv[2] + except IndexError as err: + print("Error: Please pass the peas.out file and the path to save the json\n./peas-parser.py ") + sys.exit(1) + + main() diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/any/winPEASany.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/any/winPEASany.exe index 12cd7a1..22d762f 100644 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/any/winPEASany.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/any/winPEASany.exe differ diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x64/winPEASx64.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x64/winPEASx64.exe index 285fd20..0cc0113 100644 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x64/winPEASx64.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x64/winPEASx64.exe differ diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x86/winPEASx86.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x86/winPEASx86.exe index fb89e9c..34b0a49 100644 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x86/winPEASx86.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/Dotfuscated/x86/winPEASx86.exe differ diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASany.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASany.exe index 12cd7a1..22d762f 100755 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASany.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASany.exe differ diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx64.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx64.exe index 285fd20..0cc0113 100755 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx64.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx64.exe differ diff --git a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx86.exe b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx86.exe index fb89e9c..34b0a49 100755 Binary files a/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx86.exe and b/winPEAS/winPEASexe/binaries/Obfuscated Releases/winPEASx86.exe differ diff --git a/winPEAS/winPEASexe/binaries/Release/winPEASany.exe b/winPEAS/winPEASexe/binaries/Release/winPEASany.exe index 8a7d1d9..35ee74a 100755 Binary files a/winPEAS/winPEASexe/binaries/Release/winPEASany.exe and b/winPEAS/winPEASexe/binaries/Release/winPEASany.exe differ diff --git a/winPEAS/winPEASexe/binaries/x64/Release/winPEASx64.exe b/winPEAS/winPEASexe/binaries/x64/Release/winPEASx64.exe index 8aa101e..a407e15 100755 Binary files a/winPEAS/winPEASexe/binaries/x64/Release/winPEASx64.exe and b/winPEAS/winPEASexe/binaries/x64/Release/winPEASx64.exe differ diff --git a/winPEAS/winPEASexe/binaries/x86/Release/winPEASx86.exe b/winPEAS/winPEASexe/binaries/x86/Release/winPEASx86.exe index edbae1e..c74940e 100755 Binary files a/winPEAS/winPEASexe/binaries/x86/Release/winPEASx86.exe and b/winPEAS/winPEASexe/binaries/x86/Release/winPEASx86.exe differ diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs index 8388fb6..89b2c3b 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs @@ -36,7 +36,7 @@ namespace winPEAS.Helpers "Any misuse of this software will not be the responsibility of the author or of any other collaborator. " + "Use it at your own networks and/or with the network owner's permission."; - private static string Version = "v2.0-beta"; + private static string Version = "ng"; ///////////////////////////////// ///////// PRINT THINGS ///////// @@ -87,6 +87,7 @@ namespace winPEAS.Helpers |---------------------------------------------------------------------------| | {3}Become a Patreon{0} : {2}https://www.patreon.com/peass{0} | | {3}Follow on Twitter{0} : {2}@carlospolopm{0} | + | {3}Respect on HTB{0} : {2}SirBroccoli & makikvues{0} | |---------------------------------------------------------------------------| | {1}Thank you!{0} | \---------------------------------------------------------------------------/ @@ -101,7 +102,7 @@ namespace winPEAS.Helpers PrintBanner(); } - Console.WriteLine(YELLOW + " WinPEAS " + GREEN + Version + NOCOLOR + YELLOW + " by @carlospolopm, makikvues(makikvues2[at]gmail[dot]com)" + NOCOLOR); + Console.WriteLine(YELLOW + " WinPEAS" + GREEN + Version + NOCOLOR + YELLOW + " by @carlospolopm, makikvues(makikvues2[at]gmail[dot]com)" + NOCOLOR); PrintMarketingBanner();