首先介绍此次渗透的环境:假设我们现在已经渗透了一台服务器PAVMSEF21,该服务器内网IP为10.51.0.21。扫描后发现内网 *** 结构大概如图所示,其中PAVMSEF21是连接外网和内网的关键节点,内网其他服务器均不能直接连接。
我们的渗透目标是通过一个普通的WebShell权限一步步地获得域管权限,从而掌控整个内网。
上传免杀的Payload到机器名为PAVMSEF21、IP为10.51.0.21的服务器上,然后在“中国菜刀”或者WebShell下运行,如图所示。
获得Meterpreter Shell后要做的之一件事情就是提权。通常,在渗透过程中很有可能只获得了一个系统的Guest或User权限。低的权限级别将使我们受到很多的限制,所以必须将访问权限从Guset提升到User,再到Administrator,最后到SYSTEM级别。
我们先尝试利用本地溢出漏洞提权,即使用本地漏洞的利用程序(Local Exploit)提升权限。也就是说,通过运行一些现成的、能造成溢出漏洞的Exploit,把用户从User组或其他系统用户组提升到Administrator组(或root)。
此时,我们获取的权限是一个普通域用户权限,如图所示。
首先利用本地溢出漏洞提权,发现服务器补丁打得很全,尝试利用MS1505、MS15078等,都以失败告终,如图所示。
再尝试绕过Windows账户控制(UAC),我们现在具有一个普通域用户的权限。利用Bypass UAC模块提权,又以失败告终,如果成功会返回一个新的Meterpreter Shell,如图所示。
使用Bypass UAC模块进行提权时,系统当前用户必须在管理员组,而且用户账户控制程序UAC设置为默认,即“仅在程序试图更改我的计算机时通知我”,而且Bypass UAC模块运行时会因为在目标机上创建多个文件而被杀毒软件识别。我们没能绕过UAC,可能是这两个原因。
其实提权没有成功也不要紧,我们还是可以以此服务器为跳板,攻击其他服务器的。
我们此时虽然提权不成功,但还是可以进行域渗透测试的。有了内网的之一台机器的权限后,收集信息是很关键的一步,也是内网渗透中不可或缺的一部分。
首先要查看当前机器的 *** 环境,收集域里的相关信息,包括所有的用户、所有的计算机,以及相关关键组的信息,下面列出了常用的命令及其作用,如图所示。
net user /domain:查看域用户。
net view /domain:查看有几个域。
net view /domain:XXX:查看域内的主机。
net group /domain:查看域里面的组。
net group “domain computers” /domain:查看域内所有的主机名。
net group “domain admins” /domain:查看域管理员。
net group “domain controllers” /domain:查看域控制器。
net group “enterprise admins” /domain:查看企业管理组。
nettime/domain:查看时间服务器。
通过收集以上信息,我们可以分析出很多重要的线索,例如内网是怎么划分的,各机器名的命名规则,根据机器名尝试找出重要人物的计算机,以及目标机是否为多层域结构,关键是要探测出域管理员的名字和域服务器的名字等信息。
我们的目标是域服务器,此时有两种情况:当前服务器可以直接攻击域服务器和不可以直接攻击域服务器。不可以直接攻击又分为两种情况:如果是权限不够就需要提升权限;如果是不能连接到域服务器,则需要攻击内网中某个可以连接到域服务器的服务器,然后以此为跳板再攻击域服务器。
现在因为权限问题不可以直接攻击域服务器,整理下思路,可以采取以下 *** 继续渗透。
— 使用Meterpreter目前拥有的权限添加内网路由,进行弱口令扫描。
— 使用PowerShell对内网进行扫描(要求目标机是Windows 7以上的服务器)。
— 架设Socks4a,然后Socks会自动进行内网扫描。
— 利用当前权限进行内网IPC$渗透。
— 其他 *** 。
通过上面的分析,我们先选择最简单的 *** ,在net view的机器名里选择一个和我们机器名相似的服务器来试试,不出意外的话,成功率很高,如图所示。
下面再给读者温习下经典的IPC$入侵。
IPC$入侵,即通过使用Windows系统中默认启动的IPC$共享获得计算机控制权的入侵,在内网中极其常见。
假设现在有一台IPC$主机:127.0.0.25,输入以下命令。
D:>net use 127.0.0.25ipc$ #连接127.0.0.25的IPC$共享
D:>copy srv.exe 127.0.0.25ipc$ #复制srv.exe上去
D:>net time 127.0.0.25 #查时间
D:>at127.0.0.25 10:50 srv.exe #用at命令在10点50分启动srv.exe(注意这里设置的时间要比主机时间快)
上述命令中的at就是让计算机在指定的时间做指定事情的命令(例如运行程序)。
这里把免杀的Payload上传到PAVMSEP131服务器,然后利用at命令启动Payload,反弹回Meterpreter Shell,具体操作如图所示。
将木马复制到目标服务器
查看系统时间
使用at命令启动木马
接着返回handler监听,可以看到反弹成功了,我们获得了PAVMSEP131服务器的Meterpreter Shell,如图所示。
我们先看看PAVMSEP131服务器的信息和现在的权限,如图所示。
可以看到没有SYSTEM权限,说明既可以用Mimikatz等工具,也可以用run post/windows/gather/hashdump来抓Hash。
我们在用Mimikatz抓Hash之前要注意一点:如果服务器安装的是64位操作系统,要把Mimikatz进程迁移到一个64位的程序进程中,才能查看64位系统的密码明文,32位系统没有这个限制。
这里使用Mimikatz抓Hash,具体操作如图所示。
接着查看抓到的域用户的权限,如图所示。
Windows PowerShell是一种命令行外壳程序和脚本环境,使命令行用户和脚本编写者可以利用.NET Framework的强大功能。PowerShell还允许将几个命令组合起来放到文件里执行,实现文件级的重用,也就是说有脚本的性质。
将Hunter模块上传到主机名为PAVMSEP131,IP为10.51.0.131的服务器中,然后输入Invoke-UserHunter,如图所示。
具体命令如下所示。
powershell.exe -exec bypass -Command "&{Import-Module .powerview.ps1;Invoke-UserHunter}"`
可以看到域管理员当前在线登录的机器主机名为PAVMSXD30,IP为10.51.0.30,此时需要入侵此服务器,然后将其迁移到域管理登录所在的进程,这样便拥有了域管理的权限。
利用获取到的HASH,我们成功地获取到主机名PAVMSXD30,IP为10.51.0.30的服务器权限,接下来就可以渗透域控了。
首先利用getsystem命令提升权限,如图所示。
可以看到我们现在的UID是sonicwall,从前面获取的域管理员账号信息中已知sonicwall是域管理员。
然后利用ps命令找到域管理所在的进程,把Meterpreter Shell进程迁移到此进程中,成功后就获得了域管理权限,如图所示。
这里除了迁移进程外,也可以使用Metasploit中的窃取令牌功能,同样能获得获得域管理权限。
接着查看主域控IP,这里使用net time命令,一般来说时间服务器都是域服务器,如图所示。
可以看到域服务器的主机名为PAVMSAD64,IP地址为10.51.0.63。
现在我们可以使用经典的IPC$入侵来反弹一个Meterpreter Shell,具体操作如图所示。
提示at命令已经被弃用,现在使用schtasks添加计划任务,因为目标机的系统是Windows 2012。因为现在已经在域管理员权限下面了,所以要给域控添加一个管理员账户,如图所示。
利用如下命令确认账户是否添加成功,如图所示。
可以看到我们已经成功添加了管理员账户。
现在域控的权限也终于到手了。接下来就要登陆域控,然后抓域控的Hash。
整理下思路,常见的登录域控的方式有以下几种。
1.利用IPC上传AT&Schtasks远程执行命令。
2.利用端口转发或者Socks登录域控远程桌面。
3.登录对方内网的一台电脑使用pstools工具包中的PsExec来反弹Shell。
4.使用Metasploit下的psexec, psexec_psh;Impacket psexec;pth-winexe;Empire Invoke-Psexec等PsExec类工具反弹shell。
5.使用Metasploit下的 *** b_login来反弹Meterpreter。
6.使用WMI(Windows Management Instrumentation)来进行攻击。
7.使用PsRemoting posershel远程执行命令。其他一些 *** 。
这里采用最常见也是效果更好的,Metasploit下的PsExec来反弹Meterpreter,使用时注意以下这两点,如图所示。
— MSF中的PsExec模块。
— cuestom模块,建议使用类似Veil之类的工具来生成免杀的Payload。
这里采用最常见也是效果更好的方式——Metasploit下的PsExec来反弹Meterpreter,使用时注意以下两点,如图所示。
— MSF中的PsExec模块。
— cuestom模块,建议使用类似Veil之类的工具生成免杀的Payload。
可以看到已经反弹成功了,然后先迁移进程,查看域控的系统信息和sessions控制图,如图所示。
思路:可以看到现阶段控制的session共有5个。session1为WebShell反弹,session2利用ipc$入侵,渗透session4是为了获取域管在线服务器,session5为域。整个渗透过程一环套一环,环环相扣。
有了域控的权限,接着来抓Hash,常用 *** 有以下几种。
— 使用Metasploit自带的dumphash或者 *** art_hashdump模块导出用户的Hash。
— 利用PowerShell的相应模块导出Hash。
— 使用WCE、Mimikatz等工具。
— 其他 *** 。
这里使用了Metasploit自带的dumphash模块。需要注意:要想使用此模块导出Hash,必须要有SYSTEM的权限才行,具体操作如图所示。
有了域控的密码,接下来只要快速在内网扩大控制权限就好,具体操作如下所示。
— 利用当前获取到的域控账户密码,对整个域控IP段进行扫描。
— 使用 *** B下的 *** b_login模块。
— 端口转发或者Socks *** 进内网。
我们先在Metasploit添加路由,然后使用 *** b_login模块或者psexec_scanner模块进行爆破,具体操作如图所示。
可以看出,我们获取了大量内网服务器的密码,下面就可以畅游内网了。可以使用Meterpreter的端口转发,也可以使用Metasploit下的Socks4a模块或者第三方软件。
这里简单地使用Meterpreter的端口转发即可,如图所示。
清理日志主要有以下几个步骤,如图所示。
— 删除之前添加的域管理账号。
— 删除所有在渗透过程中使用过的工具。
— 删除应用程序、系统和安全日志。
— 关闭所有的Meterpreter连接。
打电话问问比尔盖茨,或者去下面找找那个卖苹果的乔布斯 脑残片,你值得拥有! 他们攻击电脑也只是盗取一些密码之列的东西, 我也想找个黑客入侵别人电脑。能找到这样的人我愿意出很多钱请他来帮忙。真诚的找有技...
在VB中Byval 和byref怎么区别?简单来说Byval是传值,byref是传地址,ByVal :表示该参数是按值方式传递的。 ByRef :表示该参数按引用方式传递。 下面绿茶小编为大家详细介...
1回顶部 伊利母婴营养研究中心与国内外众多著名生命科学与营养研究机构合作,以伊利《中国母乳数据库》为基础平台,分析母乳中婴幼儿健康成长所需的营养素,开发独特珍护母爱配方,更贴合宝宝的肠胃,更容易被消...
16世纪中叶,一个名叫兰多的人率西班牙殖民队伍登上了玛雅人的领地,从此玛雅人就消失了。但是从玛雅人居住过的120个城市来分析,没有发现任何作战的迹象,所以说他们不是被兰多一伙斩尽杀绝的。 根据现有的...
成都市退伍兵做整理师月入过万 近日有新闻媒体,来源于四川成都的李清龙是一名退伍兵,退役后把在团队里学得的专业技能显现出来,变成了一名整理师,听说如今每月收益过万。 据李清龙详细介绍,参军的...
Proton是一个天真的html5粒子引擎。他默认支持canvas,dom,webgl,easeljs,pixel五种渲染方式,固然你还可以容易的自定义自己的渲染器。只需10几行代码就可以打造你想要的...