Trap (tarpit) no nā pili SSH e komo mai ana

ʻAʻole ia he mea huna he wahi ʻino loa ka pūnaewele. Ke hoʻonohonoho koke ʻoe i kahi kikowaena, ua hoʻopilikia koke ʻia ia e nā hoʻouka kaua nui a me nā scan he nui. Eia kekahi laʻana, honeypot mai nā kiaʻi palekana Hiki iā ʻoe ke kuhi i ka nui o kēia kalepa ʻōpala. ʻO ka ʻoiaʻiʻo, ma ka kikowaena maʻamau, hiki i ka 99% o ke kalepa ke lilo i mea ʻino.

He puka pahele ʻo Tarpit i hoʻohana ʻia e hoʻolohi i nā pilina e hiki mai ana. Inā pili kahi ʻōnaehana ʻaoʻao ʻekolu i kēia puka, ʻaʻole hiki iā ia ke pani koke i ka pilina. Pono ia e hoʻonele i nā kumuwaiwai ʻōnaehana a kali i ka manawa e pau ai ka pilina, a i ʻole e hoʻopau lima iā ia.

Hoʻohana pinepine ʻia nā Tarpits no ka palekana. Ua hoʻomohala mua ʻia ke ʻano hana e pale aku i nā ilo kamepiula. I kēia manawa, hiki ke hoʻohana ʻia e hoʻolilo i ke ola i mea kaumaha no nā spammers a me nā mea noiʻi e hana ana i nā scan ākea o nā helu wahi IP āpau (nā laʻana ma Habr: Austria, Ukraine).

ʻO kekahi o nā luna hoʻomalu ʻōnaehana, ʻo Chris Wellons kona inoa, ua luhi i ka nānā ʻana i kēia haunaele a kākau i kahi polokalamu liʻiliʻi. Pau ʻole, he tarpit SSH e hoʻolohi ana i nā pilina e hiki mai ana. Wehe ka polokalamu i kahi awa (ua kuhikuhi ʻia ka awa 2222 ma ka paʻamau no ka hoʻāʻo ʻana) a hoʻohālike e like me kahi kikowaena SSH, akā ʻo ka ʻoiaʻiʻo, hoʻokumu ia i kahi pilina palena ʻole me ka mea kūʻai aku e hiki mai ana a hiki i ka wā e hāʻawi pio ai. Hiki i kēia ke hoʻomau no kekahi mau lā a ʻoi aku paha, a hiki i ka make ʻana o ka mea kūʻai aku.

Ke hoʻouka nei i ka pono hana:

$ make
$ ./endlessh &
$ ssh -p2222 localhost

ʻOi aku ke kumukūʻai o ka mea hoʻouka ma mua o ʻoe ma kahi tarpit i hoʻokō pono ʻia. Akā, ʻaʻole ia e pili ana i nā kumuwaiwai. Mea kākau He kākau, he mea hoʻopili ka papahana. I kēia manawa, aia he 27 mau mea kūʻai aku i paʻa, ua hoʻopaʻa ʻia kekahi o lākou no nā pule. I kona wā kiʻekiʻe, ua paʻa ʻia he 1378 mau mea kūʻai aku no 20 mau hola!

Ma ke ʻano hana, pono e hoʻokomo ʻia ke kikowaena Endlesh ma ka awa maʻamau 22, kahi i hoʻopilikia pinepine ʻia e nā hackers. Paipai mau nā ʻōlelo aʻoaʻo palekana maʻamau i ka neʻe ʻana o SSH i kahi awa ʻē aʻe, kahi e hoʻemi koke ai i ka nui o ka log ma kahi kauoha o ka nui.

Ua ʻōlelo ʻo Chris Wellons ua hoʻohana kāna polokalamu i hoʻokahi paukū o ka kikoʻī RFC 4253 i ka protocol SSH. Ma hope koke iho o ka hoʻokumu ʻana i kahi pilina TCP, akā ma mua o ka hoʻopili ʻia ʻana o ka cryptography, pono nā ʻaoʻao ʻelua e hoʻouna i kahi kaula ʻike. A aia kekahi memo: "E hoʻouna paha ke kikowaena i nā laina ʻikepili ʻē aʻe ma mua o ka hoʻouna ʻana i ka laina mana.". ^ E Ha yM. A ʻaʻohe palena no ka nui o kēia ʻikepili, pono ʻoe e hoʻomaka i kēlā me kēia laina me SSH-.

