LINUX提权之信息收集篇(一)
前言
准备开一个新坑,最近在学linux提权,于是打算用几篇文章来记录一下linux提权的重要知识点。首先第一篇文章介绍一下linux权限的基础信息以及如何进行信息收集。
LINUX权限简介
因为我们要学习权限提升,所以在学习提权之前我们先了解一下linux里面的权限,我们使用命令查看文件权限:
ls -al
即可查看列出文件所属的权限:
可以看到文件头前面都有一段类似的字符,下面我们仔细分析一下里面符号分别代表什么。
-rw-r--r-- 1 root root
第一个符号-的地方,可以是下面这些符号:
- : 代表普通文件
d:代表目录
l:代表软链接
b:代表块文件
c:代表字符设备
而后面的
rw-r--r--
表示的是文件所属的权限
r : 文件可读。w : 文件可修改。- : 表示暂时没有其他权限。x : 表示可执行
rw- 表示文件所拥有者的权限。
r-- 表示文件所在组的用户的权限。
r-- 表示其他组的用户的权限。
但如果当前查看的文件是一个目录的话可以看下面的解读:
r 表示可以进入该目录进行查看。 w 表示文件可以进行增加。x 表示可以进入这个目录
后面的数据1代表的内容如下:
如果文件类型为目录,表示目录下的子目录个数
如果文件类型是普通文件,这个数据就表示这个文件的硬链接个数
后面两个root的分别含义就是:第一个为该文件所有者为root 用户,第二个表示该文件所在组为root组。
信息收集
在提权之前我们要进行信息收集,例如系统信息,用户信息,安装的服务,计划任务等能被我们进一步利用的信息,这些信息在我们提权时会用到,下面就简单举一些经常需要用的信息收集命令:
查看系统信息(可用于内核提权)
linux里面系统信息属于比较重要的信息了,有时候攻击者会通过该版本系统自带的漏洞来对电脑发起攻击(例如“脏牛”漏洞),所以系统信息是信息收集时必不可少的。
uname -a 打印所有可用的系统信息
uname -r 内核版本
uname -n 系统主机名。
uname -m 查看系统内核架构(64位/32位)
hostname 系统主机名
cat /proc/version 内核信息
cat /etc/*-release 分发信息
cat /etc/issue 分发信息
cat /proc/cpuinfo CPU信息
cat /etc/lsb-release # Debian
cat /etc/redhat-release # Redhat
用户和群组
查看用户信息可以发现有哪些用户,方便我们进行横向渗透。
cat /etc/passwd 列出系统上的所有用户
cat /var/mail/root
cat /var/spool/mail/root
cat /etc/group 列出系统上的所有组
grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}' 列出所有的超级用户账户
whoami 查看当前用户
w 谁目前已登录,他们正在做什么
last 最后登录用户的列表
lastlog 所有用户上次登录的信息
lastlog –u %username% 有关指定用户上次登录的信息
用户权限信息
当我们查询到用户后,我们可以查看用户的权限来寻找拥有root权限的用户,来尝试获取root权限。
whoami 当前用户名
id 当前用户信息
cat /etc/sudoers 谁被允许以root身份执行
sudo -l 当前用户可以以root身份执行操作
环境信息
可以利用于环境变量提权,之后会进行详细讲解。
env 显示环境变量
set 现实环境变量
echo %PATH 路径信息
history 显示当前用户的历史命令记录
pwd 输出工作目录
cat /etc/profile 显示默认系统变量
cat /etc/shells 显示可用的shellrc
cat /etc/bashrc
cat ~/.bash_profile
cat ~/.bashrc
cat ~/.bash_logout
进程和服务
通过进程和服务信息方便我们快去了解当前机器的详细信息
ps aux
ps -ef
top
cat /etc/services
查看以root 运行的进程
ps aux | grep root
ps -ef | grep root
查看安装的软件(可用于第三方服务提权)
比如mysql可以被利用于提权,我们寻找是否存在能被提权的第三方服务文件
ls -alh /usr/bin/
ls -alh /sbin/
ls -alh /var/cache/yum/
dpkg -l
服务/插件
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"
有无ssh 私钥
如果有的话我们就可以获得比较稳定的控制受害者机器的途径。
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
可提权SUID && GUID(用于SUID提权)
SUID为linux里面的一种特殊权限, 在执行文件时,该进程的权限将为root权限.
find / -perm -1000 -type d 2>/dev/null # Sticky bit - Only the owner of the directory or the owner of a file can delete or rename here.
find / -perm -g=s -type f 2>/dev/null # SGID (chmod 2000) - run as the group, not the user who started it.
find / -perm -u=s -type f 2>/dev/null # SUID (chmod 4000) - run as the owner, not the user who started it.
find / -perm -g=s -o -perm -u=s -type f 2>/dev/null # SGID or SUID
查看可写/执行目录
Linux里的可写目录我们可以在里面写入定时服务来进行提权。
find / -writable -type d 2>/dev/null # world-writeable folders
find / -perm -222 -type d 2>/dev/null # world-writeable folders
find / -perm -o w -type d 2>/dev/null # world-writeable folders
find / -perm -o x -type d 2>/dev/null # world-executable folders
find / ( -perm -o w -perm -o x ) -type d 2>/dev/null # world-writeable & executable folders
查看安装过的工具
find / -name perl*
find / -name python*
find / -name gcc*
...
信息收集工具
通过上面这些命令可以看到如果我们一个一个的去查是很麻烦的,这里推荐大家使用信息收集脚本LinEnum.sh来去进行信息收集。
下载后解压,先赋予LinEnum.sh执行权限:
chmod x LinEnum.sh
之后就可以运行该脚本了:
./LinEnum.sh -r report -e /tmp/ -t #-e:将生成的一系列文件存放在何处,此处我们存放在靶机的/tmp目录下
这样就方便了我们进行下一步操作了,只需要在里面找能利用的数据信息就可以了。
结语
今天这篇只是作为一个入门知识的讲解,这些都是以后提权中要知道的知识,值得注意的是提权有各种各样的方法来进行,所以就会考察到我们对收集的信息进行过滤的能力,喜欢本文的小伙伴不妨一键三连。
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanekcc
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13