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
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é:
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.
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
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 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
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
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
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é:
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.
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
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 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
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
Source: will.com