1. 复现上课的提权案例
安装的linux系统和我的kali虚拟机在同一网段下,先查看kali的ip:
使用nmap对整个网段进行扫描,可以扫到存活的主机ip:
发现了一台开放了http服务端口的可疑主机:
对这台主机进行全端口扫描,发现了一个可疑端口:
用火狐浏览器访问这个端口的服务,看是否有什么内容:
由插件Wappalyzer收集到了一些信息,尝试以Drupal为突破口尝试渗透提权。
kali自带了msf,启动msf:
msf内携带了漏洞库,在里面搜索有关Drupal的相关漏洞,可以选择年份较新并且rank为excellent的使用:
用show options查看需要配置的参数,rhosts和rport需要配置:
配置好参数并run:
在这里可以查找到一些目标主机的内核信息:
可以发现当前只是系统用户www-data,我们的目标是提权到root。
上传可以提权的脚本,先下载解压在kali上,等下上传到目标主机上:
为了保证上传脚本的隐蔽性,选择上传到tmp目录下,并更名为tiquan.sh:
upload /home/ryzee/Desktop/linux-exploit-suggester-master/linux-exploit-suggester.sh /tmp/tiquan.sh
然后输入shell进入目标机命令行,依次cd /tmp并检查目录下文件的执行权限ls -la:
发现刚刚上传的脚本没有执行权限,chmod +x tiquan.sh 为它添加执行权限:
接着执行该脚本 ./tiquan.sh:
在里面查找信息,发现有dirtycow漏洞,尝试利用:
根据扫描出来的CVE去找对应的EXP,在下面的网站查找:
https://github.com/Ascotbe/Kernelhub
http://kernelhub.ascotbe.com/Windows/Docs/#/
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/nomi-sec/PoC-in-GitHub
https://gitlab.com/exploit-database/exploitdb
在https://github.com/nomi-sec/PoC-in-GitHub搜到了对应的EXP(漏洞利用代码):
这里只用到了文件夹里的dcow.cpp,所以我只下载了它,还是同刚才一样下载到kali上再上传到目标主机,上传文件到目标主机的tmp目录并命名为dc.cpp:
upload /home/ryzee/Desktop/dcow.cpp /tmp/dc.cpp
输入shell进入目标机的命令行,查看dc.cpp的执行权限,没有的话就添加可执行权限 chmod +x dc.cpp :
运行该脚本:
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dc dc.cpp -lutil //编译
./dc //运行
可以看到运行后给出了目标主机的登录密码为 dirtyCowFun。
尝试使用su root获取管理员权限,提示缺少终端,使用python内置库开启终端:
python -c 'import pty; pty.spawn("/bin/bash")'
这就成功提权啦!
2. 总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路)
1. 内网信息收集
- 利用nmap扫描网段存活主机,查找可疑主机;
- 再次利用nmap对可疑主机进行端口扫描,或者利用其它扫描工具对可疑主机进行扫描,收集系统信息(操作系统,内核版本,系统版本,系统安装的软件,开放的服务);对一些可疑端口尝试访问服务,利用火狐浏览器的插件Wappalyzer或许可以收集到一些目标主机的架构信息,系统信息。
2. 查找已知漏洞
- 根据收集到的系统信息,去查找资料,看是否存在已知漏洞,查询该漏洞是否可以用来提权。
- 利用msf去查找内置漏洞库,查寻最优的并使用,配置相关参数。
3. 利用漏洞
- 在msf中将提权脚本上传到目标主机,添加可执行权限,并执行,然后就可以得到新的漏洞信息,利用dirtycow漏洞进行提权,再从GitHub等网站下载针对该漏洞的已存EXP(漏洞利用代码)。
- 有些EXP需要编译后才能使用,使用gcc进行编译,编译后执行,拿到root权限的登录密码。
4. 权限提升
- 用拿到的root权限的登录密码登录目标主机进入root权限。
- 可能远程连接时提示进入root权限需要终端,需要使用python内置库开启终端,进入后验证身份(whoami)。
3. 总结Linux常用命令,10个以上
ls:列出当前目录中的文件和子目录
pwd:显示当前工作目录的路径
cd:切换工作目录
vim:编辑或新建某文件
mkdir:创建新目录
rm:删除文件或目录
cp:复制文件或目录
mv:移动或重命名文件或目录
cat:连接和显示文件内容
grep:在文件中搜索指定文本
ps:显示当前运行的进程
ifconfig/ip:查看和配置网络接口信息
chmod:修改文件或目录的权限
uname:显示系统信息
zip/unzip:用于压缩和解压ZIP文件
sudo:以超级用户权限运行命令