Compare commits

...

8 Commits

Author SHA1 Message Date
Carlos Polop
10e1786e6d Trigger PR tests after chack-agent fix 2026-02-11 14:12:27 +01:00
chack-agent
e60c50100e Fix CI failures for PR #585 2026-02-11 13:10:57 +00:00
Carlos Polop
8e917c239f Test chack-agent workflows with intentional PR failure 2026-02-11 13:52:44 +01:00
Carlos Polop
143a20f17e Fallback to github.token when CHACK_AGENT_FIXER_TOKEN is unset 2026-02-11 13:39:57 +01:00
Carlos Polop
de542f05a4 Use chack-agent default branch in workflows 2026-02-11 13:32:19 +01:00
Carlos Polop
a10675d58f Migrate Codex workflows to Chack Agent 2026-02-11 13:31:28 +01:00
SirBroccoli
5c110bd4f8 Fix/systemd generated vars ci (#584)
* Fix Systemd module generated vars metadata

* add auto master fix

* f
2026-02-11 11:43:32 +01:00
SirBroccoli
c1bf38a8ab Auto-merge PR #581 (Codex) 2026-02-03 23:34:53 +00:00
10 changed files with 235 additions and 180 deletions

View File

@@ -1,4 +1,4 @@
name: Codex PR Triage name: Chack-Agent PR Triage
on: on:
workflow_run: workflow_run:
@@ -6,7 +6,7 @@ on:
types: [completed] types: [completed]
jobs: jobs:
codex_triage: chack_agent_triage:
if: ${{ github.event.workflow_run.conclusion == 'success' }} if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
permissions: permissions:
@@ -80,15 +80,24 @@ jobs:
${{ steps.gate.outputs.base_ref }} \ ${{ steps.gate.outputs.base_ref }} \
+refs/pull/${{ steps.gate.outputs.pr_number }}/head +refs/pull/${{ steps.gate.outputs.pr_number }}/head
- name: Run Codex - name: Run Chack Agent
id: run_codex id: run_chack
if: ${{ steps.gate.outputs.should_run == 'true' }} if: ${{ steps.gate.outputs.should_run == 'true' }}
uses: openai/codex-action@v1 uses: carlospolop/chack-agent@master
with: with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }} provider: openrouter
output-schema-file: .github/codex/pr-merge-schema.json model_primary: BEST_QUALITY
model: gpt-5.2-codex main_action: peass-ng
prompt: | sub_action: Chack-Agent PR Triage
system_prompt: |
You are Chack Agent, an elite PR reviewer for PEASS-ng.
Be conservative: merge only if changes are simple, safe, and valuable accoding to the uers give guidelines.
If in doubt, comment with clear questions or concerns.
Remember taht you are an autonomouts agent, use the exec tool to run the needed commands to list, read, analyze, modify, test...
tools_config_json: "{\"exec_enabled\": true}"
session_config_json: "{\"long_term_memory_enabled\": false}"
output_schema_file: .github/chack-agent/pr-merge-schema.json
user_prompt: |
You are reviewing PR #${{ steps.gate.outputs.pr_number }} for ${{ github.repository }}. You are reviewing PR #${{ steps.gate.outputs.pr_number }} for ${{ github.repository }}.
Decide whether to merge or comment. Merge only if all of the following are true: Decide whether to merge or comment. Merge only if all of the following are true:
@@ -108,21 +117,23 @@ jobs:
Review ONLY the changes introduced by the PR: Review ONLY the changes introduced by the PR:
git log --oneline ${{ steps.gate.outputs.base_sha }}...${{ steps.gate.outputs.head_sha }} git log --oneline ${{ steps.gate.outputs.base_sha }}...${{ steps.gate.outputs.head_sha }}
Output JSON only, following the provided schema. Output JSON only, following the provided schema:
.github/chack-agent/pr-merge-schema.json
openrouter_api_key: ${{ secrets.OPENROUTER_API_KEY }}
- name: Parse Codex decision - name: Parse Chack Agent decision
id: parse id: parse
if: ${{ steps.gate.outputs.should_run == 'true' }} if: ${{ steps.gate.outputs.should_run == 'true' }}
env: env:
CODEX_MESSAGE: ${{ steps.run_codex.outputs.final-message }} CHACK_MESSAGE: ${{ steps.run_chack.outputs.final-message }}
run: | run: |
python3 - <<'PY' python3 - <<'PY'
import json import json
import os import os
data = json.loads(os.environ.get('CODEX_MESSAGE', '') or '{}') data = json.loads(os.environ.get('CHACK_MESSAGE', '') or '{}')
decision = data.get('decision', 'comment') decision = data.get('decision', 'comment')
message = data.get('message', '').strip() or 'Codex did not provide details.' message = data.get('message', '').strip() or 'Chack Agent did not provide details.'
with open(os.environ['GITHUB_OUTPUT'], 'a') as handle: with open(os.environ['GITHUB_OUTPUT'], 'a') as handle:
handle.write(f"decision={decision}\n") handle.write(f"decision={decision}\n")
handle.write("message<<EOF\n") handle.write("message<<EOF\n")
@@ -132,31 +143,31 @@ jobs:
merge_or_comment: merge_or_comment:
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: codex_triage needs: chack_agent_triage
if: ${{ github.event.workflow_run.conclusion == 'success' && needs.codex_triage.outputs.should_run == 'true' && needs.codex_triage.outputs.decision != '' }} if: ${{ github.event.workflow_run.conclusion == 'success' && needs.chack_agent_triage.outputs.should_run == 'true' && needs.chack_agent_triage.outputs.decision != '' }}
permissions: permissions:
contents: write contents: write
pull-requests: write pull-requests: write
steps: steps:
- name: Merge PR when approved - name: Merge PR when approved
if: ${{ needs.codex_triage.outputs.decision == 'merge' }} if: ${{ needs.chack_agent_triage.outputs.decision == 'merge' }}
env: env:
GH_TOKEN: ${{ github.token }} GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ needs.codex_triage.outputs.pr_number }} PR_NUMBER: ${{ needs.chack_agent_triage.outputs.pr_number }}
run: | run: |
gh api \ gh api \
-X PUT \ -X PUT \
-H "Accept: application/vnd.github+json" \ -H "Accept: application/vnd.github+json" \
/repos/${{ github.repository }}/pulls/${PR_NUMBER}/merge \ /repos/${{ github.repository }}/pulls/${PR_NUMBER}/merge \
-f merge_method=squash \ -f merge_method=squash \
-f commit_title="Auto-merge PR #${PR_NUMBER} (Codex)" -f commit_title="Auto-merge PR #${PR_NUMBER} (Chack Agent)"
- name: Comment with doubts - name: Comment with doubts
if: ${{ needs.codex_triage.outputs.decision == 'comment' }} if: ${{ needs.chack_agent_triage.outputs.decision == 'comment' }}
uses: actions/github-script@v7 uses: actions/github-script@v7
env: env:
PR_NUMBER: ${{ needs.codex_triage.outputs.pr_number }} PR_NUMBER: ${{ needs.chack_agent_triage.outputs.pr_number }}
CODEX_MESSAGE: ${{ needs.codex_triage.outputs.message }} CHACK_MESSAGE: ${{ needs.chack_agent_triage.outputs.message }}
with: with:
github-token: ${{ github.token }} github-token: ${{ github.token }}
script: | script: |
@@ -164,5 +175,5 @@ jobs:
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: Number(process.env.PR_NUMBER), issue_number: Number(process.env.PR_NUMBER),
body: process.env.CODEX_MESSAGE, body: process.env.CHACK_MESSAGE,
}); });

