Mahanga (tarpit) mo nga hononga SSH taumai

Ehara i te mea ngaro ko te Ipurangi he taiao tino kino. I te wa ka whakaarahia e koe he tūmau, ka tukuna tonu ki nga whakaeke nui me te maha o nga karapa. Hei tauira honeypot mai i nga kaitiaki ka taea e koe te whakatau tata i te rahi o tenei hokohoko para. Ko te mea pono, i runga i te tūmau toharite, 99% o nga waka he kino.

Ko te taara he tauranga mahanga hei whakaroa i nga hononga taumai. Mena ka hono tetahi punaha tuatoru ki tenei tauranga, kaore e taea e koe te kati tere i te hononga. Me moumou ia i ana rauemi punaha me te tatari kia mutu te wa hononga, ka mutu ranei a ringa.

Ko te nuinga o nga wa, ka whakamahia nga taara hei whakamarumaru. I hangaia tuatahitia te tikanga hei tiaki i nga noke rorohiko. Na inaianei ka taea te whakamahi ki te whakangaro i nga oranga o nga kaipahua me nga kairangahau e mahi ana ki te tirotiro whanui i nga wahitau IP katoa i te rarangi (tauira i runga i te Habré: Ateria, Ukraine).

Ko tetahi o nga kaiwhakahaere punaha ko Chris Wellons te ahua i ngenge i te matakitaki i tenei whakama - a ka tuhia e ia tetahi kaupapa iti. Mutunga kore, he tarai mo te SSH e whakaroa ana i nga hononga taumai. Ka whakatuwherahia e te papatono he tauranga (ko te tauranga taunoa mo te whakamatautau ko 2222) me te kii he tūmau SSH, engari i roto i te mooni ka whakapumautia he hononga mutunga kore ki te kiritaki taumai kia mutu ra ano. Ka haere tonu tenei mo etahi ra, neke atu ranei kia hinga te kaihoko.

Te whakaurunga o te taputapu:

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

Ka nui ake nga rauemi mai i te kaitukino i a koe ma te tarai i te tika. Engari ehara i te mea mo nga rawa. Kaituhi tohi iae he faatîtîraa te hōtaka. I tenei wa 27 nga kaihoko kua mau, ko etahi o ratou e hono ana mo nga wiki. I te tihi o nga mahi, 1378 nga kaihoko i mau mo te 20 haora!

I roto i te aratau whakahaere, me whakauru te tūmau Endlessh ki te tauranga o mua 22, kei reira nga hooligans e patuki ana i te tini. Ko nga taunakitanga haumaru paerewa i nga wa katoa ka tohutohu kia nekehia te SSH ki tetahi tauranga rereke, ka whakaiti tonu i te rahi o nga rakau ma te raupapa o te nui.

E ai ki a Chris Wellons, ka whakamahia e tana hotaka tetahi waahanga o te tuhinga RFC 4253 ki te kawa SSH. I muri tonu i te whakatuutanga o te hononga TCP, engari i mua i te tono whakamunatanga, me tuku e nga taha e rua he aho tautuhi. A he korero ano: "KIA tukuna e te tūmau etahi atu rarangi raraunga i mua i te tuku i te rarangi putanga". A kahore he rohe i runga i te rahi o enei raraunga, me timata koe ki ia rarangi SSH-.

Koinei tonu te mahi a te kaupapa Endlessh: ko tuku mutunga rerenga o nga raraunga hanga matapōkeretia, e ū ana ki te RFC 4253, ara, tuku i mua i te motuhēhēnga, ka timata ia raina ki te SSH- a kaua e neke ake i te 255 nga tohu, tae atu ki te tohu mutunga raina. I te nuinga o te waa, ko nga mea katoa e rite ana ki te paerewa.

Ma te taunoa, ka tatari te papatono mo te 10 hēkona i waenga i te tuku i nga paatete. Ma tenei ka aukati i te wa o te kiritaki, na reira ka mau te kiritaki mo ake tonu atu.

I te mea ka tukuna nga raraunga i mua i te tono whakamunatanga, he tino ngawari te kaupapa. Karekau he hiahia ki te whakatinana i nga kawa me te tautoko i nga tikanga maha.

