Tsy takona afenina fa tontolo feno fankahalana ny Aterineto. Raha vantany vao manangana mpizara iray ianao, dia iharan'ny fanafihana goavana sy fisavana marobe avy hatrany. Ohatra
Tarpit dia seranan-tsambo fandrika ampiasaina hampiadana ny fifandraisana miditra. Raha misy rafitra antoko fahatelo mifandray amin'ity seranan-tsambo ity, dia tsy ho afaka hanakatona haingana ny fifandraisana ianao. Tsy maintsy mandany ny loharanon-drafiny izy ary miandry mandra-pahatapitry ny fe-potoana fampifandraisana, na hamarana izany amin'ny tanana.
Matetika indrindra, tarpits no ampiasaina ho fiarovana. Ny teknika dia novolavolaina voalohany mba hiarovana amin'ny kankana amin'ny ordinatera. Ary ankehitriny dia azo ampiasaina hanimba ny fiainan'ny spammers sy mpikaroka izay mirotsaka amin'ny scan midadasika ny adiresy IP rehetra misesy (ohatra ao amin'ny HabrΓ©:
Ny iray amin'ireo mpitantana ny rafitra antsoina hoe Chris Wellons dia toa reraka nijery ity fahafaham-baraka ity - ary nanoratra fandaharana kely izy.
Fametrahana ny fitaovana:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Ny tarpit azo ampiharina tsara dia haka loharanon-karena bebe kokoa avy amin'ny mpanafika noho ianao. Saingy tsy resaka harena akory izany. Mpanoratra
Amin'ny fomba fiasa dia mila apetraka amin'ny seranan-tsambo mahazatra 22 ny mpizara Endlessh, izay mandondΓ²na ny hooligans. Ny tolo-kevitry ny fiarovana mahazatra dia manoro hevitra foana ny famindrana SSH mankany amin'ny seranana hafa, izay mampihena avy hatrany ny haben'ny logs amin'ny filaharana lehibe.
Chris Wellons dia nilaza fa ny fandaharany dia manararaotra andalana iray amin'ny famaritana SSH-
.
Izany indrindra no ataon'ny programa Endlessh: io DIA MANDEFA tsy misy farany fikorianan'ny angona novokarina kisendrasendra, izay mifanaraka amin'ny RFC 4253, izany hoe alefa alohan'ny fanamarinana, ary ny andalana tsirairay dia manomboka amin'ny SSH-
ary tsy mihoatra ny tarehintsoratra 255, ao anatin'izany ny toetran'ny fiafaran'ny tsipika. Amin'ny ankapobeny dia mifanaraka amin'ny fenitra ny zava-drehetra.
Amin'ny alΓ lan'ny default, miandry 10 segondra eo anelanelan'ny fandefasana fonosana ny programa. Izany dia manakana ny mpanjifa tsy ho lany fotoana, ka ho voafandrika mandrakizay ny mpanjifa.
Satria ny angon-drakitra dia alefa alohan'ny fampiharana ny kriptografika, dia tena tsotra ny programa. Tsy mila mampihatra ciphers ary manohana protocols marobe.
Niezaka ny mpanoratra mba hahazoana antoka fa mandany ny loharanon-karena faran'izay kely indrindra ny fitaovana ary miasa tsy voamarika amin'ny milina. Tsy toy ny antivirus maoderina sy "rafitra fiarovana" hafa, tsy tokony hampiadana ny solosainao izany. Nahavita nanamaivana ny fifamoivoizana sy ny fitadidiana izy noho ny fampiharana rindrambaiko hafetsena kokoa. Raha toa ka nandefa dingana misaraka fotsiny amin'ny fifandraisana vaovao izy, dia mety hanafika DDoS ireo mety ho mpanafika amin'ny alΓ lan'ny fanokafana fifandraisana marobe mba handresena ireo loharanon-karena amin'ny milina. Ny kofehy iray isaky ny fifandraisana dia tsy safidy tsara indrindra, satria handany loharanon-karena amin'ny fitantanana kofehy ny kernel.
Izany no antony nisafidianan'i Chris Wellons ny safidy maivana indrindra ho an'ny Endlessh: mpizara misy kofehy tokana poll(2)
, izay tsy lanin'ny mpanjifa ao amin'ny fandrika saika tsy misy loharano fanampiny, tsy manisa ny zavatra socket ao amin'ny kernel sy 78 bytes hafa ho an'ny fanaraha-maso ao amin'ny Endlessh. Mba hisorohana ny tsy maintsy hanokana ny fandraisana sy ny fandefasana buffer ho an'ny mpanjifa tsirairay, Endlessh dia manokatra faladia fidirana mivantana ary mandika mivantana ny fonosana TCP, mandingana saika ny rafitra TCP/IP manontolo. Tsy ilaina mihitsy ny buffer miditra, satria tsy liana amin'ny angon-drakitra miditra izahay.
Milaza ny mpanoratra fa tamin'ny fotoana nanaovana ny fandaharany
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())
Asyncio dia mety amin'ny fanoratana tarpits. Ohatra, ity hook ity dia hanamaivana ny Firefox, Chrome, na mpanjifa hafa izay manandrana mifandray amin'ny mpizara HTTP anao mandritra ny ora maro:
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())
Tarpit dia fitaovana tsara hanasazy ireo mpampijaly an-tserasera. Marina fa misy risika, mifanohitra amin'izany, ny hisarihana ny sain'izy ireo amin'ny fihetsika tsy mahazatra ataon'ny mpizara iray manokana. olona
Hubs:
Python, Fiarovana ny informatika, Software, Fitantanana ny rafitra
Tags:
SSH, tsy misy farany, tarpit, tarpit, fandrika, asycio
Fandrika (tarpit) ho an'ny fifandraisana SSH miditra
Tsy takona afenina fa tontolo feno fankahalana ny Aterineto. Raha vantany vao manangana mpizara iray ianao, dia iharan'ny fanafihana goavana sy fisavana marobe avy hatrany. Ohatra
Tarpit dia seranan-tsambo fandrika ampiasaina hampiadana ny fifandraisana miditra. Raha misy rafitra antoko fahatelo mifandray amin'ity seranan-tsambo ity, dia tsy ho afaka hanakatona haingana ny fifandraisana ianao. Tsy maintsy mandany ny loharanon-drafiny izy ary miandry mandra-pahatapitry ny fe-potoana fampifandraisana, na hamarana izany amin'ny tanana.
Matetika indrindra, tarpits no ampiasaina ho fiarovana. Ny teknika dia novolavolaina voalohany mba hiarovana amin'ny kankana amin'ny ordinatera. Ary ankehitriny dia azo ampiasaina hanimba ny fiainan'ny spammers sy mpikaroka izay mirotsaka amin'ny scan midadasika ny adiresy IP rehetra misesy (ohatra ao amin'ny HabrΓ©:
Ny iray amin'ireo mpitantana ny rafitra antsoina hoe Chris Wellons dia toa reraka nijery ity fahafaham-baraka ity - ary nanoratra fandaharana kely izy.
Fametrahana ny fitaovana:
$ make
$ ./endlessh &
$ ssh -p2222 localhost
Ny tarpit azo ampiharina tsara dia haka loharanon-karena bebe kokoa avy amin'ny mpanafika noho ianao. Saingy tsy resaka harena akory izany. Mpanoratra
Amin'ny fomba fiasa dia mila apetraka amin'ny seranan-tsambo mahazatra 22 ny mpizara Endlessh, izay mandondΓ²na ny hooligans. Ny tolo-kevitry ny fiarovana mahazatra dia manoro hevitra foana ny famindrana SSH mankany amin'ny seranana hafa, izay mampihena avy hatrany ny haben'ny logs amin'ny filaharana lehibe.
Chris Wellons dia nilaza fa ny fandaharany dia manararaotra andalana iray amin'ny famaritana SSH-
.
Izany indrindra no ataon'ny programa Endlessh: io DIA MANDEFA tsy misy farany fikorianan'ny angona novokarina kisendrasendra, izay mifanaraka amin'ny RFC 4253, izany hoe alefa alohan'ny fanamarinana, ary ny andalana tsirairay dia manomboka amin'ny SSH-
ary tsy mihoatra ny tarehintsoratra 255, ao anatin'izany ny toetran'ny fiafaran'ny tsipika. Amin'ny ankapobeny dia mifanaraka amin'ny fenitra ny zava-drehetra.
Amin'ny alΓ lan'ny default, miandry 10 segondra eo anelanelan'ny fandefasana fonosana ny programa. Izany dia manakana ny mpanjifa tsy ho lany fotoana, ka ho voafandrika mandrakizay ny mpanjifa.
Satria ny angon-drakitra dia alefa alohan'ny fampiharana ny kriptografika, dia tena tsotra ny programa. Tsy mila mampihatra ciphers ary manohana protocols marobe.
Niezaka ny mpanoratra mba hahazoana antoka fa mandany ny loharanon-karena faran'izay kely indrindra ny fitaovana ary miasa tsy voamarika amin'ny milina. Tsy toy ny antivirus maoderina sy "rafitra fiarovana" hafa, tsy tokony hampiadana ny solosainao izany. Nahavita nanamaivana ny fifamoivoizana sy ny fitadidiana izy noho ny fampiharana rindrambaiko hafetsena kokoa. Raha toa ka nandefa dingana misaraka fotsiny amin'ny fifandraisana vaovao izy, dia mety hanafika DDoS ireo mety ho mpanafika amin'ny alΓ lan'ny fanokafana fifandraisana marobe mba handresena ireo loharanon-karena amin'ny milina. Ny kofehy iray isaky ny fifandraisana dia tsy safidy tsara indrindra, satria handany loharanon-karena amin'ny fitantanana kofehy ny kernel.
Izany no antony nisafidianan'i Chris Wellons ny safidy maivana indrindra ho an'ny Endlessh: mpizara misy kofehy tokana poll(2)
, izay tsy lanin'ny mpanjifa ao amin'ny fandrika saika tsy misy loharano fanampiny, tsy manisa ny zavatra socket ao amin'ny kernel sy 78 bytes hafa ho an'ny fanaraha-maso ao amin'ny Endlessh. Mba hisorohana ny tsy maintsy hanokana ny fandraisana sy ny fandefasana buffer ho an'ny mpanjifa tsirairay, Endlessh dia manokatra faladia fidirana mivantana ary mandika mivantana ny fonosana TCP, mandingana saika ny rafitra TCP/IP manontolo. Tsy ilaina mihitsy ny buffer miditra, satria tsy liana amin'ny angon-drakitra miditra izahay.
Milaza ny mpanoratra fa tamin'ny fotoana nanaovana ny fandaharany
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())
Asyncio dia mety amin'ny fanoratana tarpits. Ohatra, ity hook ity dia hanamaivana ny Firefox, Chrome, na mpanjifa hafa izay manandrana mifandray amin'ny mpizara HTTP anao mandritra ny ora maro:
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())
Tarpit dia fitaovana tsara hanasazy ireo mpampijaly an-tserasera. Marina fa misy risika, mifanohitra amin'izany, ny hisarihana ny sain'izy ireo amin'ny fihetsika tsy mahazatra ataon'ny mpizara iray manokana. olona
Source: www.habr.com