FreshRSS

πŸ”’
❌ Secure Planet Training Courses Updated For 2019 - Click Here
There are new available articles, click to refresh the page.
Before yesterdayYour RSS feeds

Oops: DanaBot Malware Devs Infected Their Own PCs

The U.S. government today unsealed criminal charges against 16 individuals accused of operating and selling DanaBot, a prolific strain of information-stealing malware that has been sold on Russian cybercrime forums since 2018. The FBI says a newer version of DanaBot was used for espionage, and that many of the defendants exposed their real-life identities after accidentally infecting their own systems with the malware.

DanaBot’s features, as promoted on its support site. Image: welivesecurity.com.

Initially spotted in May 2018 by researchers at the email security firm Proofpoint, DanaBot is a malware-as-a-service platform that specializes in credential theft and banking fraud.

Today, the U.S. Department of Justice unsealed a criminal complaint and indictment from 2022, which said the FBI identified at least 40 affiliates who were paying between $3,000 and $4,000 a month for access to the information stealer platform.

The government says the malware infected more than 300,000 systems globally, causing estimated losses of more than $50 million. The ringleaders of the DanaBot conspiracy are named as Aleksandr Stepanov, 39, a.k.a. β€œJimmBee,” and Artem Aleksandrovich Kalinkin, 34, a.k.a. β€œOnix”, both of Novosibirsk, Russia. Kalinkin is an IT engineer for the Russian state-owned energy giant Gazprom. His Facebook profile name is β€œMaffiozi.”

According to the FBI, there were at least two major versions of DanaBot; the first was sold between 2018 and June 2020, when the malware stopped being offered on Russian cybercrime forums. The government alleges that the second version of DanaBot β€” emerging in January 2021 β€” was provided to co-conspirators for use in targeting military, diplomatic and non-governmental organization computers in several countries, including the United States, Belarus, the United Kingdom, Germany, and Russia.

β€œUnindicted co-conspirators would use the Espionage Variant to compromise computers around the world and steal sensitive diplomatic communications, credentials, and other data from these targeted victims,” reads a grand jury indictment dated Sept. 20, 2022. β€œThis stolen data included financial transactions by diplomatic staff, correspondence concerning day-to-day diplomatic activity, as well as summaries of a particular country’s interactions with the United States.”

The indictment says the FBI in 2022 seized servers used by the DanaBot authors to control their malware, as well as the servers that stored stolen victim data. The government said the server data also show numerous instances in which the DanaBot defendants infected their own PCs, resulting in their credential data being uploaded to stolen data repositories that were seized by the feds.

β€œIn some cases, such self-infections appeared to be deliberately done in order to test, analyze, or improve the malware,” the criminal complaint reads. β€œIn other cases, the infections seemed to be inadvertent – one of the hazards of committing cybercrime is that criminals will sometimes infect themselves with their own malware by mistake.”

Image: welivesecurity.com

A statement from the DOJ says that as part of today’s operation, agents with the Defense Criminal Investigative Service (DCIS) seized the DanaBot control servers, including dozens of virtual servers hosted in the United States. The government says it is now working with industry partners to notify DanaBot victims and help remediate infections. The statement credits a number of security firms with providing assistance to the government, including ESET, Flashpoint, Google, Intel 471, Lumen, PayPal, Proofpoint, Team CYMRU, and ZScaler.

It’s not unheard of for financially-oriented malicious software to be repurposed for espionage. A variant of the ZeuS Trojan, which was used in countless online banking attacks against companies in the United States and Europe between 2007 and at least 2015, was for a time diverted to espionage tasks by its author.

As detailed in this 2015 story, the author of the ZeuS trojan created a custom version of the malware to serve purely as a spying machine, which scoured infected systems in Ukraine for specific keywords in emails and documents that would likely only be found in classified documents.

The public charging of the 16 DanaBot defendants comes a day after Microsoft joined a slew of tech companies in disrupting the IT infrastructure for another malware-as-a-service offering β€” Lumma Stealer, which is likewise offered to affiliates under tiered subscription prices ranging from $250 to $1,000 per month. Separately, Microsoft filed a civil lawsuit to seize control over 2,300 domain names used by Lumma Stealer and its affiliates.

Further reading:

Danabot: Analyzing a Fallen Empire

ZScaler blog: DanaBot Launches DDoS Attack Against the Ukrainian Ministry of Defense

Flashpoint: Operation Endgame DanaBot Malware

Team CYMRU: Inside DanaBot’s Infrastructure: In Support of Operation Endgame II

March 2022 criminal complaint v. Artem Aleksandrovich Kalinkin

September 2022 grand jury indictment naming the 16 defendants

PANO - Advanced OSINT Investigation Platform Combining Graph Visualization, Timeline Analysis, And AI Assistance To Uncover Hidden Connections In Data

By: Unknown


PANO is a powerful OSINT investigation platform that combines graph visualization, timeline analysis, and AI-powered tools to help you uncover hidden connections and patterns in your data.

