信息收集
发现目标主机只开放了两个端口,其中445端口可能存在匿名登录。
使用smbmap工具匿名登录成功,发现Data和Users目录是可读权限
使用smbclient进行登录,并将相关文件下载分析
下载的文件中,发现了TempUser账户的用户名和密码
漏洞利用
使用这个账户名和密码进行smb登录,发现拥有Secure$目录的权限
使用这个账户登录到data目录后,发现又能访问和下载更多的文件
在其中的RU_config.xml文件中,发现了存在一段加密的字符串。经过base64解密,发现不能解密成功
在NotepadPlusPlus目录中发现了一个config文件,这个文件中发现了一个新的目录\HTB-NEST\Secure$\IT\Carl\
在RU目录上发现了一个C#的项目
在Module1.vb这个文件上发现存在RU_Config.xml这个文件,这个文件包含了用户名和密码信息
根据代码的提示,程序要运行需要RU_Config.xml文件,设置断点,可以看到解密成功的密码
因为目标主机没有开放22端口,所以只能通过SMB服务的Users文件夹中进行flag值提取
用户提权
使用C.Smith账号登录到SMB应用后,发现了一个备份文件的xml,下载分析后发现了一个新的SMB路径
从应用程序的端口上看,这个应用是运行在4386端口的,也就是之前的telnet端口,开启Debug模式并进入C:\Program
Files\HQK这个目录下
进入到LDAP目录中,查看LDAP.conf文件,发现了Administrator用户的加密值
为了更好地分析密码是通过怎样进行加密的,因此需要对HqkLdap.exe这个程序进行代码分析,将其导入到dnSpy程序中进行分析
可以深层次看到代码逻辑是,通过命令行去传递文件中读取配置。因为DS函数涉及到密码的加密方式,因此可以去跟踪一下这个函数的具体实现方法
然后跟踪到RD这个方法上,RD这个方法是将密文还原成明文的形式。对比Utils.vb这个文件,里面的代码实现逻辑是和RD这个方法一致的
因此可以根据这些代码,保留大部分的代码,并别写解密脚本
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
namespace Dec {
class Decryptor {
public static void Main() {
var EncryptedString = "yyEq0Uvvhq2uQOcWG8peLoeRQehqip/fKdeG/kjEVb4=";
var pt = Decrypt(EncryptedString, "667912", "1313Rf99", 3,"1L1SA61493DRV53Z", 256);
Console.WriteLine("Plaintext: " + pt);
}
public static String Decrypt(String cipherText, String passPhrase, String saltValue, int passwordIterations, String initVector,int keySize) {
var initVectorBytes = Encoding.ASCII.GetBytes(initVector);
var saltValueBytes = Encoding.ASCII.GetBytes(saltValue);
var cipherTextBytes = Convert.FromBase64String(cipherText);
var password = new Rfc2898DeriveBytes(passPhrase, saltValueBytes,passwordIterations);
var keyBytes = password.GetBytes(keySize / 8);
var symmetricKey = new AesCryptoServiceProvider();
symmetricKey.Mode = CipherMode.CBC;
var decryptor = symmetricKey.CreateDecryptor(keyBytes, initVectorBytes);
var memoryStream = new MemoryStream(cipherTextBytes);
var cryptoStream = new CryptoStream(memoryStream, decryptor,CryptoStreamMode.Read);
var plainTextBytes = new byte[cipherTextBytes.Length];
var decryptedByteCount = cryptoStream.Read(plainTextBytes, 0,plainTextBytes.Length);
memoryStream.Close();
cryptoStream.Close();
var plainText = Encoding.ASCII.GetString(plainTextBytes, 0,decryptedByteCount);
return plainText;
}
}
}
使用mcs命令生成一个exe文件,命令为mcs decrypt.cs,并运行他获得Administrator的明文值
最后使用psexec.py脚本获得SYSTEM32的权限
641474)]
[外链图片转存中…(img-1MjUM6Zk-1691282641476)]
最后使用psexec.py脚本获得SYSTEM32的权限
[外链图片转存中…(img-CHCTmAce-1691282641477)]
网络安全学习路线
这是一份网络安全从零基础到进阶的学习路线大纲全览,小伙伴们记得点个收藏!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AFPAPB2v-1691282641478)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]编辑
阶段一:基础入门
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tS5LPUJF-1691282641480)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]
网络安全导论
渗透测试基础
网络基础
操作系统基础
Web安全基础
数据库基础
编程基础
CTF基础
该阶段学完即可年薪15w+
阶段二:技术进阶(到了这一步你才算入门)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ADMrDPUJ-1691282641481)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]
弱口令与口令爆破
XSS漏洞
CSRF漏洞
SSRF漏洞
XXE漏洞
SQL注入
任意文件操作漏洞
业务逻辑漏洞
该阶段学完年薪25w+
阶段三:高阶提升
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x4K8nLIy-1691282641482)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]
反序列化漏洞
RCE
综合靶场实操项目
内网渗透
流量分析
日志分析
恶意代码分析
应急响应
实战训练
该阶段学完即可年薪30w+
阶段四:蓝队课程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4nF49nWI-1691282641484)(data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==)]
蓝队基础
蓝队进阶
该部分主攻蓝队的防御,即更容易被大家理解的网络安全工程师。
攻防兼备,年薪收入可以达到40w+
阶段五:面试指南&阶段六:升级内容
需要上述路线图对应的网络安全配套视频、源码以及更多网络安全相关书籍&面试题等内容
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
同学们可以扫描下方二维码获取哦!