wormclaude 1.0.193 → 1.0.194
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/dist/commands.js +2 -0
- package/dist/pentest.js +2 -2
- package/dist/theme.js +1 -1
- package/dist/tools.js +4 -3
- package/dist/tui.js +22 -0
- package/package.json +1 -1
package/dist/commands.js
CHANGED
|
@@ -62,6 +62,8 @@ export const COMMANDS = [
|
|
|
62
62
|
{ name: '/fullscan', desc: '[seviye 3+] tam kapsamlı DETERMİNİSTİK tarama: recon+XSS+SQLi tek komutta: /fullscan <hedef>' },
|
|
63
63
|
{ name: '/audit', desc: 'kaynak kod güvenlik denetimi (SAST — sır/açık/CVE, yerel): /audit [klasör]' },
|
|
64
64
|
{ name: '/jwt', desc: 'JWT token güvenlik analizi (alg=none/zayıf-secret/expiry/claim, yerel): /jwt <token>' },
|
|
65
|
+
{ name: '/spray', desc: 'login formuna parola-spray (yetkili test, trust 3+): /spray <login-url> [kullanıcı]' },
|
|
66
|
+
{ name: '/defaultcreds', desc: 'login\'e varsayılan kimlik denemesi (admin/admin vb, trust 3+): /defaultcreds <login-url>' },
|
|
65
67
|
{ name: '/exploit', desc: 'yetkili testte doğrulanmış PoC üret: /exploit <cve|açıklama>' },
|
|
66
68
|
{ name: '/harden', desc: 'savunma çıktısı üret (YARA/Sigma + yama önerisi): /harden <hedef|tehdit>' },
|
|
67
69
|
{ name: '/phish', desc: '[yetkili] phishing simülasyonu: pretext + e-posta şablonu: /phish <hedef|senaryo>' },
|
package/dist/pentest.js
CHANGED
|
@@ -243,10 +243,10 @@ async function execReq(req, allowed, auth) {
|
|
|
243
243
|
}
|
|
244
244
|
}
|
|
245
245
|
// Tam akış: plan al → her round'da istekleri yerelde at → /exec ile analiz ettir → done'a dek döngü.
|
|
246
|
-
export async function runPentest(config, tool, target, scopeAck, log, auth) {
|
|
246
|
+
export async function runPentest(config, tool, target, scopeAck, log, auth, extra) {
|
|
247
247
|
const _authed = !!(auth && (auth.cookie || auth.authHeader || auth.headers));
|
|
248
248
|
// authenticated: SUNUCUYA SADECE BAYRAK gider (login-arkası crawl/POST planlasın diye) — sır/cookie DEĞİL.
|
|
249
|
-
const plan = await postJson(config, '/pentest/plan', { tool, target, scope_ack: scopeAck, authenticated: _authed }, 15000);
|
|
249
|
+
const plan = await postJson(config, '/pentest/plan', { tool, target, scope_ack: scopeAck, authenticated: _authed, extra: extra || undefined }, 15000);
|
|
250
250
|
if (!plan.ok)
|
|
251
251
|
return { ok: false, reason: plan.reason, plan };
|
|
252
252
|
const allowed = new Set((plan.allowed_hosts || [plan.host || '']).map((x) => x.toLowerCase()));
|
package/dist/theme.js
CHANGED
package/dist/tools.js
CHANGED
|
@@ -230,7 +230,7 @@ export const toolSchemas = [
|
|
|
230
230
|
parameters: {
|
|
231
231
|
type: 'object',
|
|
232
232
|
properties: {
|
|
233
|
-
tool: { type: 'string', enum: ['full', 'recon', 'scan', 'xss', 'sqli', 'dirscan', 'idor', 'portscan', 'osint', 'cloudscan'], description: 'full → tam kapsamlı web taraması; recon/scan/dirscan/portscan/osint/cloudscan → domain/host/şirket; xss/sqli/idor → parameterized URL. portscan = TCP port/servis. osint = DNS + e-posta güvenliği (SPF/DMARC). cloudscan = açık bulut bucket keşfi (S3/GCP/Azure
|
|
233
|
+
tool: { type: 'string', enum: ['full', 'recon', 'scan', 'xss', 'sqli', 'dirscan', 'idor', 'portscan', 'osint', 'cloudscan', 'spray', 'defaultcreds'], description: 'full → tam kapsamlı web taraması; recon/scan/dirscan/portscan/osint/cloudscan → domain/host/şirket; xss/sqli/idor → parameterized URL. portscan = TCP port/servis. osint = DNS + e-posta güvenliği (SPF/DMARC). cloudscan = açık bulut bucket keşfi (S3/GCP/Azure). spray = login formuna parola-spray (target = login URL, username param ile; "parola dene"/"spray"/"brute" denince, trust 3+). defaultcreds = login\'e varsayılan kimlikler (admin/admin vb.) dene (target = login URL, trust 3+)' },
|
|
234
234
|
target: { type: 'string', description: 'Domain for recon/scan/dirscan (example.com) OR parameterized URL for xss/sqli (https://example.com/p?id=1)' },
|
|
235
235
|
cookie: { type: 'string', description: 'Optional. Session cookie for AUTHENTICATED / behind-login scanning, e.g. "sessionid=abc123; csrftoken=xyz". The user copies it from their logged-in browser (DevTools → Application → Cookies, or the Cookie request header). Sent only to the target from the user IP — never stored on the server. Provide it whenever the user wants to scan pages behind a login.' },
|
|
236
236
|
auth_header: { type: 'string', description: 'Optional. Authorization header value for token-based authenticated scanning, e.g. "Bearer eyJhbGci..." or "Basic dXNlcjpwYXNz". Use instead of / together with cookie when the site authenticates via a token header.' },
|
|
@@ -767,7 +767,7 @@ async function execOne(call, hooks) {
|
|
|
767
767
|
if (call.name === 'SecurityScan') {
|
|
768
768
|
let tool = String(args?.tool || '').toLowerCase().trim();
|
|
769
769
|
const target = String(args?.target || '').trim();
|
|
770
|
-
if (!['recon', 'scan', 'xss', 'sqli', 'dirscan', 'idor', 'portscan', 'osint', 'cloud', 'cloudscan', 'full', 'fullscan'].includes(tool) || !target) {
|
|
770
|
+
if (!['recon', 'scan', 'xss', 'sqli', 'dirscan', 'idor', 'portscan', 'osint', 'cloud', 'cloudscan', 'spray', 'credspray', 'defaultcreds', 'full', 'fullscan'].includes(tool) || !target) {
|
|
771
771
|
return { ok: false, output: 'SecurityScan: tool (recon|scan|xss|sqli|dirscan|full) ve target gerekli.', args };
|
|
772
772
|
}
|
|
773
773
|
if (tool === 'scan')
|
|
@@ -921,7 +921,8 @@ async function execOne(call, hooks) {
|
|
|
921
921
|
}
|
|
922
922
|
try {
|
|
923
923
|
const { runPentest } = await import('./pentest.js');
|
|
924
|
-
const
|
|
924
|
+
const _extra = ['spray', 'credspray', 'defaultcreds'].includes(tool) ? { username: _username || 'admin' } : undefined;
|
|
925
|
+
const out = await runPentest(cfg(), tool, target, true, () => { }, _auth, _extra);
|
|
925
926
|
if (!out?.ok) {
|
|
926
927
|
const reason = out?.reason || out?.plan?.reason || 'error';
|
|
927
928
|
const tip = reason === 'trust_required' ? ' (Doğrulanmış Araştırmacı / seviye 3+ gerekir: /dogrula)'
|
package/dist/tui.js
CHANGED
|
@@ -852,6 +852,28 @@ export async function runTui() {
|
|
|
852
852
|
runTurn(`JwtAudit aracıyla şu JWT'yi güvenlik için analiz et: ${a}. Bulguları severity-sıralı özetle.`, v);
|
|
853
853
|
return;
|
|
854
854
|
}
|
|
855
|
+
// /spray — login formuna parola-spray (yetkili test); modele SecurityScan tool=spray çağırt
|
|
856
|
+
if (tok === '/spray') {
|
|
857
|
+
const rest = v.slice(tok.length).trim().split(/\s+/);
|
|
858
|
+
const url = rest[0] || '';
|
|
859
|
+
const usr = rest[1] || 'admin';
|
|
860
|
+
if (!url) {
|
|
861
|
+
printItem({ kind: 'note', text: 'Kullanım: /spray <login-url> [kullanıcı]' });
|
|
862
|
+
return;
|
|
863
|
+
}
|
|
864
|
+
runTurn(`SecurityScan aracıyla tool=spray, target=${url}, username=${usr} çalıştır (yetkili parola-spray testi). Sonucu özetle.`, v);
|
|
865
|
+
return;
|
|
866
|
+
}
|
|
867
|
+
// /defaultcreds — login'e varsayılan kimlik denemesi
|
|
868
|
+
if (tok === '/defaultcreds') {
|
|
869
|
+
const a = v.slice(tok.length).trim();
|
|
870
|
+
if (!a) {
|
|
871
|
+
printItem({ kind: 'note', text: 'Kullanım: /defaultcreds <login-url>' });
|
|
872
|
+
return;
|
|
873
|
+
}
|
|
874
|
+
runTurn(`SecurityScan aracıyla tool=defaultcreds, target=${a} çalıştır (varsayılan kimlik denemesi). Sonucu özetle.`, v);
|
|
875
|
+
return;
|
|
876
|
+
}
|
|
855
877
|
// /exploit · /harden — aktif tarama değil, model-üretim (PoC / YARA-Sigma) → çerçeveli istemle modele
|
|
856
878
|
if (tok === '/exploit') {
|
|
857
879
|
const a = v.slice(tok.length).trim();
|