View File

@@ -0,0 +1,165 @@
name: CI-master Failure Chack-Agent PR
on:
workflow_run:
workflows: ["CI-master_test"]
types: [completed]
jobs:
chack_agent_fix_master_failure:
if: >
${{ github.event.workflow_run.conclusion == 'failure' &&
github.event.workflow_run.head_branch == 'master' &&
!startsWith(github.event.workflow_run.head_commit.message, 'Fix CI-master failures for run #') }}
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
actions: read
env:
TARGET_BRANCH: master
FIX_BRANCH: chack-agent/ci-master-fix-${{ github.event.workflow_run.id }}
steps:
- name: Checkout failing commit
uses: actions/checkout@v5
with:
ref: ${{ github.event.workflow_run.head_sha }}
fetch-depth: 0
persist-credentials: true
token: ${{ secrets.CHACK_AGENT_FIXER_TOKEN || github.token }}
- name: Configure git author
run: |
git config user.name "chack-agent"
git config user.email "chack-agent@users.noreply.github.com"
- name: Create fix branch
run: git checkout -b "$FIX_BRANCH"
- name: Fetch failure summary and failed-step logs
env:
GH_TOKEN: ${{ github.token }}
RUN_ID: ${{ github.event.workflow_run.id }}
run: |
failed_logs_file="$(pwd)/chack_failed_steps_logs.txt"
if gh run view "$RUN_ID" --repo "${{ github.repository }}" --log-failed > "$failed_logs_file"; then
if [ ! -s "$failed_logs_file" ]; then
echo "No failed step logs were returned by gh run view --log-failed." > "$failed_logs_file"
fi
else
echo "Failed to download failed step logs with gh run view --log-failed." > "$failed_logs_file"
fi
echo "FAILED_LOGS_PATH=$failed_logs_file" >> "$GITHUB_ENV"
gh api -H "Accept: application/vnd.github+json" \
/repos/${{ github.repository }}/actions/runs/$RUN_ID/jobs \
--paginate > /tmp/jobs.json
python3 - <<'PY'
import json
data = json.load(open('/tmp/jobs.json'))
lines = []
for job in data.get('jobs', []):
if job.get('conclusion') == 'failure':
lines.append(f"Job: {job.get('name')} (id {job.get('id')})")
lines.append(f"URL: {job.get('html_url')}")
for step in job.get('steps', []):
if step.get('conclusion') == 'failure':
lines.append(f" Step: {step.get('name')}")
lines.append("")
summary = "\n".join(lines).strip() or "No failing job details found."
with open('chack_failure_summary.txt', 'w') as handle:
handle.write(summary)
PY
- name: Create Chack Agent prompt
env:
RUN_URL: ${{ github.event.workflow_run.html_url }}
HEAD_SHA: ${{ github.event.workflow_run.head_sha }}
run: |
{
echo "You are fixing a failing CI-master_test run in ${{ github.repository }}."
echo "The failing workflow run is: ${RUN_URL}"
echo "The failing commit SHA is: ${HEAD_SHA}"
echo "The target branch for the final PR is: ${TARGET_BRANCH}"
echo ""
echo "Failure summary:"
cat chack_failure_summary.txt
echo ""
echo "Failed-step logs file absolute path (local runner): ${FAILED_LOGS_PATH}"
echo "Read that file to inspect the exact failing logs."
echo ""
echo "Please identify the cause, apply an easy, simple and minimal fix, and update files accordingly."
echo "Run any fast checks you can locally (no network)."
echo "Leave the repo in a state ready to commit; changes will be committed and pushed automatically."
} > chack_prompt.txt
- name: Run Chack Agent
id: run_chack
uses: carlospolop/chack-agent@master
with:
provider: openrouter
model_primary: BEST_QUALITY
main_action: peass-ng
sub_action: CI-master Failure Chack-Agent PR
system_prompt: |
Diagnose the failing gh actions workflow, propose the minimal and effective safe fix, and implement it.
Run only fast, local checks (no network). Leave the repo ready to commit.
prompt_file: chack_prompt.txt
tools_config_json: "{\"exec_enabled\": true}"
session_config_json: "{\"long_term_memory_enabled\": false}"
openrouter_api_key: ${{ secrets.OPENROUTER_API_KEY }}
- name: Commit and push fix branch if changed
id: push_fix
run: |
if git diff --quiet; then
echo "No changes to commit."
echo "pushed=false" >> "$GITHUB_OUTPUT"
exit 0
fi
rm -f chack_failure_summary.txt chack_prompt.txt chack_failed_steps_logs.txt
git add -A
git reset -- chack_failure_summary.txt chack_prompt.txt chack_failed_steps_logs.txt
git commit -m "Fix CI-master failures for run #${{ github.event.workflow_run.id }}"
git push origin HEAD:"$FIX_BRANCH"
echo "pushed=true" >> "$GITHUB_OUTPUT"
- name: Create PR to master
if: ${{ steps.push_fix.outputs.pushed == 'true' }}
id: create_pr
env:
GH_TOKEN: ${{ secrets.CHACK_AGENT_FIXER_TOKEN || github.token }}
RUN_URL: ${{ github.event.workflow_run.html_url }}
run: |
pr_url=$(gh pr create \
--title "Fix CI-master_test failure (run #${{ github.event.workflow_run.id }})" \
--body "Automated Chack Agent fix for failing CI-master_test run: ${RUN_URL}" \
--base "$TARGET_BRANCH" \
--head "$FIX_BRANCH")
echo "url=$pr_url" >> "$GITHUB_OUTPUT"
- name: Comment on created PR with Chack Agent result
if: ${{ steps.push_fix.outputs.pushed == 'true' && steps.run_chack.outputs.final-message != '' }}
uses: actions/github-script@v7
env:
PR_URL: ${{ steps.create_pr.outputs.url }}
CHACK_MESSAGE: ${{ steps.run_chack.outputs.final-message }}
with:
github-token: ${{ github.token }}
script: |
const prUrl = process.env.PR_URL;
const match = prUrl.match(/\/pull\/(\d+)$/);
if (!match) {
core.info(`Could not parse PR number from URL: ${prUrl}`);
return;
}
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: Number(match[1]),
body: process.env.CHACK_MESSAGE,
});

View File

@@ -1,4 +1,4 @@
name: PR Failure Codex Dispatch name: PR Failure Chack-Agent Dispatch
on: on:
workflow_run: workflow_run:
@@ -41,8 +41,8 @@ jobs:
pr_labels=$(gh api -H "Accept: application/vnd.github+json" \ pr_labels=$(gh api -H "Accept: application/vnd.github+json" \
/repos/${{ github.repository }}/issues/${PR_NUMBER} \ /repos/${{ github.repository }}/issues/${PR_NUMBER} \
--jq '.labels[].name') --jq '.labels[].name')
if echo "$pr_labels" | grep -q "^codex-fix-attempted$"; then if echo "$pr_labels" | grep -q "^chack-agent-fix-attempted$"; then
echo "codex fix already attempted for PR #${PR_NUMBER}; skipping." echo "chack-agent fix already attempted for PR #${PR_NUMBER}; skipping."
should_run=false should_run=false
else else
should_run=true should_run=true
@@ -55,7 +55,7 @@ jobs:
echo "should_run=${should_run}" echo "should_run=${should_run}"
} >> "$GITHUB_OUTPUT" } >> "$GITHUB_OUTPUT"
codex_on_failure: chack_agent_on_failure:
needs: resolve_pr_context needs: resolve_pr_context
if: ${{ needs.resolve_pr_context.outputs.author == 'carlospolop' && needs.resolve_pr_context.outputs.should_run == 'true' }} if: ${{ needs.resolve_pr_context.outputs.author == 'carlospolop' && needs.resolve_pr_context.outputs.should_run == 'true' }}
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -75,7 +75,7 @@ jobs:
github-token: ${{ github.token }} github-token: ${{ github.token }}
script: | script: |
const prNumber = Number(process.env.PR_NUMBER); const prNumber = Number(process.env.PR_NUMBER);
const body = `PR #${prNumber} had a failing workflow "${process.env.WORKFLOW_NAME}".\n\nRun: ${process.env.RUN_URL}\n\nLaunching Codex to attempt a fix.`; const body = `PR #${prNumber} had a failing workflow "${process.env.WORKFLOW_NAME}".\n\nRun: ${process.env.RUN_URL}\n\nLaunching Chack Agent to attempt a fix.`;
await github.rest.issues.createComment({ await github.rest.issues.createComment({
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
@@ -90,7 +90,7 @@ jobs:
run: | run: |
gh api -X POST -H "Accept: application/vnd.github+json" \ gh api -X POST -H "Accept: application/vnd.github+json" \
/repos/${{ github.repository }}/issues/${PR_NUMBER}/labels \ /repos/${{ github.repository }}/issues/${PR_NUMBER}/labels \
-f labels[]=codex-fix-attempted -f labels[]=chack-agent-fix-attempted
- name: Checkout PR head - name: Checkout PR head
uses: actions/checkout@v5 uses: actions/checkout@v5
@@ -99,12 +99,12 @@ jobs:
ref: ${{ github.event.workflow_run.head_sha }} ref: ${{ github.event.workflow_run.head_sha }}
fetch-depth: 0 fetch-depth: 0
persist-credentials: true persist-credentials: true
token: ${{ secrets.CODEX_FIXER_TOKEN }} token: ${{ secrets.CHACK_AGENT_FIXER_TOKEN || github.token }}
- name: Configure git author - name: Configure git author
run: | run: |
git config user.name "codex-action" git config user.name "chack-agent"
git config user.email "codex-action@users.noreply.github.com" git config user.email "chack-agent@users.noreply.github.com"
- name: Fetch failure summary - name: Fetch failure summary
env: env:
@@ -129,11 +129,11 @@ jobs:
lines.append("") lines.append("")
summary = "\n".join(lines).strip() or "No failing job details found." summary = "\n".join(lines).strip() or "No failing job details found."
with open('codex_failure_summary.txt', 'w') as handle: with open('chack_failure_summary.txt', 'w') as handle:
handle.write(summary) handle.write(summary)
PY PY
- name: Create Codex prompt - name: Create Chack Agent prompt
env: env:
PR_NUMBER: ${{ needs.resolve_pr_context.outputs.number }} PR_NUMBER: ${{ needs.resolve_pr_context.outputs.number }}
RUN_URL: ${{ github.event.workflow_run.html_url }} RUN_URL: ${{ github.event.workflow_run.html_url }}
@@ -145,21 +145,29 @@ jobs:
echo "The PR branch is: ${HEAD_BRANCH}" echo "The PR branch is: ${HEAD_BRANCH}"
echo "" echo ""
echo "Failure summary:" echo "Failure summary:"
cat codex_failure_summary.txt cat chack_failure_summary.txt
echo "" echo ""
echo "Please identify the cause, apply a easy, simple and minimal fix, and update files accordingly." echo "Please identify the cause, apply a easy, simple and minimal fix, and update files accordingly."
echo "Run any fast checks you can locally (no network)." echo "Run any fast checks you can locally (no network)."
echo "Leave the repo in a state ready to commit as when you finish, it'll be automatically committed and pushed." echo "Leave the repo in a state ready to commit as when you finish, it'll be automatically committed and pushed."
} > codex_prompt.txt } > chack_prompt.txt
- name: Run Codex - name: Run Chack Agent
id: run_codex id: run_chack
uses: openai/codex-action@v1 uses: carlospolop/chack-agent@master
with: with:
openai-api-key: ${{ secrets.OPENAI_API_KEY }} provider: openrouter
prompt-file: codex_prompt.txt model_primary: BEST_QUALITY
sandbox: workspace-write main_action: peass-ng
model: gpt-5.2-codex sub_action: PR Failure Chack-Agent Dispatch
system_prompt: |
You are Chack Agent, an elite CI-fix engineer.
Diagnose the failing workflow, propose the minimal safe fix, and implement it.
Run only fast, local checks (no network). Leave the repo ready to commit.
prompt_file: chack_prompt.txt
tools_config_json: "{\"exec_enabled\": true}"
session_config_json: "{\"long_term_memory_enabled\": false}"
openrouter_api_key: ${{ secrets.OPENROUTER_API_KEY }}
- name: Commit and push if changed - name: Commit and push if changed
env: env:
@@ -170,18 +178,18 @@ jobs:
echo "No changes to commit." echo "No changes to commit."
exit 0 exit 0
fi fi
rm -f codex_failure_summary.txt codex_prompt.txt rm -f chack_failure_summary.txt chack_prompt.txt
git add -A git add -A
git reset -- codex_failure_summary.txt codex_prompt.txt git reset -- chack_failure_summary.txt chack_prompt.txt
git commit -m "Fix CI failures for PR #${PR_NUMBER}" git commit -m "Fix CI failures for PR #${PR_NUMBER}"
git push origin HEAD:${TARGET_BRANCH} git push origin HEAD:${TARGET_BRANCH}
- name: Comment with Codex result - name: Comment with Chack Agent result
if: ${{ steps.run_codex.outputs.final-message != '' }} if: ${{ steps.run_chack.outputs.final-message != '' }}
uses: actions/github-script@v7 uses: actions/github-script@v7
env: env:
PR_NUMBER: ${{ needs.resolve_pr_context.outputs.number }} PR_NUMBER: ${{ needs.resolve_pr_context.outputs.number }}
CODEX_MESSAGE: ${{ steps.run_codex.outputs.final-message }} CHACK_MESSAGE: ${{ steps.run_chack.outputs.final-message }}
with: with:
github-token: ${{ github.token }} github-token: ${{ github.token }}
script: | script: |
@@ -189,5 +197,5 @@ jobs:
owner: context.repo.owner, owner: context.repo.owner,
repo: context.repo.repo, repo: context.repo.repo,
issue_number: Number(process.env.PR_NUMBER), issue_number: Number(process.env.PR_NUMBER),
body: process.env.CODEX_MESSAGE, body: process.env.CHACK_MESSAGE,
}); });

View File

@@ -53,3 +53,4 @@ if __name__ == "__main__":
exit(1) exit(1)
main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output) main(all_modules, all_no_fat_modules, no_network_scanning, small, include_modules, exclude_modules, output)

View File

@@ -1,39 +0,0 @@
# Title: System Information - Linux Exploit Suggester
# ID: SY_Linux_exploit_suggester
# Author: Carlos Polop
# Last Update: 07-03-2024
# Description: Execute Linux Exploit Suggester to identify potential kernel exploits:
# - Automated kernel vulnerability detection
# - Common vulnerable scenarios:
# * Known kernel vulnerabilities
# * Unpatched kernel versions
# * Missing security patches
# - Exploitation methods:
# * Kernel exploit execution: Use suggested exploits
# * Common attack vectors:
# - Kernel memory corruption
# - Race conditions
# - Use-after-free
# - Integer overflow
# * Exploit techniques:
# - Kernel memory manipulation
# - Privilege escalation
# - Root access acquisition
# - System compromise
# 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

View File

@@ -1,41 +0,0 @@
# Title: System Information - Linux Exploit Suggester 2
# ID: SY_Linux_exploit_suggester_2
# Author: Carlos Polop
# Last Update: 07-03-2024
# Description: Execute Linux Exploit Suggester 2 (Perl version) to identify potential kernel exploits:
# - Alternative kernel vulnerability detection
# - Perl-based exploit suggestions
# - Common vulnerable scenarios:
# * Known kernel vulnerabilities
# * Unpatched kernel versions
# * Missing security patches
# * Alternative exploit paths
# - Exploitation methods:
# * Kernel exploit execution: Use suggested exploits
# * Common attack vectors:
# - Kernel memory corruption
# - Race conditions
# - Use-after-free
# - Integer overflow
# * Exploit techniques:
# - Kernel memory manipulation
# - Privilege escalation
# - Root access acquisition
# - System compromise
# 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

View File

@@ -1,20 +0,0 @@
# 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

View File

@@ -17,7 +17,7 @@
# Functions Used: print_2title, print_list, echo_not_found # Functions Used: print_2title, print_list, echo_not_found
# Global Variables: $SEARCH_IN_FOLDER, $Wfolders, $SED_RED, $SED_RED_YELLOW, $NC # Global Variables: $SEARCH_IN_FOLDER, $Wfolders, $SED_RED, $SED_RED_YELLOW, $NC
# Initial Functions: # Initial Functions:
# Generated Global Variables: $WRITABLESYSTEMDPATH, $line, $service, $file, $version, $user, $caps, $path, $path_line, $service_file, $exec_line, $cmd # Generated Global Variables: $WRITABLESYSTEMDPATH, $line, $service, $file, $version, $user, $caps, $path, $path_line, $service_file, $exec_line, $exec_value, $cmd, $cmd_path
# Fat linpeas: 0 # Fat linpeas: 0
# Small linpeas: 1 # Small linpeas: 1

View File

@@ -1,30 +0,0 @@
# 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