ʻO kēia ka mea a ka papahana Endlessh e hana ai: ia hoʻouna pau ole kahawai ʻikepili i hana ʻia ma ke ʻano hewa, e kūlike ana me RFC 4253, ʻo ia hoʻi, ka hoʻouna ʻana ma mua o ka ʻike ʻana, a hoʻomaka kēlā me kēia laina me SSH- a ʻaʻole iʻoi aku ma mua o 255 mau huapalapala, me ka laina terminator. ʻO ke kumu, he maʻamau nā mea āpau.

Ma ka paʻamau, kali ka polokalamu i 10 kekona ma waena o nā hoʻouna ʻana o ka packet. Pale kēia i nā manawa pau, kahi e waiho ai i ka mea kūʻai aku i paʻa mau loa.

Ma muli o ka hoʻouna ʻia ʻana o ka ʻikepili ma mua o ka hoʻopili ʻia ʻana o ka cryptography, he maʻalahi loa ka polokalamu. ʻAʻole ia e koi i kekahi encryption a i ʻole ke kākoʻo no nā protocols he nui.

Ua hōʻoia ka mea kākau ua hoʻopau ka pono i nā kumuwaiwai liʻiliʻi a holo loa me ka ʻike ʻole ʻia ma ka mīkini. ʻAʻole e like me nā antivirus hou a me nā "ʻōnaehana palekana" ʻē aʻe, ʻaʻole pono e hoʻolohi i ke kamepiula. Ua hoʻokele ʻo ia e hōʻemi i ka hoʻohana ʻana i ke kaʻa a me ka hoʻomanaʻo ma o kahi hoʻokō polokalamu ʻoi aku ka paʻakikī. Inā hoʻomaka wale ʻo ia i kahi kaʻina hana ʻokoʻa no kēlā me kēia pilina hou, hiki i nā mea hoʻouka kaua ke hoʻomaka i kahi hoʻouka kaua DDoS ma ka wehe ʻana i nā pilina he nui e hoʻopau i nā kumuwaiwai o ka mīkini. ʻAʻole kūpono hoʻi kahi kaula hoʻokahi no kēlā me kēia pilina, no ka mea, e hoʻonele ka kernel i nā kumuwaiwai e hoʻokele ana i nā kaula.

ʻO ia ke kumu i koho ai ʻo Chris Wellons i ke koho māmā loa no Endlessh: kahi kikowaena hoʻokahi kaula. poll(2), kahi e hoʻopau ai nā mea kūʻai aku i paʻa ʻia i nā kumuwaiwai hou aʻe, koe wale nō ka mea kernel socket a me 78 bytes hou aʻe no ka hahai ʻana ma Endlessh. I mea e pale aku ai i ka hoʻokaʻawale ʻana i nā buffers loaʻa a hoʻouna no kēlā me kēia mea kūʻai aku, wehe ʻo Endlessh i kahi socket komo pololei a hoʻouna pololei i nā pākēkē TCP, me ka nānā ʻole i ka stack holoʻokoʻa. TCP/IP ʻōnaehana hana. ʻAʻole pono iki ka buffer input no ka mea ʻaʻole mākou makemake i ka ʻikepili e hiki mai ana.

Ua ʻōlelo ka mea kākau i ka manawa o kāna papahana ʻaʻole i ʻike e pili ana i ke ola ʻana o ka asycio a Python a me nā tarpit ʻē aʻe. Inā ua ʻike ʻo ia e pili ana iā asycio, ua hiki iā ia ke hoʻokō i kāna pono ma 18 mau laina o Python:

import asyncio
import random