I ngana te kaituhi ki te whakarite kia pau te iti o nga rauemi a te taputapu me te mahi kaore i kitea i runga i te miihini. Kaore i rite ki nga wheori hou me etahi atu "pūnaha haumaru," kaua e whakaroa i to rorohiko. I kaha ia ki te whakaiti i nga waka me te kohi mahara na te kaha o te whakatinanatanga o te rorohiko. Mena i whakarewahia e ia he tukanga motuhake i runga i te hononga hou, ka taea e nga kaiwhaiwhai te whakarewa i te whakaeke DDoS ma te whakatuwhera i nga hononga maha ki te whakapau rauemi i runga i te miihini. Ko te kotahi miro mo ia hononga ehara i te mea pai rawa atu, na te mea ka moumou te kernel i nga rauemi whakahaere miro.

Koia te take i whiriwhiria e Chris Wellons te whiringa tino mama mo Endlessh: he tūmau miro kotahi poll(2), i te mea ka pau nga kaihoko i roto i te mahanga tata kore rawa atu, kaua e tatau i te ahanoa turanga i roto i te pata me etahi atu 78 paita mo te whai i Endlessh. Hei karo i te tohatoha i nga whiwhinga me te tuku i nga parepare mo ia kiritaki, ka whakatuwherahia e Endlessh he turanga uru tika me te whakamaori tika i nga paatete TCP, me te maataki tata ki te katoa o te punaha whakahaere TCP/IP puranga. Kaore e tino hiahiatia ana te kaapiri taumai, na te mea kaore matou e aro ki nga raraunga taumai.

E ai ki te kaituhi i te wa o tana kaupapa kaore i mohio mo te noho a Python's asycio me etahi atu tarpits. Mena i mohio ia mo te asycio, ka taea e ia te whakamahi i tana taputapu i roto i nga rarangi 18 noa i te 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 pai a Asyncio mo te tuhi tarpits. Hei tauira, ka whakatio tenei matau ki a Firefox, Chrome, tetahi atu kaihoko ranei e ngana ana ki te hono atu ki to tūmau HTTP mo nga haora maha:

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 taputapu pai a Tarpit mo te whiu i te hunga whakaweti ipurangi. He pono, tera ano etahi raruraru, i runga i te rereke, o te kukume i to ratau aro ki te whanonga rereke o tetahi tūmau. Tetahi ka whakaaro pea mo te utu me te whakaekenga DDoS i runga i to IP. Heoi, tae noa ki tenei wa kaore ano he keehi pera, a he pai te mahi o nga taara.

Nga tari:
Python, Haumarutanga korero, Pūmanawa, Whakahaere Pūnaha

Tags:
SSH, Endless, tarpit, tarpit, trap, asycio
Mahanga (tarpit) mo nga hononga SSH taumai

Ehara i te mea ngaro ko te Ipurangi he taiao tino kino. I te wa ka whakaarahia e koe he tūmau, ka tukuna tonu ki nga whakaeke nui me te maha o nga karapa. Hei tauira honeypot mai i nga kaitiaki ka taea e koe te whakatau tata i te rahi o tenei hokohoko para. Ko te mea pono, i runga i te tūmau toharite, 99% o nga waka he kino.

Ko te taara he tauranga mahanga hei whakaroa i nga hononga taumai. Mena ka hono tetahi punaha tuatoru ki tenei tauranga, kaore e taea e koe te kati tere i te hononga. Me moumou ia i ana rauemi punaha me te tatari kia mutu te wa hononga, ka mutu ranei a ringa.

Ko te nuinga o nga wa, ka whakamahia nga taara hei whakamarumaru. I hangaia tuatahitia te tikanga hei tiaki i nga noke rorohiko. Na inaianei ka taea te whakamahi ki te whakangaro i nga oranga o nga kaipahua me nga kairangahau e mahi ana ki te tirotiro whanui i nga wahitau IP katoa i te rarangi (tauira i runga i te Habré: Ateria, Ukraine).

Ko tetahi o nga kaiwhakahaere punaha ko Chris Wellons te ahua i ngenge i te matakitaki i tenei whakama - a ka tuhia e ia tetahi kaupapa iti. Mutunga kore, he tarai mo te SSH e whakaroa ana i nga hononga taumai. Ka whakatuwherahia e te papatono he tauranga (ko te tauranga taunoa mo te whakamatautau ko 2222) me te kii he tūmau SSH, engari i roto i te mooni ka whakapumautia he hononga mutunga kore ki te kiritaki taumai kia mutu ra ano. Ka haere tonu tenei mo etahi ra, neke atu ranei kia hinga te kaihoko.

Te whakaurunga o te taputapu:

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

Ka nui ake nga rauemi mai i te kaitukino i a koe ma te tarai i te tika. Engari ehara i te mea mo nga rawa. Kaituhi tohi iae he faatîtîraa te hōtaka. I tenei wa 27 nga kaihoko kua mau, ko etahi o ratou e hono ana mo nga wiki. I te tihi o nga mahi, 1378 nga kaihoko i mau mo te 20 haora!

