组合nmap和lsof lsport.pl

sh/bash/dash/ksh/zsh等Shell脚本
回复
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

组合nmap和lsof lsport.pl

#1

帖子 eexpress » 2012-03-08 10:33

以前每次nmap后,都想看下端口跑的软件名。

代码: 全选

● cat lsport.perl 
#!/usr/bin/perl

$_=$ARGV[0]//"localhost";
print "端口\t\t状态\t服务\t服务名\t   端口名\n";
@_=`/usr/bin/nmap $_`;
for (@_){
chomp;
if (/^\d+/){
@s=grep /IPv.*LISTEN/, `sudo lsof -i :$&`;
@n=split /\s+/, $s[0];
@l=split /\s+/, "$_\t$n[0]\t$n[8]\n";
format STDOUT=
^<<<<<<<<<<<<<<<^<<<<<<<^<<<<<<<^<<<<<<<<<<^<<<<<<<<<<<<<<<<<
$l[0],$l[1],$l[2],$l[3],$l[4]
.
write
}
}

代码: 全选

● lsport.perl 
端口		状态	服务	服务名	   端口名
22/tcp          open    ssh     sshd       *:ssh
631/tcp         open    ipp     cupsd      localhost:ipp
6667/tcp        open    irc     bitlbee    *:ircd
● 鸣学
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 组合nmap和lsof

#2

帖子 YeLee » 2012-03-08 11:09

不错,支持一下。 :em70 :em70 :em70
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
lilydjwg
论坛版主
帖子: 4258
注册时间: 2009-04-11 23:46
系统: Arch Linux
联系:

Re: 组合nmap和lsof

#3

帖子 lilydjwg » 2012-03-08 13:25

代码: 全选

netstat -ltp
不就好了么?
头像
枫叶饭团
帖子: 14683
注册时间: 2010-06-16 1:05
系统: Mac OS X
来自: Tencent
联系:

Re: 组合nmap和lsof

#4

帖子 枫叶饭团 » 2012-03-08 14:10

我就是说啊,只直接用netstat就行嘛。神在造轮子?
zcf115
帖子: 398
注册时间: 2009-06-28 10:06
系统: ubuntu12.04

Re: 组合nmap和lsof

#5

帖子 zcf115 » 2012-03-08 15:05

膜拜神。话说神好久不在脚本区发脚本了。建议神在此模块开个讲堂吧。
Still Alive
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 组合nmap和lsof

#6

帖子 eexpress » 2012-03-08 15:11

你们不明白nmap的嘛。
● 鸣学
头像
YeLee
论坛版主
帖子: 26406
注册时间: 2008-08-13 8:48
系统: Fundu i64
来自: 东海硇州,一双管钥。
联系:

Re: 组合nmap和lsof

#7

帖子 YeLee » 2012-03-08 17:40

嗯,ee自喷吗?
◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
头像
eexpress
帖子: 58428
注册时间: 2005-08-14 21:55
来自: 长沙

Re: 组合nmap和lsof

#8

帖子 eexpress » 2013-06-25 11:22

代码: 全选

● cat lsport.pl 
#!/usr/bin/perl

$_=$ARGV[0]//"localhost";
print "端口   服务          进程  命令\n";
@_=`/usr/bin/nmap $_`;
for (@_){
chomp;
s/\/tcp//;
if (/^\d+/){
@s=grep /IPv.*LISTEN/, `sudo lsof -i :$&`;
@n=split /\s+/, $s[0];
@l=split /\s+/;
$c=`cat /proc/$n[1]/cmdline`;
$c=~s/\0/\ /g;
format STDOUT=
^<<<<<<^<<<<<<<<<<<<<^<<<<<^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$l[0],$l[2],$n[1],$c
.
write
}
}

代码: 全选

● lsport.pl 
端口   服务          进程  命令
[sudo] password for eexp: 
22     ssh           866   /usr/sbin/sshd -D
53     domain        1053  /usr/sbin/dnsmasq -x /var/run/dnsmasq/dnsmasq.pid
631    ipp           975   /usr/sbin/cupsd -F
3689   rendezvous    656   rhythmbox /home/eexp/音乐/nobody.mp3
8086   unknown       2575  python ./proxy.py
8087   unknown       2575  python ./proxy.py
● 鸣学
回复