詳細|Linux內網滲透基礎篇
VSole2023-01-14 10:45:13
Linux信息收集
本機基本信息
#管理員 $普通用戶 @之前表示登錄的用戶名稱,之后表示主機名,再之后表示當前所在目錄 / 表示根目錄 ~表示當前用戶家目錄
1、內核,操作系統和設備信息
uname -a 打印所有可用的系統信息 uname -r 內核版本 uname -n 系統主機名。 uname -m 查看系統內核架構(64位/32位) hostname 系統主機名 lsb_release -a 發行版信息 cat /proc/version 內核信息 cat /etc/*-release 發行版信息 cat /etc/issue 發行版信息 cat /proc/cpuinfo CPU信息


2、用戶和群組
cat /etc/passwd 列出系統上的所有用戶
cat /etc/shadow 查看用戶Hash
cat /etc/group 列出系統上的所有組
groups 當前用戶所在的組
groups test test用戶所在的組
getent group xxx xxx組里的用戶
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 列出所有的超級用戶賬戶
awk -F: 'length($2)==0 {print $1}' /etc/shadow #查看是否存在空口令用戶
awk '/\$1|\$6/{print $1}' /etc/shadow #查看遠程登錄的賬號
whoami 查看當前用戶
w 誰目前已登錄,他們正在做什么
who 命令用于顯示系統中有哪些使用者正在上面
last 最后登錄用戶的列表
lastlog 所有用戶上次登錄的信息
lastlog –u %username% 有關指定用戶上次登錄的信息

[^可以看到yokan用戶在sudo組里]:


3、用戶和權限信息
whoami 當前用戶名 id 當前用戶信息 cat /etc/sudoers 可以使用sudo提升到root的用戶 sudo -l 當前用戶可以以root身份執行操作


yokan用戶可以以root身份執行任意操作
4、環境信息
env 顯示所有的環境變量 set 顯示本地環境變量 echo $PATH 環境變量中的路徑信息 export [-fnp][變量名稱]=[變量設置值] 顯示和設置環境變量 pwd 輸出工作目錄 cat /etc/profile 顯示默認系統變量 cat /etc/shells 顯示可用的shell ls -la /etc/*.conf 查看etc下所有配置文件

5、歷史命令
顯示當前用戶的歷史命令記錄
history cat ~/.bash_history # 查看其他用戶的歷史命令文件 cat /home/user/.bash_history
history顯示內存和~/.bash_history中的所有內容;內存中的內容并沒有立刻寫入~/.bash_history,只有當當前shell關閉時才會將內存內容寫入shell
6、進程信息
ps aux 以用戶的格式顯示所有進程,包括非終端的進程 ps -ef 顯示所有進程,顯示UID,PPIP(父進程),C與STIME欄位 ps -ef | grep java 查詢某個應用的所有進程信息 top 實時顯示占用最多的進程

如果想查看進程的CPU占用率和內存占用率,可以使用aux如果想查看進程的父進程ID和完整的COMMAND命令,可以使用-eflsof -c $PID 查看進程關聯文件 /proc/$PID/cmdline 完整命令行信息 /proc/$PID/comm 進程的命令名 /proc/$PID/cwd 進程當前工作目錄的符號鏈接 /proc/$PID/exe 運行程序的符號鏈接 /proc/$PID/environ 進程的環境變量 /proc/$PID/fd 進程打開文件的情況
7、服務信息
cat /etc/services 查詢存在的服務 cat /etc/services | grep Java 查詢對應的服務 systemctl list-units --type=service --state=running 查詢已經開啟的服務

8、計劃任務
在Linux系統中,計劃任務一般是由cron承擔。cron啟動后,它會讀取它的所有配置文件(全局性配置文件/etc/crontab,以及每個用戶的計劃任務配置文件),然后cron會根據命令和執行時間來按時來調用工作任務。
/var/spool/cron/crontabs :這個目錄以賬號來區分每個用戶自己的執行計劃 /etc/crontab :系統執行計劃,需要在后邊加上用戶格式 所有計劃任務項: /var/spool/cron/* /var/spool/anacron/* /etc/crontab /etc/anacrontab /etc/cron.* /etc/anacrontab crontab -l 查詢當前用戶所有的計劃任務 crontab -l -u user 查詢指定用戶的計劃任務 cat /var/spool/cron/crontabs/root 查詢root用戶的計劃任務
9、網絡、路由和通信
查詢ip
ifconfig ip addr
打印路由信息
route 查詢路由表 route -n 查詢路由表,以ip地址顯示 netstat -r 查詢路由表 ip ro
查看系統arp表
arp -a
端口開放情況
netstat -antup 所有端口 netstat -antp tcp端口 netstat -anup udp端口
查看端口服務映射
cat /etc/services
列出iptables的配置規則
iptables -L
顯示網卡信息
netstat -i
dns信息
cat /etc/resolv.conf 查看dns配置信息 dnsdomainname -V 打印DNS系統中FQDN名稱中的域名 cat /etc/hosts 查看hosts域名解析文件
10、已安裝應用
rpm -qa --last #Redhat、CentOS rpm -qa polkit #查看指定應用的安裝版本 dpkg -l #ubuntu、debian dpkg -l policykit-1 #查看指定應用的安裝版本 dpkg -L xxx #查詢某個軟件所關聯的文件
11、查找能寫或執行的目錄
find / -writable -type d 2>/dev/null find / -perm -o+w -type d 2>/dev/null find / -perm -o+x -type d 2>/dev/null
12、防火墻
iptables -L 查看防火墻配置 查看防火墻狀態: systemctl status firewalld service iptables status 暫時關閉防火墻: systemctl stop firewalld service iptables stop 永久關閉防火墻: systemctl disable firewalld chkconfig iptables off 重啟防火墻: systemctl enable firewalld service iptables restart
13、敏感文件
find命令 -o參數 表示 或者 的意思
find / -type f -iname "*.bash_history" -o -iname "*config*" -o -iname "web.xml" -o -iname "*database*" -o -iname "*pass*" 2>/dev/null
查找SSH密鑰:
find / -name "id_dsa*" -o -name "id_rsa*" -o -name "known_hosts" -o -name "authorized_hosts" -o -name "authorized_keys" 2>/dev/null |xargs -r ls
Web應用服務
常見配置文件路徑:
/apache/apache/conf/httpd.conf /apache/apache2/conf/httpd.conf /apache/php/php.ini /bin/php.ini /etc/apache/apache.conf /etc/apache/httpd.conf /etc/apache2/apache.conf /etc/apache2/httpd.conf /etc/apache2/sites-available/default /etc/apache2/vhosts.d/00_default_vhost.conf /etc/httpd/conf.d/httpd.conf /etc/httpd/conf.d/php.conf /etc/httpd/conf/httpd.conf /etc/httpd/php.ini /etc/init.d/httpd /etc/php.ini /etc/php/apache/php.ini /etc/php/apache2/php.ini /etc/php/cgi/php.ini /etc/php/php.ini /etc/php/php4/php.ini /etc/php4.4/fcgi/php.ini /etc/php4/apache/php.ini /etc/php4/apache2/php.ini /etc/php4/cgi/php.ini /etc/php5/apache/php.ini /etc/php5/apache2/php.ini /etc/php5/cgi/php.ini /etc/phpmyadmin/config.inc.php /home/apache/conf/httpd.conf /home/apache2/conf/httpd.conf /home/bin/stable/apache/php.ini /home2/bin/stable/apache/php.ini /NetServer/bin/stable/apache/php.ini /opt/www/conf/httpd.conf /opt/xampp/etc/php.ini /PHP/php.ini /php/php.ini /php4/php.ini /php5/php.ini /usr/lib/php.ini /etc/nginx/nginx.conf /usr/lib/php/php.ini /usr/local/apache/conf/httpd.conf /usr/local/apache/conf/php.ini /usr/local/apache2/conf/httpd.conf /usr/local/apache2/conf/php.ini /usr/local/etc/php.ini /usr/local/httpd/conf/httpd.conf /usr/local/lib/php.ini /usr/local/php/lib/php.ini /usr/local/php4/lib/php.ini /usr/local/php4/lib/php.ini /usr/local/php4/php.ini /usr/local/php5/etc/php.ini /usr/local/php5/lib/php.ini /usr/local/php5/php5.ini /usr/local/share/examples/php/php.ini /usr/local/share/examples/php4/php.ini /usr/local/Zend/etc/php.ini /var/apache2/config.inc /var/httpd/conf/httpd.conf /var/httpd/conf/php.ini /var/httpd/conf/php.ini /var/local/www/conf/httpd.conf /var/local/www/conf/php.ini /var/www/conf/httpd.conf /web/conf/php.ini /www/conf/httpd.conf /www/php/php.ini /www/php4/php.ini /www/php5/php.ini /xampp/apache/bin/php.ini /xampp/apache/conf/httpd.conf
數據庫
/etc/init.d/mysql /etc/my.cnf /etc/mysql/my.cnf /etc/mysql/my.cnf /var/lib/mysql/my.cnf /var/lib/mysql/mysql/user.MYD /usr/local/mysql/bin/mysql /usr/local/mysql/my.cnf /usr/share/mysql/my.cnf
自動化腳本
linux_info.sh
#!/bin/bash
#輸出文件
filename=$(date +%s)'.log'
echo "信息收集"
echo -e "" | tee -a $filename
echo "賬戶信息收集" | tee -a $filename
cat /etc/passwd | tee -a $filename
echo -e "" | tee -a $filename
echo "shadow" | tee -a $filename
cat /etc/shadow | tee -a $filename
echo -e "" | tee -a $filename
echo "進程信息收集" | tee -a $filename
ps aux | tee -a $filename
echo -e "" | tee -a $filename
echo "網絡連接" | tee -a $filename
netstat -antlp | tee -a $filename
echo -e "" | tee -a $filename
echo "當前用戶:" $(whoami) 2>/dev/null | tee -a $filename
echo -e "" | tee -a $filename
echo "端口監聽" | tee -a $filename
netstat -lnpt | tee -a $filename
echo -e "" | tee -a $filename
echo "可登陸用戶" | tee -a $filename
cat /etc/passwd | grep -E -v 'nologin$|false' | tee -a $filename
echo -e "" | tee -a $filename
echo "增加用戶的日志" | tee -a $filename
grep "useradd" /var/log/secure | tee -a $filename
echo -e "" | tee -a $filename
echo "History操作提取" | tee -a $filename
cat ~/.*history | tee -a $filename
echo -e "" | tee -a $filename
echo "登錄成功的IP" | tee -a $filename
grep "Accepted " /var/log/secure* | awk '{print $11}' | sort | uniq -c | sort -nr | more | tee -a $filename
echo -e "" | tee -a $filename
echo "查看路由表" | tee -a $filename
route -n | tee -a $filename
echo -e "" | tee -a $filename
echo "查看 SSH key" | tee -a $filename
sshkey=${HOME}/.ssh/authorized_keys
if [ -e "${sshkey}" ]; then
cat ${sshkey} | tee -a $filename
else
echo -e "SSH key文件不存在" | tee -a $filename
fi
echo -e "" | tee -a $filename
echo "查看 known_hosts" | tee -a $filename
cat ~/.ssh/known_hosts | tee -a $filename
echo -e "" | tee -a $filename
echo "查找WEB-INF" | tee -a $filename
find / -name *.properties 2>/dev/null | grep WEB-INF | tee -a $filename
echo -e "" | tee -a $filename
echo "user|pass|pwd|uname|login|db_" | tee -a $filename
find / -name "*.properties" | xargs egrep -i "user|pass|pwd|uname|login|db_" | tee -a $filename
echo -e "" | tee -a $filename
echo "jdbc:|pass=|passwd=" | tee -a $filename
find / -regex ".*\.properties\|.*\.conf\|.*\.config\|.*\.sh" | xargs grep -E "=jdbc:|pass=|passwd=" | tee -a $filename
echo -e "" | tee -a $filename
# Author cances
echo "ip和網卡信息" | tee -a $filename
ip a | awk '{print $2,$4}' | tee -a $filename
echo -e "" | tee -a $filename
echo "可登陸用戶" | tee -a $filename
cat /etc/passwd | grep -E -v 'sync$|halt$|nologin$|false|shutdown' | tee -a $filename
echo -e "" | tee -a $filename
echo "用戶登陸日志" | tee -a $filename
lastlog | tee -a $filename
echo -e "" | tee -a $filename
echo "查看 hosts" | tee -a $filename
cat /etc/hosts | tee -a $filename
echo -e "" | tee -a $filename
echo "查看 系統版本" | tee -a $filename
cat /etc/*-release | tee -a $filename
echo -e "" | tee -a $filename
echo "查看 內核版本" | tee -a $filename
uname -mrs | tee -a $filename
VSole
網絡安全專家