ʻAʻole ia he mea huna ʻo ka Pūnaewele he wahi ʻino loa. I ka wā e hoʻāla ai ʻoe i kahi kikowaena, e hoʻokau koke ʻia ia i nā hoʻouka kaua nui a me nā scan he nui. ʻo kahi laʻana
ʻO ka tarpit he awa pahele i hoʻohana ʻia e hoʻolohi i nā pilina e komo mai ana. Inā pili kekahi ʻōnaehana ʻaoʻao ʻekolu i kēia awa, ʻaʻole hiki iā ʻoe ke pani koke i ka pilina. Pono ʻo ia e hoʻopau i kāna kumu waiwai a kali a hiki i ka pau ʻana o ka manawa pili, a i ʻole e hoʻopau lima ʻia.
ʻO ka pinepine, hoʻohana ʻia nā tarpits no ka pale. Ua hoʻokumu mua ʻia ka ʻenehana no ka pale ʻana i nā ilo kamepiula. A i kēia manawa hiki ke hoʻohana ʻia e hōʻino i ke ola o nā spammers a me nā mea noiʻi e hana nei i ka nānā ākea o nā helu IP āpau i ka lālani (nā laʻana ma Habré:
ʻO kekahi o nā luna hoʻokele pūnaewele i kapa ʻia ʻo Chris Wellons ua luhi i ka nānā ʻana i kēia mea hilahila - a kākau ʻo ia i kahi papahana liʻiliʻi.
Hoʻokomo ʻia o ka pono:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
ʻO ka tarpit i hoʻokō pono ʻia e lawe i nā kumuwaiwai hou aʻe mai ka mea hoʻouka ma mua o ʻoe. Akā, ʻaʻole ia he kumu waiwai. Mea kākau
Ma ke ʻano hana, pono e hoʻokomo ʻia ka server Endlessh ma ke awa maʻamau 22, kahi e kīkē nui ai nā hooligans. Manaʻo mau nā ʻōlelo aʻoaʻo palekana maʻamau e hoʻoneʻe iā SSH i kahi awa ʻē aʻe, e hoʻemi koke i ka nui o nā lāʻau ma ke ʻano o ka nui.
Ua ʻōlelo ʻo Chris Wellons e hoʻohana ana kāna papahana i hoʻokahi paukū o ka kikoʻī SSH-
.
ʻO kēia ka hana a ka papahana Endlessh: ʻo ia hoʻouna pau ole kahawai o ka ʻikepili i hana ʻole ʻia, e pili ana me RFC 4253, ʻo ia hoʻi, e hoʻouna ma mua o ka hōʻoia ʻana, a hoʻomaka kēlā me kēia laina me SSH-
ʻaʻole ʻoi aku ma mua o 255 mau huaʻōlelo, me ke ʻano hoʻopau laina. Ma keʻano laulā, ua like nā mea a pau i ke kūlana.
Ma ka maʻamau, kali ka polokalamu i 10 kekona ma waena o ka hoʻouna ʻana i nā ʻeke. Mālama kēia i ka mea kūʻai mai ka manawa pau ʻole, no laila e paʻa mau ka mea kūʻai aku.
No ka hoʻouna ʻia ʻana o ka ʻikepili ma mua o ka hoʻohana ʻana i ka cryptography, maʻalahi loa ka papahana. ʻAʻole pono ia e hoʻokō i nā ciphers a kākoʻo i nā protocols he nui.
Ua ho'āʻo ka mea kākau e hōʻoia i ka hoʻohana ʻana o ka pono i ka liʻiliʻi o nā kumuwaiwai a hana ʻole ʻia ma ka mīkini. ʻAʻole e like me nā antiviruses hou a me nā "pūnaewele palekana," ʻaʻole pono ia e lohi i kāu kamepiula. Ua hoʻokō ʻo ia i ka hōʻemi ʻana i nā kaʻa a me ka hoʻomanaʻo ʻana ma muli o ka hoʻokō ʻana i ka polokalamu maalea. Inā hoʻomaka wale ʻo ia i kahi kaʻina kaʻawale ma kahi pili hou, a laila hiki i nā mea hoʻouka kaua ke hoʻomaka i kahi hoʻouka DDoS ma ka wehe ʻana i nā pilina he nui e hoʻopau i nā kumuwaiwai ma ka mīkini. ʻAʻole maikaʻi ka koho hoʻokahi no kēlā me kēia pilina, no ka mea, e hoʻopau 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 pūnaewele hoʻokahi poll(2)
, kahi e ʻai ʻole ai nā mea kūʻai i loko o ka pahele i nā kumu waiwai ʻē aʻe, ʻaʻole i helu i ke kumu kumu i loko o ka kernel a me 78 bytes no ka huli ʻana ma Endlessh. I mea e pale aku ai i ka hoʻokaʻawale ʻana i ka loaʻa a me ka hoʻouna ʻana i nā pale no kēlā me kēia mea kūʻai aku, wehe ʻo Endlessh i kahi kumu komo pololei a unuhi pololei i nā ʻeke TCP, e kāʻalo ana i ka ʻōnaehana holoʻokoʻa holoʻokoʻa TCP/IP. ʻAʻole pono iki ka buffer e komo mai ana, no ka mea ʻaʻole mākou makemake i ka ʻikepili komo.
'Ōlelo ka mea kākau i ka manawa o kāna papahana
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 hoʻokuʻu kēia makau iā Firefox, Chrome, a i ʻole kekahi mea kūʻai aku 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 ʻo Tarpit no ka hoʻopaʻi ʻana i nā mea hoʻoweliweli pūnaewele. ʻOiaʻiʻo, aia kekahi pilikia, ma kahi ʻē aʻe, o ka huki ʻana i ko lākou manaʻo i ka hana maʻamau o kahi kikowaena. ʻO kekahi
Nā Hub:
Python, Palekana ʻike, lako polokalamu, hoʻokele ʻōnaehana
Tags:
SSH, Endless, tarpit, tarpit, trap, asycio
Trap (tarpit) no nā pili SSH e komo mai ana
ʻAʻole ia he mea huna ʻo ka Pūnaewele he wahi ʻino loa. I ka wā e hoʻāla ai ʻoe i kahi kikowaena, e hoʻokau koke ʻia ia i nā hoʻouka kaua nui a me nā scan he nui. ʻo kahi laʻana
ʻO ka tarpit he awa pahele i hoʻohana ʻia e hoʻolohi i nā pilina e komo mai ana. Inā pili kekahi ʻōnaehana ʻaoʻao ʻekolu i kēia awa, ʻaʻole hiki iā ʻoe ke pani koke i ka pilina. Pono ʻo ia e hoʻopau i kāna kumu waiwai a kali a hiki i ka pau ʻana o ka manawa pili, a i ʻole e hoʻopau lima ʻia.
ʻO ka pinepine, hoʻohana ʻia nā tarpits no ka pale. Ua hoʻokumu mua ʻia ka ʻenehana no ka pale ʻana i nā ilo kamepiula. A i kēia manawa hiki ke hoʻohana ʻia e hōʻino i ke ola o nā spammers a me nā mea noiʻi e hana nei i ka nānā ākea o nā helu IP āpau i ka lālani (nā laʻana ma Habré:
ʻO kekahi o nā luna hoʻokele pūnaewele i kapa ʻia ʻo Chris Wellons ua luhi i ka nānā ʻana i kēia mea hilahila - a kākau ʻo ia i kahi papahana liʻiliʻi.
Hoʻokomo ʻia o ka pono:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
ʻO ka tarpit i hoʻokō pono ʻia e lawe i nā kumuwaiwai hou aʻe mai ka mea hoʻouka ma mua o ʻoe. Akā, ʻaʻole ia he kumu waiwai. Mea kākau
Ma ke ʻano hana, pono e hoʻokomo ʻia ka server Endlessh ma ke awa maʻamau 22, kahi e kīkē nui ai nā hooligans. Manaʻo mau nā ʻōlelo aʻoaʻo palekana maʻamau e hoʻoneʻe iā SSH i kahi awa ʻē aʻe, e hoʻemi koke i ka nui o nā lāʻau ma ke ʻano o ka nui.
Ua ʻōlelo ʻo Chris Wellons e hoʻohana ana kāna papahana i hoʻokahi paukū o ka kikoʻī SSH-
.
ʻO kēia ka hana a ka papahana Endlessh: ʻo ia hoʻouna pau ole kahawai o ka ʻikepili i hana ʻole ʻia, e pili ana me RFC 4253, ʻo ia hoʻi, e hoʻouna ma mua o ka hōʻoia ʻana, a hoʻomaka kēlā me kēia laina me SSH-
ʻaʻole ʻoi aku ma mua o 255 mau huaʻōlelo, me ke ʻano hoʻopau laina. Ma keʻano laulā, ua like nā mea a pau i ke kūlana.
Ma ka maʻamau, kali ka polokalamu i 10 kekona ma waena o ka hoʻouna ʻana i nā ʻeke. Mālama kēia i ka mea kūʻai mai ka manawa pau ʻole, no laila e paʻa mau ka mea kūʻai aku.
No ka hoʻouna ʻia ʻana o ka ʻikepili ma mua o ka hoʻohana ʻana i ka cryptography, maʻalahi loa ka papahana. ʻAʻole pono ia e hoʻokō i nā ciphers a kākoʻo i nā protocols he nui.
Ua ho'āʻo ka mea kākau e hōʻoia i ka hoʻohana ʻana o ka pono i ka liʻiliʻi o nā kumuwaiwai a hana ʻole ʻia ma ka mīkini. ʻAʻole e like me nā antiviruses hou a me nā "pūnaewele palekana," ʻaʻole pono ia e lohi i kāu kamepiula. Ua hoʻokō ʻo ia i ka hōʻemi ʻana i nā kaʻa a me ka hoʻomanaʻo ʻana ma muli o ka hoʻokō ʻana i ka polokalamu maalea. Inā hoʻomaka wale ʻo ia i kahi kaʻina kaʻawale ma kahi pili hou, a laila hiki i nā mea hoʻouka kaua ke hoʻomaka i kahi hoʻouka DDoS ma ka wehe ʻana i nā pilina he nui e hoʻopau i nā kumuwaiwai ma ka mīkini. ʻAʻole maikaʻi ka koho hoʻokahi no kēlā me kēia pilina, no ka mea, e hoʻopau 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 pūnaewele hoʻokahi poll(2)
, kahi e ʻai ʻole ai nā mea kūʻai i loko o ka pahele i nā kumu waiwai ʻē aʻe, ʻaʻole i helu i ke kumu kumu i loko o ka kernel a me 78 bytes no ka huli ʻana ma Endlessh. I mea e pale aku ai i ka hoʻokaʻawale ʻana i ka loaʻa a me ka hoʻouna ʻana i nā pale no kēlā me kēia mea kūʻai aku, wehe ʻo Endlessh i kahi kumu komo pololei a unuhi pololei i nā ʻeke TCP, e kāʻalo ana i ka ʻōnaehana holoʻokoʻa holoʻokoʻa TCP/IP. ʻAʻole pono iki ka buffer e komo mai ana, no ka mea ʻaʻole mākou makemake i ka ʻikepili komo.
'Ōlelo ka mea kākau i ka manawa o kāna papahana
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 hoʻokuʻu kēia makau iā Firefox, Chrome, a i ʻole kekahi mea kūʻai aku 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 ʻo Tarpit no ka hoʻopaʻi ʻana i nā mea hoʻoweliweli pūnaewele. ʻOiaʻiʻo, aia kekahi pilikia, ma kahi ʻē aʻe, o ka huki ʻana i ko lākou manaʻo i ka hana maʻamau o kahi kikowaena. ʻO kekahi
Source: www.habr.com