async def handler(_reader, writer):
try:
while True:
await asyncio.sleep(10)
writer.write(b'%xrn' % random.randint(0, 2**32))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 2222)
async with server:
await server.serve_forever()

asyncio.run(main())

He kūpono ʻo Asyncio no ke kākau ʻana i nā tarpits. No ka laʻana, e kau kēia pahele iā Firefox, Chrome, a i ʻole kekahi mea kūʻai aku ʻē aʻe e hoʻāʻo nei e hoʻopili i kāu kikowaena HTTP no nā hola he nui:

import asyncio
import random

async def handler(_reader, writer):
writer.write(b'HTTP/1.1 200 OKrn')
try:
while True:
await asyncio.sleep(5)
header = random.randint(0, 2**32)
value = random.randint(0, 2**32)
writer.write(b'X-%x: %xrn' % (header, value))
await writer.drain()
except ConnectionResetError:
pass

async def main():
server = await asyncio.start_server(handler, '0.0.0.0', 8080)
async with server:
await server.serve_forever()

asyncio.run(main())

He mea hana maikaʻi loa ʻo Tarpit no ka hoʻopaʻi ʻana i nā mea hoʻoweliweli pūnaewele. Eia nō naʻe, aia kekahi pilikia o ka huki ʻana i ko lākou manaʻo i ke ʻano maʻamau ʻole o kahi kikowaena kikoʻī. Kekahi e noʻonoʻo paha e pili ana i ka hoʻopaʻi a me kahi hoʻouka kaua DDoS i kuhikuhi ʻia ma kāu IP. Eia nō naʻe, ʻaʻohe hihia e like me ia a hiki i kēia manawa, a ke hana pono nei nā tarpits.

Nā Hub:
Python, Palekana ʻIke, Polokalamu, Hoʻokele ʻŌnaehana

Tags:
SSH, Endless, tarpit, тарпит, тулушка, асыцио
Trap (tarpit) no nā pili SSH e komo mai ana

ʻAʻole ia he mea huna he wahi ʻino loa ka pūnaewele. Ke hoʻonohonoho koke ʻoe i kahi kikowaena, ua hoʻopilikia koke ʻia ia e nā hoʻouka kaua nui a me nā scan he nui. Eia kekahi laʻana, honeypot mai nā kiaʻi palekana Hiki iā ʻoe ke kuhi i ka nui o kēia kalepa ʻōpala. ʻO ka ʻoiaʻiʻo, ma ka kikowaena maʻamau, hiki i ka 99% o ke kalepa ke lilo i mea ʻino.

He puka pahele ʻo Tarpit i hoʻohana ʻia e hoʻolohi i nā pilina e hiki mai ana. Inā pili kahi ʻōnaehana ʻaoʻao ʻekolu i kēia puka, ʻaʻole hiki iā ia ke pani koke i ka pilina. Pono ia e hoʻonele i nā kumuwaiwai ʻōnaehana a kali i ka manawa e pau ai ka pilina, a i ʻole e hoʻopau lima iā ia.

Hoʻohana pinepine ʻia nā Tarpits no ka palekana. Ua hoʻomohala mua ʻia ke ʻano hana e pale aku i nā ilo kamepiula. I kēia manawa, hiki ke hoʻohana ʻia e hoʻolilo i ke ola i mea kaumaha no nā spammers a me nā mea noiʻi e hana ana i nā scan ākea o nā helu wahi IP āpau (nā laʻana ma Habr: Austria, Ukraine).

ʻO kekahi o nā luna hoʻomalu ʻōnaehana, ʻo Chris Wellons kona inoa, ua luhi i ka nānā ʻana i kēia haunaele a kākau i kahi polokalamu liʻiliʻi. Pau ʻole, he tarpit SSH e hoʻolohi ana i nā pilina e hiki mai ana. Wehe ka polokalamu i kahi awa (ua kuhikuhi ʻia ka awa 2222 ma ka paʻamau no ka hoʻāʻo ʻana) a hoʻohālike e like me kahi kikowaena SSH, akā ʻo ka ʻoiaʻiʻo, hoʻokumu ia i kahi pilina palena ʻole me ka mea kūʻai aku e hiki mai ana a hiki i ka wā e hāʻawi pio ai. Hiki i kēia ke hoʻomau no kekahi mau lā a ʻoi aku paha, a hiki i ka make ʻana o ka mea kūʻai aku.

