一、实验环境
测试机:Kali
靶机:CentOS 6.7
两台虚拟主机需在同一局域网中。
二、实验步骤
一)主动信息收集
1、主机发现
nmap 192.168.247.0/24 -sn //-sn 只做主机发现,不做端口扫描
2、端口扫描,发现只有22号端口开放
nmap -sS 192.168.247.140 -p 1-65535 --open
3、版本信息
命令一、nmap -sT 192.168.247.140 -p 22 –script=banner.nse
命令二、nmap -sV -T4 -p 22 192.168.247.140
4、操作系统识别
nmap 192.168.247.140 -O
二)开放端口使用(22)
1、SSH密码爆解
命令一、hydra -L 用户名字典 -P 密码字典 目标IP ssh(由于版本问题,失败,但方法正确)
命令二、medusa -M ssh -h 192.168.247.140 -U user.txt -P pass.txt -t 6
得到远程登录目标主机的账号和密码(root:123;zc:123)
三)提权
1、在测试机上使用dirtycow-master(脏牛)将 zc 提权为 root
1)为文件dirtycow-master赋予权限
chmod 777 dirtycow-master
2)修改测试机ssh配置文件,并重启ssh服务
3)拷贝dirtycow-master工具给目标主机
scp -r dirtycow-master/ [email protected]:dirtycow-master
4)Kali远程登录目标主机的普通用户zc查看dirtycow,并使用gcc编译dirty.c
gcc -pthread dirty.c -o dirty -lcrypt
5)执行exp,利用编译好的dirty文件,替换root用户,并新密码为123.com
6)查看/etc/passwd文件,可以看到用户root已经被替换,且切换firefart用户提交
7)查看/etc/shadow文件以及防火墙策略(仅root用户可看)
8)复原passwd文件(执行exp的最后一句话内容)
2、利用配置不当将新建用户 mike 提权 root
1)远程登录靶机,创建新用户mike(相当于给自己留个后门)
2)编写文件suid.py,并上传到靶机上(此步过程略,具体可参考脏牛提权过程)
3)诱使靶机的管理员运行该脚本,管理员运行之后,切换当前用户为普通用户mike,并运行/bin/dash,以此获得管理员权限。
四)Linux find
1、发现权限为777的文件
find / -perm 777 -exec ls -l {} \; // -exec:执行程序;从根下查找执行权限为777的程序
2、发现系统中的脚本
find / -writable -type f 2>/dev/null | grep -v “/proc/” // -v:取反;' /proc/ ' :系统启动生成的程序
五)基本信息收集
1、DNS配置文件
2、查看密码文件/etc/passwd(所有人可看)
3、查看网卡信息
4、网关及路由
5、列出所有进程
6、终极三问
- whoami(当前用户)
- pwd(当前路径)
- uname -a(主机信息)
六)隐藏痕迹
1、查看历史操作
2、清除历史记录
- history -c //清除历史信息(上下键)
- rm /root/.basn_history //删除文件,让其无法写入记录
3、查看安全日志
4、查看错误登录日志
5、查看每个用户的登录次数和持续时间等信息
6、查看最后一次登录日志
7、查看登录失败的日志——file /var/log/faillog