拿到一台 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
w
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 直接提升权限,或者利用系统的配置问题,间接提升权限都是可以的。