I roto i te aratau whakahaere, me whakauru te tūmau Endlessh ki te tauranga o mua 22, kei reira nga hooligans e patuki ana i te tini. Ko nga taunakitanga haumaru paerewa i nga wa katoa ka tohutohu kia nekehia te SSH ki tetahi tauranga rereke, ka whakaiti tonu i te rahi o nga rakau ma te raupapa o te nui.

E ai ki a Chris Wellons, ka whakamahia e tana hotaka tetahi waahanga o te tuhinga RFC 4253 ki te kawa SSH. I muri tonu i te whakatuutanga o te hononga TCP, engari i mua i te tono whakamunatanga, me tuku e nga taha e rua he aho tautuhi. A he korero ano: "KIA tukuna e te tūmau etahi atu rarangi raraunga i mua i te tuku i te rarangi putanga". A kahore he rohe i runga i te rahi o enei raraunga, me timata koe ki ia rarangi SSH-.

Koinei tonu te mahi a te kaupapa Endlessh: ko tuku mutunga rerenga o nga raraunga hanga matapōkeretia, e ū ana ki te RFC 4253, ara, tuku i mua i te motuhēhēnga, ka timata ia raina ki te SSH- a kaua e neke ake i te 255 nga tohu, tae atu ki te tohu mutunga raina. I te nuinga o te waa, ko nga mea katoa e rite ana ki te paerewa.

Ma te taunoa, ka tatari te papatono mo te 10 hēkona i waenga i te tuku i nga paatete. Ma tenei ka aukati i te wa o te kiritaki, na reira ka mau te kiritaki mo ake tonu atu.

I te mea ka tukuna nga raraunga i mua i te tono whakamunatanga, he tino ngawari te kaupapa. Karekau he hiahia ki te whakatinana i nga kawa me te tautoko i nga tikanga maha.

I ngana te kaituhi ki te whakarite kia pau te iti o nga rauemi a te taputapu me te mahi kaore i kitea i runga i te miihini. Kaore i rite ki nga wheori hou me etahi atu "pūnaha haumaru," kaua e whakaroa i to rorohiko. I kaha ia ki te whakaiti i nga waka me te kohi mahara na te kaha o te whakatinanatanga o te rorohiko. Mena i whakarewahia e ia he tukanga motuhake i runga i te hononga hou, ka taea e nga kaiwhaiwhai te whakarewa i te whakaeke DDoS ma te whakatuwhera i nga hononga maha ki te whakapau rauemi i runga i te miihini. Ko te kotahi miro mo ia hononga ehara i te mea pai rawa atu, na te mea ka moumou te kernel i nga rauemi whakahaere miro.

Koia te take i whiriwhiria e Chris Wellons te whiringa tino mama mo Endlessh: he tūmau miro kotahi poll(2), i te mea ka pau nga kaihoko i roto i te mahanga tata kore rawa atu, kaua e tatau i te ahanoa turanga i roto i te pata me etahi atu 78 paita mo te whai i Endlessh. Hei karo i te tohatoha i nga whiwhinga me te tuku i nga parepare mo ia kiritaki, ka whakatuwherahia e Endlessh he turanga uru tika me te whakamaori tika i nga paatete TCP, me te maataki tata ki te katoa o te punaha whakahaere TCP/IP puranga. Kaore e tino hiahiatia ana te kaapiri taumai, na te mea kaore matou e aro ki nga raraunga taumai.

E ai ki te kaituhi i te wa o tana kaupapa kaore i mohio mo te noho a Python's asycio me etahi atu tarpits. Mena i mohio ia mo te asycio, ka taea e ia te whakamahi i tana taputapu i roto i nga rarangi 18 noa i te 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 pai a Asyncio mo te tuhi tarpits. Hei tauira, ka whakatio tenei matau ki a Firefox, Chrome, tetahi atu kaihoko ranei e ngana ana ki te hono atu ki to tūmau HTTP mo nga haora maha:

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 taputapu pai a Tarpit mo te whiu i te hunga whakaweti ipurangi. He pono, tera ano etahi raruraru, i runga i te rereke, o te kukume i to ratau aro ki te whanonga rereke o tetahi tūmau. Tetahi ka whakaaro pea mo te utu me te whakaekenga DDoS i runga i to IP. Heoi, tae noa ki tenei wa kaore ano he keehi pera, a he pai te mahi o nga taara.

Mahanga (tarpit) mo nga hononga SSH taumai

Source: will.com

Tāpiri i te kōrero