Documentation Index
Fetch the complete documentation index at: https://wiki.krkn.tech/llms.txt
Use this file to discover all available pages before exploring further.
Clients, Tags, and Targets
Hook uses a hierarchical organization system to manage phishing campaigns. Clients represent organizations, Tags group related campaigns, and Targets are the individuals being tested.
Hierarchy
Client (Organization)
└── Tag (Campaign Group)
└── Raid (Campaign)
└── Target List
└── Targets (Individuals)
Clients
Clients represent the organizations you’re conducting security testing for.
Create Client
grpcurl -d '{
"client": {
"name": "Acme Corporation"
}
}' helm:61443 hook.ctrl_svc.ControlPlaneService/NewClient
Client Operations
# Get client by ID
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetClientByID
# Get client by name
grpcurl -d '{"name": "Acme Corporation"}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetClientByName
# List all clients
grpcurl helm:61443 hook.ctrl_svc.ControlPlaneService/ListClients
# Update client
grpcurl -d '{"client": {"id": 1, "name": "Acme Corp"}}' \
helm:61443 hook.ctrl_svc.ControlPlaneService/UpdateClient
# Delete client
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/DeleteClient
Client Data Model
message Client {
int64 id = 1;
google.protobuf.Timestamp created_at = 2;
google.protobuf.Timestamp updated_at = 3;
google.protobuf.Timestamp deleted_at = 4;
string name = 5;
}
Tags group related campaigns within a client. Use tags to organize by department, time period, or campaign type.
Create Tag
grpcurl -d '{
"tag": {
"name": "Q4-2024-Finance",
"client_id": 1
}
}' helm:61443 hook.ctrl_svc.ControlPlaneService/NewTag
Tag Operations
# Get tag by ID
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTagByID
# Get tags for client
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTagsForClient
# List all tags
grpcurl helm:61443 hook.ctrl_svc.ControlPlaneService/ListTags
# Update tag
grpcurl -d '{"tag": {"id": 1, "name": "Q4-2024-HR"}}' \
helm:61443 hook.ctrl_svc.ControlPlaneService/UpdateTag
# Delete tag
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/DeleteTag
Target Lists
Target lists are collections of targets for a specific campaign.
Create Target List
grpcurl -d '{
"target_list": {
"name": "Finance Department",
"client_id": 1,
"tag_id": 1
}
}' helm:61443 hook.ctrl_svc.ControlPlaneService/NewTargetList
Target List Operations
# Get target list by ID
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetListByID
# Get target list by client
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetListByClientID
# Get target list by tag
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetListByTagID
# Update target list
grpcurl -d '{"target_list": {"id": 1, "name": "Updated Name"}}' \
helm:61443 hook.ctrl_svc.ControlPlaneService/UpdateTargetList
# Delete target list
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/DeleteTargetList
Targets
Targets are the individuals who will receive phishing emails.
Create Target
grpcurl -d '{
"target": {
"target_list_id": 1,
"email": "john.doe@acme.com",
"first_name": "John",
"last_name": "Doe",
"company": "Acme Corporation",
"position": "Financial Analyst",
"department": "Finance",
"phone": "+1-555-0123"
}
}' helm:61443 hook.ctrl_svc.ControlPlaneService/NewTarget
Target Data Model
message Target {
int64 id = 1;
google.protobuf.Timestamp created_at = 2;
google.protobuf.Timestamp updated_at = 3;
google.protobuf.Timestamp deleted_at = 4;
int64 target_list_id = 5;
string email = 6;
string first_name = 7;
string last_name = 8;
string alias = 9;
string company = 10;
string position = 11;
string department = 12;
string phone = 13;
repeated string tags = 14;
}
Target Operations
# Get target by ID
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetByID
# Get target by email
grpcurl -d '{"email": "john.doe@acme.com"}' \
helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetByEmail
# Get targets for target list
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetsForTargetList
# Get targets for raid
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/GetTargetsForRaid
# Update target
grpcurl -d '{"target": {"id": 1, "position": "Senior Analyst"}}' \
helm:61443 hook.ctrl_svc.ControlPlaneService/UpdateTarget
# Delete target
grpcurl -d '{"id": 1}' helm:61443 hook.ctrl_svc.ControlPlaneService/DeleteTarget
Template Variables
Target fields can be used in lures (email templates):
| Variable | Description |
|---|
{{.FirstName}} | Target’s first name |
{{.LastName}} | Target’s last name |
{{.Email}} | Target’s email address |
{{.Company}} | Target’s company |
{{.Position}} | Target’s job position |
{{.Department}} | Target’s department |
Signatures
Signatures are email signatures associated with clients:
grpcurl -d '{
"signature": {
"client_id": 1,
"signature": "<p>Best regards,<br>IT Security Team</p>"
}
}' helm:61443 hook.ctrl_svc.ControlPlaneService/NewSignature
Next Steps