Ke hoʻouka nei i ka pono hana:

$ make
$ ./endlessh &
$ ssh -p2222 localhost

ʻOi aku ke kumukūʻai o ka mea hoʻouka ma mua o ʻoe ma kahi tarpit i hoʻokō pono ʻia. Akā, ʻaʻole ia e pili ana i nā kumuwaiwai. Mea kākau He kākau, he mea hoʻopili ka papahana. I kēia manawa, aia he 27 mau mea kūʻai aku i paʻa, ua hoʻopaʻa ʻia kekahi o lākou no nā pule. I kona wā kiʻekiʻe, ua paʻa ʻia he 1378 mau mea kūʻai aku no 20 mau hola!

Ma ke ʻano hana, pono e hoʻokomo ʻia ke kikowaena Endlesh ma ka awa maʻamau 22, kahi i hoʻopilikia pinepine ʻia e nā hackers. Paipai mau nā ʻōlelo aʻoaʻo palekana maʻamau i ka neʻe ʻana o SSH i kahi awa ʻē aʻe, kahi e hoʻemi koke ai i ka nui o ka log ma kahi kauoha o ka nui.

Ua ʻōlelo ʻo Chris Wellons ua hoʻohana kāna polokalamu i hoʻokahi paukū o ka kikoʻī RFC 4253 i ka protocol SSH. Ma hope koke iho o ka hoʻokumu ʻana i kahi pilina TCP, akā ma mua o ka hoʻopili ʻia ʻana o ka cryptography, pono nā ʻaoʻao ʻelua e hoʻouna i kahi kaula ʻike. A aia kekahi memo: "E hoʻouna paha ke kikowaena i nā laina ʻikepili ʻē aʻe ma mua o ka hoʻouna ʻana i ka laina mana.". ^ E Ha yM. A ʻaʻohe palena no ka nui o kēia ʻikepili, pono ʻoe e hoʻomaka i kēlā me kēia laina me SSH-.

ʻO kēia ka mea a ka papahana Endlessh e hana ai: ia hoʻouna pau ole kahawai ʻikepili i hana ʻia ma ke ʻano hewa, e kūlike ana me RFC 4253, ʻo ia hoʻi, ka hoʻouna ʻana ma mua o ka ʻike ʻana, a hoʻomaka kēlā me kēia laina me SSH- a ʻaʻole iʻoi aku ma mua o 255 mau huapalapala, me ka laina terminator. ʻO ke kumu, he maʻamau nā mea āpau.

Ma ka paʻamau, kali ka polokalamu i 10 kekona ma waena o nā hoʻouna ʻana o ka packet. Pale kēia i nā manawa pau, kahi e waiho ai i ka mea kūʻai aku i paʻa mau loa.

Ma muli o ka hoʻouna ʻia ʻana o ka ʻikepili ma mua o ka hoʻopili ʻia ʻana o ka cryptography, he maʻalahi loa ka polokalamu. ʻAʻole ia e koi i kekahi encryption a i ʻole ke kākoʻo no nā protocols he nui.

Ua hōʻoia ka mea kākau ua hoʻopau ka pono i nā kumuwaiwai liʻiliʻi a holo loa me ka ʻike ʻole ʻia ma ka mīkini. ʻAʻole e like me nā antivirus hou a me nā "ʻōnaehana palekana" ʻē aʻe, ʻaʻole pono e hoʻolohi i ke kamepiula. Ua hoʻokele ʻo ia e hōʻemi i ka hoʻohana ʻana i ke kaʻa a me ka hoʻomanaʻo ma o kahi hoʻokō polokalamu ʻoi aku ka paʻakikī. Inā hoʻomaka wale ʻo ia i kahi kaʻina hana ʻokoʻa no kēlā me kēia pilina hou, hiki i nā mea hoʻouka kaua ke hoʻomaka i kahi hoʻouka kaua DDoS ma ka wehe ʻana i nā pilina he nui e hoʻopau i nā kumuwaiwai o ka mīkini. ʻAʻole kūpono hoʻi kahi kaula hoʻokahi no kēlā me kēia pilina, no ka mea, e hoʻonele ka kernel i nā kumuwaiwai e hoʻokele ana i nā kaula.

ʻO ia ke kumu i koho ai ʻo Chris Wellons i ke koho māmā loa no Endlessh: kahi kikowaena hoʻokahi kaula. poll(2), kahi e hoʻopau ai nā mea kūʻai aku i paʻa ʻia i nā kumuwaiwai hou aʻe, koe wale nō ka mea kernel socket a me 78 bytes hou aʻe no ka hahai ʻana ma Endlessh. I mea e pale aku ai i ka hoʻokaʻawale ʻana i nā buffers loaʻa a hoʻouna no kēlā me kēia mea kūʻai aku, wehe ʻo Endlessh i kahi socket komo pololei a hoʻouna pololei i nā pākēkē TCP, me ka nānā ʻole i ka stack holoʻokoʻa. TCP/IP ʻōnaehana hana. ʻAʻole pono iki ka buffer input no ka mea ʻaʻole mākou makemake i ka ʻikepili e hiki mai ana.

Ua ʻōlelo ka mea kākau i ka manawa o kāna papahana ʻaʻole i ʻike e pili ana i ke ola ʻana o ka asycio a Python a me nā tarpit ʻē aʻe. Inā ua ʻike ʻo ia e pili ana iā asycio, ua hiki iā ia ke hoʻokō i kāna pono ma 18 mau laina o Python:

import asyncio
import random

async def handler(_reader, writer):
    try:
        while True:
            await asyncio.sleep(10)
            writer.write(b'%xrn' % random.randint(0, 2**32))
            await writer.drain()
    except ConnectionResetError:
        pass

async def main():
    server = await asyncio.start_server(handler, '0.0.0.0', 2222)
    async with server:
        await server.serve_forever()

asyncio.run(main())

He kūpono ʻo Asyncio no ke kākau ʻana i nā tarpits. No ka laʻana, e kau kēia pahele iā Firefox, Chrome, a i ʻole kekahi mea kūʻai aku ʻē aʻe e hoʻāʻo nei e hoʻopili i kāu kikowaena HTTP no nā hola he nui:

import asyncio
import random

async def handler(_reader, writer):
    writer.write(b'HTTP/1.1 200 OKrn')
    try:
        while True:
            await asyncio.sleep(5)
            header = random.randint(0, 2**32)
            value = random.randint(0, 2**32)
            writer.write(b'X-%x: %xrn' % (header, value))
            await writer.drain()
    except ConnectionResetError:
        pass

async def main():
    server = await asyncio.start_server(handler, '0.0.0.0', 8080)
    async with server:
        await server.serve_forever()

asyncio.run(main())

He mea hana maikaʻi loa ʻo Tarpit no ka hoʻopaʻi ʻana i nā mea hoʻoweliweli pūnaewele. Eia nō naʻe, aia kekahi pilikia o ka huki ʻana i ko lākou manaʻo i ke ʻano maʻamau ʻole o kahi kikowaena kikoʻī. Kekahi e noʻonoʻo paha e pili ana i ka hoʻopaʻi a me kahi hoʻouka kaua DDoS i kuhikuhi ʻia ma kāu IP. Eia nō naʻe, ʻaʻohe hihia e like me ia a hiki i kēia manawa, a ke hana pono nei nā tarpits.

Trap (tarpit) no nā pili SSH e komo mai ana

Source: www.habr.com

E kūʻai i ka hoʻokipa hilinaʻi no nā pūnaewele me ka pale DDoS, nā kikowaena VPS VDS 🔥 E kūʻai i ka hoʻokipa pūnaewele hilinaʻi me ka pale DDoS, nā kikowaena VPS VDS | ProHoster