Getting Started

  1. Clone the repository: bash git clone https://github.com/ALW1EZ/PANO.git cd PANO

  2. Run the application:

  3. Linux: ./start_pano.sh
  4. Windows: start_pano.bat

The startup script will automatically: - Check for updates - Set up the Python environment - Install dependencies - Launch PANO

In order to use Email Lookup transform You need to login with GHunt first. After starting the pano via starter scripts;

  1. Select venv manually
  2. Linux: source venv/bin/activate
  3. Windows: call venv\Scripts\activate
  4. See how to login here

πŸ’‘ Quick Start Guide

  1. Create Investigation: Start a new investigation or load an existing one
  2. Add Entities: Drag entities from the sidebar onto the graph
  3. Discover Connections: Use transforms to automatically find relationships
  4. Analyze: Use timeline and map views to understand patterns
  5. Save: Export your investigation for later use

πŸ” Features

πŸ•ΈοΈ Core Functionality

  • Interactive Graph Visualization
  • Drag-and-drop entity creation
  • Multiple layout algorithms (Circular, Hierarchical, Radial, Force-Directed)
  • Dynamic relationship mapping
  • Visual node and edge styling

  • Timeline Analysis

  • Chronological event visualization
  • Interactive timeline navigation
  • Event filtering and grouping
  • Temporal relationship analysis

  • Map Integration

  • Geographic data visualization
  • Location-based analysis
  • Interactive mapping features
  • Coordinate plotting and tracking

🎯 Entity Management

  • Supported Entity Types
  • πŸ“§ Email addresses
  • πŸ‘€ Usernames
  • 🌐 Websites
  • πŸ–ΌοΈ Images
  • πŸ“ Locations
  • ⏰ Events
  • πŸ“ Text content
  • πŸ”§ Custom entity types

πŸ”„ Transform System

  • Email Analysis
  • Google account investigation
  • Calendar event extraction
  • Location history analysis
  • Connected services discovery

  • Username Analysis

  • Cross-platform username search
  • Social media profile discovery
  • Platform correlation
  • Web presence analysis

  • Image Analysis

  • Reverse image search
  • Visual content analysis
  • Metadata extraction
  • Related image discovery

πŸ€– AI Integration

  • PANAI
  • Natural language investigation assistant
  • Automated entity extraction and relationship mapping
  • Pattern recognition and anomaly detection
  • Multi-language support
  • Context-aware suggestions
  • Timeline and graph analysis

🧩 Core Components

πŸ“¦ Entities

Entities are the fundamental building blocks of PANO. They represent distinct pieces of information that can be connected and analyzed:

  • Built-in Types
  • πŸ“§ Email: Email addresses with service detection
  • πŸ‘€ Username: Social media and platform usernames
  • 🌐 Website: Web pages with metadata
  • πŸ–ΌοΈ Image: Images with EXIF and analysis
  • πŸ“ Location: Geographic coordinates and addresses
  • ⏰ Event: Time-based occurrences
  • πŸ“ Text: Generic text content

  • Properties System

  • Type-safe property validation
  • Automatic property getters
  • Dynamic property updates
  • Custom property types
  • Metadata support

⚑ Transforms

Transforms are automated operations that process entities to discover new information and relationships:

  • Operation Types
  • πŸ” Discovery: Find new entities from existing ones
  • πŸ”— Correlation: Connect related entities
  • πŸ“Š Analysis: Extract insights from entity data
  • 🌐 OSINT: Gather open-source intelligence
  • πŸ”„ Enrichment: Add data to existing entities

  • Features

  • Async operation support
  • Progress tracking
  • Error handling
  • Rate limiting
  • Result validation

πŸ› οΈ Helpers

Helpers are specialized tools with dedicated UIs for specific investigation tasks:

  • Available Helpers
  • πŸ” Cross-Examination: Analyze statements and testimonies
  • πŸ‘€ Portrait Creator: Generate facial composites
  • πŸ“Έ Media Analyzer: Advanced image processing and analysis
  • πŸ” Base Searcher: Search near places of interest
  • πŸ”„ Translator: Translate text between languages

  • Helper Features

  • Custom Qt interfaces
  • Real-time updates
  • Graph integration
  • Data visualization
  • Export capabilities

πŸ‘₯ Contributing

We welcome contributions! To contribute to PANO:

  1. Fork the repository at https://github.com/ALW1EZ/PANO/
  2. Make your changes in your fork
  3. Test your changes thoroughly
  4. Create a Pull Request to our main branch
  5. In your PR description, include:
  6. What the changes do
  7. Why you made these changes
  8. Any testing you've done
  9. Screenshots if applicable

Note: We use a single main branch for development. All pull requests should be made directly to main.

πŸ“– Development Guide

