拿到一台 linux 主机普通权限之后,如何获取更高的 root 权限?这是红队成员之必备技能,首先为什么要提权?因为提权之后能看到主机上的所有信息,包括主机管理的账号密码哈希,可以离线破解管理员密码,也许存在通用密码的习惯,那么今天就来测试梳理下 Linux 提权的基本信息收集命令及作用。当然,你也可以直接拿最新或者历史的提权 exp 批量测试,也可满足你的需求,本文旨在学习一些 linux 的基础操作和关键信息收集。

0x01 查看操作系统信息,内核版本等

查看操作系统类型:

cat /etc/issue 
cat /etc/*-release 
cat /etc/lsb-release

可以看到系统是 debain,那么系统版本是什么?64 位还是 32 位?

cat /proc/version 
uname -a 
uname -mrs 
rpm -q kernel 
dmesg | grep Linux 
ls /boot | grep vmlinuz-

可以看到当前系统是 64 位。

0x02 查看系统环境配置

cat /etc/profile 
cat /etc/bashrc 
cat ~/.bash_profile 
cat ~/.bashrc 
cat ~/.bash_logout 
env 
set

内容比较多,图截不全,还是可以看到一些信息的,比如当前用户的情况:

0x03 查看应用和服务

当前运行了哪些服务?这些服务的用户权限如何?

ps aux 
ps -ef 
top 
cat /etc/services

如果只需查看运行用户是 root 的服务,可以使用 grep 提取:

ps aux | grep root 
ps -ef | grep root

0x04 安装了哪些应用

系统安装了哪些应用,什么版本?

ls -alh /usr/bin/ 
ls -alh /sbin/ 
dpkg -l 
rpm -qa 
ls -alh /var/cache/apt/archivesO 
ls -alh /var/cache/yum/

对于找应用漏洞有一定的帮助。

0x05 常见服务的配置文件

cat /etc/syslog.conf 
cat /etc/chttp.conf 
cat /etc/lighttpd.conf 
cat /etc/cups/cupsd.conf 
cat /etc/inetd.conf 
cat /etc/apache2/apache2.conf 
cat /etc/my.conf 
cat /etc/httpd/conf/httpd.conf
cat /opt/lampp/etc/httpd.conf

查看 /etc/ 目录下所有 root 用户的文件:

ls -aRl /etc/ | awk '$1 ~ /^.r./'

0x06 查看系统计划任务

crontab -l 
ls -alh /var/spool/cron 
ls -al /etc/ | grep cron 
ls -al /etc/cron* 
cat /etc/cron* 
cat /etc/at.allow 
cat /etc/at.deny 
cat /etc/cron.allow 
cat /etc/cron.deny 
cat /etc/crontab
cat /var/spool/cron/crontabs/root

0x07 寻找文件中包含关键词 user、pass 等内容

grep -i user [filename] 
grep -i pass [filename] 
grep -C 5 "password" [filename] 
find . -name "*.php" -print0 | xargs -0 grep -i -n "var $password" # Joomla

0x08 系统网卡信息,连接的网络信息

/sbin/ifconfig -a 
cat /etc/network/interfaces 
cat /etc/sysconfig/network

0x09 关于网络的配置信息,dns服务器、dhcp 服务器,防火墙配置等

cat /etc/resolv.conf 
cat /etc/sysconfig/network 
cat /etc/networks 
iptables -L 
hostname 
dnsdomainname

0x0A 与哪些主机有网络连接?当前在线的用户有哪些?

lsof -i 
lsof -i :80 
grep 80 /etc/services 
netstat -antup 
netstat -antpx 
netstat -tulpn 
chkconfig --list 
chkconfig --list | grep 3:on 
last 
w

0x0B 系统网络缓存

arp -e 
route 
/sbin/route -nee

dump 系统流量,分析数据:

tcpdump tcp dst 192.168.1.7 80 and tcp dst 10.5.5.252 21

命令说明,:

tcpdump tcp dst [ip] [port] and tcp dst [ip] [port]

0x0C 用户相关信息

id 
who 
last 
cat /etc/passwd | cut -d: -f1 
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 
cat /etc/sudoers 
sudo -l

用户相关的文件路径:

cat /etc/passwd 
cat /etc/group 
cat /etc/shadow 
ls -alh /var/mail/

用户目录:

root => /root/
other => /home/other

0x0D 常见服务默认配置文件

可能包含账号密码信息:

cat /var/apache2/config.inc 
cat /var/lib/mysql/mysql/user.MYD 
cat /root/anaconda-ks.cfg

0x0E 用户操作历史记录

可能存在明文账号密码之类的信息

cat ~/.bash_history 
cat ~/.nano_history 
cat ~/.atftp_history 
cat ~/.mysql_history 
cat ~/.php_history

0x10 总结

这里整理的也许不全,不过该收集的信息也基本差不多了,在此信息基础上,获取更多其他系统权限或者系统本身的权限,都有一定的知道意义,可以针对性的去寻找可以利用的 EXP 直接提升权限,或者利用系统的配置问题,间接提升权限都是可以的。