一、复现上课的提权案例
查找ip
nmap扫描,发现可疑IP
发现可疑端口
启动msf
搜索drupal框架并使用该模块
show options
查看需要配置的参数
成功骇入
上传木马
二.总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路
1.内网信息收集
- 系统信息收集:
- 使用
uname -a
、cat /proc/version
等命令收集系统内核版本信息。 - 通过
cat /etc/*-release
、cat /etc/issue
等命令获取系统分发信息。 - 查看CPU信息(
cat /proc/cpuinfo
)和系统架构(uname -m
)。
- 使用
- 环境信息:
- 查看当前用户权限(
whoami
、id
)。 - 检查环境变量(
env
、set
),特别是PATH变量,了解系统如何查找和执行命令。
- 查看当前用户权限(
- 网络信息:
- 使用
ifconfig
、netstat
、arp
等命令了解网络配置和连接情况。
- 使用
- 服务信息:
- 查看运行的服务和守护进程,如使用
ps -aux
、top
等命令。 - 检查
/etc/services
文件了解系统提供的网络服务。
- 查看运行的服务和守护进程,如使用
- 内核模块:
- 使用
lsmod
命令查看已加载的内核模块,寻找可能的漏洞点。
- 使用
- 搜索已知漏洞:
- 利用收集到的系统信息,在安全漏洞数据库(如国家漏洞数据库、Exploit-db等)中搜索相关漏洞。
2.漏洞探测
- 漏洞验证:
- 使用相应的工具或脚本来验证系统是否存在已知的可利用漏洞。
- 可以通过在线扫描工具或手动测试来确认漏洞的存在。
- 获取利用代码:
- 从互联网上寻找针对已发现漏洞的利用代码(Exploit)。
- 注意检查Exploit的适用性和可靠性。
3.利用开发
- 代码适配:
- 根据目标系统的环境,对Exploit代码进行必要的修改和适配。
- 确保Exploit能够在目标系统上正常运行。
- 编译与传输:
- 在本地编译利用代码,并将其传输到目标系统。
- 可以使用scp、rsync等工具进行文件传输。
4.提权尝试
- 运行Exploit:
- 在目标系统上运行Exploit,尝试获取更高的权限。
- 注意监控系统的反应和日志输出,以便及时调整策略。
- 反弹shell:
- 如果需要,可以设置反弹shell,以便于在目标系统上执行命令。
- 使用nc、bash等工具实现反弹shell的功能。
- 验证提权成功:
- 通过执行一些需要高权限的命令(如
id
、sudo -l
等)来验证是否成功提权。
- 通过执行一些需要高权限的命令(如
5.清理痕迹
- 删除Exploit:
- 执行完毕后,删除留在目标系统上的利用代码和任何其他相关文件。
- 擦除日志:
- 清理系统日志,删除与提权操作相关的所有记录。
6.持久化访问
- 安装后门:
- 为了维持对系统的访问权限,可能需要安装后门。
- 可以使用cron任务、SSH密钥等方式实现持久化访问。
三、总结Linux常用命令,10个以上
1.文件和目录操作
-
ls:列出目录内容。可以配合不同的参数使用,如
ls -a
显示所有文件(包括隐藏文件),ls -l
以长格式显示文件信息。 -
cd:更改当前目录。例如,
cd /home
会切换到/home
目录。 -
pwd:显示当前工作目录的路径。
-
mkdir:创建新目录。可以一次性创建多级目录,如
mkdir -p /a/b/c
。 -
touch:创建空文件或更改文件的时间戳。
-
cp:复制文件或目录。例如,
cp file1.txt file2.txt
会复制file1.txt
为file2.txt
。 -
mv:移动或重命名文件或目录。
-
rm:删除文件或目录。使用
-r
参数可以递归删除目录及其内容,如rm -r dir
。
2.系统管理与进程控制
-
ps:查看当前用户的进程。常用参数有
ps aux
,显示系统中所有用户的进程信息。 -
top:显示当前运行的进程及其资源占用情况。可以实时查看系统负载、CPU使用率、内存使用等信息。
-
kill:终止进程。需要知道进程的PID(进程ID),如
kill 1234
会终止PID为1234的进程。 -
shutdown:关闭计算机。可以指定时间后关闭,如
shutdown -h +1
表示一分钟后关机。 -
reboot:重新启动计算机。
3.文件查找与文本处理
-
find:在目录树中查找文件。支持多种条件查找,如
find / -name file.txt
会在根目录及其子目录下查找名为file.txt
的文件。 -
grep:文本搜索工具。用于搜索包含指定模式的字符串的行,并输出这些行。如
grep "error" log.txt
会搜索log.txt
文件中包含"error"的行。 -
cat:查看小文件内容或合并文件。如
cat file1.txt file2.txt > file3.txt
会将file1.txt
和file2.txt
的内容合并到file3.txt
中。 -
tail:查看文件尾部内容。常用
-f
参数跟踪文件的新增内容,如tail -f log.txt
。 -
head:查看文件头部内容。默认显示文件的前10行,可以通过
-n
参数指定行数。
4.网络相关
-
ping:检查网络连接。用于测试本机到目标主机的网络连通性。
-
ifconfig(或
ip addr
):配置或显示网络接口信息。ifconfig
命令在较新的Linux发行版中可能被ip
命令取代,但两者都可用于查看和配置网络接口。
5.压缩与解压
-
tar:打包和解包文件。常用于备份和恢复文件。如
tar -cvf archive.tar dir
会将dir
目录打包为archive.tar
。 -
gzip和gunzip:压缩和解压
.gz
文件。 -
bzip2和bunzip2:压缩和解压
.bz2
文件。
6.权限管理
-
chmod:改变文件或目录的权限。如
chmod 755 file.txt
会将file.txt
的权限设置为所有者可以读写执行,组用户和其他用户可以读和执行。 -
chown:改变文件或目录的所有者。
-
chgrp:改变文件或目录所属的组。
7.软件包管理
-
apt-get(Debian, Ubuntu等):安装、更新、升级和管理软件包。如
apt-get update
更新软件包列表,apt-get install package-name
安装软件包。 -
yum(Red Hat, CentOS等):管理软件包。用法与
apt-get
类似,但适用于不同的Linux发行版。