Click to expand development documentation ### System Requirements - Operating System: Windows or Linux - Python 3.11+ - PySide6 for GUI - Internet connection for online features ### Custom Entities Entities are the core data structures in PANO. Each entity represents a piece of information with specific properties and behaviors. To create a custom entity: 1. Create a new file in the `entities` folder (e.g., `entities/phone_number.py`) 2. Implement your entity class:
from dataclasses import dataclass
from typing import ClassVar, Dict, Any
from .base import Entity

@dataclass
class PhoneNumber(Entity):
name: ClassVar[str] = "Phone Number"
description: ClassVar[str] = "A phone number entity with country code and validation"

def init_properties(self):
"""Initialize phone number properties"""
self.setup_properties({
"number": str,
"country_code": str,
"carrier": str,
"type": str, # mobile, landline, etc.
"verified": bool
})

def update_label(self):
"""Update the display label"""
self.label = self.format_label(["country_code", "number"])
### Custom Transforms Transforms are operations that process entities and generate new insights or relationships. To create a custom transform: 1. Create a new file in the `transforms` folder (e.g., `transforms/phone_lookup.py`) 2. Implement your transform class:
from dataclasses import dataclass
from typing import ClassVar, List
from .base import Transform
from entities.base import Entity
from entities.phone_number import PhoneNumber
from entities.location import Location
from ui.managers.status_manager import StatusManager

@dataclass
class PhoneLookup(Transform):
name: ClassVar[str] = "Phone Number Lookup"
description: ClassVar[str] = "Lookup phone number details and location"
input_types: ClassVar[List[str]] = ["PhoneNumber"]
output_types: ClassVar[List[str]] = ["Location"]

async def run(self, entity: PhoneNumber, graph) -> List[Entity]:
if not isinstance(entity, PhoneNumber):
return []

status = StatusManager.get()
operation_id = status.start_loading("Phone Lookup")

try:
# Your phone number lookup logic here
# Example: query an API for phone number details
location = Location(properties={
"country": "Example Country",
"region": "Example Region",
"carrier": "Example Carrier",
"source": "PhoneLookup transform"
})

return [location]

except Exception as e:
status.set_text(f"Error during phone lookup: {str(e)}")
return []

finally:
status.stop_loading(operation_id)
### Custom Helpers Helpers are specialized tools that provide additional investigation capabilities through a dedicated UI interface. To create a custom helper: 1. Create a new file in the `helpers` folder (e.g., `helpers/data_analyzer.py`) 2. Implement your helper class:
from PySide6.QtWidgets import (
QWidget, QVBoxLayout, QHBoxLayout, QPushButton,
QTextEdit, QLabel, QComboBox
)
from .base import BaseHelper
from qasync import asyncSlot

class DummyHelper(BaseHelper):
"""A dummy helper for testing"""

name = "Dummy Helper"
description = "A dummy helper for testing"

def setup_ui(self):
"""Initialize the helper's user interface"""
# Create input text area
self.input_label = QLabel("Input:")
self.input_text = QTextEdit()
self.input_text.setPlaceholderText("Enter text to process...")
self.input_text.setMinimumHeight(100)

# Create operation selector
operation_layout = QHBoxLayout()
self.operation_label = QLabel("Operation:")
self.operation_combo = QComboBox()
self.operation_combo.addItems(["Uppercase", "Lowercase", "Title Case"])
operation_layout.addWidget(self.operation_label)
operation_layout.addWidget(self.operation_combo)

# Create process button
self.process_btn = QPushButton("Process")
self.process_btn.clicked.connect(self.process_text)

# Create output text area
self.output_label = QLabel("Output:")
self.output_text = QTextEdit()
self.output_text.setReadOnly(True)
self.output_text.setMinimumHeight(100)

# Add widgets to main layout
self.main_layout.addWidget(self.input_label)
self.main_layout.addWidget(self.input_text)
self.main_layout.addLayout(operation_layout)
self.main_layout.addWidget(self.process_btn)
self.main_layout.addWidget(self.output_label)
self.main_layout.addWidget(self.output_text)

# Set dialog size
self.resize(400, 500)

@asyncSlot()
async def process_text(self):
"""Process the input text based on selected operation"""
text = self.input_text.toPlainText()
operation = self.operation_combo.currentText()

if operation == "Uppercase":
result = text.upper()
elif operation == "Lowercase":
result = text.lower()
else: # Title Case
result = text.title()

self.output_text.setPlainText(result)

πŸ“„ License

This project is licensed under the Creative Commons Attribution-NonCommercial (CC BY-NC) License.

You are free to: - βœ… Share: Copy and redistribute the material - βœ… Adapt: Remix, transform, and build upon the material

Under these terms: - ℹ️ Attribution: You must give appropriate credit - 🚫 NonCommercial: No commercial use - πŸ”“ No additional restrictions

πŸ™ Acknowledgments

Special thanks to all library authors and contributors who made this project possible.

πŸ‘¨β€πŸ’» Author

Created by ALW1EZ with AI ❀️



❌