Jump to content

    Locked Zdalne wysyłanie poleceń do konsoli bez RCON'a


    Ogen Dogen
     Share

    Recommended Posts

    Krótki plugin nasłuchujący dany port i wpisujący na konsole wszystko co dostanie :)

    Wymagany zewnętrzny moduł sockets_hz -> https://forums.alliedmods.net/showthread.php?s=f1b0c7d8d73d1cc10f624b93162619ef&t=60026

    /* Plugin generated by AMXX-Studio */
    
    #include <amxmodx>
    #include <amxmisc>
    #include <sockets_hz>
    
    new listening_socket, error;
    new ip[32];
    new data[256];
    new port = 1234; // dowolny port, który nie jest zajęty już
    
    public plugin_init() 
    {
    	register_plugin("Remote Console", "1.0", "Ogen Dogen");
    	get_user_ip(0,ip,31,1);
    	listening_socket = socket_listen(ip, port, SOCKET_UDP, error);
    	if (listening_socket < 1) set_fail_state("Blad socketa!");
    	socket_unblock(listening_socket);
    	set_task(3.0,"listener",port,"",0,"b");
    }
    
    public plugin_end()
    {
    	socket_close(listening_socket);
    }
    
    public listener()
    {
    	if (socket_change(listening_socket, 1))
    	{
    		socket_recv(listening_socket, data, 255);
    		server_cmd(data,255);
    	}
    }
    

    Takie rozwiązanie jest ogólnie bezpieczniejsze od rcona, jednak warto tutaj dobudować white listę adresów które będą miały dostęp do tego. Przyda się tu funkcja socket_getpeername.

     

    Do takiego pluginu możemy wysłać dane w dowolny sposób z poziomu programu, aplikacji mobilnej czy strony. Przykład w PHP: (przeładowanie adminów)

    $port = 1234;
    $ip = "ip serwera";
    $sock = socket_create(AF_INET, SOCK_DGRAM, 0);
    if (!$sock) die("Błąd");
    else
    {
    	$check = socket_sendto($sock, "amx_reloadadmins", 1, 0, $ip, $port);
    	if (!$check) die("Błąd");
    }
    socket_close($sock);
    
    Link to comment
    Share on other sites

    Guest
    This topic is now closed to further replies.
     Share

    ×
    ×
    • Create New...