Portál AbcLinuxu, 24. května 2024 13:30


Dotaz: nmap, cygwin bash a přesměrování

4.11.2016 20:32 drsmrt
nmap, cygwin bash a přesměrování
Přečteno: 290×
Odpovědět | Admin
Ahoj lidi! nepodařilo se mi přinutit windows shell aby mi přesměrovával filtrovaný výstup z nmapu do souboru, jednotlivé ip adresy hezky pod sebe, tak to zkouším s cygwinem. Příklad:
nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 | grep --line-buffered "80/open" | cut -d " " -f 2
dělá přesně co potřebuju, na terminál to sází ip adresy. ale když ten stejný výstup zkusím uložit
nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 | grep --line-buffered "80/open" | cut -d " " -f 2 >> vystup.txt
soubor "vystup.txt" to vytvoří ale nic se do něho nezapisuje. Variace na téma s awk:
nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 | awk '/80\/open/{print $2}' >> vystup.txt
se chová úplně stejně :( Jinak redirecty normálně fungujou. Kdyz napíšu třeba: echo "kocka leze dirou" >>text.txt tak se to přesměruje a uloží jak má. S bashem se teprv začínám seznamovat tak omluvte prosím takovy lama dotaz :)

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

4.11.2016 20:52 NN
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jestli to neposila na stderr.. Otstuj to takto: nmap ... 2> vystup.txt
4.11.2016 20:53 NN
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
Respektive: ... 2>> vystup.txt
4.11.2016 21:07 drsmrt
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
$ nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 | grep --line-buffered "80/open" | cut -d " " -f 2 2>> vystup.txt
Vytvoří to prázdný soubor "vystup.txt" a ip adresy to vypisuje na terminál :/
Jendа avatar 4.11.2016 21:15 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
Protože jsi přesměroval stderr grepu. NN ti radil přesměrovat stderr nmapu.

Btw. nmap má parametry -oN a -oG.
4.11.2016 21:33 drsmrt
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
takto?
nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 2>> error.txt
toto zas udělá soubor "error.txt" ale prázdný a normální výstup to zas píše do terminálu. Nicméně jsem se posunul o kousek dál.
nmap -sS -p80 -Pn -n -T3 --max-retries 0 -oG - -iR 0 | grep --line-buffered "80/open" >> vystup.txt
bez toho ořezávání cutem to konečne začalo zapisovat do souboru, ale je tam ten bordýlek okolo. Kďyž to vypnu a ručně zadám:
cut -d " " -f 2 < vystup.txt >> vystup2.txt
tak se to vyfiltruje do souboru "vystup2.txt". Jenom mě štve že se to takto musí dělat na 2x. Nešlo by to nějak naroubovat do jednoho příkazu?
5.11.2016 20:20 drsmrt
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem to nakonec rozlousknul. Problém dělal ten parametr nmapu "iR 0" to je nekonečný scan. Proto mi to nešlo ani v cygwinu ani ve windows. Zbastlil jsem si takovy udělátko aby se to opakovalo po 1000 pokusech ve smyčce a filtrovalo duplicitní řádky. scanport.bat:
@echo off
title %~nx0
set nmap=C:\apps2\nmap-7.01\nmap.exe
set /p port=port:

:start
del /q tempfile.txt 2>nul
%nmap% -sS -p%port% -Pn -n --source-port 80 -T 3 --max-retries 0 -oG - -iR 1000 ^
 | find "%port%/open" ^
 | for /f "tokens=2" %%a in ('more') do @echo %%a & @echo %%a >> tempfile.txt
timeout /t 1 /nobreak > nul
if exist tempfile.txt for /f %%b in (tempfile.txt) do (
 find "%%b" < hosts_%port%.txt > nul || @echo %%b >> hosts_%port%.txt)
goto start
Není to bůhvíco, ale funguje to na windows i bez cygwina. Časem to zkusím nějak přepsat do bashe až se s ním trochu naučím.
6.11.2016 09:40 1john2 | skóre: 35 | blog: jo12hn | zlín, brno
Rozbalit Rozbalit vše Re: nmap, cygwin bash a přesměrování
ZKusil bych se podivat, jestli nmap neumi posilat vystup ven bez bufferovani, pripadne jde ho donutit flushnout buffer rucne zvenku.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.