什么是权限
在Linux 系统中,ls -al
即可查看列出文件所属的权限。这里我用kali 系统来演示。
……
drwxr-xr-x 2 kali kali 4096 Jan 27 12:52 Downloads
-rw-r--r-- 1 root root 903 Jun 14 11:33 exp.html
-rw-r--r-- 1 root root 153600 May 5 09:42 flag
lrwxrwxrwx 1 kali kali 28 May 14 08:28 flagg -> /proc/self/cwd/flag/flag.jpg
-rw-r--r-- 1 kali kali 188 May 14 08:29 flagg.zip
-rw-r--r-- 1 root root 1807342 Apr 20 06:52 get-pip.py
drwx------ 3 kali kali 4096 Jun 18 21:35 .gnupg
-rw-r--r-- 1 root root 56 Jun 16 23:29 hash.txt
-rw-r--r-- 1 root root 12396 Jun 11 00:13 hydra.restore
-rw------- 1 kali kali 5202 Jun 18 21:35 .ICEauthority
-rw-r--r-- 1 root root 2046 Jun 10 22:58 jim_pass.txt
……
这些都代表什么意思,我们从左往右看。
-rw-r--r-- 1 root root 56 Jun 16 23:29 hash.txt
这里可以分为7个字段。
- 第一组数据
-rw-r--r--
第一位:
-
: 代表普通文件
d
:代表目录
l
:代表软链接
b
:代表块文件
c
:代表字符设备
第二及后面几位,分别三个为一组:
rw-r--r--
代表文件所属的权限
r : 文件可读。w : 文件可修改。- : 表示暂时没有其他权限。x : 表示可执行
rw-
表示文件所拥有者的权限。r--
表示文件所在组的用户的权限。-
r--
表示其他组的用户的权限。 -
第二组数据
1
-
- 如果文件类型为目录,表示目录下的字目录个数
- 如果文件类型是普通文件,这个数据就表示这个文件的硬链接个数
-
第三组数据
root
. 表示该文件所有者为root 用户 - 第四组数据
root
. 表示该文件所在组为root 组 - 第五组数据
56
表示文件的大小为多少字节。如果为一个目录,则为4096。 - 第六组数据表示
最后一次修改时间
- 第七组数据表示文件名称
如果为目录,r 表示可以进入该目录进行查看。 w 表示文件可以进行增加。x 表示可以进入这个目录
同样的,可以用数字代替,r=4,w=2,x=1。
为什么提权
当成功通过80或者443端口通过web服务渗透时,常常是www-data 。无法执行root 权限下的一下命令或者读取/root 下的重要文件。这个时候就需要提权,在root 权限下,还可以通过msfvenom生成其他后门文件或者一些隐藏后门。添加用户,开启其他端口等操作,达到权限持续控制。
简单的说,就是不提权就无法完成进一步渗透。
怎么样提权
大师傅都说,渗透的本质是信息搜集。
提权也是,要进行充分的信息搜集。
提权思路:大概思路是通过信息搜集查找可利用的文件/脚本/软件/用户/内核漏洞/恶意劫持/特定平台漏洞/框架漏洞/组件/等,写入或执行恶意命令/脚本/shell/添加高权限用户,提权成功,然后进一步利用。
基础信息搜集
内核,操作系统,设备信息
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
ls /boot | grep vmlinuz-
用户和群组
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% 有关指定用户上次登录的信息
lastlog |grep -v "Never" 以前登录用户的完
用户权限信息
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
查看安装的软件
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
有无明文存放用户密码
gr