拿到一台 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 直接提升權限,或者利用系統的配置問題,間接提升權限都是可以的。