Nc使用笔记

Posted by wsxq2 on 2019-07-02
TAGS:  ncNcatTODO

本文最后一次编辑时间:2019-07-02 20:16:21 +0800

nc被称为网络测试的瑞士军刀,其功能之强大可见一般

使用技巧

不想发送换行符?

Use the “eof” key, Ctrl+D. When pressed in the middle of a line, it will give to netcat everything that has been input at that point. ——引用自linux - How can I force netcat to send my input immediately, not just on newlines? - Super User

即使用EOF键——Ctrl+D注意是行末使用,而不是文末使用

输入 ASCII 特殊字符?

该部分的测试环境如下:

  • 主机操作系统:Windows 10 1803
    • 使用的 SSH 工具:Putty 0.70
  • 虚拟机操作系统:CentOS 7.2
    • 使用的 Shell: Bash 4.2.46

使用echoprintf

1
echo -ne '\x05\x01\x00'|nc -x nc.log localhost 1080

或者:

1
echo -n $'\x05\x01\x00'|nc -x nc.log localhost 1080

不过上述方法中,后一种方法似乎无法输入\x00字符

printf和上述方法类似

使用重定向<

1
2
echo -ne '\x05\x01\x00\x04\x05\x01\x00\x03\x0e\x77\x77\x77\x2e\x67\x6f\x6f\x67\x6c\x65\x2e\x63\x6f\x6d\x01\xbb' >input
nc -x nc.log localhost 1080 < input

但是上述两种方法(echo<)都只能发送一次消息,因此实在让人难以满意。于是经过大量的搜索,我找到了如下解决方案

直接输入

1
2
# nc -x nc.log localhost 1080
^E^A^@^D

参见 ASCII - Wikipedia 的那个表格,我们可以知道^@Ctrl+2)表示 ASCII 字符\x00^ACtrl+A)表示 ASCII 字符\x01,以此类推,可以轻松输入任意 ASCII 特殊字符

链接

下面总结了本文中使用的所有链接: