karnel-termux 4.17.2 → 4.17.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/karnel/RELEASE_COMMIT +1 -1
- package/karnel/tools/ai/cline/install.sh +14 -0
- package/karnel/tools/ai/kimchi-code/install.sh +9 -3
- package/karnel/tools/npm/turbopack/install.sh +11 -0
- package/karnel/tools/security/dnsrecon/install.sh +4 -0
- package/karnel/tools/security/enum4linux/install.sh +4 -0
- package/karnel/tools/security/masscan/install.sh +3 -3
- package/karnel/tools/security/nikto/install.sh +4 -0
- package/karnel/tools/security/sqlmap/install.sh +4 -0
- package/karnel/tools/security/theharvester/install.sh +4 -0
- package/karnel/tools/security/whatweb/install.sh +4 -0
- package/karnel/utils/agent_actions.sh +5 -0
- package/package.json +1 -1
package/karnel/RELEASE_COMMIT
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
5b88c3c7229d293e0e92665c71bcb3501a87ed74
|
|
@@ -83,6 +83,20 @@ _cline_install_global_impl() {
|
|
|
83
83
|
return 1
|
|
84
84
|
fi
|
|
85
85
|
|
|
86
|
+
local expected actual
|
|
87
|
+
expected=$(npm view "@cline/cli-linux-arm64@$version" dist.integrity 2>/dev/null)
|
|
88
|
+
if [[ -z "$expected" ]]; then
|
|
89
|
+
rm -f "$tarball"
|
|
90
|
+
log_error "Falha ao obter a integridade do binário do Cline no registry npm"
|
|
91
|
+
return 1
|
|
92
|
+
fi
|
|
93
|
+
actual=$(node -e 'const c=require("crypto");const h=c.createHash("sha512");h.update(require("fs").readFileSync(process.argv[1]));process.stdout.write("sha512-"+h.digest("base64"))' "$tarball" 2>/dev/null) || actual=""
|
|
94
|
+
if [[ "$actual" != "$expected" ]]; then
|
|
95
|
+
rm -f "$tarball"
|
|
96
|
+
log_error "Integridade do binário do Cline não confere (esperado $expected)"
|
|
97
|
+
return 1
|
|
98
|
+
fi
|
|
99
|
+
|
|
86
100
|
mkdir -p "$CLINE_DATA_DIR"
|
|
87
101
|
: >"$CLINE_DATA_DIR/$CLINE_MARKER"
|
|
88
102
|
if ! tar -xzf "$tarball" -C "$CLINE_DATA_DIR" &>>"$LOG_FILE"; then
|
|
@@ -485,9 +485,15 @@ _update_kimchi_proot_impl() {
|
|
|
485
485
|
|
|
486
486
|
local download_url="https://github.com/getkimchi/kimchi/releases/download/$latest_version/kimchi_linux_arm64.tar.gz"
|
|
487
487
|
|
|
488
|
-
|
|
488
|
+
local expected
|
|
489
|
+
expected=$(github_release_asset_sha256 getkimchi/kimchi "$latest_version" "kimchi_linux_arm64.tar.gz") || expected=""
|
|
490
|
+
if [[ ! "$expected" =~ ^[0-9a-f]{64}$ ]]; then
|
|
491
|
+
log_warn "No published SHA-256 for Kimchi; skipping integrity verification"
|
|
492
|
+
fi
|
|
493
|
+
_kimchi_proot_ubuntu /bin/bash -c '
|
|
489
494
|
mkdir -p /tmp/kimchi-install &&
|
|
490
|
-
curl -fsSL
|
|
495
|
+
curl -fsSL "$1" -o /tmp/kimchi-install/kimchi.tar.gz &&
|
|
496
|
+
{ [ -z "$2" ] || [ "$(sha256sum /tmp/kimchi-install/kimchi.tar.gz | awk "{print \$1}")" = "$2" ]; } &&
|
|
491
497
|
tar -zxf /tmp/kimchi-install/kimchi.tar.gz -C /tmp/kimchi-install &&
|
|
492
498
|
rm -f /usr/local/bin/kimchi &&
|
|
493
499
|
mv /tmp/kimchi-install/bin/kimchi /usr/local/bin/kimchi &&
|
|
@@ -495,7 +501,7 @@ _update_kimchi_proot_impl() {
|
|
|
495
501
|
rm -rf /usr/local/share/kimchi &&
|
|
496
502
|
mv /tmp/kimchi-install/share/kimchi /usr/local/share/kimchi &&
|
|
497
503
|
rm -rf /tmp/kimchi-install
|
|
498
|
-
" &>>"$LOG_FILE"
|
|
504
|
+
' bash "$download_url" "$expected" &>>"$LOG_FILE"
|
|
499
505
|
|
|
500
506
|
local kimchi_bin
|
|
501
507
|
kimchi_bin="$(_kimchi_detect_ubuntu_root)/usr/local/bin/kimchi"
|
|
@@ -39,6 +39,17 @@ _install_deps_impl() {
|
|
|
39
39
|
fi
|
|
40
40
|
done
|
|
41
41
|
|
|
42
|
+
if [[ ! -f "$GLIBC_LIBDIR/ld-linux-aarch64.so.1" ]]; then
|
|
43
|
+
if ! yes | pkg install glibc-repo &>>"$LOG_FILE"; then
|
|
44
|
+
log_error "Failed to install glibc-repo"
|
|
45
|
+
return 1
|
|
46
|
+
fi
|
|
47
|
+
if ! yes | pkg install glibc &>>"$LOG_FILE"; then
|
|
48
|
+
log_error "Failed to install glibc (required by the glibc-linked Node.js)"
|
|
49
|
+
return 1
|
|
50
|
+
fi
|
|
51
|
+
fi
|
|
52
|
+
|
|
42
53
|
return 0
|
|
43
54
|
}
|
|
44
55
|
|
|
@@ -14,6 +14,10 @@ install_dnsrecon() {
|
|
|
14
14
|
log_success "dnsrecon instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o dnsrecon via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_DNSRECON_REPO" "$_DNSRECON_COMMIT" "$_DNSRECON_DIR"; then
|
|
18
22
|
pip install -r "$_DNSRECON_DIR/requirements.txt" 2>/dev/null
|
|
19
23
|
chmod +x "$_DNSRECON_DIR/dnsrecon.py"
|
|
@@ -14,6 +14,10 @@ install_enum4linux() {
|
|
|
14
14
|
log_success "enum4linux instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o enum4linux via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_ENUM4LINUX_REPO" "$_ENUM4LINUX_COMMIT" "$_ENUM4LINUX_DIR"; then
|
|
18
22
|
chmod +x "$_ENUM4LINUX_DIR/enum4linux.pl"
|
|
19
23
|
ln -sf "$_ENUM4LINUX_DIR/enum4linux.pl" "$PREFIX/bin/enum4linux"
|
|
@@ -46,9 +46,9 @@ update_masscan() {
|
|
|
46
46
|
_pinned_git_repo_owned "$_MASSCAN_DIR" "$_MASSCAN_REPO" ||
|
|
47
47
|
{ [ -f "$_MASSCAN_DIR/.karnel-wrapper" ] && _adopt_pinned_git_repo "$_MASSCAN_DIR" "$_MASSCAN_REPO"; } || return 1
|
|
48
48
|
install_pinned_git_repo "$_MASSCAN_REPO" "$_MASSCAN_COMMIT" "$_MASSCAN_DIR" || return 1
|
|
49
|
-
make -C "$_MASSCAN_DIR" -j4 2>/dev/null
|
|
50
|
-
install -m 755 "$_MASSCAN_DIR/bin/masscan" "$PREFIX/bin/masscan"
|
|
51
|
-
sha256sum "$PREFIX/bin/masscan" > "$_MASSCAN_DIR/.karnel-wrapper"
|
|
49
|
+
make -C "$_MASSCAN_DIR" -j4 2>/dev/null || return 1
|
|
50
|
+
install -m 755 "$_MASSCAN_DIR/bin/masscan" "$PREFIX/bin/masscan" || return 1
|
|
51
|
+
sha256sum "$PREFIX/bin/masscan" > "$_MASSCAN_DIR/.karnel-wrapper" || return 1
|
|
52
52
|
log_success "masscan atualizado"
|
|
53
53
|
return 0
|
|
54
54
|
fi
|
|
@@ -14,6 +14,10 @@ install_nikto() {
|
|
|
14
14
|
log_success "nikto instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o nikto via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_NIKTO_REPO" "$_NIKTO_COMMIT" "$_NIKTO_DIR"; then
|
|
18
22
|
ln -sf "$_NIKTO_DIR/program/nikto.pl" "$PREFIX/bin/nikto"
|
|
19
23
|
chmod +x "$PREFIX/bin/nikto"
|
|
@@ -14,6 +14,10 @@ install_sqlmap() {
|
|
|
14
14
|
log_success "sqlmap instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o sqlmap via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_SQLMAP_REPO" "$_SQLMAP_COMMIT" "$_SQLMAP_DIR"; then
|
|
18
22
|
ln -sf "$_SQLMAP_DIR/sqlmap.py" "$PREFIX/bin/sqlmap"
|
|
19
23
|
chmod +x "$PREFIX/bin/sqlmap"
|
|
@@ -14,6 +14,10 @@ install_theharvester() {
|
|
|
14
14
|
log_success "theharvester instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o theharvester via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_THEHARVESTER_REPO" "$_THEHARVESTER_COMMIT" "$_THEHARVESTER_DIR"; then
|
|
18
22
|
pip install -r "$_THEHARVESTER_DIR/requirements/base.txt" 2>/dev/null
|
|
19
23
|
chmod +x "$_THEHARVESTER_DIR/theHarvester.py"
|
|
@@ -14,6 +14,10 @@ install_whatweb() {
|
|
|
14
14
|
log_success "whatweb instalado"
|
|
15
15
|
return 0
|
|
16
16
|
fi
|
|
17
|
+
command -v git >/dev/null 2>&1 || pkg install -y git >/dev/null 2>&1 || {
|
|
18
|
+
log_error "git é necessário para instalar o whatweb via repositório"
|
|
19
|
+
return 1
|
|
20
|
+
}
|
|
17
21
|
if install_pinned_git_repo "$_WHATWEB_REPO" "$_WHATWEB_COMMIT" "$_WHATWEB_DIR"; then
|
|
18
22
|
ln -sf "$_WHATWEB_DIR/whatweb" "$PREFIX/bin/whatweb"
|
|
19
23
|
chmod +x "$PREFIX/bin/whatweb"
|
|
@@ -366,6 +366,11 @@ agent_apply_files() {
|
|
|
366
366
|
d=$(agent_md_dir)
|
|
367
367
|
fm="$d/actions_files_manifest.txt"
|
|
368
368
|
ws="${AGENT_ACTIONS_WORKSPACE:-$PWD}"
|
|
369
|
+
ws="$(realpath -m "$ws" 2>/dev/null)" || ws=""
|
|
370
|
+
if [[ -z "$ws" || "$ws" == "/" ]]; then
|
|
371
|
+
log_error "Recusando aplicar arquivos com workspace '/' (permitiria escrita em qualquer lugar)"
|
|
372
|
+
return 1
|
|
373
|
+
fi
|
|
369
374
|
AGENT_FILES_WRITTEN=0
|
|
370
375
|
shown=0
|
|
371
376
|
# paths attached as action="no-read" are write-protected for this task
|
package/package.json
CHANGED